:root{color-scheme:light;--surface: #ffffff;--surface-sunken: #f1f3f4;--surface-raised: #ffffff;--surface-hover: #f8f9fa;--surface-selected: #e8f0fe;--sidebar: #ffffff;--topbar: #ffffff;--border: #dadce0;--border-strong: #bdc1c6;--text: #202124;--text-secondary: #5f6368;--text-muted: #80868b;--text-inverse: #ffffff;--brand: #1a73e8;--brand-hover: #1765cc;--brand-tint: #e8f0fe;--ok: #188038;--ok-tint: #e6f4ea;--warn: #b06000;--warn-tint: #fef7e0;--bad: #c5221f;--bad-tint: #fce8e6;--info: #1967d2;--info-tint: #e8f0fe;--muted-tint: #f1f3f4;--chart-1: #1a73e8;--chart-2: #12b5cb;--chart-3: #e8710a;--chart-4: #9334e6;--shadow-1: 0 1px 2px 0 rgba(60, 64, 67, .3), 0 1px 3px 1px rgba(60, 64, 67, .15);--shadow-2: 0 1px 3px 0 rgba(60, 64, 67, .3), 0 4px 8px 3px rgba(60, 64, 67, .15);--radius: 8px;--radius-sm: 4px;--sidebar-width: 256px;--topbar-height: 56px;--font: "Google Sans", Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono: "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--surface: #202124;--surface-sunken: #171717;--surface-raised: #292a2d;--surface-hover: #2d2e31;--surface-selected: #1f3047;--sidebar: #202124;--topbar: #202124;--border: #3c4043;--border-strong: #5f6368;--text: #e8eaed;--text-secondary: #9aa0a6;--text-muted: #80868b;--text-inverse: #202124;--brand: #8ab4f8;--brand-hover: #aecbfa;--brand-tint: #1f3047;--ok: #81c995;--ok-tint: #1e3a28;--warn: #fdd663;--warn-tint: #3d3222;--bad: #f28b82;--bad-tint: #3f2321;--info: #8ab4f8;--info-tint: #1f3047;--muted-tint: #2d2e31;--chart-1: #8ab4f8;--chart-2: #78d9ec;--chart-3: #fcad70;--chart-4: #d7aefb;--shadow-1: 0 1px 2px 0 rgba(0, 0, 0, .5), 0 1px 3px 1px rgba(0, 0, 0, .3);--shadow-2: 0 1px 3px 0 rgba(0, 0, 0, .5), 0 4px 8px 3px rgba(0, 0, 0, .3)}}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;font-family:var(--font);font-size:14px;line-height:1.45;color:var(--text);background:var(--surface-sunken);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:500;letter-spacing:-.01em}h1{font-size:22px}h2{font-size:16px}h3{font-size:14px}p{margin:0 0 12px}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}code,.mono{font-family:var(--font-mono);font-size:12.5px}.shell{display:flex;height:100%}.sidebar{width:var(--sidebar-width);flex:0 0 var(--sidebar-width);background:var(--sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto}.sidebar__brand{height:var(--topbar-height);display:flex;align-items:center;gap:12px;padding:0 20px;border-bottom:1px solid var(--border);flex:0 0 auto}.sidebar__brand-mark{width:26px;height:26px;flex:0 0 26px;border-radius:6px;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:600}.sidebar__brand-text{font-size:14px;font-weight:500;line-height:1.2}.sidebar__brand-text small{display:block;font-size:11px;color:var(--text-secondary);font-weight:400}.sidebar__nav{padding:8px 0;flex:1 1 auto}.sidebar__section{padding:16px 24px 6px;font-size:11px;font-weight:500;letter-spacing:.8px;text-transform:uppercase;color:var(--text-muted)}.navlink{display:flex;align-items:center;gap:14px;padding:9px 24px 9px 20px;margin-right:12px;border-radius:0 20px 20px 0;color:var(--text-secondary);font-size:13.5px;font-weight:500;cursor:pointer;border:none;background:none;width:calc(100% - 12px);text-align:left;font-family:inherit}.navlink:hover{background:var(--surface-hover);text-decoration:none;color:var(--text)}.navlink.is-active{background:var(--surface-selected);color:var(--brand)}.navlink__icon{width:18px;height:18px;flex:0 0 18px}.navlink__badge{margin-left:auto;background:var(--ok);color:#fff;border-radius:10px;font-size:10.5px;padding:1px 7px;font-weight:600}.sidebar__footer{padding:12px 20px;border-top:1px solid var(--border);font-size:11.5px;color:var(--text-muted)}.main{flex:1 1 auto;display:flex;flex-direction:column;min-width:0}.topbar{height:var(--topbar-height);flex:0 0 var(--topbar-height);background:var(--topbar);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:16px;padding:0 24px}.topbar__title{font-size:17px;font-weight:500}.topbar__spacer{flex:1 1 auto}.topbar__meta{font-size:12px;color:var(--text-secondary);display:flex;align-items:center;gap:8px}.content{flex:1 1 auto;overflow-y:auto;padding:24px}.content__inner{max-width:1400px;margin:0 auto}.page-header{display:flex;align-items:flex-start;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-header__text{flex:1 1 320px;min-width:0}.page-header__actions{display:flex;gap:8px;flex-wrap:wrap}.page-header p{color:var(--text-secondary);margin:4px 0 0;max-width:70ch}.card{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px}.card__header{padding:14px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.card__header h2{flex:1 1 auto}.card__subtitle{font-size:12px;color:var(--text-secondary)}.card__body{padding:20px}.card__body--flush{padding:0}.grid{display:grid;gap:16px}.grid--metrics{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.grid--2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.stat{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}.stat__label{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-secondary);font-weight:500;display:flex;align-items:center;gap:6px}.stat__value{font-size:26px;font-weight:400;margin-top:6px;font-variant-numeric:tabular-nums;line-height:1.15}.stat__unit{font-size:13px;color:var(--text-secondary);margin-left:4px}.stat__hint{font-size:12px;color:var(--text-secondary);margin-top:4px}.stat--ok .stat__value{color:var(--ok)}.stat--bad .stat__value{color:var(--bad)}.stat--brand .stat__value{color:var(--brand)}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th{text-align:left;font-weight:500;color:var(--text-secondary);padding:10px 16px;border-bottom:1px solid var(--border);white-space:nowrap;font-size:12px}table.data td{padding:11px 16px;border-bottom:1px solid var(--border);vertical-align:middle}table.data tbody tr:last-child td{border-bottom:none}table.data tbody tr:hover{background:var(--surface-hover)}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}table.data td.actions{text-align:right;white-space:nowrap}.row-primary{font-weight:500}.row-secondary{font-size:12px;color:var(--text-secondary)}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:500;white-space:nowrap}.chip__dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 7px}.chip--ok{background:var(--ok-tint);color:var(--ok)}.chip--bad{background:var(--bad-tint);color:var(--bad)}.chip--pending{background:var(--warn-tint);color:var(--warn)}.chip--neutral{background:var(--info-tint);color:var(--info)}.chip--muted{background:var(--muted-tint);color:var(--text-secondary)}.chip--pending .chip__dot{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:var(--radius-sm);padding:7px 16px;font-size:13.5px;font-weight:500;font-family:inherit;cursor:pointer;background:none;color:var(--brand);transition:background-color .12s ease,box-shadow .12s ease;white-space:nowrap}.btn:hover:not(:disabled){background:var(--brand-tint)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.btn--primary{background:var(--brand);color:var(--text-inverse)}.btn--primary:hover:not(:disabled){background:var(--brand-hover);box-shadow:var(--shadow-1)}.btn--outline{border-color:var(--border-strong);color:var(--brand)}.btn--outline:hover:not(:disabled){background:var(--brand-tint)}.btn--danger{color:var(--bad)}.btn--danger:hover:not(:disabled){background:var(--bad-tint)}.btn--sm{padding:4px 10px;font-size:12.5px}.btn--block{width:100%}.field{margin-bottom:18px}.field__label{display:block;font-size:12.5px;font-weight:500;margin-bottom:6px;color:var(--text-secondary)}.field__hint{font-size:12px;color:var(--text-muted);margin-top:5px}.field__error{font-size:12px;color:var(--bad);margin-top:5px}.input,.select,.textarea{width:100%;padding:9px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-family:inherit;font-size:13.5px}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.input[aria-invalid=true]{border-color:var(--bad)}.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0 16px}.checkbox{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;cursor:pointer}.checkbox input{margin-top:2px}.alert{border-radius:var(--radius-sm);padding:12px 16px;font-size:13px;margin-bottom:16px;border-left:4px solid}.alert--error{background:var(--bad-tint);color:var(--bad);border-color:var(--bad)}.alert--warn{background:var(--warn-tint);color:var(--warn);border-color:var(--warn)}.alert--ok{background:var(--ok-tint);color:var(--ok);border-color:var(--ok)}.alert--info{background:var(--info-tint);color:var(--info);border-color:var(--info)}.alert ul{margin:6px 0 0;padding-left:20px}.empty{padding:48px 24px;text-align:center;color:var(--text-secondary)}.empty h3{margin-bottom:6px;color:var(--text)}.empty p{max-width:46ch;margin:0 auto 16px}.spinner{width:16px;height:16px;border:2px solid var(--border-strong);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.dl{display:grid;grid-template-columns:max-content 1fr;gap:8px 20px;font-size:13px;margin:0}.dl dt{color:var(--text-secondary)}.dl dd{margin:0;font-variant-numeric:tabular-nums}.codebox{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;font-family:var(--font-mono);font-size:12.5px;word-break:break-all;white-space:pre-wrap}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#20212499;display:grid;place-items:center;padding:24px;z-index:50}.modal{background:var(--surface-raised);border-radius:var(--radius);box-shadow:var(--shadow-2);width:min(560px,100%);max-height:90vh;overflow-y:auto}.modal__header{padding:20px 24px 0}.modal__body{padding:12px 24px}.modal__footer{padding:12px 24px 20px;display:flex;justify-content:flex-end;gap:8px}.auth-shell{min-height:100%;display:grid;place-items:center;padding:24px;background:var(--surface-sunken)}.auth-card{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:40px;width:min(420px,100%)}.auth-card__mark{width:40px;height:40px;border-radius:8px;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:600;margin-bottom:20px}.muted{color:var(--text-secondary)}.nowrap{white-space:nowrap}.right{text-align:right}.stack>*+*{margin-top:12px}.inline-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}@media(max-width:900px){.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;transform:translate(-100%);transition:transform .2s ease}.sidebar.is-open{transform:none;box-shadow:var(--shadow-2)}.content{padding:16px}}.topbar__menu{display:none}.sidebar__user{display:flex;align-items:center;gap:8px;margin-bottom:6px;color:var(--text);font-size:12.5px}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.input:focus-visible,.select:focus-visible{outline-offset:0}.card__header-tools{display:flex;align-items:center;gap:8px}.pagelist{margin:0;padding-left:20px}.recovery-codes{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 16px;list-style:none;padding:12px 14px;margin:0 0 12px;background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:13px}.qr{display:block;margin:0 auto 12px;background:#fff;padding:8px;border-radius:var(--radius-sm);border:1px solid var(--border)}.check{display:flex;align-items:center;gap:8px;margin:12px 0;font-size:13px}@media(max-width:900px){.topbar__menu{display:inline-flex}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
