:root{--ink:#182923;--ink-2:#44514b;--muted:#6c7973;--line:#e0e7e3;--line-strong:#cdd8d2;--surface:#fff;--surface-2:#f3f6f4;--background:#f8faf9;--accent:#176b4c;--accent-hover:#12583e;--accent-soft:#e6f2ec;--accent-ink:#fff;--sidebar:#102019;--sidebar-ink:#c9d6cf;--sidebar-muted:#7f938a;--sidebar-active:#1d3429;--danger:#b42318;--danger-soft:#fdecea;--warning:#8a5a00;--warning-soft:#fdf3dc;--good:#176b4c;--good-soft:#e6f2ec;--neutral-soft:#eef1ef;--bar:#2f8a65;--bar-hover:#176b4c;--grid:#edf1ef;--shadow:0 1px 2px #18292310, 0 8px 24px #18292312;--radius:8px;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ink:#e4ece8;--ink-2:#b7c4be;--muted:#8d9c95;--line:#26332d;--line-strong:#34443c;--surface:#131c18;--surface-2:#19241f;--background:#0d1411;--accent:#3fae80;--accent-hover:#5cc196;--accent-soft:#173327;--accent-ink:#06130d;--sidebar:#0a110e;--sidebar-active:#18271f;--danger:#f2877d;--danger-soft:#3a1714;--warning:#e7b75a;--warning-soft:#33280f;--good:#5cc196;--good-soft:#173327;--neutral-soft:#1f2a25;--bar:#3fae80;--bar-hover:#6fd0a6;--grid:#1e2924;--shadow:0 1px 2px #0006, 0 8px 24px #0008;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--background);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.45}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,p{margin:0}h1{letter-spacing:-.01em;font-size:22px;font-weight:600}h2{font-size:15px;font-weight:600}h3{font-size:13px;font-weight:600}code,.mono{font-family:var(--mono);font-size:12px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shell{grid-template-columns:232px minmax(0,1fr);min-height:100dvh;display:grid}.sidebar{background:var(--sidebar);color:var(--sidebar-ink);flex-direction:column;height:100dvh;padding:16px 12px;display:flex;position:sticky;top:0}.brand{color:#fff;align-items:center;gap:10px;padding:6px 8px 22px;font-size:15px;font-weight:600;display:flex}.brand img{background:#fff;border-radius:6px;width:28px;height:28px;padding:3px}.brand small{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--sidebar-muted);font-size:10px;font-weight:500;display:block}.nav{flex-direction:column;gap:2px;display:flex}.nav a{height:36px;color:var(--sidebar-ink);border-radius:6px;align-items:center;gap:10px;padding:0 10px;font-weight:500;display:flex}.nav a svg{color:var(--sidebar-muted);flex-shrink:0}.nav a:hover{background:var(--sidebar-active)}.nav a[aria-current=page]{background:var(--sidebar-active);color:#fff}.nav a[aria-current=page] svg{color:#5cc196}.sidebar-foot{border-top:1px solid #ffffff14;flex-direction:column;gap:8px;margin-top:auto;padding-top:12px;display:flex}.who{color:var(--sidebar-muted);text-overflow:ellipsis;white-space:nowrap;padding:0 10px;font-size:12px;overflow:hidden}.who strong{color:var(--sidebar-ink);text-overflow:ellipsis;font-weight:500;display:block;overflow:hidden}.signout{height:34px;color:var(--sidebar-ink);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:0 10px;display:flex}.signout:hover{background:var(--sidebar-active)}.main{width:100%;min-width:0;max-width:1360px;margin:0 auto;padding:28px 36px 56px}.topbar{display:none}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.page-head p{color:var(--muted);margin-top:4px}.crumb{color:var(--muted);align-items:center;gap:6px;margin-bottom:10px;font-size:13px;display:inline-flex}.crumb:hover{color:var(--ink)}.stack{flex-direction:column;gap:16px;display:flex}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.grid-3{grid-template-columns:2fr 1fr;gap:16px;display:grid}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:0}.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.panel-head p{color:var(--muted);margin-top:2px;font-size:12px}.panel-body{padding:16px}.stat{padding:14px 16px}.stat-label{color:var(--muted);font-size:12px;font-weight:500}.stat-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:4px;font-size:24px;font-weight:600}.stat-note{color:var(--muted);margin-top:2px;font-size:12px}.button{border:1px solid var(--line-strong);background:var(--surface);height:34px;color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:500;display:inline-flex}.button:hover:not(:disabled){background:var(--surface-2)}.button:disabled{opacity:.5;cursor:not-allowed}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.button.primary:hover:not(:disabled){background:var(--accent-hover)}.button.danger{background:var(--danger);border-color:var(--danger);color:#fff}.button.danger-outline{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, transparent)}.button.danger-outline:hover:not(:disabled){background:var(--danger-soft)}.button.small{height:28px;padding:0 10px;font-size:12px}.button.ghost{background:0 0;border-color:#0000}.actions{flex-wrap:wrap;gap:8px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--ink-2);font-size:12px;font-weight:600}.field .hint{color:var(--muted);font-size:12px}.input,.select,.textarea{border:1px solid var(--line-strong);background:var(--surface);border-radius:6px;width:100%;height:36px;padding:0 10px}.textarea{resize:vertical;height:auto;min-height:72px;padding:8px 10px}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}.input-group{align-items:center;gap:8px;display:flex}.check{align-items:flex-start;gap:8px;font-size:13px;display:flex}.check input{accent-color:var(--accent);margin-top:3px}.form{flex-direction:column;gap:14px;display:flex}.error{background:var(--danger-soft);color:var(--danger);border-radius:6px;padding:9px 12px;font-size:13px}.notice{background:var(--warning-soft);color:var(--warning);border-radius:6px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:13px;display:flex}.text-link{color:var(--accent);font-weight:500}.text-link:hover{text-decoration:underline}.success{background:var(--good-soft);color:var(--good);border-radius:6px;padding:9px 12px;font-size:13px}.toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;display:flex}.search{flex:1;min-width:220px;max-width:420px;position:relative}.search svg{color:var(--muted);position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search .input{padding-left:32px}.tabs{background:var(--surface-2);border-radius:7px;gap:2px;padding:3px;display:flex}.tabs button{height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex}.tabs button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #18292318}.tabs .count{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:400}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface-2);padding:9px 16px;font-size:11px;font-weight:600}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 16px}tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tbody tr.link{cursor:pointer}tbody tr.link:hover td{background:var(--surface-2)}.cell-main{font-weight:500}.cell-sub{color:var(--muted);font-size:12px}.empty{text-align:center;color:var(--muted);padding:36px 16px}.pager{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;padding:10px 16px;font-size:12px;display:flex}.badge{white-space:nowrap;background:var(--neutral-soft);height:22px;color:var(--ink-2);border-radius:999px;align-items:center;gap:5px;padding:0 8px;font-size:12px;font-weight:500;display:inline-flex}.badge.active{background:var(--good-soft);color:var(--good)}.badge.suspended{background:var(--warning-soft);color:var(--warning)}.badge.deleted,.badge.failed{background:var(--danger-soft);color:var(--danger)}.badge .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.source{color:var(--muted);font-size:11px;font-family:var(--mono)}.kv{grid-template-columns:max-content minmax(0,1fr);gap:9px 18px;font-size:13px;display:grid}.kv dt{color:var(--muted)}.kv dd{overflow-wrap:anywhere;min-width:0;margin:0}.meter{background:var(--surface-2);border-radius:999px;height:6px;margin-top:8px;overflow:hidden}.meter span{background:var(--accent);border-radius:999px;height:100%;display:block}.chart{position:relative}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart .gridline{stroke:var(--grid);stroke-width:1px}.chart .axis{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.chart .bar{fill:var(--bar)}.chart .hit:hover+.bar,.chart .bar.on{fill:var(--bar-hover)}.tooltip{pointer-events:none;background:var(--ink);color:var(--surface);white-space:nowrap;box-shadow:var(--shadow);z-index:5;border-radius:6px;padding:7px 9px;font-size:12px;position:absolute;transform:translate(-50%,calc(-100% - 8px))}.tooltip strong{font-weight:600;display:block}.hbars{flex-direction:column;gap:10px;display:flex}.hbar-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;font-size:13px;display:grid}.hbar-track{background:var(--surface-2);border-radius:4px;grid-column:1/-1;height:8px}.hbar-fill{background:var(--bar);border-radius:4px;min-width:2px;height:100%}.list{flex-direction:column;display:flex}.list a,.list .row{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:10px 16px;font-size:13px;display:flex}.list a:last-child,.list .row:last-child{border-bottom:0}.list a:hover{background:var(--surface-2)}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}dialog.modal{border:1px solid var(--line);background:var(--surface);width:min(460px,100vw - 32px);color:var(--ink);box-shadow:var(--shadow);border-radius:12px;padding:0}dialog.modal::backdrop{background:#0d141199}.modal-head{padding:18px 20px 0}.modal-head p{color:var(--muted);margin-top:6px;font-size:13px}.modal-body{padding:16px 20px}.modal-foot{justify-content:flex-end;gap:8px;padding:0 20px 18px;display:flex}.auth{background:var(--background);place-items:center;min-height:100dvh;padding:32px 16px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--line);width:100%;max-width:380px;box-shadow:var(--shadow);border-radius:12px;padding:28px}.auth-card .brand{color:var(--ink);padding:0 0 20px}.auth-card .brand small{color:var(--muted)}.auth-card h1{font-size:20px}.auth-card>p{color:var(--muted);margin:6px 0 20px}.code-input{font-family:var(--mono);letter-spacing:.3em;font-size:16px}.auth-foot{color:var(--muted);text-align:center;margin-top:18px;font-size:12px}.skeleton{background:linear-gradient(90deg, var(--surface-2), var(--line), var(--surface-2));background-size:200% 100%;border-radius:6px;animation:1.2s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}@media (max-width:1100px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3,.grid-2{grid-template-columns:minmax(0,1fr)}.customer-grid>:last-child{order:-1}}@media (max-width:760px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{z-index:30;width:260px;transition:transform .16s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.shell[data-open=true] .sidebar{box-shadow:var(--shadow);transform:none}.topbar{background:var(--sidebar);color:#fff;z-index:20;align-items:center;gap:10px;padding:10px 16px;font-weight:600;display:flex;position:sticky;top:0}.topbar button{color:#fff;background:0 0;border:0;place-items:center;width:34px;height:34px;display:grid}.main{padding:20px 16px 48px}.stats{grid-template-columns:minmax(0,1fr)}.kv{grid-template-columns:minmax(0,1fr);gap:2px}.kv dd{margin-bottom:8px}th,td{padding:9px 12px}}
