@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-vietnamese-wght-normal-CHiFlh_0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-ext-wght-normal-Dg-wlmqe.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-wght-normal-CaVRRdDk.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-vietnamese-wght-normal-CtlIRbEm.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-ext-wght-normal-MQgHevqp.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-wght-normal-DdeTHZLK.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #fafaf7;--surface: #ffffff;--surface-2: #f2f2ee;--ink: #101418;--ink-2: #4d5157;--ink-3: #686d73;--rule: #e5e5e0;--rule-strong: #8f918e;--navy: #1c355c;--navy-deep: #13243f;--on-navy: #fafaf7;--blue: #0e6e8e;--blue-press: #0a5469;--blue-wash: #e7f4f7;--on-blue: #ffffff;--blue-bright: #159ab8;--orange: #a85320;--orange-press: #8a4319;--orange-wash: #fdece1;--on-orange: #ffffff;--accent: #f5b397;--on-accent: #431400;--rail-active: var(--blue);--finished: #1f6b3a;--finished-wash: #e4f1e8;--waiting: #8a5a00;--waiting-wash: #f8efd8;--failed: #b23a2f;--failed-wash: #fae7e4;--submitted: #074da3;--submitted-wash: #ebf3fd;--focus: #0e6e8e;--scrim: rgba(16, 20, 24, .5);--brand-gradient: linear-gradient(135deg, #13243f 0%, #1c355c 55%, #274777 100%);--accent-gradient: linear-gradient(135deg, #f5b397 0%, #e8976b 100%);--series-1: #0e6e8e;--series-2: #a85320;--series-3: #703e8c;--series-4: #7f6600;--navy-100: #e4edfb;--navy-300: #adc6ee;--navy-500: #668ecc;--navy-700: #365b94;--navy-900: #1c355c;--font-display: "Hanken Grotesk Variable", "Hanken Grotesk", sans-serif;--font-body: "Public Sans", sans-serif;--font-mono: "IBM Plex Mono", monospace;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-base: 16px;--space-lg: 20px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 40px;--space-4xl: 48px;--space-5xl: 64px;--radius-control: 10px;--radius-card: 14px;--radius-sheet: 20px;--radius-pill: 999px;--shadow-low: 0 1px 2px rgba(7, 47, 112, .07);--shadow-raised: 0 10px 30px rgba(7, 47, 112, .16);--motion-fast: .15s;--motion-base: .25s;--motion-milestone: .9s;--ease: cubic-bezier(.2, 0, 0, 1);color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--paper: #0e1320;--surface: #151b2c;--surface-2: #1c2336;--ink: #f0f1ec;--ink-2: #bdc2c7;--ink-3: #969ca3;--rule: #283049;--rule-strong: #5e6878;--navy: #ccddf8;--navy-deep: #e4edfb;--on-navy: #fafaf7;--blue: #6fc6dc;--blue-press: #8fd6e6;--blue-wash: #0c3a47;--on-blue: #071830;--blue-bright: #6fc6dc;--orange: #f5b397;--orange-press: #f8c3ad;--orange-wash: #2e1b10;--on-orange: #2a1403;--accent: #f0a985;--finished: #6fc489;--finished-wash: #15301f;--waiting: #e0ac45;--waiting-wash: #33290f;--failed: #ee8273;--failed-wash: #3a1b17;--submitted: #6fa9ea;--submitted-wash: #122a4d;--focus: #6fc6dc;--scrim: rgba(0, 0, 0, .62);--shadow-low: 0 1px 2px rgba(0, 0, 0, .35);--shadow-raised: 0 10px 30px rgba(0, 0, 0, .5);--brand-gradient: linear-gradient(135deg, #13243f 0%, #1c355c 55%, #274777 100%);--navy-100: #122a4d;--navy-300: #3f6ea8;--navy-500: #5b9de8;--navy-700: #6fa9ea;--navy-900: #a8cbf4;color-scheme:dark}}:root[data-theme=dark]{--paper: #0e1320;--surface: #151b2c;--surface-2: #1c2336;--ink: #f0f1ec;--ink-2: #bdc2c7;--ink-3: #969ca3;--rule: #283049;--rule-strong: #5e6878;--navy: #ccddf8;--navy-deep: #e4edfb;--on-navy: #fafaf7;--blue: #6fc6dc;--blue-press: #8fd6e6;--blue-wash: #0c3a47;--on-blue: #071830;--blue-bright: #6fc6dc;--orange: #f5b397;--orange-press: #f8c3ad;--orange-wash: #2e1b10;--on-orange: #2a1403;--accent: #f0a985;--finished: #6fc489;--finished-wash: #15301f;--waiting: #e0ac45;--waiting-wash: #33290f;--failed: #ee8273;--failed-wash: #3a1b17;--submitted: #6fa9ea;--submitted-wash: #122a4d;--focus: #6fc6dc;--scrim: rgba(0, 0, 0, .62);--shadow-low: 0 1px 2px rgba(0, 0, 0, .35);--shadow-raised: 0 10px 30px rgba(0, 0, 0, .5);--brand-gradient: linear-gradient(135deg, #13243f 0%, #1c355c 55%, #274777 100%);--navy-100: #274777;--navy-300: #668ecc;--navy-500: #88aadf;--navy-700: #adc6ee;--navy-900: #ccddf8;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.625;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);margin:0;letter-spacing:-.01em}h1{font-size:30px;line-height:36px;font-weight:800}h2{font-size:20px;line-height:26px;font-weight:700}h3{font-size:17px;line-height:24px;font-weight:600}p{margin:0}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button{font-family:var(--font-body)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:0s!important;transition-duration:0s!important}}.mono{font-family:var(--font-mono);font-size:12px;font-weight:500}.tabular{font-variant-numeric:tabular-nums}.text-2{color:var(--ink-2)}.text-3{color:var(--ink-3)}.text-sm{font-size:14px;line-height:22px}.text-caption{font-size:13px;line-height:18px}.kicker{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:700;font-size:14px;letter-spacing:.02em;color:var(--ink-2)}.kicker:before{content:"";width:22px;height:4px;border-radius:2px;background:var(--orange);flex-shrink:0}.band{background:var(--brand-gradient);color:var(--on-navy);border-radius:var(--radius-sheet);padding:var(--space-2xl);position:relative;overflow:hidden}:root[data-theme=dark] .band,.band{--band-ink: #fafaf7}.band h1,.band h2{color:var(--band-ink)}.band .text-2,.band .text-3{color:#fafaf7b8}.band:after{content:"";position:absolute;right:-70px;top:-110px;width:260px;height:260px;border-radius:50%;border:3px solid rgba(245,179,151,.6);pointer-events:none}.band:before{content:"";position:absolute;right:-40px;top:-140px;width:320px;height:320px;border-radius:50%;border:1px solid rgba(250,250,247,.18);pointer-events:none}.stat-row{display:flex;flex-wrap:wrap}.stat-row>*{flex:1 1 130px;padding:6px 24px 2px 0;margin-right:24px;border-right:1px solid rgba(250,250,247,.22);display:flex;flex-direction:column;gap:0}.stat-row>*:last-child{border-right:none;margin-right:0}.stat-row .stat-v{font-family:var(--font-display);font-weight:800;font-size:40px;line-height:46px;font-variant-numeric:tabular-nums}.stat-row .stat-v--accent{color:var(--orange)}.stat-row .stat-l{font-size:13px}.panel .stat-row>*{border-right-color:var(--rule)}.panel{padding:var(--space-xl) 0;border-top:1px solid var(--rule);display:flex;flex-direction:column;gap:var(--space-base)}.panel--first{border-top:none;padding-top:0}.spine{border-left:3px solid var(--orange);padding-left:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 18px;border-radius:var(--radius-control);border:1px solid transparent;font-family:var(--font-body);font-size:15px;font-weight:600;cursor:pointer;transition:background var(--motion-fast) var(--ease),border-color var(--motion-fast) var(--ease),filter var(--motion-fast) var(--ease);text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--blue);color:var(--on-blue)}.btn--primary:hover:not(:disabled){background:var(--blue-press)}.btn--secondary{background:transparent;color:var(--blue);border-color:var(--rule-strong)}.btn--secondary:hover:not(:disabled){background:var(--blue-wash);border-color:var(--blue)}.btn--tertiary{background:transparent;color:var(--blue);padding:8px 10px}.btn--tertiary:hover:not(:disabled){background:var(--blue-wash)}.btn--danger{background:var(--failed);color:#fff}.btn--danger:hover:not(:disabled){filter:brightness(.92)}.btn--milestone{background:var(--accent-gradient);color:var(--on-accent);border:none}.btn--milestone:hover:not(:disabled){filter:brightness(.95)}.btn--icon{padding:8px;min-width:40px}.btn--sm{min-height:32px;padding:4px 12px;font-size:14px}.btn .spinner{width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.field{display:flex;flex-direction:column;gap:6px}.field__label{font-size:14px;font-weight:600;color:var(--ink)}.field__label .req{color:var(--failed)}.field__hint{font-size:13px;color:var(--ink-3)}.field__error{font-size:13px;color:var(--failed);display:flex;align-items:center;gap:4px}.input,.select,.textarea{font-family:var(--font-body);font-size:15px;color:var(--ink);background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--radius-control);padding:9px 12px;min-height:40px;width:100%}.textarea{min-height:96px;resize:vertical;line-height:1.5}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--focus);outline-offset:1px;border-color:var(--blue)}.input[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--failed)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--surface-2);color:var(--ink-3)}.input--mono{font-family:var(--font-mono)}.checkbox-row{display:flex;align-items:flex-start;gap:10px;font-size:15px;cursor:pointer}.checkbox-row input{width:18px;height:18px;margin-top:3px;accent-color:var(--blue)}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius-pill);padding:2px 10px;font-size:13px;font-weight:600;white-space:nowrap}.pill__dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0}.pill--finished{background:var(--finished-wash);color:var(--finished)}.pill--waiting{background:var(--waiting-wash);color:var(--waiting)}.pill--failed{background:var(--failed-wash);color:var(--failed)}.pill--submitted{background:var(--submitted-wash);color:var(--submitted)}.pill--neutral{background:var(--surface-2);color:var(--ink-2)}.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-card);padding:var(--space-xl)}.card--flush{padding:0;overflow:hidden}.stat-tile{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-card);padding:var(--space-lg) var(--space-xl);display:flex;flex-direction:column;gap:2px}.stat-tile__value{font-family:var(--font-display);font-size:32px;line-height:38px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--ink)}.stat-tile__value--accent{color:var(--orange)}.stat-tile__label{font-size:14px;color:var(--ink-2)}.table-wrap{overflow-x:auto;border:1px solid var(--rule);border-radius:var(--radius-card);background:var(--surface)}.table{width:100%;border-collapse:collapse;font-size:14px;min-width:640px}.table th{text-align:left;font-family:var(--font-display);font-weight:600;color:var(--ink-2);font-size:12.5px;letter-spacing:.02em;padding:10px 16px;border-bottom:2px solid var(--navy-100);background:var(--surface);position:sticky;top:0;white-space:nowrap}.table td{padding:12px 16px;border-bottom:1px solid var(--rule);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr{cursor:default}.table tbody tr.row--click{cursor:pointer}.table tbody tr.row--click:hover{background:var(--blue-wash)}.table .td-num{font-variant-numeric:tabular-nums;text-align:right}.table .td-date{font-family:var(--font-mono);font-size:12px;color:var(--ink-2);white-space:nowrap}@media (max-width: 767px){.table th:first-child,.table td:first-child{position:sticky;left:0;background:var(--surface);z-index:1}.table th:first-child{z-index:2}}.progress{display:flex;flex-direction:column;gap:6px}.progress__text{font-size:15px;font-weight:600}.progress__sub{color:var(--ink-3);font-weight:400}.progress__track{height:8px;border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--rule);overflow:hidden}.progress__fill{height:100%;background:var(--accent-gradient);border-radius:var(--radius-pill);transition:width var(--motion-base) var(--ease)}.banner{display:flex;gap:12px;align-items:flex-start;border-radius:var(--radius-card);padding:13px 16px;font-size:14px;line-height:1.5;border:1px solid;box-shadow:var(--shadow-low)}.banner__title{font-weight:600;display:block}.banner--info{background:var(--submitted-wash);border-color:var(--submitted);color:var(--ink)}.banner--finished{background:var(--finished-wash);border-color:var(--finished)}.banner--waiting{background:var(--waiting-wash);border-color:var(--waiting)}.banner--failed{background:var(--failed-wash);border-color:var(--failed)}.banner svg{flex-shrink:0;margin-top:2px}.toast-stack{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:8px;z-index:100}.toast{background:var(--navy);color:#fafaf7;border-radius:var(--radius-control);padding:12px 18px;font-size:14px;box-shadow:var(--shadow-raised);max-width:360px;animation:toast-in var(--motion-base) var(--ease)}:root[data-theme=dark] .toast{background:var(--surface-2);color:var(--ink)}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;padding:16px;z-index:90}.modal{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-sheet);padding:var(--space-xl);max-width:520px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-raised);display:flex;flex-direction:column;gap:var(--space-base)}.modal__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.empty-state{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:var(--space-4xl) var(--space-xl);color:var(--ink-2)}.empty-state h3{color:var(--ink)}.skeleton{background:var(--surface-2);border-radius:6px;position:relative;overflow:hidden}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);animation:shimmer 1.4s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.auth-layout{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.auth-layout__brand{background:var(--surface);border-right:1px solid var(--rule);display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:var(--space-4xl);position:relative;overflow:hidden}.auth-layout__brand:after{content:"";position:absolute;left:-120px;bottom:-180px;width:420px;height:420px;border-radius:50%;border:4px solid var(--orange-wash);pointer-events:none}.auth-layout__brand:before{content:"";position:absolute;left:-90px;bottom:-220px;width:520px;height:520px;border-radius:50%;border:1px solid var(--rule);pointer-events:none}.auth-layout__logo{width:min(380px,74%);height:auto;align-self:center;background:#fff;border-radius:var(--radius-sheet);padding:28px 36px;box-shadow:var(--shadow-low)}.auth-layout__form{display:flex;align-items:center;justify-content:center;padding:var(--space-xl);background:var(--paper)}.auth-card{width:100%;max-width:400px;display:flex;flex-direction:column;gap:var(--space-lg)}@media (max-width: 1023px){.auth-layout{grid-template-columns:1fr}.auth-layout__brand{padding:var(--space-xl);border-right:none;border-bottom:1px solid var(--rule);align-items:center}.auth-layout__logo{width:220px}.auth-layout__brand p{display:none}}.shell{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh}.rail{background:var(--brand-gradient);color:#fafaf7;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}.rail__brand{margin:14px 12px 6px;padding:10px 12px;display:flex;align-items:center;gap:10px;background:#fff;border-radius:12px}.rail__brand img{height:34px;width:auto}.rail__brand-name{font-family:var(--font-display);font-weight:800;font-size:15px;line-height:1.15;color:#1c355c}.rail__brand-sub{display:block;font-family:var(--font-body);font-weight:600;font-size:9px;letter-spacing:.02em;color:var(--orange)}.rail__section{padding:16px 14px 4px;font-family:var(--font-display);font-size:11px;font-weight:700;letter-spacing:.06em;color:#fafaf785}.rail__link{display:flex;align-items:center;gap:10px;padding:9px 12px;margin:1px 8px;border-radius:var(--radius-control);color:#fafaf7d9;font-size:14px;font-weight:500;text-decoration:none;border-left:3px solid transparent}.rail__link:hover{background:#fafaf714;text-decoration:none;color:#fafaf7}.rail__link.active{background:#fafaf724;color:#fafaf7;font-weight:600;border-left-color:var(--rail-active)}.rail__link svg{flex-shrink:0;opacity:.85}.icon-chip{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.tour{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60}.tour__scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#10141873}.tour__card{position:fixed;width:340px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-card);box-shadow:var(--shadow-raised);padding:18px;z-index:61}.tour__step{font-size:11px;font-weight:700;letter-spacing:.05em;color:var(--blue);text-transform:uppercase}.tour__title{margin:6px 0 4px;font-size:18px}.tour__body{margin:0 0 16px;color:var(--ink-2);font-size:14px;line-height:1.5}.tour__actions{display:flex;align-items:center;justify-content:space-between}.tour__skip{background:transparent;border:none;color:var(--ink-3);font-size:13px;cursor:pointer;font-family:var(--font-body)}.tour-highlight{position:relative;z-index:61;border-radius:12px;box-shadow:0 0 0 3px var(--blue),0 0 0 8px #0e6e8e38}.chip{padding:7px 14px;border-radius:var(--radius-pill);border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink-2);font-family:var(--font-body);font-weight:600;font-size:13px;cursor:pointer}.chip:hover{border-color:var(--blue);color:var(--blue)}.chip--active,.chip--active:hover{background:var(--blue);border-color:var(--blue);color:var(--on-blue)}.rail__icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px}.rail__icon svg{opacity:1}.rail__badge{margin-left:auto;background:#fafaf738;color:#fafaf7;font-size:11px;font-weight:700;border-radius:var(--radius-pill);padding:1px 7px;font-variant-numeric:tabular-nums}.main{display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 32px;border-bottom:1px solid var(--rule);background:var(--surface);position:sticky;top:0;z-index:20}.topbar__district{font-size:14px;font-weight:600;color:var(--ink-2);display:flex;align-items:center;gap:8px}.topbar__account{display:flex;align-items:center;gap:12px}.page{padding:var(--space-2xl);max-width:1280px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-xl)}.page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.page__header p{color:var(--ink-2);margin-top:4px;max-width:64ch}.page__actions{display:flex;gap:8px;flex-wrap:wrap}.grid{display:grid;gap:var(--space-base)}.grid--tiles{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.grid--2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.toolbar .input,.toolbar .select{width:auto;min-width:160px}.rail-toggle{display:none}@media (max-width: 1023px){.shell{grid-template-columns:1fr}.rail{position:fixed;inset:0 auto 0 0;width:272px;z-index:50;transform:translate(-100%);transition:transform var(--motion-base) var(--ease)}.rail.open{transform:translate(0);box-shadow:var(--shadow-raised)}.rail-toggle{display:inline-flex}.rail-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:40}.page{padding:var(--space-base)}.topbar{padding:10px 16px}.band{padding:var(--space-xl)}.stat-row .stat-v{font-size:30px;line-height:36px}}.avatar{width:32px;height:32px;border-radius:50%;background:var(--blue-wash);color:var(--blue);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.avatar--navy{background:var(--navy);color:#fff}.kv{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:6px 24px;font-size:14px}.kv dt{color:var(--ink-3);margin:0}.kv dd{margin:0;color:var(--ink)}.dev-switcher{position:fixed;bottom:16px;right:16px;z-index:95}.dev-switcher__panel{background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--radius-card);box-shadow:var(--shadow-raised);padding:16px;width:300px;max-height:70vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px;font-size:13px}:root[data-palette=modern]{--paper: #f6f7fb;--surface: #ffffff;--surface-2: #eceff8;--ink: #253047;--ink-2: #495572;--ink-3: #69738f;--rule: #e1e5ef;--rule-strong: #97a0bb;--navy: #3346a8;--navy-deep: #28397f;--on-navy: #ffffff;--brand-gradient: linear-gradient(135deg, #28397f 0%, #3346a8 55%, #4055c0 100%);--blue: #3346a8;--blue-press: #28397f;--blue-wash: #e8ebf8;--on-blue: #ffffff;--blue-bright: #3346a8;--accent: #0f8b8d;--accent-gradient: linear-gradient(135deg, #0f8b8d 0%, #0c7375 100%);--on-accent: #ffffff;--rail-active: var(--accent);--orange: #9a6b00;--orange-press: #7d5600;--orange-wash: #fbf1d9;--focus: #3346a8;--series-1: #3346a8;--series-2: #0f8b8d;--navy-100: #e1e5ef;--navy-300: #aeb8e0;--navy-500: #6679cc;--navy-700: #3346a8;--navy-900: #28397f}:root[data-palette=premium]{--paper: #f7f6f0;--surface: #ffffff;--surface-2: #eef0e8;--ink: #23302a;--ink-2: #4c5952;--ink-3: #6c7a71;--rule: #e3e6dd;--rule-strong: #99a39a;--navy: #1f5a44;--navy-deep: #143d2d;--on-navy: #ffffff;--brand-gradient: linear-gradient(135deg, #143d2d 0%, #1f5a44 55%, #2e6e55 100%);--blue: #1f6b4f;--blue-press: #17543d;--blue-wash: #e4efe9;--on-blue: #ffffff;--blue-bright: #1f6b4f;--accent: #3f7a63;--accent-gradient: linear-gradient(135deg, #3f7a63 0%, #33634f 100%);--on-accent: #ffffff;--rail-active: var(--accent);--orange: #8a6a16;--orange-press: #6f5512;--orange-wash: #f3edda;--focus: #1f6b4f;--series-1: #1f6b4f;--series-2: #3f7a63;--navy-100: #e3e6dd;--navy-300: #a9c2b4;--navy-500: #5e8b74;--navy-700: #1f6b4f;--navy-900: #143d2d}:root[data-palette=friendly]{--paper: #f5f8ff;--surface: #ffffff;--surface-2: #e9eefb;--ink: #1f2a44;--ink-2: #47526e;--ink-3: #68728c;--rule: #e0e7f5;--rule-strong: #96a0bb;--navy: #3457d5;--navy-deep: #263f9e;--on-navy: #ffffff;--brand-gradient: linear-gradient(135deg, #263f9e 0%, #3457d5 55%, #4a6bea 100%);--blue: #3457d5;--blue-press: #263f9e;--blue-wash: #e6ebfc;--on-blue: #ffffff;--blue-bright: #3457d5;--accent: #0e9d81;--accent-gradient: linear-gradient(135deg, #10b091 0%, #0b8168 100%);--on-accent: #ffffff;--rail-active: var(--accent);--orange: #c2402f;--orange-press: #9f3325;--orange-wash: #fdeae6;--focus: #3457d5;--series-1: #3457d5;--series-2: #0e9d81;--navy-100: #e0e7f5;--navy-300: #aab8ea;--navy-500: #5f7ce0;--navy-700: #3457d5;--navy-900: #263f9e}
