.app{display:grid;grid-template-rows:var(--topbar-h) 1fr var(--statusbar-h);height:100vh}.app--three{display:grid;grid-template-columns:var(--sidebar-w) 1fr var(--workspace-w);grid-template-rows:var(--topbar-h) 1fr var(--statusbar-h)}.app--two{display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--topbar-h) 1fr var(--statusbar-h)}.app--three .topbar,.app--two .topbar,.app--three .statusbar,.app--two .statusbar{grid-column:1 / -1}.topbar{height:var(--topbar-h);display:flex;align-items:center;padding:0 14px;gap:16px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--ink-100),var(--ink-050));position:relative;z-index:10}.topbar .brand{display:flex;align-items:baseline;gap:8px;font-family:var(--font-serif-latin);font-style:italic;font-size:18px;font-weight:500;color:var(--bone-100);letter-spacing:-.01em}.topbar .brand .glyph{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.topbar .brand .glyph svg{display:block;border-radius:4px}.topbar .brand .ver{font-family:var(--font-mono);font-size:10px;color:var(--text-faint);font-style:normal;letter-spacing:.04em}.topbar nav{display:flex;align-items:center;gap:2px;margin-left:8px;flex-shrink:0}.topbar nav a{padding:6px 8px;font-size:11.5px;color:var(--text-mute);border-radius:3px;letter-spacing:.01em;font-family:var(--font-mono);text-transform:lowercase}.topbar nav a:hover{color:var(--text);background:var(--ink-300)}.topbar nav a.active{color:var(--bone-100);background:var(--ink-300)}.topbar nav a .num{font-size:9px;color:var(--text-faint);margin-right:5px}.topbar .topbar-search{flex:1;min-width:180px;max-width:300px;height:28px;background:var(--ink-200);border:1px solid var(--border);border-radius:3px;display:flex;align-items:center;padding:0 10px;gap:8px;color:var(--text-mute);font-family:var(--font-mono);font-size:11px}.topbar .topbar-search .kbd{margin-left:auto}.topbar .topbar-actions{display:flex;align-items:center;gap:6px;margin-left:auto}.sidebar{background:var(--ink-100);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;position:relative}.sidebar:before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,rgba(255,122,61,.25) 30%,rgba(255,122,61,.25) 70%,transparent);opacity:.4}.sidebar .new-task{margin:12px;height:36px;background:var(--persimmon);color:#1a0c04;border-radius:3px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;font-weight:600;font-size:12px;letter-spacing:.01em;box-shadow:0 2px #0000004d,inset 0 1px #ffffff40}.sidebar .new-task .kbd{background:#0003;color:#0009;border-color:#0003}.side-section{padding:4px 0 8px}.side-section+.side-section{border-top:1px solid var(--border-soft)}.side-section .label{display:flex;align-items:center;justify-content:space-between;padding:10px 16px 6px;font-family:var(--font-mono);font-size:9.5px;color:var(--text-faint);letter-spacing:.18em;text-transform:uppercase}.side-section .label .num{opacity:.7}.side-item{display:flex;align-items:center;gap:8px;padding:6px 16px;font-size:12.5px;color:var(--text-mute);cursor:pointer;position:relative;border-left:2px solid transparent}.side-item:hover{color:var(--text);background:#ffffff05}.side-item.active{color:var(--bone-100);background:var(--ink-300);border-left-color:var(--persimmon)}.side-item .ic{width:14px;height:14px;color:var(--text-faint);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.side-item .ic svg{width:14px;height:14px;stroke:currentColor;stroke-width:1.5;fill:none}.side-item.active .ic{color:var(--persimmon)}.side-item .badge{margin-left:auto;font-family:var(--font-mono);font-size:10px;color:var(--text-faint);background:var(--ink-300);padding:1px 5px;border-radius:2px;min-width:18px;text-align:center}.side-item.active .badge{background:var(--ink-500);color:var(--bone-200)}.session-row{padding:8px 16px 8px 18px;border-left:2px solid transparent;cursor:pointer}.session-row:hover{background:#ffffff06}.session-row.active{background:var(--ink-300);border-left-color:var(--persimmon)}.session-row .ttl{font-size:12.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.session-row .ttl .dot{width:5px;height:5px;border-radius:50%;background:var(--text-faint);flex-shrink:0}.session-row .ttl .dot.live{background:var(--persimmon);box-shadow:0 0 0 3px #ff7a3d2e}.session-row .ttl .dot.ok{background:var(--moss)}.session-row .ttl .dot.err{background:var(--rust)}.session-row .meta{margin-top:2px;display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:10px;color:var(--text-faint)}.statusbar{height:var(--statusbar-h);display:flex;align-items:center;padding:0 12px;gap:14px;font-family:var(--font-mono);font-size:10.5px;color:var(--text-mute);border-top:1px solid var(--border);background:var(--ink-100)}.statusbar .stat{display:inline-flex;align-items:center;gap:6px}.statusbar .stat .lbl{color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;font-size:9px}.statusbar .stat .val{color:var(--bone-200)}.statusbar .sep{width:1px;height:10px;background:var(--border)}.statusbar .right{margin-left:auto;display:flex;gap:14px}.btn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:3px;font-size:12px;font-weight:500;border:1px solid var(--border);background:var(--ink-200);color:var(--text);transition:background .12s,border-color .12s;white-space:nowrap}.btn:hover{background:var(--ink-300);border-color:var(--border-strong)}.btn--primary{background:var(--persimmon);color:#1a0c04;border-color:var(--persimmon-dim);font-weight:600}.btn--primary:hover{background:#ff8a52}.btn--ghost{background:transparent;border-color:transparent;color:var(--text-mute)}.btn--ghost:hover{color:var(--text);background:var(--ink-300)}.btn--danger{color:var(--rust)}.btn--danger:hover{background:#d9666614;border-color:var(--rust-deep)}.btn--sm{height:22px;padding:0 7px;font-size:11px}.btn--lg{height:36px;padding:0 16px;font-size:13px}.btn .ic{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;opacity:.85;flex-shrink:0}.btn .ic svg{width:14px;height:14px;stroke:currentColor;stroke-width:1.5;fill:none}.btn--primary .ic{opacity:1}.btn--lg .ic,.btn--lg .ic svg{width:16px;height:16px}.btn--sm .ic,.btn--sm .ic svg{width:12px;height:12px}.ic{display:inline-flex;align-items:center;justify-content:center;vertical-align:-2px;flex-shrink:0}.ic svg{width:14px;height:14px;stroke:currentColor;stroke-width:1.5;fill:none}.kbd{font-family:var(--font-mono);font-size:9.5px;color:var(--text-faint);border:1px solid var(--border);background:var(--ink-100);padding:1px 4px;border-radius:2px;letter-spacing:.04em}.icon-btn{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:3px;color:var(--text-mute);border:1px solid transparent;font-family:var(--font-mono);font-size:13px}.icon-btn:hover{color:var(--text);background:var(--ink-300);border-color:var(--border)}.icon-btn svg{width:14px;height:14px;stroke:currentColor;stroke-width:1.5;fill:none}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 7px;border-radius:99px;font-family:var(--font-mono);font-size:10px;letter-spacing:.05em;background:var(--ink-300);color:var(--text-mute);border:1px solid var(--border);text-transform:uppercase}.pill .glyph{font-size:8px;line-height:1}.pill--ok{color:var(--moss);border-color:#8db5804d;background:#8db58014}.pill--warn{color:var(--amber);border-color:#e8b85d4d;background:#e8b85d14}.pill--err{color:var(--rust);border-color:#d966664d;background:#d9666614}.pill--info{color:var(--sky);border-color:#6e9bd14d;background:#6e9bd114}.pill--accent{color:var(--persimmon);border-color:#ff7a3d4d;background:#ff7a3d14}.pill--ghost{color:var(--text-mute);background:transparent}.pill--solid{background:var(--persimmon);color:#1a0c04;border-color:var(--persimmon-dim)}.tag{font-family:var(--font-mono);font-size:10px;color:var(--text-mute);padding:1px 6px;background:var(--ink-300);border-radius:2px;border:1px solid var(--border);letter-spacing:.02em}.dot{width:6px;height:6px;border-radius:50%;display:inline-block}.dot--ok{background:var(--moss);box-shadow:0 0 6px #8db58080}.dot--warn{background:var(--amber)}.dot--err{background:var(--rust);box-shadow:0 0 6px #d9666680}.dot--live{background:var(--persimmon);box-shadow:0 0 0 3px #ff7a3d29}.dot--idle{background:var(--text-faint)}.card{background:var(--ink-200);border:1px solid var(--border);border-radius:4px;position:relative}.card-header{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);font-size:12px}.card-header .num{font-family:var(--font-mono);font-size:9.5px;color:var(--text-faint);letter-spacing:.12em}.card-header .ttl{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:14px;color:var(--bone-100)}.card-body{padding:14px}.section-head{display:grid;grid-template-columns:64px 1fr auto;gap:16px;align-items:end;padding:24px 0 16px;border-bottom:1px solid var(--border);margin-bottom:16px}.section-head .num{font-family:var(--font-mono);font-size:10px;color:var(--text-faint);letter-spacing:.16em}.section-head .ttl-wrap h1{font-family:var(--font-display);font-weight:400;font-size:32px;letter-spacing:-.02em;color:var(--bone-100);font-feature-settings:"ss01"}.section-head .ttl-wrap h1 em{font-style:italic;color:var(--persimmon)}.section-head .ttl-wrap .sub{margin-top:6px;font-size:12.5px;color:var(--text-mute);max-width:720px}.tabs{display:flex;align-items:center;gap:0;border-bottom:1px solid var(--border);height:var(--tab-h);padding:0 8px;background:var(--ink-100)}.tab{display:inline-flex;align-items:center;gap:8px;height:100%;padding:0 12px;font-family:var(--font-mono);font-size:11px;color:var(--text-mute);border-bottom:1px solid transparent;margin-bottom:-1px;letter-spacing:.04em;text-transform:lowercase;cursor:pointer}.tab .num{font-size:9px;color:var(--text-faint)}.tab:hover{color:var(--text)}.tab.active{color:var(--bone-100);border-bottom-color:var(--persimmon)}.tab .count{background:var(--ink-300);color:var(--text-mute);font-size:9.5px;padding:1px 5px;border-radius:2px}.tab.active .count{background:var(--persimmon);color:#1a0c04}.input{height:30px;padding:0 10px;background:var(--ink-100);border:1px solid var(--border);border-radius:3px;font-size:12.5px;color:var(--text);width:100%;font-family:var(--font-sans)}.input:focus{border-color:var(--persimmon);background:var(--ink-200)}.input--mono{font-family:var(--font-mono);font-size:12px}.input-group{display:flex;flex-direction:column;gap:6px}.input-group>label{font-family:var(--font-mono);font-size:9.5px;color:var(--text-faint);letter-spacing:.14em;text-transform:uppercase}.search{display:flex;align-items:center;gap:8px;height:30px;padding:0 10px;background:var(--ink-100);border:1px solid var(--border);border-radius:3px;font-family:var(--font-mono);font-size:11.5px;color:var(--text-mute)}.search .ic{color:var(--text-faint);flex-shrink:0;width:14px;height:14px}.search .ic svg{width:14px;height:14px;stroke:currentColor;stroke-width:1.5;fill:none}.search>span:nth-of-type(1){flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search .kbd{margin-left:auto;flex-shrink:0}.search:focus-within{border-color:var(--border-strong)}.search--sidebar{margin:0 12px 12px}.search--sm{height:26px;padding:0 8px;font-size:11px;gap:6px}.search--sm .ic,.search--sm .ic svg{width:12px;height:12px}.toolbar .search{flex:1;max-width:360px}.search .em{color:var(--persimmon)}.toggle{width:28px;height:16px;background:var(--ink-400);border-radius:99px;position:relative;cursor:pointer;border:1px solid var(--border)}.toggle:after{content:"";position:absolute;left:2px;top:1px;width:12px;height:12px;border-radius:50%;background:var(--bone-300);transition:.15s}.toggle.on{background:var(--persimmon);border-color:var(--persimmon-dim)}.toggle.on:after{left:13px;background:#1a0c04}.divider{height:1px;background:var(--border);margin:16px 0}.line-num{font-family:var(--font-mono);font-size:10.5px;color:var(--text-faint);letter-spacing:.04em}.callout-num{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:1px solid var(--persimmon);color:var(--persimmon);font-family:var(--font-mono);font-size:10px;border-radius:50%;flex-shrink:0}.scroll-y{overflow-y:auto}.scroll-x{overflow-x:auto}.page-wrap{height:100%;overflow-y:auto;position:relative}.page-wrap:after{content:"";position:absolute;top:0;bottom:0;left:56px;width:1px;background:#ffffff06;pointer-events:none}.page-content{max-width:1200px;padding:0 64px 64px}@media(max-width:1280px){.app--three{grid-template-columns:220px 1fr 360px}}.workspace{background:var(--ink-100);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.ws-head{display:flex;align-items:center;padding:0 4px;height:36px;border-bottom:1px solid var(--border);background:var(--ink-100)}.ws-tab{padding:0 8px;height:100%;display:inline-flex;align-items:center;gap:6px;flex-shrink:0;white-space:nowrap;font-family:var(--font-mono);font-size:11px;color:var(--text-mute);border-bottom:1px solid transparent;margin-bottom:-1px;letter-spacing:.04em;text-transform:lowercase;cursor:pointer;position:relative}.ws-tab .num{font-size:9px;color:var(--text-faint)}.ws-tab .count{background:var(--ink-300);color:var(--text-mute);font-size:9.5px;padding:1px 5px;border-radius:2px}.ws-tab.active{color:var(--bone-100);border-bottom-color:var(--persimmon)}.ws-tab.active .count{background:var(--persimmon);color:#1a0c04}.ws-tab:hover{color:var(--text)}.ws-tab .badge{width:6px;height:6px;border-radius:50%;display:inline-block}.ws-tab .badge.live{background:var(--persimmon)}.ws-tab .badge.warn{background:var(--amber)}.ws-tab .badge.err{background:var(--rust)}.ws-actions{margin-left:auto;display:flex;gap:4px;padding-right:4px}.ws-body{flex:1;overflow:hidden;display:flex;flex-direction:column}.ws-rail{background:var(--ink-100);border-left:1px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:6px}.rail-tab{width:40px;height:40px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:3px;font-family:var(--font-mono);font-size:9px;color:var(--text-faint);letter-spacing:.05em;cursor:pointer;position:relative}.rail-tab .ic{font-size:14px;color:var(--text-mute)}.rail-tab:hover .ic{color:var(--text)}.rail-tab.active{background:var(--ink-300);color:var(--bone-100)}.rail-tab.active .ic{color:var(--persimmon)}.rail-tab.active:before{content:"";position:absolute;left:-1px;top:4px;bottom:4px;width:2px;background:var(--persimmon)}.rail-tab .badge{position:absolute;top:2px;right:2px;font-size:8px;padding:0 3px;border-radius:99px;background:var(--persimmon);color:#1a0c04;font-weight:600}.rail-tab .badge.warn{background:var(--amber);color:#2a1f08}.rail-tab .badge.err{background:var(--rust);color:#2a0c0c}.rail-divider{width:28px;height:1px;background:var(--border);margin:6px 0}.rail-bot{margin-top:auto;display:flex;flex-direction:column;gap:6px}.term-foot{padding:8px 10px;border-top:1px solid var(--border);background:var(--ink-100);display:flex;gap:10px;align-items:center;font-family:var(--font-mono);font-size:10px;color:var(--text-faint);white-space:nowrap}.term-foot>*{flex-shrink:0}.term-foot .stat{display:inline-flex;gap:6px;align-items:center;flex-shrink:0;white-space:nowrap}.term-foot .stat .v{color:var(--bone-200)}.term-foot .right{margin-left:auto;display:flex;gap:6px;flex-shrink:0}.term-foot .right>*{flex-shrink:0;white-space:nowrap}.art-foot{padding:8px 10px;border-top:1px solid var(--border);display:flex;gap:10px;align-items:center;flex-wrap:nowrap;white-space:nowrap;font-family:var(--font-mono);font-size:10.5px;color:var(--text-faint)}.art-foot>*{flex-shrink:0;white-space:nowrap}.art-foot button{flex-shrink:0}
