:root{--bg: #101116;--panel: #1a1c24;--panel-2: #22242e;--panel-3: #2a2d38;--border: #2c2f3a;--text: #e7e9ee;--muted: #9aa0ad;--faint: #6b7180;--accent: #7c5cff;--accent-weak: #2a2350;--danger: #e5484d;--rec: #ff5c5c;--success: #4caf7d;--warn: #d98a5c;--kind-pc: #7c5cff;--kind-npc: #ffcf5c;--kind-item: #5cc6ff;--kind-scene: #8fd98a;--kind-thread: #d98add;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-8: 3rem;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-xl: 14px;--r-pill: 999px;--fs-xs: .72rem;--fs-sm: .85rem;--fs-md: .95rem;--fs-lg: 1.1rem;--fs-xl: 1.4rem;--fs-2xl: 1.9rem;--sh-1: 0 1px 2px rgba(0, 0, 0, .4);--sh-2: 0 4px 16px rgba(0, 0, 0, .5);--sh-3: 0 12px 40px rgba(0, 0, 0, .6);--z-nav: 50;--z-drawer: 80;--z-modal: 100;--z-toast: 120;--dur-fast: .12s;--dur-med: .2s;--ease: cubic-bezier(.2, .6, .2, 1);--pane-w: 340px;--header-h: 60px;--bottom-nav-h: 58px;--nav-w: 240px;--nav-w-mini: 64px;--content-max: 1080px;--brand-fallback: "Papyrus", "Segoe Script", cursive}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,select{font:inherit;border-radius:8px;border:1px solid var(--border);padding:.45rem .8rem;background:var(--panel-2);color:var(--text);cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.danger{background:transparent;border-color:var(--danger);color:var(--danger)}.session{display:flex;flex-direction:column;height:100dvh;overflow:hidden}.session-embedded{height:100%}.app-content:has(>.session-embedded){padding:0;overflow:hidden}.session-controls{flex:0 0 auto;display:flex;align-items:center;gap:1rem;padding:var(--sp-2) var(--sp-4);background:var(--panel);border-bottom:1px solid var(--border)}.session-controls>.header-controls{margin-left:auto}.session-header{height:var(--header-h);flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 1rem;background:var(--panel);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:var(--sp-3);min-width:0}.brand-home{display:inline-flex;align-items:center;gap:.5rem;color:inherit;text-decoration:none;border-radius:8px}.brand-home:hover{opacity:.85}.brand-home:focus-visible{outline:2px solid var(--accent, #7c5cff);outline-offset:2px}.brand .app-name{font-size:2.2rem;line-height:1}.crumb-sep{color:var(--muted);opacity:.55;font-size:1.1rem;line-height:1}.crumb{color:var(--muted);font-size:.95rem;font-weight:600;max-width:20rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumb-current{color:var(--text)}button.crumb-link{background:none;border:none;border-radius:0;padding:0}button.crumb-link:hover{color:var(--text)}button.crumb-current{background:none;border:none;border-radius:0;padding:0;cursor:pointer;text-align:left}.crumbs{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.crumb-node{display:inline-flex;align-items:center;gap:var(--sp-2);min-width:0}.crumbs>.crumb-node{flex:0 1 auto;min-width:0}.crumb{min-width:0}.crumbs.expanded{flex-wrap:wrap}.crumbs.expanded .crumb{max-width:none;overflow:visible;white-space:normal;text-overflow:clip;overflow-wrap:anywhere}.topbar-crumbs:has(.crumbs.expanded){overflow:visible}.app-topbar:has(.crumbs.expanded){height:auto;min-height:var(--header-h);align-items:flex-start;padding-top:var(--sp-2);padding-bottom:var(--sp-2)}button.crumb-link{cursor:pointer}.crumb-sep-wrap{position:relative;display:inline-flex;align-items:center}button.crumb-sep-btn{background:none;border:none;padding:0 2px;cursor:pointer;border-radius:4px}button.crumb-sep-btn:hover,button.crumb-sep-btn.open{color:var(--text);opacity:1}.crumb-menu{position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%);min-width:11rem;max-height:60vh;overflow-y:auto;background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-2);z-index:var(--z-drawer);padding:var(--sp-1)}.crumb-menu-item{display:block;width:100%;text-align:left;padding:var(--sp-2) var(--sp-3);border:none;background:none;border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-sm);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumb-menu-item:hover{background:var(--panel-2)}.crumb-menu-item.on{color:var(--accent);font-weight:600}.crumb-menu-note{display:block;padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm)}.brand-mark{font-size:1.6rem;display:inline-flex;align-items:center;color:var(--accent)}.app-logo{width:40px;height:40px;flex:0 0 auto;display:inline-block;background-color:currentColor;-webkit-mask:url(/bardic-alt.png) center / contain no-repeat;mask:url(/bardic-alt.png) center / contain no-repeat}.app-logo-lg{width:72px;height:72px}.brand h1{margin:0;font-size:1.05rem;line-height:1.1}.app-name{font-family:"Jim Nightshade",var(--brand-fallback);font-weight:400;letter-spacing:.02em}h1.app-name{font-size:1.7rem;line-height:1}.landing h1.app-name{font-size:3.2rem}.brand-sub{color:var(--muted);font-size:.75rem}.header-controls{display:flex;align-items:center;gap:.75rem}.authbar{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;font-size:.85rem}.landing .authbar{justify-content:center}.authbar input[type=email]{padding:.3rem .5rem;border-radius:6px;border:1px solid var(--border, #33384a);background:transparent;color:inherit;font:inherit;width:12rem;max-width:100%;min-width:0}.authbar-user{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.9}.authbar-muted{opacity:.6}.persona{position:relative}.persona-pill{display:inline-flex;align-items:center;gap:var(--sp-2, .5rem);padding:3px 10px 3px 3px;border:1px solid var(--border, #33384a);border-radius:999px;background:var(--panel-2, transparent);color:inherit;font:inherit;cursor:pointer;max-width:14rem}.persona-pill:hover{background:var(--panel-3, var(--panel-2))}.persona-avatar{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--accent, #6ea8fe);color:var(--accent-contrast, #fff);font-size:.8rem;font-weight:700;flex:none}.persona-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.persona-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:12rem;background:var(--panel-3, #1c2030);border:1px solid var(--border, #33384a);border-radius:var(--r-lg, 10px);box-shadow:var(--sh-2, 0 8px 24px rgba(0,0,0,.3));z-index:var(--z-drawer, 40);padding:var(--sp-1, .25rem)}.persona-email{display:block;padding:var(--sp-2, .5rem) var(--sp-3, .75rem);font-size:var(--fs-xs, .75rem);border-bottom:1px solid var(--border, #33384a);margin-bottom:var(--sp-1, .25rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.persona-signout{display:block;width:100%;text-align:left;padding:var(--sp-2, .5rem) var(--sp-3, .75rem);background:none;border:none;color:inherit;font:inherit;border-radius:var(--r-sm, 6px);cursor:pointer}.persona-signout:hover{background:var(--panel-2, rgba(255,255,255,.06))}.authbar-err{color:var(--danger, #e5534b)}.model-loader,.rec-controls{display:flex;align-items:center;gap:.5rem}.rec-indicator{color:var(--rec);font-weight:700;letter-spacing:.05em;animation:blink 1.4s ease-in-out infinite}.paused-indicator{color:var(--muted);font-weight:600}@keyframes blink{50%{opacity:.3}}.mini-meter{width:70px;height:8px;border-radius:4px;background:var(--panel-2);overflow:hidden}.mini-meter-fill{height:100%;background:linear-gradient(90deg,#3ecf8e,#e5c04b,var(--rec));transition:width .08s linear}.vad{display:flex;align-items:center;gap:.5rem}.vad-label{font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums;min-width:6.5rem}.vad-label.on{color:#3ecf8e;font-weight:600}.error{background:#3a1d1f;border-bottom:1px solid var(--danger);color:#ffb4b4;padding:.6rem 1rem;font-size:.9rem}.session-body{flex:1 1 auto;display:flex;min-height:0;overflow:hidden}.stage-wrap{flex:1 1 auto;min-width:0;padding:1rem;display:flex}.stage{flex:1;position:relative;border-radius:16px;overflow:hidden;background:var(--panel);border:1px solid var(--border);display:flex;flex-direction:row;align-items:stretch}.stage-viewport{flex:1 1 auto;min-width:0;position:relative;display:flex;flex-direction:column;overflow:hidden}.stage-empty{align-items:center;justify-content:center;text-align:center}.stage-empty-inner{max-width:380px;color:var(--muted)}.stage-empty-icon{font-size:3rem;margin-bottom:.5rem;color:var(--accent);opacity:.85}.stage-empty h2{margin:0 0 .5rem;color:var(--text)}.slide{flex:1;position:relative;overflow:hidden;background:#0b0b0f;display:flex;align-items:flex-end}.slide-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background-size:cover;background-position:center}.slide-bg-blur{filter:blur(28px) brightness(.5);transform:scale(1.12)}.slide-img{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;max-width:100%;max-height:100%;object-fit:contain;z-index:1}.slide-generating{position:absolute;top:1rem;right:1rem;z-index:2;background:#00000080;padding:.3rem .7rem;border-radius:999px;font-size:.75rem;color:#fff}.slide-failed{background:#b42828b8}.slide-regen{position:absolute;bottom:1rem;right:1rem;z-index:3;background:#00000080;color:#fff;border:1px solid rgba(255,255,255,.25);padding:.3rem .7rem;border-radius:999px;font-size:.75rem;cursor:pointer;transition:background .15s ease}.slide-regen:hover{background:#000000b8}.session-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.session-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .9rem;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;cursor:pointer;text-align:left;transition:background .15s ease,border-color .15s ease}.session-row:hover{background:#ffffff0f;border-color:#ffffff2e}.session-row-main{display:flex;flex-direction:column;gap:.15rem;min-width:0}.session-row-title{font-weight:600}.session-row-date{font-size:.8rem;opacity:.6}.session-badge{flex:none;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;padding:.2rem .55rem;border-radius:999px;background:#ffffff1a}.session-badge.session-live{background:#3ecf8e38;color:#3ecf8e}.session-badge.session-ended{background:#ffffff1a;opacity:.75}.live-pill{position:absolute;top:1rem;left:1rem;z-index:2;border:none;border-radius:999px;padding:.35rem .8rem;font-size:.78rem;font-weight:700;letter-spacing:.02em;background:#0000008c;color:#fff}.live-pill.live-on{background:var(--rec);color:#fff}.live-pill.live-on:disabled{opacity:1;cursor:default}.slide-meta{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.slide-counter{font-variant-numeric:tabular-nums;font-size:.75rem;color:#d8d8e2}.slide-overlay{position:relative;z-index:2;width:100%;padding:2rem 1.5rem 1.5rem;background:linear-gradient(transparent,#000000bf);color:#fff}.slide-ts{display:inline-block;font-variant-numeric:tabular-nums;font-size:.8rem;background:#00000073;padding:.15rem .5rem;border-radius:6px;margin-bottom:.4rem}.slide-title{margin:0 0 .3rem;font-size:1.6rem}.slide-caption{margin:0;font-size:.95rem;line-height:1.4;max-width:60ch;color:#e9e9f0}.slide-cat{display:inline-flex;align-items:center;justify-content:center;font-size:1rem;line-height:1;width:1.9rem;height:1.9rem;border-radius:8px;background:#00000073;box-shadow:inset 0 0 0 1px #ffffff1f;cursor:default}.slide-lead{font-size:1.15rem;line-height:1.35;font-weight:600;color:#fff}.stage-nav{flex:0 0 auto;align-self:stretch;width:46px;border:none;background:transparent;color:var(--muted);font-size:1.9rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .15s ease,background .15s ease}.stage-nav:hover{color:var(--text);background:var(--panel-2)}.stage-nav:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.slide-dots{position:absolute;bottom:.6rem;left:50%;transform:translate(-50%);display:flex;gap:.4rem}.slide-dots .dot{width:8px;height:8px;padding:0;border-radius:50%;border:none;background:#fff6}.slide-dots .dot.active{background:#fff}.sidepane{flex:0 0 var(--pane-w);width:var(--pane-w);border-left:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;min-height:0}.sidepane-head{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border)}.sidepane-head h2{margin:0;font-size:1rem}.sidepane-actions{display:flex;gap:.35rem}.icon-btn{padding:.25rem .5rem;background:var(--panel-2)}.sidepane-toolbar{padding:.6rem 1rem;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:.5rem}.sidepane-toolbar .transcript-search{width:100%;min-width:0}.mark-btn{width:100%;background:transparent;border-color:var(--accent);color:var(--accent);font-weight:600}.sidepane .empty{color:var(--muted);font-size:.9rem;padding:1rem}.sidepane-list{list-style:none;margin:0;padding:.5rem 1rem 1rem;overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.sidepane-list::-webkit-scrollbar{width:10px}.sidepane-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:6px;border:2px solid var(--panel)}.sidepane-list::-webkit-scrollbar-thumb:hover{background:#3a3e4b}.sidepane-list li{display:flex;gap:.6rem;padding:.4rem 0;border-bottom:1px solid var(--border)}.sidepane-list li.pending .text{color:var(--muted);font-style:italic}.sidepane-list .ts{color:var(--accent);font-variant-numeric:tabular-nums;font-size:.75rem;min-width:2.6rem;padding-top:.15rem}.sidepane-list .text{line-height:1.5;font-size:.9rem}.pane-reopen{flex:0 0 auto;align-self:stretch;border-radius:0;border:none;border-left:1px solid var(--border);background:var(--panel);color:var(--muted);writing-mode:vertical-rl;text-orientation:mixed;padding:1rem .4rem;font-size:.85rem;letter-spacing:.05em}.pane-reopen:hover{color:var(--text)}@media (max-width: 640px){:root{--pane-w: 100%}.session-body{flex-direction:column}.sidepane{border-left:none;border-top:1px solid var(--border);max-height:45%}}.screen{min-height:100%;display:flex;flex-direction:column}.screen.center{align-items:center;justify-content:center}.field{margin:0 0 .9rem}.field label{display:block;font-size:.85rem;color:var(--muted);margin:0 0 .3rem}.field input[type=text],.field input[type=number],.field input[type=email],.field textarea{width:100%;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.5rem .65rem;font:inherit;resize:vertical}.field-hint{margin:.3rem 0 0;font-size:.8rem}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 .9rem}@media (max-width: 520px){.field-grid{grid-template-columns:1fr}}.settings-danger{margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--border)}.style-presets{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}.style-chip{font-size:.78rem;padding:.25rem .55rem;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted);cursor:pointer}.style-chip:hover{border-color:var(--accent);color:var(--text)}.test-image{margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--border)}.test-image-result{margin-top:.7rem}.test-image-img{display:block;width:100%;max-width:420px;aspect-ratio:1 / 1;object-fit:cover;border-radius:10px;border:1px solid var(--border);margin-bottom:.6rem}.session-view{height:100dvh;min-height:0;overflow:hidden}.screen-header{height:var(--header-h);display:flex;align-items:center;justify-content:space-between;padding:0 1rem;border-bottom:1px solid var(--border);background:var(--panel)}.screen-body{flex:1;width:100%;max-width:780px;margin:0 auto;padding:1.5rem 1rem;display:flex;flex-direction:column;gap:1.25rem}.landing{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.5rem}.brand-mark.big{font-size:3rem}.back-btn{padding:.2rem .6rem;margin-right:.5rem;font-size:1.1rem;line-height:1}.title-edit{font-size:1.2rem;font-weight:600;padding:.2rem .4rem;border-radius:6px;border:1px solid var(--border);background:var(--panel-2);color:var(--text)}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1rem 1.25rem}.tab-bar{display:flex;gap:.25rem;border-bottom:1px solid var(--border);margin-bottom:.25rem;overflow-x:auto}.tab-btn{border:none;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--muted);padding:.55rem .9rem;font-weight:600;white-space:nowrap}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--text);border-bottom-color:var(--accent)}.card h2{margin:0 0 .75rem;font-size:1.05rem}.card .row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.card input[type=text],.card input[type=email]{flex:1;min-width:12rem;padding:.45rem .6rem;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);font:inherit}.muted{color:var(--muted)}.campaign-list,.member-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.campaign-card{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;overflow:hidden}.campaign-card:hover{border-color:var(--accent)}.campaign-card .campaign-row{border:none;border-radius:0;background:transparent}.campaign-card .campaign-row:hover{border:none}.campaign-links{display:flex;flex-wrap:wrap;gap:.4rem;padding:0 .9rem .7rem 3.2rem}.campaign-link{font-size:.8rem;padding:.25rem .6rem;border-radius:999px;background:var(--panel);border:1px solid var(--border);color:var(--muted)}.campaign-link:hover{border-color:var(--accent);color:var(--text)}.campaign-link.accent{color:var(--text);border-color:var(--accent)}.campaign-row{width:100%;display:flex;align-items:center;gap:.7rem;padding:.7rem .9rem;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;text-align:left}.campaign-row:hover{border-color:var(--accent)}.campaign-thumb{flex:0 0 auto;width:40px;height:40px;border-radius:8px;object-fit:cover;border:1px solid var(--border)}.campaign-thumb-empty{display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;background:var(--panel)}.campaign-name{flex:1;font-weight:600}.name-edit-row{align-items:center;gap:.6rem}.campaign-name-lg{flex:1;font-size:1.3rem;font-weight:600}.name-edit-row .title-edit{flex:1}.member-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .7rem;background:var(--panel-2);border:1px solid var(--border);border-radius:10px}.member-name{display:flex;align-items:center;gap:.5rem}.member-controls{display:flex;align-items:center;gap:.4rem}.invite-row{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.role-badge{font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;padding:.15rem .5rem;border-radius:999px;border:1px solid var(--border);color:var(--muted)}.role-badge.role-owner{color:#ffcf5c;border-color:#6b5a2a}.role-badge.role-player{color:#7c5cff;border-color:#443a7a}.pending-badge{font-size:.7rem;color:var(--muted);border:1px dashed var(--border);border-radius:999px;padding:.1rem .45rem}.scene-indicator{display:flex;align-items:center;gap:10px;padding:4px 10px;background:var(--panel-2);border:1px solid var(--border);border-radius:999px;font-size:12px;color:var(--muted);max-width:520px;overflow:hidden}.scene-mode{display:inline-flex;align-items:center;gap:4px;color:var(--text);text-transform:capitalize;font-weight:600}.scene-mode-icon{font-size:13px}.scene-loc{white-space:nowrap}.scene-tension{display:inline-flex;gap:3px}.tdot{width:6px;height:6px;border-radius:50%;background:var(--border)}.tdot.on{background:var(--rec)}.scene-beat{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px;font-style:italic}.recap-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:50;padding:24px}.recap{background:var(--panel);border:1px solid var(--border);border-radius:12px;width:min(680px,100%);max-height:84vh;overflow-y:auto;padding:20px 24px}.recap-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.recap-header h2{margin:0;font-size:18px}.recap-close{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer}.recap-loading{color:var(--muted)}.recap-summary{line-height:1.5;margin:0 0 16px}.recap-sections{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.recap-section{display:flex;gap:10px}.recap-kind{font-size:15px;line-height:1.4}.recap-section-body{flex:1}.recap-section-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.recap-section-title{font-weight:600}.recap-section-time{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.recap-synopsis{margin:2px 0 0;color:var(--muted);line-height:1.45;font-size:14px}.recap-outcomes{margin:6px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:2px}.recap-outcomes li{color:var(--muted);font-size:13px;line-height:1.4}.session-item{display:flex;align-items:stretch;gap:.4rem}.session-item .session-row{flex:1;min-width:0}.session-del{flex:none;align-self:stretch;padding:0 .7rem}.session-resume{flex:none;align-self:stretch;white-space:nowrap}.resume-note{margin:.5rem 1rem 0;padding:.55rem .85rem;border-radius:8px;background:#3ecf8e1f;border:1px solid rgba(62,207,142,.35);color:#cdeede;font-size:.9rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:50;padding:24px}.transcript-modal{background:var(--panel);border:1px solid var(--border);border-radius:12px;width:min(820px,100%);max-height:86vh;display:flex;flex-direction:column;overflow:hidden}.transcript-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}.transcript-modal-head h2{margin:0;font-size:18px}.transcript-modal-head .row{gap:.4rem;align-items:center}.transcript-search{min-width:220px;padding:.4rem .6rem;background:#ffffff0a;border:1px solid var(--border);border-radius:8px;color:inherit}.transcript-modal-body{overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:10px}.transcript-line{display:flex;gap:12px;margin:0;line-height:1.5}.transcript-line .ts{flex:none;color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px;padding-top:1px}.transcript-line .text{flex:1}.scene-highlights{display:flex;gap:.85rem;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:.5rem;-webkit-overflow-scrolling:touch}.scene-hl{margin:0;flex:0 0 240px;scroll-snap-align:start;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--panel, rgba(255, 255, 255, .02))}.scene-hl-art{position:relative;aspect-ratio:16 / 10;background-size:cover;background-position:center}.scene-hl-status{position:absolute;left:0;bottom:0;margin:.4rem;padding:.1rem .4rem;font-size:12px;border-radius:6px;background:#0009;color:#fff}.scene-hl-cap{display:flex;flex-direction:column;gap:.2rem;padding:.5rem .6rem}.scene-hl-meta{display:flex;align-items:center;gap:.4rem;font-variant-numeric:tabular-nums;font-size:13px}.scene-hl-text-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem}.scene-hl-text{font-size:13px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.scene-hl-more{align-self:flex-start;padding:0;border:none;background:none;color:var(--accent, #8ab4f8);font-size:12px;font-weight:600;cursor:pointer}.scene-hl-more:hover{text-decoration:underline}.hl-inline{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border)}.scene-hl-expand{position:absolute;top:.4rem;right:.4rem;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:none;border-radius:6px;background:#0000008c;color:#fff;font-size:14px;cursor:pointer;opacity:0;transition:opacity .12s ease,background .12s ease}.scene-hl:hover .scene-hl-expand,.scene-hl-expand:focus-visible{opacity:1}.scene-hl-expand:hover{background:#000c}.hl-modal{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:12px;width:min(720px,100%);max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.hl-modal-art{position:relative;width:100%;aspect-ratio:16 / 10;background-size:cover;background-position:center;background-color:var(--panel-2)}.hl-modal-cap{padding:14px 18px 18px;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto}.hl-modal-meta{display:flex;align-items:center;gap:.45rem;font-size:14px}.hl-modal-type{font-weight:600}.hl-modal-text{margin:0;line-height:1.5}.hl-modal-actions{display:flex;gap:.5rem;margin-top:.25rem}.hl-modal-close{position:absolute;top:.5rem;right:.5rem;z-index:1;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:none;border-radius:8px;background:#0000008c;color:#fff;font-size:15px;cursor:pointer}.hl-modal-close:hover{background:#000c}.scene-transcript{display:flex;flex-direction:column;gap:.5rem}.scene-transcript-search{display:block;width:100%;margin-bottom:.75rem}.timeline{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.9rem}.timeline-session-group{display:flex;flex-direction:column;gap:.9rem}.timeline-scenes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.9rem}.timeline-session{display:flex;align-items:center;gap:.6rem;margin:0;cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.timeline-session::-webkit-details-marker{display:none}.timeline-caret{color:var(--muted);font-size:.7rem;transition:transform var(--dur-fast, .12s) ease;flex:0 0 auto}.timeline-session-group[open]>.timeline-session .timeline-caret{transform:rotate(90deg)}.timeline-session-dot{width:.7rem;height:.7rem;border-radius:50%;background:var(--accent);margin-left:.75rem;flex:0 0 auto;box-shadow:0 0 0 4px var(--bg)}.timeline-session-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}.timeline-session-count{margin-left:auto;font-size:.7rem;color:var(--muted)}.timeline-item{display:grid;grid-template-columns:2.25rem 1fr;gap:.75rem;position:relative}.timeline-item:before{content:"";position:absolute;left:1.05rem;top:-.9rem;bottom:-.9rem;width:2px;background:var(--border)}.timeline-node{position:relative;z-index:1;width:2.25rem;height:2.25rem;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--panel-2);border:2px solid var(--border);font-size:1.1rem;align-self:start;margin-top:.35rem}.timeline-card{display:flex;gap:0;overflow:hidden;text-align:left;background:var(--panel-2);border:1px solid var(--border);border-radius:12px;padding:0;cursor:pointer;width:100%;color:inherit;transition:border-color var(--dur-fast, .12s) ease,transform var(--dur-fast, .12s) ease}.timeline-card:hover{border-color:var(--accent);transform:translateY(-1px)}.tl-art{flex:0 0 150px;align-self:stretch;min-height:118px;background-size:cover;background-position:center;position:relative}.tl-art-ph{display:flex;align-items:center;justify-content:center}.tl-art-icon{font-size:2.2rem;filter:drop-shadow(0 1px 3px rgba(0,0,0,.55))}.tl-body{padding:.7rem .9rem;display:flex;flex-direction:column;gap:.3rem;min-width:0;flex:1}.tl-head{display:flex;align-items:center;gap:.5rem}.tl-time{font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}.tl-title{font-size:1rem;font-weight:600;line-height:1.25}.tl-summary{font-size:.82rem;color:var(--muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tl-chips{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.15rem}.tl-chip-place{color:var(--kind-item, #5cc6ff)}.appearance-tiles{list-style:none;margin:0;padding:0 0 0 1.5rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}.atile{min-width:0}.atile-card{display:flex;flex-direction:column;text-align:left;width:100%;color:inherit;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;overflow:hidden;cursor:pointer;transition:border-color var(--dur-fast, .12s) ease,transform var(--dur-fast, .12s) ease}.atile-card:hover{border-color:var(--accent);transform:translateY(-1px)}.atile-card.static{cursor:default}.atile-art{aspect-ratio:16 / 9;background-size:cover;background-position:center}.atile-art-ph{display:flex;align-items:center;justify-content:center}.atile-art-icon{font-size:1.6rem;filter:drop-shadow(0 1px 3px rgba(0,0,0,.55))}.atile-body{padding:.45rem .55rem;display:flex;flex-direction:column;gap:.3rem;min-width:0}.atile-title{font-size:.85rem;font-weight:600;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.atile-badges{display:flex;flex-wrap:wrap;gap:.25rem}.filter-date{padding:.4rem .5rem;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:inherit;color-scheme:dark}.view-switch{display:inline-flex;gap:.25rem}@media (max-width: 560px){.timeline-card{flex-direction:column}.tl-art{flex-basis:auto;width:100%;aspect-ratio:16 / 9;min-height:0}}.library-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem}.library-nav-btn{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.8rem .9rem;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;text-align:left}.library-nav-btn:hover{border-color:var(--accent)}.library-nav-icon{font-size:1.4rem}.library-nav-label{font-weight:600}.library-nav-sub{font-size:.75rem}.library-tabs{display:flex;gap:.4rem;justify-content:center;padding:.6rem 1rem 0;border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap}.library-tab{border:1px solid transparent;border-bottom:none;border-radius:8px 8px 0 0;background:transparent;color:var(--muted);padding:.5rem .9rem}.library-tab.on{color:var(--text);background:var(--panel-2);border-color:var(--border);font-weight:600}.browser{display:flex;flex-direction:column;gap:.75rem}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;position:sticky;top:0;z-index:1;padding-bottom:.25rem}.filter-search{flex:1 1 12rem;min-width:10rem;padding:.45rem .6rem;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);font:inherit}.filter-bar select{max-width:12rem}.filter-sort{display:inline-flex;align-items:center;gap:.4rem}.filter-sort-label{font-size:var(--fs-sm);white-space:nowrap}.sort-arrow{margin-left:.3rem;font-size:.85em;opacity:.85}.filters-inline{display:contents}.filters-compact{display:none}.filter-menu{position:relative;display:inline-flex}.filter-menu-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .7rem;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);color:var(--text);font:inherit}.filter-menu-btn.open{border-color:var(--accent)}.filter-menu-badge{min-width:1.15rem;padding:0 .3rem;border-radius:999px;background:var(--accent);color:#fff;font-size:.72rem;font-weight:600;text-align:center}.filter-menu-pop{position:absolute;top:calc(100% + .3rem);left:0;z-index:30;min-width:12rem;max-height:60vh;overflow-y:auto;padding:.3rem;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #00000059;display:flex;flex-direction:column;gap:.1rem}.filter-menu-row,.filter-menu-opt,.filter-menu-back{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.5rem .6rem;border:none;border-radius:7px;background:transparent;color:var(--text);font:inherit;text-align:left}.filter-menu-row:hover,.filter-menu-opt:hover,.filter-menu-back:hover{background:var(--panel-2)}.filter-menu-row:disabled{opacity:.4}.filter-menu-opt.on{color:var(--accent);font-weight:600}.filter-menu-back{color:var(--muted);border-bottom:1px solid var(--border);border-radius:0;margin-bottom:.15rem}.filter-menu-cur{display:inline-flex;align-items:center;gap:.3rem;color:var(--muted);font-size:.82rem}.filter-menu-date{padding:.4rem .6rem;display:flex;align-items:center;gap:.5rem}.filter-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .55rem;border:1px solid var(--accent);border-radius:999px;background:var(--panel-2);color:var(--text);font:inherit;font-size:.82rem}.filter-chip-label{color:var(--muted)}.filter-chip-x{color:var(--muted);font-size:.75rem}@media (max-width: 639px){.filters-inline{display:none}.filters-compact{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}}.toggle.on{border-color:var(--accent);color:var(--text)}.link-btn{background:transparent;border:none;color:var(--accent);padding:.3rem .4rem}.link-btn:hover{text-decoration:underline}.seg{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.seg-btn{border:none;border-radius:0;background:var(--panel-2);color:var(--muted)}.seg-btn.on{background:var(--accent);color:#fff;font-weight:600}.result-count{font-size:.78rem;margin:0}.entry-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.entry{background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden}.entry-row{width:100%;display:flex;align-items:center;gap:.7rem;padding:.6rem .8rem;background:transparent;border:none;border-radius:0;text-align:left;color:var(--text)}.entry-row.static{cursor:default}button.entry-row:hover{background:var(--panel-2)}.entry-icon{font-size:1.25rem;flex:0 0 auto}.entry-main{display:flex;flex-direction:column;gap:.1rem;min-width:0;flex:1}.entry-title{font-weight:600;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.entry-sub{font-size:.78rem;display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.entry-note{font-size:.78rem;font-style:italic}.entry-chevron{color:var(--muted);flex:0 0 auto}.entry-detail{padding:.2rem .8rem .8rem 2.75rem;display:flex;flex-direction:column;gap:.5rem;border-top:1px solid var(--border)}.entry-detail p{margin:.5rem 0 0}.mini-badge{font-size:.65rem;text-transform:uppercase;letter-spacing:.03em;padding:.1rem .4rem;border-radius:999px;border:1px solid var(--border);color:var(--muted)}.mini-badge.kind-pc{color:#7c5cff;border-color:#443a7a}.mini-badge.kind-npc{color:#ffcf5c;border-color:#6b5a2a}.mini-badge.kind-stub{color:var(--muted);border-color:var(--border);font-style:italic}.mini-badge.kind-unlinked{color:#d98a5c;border-color:#6b4a2a;border-style:dashed;text-transform:none}button.mini-badge.kind-unlinked.as-btn{cursor:pointer;background:transparent;font:inherit;font-size:.68rem;text-transform:none}button.mini-badge.kind-unlinked.as-btn:hover{color:#f0a878;border-color:#a56a3a;border-style:solid;background:#d98a5c1f}button.mini-badge.kind-unlinked.as-btn.open{color:#f0a878;border-color:#a56a3a;border-style:solid;background:#d98a5c2e}.cast-resolver{margin:.4rem 0 .2rem;padding:.7rem .8rem;border:1px solid var(--border);border-left:3px solid #a56a3a;border-radius:8px;background:var(--panel-2);display:flex;flex-direction:column;gap:.7rem}.cast-resolver-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.cast-resolver-section{display:flex;flex-direction:column;gap:.4rem}.cast-resolver-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.cast-resolver-empty{margin:0;font-size:.85rem}.cast-resolver-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem;max-height:220px;overflow-y:auto}.cast-resolver-target{width:100%;display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;border:1px solid var(--border);border-radius:6px;background:var(--panel);cursor:pointer;text-align:left}.cast-resolver-target:hover{border-color:var(--accent, #b08968);background:#b089681a}.cast-resolver-target .entry-title{flex:1}.cast-resolver-create{align-self:flex-start}.char-detail{display:flex;flex-direction:column;gap:1rem}.detail-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px);gap:1.5rem;align-items:start}.detail-main{min-width:0;display:flex;flex-direction:column;gap:1rem}.detail-main>.char-section,.char-detail>.char-section{background:var(--panel-2);border:1px solid var(--border);border-radius:12px;padding:1rem 1.1rem;gap:.6rem}.detail-aside{display:flex;flex-direction:column;gap:1rem}.detail-aside>.char-section,.detail-aside>.char-stats{background:var(--panel-2);border:1px solid var(--border);border-radius:12px;padding:.9rem 1rem}.detail-aside .entry-list{gap:0}.detail-aside .entry{background:transparent;border:none;border-radius:0;overflow:visible}.detail-aside .entry+.entry{border-top:1px solid var(--border)}.detail-aside .entry-row{gap:.5rem;padding:.4rem .35rem;border-radius:6px}.detail-aside button.entry-row:hover{background:var(--panel-3)}.detail-aside .entry-icon{font-size:.95rem}.detail-aside .entry-title{font-weight:500;font-size:.88rem}.detail-aside .entry-sub{font-size:.72rem}.detail-aside .entry-chevron{font-size:.75rem}.aside-section>.aside-section-head{display:flex;align-items:center;gap:.4rem;cursor:pointer;list-style:none;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.aside-section>.aside-section-head::-webkit-details-marker{display:none}.aside-section>.aside-section-head:before{content:"▸";font-size:.7em;transition:transform .15s ease;color:var(--muted)}.aside-section[open]>.aside-section-head:before{transform:rotate(90deg)}.aside-section>.aside-section-head .aside-section-title{color:var(--text)}.aside-section[open]>.aside-section-head{margin-bottom:.6rem}@media (max-width: 820px){.detail-body{grid-template-columns:1fr}}.char-detail-head{display:flex}.char-hero{display:flex;align-items:center;gap:.8rem;padding-bottom:.9rem;border-bottom:1px solid var(--border)}.char-hero-icon{font-size:2.2rem;line-height:1;flex:0 0 auto}.char-hero-main{display:flex;flex-direction:column;gap:.2rem;min-width:0}.char-hero-name{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.char-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.75rem;padding:.75rem .9rem;background:var(--panel-2);border:1px solid var(--border);border-radius:10px}.char-stat{display:flex;flex-direction:column;gap:.15rem}.char-stat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}.char-stat-value{font-weight:600}.char-section{display:flex;flex-direction:column;gap:.4rem}.char-section h3{margin:0;font-size:.72rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.char-section>p{margin:0}.char-prose{white-space:pre-wrap;line-height:1.5}.outcome-list{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.3rem;line-height:1.45}.outcome-list li::marker{color:var(--accent, #b08968)}.dir-badge{font-weight:600}.dir-badge.dir-acquired{color:#3ecf8e}.dir-badge.dir-lost{color:var(--danger)}.dir-badge.dir-consumed,.dir-badge.dir-spent{color:var(--muted)}.dir-badge.dir-owned{color:#7aa2f7}.dir-badge.dir-featured{color:#bb9af7}.item-holders{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.15rem}.chip-row{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.chip-label{font-size:.75rem;color:var(--muted)}.chip{font-size:.75rem;padding:.15rem .55rem;border-radius:999px;border:1px solid var(--border);background:var(--panel-2);color:var(--text)}.chip:hover{border-color:var(--accent)}.chip.tag{color:var(--accent)}.chip-ghost{color:var(--muted);border-style:dashed}.chip-btn{cursor:pointer;font:inherit}.chip-btn:hover{border-color:var(--accent);color:var(--accent)}.scene-hl-cap .chip-row{margin-top:.35rem}.app-shell{display:flex;flex-direction:column;height:100dvh;overflow:hidden}.app-topbar{height:var(--header-h);flex:0 0 auto;display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-4);background:var(--panel);border-bottom:1px solid var(--border);z-index:var(--z-nav)}.topbar-spacer{flex:1 1 auto}.topbar-record{display:inline-flex;align-items:center;gap:var(--sp-2);height:34px;box-sizing:border-box;padding:0 var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:transparent;color:var(--accent);font-weight:600;font-size:.85rem;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease}.topbar-record:hover{background:var(--accent-weak);border-color:var(--accent)}.topbar-record:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width: 640px){.topbar-record-label{display:none}.topbar-record{padding:var(--sp-1);border-radius:50%}}.topbar-crumbs{display:flex;align-items:center;gap:var(--sp-2);min-width:0;overflow:hidden}.topbar-switcher{display:none}.topbar-switcher.sidenav-switcher{padding:0;flex:0 1 auto;min-width:0;max-width:55vw}@media (max-width: 639px){.topbar-crumbs{display:none}.topbar-switcher{display:block}}.drawer-toggle{display:none;border:none;background:transparent;color:var(--text);padding:var(--sp-1)}.app-main{flex:1 1 auto;display:flex;min-height:0}.app-sidebar{flex:0 0 var(--nav-w);width:var(--nav-w);background:var(--panel);border-right:1px solid var(--border);overflow-y:auto;overflow-x:hidden}.app-content{flex:1 1 auto;overflow-y:auto;min-width:0;padding:var(--sp-5) var(--sp-4)}.app-content>.browser,.app-content>.content-col{max-width:var(--content-max);margin:0 auto}.sidenav{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3) var(--sp-2)}.sidenav-switcher{position:relative;padding:0 var(--sp-1) var(--sp-2)}.switcher-btn{width:100%;display:flex;align-items:center;gap:var(--sp-2);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);color:var(--text);font-weight:600}.switcher-name{flex:1 1 auto;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.switcher-caret{flex:0 0 auto;color:var(--muted)}.switcher-menu{position:absolute;top:calc(100% + 4px);left:var(--sp-1);right:var(--sp-1);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-2);z-index:var(--z-drawer);padding:var(--sp-1);max-height:60vh;overflow-y:auto}.switcher-all,.switcher-item{display:block;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);color:var(--text);text-decoration:none;font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.switcher-all{color:var(--muted);border-bottom:1px solid var(--border);border-radius:0;margin-bottom:var(--sp-1)}.switcher-item:hover,.switcher-all:hover{background:var(--panel-2)}.switcher-item.on{color:var(--accent);font-weight:600}.switcher-loading{display:block;padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm)}.switcher-new{display:block;width:100%;text-align:left;padding:var(--sp-2) var(--sp-3);margin-top:var(--sp-1);border-top:1px solid var(--border);background:none;color:var(--accent);font-size:var(--fs-sm);font-weight:600;cursor:pointer}.switcher-new:hover{background:var(--panel-2)}.switcher-create{display:flex;gap:var(--sp-1);padding:var(--sp-2);margin-top:var(--sp-1);border-top:1px solid var(--border)}.switcher-create-input{flex:1;min-width:0;padding:var(--sp-1) var(--sp-2);font-size:var(--fs-sm)}.switcher-create-go{padding:var(--sp-1) var(--sp-2);font-size:var(--fs-sm);background:var(--accent);color:var(--accent-contrast, #fff);border-radius:var(--r-sm);cursor:pointer;white-space:nowrap}.switcher-create-go:disabled{opacity:.5;cursor:default}.switcher-error{display:block;padding:var(--sp-1) var(--sp-3);font-size:var(--fs-xs, 12px);color:var(--danger, #e5484d)}.sidenav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.navlink{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);color:var(--muted);text-decoration:none;font-weight:600;font-size:var(--fs-md);border-left:3px solid transparent;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.navlink:hover{background:var(--panel-2);color:var(--text)}.navlink.is-active{background:var(--accent-weak);color:var(--text);border-left-color:var(--accent)}.navlink svg,.navlink .material-icons{flex:0 0 auto}@media (max-width: 1023px){.app-sidebar{flex-basis:var(--nav-w-mini);width:var(--nav-w-mini)}.navlink-label,.switcher-name,.switcher-caret{display:none}.navlink{justify-content:center;gap:0;padding:var(--sp-2)}.switcher-btn{justify-content:center;padding:var(--sp-2)}.sidenav-switcher{padding-bottom:var(--sp-2)}}.bottom-nav{display:none}.bottom-nav-link{flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:var(--sp-1) 2px;color:var(--muted);text-decoration:none;min-width:0;transition:color var(--dur-fast) var(--ease)}.bottom-nav-link.is-active{color:var(--accent)}.bottom-nav-label{font-size:.62rem;line-height:1.1;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}@media (max-width: 639px){.bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:var(--z-nav);background:var(--panel);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0)}.app-content{padding-bottom:calc(var(--bottom-nav-h) + var(--sp-4))}}@media (max-width: 639px){.drawer-toggle{display:inline-flex}.app-sidebar{position:fixed;top:var(--header-h);bottom:var(--bottom-nav-h);left:0;flex-basis:var(--nav-w);width:var(--nav-w);transform:translate(-100%);transition:transform var(--dur-med) var(--ease);z-index:var(--z-drawer)}.app-sidebar.open{transform:translate(0)}.app-sidebar.open .navlink-label,.app-sidebar.open .switcher-name,.app-sidebar.open .switcher-caret{display:inline}.app-sidebar.open .navlink{justify-content:flex-start;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3)}.app-sidebar.open .switcher-btn{justify-content:space-between;padding:var(--sp-2) var(--sp-3)}.drawer-scrim{position:fixed;top:var(--header-h);inset:var(--header-h) 0 var(--bottom-nav-h) 0;background:#0000008c;z-index:var(--z-nav)}}
