:root{--red-50:#fef0ef;--red-100:#fcdad8;--red-200:#f8b3b0;--red-300:#f38783;--red-400:#f0605b;--red-500:#ed4c46;--red-600:#dc3a34;--red-700:#bc2e29;--red-800:#931f1b;--red-mark:#f84c4c;--teal-50:#e6f5f3;--teal-100:#c2e8e4;--teal-300:#6ed6d9;--teal-500:#00a19a;--teal-700:#337e78;--ink-900:#16181c;--ink-700:#2c3138;--ink-600:#4a5158;--ink-500:#6b7280;--ink-400:#9aa1a9;--ink-300:#c7ccd1;--ink-200:#e2e5e8;--ink-100:#eef0f2;--ink-50:#f4f5f6;--pos-shell:#17181b;--slate-800:#3b4958;--white:#fff;--success:#1f9d6b;--success-bg:#e4f4ec;--success-strong:#177550;--warning:#e8902a;--warning-bg:#fcefdd;--warning-text:#8b5619;--danger:var(--red-600);--danger-text:var(--red-700);--danger-strong:var(--red-800);--danger-bg:var(--red-50);--info:var(--teal-500);--info-bg:var(--teal-50);--brand:var(--red-500);--brand-hover:var(--red-600);--brand-pressed:var(--red-700);--brand-strong:var(--red-700);--brand-tint:var(--red-50);--brand-text:var(--red-700);--accent:var(--teal-500);--accent-strong:var(--teal-700);--accent-tint:var(--teal-50);--accent-text:var(--teal-700);--live-on-dark:var(--teal-300);--text-strong:var(--ink-900);--text-body:var(--ink-600);--text-muted:var(--ink-600);--text-on-brand:var(--white);--text-link:var(--red-700);--surface-page:var(--white);--surface-canvas:var(--ink-50);--surface-card:var(--white);--surface-sunken:var(--ink-50);--surface-brand:var(--red-500);--surface-dark:var(--pos-shell);--surface-dark-raised:var(--ink-700);--border-subtle:var(--ink-200);--border-strong:var(--ink-300);--focus-ring:var(--red-500);--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:28px;--radius-frame:34px;--radius-pill:999px;--shadow-xs:0 4px 14px #16181c0d;--shadow-sm:0 6px 18px #16181c0f;--shadow-md:0 10px 40px #16181c1a;--shadow-xl:0 16px 50px #16181c29;--shadow-brand:0 14px 30px #ed4c4652;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:40px;--space-9:48px;--space-10:64px;--min-touch:48px;--font-sans:"Hanken Grotesk", "Hanken Grotesk Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display:var(--font-sans);--font-rounded:"Baloo 2", "Baloo 2 Variable", var(--font-sans);--font-mono:"JetBrains Mono", "JetBrains Mono Variable", ui-monospace, SFMono-Regular, Menlo, monospace;--heading-weight:800;--heading-tracking:-.02em;--eyebrow-tracking:.15em}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/hanken-grotesk-latin-400-normal-BG6hkEXj.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/hanken-grotesk-latin-500-normal-DrDcrrxK.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/hanken-grotesk-latin-600-normal-CIXX6EOa.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/hanken-grotesk-latin-700-normal-CeQ8H3UY.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/hanken-grotesk-latin-800-normal-KQ5tvtTT.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Baloo 2";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/baloo-2-latin-600-normal-tIfxVoAe.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Baloo 2";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/baloo-2-latin-700-normal-CqTg7A15.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Baloo 2";font-style:normal;font-weight:800;font-display:swap;src:url(/assets/baloo-2-latin-800-normal-BbF3Etk1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:var(--ink-900);--ink-2:var(--ink-700);--muted:var(--ink-600);--bg:var(--ink-50);--surface:var(--white);--line:var(--ink-200);--line-strong:var(--ink-300);--line-soft:var(--ink-100);--blue:var(--brand-strong);--blue-dark:var(--red-800);--blue-tint:var(--brand-tint);--green:var(--success-strong);--green-ink:#11573b;--green-tint:var(--success-bg);--amber:var(--warning-text);--amber-ink:#684012;--amber-tint:var(--warning-bg);--yellow:var(--warning);--red:var(--danger-text);--red-tint:var(--danger-bg);--red-line:var(--red-200);--header:var(--pos-shell);--header-2:var(--ink-700);--header-line:var(--slate-800);--header-muted:var(--ink-300);--focus:var(--focus-ring);--radius:var(--radius-lg);--font:var(--font-sans);--font-num:var(--font-mono);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.45}h1,h2,h3{margin:0;font-weight:800;line-height:1.2}h1{font-size:30px}h2{font-size:18px}h3{font-size:15px}p{margin:0}a{color:var(--blue)}a:hover{color:var(--blue-dark)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.on-dark :focus-visible{outline-color:#fff}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:13px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn{border:1.5px solid var(--line-strong);background:var(--surface);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--ink-2);color:var(--ink)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:800}.btn-primary:hover{background:var(--blue-dark);border-color:var(--blue-dark);color:#fff}.btn-danger-outline{border-color:var(--red);color:var(--red);font-weight:800}.btn-danger-outline:hover{background:var(--red-tint);border-color:var(--red);color:var(--red)}.btn-danger{background:var(--red);border-color:var(--red);color:#fff;font-weight:800}.btn-danger:hover{color:#fff;background:#8f1b13;border-color:#8f1b13}.btn-sm{min-height:36px;padding:0 12px;font-size:13px}.btn-link{min-height:0;color:var(--blue);background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.chip-group{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1.5px solid var(--line-strong);background:var(--surface);min-height:40px;color:var(--ink);font:inherit;cursor:pointer;border-radius:20px;padding:0 14px;font-size:14px;font-weight:700}.chip[aria-pressed=true],.chip[aria-checked=true]{background:var(--ink);border-color:var(--ink);color:#fff}.field{flex-direction:column;gap:6px;display:flex}.field>label,.label{font-size:15px;font-weight:700}.input,.select{border:1.5px solid var(--line-strong);background:var(--surface);min-height:44px;color:var(--ink);font:inherit;border-radius:10px;padding:0 12px;font-size:15px}.input:focus-visible,.select:focus-visible{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--blue)}.input[aria-invalid=true]{border-color:var(--red);background:var(--red-tint)}.input-narrow{text-align:center;width:72px}.help{color:var(--muted);font-size:13px}.error-text{color:var(--red);align-items:flex-start;gap:6px;font-size:13px;font-weight:700;display:flex}.inline-field{align-items:center;gap:8px;font-size:14px;font-weight:700;display:inline-flex}.checkbox{align-items:center;gap:10px;min-height:32px;font-weight:600;display:flex}.checkbox input{width:20px;height:20px;accent-color:var(--blue);margin:0}.switch{cursor:pointer;background:#6b7280;border:0;border-radius:15px;flex-shrink:0;justify-content:flex-start;width:52px;height:30px;padding:3px;display:flex}.switch[aria-checked=true]{background:var(--green);justify-content:flex-end}.switch:disabled{opacity:.5;cursor:not-allowed}.switch span{background:#fff;border-radius:12px;width:24px;height:24px;display:block}.app-header{background:var(--header);color:#fff;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:14px 24px;display:flex}.brand{font-size:18px;font-weight:800}.brand small{color:var(--header-muted);margin-left:8px;font-size:14px;font-weight:600}.header-label{color:var(--header-muted);align-items:center;gap:8px;font-size:14px;display:flex}.header-select{border:1px solid var(--header-line);background:var(--header-2);color:#fff;min-height:40px;font:inherit;border-radius:10px;max-width:320px;padding:0 10px;font-size:14px;font-weight:700}.header-user{color:var(--header-muted);align-items:center;gap:12px;font-size:14px;display:flex}.header-user .btn{color:#fff;border-color:var(--header-line);background:0 0;min-height:36px}.header-user .btn:hover{color:#fff;border-color:#fff}.spacer{flex-grow:1}.app-body{gap:24px;max-width:1440px;margin:0 auto;padding:24px;display:flex}.side-nav{flex-direction:column;flex:0 0 220px;gap:4px;display:flex}.side-nav a{min-height:44px;color:var(--ink);border-radius:10px;align-items:center;padding:0 14px;font-weight:700;text-decoration:none;display:flex}.side-nav a:hover{color:var(--ink);background:#e6e8ec}.side-nav a[aria-current=page]{background:var(--ink);color:#fff}.main{flex-direction:column;flex:auto;gap:20px;min-width:0;display:flex}.page-head{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.page-head h1{flex-grow:1}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:14px;min-width:0;padding:20px;display:flex}.card-danger{border-color:var(--red-line)}.card-head{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.card-head h2{flex-grow:1}.row{flex-wrap:wrap;gap:20px;display:flex}.row>*{flex:320px}.row>.wide{flex:2 480px}.setting-row{border-top:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:8px 16px;padding:12px 0;display:flex}.setting-row .setting-text{flex:280px}.setting-row .setting-label{font-weight:700}.setting-control{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.table-wrap{overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:15px}table.data th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:8px 8px 8px 0;font-size:13px;font-weight:700}table.data td{border-bottom:1px solid var(--line-soft);vertical-align:middle;padding:10px 8px 10px 0}table.data tbody th{text-align:left;color:var(--ink);border-bottom:1px solid var(--line-soft);padding:10px 8px 10px 0;font-size:15px;font-weight:700}table.data .r{text-align:right}table.data tfoot td{border-top:1.5px solid var(--line);border-bottom:0;font-weight:800}table.data td.actions{text-align:right;white-space:nowrap}table.data td.actions .btn+.btn{margin-left:8px}.kpis{grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:12px;display:grid}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}.kpi-label{color:var(--muted);font-size:13px;font-weight:700}.kpi-value{font-family:var(--font-num);margin-top:4px;font-size:32px;font-weight:700;line-height:1.1}.kpi-note{color:var(--muted);margin-top:4px;font-size:13px}.banner{border-radius:12px;align-items:flex-start;gap:10px;padding:12px 16px;font-size:14px;line-height:1.5;display:flex}.banner svg{flex-shrink:0;margin-top:1px}.banner-body{flex:auto}.banner-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.banner-warning{background:var(--amber-tint);color:var(--amber-ink);border:1px solid #f2d3a6}.banner-danger{background:var(--red-tint);color:var(--red);border:1px solid var(--red-line)}.banner-success{background:var(--green-tint);color:var(--green-ink)}.pill{white-space:nowrap;border-radius:13px;align-items:center;gap:6px;min-height:26px;padding:0 10px;font-size:13px;font-weight:700;display:inline-flex}.pill-ok{background:var(--green-tint);color:var(--green-ink)}.pill-warn{background:var(--amber-tint);color:var(--amber-ink)}.pill-bad{background:var(--red-tint);color:var(--red)}.pill-neutral{background:var(--line-soft);color:var(--ink-2)}.meter{background:#e9ebef;border-radius:7px;height:14px;margin-top:8px;overflow:hidden}.meter>div{background:var(--blue);height:100%}.meter.over>div{background:var(--red);background-image:repeating-linear-gradient(135deg,#0000 0 6px,#ffffff59 6px 12px)}.dialog-backdrop{z-index:50;background:#14171f8c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);border-radius:18px;flex-direction:column;gap:16px;width:100%;max-width:520px;max-height:calc(100vh - 32px);padding:24px;display:flex;overflow:auto;box-shadow:0 20px 60px #00000040}.dialog h2{font-size:22px}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.signin{flex-direction:column;min-height:100vh;display:flex}.signin-head{align-items:baseline;gap:12px;padding:20px 32px;display:flex}.signin-main{flex-grow:1;justify-content:center;align-items:center;padding:24px 16px 64px;display:flex}.signin-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;flex-direction:column;gap:18px;width:100%;max-width:460px;padding:32px;display:flex}.step-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:13px;font-weight:700}.otp-input{min-height:64px;font-family:var(--font-num);letter-spacing:.3em;padding:0 16px;font-size:32px;font-weight:700}.btn-block{width:100%;min-height:52px;font-size:16px}.chart svg{width:100%;height:auto;display:block}.chart .axis{stroke:var(--line-strong)}.chart text{font-family:var(--font);fill:var(--muted);font-size:12px;font-weight:600}.chart text.val{fill:var(--ink-2);font-weight:700}.group-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;display:grid}.group-card{border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:12px 14px;display:flex}.group-letter{font-family:var(--font-num);text-align:center;width:52px;padding:0;font-size:24px;font-weight:700}.group-card .input-narrow{width:56px;padding:0 6px}.tag{background:var(--bg);border:1px solid var(--line);border-radius:18px;align-items:center;gap:4px;min-height:36px;padding:0 4px 0 12px;font-size:14px;font-weight:600;display:inline-flex}.tag button{width:30px;height:30px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:15px;font-size:16px}.tag button:hover{background:var(--line)}.sticky-actions{background:linear-gradient(to bottom, #f4f5f700, var(--bg) 30%);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;padding:12px 0 24px;display:flex;position:sticky;bottom:0}.center-page{text-align:center;justify-content:center;align-items:center;min-height:60vh;padding:24px;display:flex}.poster-toolbar{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:16px 24px;display:flex}.poster-stage{justify-content:center;padding:24px 16px;display:flex;overflow-x:auto}.poster{width:210mm;height:297mm;color:var(--ink);background:#fff;flex-direction:column;flex-shrink:0;display:flex;overflow:hidden;box-shadow:0 6px 30px #0000001f}.poster-a5{width:148mm;height:210mm;font-size:.705em}.poster-top{background:var(--blue);color:#fff;-webkit-print-color-adjust:exact;-moz-print-color-adjust:exact;print-color-adjust:exact;flex-direction:column;gap:.5em;padding:2.2em 2.6em 1.9em;display:flex}.poster-outlet{font-size:1.6em;font-weight:700}.poster-title{margin:.4em 0 0;font-size:4.6em;font-weight:800;line-height:1.02}.poster-sub{font-size:2.1em;font-weight:600}.poster-mid{flex-direction:column;flex-grow:1;align-items:center;gap:1.4em;padding:2.4em 2.6em 0;display:flex}.poster-qr{border:3px solid var(--ink);border-radius:1.2em;width:62%;padding:.6em}.poster-qr svg{width:100%;height:auto;display:block}.poster-link{color:var(--ink-2);word-break:break-all;text-align:center;font-size:1.4em;font-weight:700}.poster-steps{text-align:center;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2em;width:100%;display:grid}.poster-step-n{font-family:var(--font-num);color:var(--blue);font-size:2.6em;font-weight:700}.poster-step-en{font-size:1.3em;font-weight:800}.poster-step-ms{color:var(--ink-2);font-size:1em}.poster-foot{color:var(--ink-2);justify-content:space-between;gap:1em;padding:1.5em 2.6em 2.6em;font-size:1em;font-weight:600;display:flex}@media print{html,body{background:#fff}.no-print{display:none!important}.poster-stage{padding:0;display:block}.poster{box-shadow:none;page-break-after:avoid;break-after:avoid}}@media (max-width:960px){.app-body{flex-direction:column;gap:16px;padding:16px}.side-nav{flex-direction:row;flex:none;gap:6px;padding-bottom:4px;overflow-x:auto}.side-nav a{white-space:nowrap;border:1px solid var(--line);background:var(--surface)}.app-header{padding:12px 16px}h1{font-size:26px}}h1,h2{letter-spacing:var(--heading-tracking)}.brand{font-family:var(--font-rounded);font-size:22px;font-weight:800;line-height:1}.brand__slurp{color:var(--brand)}.brand small{font-family:var(--font-sans)}.side-nav a[aria-current=page]{background:var(--brand-tint);color:var(--brand-text);box-shadow:inset 3px 0 0 var(--brand)}.side-nav a:hover{background:var(--ink-100)}.btn-danger,.btn-danger:hover{background:var(--danger-strong);border-color:var(--danger-strong)}.btn-danger:hover{background:#7a1815;border-color:#7a1815}.switch[aria-checked=true]{background:var(--accent)}.banner-info{background:var(--accent-tint);color:var(--accent-text)}.meter>div{background:var(--warning)}.meter.warn>div{background:var(--warning-text)}.chart .bar{fill:var(--brand)}.kpi-value{font-family:var(--font-mono);letter-spacing:-.01em;font-weight:700}.brand__slurp-text{color:var(--brand-text)}
