@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");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{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font:"Bricolage Grotesque Variable", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--text-xs:.8125rem;--text-sm:.9375rem;--text-md:1rem;--text-lg:1.1875rem;--text-xl:1.4375rem;--text-2xl:1.875rem;--text-stat:clamp(1.6rem, 1.2rem + 1.2vw, 2.15rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--radius-control:10px;--radius-card:14px;--radius-sheet:22px;--sidebar-w:248px;--topbar-h:60px;--bottomnav-h:64px;--content-max:1120px;--ink:#12263f;--ink-soft:#46586f;--ink-faint:#5d6f86;--paper:#f3f5f8;--surface:#fff;--surface-2:#f7f9fb;--line:#dde3eb;--line-strong:#b3bfce;--scrim:#0a14238c;--brand:#1d4a73;--accent-fill:var(--brand);--accent-text:var(--brand);--accent-btn-bg:var(--brand);--accent-btn-fg:#fff;--accent-tint:#1d4a7314;--accent-tint-strong:#1d4a7329;--focus-ring:var(--brand);--c-gold-a:#88560a;--c-gold-b:#5e3c08;--c-blue-a:#1f5c99;--c-blue-b:#153f6e;--c-violet-a:#6a47d6;--c-violet-b:#4630a8;--c-emerald-a:#0f7a5c;--c-emerald-b:#0b5842;--c-rose-a:#b03a7a;--c-rose-b:#85285c;--card-edge:transparent;--card-highlight:inset 0 0 0 0 transparent;--danger:#ac1f17;--danger-tint:#fdecea;--success:#17653a;--success-tint:#e4f3e9;--warning:#7d5300;--warning-tint:#fff3d6;--info:#0d5a99;--info-tint:#e3f0fb;--dot-success:#1f9d55;--dot-danger:#d64545;--dot-warning:#d99a1c;--dot-progress:var(--brand)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#ececec;--ink-soft:#b9b9b9;--ink-faint:#949494;--paper:#181818;--surface:#212121;--surface-2:#1c1c1c;--line:#343434;--line-strong:#505050;--scrim:#000000a8;--brand:#86b8e6;--card-edge:#ffffff29;--card-highlight:inset 0 1px 0 #ffffff38;--accent-btn-bg:#86b8e6;--accent-btn-fg:#181818;--accent-tint:#ffffff12;--accent-tint-strong:#ffffff24;--danger:#ff8f86;--danger-tint:#ff8f861f;--success:#7fd69e;--success-tint:#7fd69e1f;--warning:#f2c466;--warning-tint:#f2c4661f;--info:#86bff0;--info-tint:#86bff01f;--dot-success:#4cc67f;--dot-danger:#ff7a70;--dot-warning:#f2b94a}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:var(--text-md);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-weight:420;line-height:1.55}h1,h2,h3,h4,p{margin:0}h1,h2,h3,.display{letter-spacing:-.02em;text-wrap:balance;font-weight:650;line-height:1.15}p{text-wrap:pretty;max-width:64ch}a{color:var(--accent-text);text-underline-offset:.18em}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img,svg{max-width:100%;display:block}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px;border-radius:4px}.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}.skip-link{left:var(--space-3);z-index:100;min-height:44px;padding:0 var(--space-4);background:var(--ink);color:var(--paper);border-radius:var(--radius-control);align-items:center;transition:top .15s;display:flex;position:absolute;top:-4rem}.skip-link:focus{top:var(--space-3)}.muted{color:var(--ink-soft)}.num{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:46px;padding:0 var(--space-5);border-radius:var(--radius-control);color:var(--ink);font-size:var(--text-sm);text-align:center;white-space:nowrap;background:0 0;border:1.5px solid #0000;font-weight:620;line-height:1.1;text-decoration:none;transition:background-color .15s,border-color .15s,filter .15s;display:inline-flex}.btn--primary{background:var(--accent-btn-bg);color:var(--accent-btn-fg)}.btn--primary:hover:not([disabled]){filter:brightness(1.15)}[data-theme=dark] .btn--primary:hover:not([disabled]){filter:brightness(.92)}.btn--outline{border-color:var(--line-strong);color:var(--ink)}.btn--outline:hover:not([disabled]){border-color:var(--ink)}.btn--quiet{color:var(--ink-soft)}.btn--quiet:hover:not([disabled]){color:var(--ink);background:var(--accent-tint)}.btn--danger{border-color:var(--danger);color:var(--danger)}.btn--danger:hover:not([disabled]){background:var(--danger-tint)}.btn--onbrand{color:#12263f;background:#fff}.btn--onbrand-outline{color:#fff;border-color:#ffffff8c}.btn--onbrand-outline:hover:not([disabled]){background:#ffffff1f;border-color:#fff}.btn--block{width:100%}.btn--sm{min-height:38px;padding:0 var(--space-4);font-size:var(--text-xs)}.btn[disabled]{opacity:.5;cursor:not-allowed}.btn[disabled][aria-busy=true]{opacity:.85;cursor:progress}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:1em;height:1em;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{width:44px;height:44px;color:var(--ink-soft);background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.icon-btn:hover{background:var(--accent-tint);color:var(--ink)}.form{gap:var(--space-4);flex-direction:column;display:flex}.form-row{gap:var(--space-4);display:grid}@media (width>=640px){.form-row--2{grid-template-columns:1fr 1fr}}.field{flex-direction:column;gap:.375rem;display:flex}.field__label{font-size:var(--text-sm);font-weight:600}.field__control{width:100%;min-height:48px;padding:0 var(--space-4);background:var(--surface);border:1.5px solid var(--line-strong);border-radius:var(--radius-control);font-size:1rem;font-weight:450;transition:border-color .15s}textarea.field__control{min-height:112px;padding:var(--space-3) var(--space-4);resize:vertical;line-height:1.5}.field__control::placeholder{color:var(--ink-faint)}.field__control:focus-visible{outline:3px solid var(--focus-ring);outline-offset:1px;border-color:var(--focus-ring);border-radius:var(--radius-control)}.field__control[aria-invalid=true]{border-color:var(--danger)}.field__control[readonly]{background:var(--surface-2);color:var(--ink-soft)}.field__hint{font-size:var(--text-xs);color:var(--ink-soft)}.field__hint strong{color:var(--ink);font-weight:700}.field__error{font-size:var(--text-xs);color:var(--danger);font-weight:600}.field__wrap{position:relative}.field__wrap--affix .field__control{padding-right:3.25rem}.field__affix{width:3rem;height:100%;color:var(--ink-soft);background:0 0;border:0;justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0}select.field__control{appearance:none;cursor:pointer;padding-right:3rem}.select__icon{top:50%;right:var(--space-4);pointer-events:none;color:var(--ink-soft);margin-top:-9px;position:absolute}.fieldset{border:0;min-width:0;margin:0;padding:0}.fieldset legend{margin-bottom:var(--space-2);padding:0}.chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{flex:0 auto;max-width:100%;position:relative}.chip__label{align-items:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-4);background:var(--surface);border:1.5px solid var(--line-strong);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;border-radius:999px;font-weight:580;transition:background-color .15s,border-color .15s;display:inline-flex}.chip__label:hover{border-color:var(--ink)}.chip input:checked+.chip__label{background:var(--accent-btn-bg);border-color:var(--accent-btn-bg);color:var(--accent-btn-fg)}.chip input:focus-visible+.chip__label{outline:3px solid var(--focus-ring);outline-offset:2px}.chip__count{font-size:var(--text-xs);font-variant-numeric:tabular-nums;opacity:.72}.segmented{background:var(--surface);border:1.5px solid var(--line-strong);border-radius:var(--radius-control);flex-wrap:wrap;max-width:100%;padding:3px;display:inline-flex}.segmented__item{flex:auto;position:relative}.segmented__label{min-height:36px;padding:0 var(--space-3);white-space:nowrap;font-size:var(--text-sm);color:var(--ink-soft);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;font-weight:600;transition:background-color .15s,color .15s;display:flex}.segmented__item input:checked+.segmented__label{background:var(--accent-btn-bg);color:var(--accent-btn-fg)}.segmented__item input:focus-visible+.segmented__label{outline:3px solid var(--focus-ring);outline-offset:1px}.switch{align-items:flex-start;gap:var(--space-3);cursor:pointer;display:flex;position:relative}.switch__track{background:var(--line-strong);border-radius:999px;flex:none;width:44px;height:26px;margin-top:1px;transition:background-color .15s;position:relative}.switch__track:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px}.switch input:checked+.switch__track{background:var(--accent-btn-bg)}.switch input:checked+.switch__track:after{transform:translate(18px)}[data-theme=dark] .switch input:checked+.switch__track:after{background:#181818}.switch input:focus-visible+.switch__track{outline:3px solid var(--focus-ring);outline-offset:2px}.switch__text{font-size:var(--text-sm);font-weight:560;line-height:1.35}.alert{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-control);font-size:var(--text-sm);line-height:1.45;display:flex}.alert__icon{flex:none;margin-top:1px}.alert__body{min-width:0}.alert__body>*+*{margin-top:var(--space-2)}.alert--error{background:var(--danger-tint);color:var(--danger)}.alert--success{background:var(--success-tint);color:var(--success)}.alert--warning{background:var(--warning-tint);color:var(--warning)}.alert--info{background:var(--info-tint);color:var(--info)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);padding:var(--space-5)}.card.card--flush{padding:0;overflow:hidden}.card__title{font-size:var(--text-md);letter-spacing:-.01em;font-weight:650}.card__sub{color:var(--ink-soft);font-size:var(--text-xs);margin-top:2px}.card__head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}@media (width<=479px){.card{padding:var(--space-4)}}.badge{border:1px solid var(--line-strong);color:var(--ink);font-size:var(--text-xs);white-space:nowrap;border-radius:999px;align-items:center;gap:.45rem;padding:.18rem .65rem .18rem .55rem;font-weight:600;display:inline-flex}.badge:before{content:"";background:var(--ink-faint);border-radius:50%;width:8px;height:8px}.badge--success:before{background:var(--dot-success)}.badge--danger:before{background:var(--dot-danger)}.badge--warning:before{background:var(--dot-warning)}.badge--progress:before{background:var(--dot-progress)}.rows>li+li{border-top:1px solid var(--line)}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.table th{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);color:var(--ink-soft);font-size:var(--text-xs);text-align:left;white-space:nowrap;font-weight:600}.table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);vertical-align:middle}.table tbody tr:last-child td{border-bottom:0}.table .right{text-align:right}.skeleton{background:linear-gradient(90deg, var(--line) 25%, var(--surface-2) 50%, var(--line) 75%);border-radius:var(--radius-control);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty{align-items:flex-start;gap:var(--space-2);padding:var(--space-6) var(--space-5);background:var(--surface);border:1.5px dashed var(--line-strong);border-radius:var(--radius-card);flex-direction:column;display:flex}.empty__title{font-size:var(--text-lg);font-weight:650}.empty__text{margin-bottom:var(--space-2);color:var(--ink-soft)}@media (pointer:coarse){.btn--sm{min-height:44px}}.app-error{z-index:200;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--danger-tint);border-bottom:1px solid var(--danger);color:var(--danger);font-size:var(--text-sm);font-weight:600;display:flex;position:fixed;top:0;left:0;right:0}.field__required{color:var(--danger);font-weight:700}.required-note{color:var(--ink-soft);font-size:var(--text-xs)}.shell{min-height:100dvh}.sidebar{height:100dvh;padding:var(--space-5) var(--space-3) var(--space-4);background:var(--surface);border-right:1px solid var(--line);flex-direction:column;display:none;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:var(--space-3);padding:0 var(--space-3);color:var(--ink);text-decoration:none;display:flex}.brand__mark{color:var(--brand)}.brand__name{font-size:var(--text-lg);letter-spacing:-.02em;font-weight:700}.brand__sub{color:var(--ink-soft);font-size:var(--text-xs);letter-spacing:0;font-weight:500;line-height:1.2;display:block}.nav{margin-top:var(--space-5)}.nav__group+.nav__group{margin-top:var(--space-4)}.nav__title{padding:0 var(--space-3);margin-bottom:var(--space-1);color:var(--ink-faint);font-size:var(--text-xs);font-weight:600}.nav__link{align-items:center;gap:var(--space-3);min-height:42px;padding:0 var(--space-3);border-radius:var(--radius-control);color:var(--ink-soft);font-size:var(--text-sm);font-weight:560;text-decoration:none;display:flex;position:relative}.nav__link:hover{background:var(--accent-tint);color:var(--ink)}.nav__link.router-link-active:not(.nav__link--exact),.nav__link.router-link-exact-active{background:var(--accent-tint);color:var(--accent-text);font-weight:650}.nav__badge{background:var(--accent-btn-bg);min-width:20px;color:var(--accent-btn-fg);text-align:center;border-radius:999px;margin-left:auto;padding:0 6px;font-size:.72rem;font-weight:700;line-height:20px}.sidebar__foot{padding-top:var(--space-5);margin-top:auto}.user-card{align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-card);display:flex}.avatar{background:var(--accent-tint-strong);width:38px;height:38px;color:var(--accent-text);font-size:var(--text-sm);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:flex}.user-card__name{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);font-weight:620;line-height:1.25;overflow:hidden}.user-card__sub{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-soft);font-size:var(--text-xs);overflow:hidden}.main{flex-direction:column;min-width:0;min-height:100dvh;display:flex}.topbar{z-index:20;align-items:center;gap:var(--space-2);min-height:var(--topbar-h);padding:0 var(--space-4);background:var(--surface);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.topbar .brand{min-height:44px;padding:0}.topbar__tools{align-items:center;gap:var(--space-1);margin-left:auto;display:flex}.content:focus{outline:none}.content{width:100%;max-width:calc(var(--content-max) + var(--space-6) * 2);padding:var(--space-5) var(--space-4) calc(var(--bottomnav-h) + var(--space-6));flex:1 0 auto;margin:0 auto}.footer{padding:var(--space-4);border-top:1px solid var(--line);color:var(--ink-soft);font-size:var(--text-xs);text-align:center}.footer span{color:var(--ink);font-weight:620}.bottom-nav{z-index:30;height:calc(var(--bottomnav-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface);border-top:1px solid var(--line);display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav__item{color:var(--ink-soft);background:0 0;border:0;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:3px;font-size:.72rem;font-weight:600;text-decoration:none;display:flex;position:relative}.bottom-nav__item.router-link-active:not(.nav__link--exact),.bottom-nav__item.router-link-exact-active{color:var(--accent-text)}.bottom-nav__item.router-link-active:not(.nav__link--exact):before,.bottom-nav__item.router-link-exact-active:before{content:"";background:var(--accent-fill);border-radius:0 0 3px 3px;height:3px;position:absolute;top:0;left:28%;right:28%}@media (width>=1024px){.shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);display:grid}.sidebar{display:flex}.bottom-nav,.topbar .brand,.mobile-only{display:none}.topbar{padding:0 var(--space-6)}.content{padding:var(--space-6) var(--space-6) var(--space-7)}}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--space-3) var(--space-5);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.page-head h1{font-size:var(--text-2xl)}.page-head p{margin-top:var(--space-1);color:var(--ink-soft);font-size:var(--text-sm)}.page-head__actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.stack{gap:var(--space-4);flex-direction:column;display:flex}.grid{gap:var(--space-4);display:grid}.stat{gap:var(--space-1);flex-direction:column;display:flex}.stat__label{color:var(--ink-soft);font-size:var(--text-sm);font-weight:540}.stat__value{font-size:var(--text-stat);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1}.stat__note{color:var(--ink-soft);font-size:var(--text-xs)}.section-title{margin:var(--space-6) 0 var(--space-3);font-size:var(--text-lg)}.text-right{text-align:right}.mono-ref{letter-spacing:.04em;font-weight:650}
