@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,300..500&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--navy: 214 68% 14%;--navy-ink: 214 68% 14%;--navy-deep: 216 68% 6%;--copper: 24 66% 54%;--copper-warm: 26 76% 63%;--copper-deep: 24 65% 35%;--bone: 43 39% 91%;--ink-dark: 219 43% 10%;--ink-dark-mute: 220 17% 35%;--background: 43 39% 91%;--foreground: 219 43% 10%;--card: 0 0% 100%;--card-foreground: 219 43% 10%;--primary: 24 66% 54%;--primary-foreground: 0 0% 100%;--secondary: 43 26% 87%;--muted: 43 26% 87%;--muted-foreground: 220 17% 35%;--destructive: 0 71% 61%;--border: 43 22% 82%;--input: 43 22% 82%;--ring: 24 66% 54%;--ok: 162 47% 38%;--ok-fg: 0 0% 100%;--sidebar-background: 216 68% 6%;--sidebar-foreground: 221 40% 94%;--sidebar-accent: 24 35% 18%;--sidebar-accent-foreground: 26 76% 63%;--sidebar-border: 220 25% 18%;--brand: hsl(var(--primary));--brand-soft: hsl(var(--primary) / .12);--brand-line: hsl(var(--primary) / .4);--ok-c: hsl(var(--ok));--ok-soft: hsl(var(--ok) / .12);--warn-c: hsl(38 80% 45%);--warn-soft: hsl(38 80% 45% / .13);--danger-c: hsl(var(--destructive));--danger-soft: hsl(var(--destructive) / .12);--navy-c: hsl(var(--navy-ink));--txt: hsl(var(--foreground));--txt-2: hsl(var(--muted-foreground));--txt-3: hsl(var(--foreground) / .45);--line: hsl(var(--border));--line-soft: hsl(var(--border) / .5);--surface: hsl(var(--card));--canvas: hsl(var(--background));--font-display: "Fraunces", Georgia, serif;--font-sans: "DM Sans", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", Menlo, monospace;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px;--r-sm: 8px;--r-md: 12px;--r-lg: 14px;--shadow-sm: 0 1px 2px hsl(220 30% 10% / .06), 0 0 0 1px hsl(220 30% 10% / .03);--shadow-md: 0 6px 20px hsl(220 30% 10% / .08), 0 0 0 1px hsl(220 30% 10% / .04)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--canvas);color:var(--txt);font-family:var(--font-sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.display,h1.display{font-family:var(--font-display);font-weight:340;letter-spacing:-.02em;line-height:1.05;font-variation-settings:"opsz" 80;margin:0}.display em{font-style:italic;color:var(--brand);font-variation-settings:"opsz" 144}.eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--txt-3)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.muted{color:var(--txt-3)}.secondary{color:var(--txt-2)}.sub{color:var(--txt-2);font-size:13px}a{color:hsl(var(--copper-deep));text-decoration:none}.flex{display:flex;align-items:center}.between{justify-content:space-between}.col{display:flex;flex-direction:column}button{font-family:inherit}.btn{display:inline-flex;align-items:center;gap:var(--s2);justify-content:center;padding:var(--s2) var(--s4);border-radius:var(--r-sm);font-size:13px;font-weight:500;border:1px solid var(--line);background:hsl(var(--secondary));color:var(--txt);cursor:pointer;transition:background .12s ease,border-color .12s ease,transform 60ms ease}.btn:hover{border-color:hsl(var(--foreground) / .2)}.btn:active{transform:translateY(.5px)}.btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--canvas),0 0 0 4px var(--brand-line)}.btn.primary{background:var(--brand);color:hsl(var(--primary-foreground));border-color:transparent;font-weight:600}.btn.primary:hover{filter:brightness(1.07)}.btn.block{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s5);box-shadow:var(--shadow-sm);color:var(--txt)}.input{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--txt);padding:10px var(--s3);font-size:13.5px;font-family:inherit;width:100%}.input:focus{outline:none;border-color:var(--brand-line);box-shadow:0 0 0 3px var(--brand-soft)}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{max-width:380px;width:100%;padding:32px;text-align:center}.login-card .display{font-size:40px;margin-bottom:4px}.login-mark{width:64px;height:64px;border-radius:16px;margin:0 auto 16px;display:block;box-shadow:0 2px 12px #0003}.msg{font-size:13px;border-radius:var(--r-sm);padding:10px 12px;margin-bottom:14px;text-align:left}.msg.err{background:var(--danger-soft);color:var(--danger-c);border:1px solid hsl(var(--destructive) / .3)}.foot{font-family:var(--font-mono);font-size:10px;opacity:.5;margin-top:24px}.app{display:grid;grid-template-columns:248px 1fr;height:100vh}.rail{background:hsl(var(--sidebar-background));color:hsl(var(--sidebar-foreground));border-right:1px solid hsl(var(--sidebar-border));padding:var(--s5) var(--s4);display:flex;flex-direction:column;gap:var(--s1);overflow-y:auto}.brand{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s6);padding:0 var(--s2)}.brand-logo{width:44px;height:44px;border-radius:11px;flex-shrink:0;box-shadow:0 1px 3px #00000040}.brand-text{display:flex;flex-direction:column;line-height:1.1;min-width:0}.brand .mark{font-family:var(--font-sans);font-size:21px;font-weight:600;letter-spacing:-.01em;color:hsl(var(--sidebar-foreground))}.brand .mark em{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:21px;color:hsl(var(--copper-warm));font-variation-settings:"opsz" 144;margin-left:1px}.brand .tag{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;color:hsl(var(--sidebar-foreground) / .45);margin-top:2px}.nav-section{padding:var(--s3) var(--s3) var(--s1);font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.18em;color:hsl(var(--sidebar-foreground) / .4)}.nav-item{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s3);border-radius:var(--r-sm);color:hsl(var(--sidebar-foreground) / .72);cursor:pointer;border:1px solid transparent;font-size:14px;-webkit-user-select:none;user-select:none;transition:background .12s ease,color .12s ease}.nav-item:hover{background:hsl(var(--sidebar-foreground) / .06);color:hsl(var(--sidebar-foreground))}.nav-item.active{background:hsl(var(--sidebar-accent));color:hsl(var(--sidebar-foreground))}.nav-item .nav-ico{flex-shrink:0;color:hsl(var(--sidebar-foreground) / .5);transition:color .12s ease}.nav-item:hover .nav-ico{color:hsl(var(--sidebar-foreground) / .8)}.nav-item.active .nav-ico{color:hsl(var(--copper-warm))}.rail-foot{margin-top:auto;padding-top:var(--s4);border-top:1px solid hsl(var(--sidebar-border))}.ws-chip{display:flex;align-items:center;gap:var(--s2);padding:var(--s2)}.ws-chip .av{width:26px;height:26px;border-radius:7px;background:hsl(var(--primary) / .18);color:hsl(var(--copper-warm));display:grid;place-items:center;font-family:var(--font-mono);font-size:11px;flex-shrink:0}.main{overflow-y:auto;display:flex;flex-direction:column}.topbar{padding:var(--s6) var(--s6) var(--s4);position:sticky;top:0;background:linear-gradient(var(--canvas) 74%,transparent);z-index:5}.topbar h1{margin:0;font-size:32px}.topbar .sub{color:var(--txt-3);font-size:13px;margin-top:3px}.content{padding:0 var(--s6) var(--s7);max-width:1400px}.content-flush{padding-top:var(--s6)}@media (max-width: 720px){.app{grid-template-columns:1fr;height:auto}.rail{height:auto}.main{overflow-y:visible}}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:var(--s4)}.tile{display:flex;flex-direction:column;gap:var(--s4);text-align:left;padding:var(--s5);min-height:158px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .16s cubic-bezier(.3,0,0,1.2),border-color .16s ease,box-shadow .16s ease}.tile:hover{transform:translateY(-3px);border-color:var(--brand-line);box-shadow:var(--shadow-md)}.tile:disabled{cursor:not-allowed;opacity:.6}.tile:disabled:hover{transform:none;border-color:var(--line);box-shadow:var(--shadow-sm)}.glyph{width:44px;height:44px;border-radius:10px;object-fit:cover;flex-shrink:0;display:block}.glyph-fallback{display:grid;place-items:center;font-family:var(--font-mono);font-weight:600;font-size:15px;color:#fff}.tile .body{margin-top:auto}.tile .name{font-size:19px;font-weight:600;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}.tile .tagline{color:var(--txt-2);font-size:13px;margin-top:3px}.tile .ext{font-family:var(--font-mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--txt-3)}.center{min-height:100vh;display:grid;place-items:center;padding:24px}.spinner{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--brand);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;color:var(--txt-3);padding:var(--s7) var(--s4);border:1px dashed var(--line);border-radius:var(--r-md)}.banner{font-size:13px;color:var(--warn-c);background:var(--warn-soft);border:1px solid hsl(38 80% 45% / .3);border-radius:var(--r-sm);padding:10px 14px;margin-bottom:20px}.console-section{animation:fade .2s ease}@keyframes fade{0%{opacity:0;transform:translateY(4px)}}.table{width:100%;border-collapse:collapse;font-size:13.5px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.table th{text-align:left;font-family:var(--font-mono);font-weight:500;color:var(--txt-3);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;padding:var(--s3) var(--s4);border-bottom:1px solid var(--line);background:hsl(var(--secondary) / .5)}.table td{padding:13px var(--s4);border-bottom:1px solid var(--line-soft)}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:hsl(var(--secondary) / .35)}.badge{font-family:var(--font-mono);font-size:11px;font-weight:500;padding:3px 10px;border-radius:999px;border:1px solid var(--line)}.badge.ok{color:var(--ok-c);border-color:hsl(var(--ok) / .4);background:var(--ok-soft)}.badge.off{color:var(--danger-c);border-color:hsl(var(--destructive) / .4);background:var(--danger-soft)}.chips{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:var(--s5)}.chips-label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--txt-3);margin-right:4px}.chip{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:12px;padding:5px 11px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--txt-2)}.chip-off{opacity:.55}.chip-dot{width:8px;height:8px;border-radius:50%}.hint{font-size:12px;color:var(--txt-3);margin-top:var(--s4)}.sub-card{display:flex;flex-direction:column;gap:var(--s4);min-height:192px}.sub-glyph{width:40px;height:40px;font-size:14px}.sub-name{font-size:17px;font-weight:600;letter-spacing:-.01em}.sub-tag{color:var(--txt-2);font-size:12.5px;margin-top:3px}.sub-foot{margin-top:auto}.sub-note{display:flex;flex-direction:column;gap:3px;font-size:12.5px;color:var(--txt-2)}.sub-note .hint{margin-top:0}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--s4)}.theme-card{border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s3);background:var(--surface);cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease;box-shadow:var(--shadow-sm)}.theme-card:hover{border-color:var(--brand-line)}.theme-card.active{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand),var(--shadow-md)}.theme-prev{height:116px;border-radius:var(--r-md);overflow:hidden;display:flex;border:1px solid hsl(var(--foreground) / .06)}.theme-prev .pv-side{width:34%;padding:10px;display:flex;flex-direction:column;gap:7px}.theme-prev .pv-main{flex:1;padding:10px;display:flex;flex-direction:column;gap:7px}.theme-name{font-family:var(--font-display);font-size:16px;font-weight:360;margin-top:var(--s3)}.theme-tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--txt-3)}.theme-desc{font-size:12px;color:var(--txt-2);margin-top:6px;line-height:1.5}.theme-active-pill{font-family:var(--font-mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand)}
