:root{--bg: #0e1621;--fg: #e7ecf1;--hint: #8b9aab;--subtitle: #8b9aab;--link: #6ab3f3;--btn: #2aabee;--btn-text: #ffffff;--secondary: #17212b;--section: #17212b;--header-bg: #17212b;--nav-bg: #17212b;--danger: #e53940;--ok: #3ddc97;--warn: #e6b84c;--separator: rgba(255, 255, 255, .08);--input: #101a24;--radius: 16px;--sa-top: 0px;--sa-right: 0px;--sa-bottom: 0px;--sa-left: 0px;--csa-top: 0px;--csa-right: 0px;--csa-bottom: 0px;--csa-left: 0px;--tg-vh: 100dvh;--nav-h: 64px;font-family:SF Pro Text,Roboto,Segoe UI,system-ui,sans-serif;font-size:16px;line-height:1.35}:root[data-theme=light]{--bg: #ffffff;--fg: #1a1a1a;--hint: #707579;--subtitle: #707579;--link: #3390ec;--btn: #3390ec;--btn-text: #ffffff;--secondary: #f4f4f5;--section: #ffffff;--header-bg: #ffffff;--nav-bg: #ffffff;--danger: #d94040;--ok: #1c9c5a;--warn: #c48a00;--separator: rgba(0, 0, 0, .08);--input: #f4f4f5}html,body,#root{margin:0;min-height:100%;min-height:var(--tg-vh);background:var(--bg);color:var(--fg);-webkit-tap-highlight-color:transparent}body{overscroll-behavior:none}button,input,select,textarea{font:inherit}button{touch-action:manipulation}a{color:var(--link);text-decoration:none}.app-shell{max-width:480px;margin:0 auto;min-height:var(--tg-vh);height:var(--tg-vh);display:flex;flex-direction:column;overflow:hidden;padding-top:max(var(--csa-top),var(--sa-top));padding-left:max(var(--csa-left),var(--sa-left));padding-right:max(var(--csa-right),var(--sa-right))}.splash-inner{flex:1;justify-content:center;min-height:var(--tg-vh)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--btn);color:var(--btn-text);font-weight:700;letter-spacing:.04em}.nav{display:flex;gap:0;flex-shrink:0;padding:6px 8px calc(10px + max(var(--csa-bottom),var(--sa-bottom)));border-top:1px solid var(--separator);background:color-mix(in srgb,var(--nav-bg) 92%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:8}.nav-item{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 2px;border-radius:12px;color:var(--hint);font-size:10px;font-weight:500;line-height:1.1}.nav-item svg{width:22px;height:22px;fill:currentColor}.nav-item.active{color:var(--btn);background:color-mix(in srgb,var(--btn) 12%,transparent)}.page{padding:12px 16px 16px;display:flex;flex-direction:column;gap:14px;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.card{background:var(--section);border-radius:var(--radius);padding:14px 16px;border:1px solid var(--separator)}.muted{color:var(--hint);font-size:14px;margin:0}.row{display:flex;justify-content:space-between;gap:8px;align-items:center}.row.wrap{flex-wrap:wrap;justify-content:flex-start}.stack{display:flex;flex-direction:column;gap:12px}.btn{border:0;border-radius:12px;padding:12px 16px;min-height:44px;background:var(--btn);color:var(--btn-text);cursor:pointer;font-weight:600}.btn.secondary{background:var(--secondary);color:var(--fg)}.btn.danger{background:color-mix(in srgb,var(--danger) 16%,var(--secondary));color:var(--danger)}.btn:disabled{opacity:.5}.btn-compact{min-height:36px;padding:8px 12px;font-size:13px;flex-shrink:0}.key-block{display:flex;flex-direction:column;gap:8px;padding-top:8px;border-top:1px solid var(--separator)}.field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--subtitle)}.field input,.field select,.field textarea{color:var(--fg)}input,select,textarea{width:100%;box-sizing:border-box;border:1px solid var(--separator);border-radius:12px;padding:12px;min-height:44px;background:var(--input);color:var(--fg);outline:none}input:focus,select:focus,textarea:focus{border-color:color-mix(in srgb,var(--btn) 55%,var(--separator))}textarea.code{min-height:220px;font-family:ui-monospace,Consolas,Courier New,monospace;font-size:12px;resize:vertical}.badge{font-size:12px;padding:4px 8px;border-radius:999px;background:var(--secondary);color:var(--subtitle)}.badge.ok{background:color-mix(in srgb,var(--ok) 18%,var(--secondary));color:var(--ok)}.badge.fail{background:color-mix(in srgb,var(--danger) 18%,var(--secondary));color:var(--danger)}.badge.busy{background:color-mix(in srgb,var(--warn) 18%,var(--secondary));color:var(--warn)}a.card-link{color:inherit}a.card-link:hover{outline:1px solid var(--separator)}.log-feed{max-height:320px;overflow:auto;background:var(--input);border-radius:12px;padding:10px 12px;font-size:12px;font-family:ui-monospace,Consolas,Courier New,monospace}.log-feed p{margin:0 0 6px;color:var(--hint)}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px}.metric{background:var(--section);border:1px solid var(--separator);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:4px}a.metric-link,button.metric-link{text-decoration:none;color:inherit;cursor:pointer;width:100%;font:inherit;text-align:left}button.metric-link.active,a.metric-link:active,button.metric-link:active{border-color:var(--btn)}.metric-value{font-size:24px;line-height:1.1;font-weight:700}.metric.tone-ok .metric-value{color:var(--ok)}.metric.tone-fail .metric-value{color:var(--danger)}.metric.tone-busy .metric-value{color:var(--warn)}.tone-ok{--tone: var(--ok)}.tone-fail{--tone: var(--danger)}.tone-busy{--tone: var(--warn)}.tone-info{--tone: var(--link)}.tone-muted{--tone: var(--hint)}.distribution{display:grid;grid-template-columns:132px 1fr;gap:12px;align-items:center}.donut{position:relative;width:132px;height:132px}.donut-svg{width:132px;height:132px}.donut-track{stroke:var(--input)}.donut-arc{fill:none;stroke:var(--tone)}.donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.donut-center strong{font-size:22px}.donut-center span{font-size:11px;color:var(--hint)}.bar{display:flex;height:8px;border-radius:999px;overflow:hidden;background:var(--input)}.bar-seg{min-width:2px;background:var(--tone)}.usage-bar{gap:6px}.rank-row{display:flex;flex-direction:column;gap:4px}.admin-actions{border:1px solid var(--separator)}.admin-actions .btn.danger{margin-left:auto}.legend{display:flex;flex-direction:column;gap:6px}.legend-row{display:flex;align-items:center;gap:8px;font-size:13px}.legend-row strong{margin-left:auto}.legend-swatch{width:8px;height:8px;border-radius:99px;background:var(--tone);flex-shrink:0}.pipeline{display:grid;grid-template-columns:repeat(5,1fr);gap:4px}.pipe-step{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:10px;color:var(--hint);text-align:center}.pipe-dot{width:100%;height:6px;border-radius:99px;background:var(--input)}.pipe-step.tone-ok{color:var(--ok)}.pipe-step.tone-fail{color:var(--danger)}.pipe-step.tone-busy{color:var(--warn)}.pipe-step .pipe-dot{background:var(--tone, var(--input))}.log-timeline{display:flex;flex-direction:column;gap:6px}.log-step{background:var(--input);border-radius:12px;overflow:hidden}.log-step-head{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;background:transparent;border:0;color:inherit;padding:10px 12px;cursor:pointer;font:inherit;text-align:left}.log-step-body{padding:0 12px 10px;font-size:12px;font-family:ui-monospace,Consolas,Courier New,monospace}.log-step-body p{margin:0 0 6px;color:var(--hint)}.log-step.tone-fail .log-step-head{color:var(--danger)}.key-line{margin:0;font-size:12px;word-break:break-all;font-family:ui-monospace,Consolas,Courier New,monospace;color:var(--hint)}.list,.people-screen{display:flex;flex-direction:column;gap:8px}.people-toolbar{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:6px;position:sticky;top:0;z-index:2;background:var(--bg);padding:2px 0 8px}.people-toolbar input{grid-column:1 / -1;min-height:40px;padding:8px 12px}.people-toolbar select{min-height:36px;padding:6px 8px;font-size:13px}.people-count{margin:0;align-self:center;white-space:nowrap}.people-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.person-card{padding:8px 10px;gap:6px}.person-card.expanded{grid-column:1 / -1}.person-summary{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;border:0;padding:0;background:transparent;color:inherit;text-align:left;cursor:pointer;min-height:40px}.person-title{display:flex;flex-direction:column;gap:2px;min-width:0}.person-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.person-aside{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.person-meta,.usage-line{margin:0;font-size:12px;color:var(--hint)}.people-pager{justify-content:center}.collapse-head{width:100%;border:0;padding:0;background:transparent;color:inherit;text-align:left;cursor:pointer;min-height:36px;align-items:flex-start}.collapse-head h2{margin:0}.collapse-copy{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.collapse-facts{margin:4px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px}.collapse-facts li{margin:0;font-size:13px;line-height:1.35;color:var(--text)}.audit-summary{margin:0;font-size:14px}.stack.tight{gap:4px}.empty{background:var(--section);border:1px dashed var(--separator);border-radius:var(--radius);padding:20px 16px;display:flex;flex-direction:column;gap:6px;text-align:center}h1{margin:4px 0 0;font-size:28px;letter-spacing:-.03em;font-weight:700}h2{margin:0;font-size:17px;font-weight:650}.lede{margin:-6px 0 2px}.error{color:var(--danger);font-size:14px;margin:0}.ok-text{color:var(--ok);font-size:14px;margin:0}.grant-form .grant-option{justify-content:flex-start;gap:10px;cursor:pointer}.grant-form .grant-option input{width:auto;min-height:20px}.page-kicker{font-size:13px;color:var(--subtitle);text-transform:uppercase;letter-spacing:.08em;font-weight:600}
