/* Shared navigation for the public site and authenticated dashboard. */
.dashboard-main{min-height:100vh;padding:1.5rem;transition:margin-left .25s ease}
.dashboard-main-with-nav{margin-left:220px}
.dashboard-mobile-header,.mobile-menu-button,.mobile-drawer-heading{display:none}
.mobile-menu-button,.mobile-menu-close{align-items:center;justify-content:center;gap:8px;min-height:44px;flex-shrink:0;border:1px solid rgba(34,211,238,.35);border-radius:10px;background:#122333;color:#e2faff;font:600 14px/1 system-ui,sans-serif;cursor:pointer}
.mobile-menu-button{padding:0 14px}
.mobile-menu-close{display:flex;width:44px;background:#0f172a;color:#e2e8f0}
.mobile-menu-button svg,.mobile-menu-close svg{flex-shrink:0}
.mobile-menu-button:focus-visible,.mobile-menu-close:focus-visible,.mobile-nav-panel a:focus-visible{outline:2px solid #22d3ee;outline-offset:-2px}
.mobile-nav-backdrop{position:fixed;inset:0;z-index:110;background:rgba(0,0,0,.65);touch-action:none}
.mobile-nav-backdrop[hidden]{display:none}

/* Dashboard: a stable topic rail with a second pane for destination links. */
.sb{position:fixed;inset:0 auto 0 0;width:220px;box-sizing:border-box;background:#0a0e17;border-right:1px solid rgba(71,85,105,.3);z-index:60;display:flex;flex-direction:column}
.sb-logo{display:flex;align-items:center;justify-content:center;min-height:76px;padding:16px;box-sizing:border-box;border-bottom:1px solid rgba(71,85,105,.25);flex-shrink:0}
.sb-logo a{display:flex;align-items:center;justify-content:center;width:100%}
.sb-logo-icon{display:none}
.sb-logo-full{display:block;width:100%;max-width:188px;height:34px;object-fit:contain}
.sb-nav{flex:1;min-height:0;padding:24px 12px;overflow-y:auto;overflow-x:hidden}
.sb-topic{box-sizing:border-box;text-decoration:none;display:flex;align-items:center;gap:12px;width:100%;min-height:48px;margin:0 0 6px;padding:12px;border:1px solid transparent;border-radius:10px;background:transparent;color:#94a3b8;text-align:left;font:600 14px/1.4 'Inter',system-ui,sans-serif;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.sb-topic svg{flex-shrink:0}
.sb-topic .sb-topic-chevron{margin-left:auto;width:14px;opacity:.55}
.sb-topic:hover,.sb-topic[aria-expanded="true"]{background:#122333;border-color:rgba(34,211,238,.2);color:#e2faff}
.sb-topic-active{background:rgba(6,182,212,.08);color:#22d3ee}
.sb-topic[aria-expanded="true"] .sb-topic-chevron{opacity:1;color:#22d3ee}
.sb-topic:focus-visible,.sb-flyout-back:focus-visible,.sb-logo a:focus-visible{outline:2px solid #22d3ee;outline-offset:2px}
.sb-flyout{position:absolute;left:100%;top:0;bottom:0;width:260px;box-sizing:border-box;display:flex;flex-direction:column;background:#0f1724;border-right:1px solid rgba(34,211,238,.2);box-shadow:16px 0 40px rgba(0,0,0,.3);animation:topic-slide-in .18s ease-out}
.sb-flyout[hidden]{display:none}
.sb-flyout-heading{display:flex;align-items:center;gap:10px;min-height:76px;padding:12px 16px;box-sizing:border-box;border-bottom:1px solid rgba(71,85,105,.3);flex-shrink:0}
.sb-flyout-heading h2{margin:0;color:#f1f5f9;font-size:18px;font-weight:650;line-height:1.3}
.sb-flyout-back{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:44px;padding:0;border:0;border-radius:8px;color:#94a3b8;background:transparent;cursor:pointer}
.sb-flyout-back:hover{background:rgba(34,211,238,.08);color:#e2faff}
.sb-flyout-links{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;padding:20px 12px}
.sb-link{display:flex;align-items:center;gap:12px;min-height:44px;box-sizing:border-box;padding:10px 12px;border-radius:10px;color:#94a3b8;text-decoration:none;transition:background .15s,color .15s;position:relative}
.sb-link svg{flex-shrink:0;width:18px;min-width:18px}
.sb-link span{font-size:13px;font-weight:500;line-height:1.5}
.sb-link:hover{color:#e2e8f0;background:rgba(6,182,212,.08)}
.sb-link.sb-active{color:#22d3ee;background:rgba(6,182,212,.1)}
.sb-link.sb-active::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:20px;border-radius:3px;background:#22d3ee}
.sb-bottom{padding:10px 12px;border-top:1px solid rgba(71,85,105,.25);flex-shrink:0}
.sb-status{display:flex;align-items:center;gap:8px;padding:8px 12px}
.sb-status span:last-child{font-size:11px;color:#64748b}
.sb-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 8px rgba(34,197,94,.4);flex-shrink:0}
.sb-link.sb-logout{color:#f87171}
.sb-link.sb-logout:hover{background:rgba(239,68,68,.06)}
@keyframes topic-slide-in{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:translateX(0)}}

/* Keep this breakpoint in sync with navigation.js. */
@media(max-width:1024px){
    .mobile-menu-button{display:flex}
    .dashboard-mobile-header{position:fixed;inset:0 0 auto;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding:8px 16px;padding-top:calc(8px + env(safe-area-inset-top,0px));background:rgba(10,14,23,.97);border-bottom:1px solid rgba(71,85,105,.3);box-sizing:border-box}
    .mobile-brand{display:flex;min-width:0}
    .mobile-brand img{display:block;width:100%;max-width:200px;height:32px;object-fit:contain;object-position:left}
    .dashboard-main-with-nav{margin-left:0;padding:calc(84px + env(safe-area-inset-top,0px)) 16px 24px}
    .pn .pn-inner{grid-template-columns:minmax(0,1fr) auto;gap:16px;height:auto;min-height:64px;padding:8px 16px;padding-top:calc(8px + env(safe-area-inset-top,0px))}
    .pn .pn-logo img{max-width:200px;height:32px}
    .pn .pn-links,.pn .pn-cta{display:none}
    .sb.mobile-nav-panel,.pn-mobile.mobile-nav-panel{display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:120;width:min(320px,calc(100vw - 48px));max-height:100dvh;box-sizing:border-box;padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px);background:#0a0e17;border:0;border-right:1px solid rgba(71,85,105,.4);box-shadow:12px 0 40px rgba(0,0,0,.3);overflow:hidden;visibility:hidden;transform:translateX(-100%);transition:transform .2s ease}
    .mobile-nav-panel.is-open{visibility:visible;transform:translateX(0)}
    .mobile-drawer-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding:10px 16px;border-bottom:1px solid rgba(71,85,105,.3);flex-shrink:0;box-sizing:border-box}
    .mobile-drawer-heading strong{font-size:16px;font-weight:600;color:#f1f5f9}
    .sb.mobile-nav-panel .sb-logo{display:none}
    .sb.mobile-nav-panel .sb-link{min-height:44px;box-sizing:border-box;color:#cbd5e1}
    .sb.mobile-nav-panel .sb-link.sb-active{color:#22d3ee}
    .sb.mobile-nav-panel .sb-link.sb-logout{color:#f87171}
    .sb.mobile-nav-panel .sb-link span{font-size:14px}
    .sb.mobile-nav-panel .sb-nav,.pn-mobile-links{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
    .sb.mobile-nav-panel .sb-flyout{inset:calc(64px + env(safe-area-inset-top,0px)) 0 env(safe-area-inset-bottom,0px);width:100%;border:0;box-shadow:none}
    .sb.mobile-nav-panel .sb-flyout-heading{min-height:64px}
    .sb.mobile-nav-panel .sb-flyout-back{width:44px}
    .sb.mobile-nav-panel.has-topic-open .sb-nav,.sb.mobile-nav-panel.has-topic-open .sb-bottom{visibility:hidden}
    .pn-mobile-links{display:flex;flex-direction:column;gap:4px;overflow-y:auto;min-height:0;padding:12px}
    .pn-mobile-links .pn-link{display:flex;align-items:center;min-height:48px;padding:12px 16px;font-size:15px;color:#cbd5e1}
    .pn-mobile-links .pn-link.active{color:#22d3ee}
}
@media(prefers-reduced-motion:reduce){
    .mobile-nav-panel,.dashboard-main,.sb-topic{transition:none!important}
    .sb-flyout{animation:none!important}
}
