:root{--ink:#1d1c21;--slate:#55525c;--magenta:#b8125e;--magenta-hover:#940e4b;--tint:#fce4ef;--ground:#f7f6f8;--surface:#ffffff;--line:#e5e1e7;--track:#ede9ee;--good:#5e9e1f;--good-ink:#3d6b10;--good-bg:#eef6e3;--cyan:#00b0e0;--cyan-ink:#0079a8;--cyan-bg:#ddf3fb;--orange:#f06020;--crit:#b42318;--crit-ink:#9a1c13;--crit-bg:#fdecea;--high:#c2410c;--high-ink:#9a3409;--high-bg:#fdefe6;--med-ink:#7a4f00;--med-bg:#fbf3df;--dark-panel:#1d1c21;--dark-text:#d8d5db;--radius:16px;--radius-sm:12px;--shadow:0 1px 2px rgba(29,28,33,0.04),0 8px 24px rgba(29,28,33,0.06);--font:"Plus Jakarta Sans","Segoe UI",system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ink:#f3f1f5;--slate:#b3afb9;--magenta:#f0479a;--magenta-hover:#ff6aad;--tint:#3a1529;--ground:#131216;--surface:#1d1c21;--line:#34313a;--track:#2b2930;--good-ink:#a6d97a;--good-bg:#1f2e14;--cyan-ink:#6fd3f5;--cyan-bg:#0e2a35;--crit-ink:#ff9b91;--crit-bg:#3a1512;--high-ink:#ffb38a;--high-bg:#3a1e10;--med-ink:#f2cf7a;--med-bg:#33280f;--dark-panel:#26242b;--shadow:0 1px 2px rgba(0,0,0,0.3),0 8px 24px rgba(0,0,0,0.3);color-scheme:dark}}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--ground);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}a{color:var(--magenta)}a:hover{color:var(--magenta-hover)}h1,h2,h3{letter-spacing:-.01em;line-height:1.2;margin:0}img,svg{max-width:100%}.mono{font-family:var(--mono)}.muted{color:var(--slate)}.small{font-size:13px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.btn,.sr-only{white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 20px;border-radius:var(--radius-sm);border:1.5px solid transparent;font:600 15px var(--font);cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s,transform .05s}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--magenta);color:#fff}.btn-primary:hover{background:var(--magenta-hover);color:#fff}.btn-outline{background:var(--surface);color:var(--ink);border-color:var(--ink)}.btn-outline:hover{background:var(--ground);color:var(--ink)}.btn-ghost{background:transparent;color:var(--slate)}.btn-ghost:hover{background:var(--tint);color:var(--magenta)}.btn-danger{background:var(--crit);color:#fff}.btn-danger:hover{background:#8f1c13;color:#fff}.btn-sm{height:36px;padding:0 14px;font-size:14px;border-radius:10px}.btn-block{width:100%}.field{display:flex;flex-direction:column;gap:6px}.field label,.label{font-size:13px;font-weight:600}.input,select.input,textarea.input{height:46px;padding:0 14px;border:1.5px solid var(--line);border-radius:10px;font:400 15px var(--font);color:var(--ink);background:var(--surface);width:100%;transition:border-color .15s,box-shadow .15s}textarea.input{height:auto;padding:10px 14px;min-height:90px}.input:focus{outline:none;border-color:var(--magenta);box-shadow:0 0 0 3px var(--tint)}.input-wrap{position:relative}.input-wrap .input{padding-right:52px}.input-eye{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;background:transparent;color:var(--slate);border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center}.input-eye:hover{background:var(--tint);color:var(--magenta)}.check{display:flex;align-items:center;gap:10px;font-size:14px}.check input{width:20px;height:20px;accent-color:var(--magenta);margin:0}.hint{font-size:12px;color:var(--slate)}.code-input{font:600 26px var(--mono);letter-spacing:10px;text-align:center;height:60px}.alert{padding:12px 14px;border-radius:12px;font-size:14px;display:flex;gap:10px;align-items:flex-start}.alert-error{background:var(--crit-bg);color:var(--crit-ink)}.alert-ok{background:var(--good-bg);color:var(--good-ink)}.alert-info{background:var(--cyan-bg);color:var(--cyan-ink)}.alert-warn{background:var(--med-bg);color:var(--med-ink)}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.pill-good{background:var(--good-bg);color:var(--good-ink)}.pill-crit{background:var(--crit-bg);color:var(--crit-ink)}.pill-high{background:var(--high-bg);color:var(--high-ink)}.pill-med{background:var(--med-bg);color:var(--med-ink)}.pill-info{background:var(--cyan-bg);color:var(--cyan-ink)}.pill-brand{background:var(--tint);color:var(--magenta)}.pill-plain{background:var(--ground);color:var(--slate)}.card,.pill-plain{border:1px solid var(--line)}.card{background:var(--surface);border-radius:var(--radius);padding:20px}.card h2{font-size:18px;font-weight:700}.stack{display:flex;flex-direction:column;gap:14px}.row,.spread{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:20px}.grid-2,.grid-3{display:grid;gap:20px}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:20px}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:16px;gap:16px}@media (max-width:1000px){.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}}.stripe{display:flex;gap:4px}.stripe span{width:32px;height:6px;border-radius:3px}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}table.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-size:12px;font-weight:600;color:var(--slate);padding:10px 14px;background:var(--ground);white-space:nowrap}.table td,.table th{border-bottom:1px solid var(--line)}.table td{padding:11px 14px;vertical-align:top}.table tr:last-child td{border-bottom:0}.table tr.clickable:hover td{background:var(--ground)}.auth-shell{flex:1 1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100vh}.auth-side{background:var(--dark-panel);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between;gap:32px;position:relative;overflow:hidden}.auth-side:after{content:"";position:absolute;right:-120px;bottom:-120px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(184,18,94,.55),rgba(184,18,94,0) 70%)}.auth-side p{color:var(--dark-text)}.auth-main{align-items:center;justify-content:center;padding:40px 24px}.auth-card,.auth-main{display:flex;flex-direction:column}.auth-card{width:100%;max-width:440px;gap:18px}.auth-card h1{font-size:30px;font-weight:700;letter-spacing:-.02em}@media (max-width:900px){.auth-shell{grid-template-columns:minmax(0,1fr)}.auth-side{display:none}.auth-main{padding:24px 16px;justify-content:flex-start}}.app-header{background:var(--surface);border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:30}.app-header-inner{min-height:68px;padding:0 24px;display:flex;align-items:center;gap:24px}.app-nav{display:flex;gap:4px;flex:1 1;flex-wrap:wrap}.app-nav a{padding:8px 14px;border-radius:10px;color:var(--slate);text-decoration:none;font-weight:600;font-size:14px}.app-nav a:hover,.app-nav a[aria-current=page]{color:var(--magenta);background:var(--tint)}.app-main{flex:1 1;padding:24px;width:100%;max-width:1440px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.page-title{font-size:28px;font-weight:700;letter-spacing:-.02em}.nav-toggle{display:none}.user-chip{gap:10px;padding:4px 6px 4px 4px;border:1px solid var(--line);border-radius:999px;font-size:14px;font-weight:600}.avatar,.user-chip{display:flex;align-items:center}.avatar{width:34px;height:34px;border-radius:50%;background:var(--tint);color:var(--magenta);justify-content:center;font-weight:700;font-size:13px;flex:none;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}@media (max-width:960px){.app-header-inner{flex-wrap:wrap;padding:10px 16px;gap:12px;min-height:60px}.nav-toggle{display:inline-flex;margin-left:auto}.app-nav{display:none;order:10;flex-basis:100%;flex-direction:column;padding-bottom:8px}.app-nav.open{display:flex}.user-chip .user-name{display:none}.app-main{padding:16px}.page-title{font-size:24px}}.site-footer{border-top:1px solid var(--line);background:var(--surface);padding:14px 24px;font-size:13px;color:var(--slate)}.site-footer .inner{max-width:1440px;margin:0 auto;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}.version-badge{font-family:var(--mono);font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--slate);background:var(--ground);text-decoration:none}a.version-badge:hover{color:var(--magenta);border-color:var(--magenta)}.update-banner{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:100;background:var(--dark-panel);color:#fff;border-radius:14px;padding:12px 12px 12px 18px;box-shadow:0 12px 40px rgba(0,0,0,.25);display:flex;align-items:center;gap:14px;max-width:calc(100vw - 32px);width:max-content;animation:rise .3s ease-out}.update-banner .btn{height:38px}@media (max-width:560px){.update-banner{flex-wrap:wrap;width:calc(100vw - 32px)}}@keyframes rise{0%{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%)}}.stat{display:flex;flex-direction:column;gap:4px}.stat .num{font:600 28px var(--mono)}.stat .lbl{font-size:13px;color:var(--slate)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto}.tabs a{padding:10px 14px;text-decoration:none;color:var(--slate);font-weight:600;font-size:14px;border-bottom:2px solid transparent;white-space:nowrap}.tabs a[aria-current=page]{color:var(--magenta);border-color:var(--magenta)}details.log-row summary{cursor:pointer;list-style:none}details.log-row summary::-webkit-details-marker{display:none}pre.json{background:var(--ground);border:1px solid var(--line);border-radius:10px;padding:12px;font:12px/1.5 var(--mono);overflow-x:auto;margin:0;white-space:pre-wrap;word-break:break-word}.kv{display:grid;grid-template-columns:160px minmax(0,1fr);grid-gap:6px 14px;gap:6px 14px;font-size:13px}.kv dt{color:var(--slate);font-weight:600}.kv dd{margin:0;word-break:break-word}@media (max-width:560px){.kv{grid-template-columns:minmax(0,1fr)}.kv dd{margin-bottom:6px}}.room-row{padding:14px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:14px;gap:14px;align-items:center}.room-row .room-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap;align-items:center}.room-row .room-actions form{display:flex;gap:4px;align-items:center}@media (max-width:1100px){.room-row{grid-template-columns:auto minmax(0,1fr)}.room-row .room-actions{grid-column:1/-1;justify-content:flex-start}}.lang-toggle{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:2px;background:var(--surface);flex:none}.lang-toggle button{border:0;background:transparent;color:var(--slate);font:600 12px var(--font);padding:5px 10px;border-radius:999px;cursor:pointer;min-width:36px}.lang-toggle button[aria-pressed=true]{background:var(--magenta);color:#fff}.lang-toggle button:not([aria-pressed=true]):hover{color:var(--magenta)}.lang-toggle[data-dark]{background:transparent;border-color:rgba(255,255,255,.25)}.lang-toggle[data-dark] button{color:var(--dark-text)}