:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f6f7f9;--card:#fff;--text:#1a1a2e;--muted:#6b7280;--border:#e5e7eb;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0e0f13;--card:#17181d;--text:#e8e8ea;--muted:#9aa0aa;--border:#2a2b31}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}.auth-shell{place-items:center;min-height:100vh;padding:2rem;display:grid}.auth-card{background:var(--card);border:1px solid var(--border);border-radius:12px;width:100%;max-width:420px;padding:2rem;box-shadow:0 1px 3px #00000014}.auth-card h1{margin:0 0 .25rem;font-size:1.5rem}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}.centered{place-items:center;min-height:100vh;display:grid}.setup-steps{margin-top:1rem;line-height:1.8}.error{color:#b91c1c;margin:.75rem 0}@media (prefers-color-scheme:dark){.error{color:#f87171}}.field{flex-direction:column;gap:.35rem;margin:1rem 0;display:flex}.field label{color:var(--muted);font-size:.9rem}.field input,.field select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:.55rem .7rem}.auth-card form button[type=submit]{width:100%;margin-top:.5rem}.org-list{flex-direction:column;gap:.5rem;margin:1rem 0 .5rem;padding:0;list-style:none;display:flex}.org-list button{text-align:left;width:100%}button.link{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:.5rem 0;text-decoration:underline}.page{max-width:720px;margin:0 auto;padding:2rem}.page-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.5rem}.card+.card{margin-top:1rem}.nav{align-items:center;gap:1rem;display:flex}.nav a{color:var(--text);text-decoration:none}.nav a:hover{text-decoration:underline}.identity-list{margin:0;padding:0;list-style:none}.identity-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:1rem;padding:.5rem 0;display:flex}.identity-list li:last-child{border-bottom:none}.proto-list{margin:0;padding:0;list-style:none}.proto-list li{border-bottom:1px solid var(--border);padding:.75rem 0}.proto-list li:last-child{border-bottom:none}.proto-list a{color:var(--text);text-decoration:none}.proto-list a:hover{text-decoration:underline}.proto-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.proto-row .play-btn{flex:none}label.checkbox{color:var(--muted);align-items:center;gap:.5rem;margin:.5rem 0 1rem;display:flex}label.checkbox input{width:auto}.wizard-steps{gap:1rem;margin-bottom:1rem;font-size:.85rem;display:flex}.wizard-steps .on{color:var(--text);font-weight:600}.choices{gap:.75rem;display:grid}.choice{text-align:left;flex-direction:column;align-items:flex-start;gap:.25rem;padding:1rem;display:flex}.inline{gap:.5rem;display:flex}.inline input{flex:1}.inspect-ok{margin:.5rem 0 1rem}.constraint-list{color:var(--muted);margin:.5rem 0;padding-left:1.1rem;font-size:.9rem;line-height:1.6}.wizard-actions{justify-content:space-between;align-items:center;margin-top:1rem;display:flex}.kv{grid-template-columns:max-content 1fr;gap:.5rem 1.5rem;margin:0;display:grid}.kv dt{color:var(--muted)}.kv dd{word-break:break-all;margin:0}.page--wide{max-width:1120px}.canvas-hint{justify-content:space-between;align-items:center;gap:1rem;margin:0 0 .75rem;font-size:.9rem;display:flex}.canvas{border:1px solid var(--border);background-color:var(--bg);background-image:radial-gradient(var(--border) 1px, transparent 1px);background-size:24px 24px;border-radius:10px;height:540px;position:relative;overflow:auto}.canvas-surface{position:relative}.frame{border:1px solid var(--border);background:var(--card);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:10px;flex-direction:column;gap:.4rem;width:180px;min-height:96px;padding:.7rem .8rem;display:flex;position:absolute;box-shadow:0 1px 3px #0000001f}.frame.dragging{cursor:grabbing;z-index:10;box-shadow:0 6px 18px #00000038}.frame.entry{border-color:#16a34a;box-shadow:inset 0 0 0 1px #16a34a,0 1px 3px #0000001f}.frame-name{word-break:break-word;font-weight:600}.frame-badges{flex-wrap:wrap;gap:.3rem;display:flex}.badge{border:1px solid var(--border);color:var(--muted);background:var(--bg);border-radius:5px;padding:.25rem .4rem;font-size:.7rem;line-height:1}.badge.entry{color:#16a34a;border-color:#16a34a}.canvas-empty{color:var(--muted);pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.flow-arrows{color:#3b82f6;pointer-events:none;position:absolute;top:0;left:0}.arrow-label{fill:#3b82f6;paint-order:stroke;stroke:var(--bg);stroke-width:3px;font-family:system-ui,sans-serif;font-size:11px}.link-form{grid-template-columns:1fr 1fr 1fr;align-items:end;gap:.75rem;margin-bottom:1rem;display:grid}.link-form .field{margin:0}.link-form button[type=submit]{grid-column:1/-1;justify-self:start}.link-form .error{grid-column:1/-1;margin:0}.page-list li{justify-content:space-between;align-items:center;gap:1rem;display:flex}.page-actions{flex:none;gap:.75rem;display:flex}.page-rename{align-items:center;gap:.5rem;width:100%;display:flex}.page-rename input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;flex:1;padding:.4rem .6rem}button.link.danger{color:#b91c1c}@media (prefers-color-scheme:dark){button.link.danger{color:#f87171}}.link-list li{justify-content:space-between;align-items:center;gap:1rem;display:flex}.link-list button.link{flex:none}.frame-thumb{object-fit:cover;border:1px solid var(--border);pointer-events:none;border-radius:4px;width:100%;height:56px}.image-list li{justify-content:space-between;align-items:center;gap:1rem;display:flex}.image-row{align-items:center;gap:.75rem;display:flex}.image-thumb{object-fit:cover;border:1px solid var(--border);background:var(--bg);border-radius:6px;width:64px;height:48px}.image-thumb--empty{color:var(--muted);place-items:center;font-size:.7rem;display:grid}.image-actions{flex:none;align-items:center;gap:.75rem;display:flex}.filebtn{font:inherit;border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:8px;padding:.4rem .8rem;display:inline-block}.filebtn:hover{border-color:var(--muted)}.filebtn.disabled{opacity:.6;cursor:default}.filebtn input{display:none}.play-btn{color:#16a34a;border-color:#16a34a;font-weight:600}.player-backdrop{z-index:200;background:#0b0c0f;flex-direction:column;display:flex;position:fixed;inset:0}.player-bar{color:#e8e8ea;background:#17181d;border-bottom:1px solid #2a2b31;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1rem;display:flex}.player-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.player-controls{flex:none;gap:.5rem;display:flex}.player-controls button{color:#e8e8ea;background:#23242b;border-color:#34353c}.player-controls button:disabled{opacity:.5;cursor:default}.player-stage{flex:1;place-items:center;min-height:0;padding:1.5rem;display:grid;overflow:auto}.player-frame{line-height:0;display:inline-block;position:relative;box-shadow:0 8px 40px #00000080}.player-frame img{-webkit-user-select:none;user-select:none;max-width:100%;max-height:82vh;display:block}.player-hotspot{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:3px;padding:0;position:absolute}.player-hotspot:hover{background:#3b82f626;border-color:#3b82f6e6}.player-hotspot.show{background:#3b82f61f;border-color:#3b82f6b3}.player-empty{color:#e8e8ea;text-align:center;line-height:1.6}.player-stage--live{padding:0}.player-live{background:#fff;border:0;width:100%;height:100%}.build-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.status-pill{border:1px solid var(--border);color:var(--muted);border-radius:999px;align-items:center;gap:.4rem;padding:.25rem .6rem;font-size:.8rem;display:inline-flex}.status-pill.ready{color:#16a34a;border-color:#16a34a}.status-pill.failed{color:#b91c1c;border-color:#b91c1c}.status-pill.building{color:#d97706;border-color:#d97706}.build-url{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}.build-log-controls{gap:1rem;margin-top:.75rem;display:flex}.build-log{border:1px solid var(--border);color:#d6d9de;white-space:pre-wrap;word-break:break-word;background:#0b0c0f;border-radius:8px;max-height:320px;margin-top:.5rem;padding:.75rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;line-height:1.5;overflow:auto}.modal-backdrop{z-index:100;background:#00000080;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.modal{background:var(--card);border:1px solid var(--border);border-radius:12px;max-height:90vh;padding:1.5rem;overflow:auto}.region-modal{width:min(820px,100%)}.region-head{justify-content:space-between;align-items:center;display:flex}.region-head h2{margin:0}.region-surface{touch-action:none;cursor:crosshair;max-width:100%;margin:.75rem 0;line-height:0;display:inline-block;position:relative}.region-surface img{-webkit-user-select:none;user-select:none;max-width:100%;height:auto;display:block}.region{box-sizing:border-box;position:absolute}.region.existing{background:#3b82f62e;border:2px solid #3b82f6}.region.drawing{background:#3b82f61f;border:2px dashed #3b82f6}.region.pending{background:#16a34a26;border:2px solid #16a34a}.region-tag{white-space:nowrap;color:#fff;background:#3b82f6;border-radius:4px 4px 0 0;align-items:center;gap:.35rem;padding:.1rem .35rem;font-size:.7rem;line-height:1.4;display:inline-flex;position:absolute;top:0;left:0;transform:translateY(-100%)}.region-x{color:#fff;cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;line-height:1}.region-form{grid-template-columns:1fr 1fr;align-items:end;gap:.75rem;display:grid}.region-form .field{margin:0}.region-actions{grid-column:1/-1;align-items:center;gap:.75rem;display:flex}button{font:inherit;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:8px;padding:.5rem 1rem}button:hover{border-color:var(--muted)}
