@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/space-grotesk-400-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/space-grotesk-400-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/ibm-plex-sans-400-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/ibm-plex-sans-400-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #22335d;--ink-soft: rgba(34, 51, 93, .65);--stroke: rgba(34, 51, 93, .16);--paper: #fbf7f0;--card-bg: #ffffff;--card-radius: 18px;--card-shadow: 0 14px 38px rgba(0, 0, 0, .12);--ok: #5aa517;--warn: #ff8f27;--bad: #da482e;--info: #31b0ff}*{margin:0;padding:0;box-sizing:border-box}body{font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;font-size:14px;background:radial-gradient(900px 480px at 85% -8%,rgba(34,51,93,.08),transparent),#fbf7f0;background-attachment:fixed;color:var(--ink)}h1,h2,h3{font-family:Space Grotesk,IBM Plex Sans,sans-serif}h2{font-size:18px;margin-bottom:10px}h3{font-size:14px;margin-bottom:6px}code,.mono{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px}.layout{display:flex;min-height:100vh}.sidebar{width:210px;flex:none;display:flex;flex-direction:column;gap:4px;padding:18px 12px;border-right:1px solid var(--stroke);background:#fff9;position:sticky;top:0;height:100vh}.sidebar-brand{font-family:Space Grotesk,sans-serif;font-weight:700;font-size:20px;margin-bottom:14px}.sidebar-brand span{display:block;font-family:IBM Plex Mono,monospace;font-weight:400;font-size:11px;color:var(--ink-soft)}.nav-item{display:block;width:100%;text-align:left;padding:8px 10px;border:1px solid transparent;border-radius:10px;background:none;color:var(--ink);font:inherit;cursor:pointer}.nav-item:hover{background:#22335d0f}.nav-item.active{background:var(--ink);color:#fff}.sidebar-foot{margin-top:auto;font-size:12px;color:var(--ink-soft);display:flex;flex-direction:column;gap:6px;word-break:break-all}.content{flex:1;min-width:0;padding:20px 24px 40px;display:flex;flex-direction:column;gap:16px}.card{background:var(--card-bg);border:1px solid var(--stroke);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:16px 18px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.card-head h2{margin-bottom:0}.fullscreen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{max-width:420px;text-align:center;display:flex;flex-direction:column;gap:12px;align-items:center}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:5px 10px;border-bottom:1px solid var(--stroke);vertical-align:top;white-space:nowrap}td.wrap{white-space:normal}th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#22335d0d}.badge{display:inline-block;padding:1px 8px;border-radius:999px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;border:1px solid transparent}.badge.ok{color:var(--ok);border-color:currentColor}.badge.warn{color:var(--warn);border-color:currentColor}.badge.bad{color:#fff;background:var(--bad)}.badge.muted{color:var(--ink-soft);border-color:var(--stroke)}.btn{display:inline-block;padding:6px 12px;border:1px solid var(--stroke);border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-size:13px;cursor:pointer;text-decoration:none}.btn:hover{background:#22335d0f}.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn.primary:hover{background:#2c4173}.btn.small{padding:2px 8px;font-size:12px}.btn.danger{color:var(--bad);border-color:var(--bad)}input,select{font:inherit;padding:6px 10px;border:1px solid var(--stroke);border-radius:10px;background:#fff;color:var(--ink)}input:focus,select:focus,.btn:focus{outline:2px solid rgba(34,51,93,.4);outline-offset:1px}form.inline,.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}label.field{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--ink-soft)}.error{color:var(--bad);font-size:13px;padding:6px 0}.status{color:var(--ok);font-size:13px;padding:6px 0}.muted{color:var(--ink-soft)}.placeholder{border:1px dashed var(--stroke);border-radius:12px;padding:12px;color:var(--ink-soft);font-size:13px}.counters{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.counters span{border:1px solid var(--stroke);border-radius:999px;padding:1px 8px;font-family:IBM Plex Mono,monospace;font-size:11px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#22335d59;display:flex;align-items:center;justify-content:center;z-index:300;padding:20px}.modal{background:#fff;border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:18px 20px;max-width:480px;width:100%;display:flex;flex-direction:column;gap:12px}.dialog-body{font-size:14px;white-space:pre-wrap}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}.dialog-input{width:100%}.warning-banner{background:#ff8f271f;border:1px solid var(--warn);border-radius:10px;padding:8px 12px;font-size:13px}
