:root{--ink-950:#0b0e14;--ink-900:#10141c;--ink-850:#141a24;--ink-800:#1a212d;--ink-700:#222b3a;--ink-600:#2d3849;--ink-500:#3b4859;--ink-400:#5a6b80;--ink-300:#8595a8;--ink-200:#b6c2d2;--ink-100:#dce3ec;--ink-050:#f2f5f9;--accent-600:#2f6bff;--accent-500:#3d7bff;--accent-400:#5e94ff;--accent-300:#8fb4ff;--accent-soft:rgba(61,123,255,.14);--ok-500:#27c498;--ok-soft:rgba(39,196,152,.14);--warn-500:#f5b13d;--warn-soft:rgba(245,177,61,.14);--bad-500:#f0544c;--bad-soft:rgba(240,84,76,.14);--idle-500:#6b7a8f;--violet-500:#9b7bff;--violet-400:#b39dff;--violet-300:#c8b8ff;--violet-soft:rgba(155,123,255,.16);--canvas:#07090e;--surface-shell:#0e121a;--surface-page:#10141c;--surface-work:#141a24;--surface-elev:#1a212d;--surface-audit:#11161f;--font:"Segoe UI Variable","Segoe UI",Inter,system-ui,-apple-system,sans-serif;--mono:"Cascadia Code","SF Mono",ui-monospace,Consolas,monospace;--t-display:600 28px/1.2 var(--font);--t-h1:600 20px/1.3 var(--font);--t-h2:600 15px/1.4 var(--font);--t-body:400 14px/1.5 var(--font);--t-small:400 13px/1.45 var(--font);--t-micro:600 11px/1.3 var(--font);--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-pill:999px;--sh-1:0 1px 2px rgba(0,0,0,.4);--sh-2:0 6px 20px rgba(0,0,0,.45);--sh-3:0 18px 50px rgba(0,0,0,.55);--m-fast:.12s cubic-bezier(.2,.7,.3,1);--m-base:.2s cubic-bezier(.2,.7,.3,1)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--canvas);color:var(--ink-100);font:var(--t-body);-webkit-font-smoothing:antialiased}a{color:var(--accent-300);text-decoration:none}a:hover{text-decoration:underline}h1{font:var(--t-h1);margin:0;color:#fff}h2{font:var(--t-h2);margin:0;color:#fff}p{margin:0}button,input,select{font:inherit}:focus-visible{outline:2px solid var(--accent-400);outline-offset:2px}code{font-family:var(--mono);font-size:.92em}.muted{color:var(--ink-300)}.small{font:var(--t-small)}.micro{font:var(--t-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-400)}.row{display:flex;align-items:center;gap:var(--s3)}.stack{display:grid;gap:var(--s3)}.spacer{flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);padding:9px 14px;border-radius:var(--r-md);border:1px solid transparent;cursor:pointer;font-weight:600;transition:background var(--m-fast),border-color var(--m-fast)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent-500);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-400)}.btn-secondary{background:var(--surface-elev);border-color:var(--ink-600);color:var(--ink-100)}.btn-secondary:hover:not(:disabled){border-color:var(--accent-400)}.btn-danger{background:var(--bad-soft);color:var(--bad-500);border-color:transparent}.btn-ghost{background:transparent;color:var(--ink-200)}.btn-ghost:hover:not(:disabled){background:var(--surface-elev)}.btn-sm{padding:6px 10px;font:var(--t-small);font-weight:600}.btn-block{width:100%}.error{font:var(--t-small);color:var(--bad-500)}.field{display:grid;gap:6px}.field label{font:var(--t-small);font-weight:600;color:var(--ink-200)}.field .hint{font:var(--t-small);color:var(--ink-400)}.field .error{font:var(--t-small);color:var(--bad-500)}.input{width:100%;padding:9px 12px;border-radius:var(--r-md);border:1px solid var(--ink-600);background:var(--surface-page);color:var(--ink-050)}.input:focus-visible{outline:2px solid var(--accent-400);outline-offset:2px;border-color:var(--accent-400)}.input-prefix{display:flex;align-items:center;border:1px solid var(--ink-600);border-radius:var(--r-md);background:var(--surface-page);overflow:hidden}.input-prefix span{padding:9px 0 9px 12px;color:var(--ink-400);font-family:var(--mono);font-size:13px}.input-prefix .input{border:0;border-radius:0;flex:1}.pill{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:var(--r-pill);font:var(--t-micro);letter-spacing:.03em}.pill .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.pill-ok{background:var(--ok-soft);color:var(--ok-500)}.pill-idle{background:#6b7a8f29;color:var(--ink-300)}.pill-warn{background:var(--warn-soft);color:var(--warn-500)}.pill-bad{background:var(--bad-soft);color:var(--bad-500)}.pill-accent{background:var(--accent-soft);color:var(--accent-300)}.pill-violet{background:var(--violet-soft);color:var(--violet-400)}.card{background:var(--surface-work);border:1px solid var(--ink-700);border-radius:var(--r-lg);padding:var(--s5)}.state{display:grid;justify-items:center;text-align:center;gap:var(--s3);padding:var(--s7) var(--s5);color:var(--ink-300)}.state .icon{font-size:28px;width:56px;height:56px;display:grid;place-items:center;border-radius:var(--r-lg);background:var(--surface-elev);color:var(--ink-200)}.state h2{color:#fff}.skeleton{background:linear-gradient(90deg,var(--surface-elev),var(--ink-700),var(--surface-elev));background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:var(--r-md);height:56px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.dialog-backdrop{position:fixed;inset:0;background:#0000008c;display:grid;place-items:center;z-index:50}.dialog{width:min(520px,calc(100vw - 32px));background:var(--surface-elev);border:1px solid var(--ink-600);border-radius:var(--r-lg);box-shadow:var(--sh-3);padding:var(--s5);display:grid;gap:var(--s4)}.dialog header{display:flex;align-items:center;justify-content:space-between}.shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100%}.sidebar{background:var(--surface-shell);border-right:1px solid var(--ink-800);display:flex;flex-direction:column;padding:var(--s4) var(--s3);gap:var(--s4)}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px;font-weight:700;color:#fff}.brand .dot{width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#8fb4ff,var(--accent-500))}.nav{display:grid;gap:2px}.nav .label{font:var(--t-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-400);padding:12px 10px 4px}.nav a,.nav .nav-disabled{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-md);color:var(--ink-200)}.nav a:hover{background:var(--surface-elev);text-decoration:none}.nav a.active{background:var(--accent-soft);color:#fff}.nav .nav-disabled{color:var(--ink-500);cursor:not-allowed}.nav .soon{margin-left:auto;font:var(--t-micro);padding:1px 7px;border-radius:var(--r-pill);background:var(--surface-elev);color:var(--ink-400)}.nav .count{margin-left:auto;font:var(--t-micro);padding:1px 7px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-300)}.orgsw{position:relative}.orgsw>button{width:100%;display:flex;align-items:center;gap:10px;background:var(--surface-elev);border:1px solid var(--ink-700);color:#fff;border-radius:var(--r-md);padding:8px 10px;text-align:left;cursor:pointer}.orgsw .avatar{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-300);font-weight:700;font-size:12px}.orgsw .oname{font-weight:600}.orgsw .orole{font:var(--t-small);color:var(--ink-300)}.orgsw .menu{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--surface-elev);border:1px solid var(--ink-600);border-radius:var(--r-md);padding:6px;box-shadow:var(--sh-2);display:grid;gap:2px;z-index:20}.orgsw .menu button{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;color:var(--ink-100);border-radius:var(--r-sm);padding:8px 10px;text-align:left;cursor:pointer}.orgsw .menu button:hover{background:var(--ink-700)}.orgsw .menu button.active{color:#fff;background:var(--accent-soft)}.userchip{margin-top:auto;display:flex;align-items:center;gap:10px;padding:8px;border-top:1px solid var(--ink-800)}.userchip .avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--surface-elev);color:var(--accent-300);font-weight:700;font-size:12px}.userchip .name{font:var(--t-small);font-weight:600;color:#fff}.userchip .email{font:var(--t-small);color:var(--ink-400)}.content{background:var(--surface-page);padding:var(--s5) var(--s6);min-width:0}.page-head{display:flex;align-items:center;gap:var(--s4);margin-bottom:var(--s5);flex-wrap:wrap}.page-head .sub{color:var(--ink-400);font:var(--t-small)}.drawer-toggle{display:none}@media(max-width:560px){.shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:30;border-right:0;border-bottom:1px solid var(--ink-800)}.sidebar.collapsed .nav,.sidebar.collapsed .userchip,.sidebar.collapsed .orgsw{display:none}.drawer-toggle{display:inline-flex}.content{padding:var(--s4)}}.auth-wrap{min-height:100%;display:grid;place-items:center;padding:var(--s5);background:var(--canvas)}.auth-card{width:min(420px,100%);background:var(--surface-work);border:1px solid var(--ink-700);border-radius:var(--r-lg);padding:var(--s6);display:grid;gap:var(--s4);box-shadow:var(--sh-2)}.auth-card h1{font:var(--t-display)}.provider-btn{position:relative}.provider-btn .rec{position:absolute;right:10px;font:var(--t-micro);color:var(--accent-300)}.or{display:flex;align-items:center;gap:var(--s3);color:var(--ink-400);font:var(--t-small)}.or:before,.or:after{content:"";flex:1;border-top:1px solid var(--ink-700)}.trust{font:var(--t-small);color:var(--ink-400);text-align:center}.code-inputs{display:flex;gap:8px;justify-content:center}.code-inputs input{width:44px;height:52px;text-align:center;font-size:22px;font-family:var(--mono)}.doors{display:grid;gap:var(--s3)}.door{display:flex;align-items:center;gap:var(--s4);padding:var(--s4);background:var(--surface-elev);border:1px solid var(--ink-700);border-radius:var(--r-lg);color:var(--ink-100);text-align:left;cursor:pointer;width:100%}.door:hover{border-color:var(--accent-400)}.door .glyph{width:40px;height:40px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-300);font-size:18px}.door .title{font-weight:600;color:#fff}.door .body{font:var(--t-small);color:var(--ink-300)}.door .chev{margin-left:auto;color:var(--ink-400)}.table{width:100%;border-collapse:collapse;font:var(--t-small)}.table th{text-align:left;font:var(--t-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-400);padding:10px 12px;border-bottom:1px solid var(--ink-700)}.table td{padding:12px;border-bottom:1px solid var(--ink-800);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table-wrap{background:var(--surface-work);border:1px solid var(--ink-700);border-radius:var(--r-lg);overflow-x:auto}.person{display:flex;align-items:center;gap:10px}.person .avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--surface-elev);color:var(--accent-300);font-weight:700;font-size:12px}.person .name{font-weight:600;color:#fff}.person .email{color:var(--ink-400)}.select{padding:6px 10px;border-radius:var(--r-md);border:1px solid var(--ink-600);background:var(--surface-page);color:var(--ink-050)}.group-label{font:var(--t-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-400);margin:var(--s4) 0 var(--s2)}.machine-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto auto;gap:var(--s3);align-items:center;padding:12px 14px;background:var(--surface-work);border:1px solid var(--ink-700);border-radius:var(--r-md);margin-bottom:8px}.machine-row .os{width:36px;height:36px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--surface-elev);color:var(--ink-200);font-weight:700}.machine-row .name{font-weight:600;color:#fff}.machine-row .meta{font:var(--t-small);color:var(--ink-400)}.connect-cell{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.connect-cell .small{max-width:160px;text-align:right}.search{width:260px}.kv{display:grid;grid-template-columns:max-content 1fr;gap:8px 16px;font:var(--t-small)}.kv dt{color:var(--ink-400)}.kv dd{margin:0;color:var(--ink-100)}.invite-link{display:flex;gap:8px}.invite-link .input{font-family:var(--mono);font-size:12px}.desktop-approve-card h1{margin-bottom:var(--s2)}.desktop-approve-actions{gap:var(--s3);margin-top:var(--s4)}.plain-list{list-style:none;margin:0;padding:0;display:grid}.plain-list>li{padding:10px 0;border-bottom:1px solid var(--ink-800)}.plain-list>li:last-child{border-bottom:0;padding-bottom:0}.stack-tight{display:grid;gap:2px;min-width:0}
