:root,[data-theme=noir]{--bg: #0a0e17;--panel: #101626;--panel2: #161d31;--line: #232c45;--text: #e8ecf4;--dim: #8b94ab;--faint: #59617a;--accent: #d4b268;--accent-ink: #171207;--good: #34d399;--bad: #f87171;--warn: #fbbf24;--chip: #1b2340;--focus: #d4b26855}[data-theme=kopi]{--bg: #17110c;--panel: #211a13;--panel2: #2a2118;--line: #3b2f21;--text: #f0e6d8;--dim: #b3a28a;--faint: #7d6f5b;--accent: #c98d4b;--accent-ink: #1c1207;--good: #7cb976;--bad: #d97862;--warn: #d9a862;--chip: #32271a;--focus: #c98d4b55}[data-theme=ember]{--bg: #170b0b;--panel: #211010;--panel2: #2b1514;--line: #3f201d;--text: #f4e3dc;--dim: #b28d84;--faint: #7d5a53;--accent: #e0956a;--accent-ink: #1c0e07;--good: #a3b86a;--bad: #e0796a;--warn: #dfae6a;--chip: #331a17;--focus: #e0956a55}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:TikTok Sans,-apple-system,Segoe UI,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}.num{font-variant-numeric:tabular-nums}a{color:var(--accent);text-decoration:none}::selection{background:var(--focus)}.shell{display:flex;height:100%}.side{width:216px;flex:none;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:14px 10px}.logo{font-weight:800;font-size:18px;letter-spacing:.4px;padding:4px 10px 14px;display:flex;align-items:center;gap:8px}.logo b{color:var(--accent)}.logo .glyph{font-size:15px;opacity:.9}.wsel{margin:0 6px 14px}.nav{display:flex;flex-direction:column;gap:2px;flex:1}.nav button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;color:var(--dim);padding:9px 10px;border-radius:8px;font:inherit;font-weight:600;cursor:pointer}.nav button:hover{background:var(--panel2);color:var(--text)}.nav button.on{background:var(--panel2);color:var(--accent);box-shadow:inset 2px 0 0 var(--accent)}.nav .glyph{width:16px;text-align:center;opacity:.85}.side .foot{border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:8px;font-size:12px;color:var(--dim)}.main{flex:1;overflow:auto;padding:22px 26px}.page-h{display:flex;align-items:center;justify-content:space-between;margin:0 0 16px}.page-h h1{font-size:19px;margin:0;letter-spacing:.3px}.page-h h1 .glyph{color:var(--accent);margin-right:8px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px}.btn{background:var(--accent);color:var(--accent-ink);border:0;border-radius:8px;padding:8px 14px;font:inherit;font-weight:700;cursor:pointer}.btn:hover{filter:brightness(1.08)}.btn.ghost{background:var(--panel2);color:var(--text);border:1px solid var(--line)}.btn.tiny{padding:4px 9px;font-size:12px;border-radius:6px}.btn.danger{background:transparent;border:1px solid var(--bad);color:var(--bad)}input,select,textarea{background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:inherit;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--focus);border-color:var(--accent)}label{display:block;font-size:12px;color:var(--dim);font-weight:700;margin:12px 0 5px;text-transform:uppercase;letter-spacing:.5px}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--faint);padding:10px 12px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel)}th.r,td.r{text-align:right}td{padding:9px 12px;border-bottom:1px solid var(--line)}tbody tr:hover{background:var(--panel2)}.mono{font-family:ui-monospace,Menlo,monospace;font-size:12.5px}.badge{display:inline-block;padding:2px 9px;border-radius:99px;font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase}.badge.active{background:color-mix(in srgb,var(--good) 18%,transparent);color:var(--good)}.badge.paused{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}.badge.archived,.badge.retired,.badge.burned{background:var(--chip);color:var(--dim)}.good{color:var(--good)}.bad{color:var(--bad)}.dim{color:var(--dim)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{background:var(--chip);border:1px solid var(--line);color:var(--dim);border-radius:99px;padding:5px 12px;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer}.chip:hover{color:var(--text);border-color:var(--accent)}.chip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.chip .x{margin-left:6px;opacity:.7}.bar-cell{position:relative}.bar-cell .bar{position:absolute;left:0;top:15%;bottom:15%;border-radius:3px;background:color-mix(in srgb,var(--accent) 22%,transparent);z-index:0}.bar-cell span{position:relative;z-index:1}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}.tile{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.tile .k{font-size:11px;color:var(--faint);text-transform:uppercase;letter-spacing:.6px;font-weight:800}.tile .v{font-size:22px;font-weight:800;margin-top:4px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000a;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:min(560px,92vw);max-height:88vh;overflow:auto;padding:20px 22px}.modal h2{margin:0 0 4px;font-size:16px}.modal .meander{height:3px;background:repeating-linear-gradient(90deg,var(--accent) 0 8px,transparent 8px 16px);opacity:.5;margin-bottom:12px;border-radius:2px}.modal .foot{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.login-wrap{height:100%;display:flex;align-items:center;justify-content:center}.login{width:360px;padding:28px}.login .logo{justify-content:center;font-size:24px;padding-bottom:4px}.login .sub{text-align:center;color:var(--faint);font-size:12px;margin-bottom:10px;letter-spacing:2px;text-transform:uppercase}.err{color:var(--bad);font-size:13px;margin-top:10px}.ok-note{color:var(--good);font-size:13px;margin-top:10px}.secret-box{background:var(--panel2);border:1px dashed var(--accent);border-radius:8px;padding:10px;margin-top:10px;word-break:break-all}.empty{padding:40px;text-align:center;color:var(--faint)}
