.site-shell{min-height:100vh;background:var(--ink-900);color:#fff}.public-header{height:76px;display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:var(--content);margin:auto;padding:0 2rem;position:relative;z-index:3}.public-header nav{display:flex;align-items:center;gap:1.2rem}.public-header nav>a:not(.button){color:#bdd0d8;font-size:.9rem}.public-footer{max-width:var(--content);margin:auto;padding:2rem;display:flex;justify-content:space-between;color:#8da4af;border-top:1px solid rgba(255,255,255,.08)}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);z-index:20;display:flex;flex-direction:column;padding:1.5rem;background:var(--ink-900);color:#e5f2f4}.sidebar-head{height:42px;display:flex;align-items:center;justify-content:space-between}.drawer-close{display:none}.node-summary{display:flex;align-items:center;gap:.75rem;margin:2rem 0 1.4rem;padding:1rem;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);background:rgba(255,255,255,.035)}.node-summary div{display:grid}.node-summary strong{font-size:.84rem}.node-summary span{color:#8ea7b3;font-size:.72rem}.node-dot{width:10px;height:10px;flex:0 0 auto;border-radius:50%;background:#83939a;box-shadow:0 0 0 4px rgba(131,147,154,.1)}.node-dot--online{background:var(--teal);box-shadow:0 0 0 4px rgba(68,225,189,.12),0 0 16px rgba(68,225,189,.4)}.node-dot--paused{background:var(--amber)}.side-nav{display:grid;gap:.35rem}.nav-link{padding:.72rem .9rem;border-radius:10px;color:#91a8b3;font-weight:600;transition:background var(--ease),color var(--ease),transform var(--ease)}.nav-link:hover{color:#fff;background:rgba(255,255,255,.05);transform:translateX(2px)}.nav-link.is-active{color:#fff;background:rgba(255,255,255,.07)}.sidebar-foot{margin-top:auto;display:grid;gap:.55rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.08)}.account-email{overflow:hidden;text-overflow:ellipsis;color:#9db0ba;font-size:.75rem}.sidebar-foot .text-button{text-align:left;padding-left:0}.app-main{min-height:100vh;margin-left:var(--sidebar);padding:0 clamp(1.2rem,3vw,3rem) 4rem}.app-topline{height:76px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.app-topline>div{display:grid}.app-topline .eyebrow{margin:0}.app-topline strong{font-family:var(--font-display);font-size:.9rem}.key-state{padding:.42rem .7rem;border-radius:999px;background:#e1f8f1;color:var(--teal-dark);font-size:.72rem;font-weight:700}.route-view{max-width:var(--content);margin:0 auto}.mobile-topbar,.drawer-backdrop{display:none}.notice{position:fixed;z-index:50;right:1.25rem;top:1.25rem;max-width:min(420px,calc(100vw - 2.5rem));display:flex;align-items:center;gap:1rem;padding:.9rem 1rem;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--text);box-shadow:var(--shadow)}.notice span{flex:1}.notice button{border:0;background:none;color:var(--muted)}.notice--error span{color:var(--danger)}
.mesh-key-banner{margin:0 0 1.5rem;padding:1.15rem 1.3rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}.mesh-key-banner strong{display:block;margin-bottom:.35rem;font-family:var(--font-display);font-size:1.02rem;color:var(--text)}.mesh-key-banner p{margin:0 0 .9rem;max-width:640px;color:var(--muted);font-size:.85rem;line-height:1.6}.mesh-key-banner .button-row{margin:0}
.anchor-role-badge{display:inline-flex;align-items:center;gap:.38rem;width:max-content;padding:.32rem .58rem;border:1px solid #cfc7ff;border-radius:999px;background:#eeeaff;color:#5746bd;font-size:.62rem;font-weight:800;line-height:1;letter-spacing:.04em}.anchor-role-badge i{width:6px;height:6px;border:1.5px solid currentColor;transform:rotate(45deg)}.node-summary div{min-width:0}.node-summary strong{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem}.node-summary .anchor-role-badge--dark{border-color:rgba(182,170,255,.38);background:rgba(149,133,255,.15);color:#d8d1ff;font-size:.54rem}.app-topline-status{display:flex!important;align-items:center;gap:.55rem}.mobile-node-state{display:flex;align-items:center;gap:.55rem}
@media(max-width:900px){.public-header{padding:0 1.1rem}.public-header nav>a:not(.button){display:none}.public-footer{padding:1.5rem 1.1rem;display:grid;gap:.35rem}.mobile-topbar{position:sticky;top:0;z-index:15;height:64px;display:flex;align-items:center;justify-content:space-between;padding:max(.7rem,env(safe-area-inset-top)) 1rem .7rem;background:rgba(7,17,31,.96);color:#fff;backdrop-filter:blur(18px)}.mobile-topbar .brand-wordmark{position:absolute;left:50%;top:50%;min-width:44px;min-height:44px;justify-content:center;transform:translate(-50%,-50%);gap:0}.mobile-topbar .brand-lockup{display:none}.menu-toggle{min-height:40px;padding:.45rem .65rem;border:1px solid rgba(255,255,255,.15);border-radius:10px;background:transparent;color:#fff}.sidebar{width:min(84vw,310px);transform:translateX(-105%);transition:transform var(--ease);box-shadow:var(--shadow)}.drawer-close{display:block;border:0;background:none;color:#9db0ba}.drawer-backdrop{position:fixed;inset:0;z-index:19;display:block;background:rgba(2,8,14,.55);opacity:0;pointer-events:none;transition:opacity var(--ease)}.nav-open .sidebar{transform:translateX(0)}.nav-open .drawer-backdrop{opacity:1;pointer-events:auto}.app-main{margin-left:0;padding:0 1rem 3rem}.app-topline{display:none}.route-view{padding-top:.5rem}.notice{top:74px;right:1rem}}
.mobile-topbar .anchor-role-badge--mobile{border-color:rgba(182,170,255,.38);background:rgba(149,133,255,.15);color:#ddd7ff;font-size:.56rem}
