:root{--color-bg:#f6f9fc;--color-surface:#fff;--color-surface-head:#f7fafc;--color-text:#0a2540;--color-text-muted:#596678;--color-border:#e3e8ee;--color-accent:#4b43d6;--color-accent-hover:#3d36b8;--color-accent-soft:#f0eeff;--color-accent-contrast:#fff;--color-link:#4b43d6;--color-focus:#4b43d6;--color-sidebar-bg:#fff;--color-sidebar-text:#425466;--color-sidebar-muted:#596678;--color-sidebar-hover:#f6f9fc;--color-sidebar-active-bg:#f0eeff;--color-sidebar-active-text:#4b43d6;--color-success:#217005;--color-success-bg:#d7f7c2;--color-warning:#8a5a00;--color-warning-bg:#fff0c2;--color-danger:#b3261e;--color-danger-bg:#ffe1e0;--color-danger-contrast:#fff;--font-body:-apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:.9375rem;--font-size-lg:1.125rem;--font-size-xl:1.625rem;--font-size-stat:1.75rem;--font-weight-normal:400;--font-weight-strong:600;--font-weight-bold:700;--line-height-base:1.45;--text-transform-label:none;--space-0:0;--space-1:.125rem;--space-2:.25rem;--space-3:.5rem;--space-4:.75rem;--space-5:1rem;--space-6:1.5rem;--space-7:2.5rem;--space-8:10vh;--radius-none:0;--radius-sm:.375rem;--radius-md:.5rem;--radius-pill:62rem;--border-width:1px;--border-style:solid;--border-style-dashed:dashed;--focus-width:2px;--focus-offset:2px;--shadow-none:none;--shadow-card:0 1px 2px #0a25400f;--size-sidebar:15rem;--size-main-min:20rem;--size-main-max:90rem;--size-auth-max:26rem;--size-card-min:14rem;--size-field-min:10rem;--size-textarea-min:6rem;--size-full:100%;--size-viewport:100vh;--size-nav-bar:3px;--size-control:2.5rem;--size-control-touch:2.75rem;--duration-fast:.15s;--ease-out:cubic-bezier(.23, 1, .32, 1);--press-scale:.98;--color-row-hover:#f7f9fc;--color-focus-ring:#4b43d62e}@media (prefers-color-scheme:dark){:root{--color-bg:#0b1626;--color-surface:#12233a;--color-surface-head:#0f1f35;--color-text:#e8eef6;--color-text-muted:#a3b2c5;--color-border:#243a57;--color-accent:#8f89ff;--color-accent-hover:#a8a3ff;--color-accent-soft:#232052;--color-accent-contrast:#0b1626;--color-link:#a8a3ff;--color-focus:#a8a3ff;--color-sidebar-bg:#0f1f35;--color-sidebar-text:#c3d0e0;--color-sidebar-muted:#a3b2c5;--color-sidebar-hover:#17304f;--color-sidebar-active-bg:#232052;--color-sidebar-active-text:#c7c4ff;--color-success:#8fd96a;--color-success-bg:#1d3a14;--color-warning:#f0c35a;--color-warning-bg:#3a2d0a;--color-danger:#ff8f88;--color-danger-bg:#4a1714;--color-danger-contrast:#0b1626;--shadow-card:none;--color-row-hover:#17304f;--color-focus-ring:#a8a3ff47}}*{box-sizing:border-box}body{margin:var(--space-0);font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-base);background:var(--color-bg);color:var(--color-text)}a{color:var(--color-link)}:focus-visible{outline:var(--focus-width) var(--border-style) var(--color-focus);outline-offset:var(--focus-offset)}h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin:var(--space-0) var(--space-0) var(--space-5)}h2{font-size:var(--font-size-lg);margin:var(--space-6) var(--space-0) var(--space-4)}.shell{min-height:var(--size-viewport);flex-wrap:wrap;display:flex}.side{flex:0 0 var(--size-sidebar);background:var(--color-sidebar-bg);color:var(--color-sidebar-text);border-right:var(--border-width) var(--border-style) var(--color-border);top:var(--space-0);height:var(--size-viewport);padding:var(--space-5);align-self:flex-start;gap:var(--space-5);flex-direction:column;display:flex;position:sticky;overflow-y:auto}.side nav{flex-direction:column;display:flex}.side a{color:var(--color-sidebar-text);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);text-decoration:none;display:block}.side a:hover{background:var(--color-sidebar-hover)}.side a.on{background:var(--color-sidebar-active-bg);color:var(--color-sidebar-active-text);font-weight:var(--font-weight-strong)}.side .sub{padding-left:var(--space-6);font-size:var(--font-size-sm)}.side .brand{font-weight:var(--font-weight-bold);font-size:var(--font-size-lg);color:var(--color-text);padding:var(--space-3) var(--space-4) var(--space-4)}.side .brand:hover{background:0 0}.side .group{margin:var(--space-5) var(--space-4) var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-strong);text-transform:var(--text-transform-label);color:var(--color-sidebar-muted);display:block}.logout{margin-top:auto}.main{min-width:var(--space-0);flex:1 1 var(--size-main-min);max-width:var(--size-main-max);padding:var(--space-6)}.auth{max-width:var(--size-auth-max);margin:var(--space-8) auto;padding:var(--space-0) var(--space-5)}.auth .panel{padding:var(--space-6)}.auth button[type=submit]{width:var(--size-full)}h2:first-child{margin-top:var(--space-0)}.panel{background:var(--color-surface);border:var(--border-width) var(--border-style) var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-5);margin-bottom:var(--space-5)}.grid{gap:var(--space-5);grid-template-columns:repeat(auto-fit, minmax(var(--size-card-min), 1fr));display:grid}.stat span{font-size:var(--font-size-sm)}.stat b{margin-top:var(--space-2);font-size:var(--font-size-stat);font-variant-numeric:tabular-nums;display:block}.num{font-variant-numeric:tabular-nums;text-align:right}.muted{color:var(--color-text-muted)}.empty{color:var(--color-text-muted);padding:var(--space-5) var(--space-0)}table{width:var(--size-full);border-collapse:collapse}th,td{text-align:left;padding:var(--space-4) var(--space-5);border-bottom:var(--border-width) var(--border-style) var(--color-border);vertical-align:top}th{font-size:var(--font-size-xs);text-transform:var(--text-transform-label);color:var(--color-text-muted);background:var(--color-surface-head)}td{font-variant-numeric:tabular-nums}label{font-weight:var(--font-weight-strong);margin:var(--space-4) var(--space-0) var(--space-2);display:block}label.inline{gap:var(--space-3);font-weight:var(--font-weight-normal);margin:var(--space-2) var(--space-4) var(--space-2) var(--space-0);align-items:center;display:inline-flex}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],select,textarea{width:var(--size-full);padding:var(--space-3) var(--space-4);border:var(--border-width) var(--border-style) var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit}textarea{min-height:var(--size-textarea-min);font-family:var(--font-mono)}button,.btn{font-weight:var(--font-weight-strong);background:var(--color-accent);color:var(--color-accent-contrast);border:var(--border-width) var(--border-style) var(--color-accent);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-5);font:inherit;cursor:pointer;text-decoration:none;display:inline-block}button:hover,.btn:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}button.secondary,.btn.secondary{color:var(--color-text);border-color:var(--color-border);background:0 0}button.secondary:hover,.btn.secondary:hover{background:var(--color-sidebar-hover);border-color:var(--color-border)}button.danger{background:var(--color-danger);color:var(--color-danger-contrast);border-color:var(--color-danger)}button.link:hover{background:var(--color-sidebar-hover)}button.link{color:var(--color-sidebar-text);padding:var(--space-3) var(--space-4);text-align:left;background:0 0;border:none}.row{gap:var(--space-4);flex-wrap:wrap;align-items:end;display:flex}.row>*{flex:1 1 var(--size-field-min)}.row>button,.row>.btn{flex:none}.flash{padding:var(--space-4) var(--space-5);border-radius:var(--radius-sm);border:var(--border-width) var(--border-style) var(--color-border);background:var(--color-surface)}.flash.ok{border-color:var(--color-success);background:var(--color-success-bg);color:var(--color-success)}.flash.err{border-color:var(--color-danger);background:var(--color-danger-bg);color:var(--color-danger)}.pill{padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-strong);border:var(--border-width) var(--border-style) var(--color-border);display:inline-block}.pill.good{color:var(--color-success);background:var(--color-success-bg);border-color:var(--color-success-bg)}.pill.bad{color:var(--color-danger);background:var(--color-danger-bg);border-color:var(--color-danger-bg)}.pill.warn{color:var(--color-warning);background:var(--color-warning-bg);border-color:var(--color-warning-bg)}code{font-family:var(--font-mono);background:var(--color-bg);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);word-break:break-all}.secret{background:var(--color-bg);border:var(--border-width) var(--border-style-dashed) var(--color-warning);padding:var(--space-4);border-radius:var(--radius-sm);margin:var(--space-4) var(--space-0)}td code{word-break:normal;white-space:nowrap}@media (width<=48rem){.side{flex:1 1 var(--size-full);border-right:none;border-bottom:var(--border-width) var(--border-style) var(--color-border);height:auto;position:static}.main{flex-basis:var(--size-full);padding:var(--space-5)}.logout{margin-top:var(--space-0)}table{display:block;overflow-x:auto}}button,.btn,.side a,input,select,textarea{transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out)}button:active,.btn:active{transform:scale(var(--press-scale))}button,.btn,input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],select{min-height:var(--size-control)}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--color-focus);box-shadow:0 0 0 var(--space-2) var(--color-focus-ring);outline:none}input::placeholder,textarea::placeholder{color:var(--color-text-muted);opacity:1}button:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none}tbody tr:last-child td{border-bottom:none}.empty{text-align:center;padding:var(--space-7) var(--space-5)}.skip{left:var(--space-5);top:calc(-1 * var(--space-7));background:var(--color-accent);color:var(--color-accent-contrast);padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);z-index:1;position:absolute}.skip:focus{top:var(--space-5)}@media (hover:hover) and (pointer:fine){tbody tr:hover td{background:var(--color-row-hover)}}@media (pointer:coarse){button,.btn,input,select,.side a{min-height:var(--size-control-touch)}}@media (prefers-reduced-motion:reduce){button,.btn,.side a,input,select,textarea{transition:none}button:active,.btn:active{transform:none}}.lang{gap:var(--space-3);margin:var(--space-0);display:flex}.lang a{padding:var(--space-2) var(--space-4);border:var(--border-width) var(--border-style) var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-strong);color:var(--color-text-muted);text-decoration:none}.lang a.on{background:var(--color-accent-soft);border-color:var(--color-accent-soft);color:var(--color-accent)}.auth .lang{margin-bottom:var(--space-5);justify-content:flex-end}
