@font-face{font-family:Outfit;font-weight:400;src:url(/admin/fonts/Outfit-Regular.ttf) format("truetype");font-display:swap}@font-face{font-family:Outfit;font-weight:500;src:url(/admin/fonts/Outfit-Medium.ttf) format("truetype");font-display:swap}@font-face{font-family:Outfit;font-weight:600;src:url(/admin/fonts/Outfit-SemiBold.ttf) format("truetype");font-display:swap}@font-face{font-family:Outfit;font-weight:700;src:url(/admin/fonts/Outfit-Bold.ttf) format("truetype");font-display:swap}@font-face{font-family:JetBrains Mono;font-weight:400;src:url(/admin/fonts/JetBrainsMono-Regular.ttf) format("truetype");font-display:swap}@font-face{font-family:JetBrains Mono;font-weight:500;src:url(/admin/fonts/JetBrainsMono-Medium.ttf) format("truetype");font-display:swap}@font-face{font-family:JetBrains Mono;font-weight:700;src:url(/admin/fonts/JetBrainsMono-Bold.ttf) format("truetype");font-display:swap}:root{--ground: #0F1115;--panel: #161A20;--card: #1C2129;--hover: #242B35;--elevated: #2D3542;--border: #2A303A;--border-focus: #373F4D;--text: #E6E8EB;--muted: #8B939F;--disabled: #4A5260;--accent: #9EEB47;--accent-hover: #B2F06B;--on-accent: #0B1E02;--accent-tint: rgba(158, 235, 71, .12);--accent-container: #1B380B;--warn: #F5B942;--warn-tint: rgba(245, 185, 66, .15);--err: #F0554D;--err-tint: rgba(240, 85, 77, .15);--ok: #9EEB47;--info: #3A9AD9;--info-tint: rgba(58, 154, 217, .15);--nav: #0A0D12;--ob: #B57BD6;--fc: #4FC27A;--fb: #5B9BE6;--db: #5FB3EA;--ui: "Outfit", "Segoe UI", system-ui, sans-serif;--mono: "JetBrains Mono", Consolas, "Courier New", monospace;--r-control: 4px;--r-input: 6px;--r-card: 8px}html,body,#root{height:100%}body{margin:0;background:var(--ground);color:var(--text);font-family:var(--ui);font-size:14px;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}.mono{font-family:var(--mono);font-size:12.5px}.muted{color:var(--muted)}.accent{color:var(--accent)}.warn{color:var(--warn)}.err{color:var(--err)}.ok{color:var(--ok)}.info{color:var(--info)}.icon{display:inline-block;vertical-align:middle;flex:none;color:inherit}.icon.muted{color:var(--muted)}.icon.accent{color:var(--accent)}.icon.warn{color:var(--warn)}.icon.err{color:var(--err)}.icon.ok{color:var(--ok)}.icon.spin{animation:icon-spin 1s linear infinite}.icon.blink{animation:icon-blink 1.2s ease-in-out infinite}@keyframes icon-spin{to{transform:rotate(360deg)}}@keyframes icon-blink{0%,to{opacity:1}50%{opacity:.25}}.shell{display:grid;grid-template-columns:60px 1fr;grid-template-rows:52px 1fr;height:100vh}.rail{grid-row:1 / span 2;background:var(--nav);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:10px 0;gap:4px}.rail .logo{width:40px;height:40px;border-radius:8px;background:var(--card);display:grid;place-items:center;color:var(--accent);margin-bottom:10px}.rail .spacer{flex:1}.rail-item{width:40px;height:40px;border-radius:var(--r-input);display:grid;place-items:center;color:var(--muted);cursor:pointer;border:1px solid transparent;transition:background .12s,color .12s}.rail-item:hover{background:var(--hover);color:var(--text)}.rail-item.active{background:var(--accent-tint);color:var(--accent);border-color:#9eeb4740}.topbar{background:var(--panel);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;padding:0 20px}.topbar .title{font-weight:600;font-size:15px}.topbar .crumb{color:var(--muted)}.topbar .spacer{flex:1}.topbar .who{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.content{overflow:auto;padding:20px}.page{display:flex;flex-direction:column;gap:16px;max-width:1500px}.page-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.page-head h1{font-size:20px;font-weight:600;margin:0}.page-head .spacer{flex:1}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);padding:14px 16px}.card h3{margin:0 0 10px;font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.tile{background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);padding:12px 14px;display:flex;flex-direction:column;gap:4px}.tile .label{color:var(--muted);font-size:12px;display:flex;align-items:center;gap:6px}.tile .value{font-family:var(--mono);font-size:22px;font-weight:500}.tile .sub{color:var(--muted);font-size:12px;font-family:var(--mono)}.badge{display:inline-flex;align-items:center;gap:5px;padding:1px 7px;border-radius:var(--r-control);font-family:var(--mono);font-size:11.5px;border:1px solid var(--border);background:var(--panel);color:var(--muted);white-space:nowrap}.badge.accent{background:var(--accent-tint);border-color:#9eeb4759;color:var(--accent)}.badge.warn{background:var(--warn-tint);border-color:#f5b94266;color:var(--warn)}.badge.err{background:var(--err-tint);border-color:#f0554d66;color:var(--err)}.badge.info{background:var(--info-tint);border-color:#3a9ad966;color:var(--info)}.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;font-size:13px}.kv dt{color:var(--muted);margin:0}.kv dd{margin:0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:1100px){.two-col{grid-template-columns:1fr}}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.progress{height:6px;background:var(--elevated);border-radius:3px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--accent)}.progress.warn>span{background:var(--warn)}.progress.err>span{background:var(--err)}.login{min-height:100vh;display:grid;place-items:center;background:var(--ground)}.login .box{width:380px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:28px;display:flex;flex-direction:column;gap:14px}.login .brand{display:flex;align-items:center;gap:10px;margin-bottom:6px}.login .brand .mark{width:36px;height:36px;border-radius:8px;background:var(--card);display:grid;place-items:center;color:var(--accent)}.login .brand b{font-size:16px;letter-spacing:.06em}.login .brand span{color:var(--muted);font-size:12px;display:block}.ant-table-wrapper .ant-table{background:transparent}.ant-table-wrapper .ant-table-thead>tr>th{font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.ant-table-wrapper .ant-table-tbody>tr.clickable{cursor:pointer}.ant-btn{box-shadow:none}.ant-btn-primary{font-weight:600}.ant-modal .ant-modal-content{border:1px solid var(--border)}.ant-tooltip .ant-tooltip-inner{font-family:var(--ui);font-size:12px}
