.app-shell{position:relative;z-index:1;min-height:100vh;padding-top:calc(var(--header-h) + 8px);padding-left:calc(var(--taskbar-w) + 6px);padding-bottom:calc(var(--footer-h) + 12px)}
.shell-content{width:100%;max-width:var(--content-max);margin:0 auto;display:block;padding:12px 18px 0;transition:grid-template-columns .24s var(--ease),gap .24s var(--ease),max-width .24s var(--ease),padding .24s var(--ease)}
body.has-context-sidebar .shell-content{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);gap:12px}

body[data-route="home"] .shell-content{max-width:none;padding-left:clamp(12px,1.2vw,24px);padding-right:clamp(12px,1.2vw,24px)}
body[data-route="home"] .main-body,body[data-route="home"] .home-page,body[data-route="home"] .hero-panel{width:100%;min-width:0}
body[data-route="home"] .context-sidebar{display:none!important}

.taskbar-left{position:fixed;top:0;left:0;bottom:0;width:var(--taskbar-w);z-index:255;display:flex;flex-direction:column;justify-content:space-between;padding:8px 6px;border-right:2px solid var(--line);background:var(--glass-strong);backdrop-filter:blur(16px);overflow:visible}
.taskbar-left::after{content:"";position:absolute;top:0;bottom:0;right:-5px;width:4px;background:linear-gradient(180deg,var(--gold),rgba(224,169,53,.2) 50%,rgba(180,122,50,.06))}
.taskbar-top,.taskbar-main,.taskbar-bottom{display:grid;gap:6px}
.tb-item{position:relative;width:100%;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:4px 2px;border:1px solid transparent;background:transparent;color:var(--muted);transition:background .18s,border-color .18s,color .18s,transform .18s}
.tb-item::before{content:"";position:absolute;left:-7px;top:8px;bottom:8px;width:3px;background:transparent;transition:background .18s,transform .18s}
.tb-item::after{content:attr(data-label);position:absolute;left:calc(100% + 14px);top:50%;transform:translateY(-50%) translateX(-4px);padding:5px 8px;border:1px solid var(--line);background:var(--bg-2);color:var(--text);font-size:8px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .16s,transform .16s;box-shadow:var(--shadow)}
.tb-item:hover{background:rgba(224,169,53,.04);border-color:rgba(224,169,53,.18);color:var(--gold);transform:translateX(1px)}
.tb-item:hover::after{opacity:1;transform:translateY(-50%) translateX(0)}
.tb-item.active{background:rgba(224,169,53,.06);border-color:rgba(224,169,53,.24);color:var(--gold)}
.tb-item.active::before{background:var(--gold)}
.tb-item svg{width:18px;height:18px;stroke-width:1.55}
.tb-item .badge{position:absolute;top:3px;right:5px;transform:scale(.82)}
.tb-label{font-size:7px;letter-spacing:.02em;text-transform:uppercase;color:inherit;line-height:1.25;display:block;width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:normal;text-align:center;word-break:break-word}
.tb-brand{border-color:var(--line-2);background:var(--bg-2);color:var(--text)}
.tb-brand::after{display:none}
.tb-brand-mark{width:26px;height:26px;display:grid;place-items:center;border:2px solid var(--line);background:var(--bg);font-size:12px;font-weight:600;letter-spacing:.08em}
.tb-brand-mark img{display:block;width:20px;height:20px;object-fit:contain}
.taskbar-state{display:grid;gap:3px;padding:6px 4px;border-top:1px solid var(--line-2);background:var(--bg-2);font-size:7px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2);text-align:center;min-height:54px;max-height:54px;overflow:hidden}
.taskbar-state-title{display:flex;align-items:center;justify-content:center;gap:4px;font-size:7px}
.taskbar-state .dot{width:5px;height:5px;animation:pulseDot 2s ease infinite}
.taskbar-state strong{display:block;font-size:8px;letter-spacing:.1em;color:var(--text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.taskbar-state small{display:block;font-size:7px;line-height:1.2;color:var(--muted);font-weight:400;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}

.main-body{min-width:0;animation:contentIn .28s var(--ease) both}
@keyframes contentIn{from{opacity:.55;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.nav-scrim{position:fixed;inset:0;z-index:160;opacity:0;pointer-events:none;background:rgba(247,243,234,.56);transition:opacity .18s var(--ease)}
body.sidebar-open .nav-scrim{opacity:1;pointer-events:auto}
body.start-open{overflow:hidden}
body.start-open .nav-scrim{opacity:1;pointer-events:auto;background:rgba(247,243,234,.66);backdrop-filter:blur(3px)}

/* ── Dark mode shell ── */
[data-theme="dark"] .taskbar-left{background:var(--glass-strong);border-color:rgba(232,228,220,.12)}
[data-theme="dark"] .taskbar-left::after{background:linear-gradient(180deg,rgba(224,169,53,.16),rgba(180,122,50,.04) 50%,transparent)}
[data-theme="dark"] .nav-scrim{background:rgba(10,11,14,.56)}
[data-theme="dark"] body.start-open .nav-scrim{background:rgba(10,11,14,.7)}


/* v0.8.1: hide static SEO fallback while the JS OS shell is active */
body.z-os #seoStaticHero{display:none!important}
