:root{--bg:#0f1218;--panel:#171b24;--panel-2:#1d2330;--stroke:#2a3142;--text:#e8ecf4;--muted:#8b95a8;--accent:#5b8def;--accent-soft:#5b8def24;--accent-text:#d7e4ff;--radius:10px;--sidebar-width:260px;--topbar-height:56px;color:var(--text);background:var(--bg);font-family:IBM Plex Sans,Segoe UI,sans-serif}:root[data-theme=light]{--bg:#f4f6fa;--panel:#fff;--panel-2:#eef1f7;--stroke:#d7dde8;--text:#1a2130;--muted:#667085;--accent:#3b6fd8;--accent-soft:#3b6fd81f;--accent-text:#1e4aa8}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden}body{background:radial-gradient(1200px 600px at 10% -10%, #1a2740 0%, transparent 55%), radial-gradient(900px 500px at 100% 0%, #1a2030 0%, transparent 50%), var(--bg);color:var(--text);transition:background-color .18s,color .18s}:root[data-theme=light] body{background:radial-gradient(1200px 600px at 10% -10%, #dbe6f8 0%, transparent 55%), radial-gradient(900px 500px at 100% 0%, #e8edf5 0%, transparent 50%), var(--bg)}.app{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.topbar{height:var(--topbar-height);border-bottom:1px solid var(--stroke);background:color-mix(in srgb, var(--panel) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;padding:0 1.25rem;display:flex}.brand{min-width:0;color:inherit;align-items:baseline;gap:.55rem;text-decoration:none;display:flex}.brand-mark{letter-spacing:-.02em;font-family:IBM Plex Serif,Georgia,serif;font-size:1.2rem}.brand-sub{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}.theme-switch{flex-direction:row;flex-shrink:0;align-items:center;gap:.55rem;display:flex}.theme-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}.theme-options{border:1px solid var(--stroke);background:var(--panel-2);border-radius:9px;grid-template-columns:repeat(3,minmax(4.2rem,auto));gap:.25rem;padding:.2rem;display:grid}.theme-option{appearance:none;color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:6px;padding:.35rem .65rem;font-size:.75rem;transition:background .16s,color .16s,border-color .16s}.theme-option:hover{color:var(--text)}.theme-option.active{background:var(--panel);border-color:color-mix(in srgb, var(--accent) 35%, transparent);color:var(--accent-text)}.shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);flex:1;width:100%;min-height:0;display:grid;overflow:hidden}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);max-width:var(--sidebar-width);border-right:1px solid var(--stroke);background:color-mix(in srgb, var(--panel) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-direction:column;gap:1.25rem;padding:1rem;display:flex;overflow:auto}.upload-block{flex-direction:column;gap:.4rem;display:flex}.upload-input{display:none}.upload-btn{appearance:none;border:1px solid color-mix(in srgb, var(--accent) 45%, var(--stroke));background:var(--accent-soft);color:var(--accent-text);cursor:pointer;font:inherit;border-radius:8px;padding:.65rem .8rem;font-size:.88rem;font-weight:500;transition:background .16s,border-color .16s}.upload-btn:hover:not(:disabled){border-color:var(--accent)}.upload-btn:disabled{opacity:.65;cursor:default}.upload-hint{color:var(--muted);margin:0;font-size:.72rem}.upload-error{color:#e07070;margin:0;font-size:.75rem;line-height:1.35}.nav-section{flex-direction:column;gap:.4rem;min-height:0;display:flex}.nav-heading{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0;padding:0 .5rem;font-size:.72rem;font-weight:500}.nav-empty{color:var(--muted);margin:0;padding:.35rem .5rem;font-size:.8rem}.nav{flex-direction:column;gap:.35rem;display:flex}.nav-row{border-radius:8px;align-items:stretch;gap:.2rem;display:flex}.nav-row:has(.nav-item.active){background:var(--accent-soft)}.nav-item-grow{flex:1;min-width:0}.nav-delete{appearance:none;width:2rem;color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:8px;flex-shrink:0;font-size:1.1rem;line-height:1;transition:background .16s,color .16s}.nav-delete:hover{background:var(--panel-2);color:var(--text)}.nav-item{appearance:none;color:var(--text);text-align:left;cursor:pointer;width:100%;font:inherit;white-space:normal;overflow-wrap:anywhere;background:0 0;border:1px solid #0000;border-radius:8px;padding:.7rem .8rem;font-size:.92rem;line-height:1.35;text-decoration:none;transition:background .16s,border-color .16s,color .16s}.nav-item:hover{background:var(--panel-2)}.nav-item.active{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 45%, transparent);color:var(--accent-text)}.sidebar-hint{color:var(--muted);margin:auto 0 0;padding:0 .5rem;font-size:.78rem}.stage{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.stage-header{border-bottom:1px solid var(--stroke);background:color-mix(in srgb, var(--panel) 70%, transparent);flex-shrink:0;justify-content:space-between;align-items:baseline;gap:1rem;padding:.95rem 1.5rem;display:flex}.stage-meta{flex-shrink:1;align-items:center;gap:.5rem;min-width:0;display:flex}.copy-link{appearance:none;border:1px solid var(--stroke);background:var(--panel-2);color:var(--muted);cursor:pointer;font:inherit;border-radius:999px;flex-shrink:0;padding:.25rem .7rem;font-size:.75rem;transition:color .16s,border-color .16s}.copy-link:hover{color:var(--text);border-color:color-mix(in srgb, var(--accent) 35%, var(--stroke))}.stage-header h1{letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-family:IBM Plex Serif,Georgia,serif;font-size:1.35rem;font-weight:600;overflow:hidden}.file-chip{text-overflow:ellipsis;white-space:nowrap;max-width:18rem;color:var(--muted);background:var(--panel-2);border:1px solid var(--stroke);border-radius:999px;flex-shrink:1;padding:.25rem .7rem;font-size:.78rem;overflow:hidden}.stage-body{scrollbar-gutter:stable;flex:1;min-width:0;min-height:0;padding:1.25rem 1.5rem 2rem;overflow:auto}.stage-body-frame{scrollbar-gutter:auto;padding:0;overflow:hidden}.canvas-frame{background:0 0;border:0;width:100%;height:100%;display:block}.loading,.empty{color:var(--muted);padding:2rem}.empty h1{color:var(--text);font-family:IBM Plex Serif,Georgia,serif}.empty code,.sidebar-hint code{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.9em}@media (width<=860px){.topbar{height:auto;min-height:var(--topbar-height);flex-wrap:wrap;padding:.7rem 1rem}.shell{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--stroke);width:100%;min-width:0;max-width:none;overflow:visible}.nav{flex-flow:wrap;flex:0}.nav-item{width:auto;max-width:100%}.stage-header{flex-direction:column;align-items:flex-start}.file-chip{max-width:100%}}.toast-viewport{z-index:1000;pointer-events:none;flex-direction:column;gap:.55rem;max-width:min(22rem,100vw - 2rem);display:flex;position:fixed;bottom:1.25rem;right:1.25rem}.toast{border:1px solid var(--stroke);background:var(--panel);color:var(--text);box-shadow:none;opacity:0;pointer-events:auto;border-radius:10px;align-items:flex-start;gap:.65rem;padding:.75rem .85rem;transition:opacity .18s,transform .18s;display:flex;transform:translateY(8px)}.toast-in{opacity:1;transform:translateY(0)}.toast-success{border-color:color-mix(in srgb, #3d9a6a 45%, var(--stroke));background:color-mix(in srgb, #3d9a6a 12%, var(--panel))}.toast-error{border-color:color-mix(in srgb, #d26464 45%, var(--stroke));background:color-mix(in srgb, #d26464 12%, var(--panel))}.toast-info{border-color:color-mix(in srgb, var(--accent) 40%, var(--stroke));background:color-mix(in srgb, var(--accent) 10%, var(--panel))}.toast-message{flex:1;min-width:0;font-size:.88rem;line-height:1.4}.toast-close{appearance:none;width:1.4rem;height:1.4rem;color:var(--muted);cursor:pointer;font:inherit;background:0 0;border:none;border-radius:6px;flex-shrink:0;margin:-.15rem -.2rem 0 0;font-size:1rem;line-height:1}.toast-close:hover{color:var(--text);background:var(--panel-2)}
