@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-vietnamese-standard-normal-rJmnGBSt.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-ext-standard-normal-7khWdh9v.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-standard-normal-DY7AcnAa.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{--page:#0c0c0e;--side:#0f0f11;--panel:#151518;--tile:#1d1d21;--hair:#ffffff12;--hair-2:#ffffff21;--text:#f2f2f4;--text-2:#b4b4bd;--text-3:#8b8b95;--ink:#0c0c0e;--you:#26a0cb;--you-t:#3fc1ea;--good:#2fbf71;--good-t:#5be095;--bad:#f0435a;--bad-t:#ff8595;--r-panel:6px;--r-box:4px;--r-tag:3px;--r-bar:2px;--gap:14px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:radial-gradient(1100px 520px at 22% -14%, #26a0cb1a, transparent 60%), radial-gradient(900px 640px at 108% 112%, #9070f512, transparent 60%), var(--page);color:var(--text);font-variant-numeric:tabular-nums;background-attachment:fixed;font-family:Archivo Variable,system-ui,sans-serif;font-size:14px;line-height:1.45}a{color:var(--you-t);text-decoration:none}a:hover{color:var(--text)}:focus-visible{outline:2px solid var(--you-t);outline-offset:2px}h1[tabindex="-1"]:focus{outline:none}.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}.brand{align-items:center;gap:10px;display:flex}.brand-mark{border-radius:var(--r-box);background:var(--you);width:32px;height:32px;color:var(--ink);flex:none;place-items:center;font-size:17px;font-weight:800;font-stretch:110%;display:grid}.brand-name{font-size:15px;font-weight:750;line-height:1.15}.brand-sub{color:var(--text-3);font-size:12px;line-height:1.2}.out{flex-direction:column;align-items:center;gap:28px;min-height:100vh;padding:32px 24px 56px;display:flex}.out-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;width:100%;max-width:1180px;display:flex}.out-top .hint{max-width:none}.card{background:var(--panel);border:1px solid var(--hair);border-radius:var(--r-panel);flex-direction:column;gap:18px;width:100%;max-width:440px;margin-top:72px;padding:28px 28px 24px;display:flex;box-shadow:inset 0 1px #ffffff09}.card.wide{max-width:560px;margin-top:40px}.title{letter-spacing:-.01em;margin:0;font-size:22px;font-weight:750;line-height:1.2}.sub{color:var(--text-3);max-width:54ch;margin:6px 0 0;font-size:13px}.small{color:var(--text-3);text-align:center;max-width:440px;margin:0;font-size:12px}.stack{flex-direction:column;gap:18px;display:flex}.stack.tight{gap:10px}.steps{flex-direction:column;gap:8px;display:flex}.steps-label{color:var(--text-3);justify-content:space-between;font-size:12px;display:flex}.steps-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;display:grid}.seg{border-radius:var(--r-bar);background:#ffffff1f;height:3px}.seg.on{background:var(--you-t)}.form{flex-direction:column;gap:14px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.label{color:var(--text-2);font-size:12px;font-weight:550}.input{background:var(--tile);border:1px solid var(--hair-2);border-radius:var(--r-box);width:100%;font:inherit;color:var(--text);outline:none;padding:10px 12px;font-size:14px}.input::placeholder{color:var(--text-3)}.input:focus{border-color:var(--you-t)}.input.bad{border-color:var(--bad-t)}.input.code{letter-spacing:.12em;text-transform:uppercase;text-align:center;font-weight:650;font-stretch:105%}.input-wrap{display:flex;position:relative}.input-wrap .input{padding-right:64px}.reveal{color:var(--text-3);font:inherit;border-radius:var(--r-box);cursor:pointer;background:0 0;border:0;padding:6px 8px;font-size:12px;font-weight:600;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.reveal:hover{color:var(--text)}textarea.input{resize:none;line-height:1.6}.hint{color:var(--text-3);max-width:54ch;margin:0;font-size:12px}.hint.center{text-align:center;max-width:none}.hint.ok,.hint.bad{align-items:center;gap:6px;display:flex}.hint.ok{color:var(--good-t)}.hint.bad{color:var(--bad-t);align-items:flex-start}.hint.bad a,.hint.bad .link{color:var(--bad-t);text-decoration:underline}.check-row{color:var(--text);cursor:pointer;align-items:flex-start;gap:10px;font-size:14px;display:flex}.check-row input{accent-color:#26a0cb;cursor:pointer;flex:none;width:18px;height:18px;margin:1px 0 0}.groups-in{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.dot-icon{border-radius:50%;flex:none;place-items:center;width:16px;height:16px;display:inline-grid}.dot-icon.good{background:var(--good)}.dot-icon.bad{background:var(--bad)}.dot-icon.none{border:1px solid var(--hair-2)}.dot-icon svg{width:10px;height:10px;stroke:var(--ink);stroke-width:2.6px;fill:none;stroke-linecap:round;stroke-linejoin:round}.dot-icon.none svg{stroke:var(--text-3)}.btn{border-radius:var(--r-box);font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:14px;font-weight:750;text-decoration:none;display:inline-flex}.btn-primary{background:var(--you);color:var(--ink)}.btn-primary:hover{background:var(--you-t);color:var(--ink)}.btn-secondary{border-color:var(--hair-2);color:var(--text-2);background:0 0}.btn-secondary:hover{color:var(--text)}.btn-block{width:100%;padding:11px 16px}.btn[disabled]{opacity:.4;cursor:not-allowed}.btn svg{stroke:currentColor;stroke-width:1.8px;fill:none;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.spinner{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}.links{flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:13px;display:flex}.link{font:inherit;color:var(--you-t);cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.link:hover{color:var(--text)}.btn-row{flex-wrap:wrap;gap:8px;display:flex}.note{background:var(--tile);border:1px solid var(--hair);border-radius:var(--r-box);color:var(--text-2);padding:12px 14px;font-size:13px}.note b{color:var(--text);font-weight:650}.note p{margin:0}.note p+p{margin-top:6px}.note.icon{align-items:flex-start;gap:10px;display:flex}.note.icon .dot-icon{margin-top:2px}.task{background:var(--tile);border:1px solid var(--hair);border-radius:var(--r-box);flex-direction:column;gap:10px;padding:14px;display:flex}.task.current{border-color:var(--hair-2)}.task.later .task-head{color:var(--text-2);font-weight:600}.task-head{align-items:center;gap:10px;font-size:14px;font-weight:650;display:flex}.task-num{border:1px solid var(--hair-2);width:22px;height:22px;color:var(--text-2);border-radius:50%;flex:none;place-items:center;font-size:12px;display:grid}.task p{color:var(--text-2);margin:0;font-size:13px}.file{background:var(--tile);border:1px solid var(--hair);border-radius:var(--r-box);align-items:center;gap:12px;padding:12px 14px;display:flex}.file>svg{width:20px;height:20px;stroke:var(--text-3);stroke-width:1.6px;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none}.file-text{flex-direction:column;gap:2px;min-width:0;display:flex}.file-name{color:var(--text);overflow-wrap:anywhere;font-size:14px;font-weight:650}.file-meta{color:var(--text-3);font-size:12px}.file .btn{margin-left:auto}.results{flex-direction:column;display:flex}.result{border-top:1px solid var(--hair);color:var(--text-2);align-items:flex-start;gap:10px;padding:11px 0;font-size:14px;display:flex}.result:first-child{border-top:0;padding-top:2px}.result b{color:var(--text);font-weight:650}.result .dot-icon{margin-top:2px}.segmented{border:1px solid var(--hair-2);border-radius:var(--r-box);background:#00000059;align-self:flex-start;gap:2px;padding:2px;display:inline-flex}.segmented button{color:var(--text-2);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:3px;padding:6px 12px;font-size:13px;font-weight:600}.segmented button:hover{color:var(--text)}.segmented button.on{background:var(--tile);color:var(--text);box-shadow:inset 0 0 0 1px var(--hair-2)}.key{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.group{background:var(--tile);border:1px solid var(--hair-2);border-radius:var(--r-box);flex-direction:column;align-items:center;gap:1px;padding:7px 0 9px;display:flex}.group-n{color:var(--text-3);font-size:11px}.group-v{letter-spacing:.12em;padding-left:.12em;font-size:17px;font-weight:700;font-stretch:105%}.print-only{display:none}.frame{flex-wrap:wrap;min-height:100vh;display:flex}.side{background:var(--side);border-right:1px solid var(--hair);flex-direction:column;flex:0 0 220px;gap:24px;padding:20px 14px;display:flex}.side .brand{padding:0 6px}.nav{flex-direction:column;gap:2px;display:flex}.nav-item{border-radius:var(--r-box);color:var(--text-2);align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:550;display:flex;position:relative}.nav-item.on{background:var(--panel);color:var(--text)}.nav-item.on:before{content:"";background:var(--you-t);border-radius:2px;width:2px;position:absolute;top:9px;bottom:9px;left:0}.nav-item.off{opacity:.4;cursor:not-allowed}.nav svg{width:18px;height:18px;stroke:var(--text-3);stroke-width:1.7px;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none}.nav-item.on svg{stroke:var(--you-t)}.side-foot{flex-direction:column;gap:10px;margin-top:auto;display:flex}.season{border:1px solid var(--hair);border-radius:var(--r-box);padding:10px 12px;font-size:13px;font-weight:600}.main{flex:999 560px;min-width:0;padding:0 24px 40px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;padding:26px 0 18px;display:flex}.status{color:var(--text-2);margin:4px 0 0;font-size:13px}.grid{gap:var(--gap);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.span-6{grid-column:span 6}.span-12{grid-column:span 12}@media (width<=1180px){.span-6{grid-column:span 12}}.panel{background:var(--panel);border:1px solid var(--hair);border-radius:var(--r-panel);flex-direction:column;gap:14px;padding:18px 18px 16px;display:flex;box-shadow:inset 0 1px #ffffff09}.ptitle{margin:0;font-size:15px;font-weight:650}.panel .sub{margin-top:4px}.stats{flex-wrap:wrap;gap:32px;display:flex}.stat-label{color:var(--text-3);font-size:12px}.stat-value{font-size:17px;font-weight:700;font-stretch:105%}.stat-note{color:var(--text-3);font-size:12px}.reminder{background:var(--panel);border:1px solid var(--hair-2);border-radius:var(--r-panel);margin-bottom:var(--gap);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.reminder-text{color:var(--text-2);align-items:flex-start;gap:12px;max-width:70ch;font-size:14px;display:flex}.reminder-text b{color:var(--text);font-weight:650}.reminder svg{width:18px;height:18px;stroke:var(--you-t);stroke-width:1.7px;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none;margin-top:1px}.dev-tag{color:var(--text-3);border:1px dashed var(--hair-2);border-radius:var(--r-tag);align-self:center;padding:2px 6px;font-size:11px}.overlay{z-index:20;background:#000000b3;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow-y:auto}.dialog{background:var(--panel);border:1px solid var(--hair-2);border-radius:var(--r-panel);flex-direction:column;gap:16px;width:100%;max-width:460px;margin:auto;padding:22px 22px 18px;display:flex;box-shadow:0 24px 64px #0009}.dialog.wide{max-width:520px}.dialog-title{margin:0;font-size:17px;font-weight:700}.actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.toast{z-index:30;border:1px solid var(--hair-2);border-radius:var(--r-box);color:var(--text);background:#222226;align-items:center;gap:10px;max-width:min(560px,100% - 48px);padding:10px 14px;font-size:13px;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 10px 28px #0009}@media print{body{color:#000;background:#fff}body *{visibility:hidden}.printable,.printable *{visibility:visible}.printable{width:100%;position:absolute;top:0;left:0}.print-only{color:#000;margin:0 0 16px;display:block}.group{background:#fff;border-color:#000}.group-n,.group-v{color:#000}}
