.app-shell{--brand:#0fb5ae;--brand-2:#5b5bf0;--grad-brand:linear-gradient(135deg,#12c6be,#5b5bf0);--brand-t:rgba(15,181,174,.15);--side:linear-gradient(180deg,#0b3b44,#0c2e39);--topbg:hsla(0,0%,100%,.72);--surface:#fff;--line:#e0e7e8;--line-soft:#edf2f2;--ink:#0e2429;--ink-soft:#48606a;--ink-faint:#7e969e;--side-ink:#c3d8db;--side-ink-strong:#fff;--side-ink-faint:#8fb5ba;--side-active-ink:#fff;--side-hover:hsla(0,0%,100%,.07);--side-hover-strong:hsla(0,0%,100%,.14);--side-line:hsla(0,0%,100%,.22);--disp:var(--font-disp),"Space Grotesk",sans-serif;--sans:var(--font-sans-app),"Inter",sans-serif;--mono:var(--font-mono-app),"IBM Plex Mono",monospace;font-family:var(--sans);font-size:14px;line-height:1.55}.dark .app-shell,[data-theme=dark] .app-shell,[data-theme=glass-dark] .app-shell{--topbg:hsl(var(--background)/0.72);--surface:hsl(var(--card));--line:hsl(var(--border));--line-soft:hsl(var(--border));--ink:hsl(var(--foreground));--ink-soft:hsl(var(--muted-foreground));--ink-faint:hsl(var(--muted-foreground))}.app-shell .side{background:var(--side);color:var(--side-ink)}.app-shell .side--open{width:250px}.app-shell .side--rail{width:64px}.app-shell .side--open,.app-shell .side--rail{transition:width .2s ease-out}.app-shell .side--peek{position:fixed;top:0;bottom:0;left:0;z-index:50;box-shadow:8px 0 24px rgba(0,0,0,.25)}.app-shell .rail__here{display:block;padding:0 6px 8px;font-size:10px;line-height:1.2;text-align:center;color:var(--side-ink-faint);overflow-wrap:anywhere}@media (prefers-reduced-motion:reduce){.app-shell .side--open,.app-shell .side--rail{transition:none}}.app-shell .side__brand{display:flex;gap:10px;align-items:center;padding:18px 16px 14px}.app-shell .logo{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex:none}.app-shell .logo img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.app-shell .side__brand b{font-family:var(--disp);font-size:16px;color:var(--side-ink-strong);display:block;line-height:1.1}.app-shell .side__brand span{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--side-ink-faint)}.app-shell .nav{padding:4px 10px 18px;flex:1}.app-shell .nav__sec{font-family:var(--mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--side-ink-faint);padding:16px 8px 6px}.app-shell .nav__item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;color:var(--side-ink);font-size:13px;font-weight:500;text-decoration:none;margin:1px 0;min-height:44px}@media (min-width:640px){.app-shell .nav__item{min-height:0}}.app-shell .nav__item svg{width:16px;height:16px;flex:none;opacity:.8}.app-shell .nav__item:hover{background:var(--side-hover);color:var(--side-ink-strong)}.app-shell .nav__item.active{background:var(--grad-brand);color:var(--side-active-ink)}.app-shell .nav__item:focus-visible{outline:2px solid var(--side-ink-strong);outline-offset:-2px}.app-shell .nav__item--rail{justify-content:center;padding-left:0;padding-right:0;gap:0}.app-shell .nav__badge{margin-left:auto;font-family:var(--mono);font-size:10px;background:var(--side-hover-strong);border-radius:9px;padding:1px 7px}.app-shell .top{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:14px;padding:max(10px,env(safe-area-inset-top)) 22px 10px;background:var(--topbg);backdrop-filter:blur(12px);border-bottom:1px solid var(--line-soft)}.app-shell .iconbtn{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);flex:none}@media (max-width:1023px){.app-shell .iconbtn{width:44px;height:44px}}.app-shell .iconbtn:hover{border-color:var(--brand);color:var(--ink)}.app-shell .iconbtn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.app-shell .spacer{flex:1}.app-shell .top__title{font-family:var(--disp);font-size:15px;color:var(--ink)}.app-shell .side__acting{margin:0 10px 8px;padding:10px;border-radius:12px;border:1px solid var(--side-line);background:var(--side-hover);font-size:12px;color:var(--side-ink)}.app-shell .side__acting-who{display:flex;align-items:center;gap:8px;color:var(--side-ink-strong)}.app-shell .side__acting-who svg{width:16px;height:16px;flex:none}.app-shell .side__acting p+p{margin:2px 0 8px 24px}.app-shell .side__acting-back,.app-shell .side__acting-rail{width:100%;background:var(--side-hover-strong);color:var(--side-ink-strong)}.app-shell .side__acting-back{justify-content:center}.app-shell .side__acting-rail{width:auto}.app-shell.bottom-bar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:40;grid-template-columns:repeat(auto-fit,minmax(0,1fr));padding:4px 4px calc(4px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line)}@media (max-width:767px){.app-shell.bottom-bar{display:grid}.app-shell main.with-bottom-bar{padding-bottom:calc(76px + env(safe-area-inset-bottom))}}.app-shell .bottom-bar__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;min-width:0;padding:4px 2px;border-radius:10px;font-size:11px;font-weight:600;color:var(--ink-soft)}.app-shell .bottom-bar__item svg{width:22px;height:22px}.app-shell .bottom-bar__item.active{color:var(--ink);box-shadow:inset 0 3px 0 var(--brand)}.app-shell .bottom-bar__item:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.app-shell .safe-bottom{padding-bottom:calc(10px + env(safe-area-inset-bottom))}