*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-primary);font-weight:var(--weight-regular);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text);background:var(--bg-page);min-height:100dvh;margin:0}h1,h2,h3,h4{font-weight:var(--weight-semibold);line-height:var(--leading-tight);color:var(--text);margin:0}p{margin:0}a{color:var(--text);text-underline-offset:.15em}a:hover{color:var(--text-2)}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.is-hidden{display:none!important}.muted{color:var(--text-2);font-weight:var(--weight-regular)}.num{font-variant-numeric:tabular-nums}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.topbar{z-index:100;background:var(--bg-alt);color:var(--text);position:sticky;top:0}.topbar-inner{max-width:1100px;min-height:56px;padding:var(--space-2) var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin:0 auto;display:flex}.topbar-brand{align-items:center;gap:var(--space-3);color:var(--text);text-decoration:none;display:flex}.topbar-logo{width:auto;height:28px;display:block}.topbar-title{font-size:var(--text-base);font-weight:var(--weight-semibold);padding-left:var(--space-3);border-left:1px solid var(--border-on-alt)}.topbar-nav{gap:var(--space-1);flex-wrap:wrap;display:flex}.nav-link{min-height:36px;padding:0 var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text);border-radius:var(--radius-pill);align-items:center;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.nav-link:hover{color:var(--text);background:#2a285412}.nav-link.is-active,.nav-link[aria-current=page]{background:var(--brand);color:var(--on-brand)}@media (width<=640px){.topbar-logo{height:22px}.nav-link{min-height:44px}}.page{max-width:740px;margin:var(--space-6) auto var(--space-16);padding:0 var(--space-4);gap:var(--space-4);flex-direction:column;display:flex}.page--wide{max-width:1100px}.page-title{font-size:var(--text-3xl);letter-spacing:-.025em}.page-lead{color:var(--text-2)}.card{background:var(--bg-page);border:1px solid var(--border-light);box-shadow:none}.card-header{min-height:44px;padding:var(--space-2) var(--space-4);align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-2);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border-light);flex-wrap:wrap;display:flex}.card-header :is(h1,h2,h3,h4){font:inherit;letter-spacing:inherit;color:inherit;margin:0}.card-body{padding:var(--space-4)}.card-sub{font-size:var(--text-sm);color:var(--text-2);margin-bottom:var(--space-3)}.eyebrow{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-2);font-weight:var(--weight-semibold)}.stat{gap:var(--space-1);flex-direction:column;display:flex}.stat-value{font-size:var(--text-xl);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;line-height:var(--leading-tight)}.stat-label{font-size:var(--text-xs);color:var(--text-2);text-transform:uppercase;letter-spacing:.08em}.swatch{background:var(--swatch,var(--brand));vertical-align:baseline;border-radius:50%;flex:none;width:.7em;height:.7em;display:inline-block}.btn,.btn-primary,.btn-secondary,.btn-danger{min-height:var(--control-h);padding:0 var(--space-6);font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--weight-semibold);letter-spacing:.04em;white-space:nowrap;cursor:pointer;background:var(--brand);color:var(--on-brand);border:1.5px solid var(--brand);border-radius:var(--radius-pill);-webkit-tap-highlight-color:transparent;touch-action:manipulation;justify-content:center;align-items:center;gap:.5em;line-height:1;text-decoration:none;transition:opacity .15s,background .15s,color .15s;display:inline-flex}.btn--outline,.btn-secondary{color:var(--brand);background:0 0}.btn--danger,.btn-danger{background:var(--red);border-color:var(--red);color:var(--on-brand)}.btn--ghost{color:var(--text-2);background:0 0;border-color:#0000}.btn--sm{min-height:var(--control-h-sm);padding:0 var(--space-4);font-size:var(--text-sm)}.btn--block{width:100%}@media (hover:hover){.btn:hover,.btn-primary:hover,.btn-secondary:hover,.btn-danger:hover{opacity:.75;color:var(--on-brand)}.btn--outline:hover,.btn-secondary:hover{color:var(--brand)}.btn--ghost:hover{opacity:1;color:var(--text);background:#2a285412}}.btn:disabled,.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible,.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-danger:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}@media (width<=640px){.btn--sm{min-height:var(--control-h)}}.field{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.field-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-2)}.field-hint{font-size:var(--text-xs);color:var(--text-2)}input:not([type]),input[type=text],input[type=email],input[type=search],input[type=tel],input[type=url],input[type=password],input[type=number],input[type=date],input[type=time],input[type=month],select,textarea{font-family:var(--font-primary);font-size:var(--text-base);color:var(--text);background:var(--bg-page);border:1.5px solid var(--border-on-alt);border-radius:var(--radius-pill);min-height:var(--control-h);padding:0 var(--space-5);-webkit-appearance:none;appearance:none;outline:none;width:100%;line-height:1.2;transition:border-color .15s,box-shadow .15s}textarea{padding:var(--space-3) var(--space-4);resize:vertical;min-height:5rem;line-height:var(--leading-normal);border-radius:0}select{padding-right:var(--space-10);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='none' stroke='%232A2854' stroke-width='2' d='M1 1l5 5 5-5'/></svg>");background-repeat:no-repeat;background-position:right var(--space-5) center}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #2a28541a}input::placeholder,textarea::placeholder{color:var(--text-2);opacity:1}input[type=checkbox],input[type=radio]{accent-color:var(--brand);width:18px;height:18px}input[type=file]{font-family:var(--font-primary);font-size:var(--text-sm);color:var(--text-2)}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.table th{text-align:left;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-2);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-light);white-space:nowrap}.table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-light);vertical-align:top}.table .num,.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}.table tbody tr:hover{background:var(--row-hover)}.table tfoot td{font-weight:var(--weight-semibold);border-top:1px solid var(--text);border-bottom:none}.pill{border-radius:var(--radius-pill);border:1px solid var(--border-light);background:var(--bg-page);color:var(--text-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;align-items:center;gap:.3rem;padding:.16rem .6rem;line-height:1.3;display:inline-flex}.pill-ok{background:var(--green-bg);color:var(--green);border-color:var(--green-line)}.pill-error{background:var(--red-bg);color:var(--red);border-color:var(--red-line)}.pill-warn{background:var(--amber-bg);color:var(--amber);border-color:var(--amber-line)}.pill-brand{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}.banner{padding:var(--space-3) var(--space-4);border:1px solid var(--border-light);background:var(--primary-pale);color:var(--text);font-size:var(--text-sm)}.banner-ok{background:var(--green-bg);color:var(--green);border-color:var(--green-line)}.banner-error{background:var(--red-bg);color:var(--red);border-color:var(--red-line)}.banner-warn{background:var(--amber-bg);color:var(--amber);border-color:var(--amber-line)}.banner:empty{display:none}.overlay{z-index:500;padding:var(--space-4);background:#2a285459;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-page);border:1px solid var(--border-light);box-shadow:var(--shadow-overlay);width:100%;max-width:560px;max-height:90dvh;padding:var(--space-6);overflow:auto}.toast{left:50%;bottom:var(--space-6);z-index:600;background:var(--brand);color:var(--on-brand);padding:var(--space-3) var(--space-5);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:var(--weight-semibold);box-shadow:var(--shadow-overlay);position:fixed;transform:translate(-50%)}.login-wrap{min-height:100dvh;padding:var(--space-4);justify-content:center;align-items:center;display:flex}.login-card{background:var(--bg-page);border:1px solid var(--border-light);width:100%;max-width:360px;padding:var(--space-8) var(--space-6);align-items:center;gap:var(--space-4);text-align:center;flex-direction:column;display:flex}.login-logo{width:auto;height:32px}.login-title{font-size:var(--text-xl)}.login-sub{font-size:var(--text-sm);color:var(--text-2)}.login-form{gap:var(--space-3);flex-direction:column;width:100%;display:flex}.pin-input{text-align:center;letter-spacing:.4em;font-variant-numeric:tabular-nums;font-size:var(--text-xl)!important}
