@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-normal-DRk46D-x.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-normal-Bbz-b3yf.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:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.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:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-ext-700-normal-BoVPHkS0.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-700-normal-CKkU2Dpt.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:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.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: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{--bg: #f4f1ea;--surface: #fffdf8;--surface-2: #ece8de;--ink: #1f2a37;--ink-2: #44505e;--muted: #6a717c;--line: #d8d2c4;--line-strong: #b9b2a3;--primary: #1f2a37;--on-primary: #f8f5ee;--ok: #1d7146;--ok-bg: #e2f1e7;--bad: #b03a2e;--bad-bg: #f8e4e0;--warn: #8f5a00;--focus: #2d6cb0;--t-prog: #2b4a6f;--t-net: #1d6b66;--t-cyber: #8a2a35;--t-data: #5b3a7a;--tk-kw: #8a2a35;--tk-str: #1d6b66;--tk-num: #8f5a00;--tk-com: #7a7f87;--radius: 10px;--shadow: 0 1px 2px rgb(31 42 55 / 6%), 0 4px 16px rgb(31 42 55 / 6%);--font: "Atkinson Hyperlegible", "Segoe UI", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #13171c;--surface: #1b2027;--surface-2: #232931;--ink: #e9e5dc;--ink-2: #c3beb3;--muted: #8f949b;--line: #333a44;--line-strong: #4a525d;--primary: #e9e5dc;--on-primary: #151a20;--ok: #6fcf97;--ok-bg: #173226;--bad: #f08a7e;--bad-bg: #3a1f1c;--warn: #e8b45a;--focus: #7fb2ea;--t-prog: #8eb2dd;--t-net: #6cc4bc;--t-cyber: #e98f99;--t-data: #bba0e3;--tk-kw: #e98f99;--tk-str: #6cc4bc;--tk-num: #e8b45a;--tk-com: #858b93;--shadow: 0 1px 2px rgb(0 0 0 / 30%);color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:1.0625rem;line-height:1.5;-webkit-tap-highlight-color:transparent}h1,h2,p{margin:0}h1{font-size:1.625rem;line-height:1.25;font-weight:700;letter-spacing:-.01em}h2{font-size:1.0625rem;font-weight:700}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}code,.mono{font-family:var(--mono);font-size:.92em}.rich code{background:var(--surface-2);border-radius:4px;padding:.05em .3em;white-space:pre-wrap}.rich{white-space:pre-line}.small{font-size:.875rem}.muted{color:var(--muted)}.strong{font-weight:700}.warn{color:var(--warn)}.lead{color:var(--ink-2);margin-top:6px}.page{min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px max(16px,env(safe-area-inset-left)) 10px max(16px,env(safe-area-inset-right));padding-top:max(10px,env(safe-area-inset-top));background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.brand{font-weight:700;font-size:1rem}.topbar-actions{display:flex;gap:8px}.topbar-spacer{width:64px}.content{width:100%;max-width:780px;margin:0 auto;padding:24px 16px 40px;flex:1}.field{margin-top:28px;display:flex;flex-direction:column;gap:10px}.field-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:var(--radius);border:1.5px solid transparent;font-weight:700;background:none;transition:background-color .15s,border-color .15s,opacity .15s}.btn-small{min-height:40px;padding:0 14px;font-size:.9375rem}.btn-wide{width:100%}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:disabled{opacity:.35}.btn-ghost{border-color:var(--line-strong);background:var(--surface)}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-ghost:disabled{opacity:.5}.btn-danger{background:var(--bad);color:#fff}@media(prefers-color-scheme:dark){.btn-danger{color:#1b1210}}.btn-danger-ghost{border-color:color-mix(in srgb,var(--bad) 50%,transparent);color:var(--bad);background:transparent}.btn-danger-ghost:hover{background:var(--bad-bg)}.link-btn{background:none;border:0;padding:6px 0;color:var(--ink-2);text-decoration:underline;text-underline-offset:3px;font-size:.9375rem;align-self:flex-start}.badge{min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--surface-2);font-size:.8125rem;display:inline-flex;align-items:center;justify-content:center}.button-row{display:flex;flex-wrap:wrap;gap:10px}.resume{margin-top:20px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 16px;border-radius:var(--radius);background:var(--surface);border:1.5px solid var(--line-strong)}.resume-actions{display:flex;gap:8px}.topic-grid{display:grid;grid-template-columns:1fr;gap:10px}@media(min-width:540px){.topic-grid{grid-template-columns:1fr 1fr}}[data-topic=prog]{--t: var(--t-prog)}[data-topic=net]{--t: var(--t-net)}[data-topic=cyber]{--t: var(--t-cyber)}[data-topic=data]{--t: var(--t-data)}.topic{position:relative;display:grid;grid-template-columns:1fr auto;grid-template-areas:"unit check" "name check" "count check";text-align:left;gap:2px 12px;padding:14px 16px 14px 18px;border-radius:var(--radius);border:1.5px solid var(--line);background:var(--surface);overflow:hidden;transition:border-color .15s,background-color .15s}.topic:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--t);opacity:.35}.topic.is-on{border-color:var(--t);background:color-mix(in srgb,var(--t) 9%,var(--surface))}.topic.is-on:before{opacity:1}.topic-unit{grid-area:unit;font-size:.8125rem;color:var(--t);font-weight:700}.topic-name{grid-area:name;font-weight:700;font-size:1.0625rem}.topic-count{grid-area:count;font-size:.8125rem;color:var(--muted)}.topic-check,.check{grid-area:check;align-self:center;width:24px;height:24px;border-radius:6px;border:1.5px solid var(--line-strong);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--surface)}.topic-check svg,.check svg,.mark svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.topic-check svg,.check svg{opacity:0}.topic.is-on .topic-check{background:var(--t);border-color:var(--t);color:var(--surface)}.topic.is-on .topic-check svg,.check-on svg{opacity:1}.check-on{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.seg{display:flex;padding:4px;gap:4px;border-radius:calc(var(--radius) + 2px);background:var(--surface-2);border:1px solid var(--line)}.seg-btn{flex:1;min-height:44px;padding:0 10px;border:0;border-radius:8px;background:transparent;font-weight:700;color:var(--ink-2)}.seg-btn.is-on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.seg-small .seg-btn{min-height:38px;font-size:.9375rem;line-height:1.2;padding:4px 8px}.count-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(58px,1fr));gap:8px}.count{min-height:48px;border-radius:var(--radius);border:1.5px solid var(--line);background:var(--surface);font-weight:700;font-family:var(--mono)}.count.is-on{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.count:disabled{opacity:.35;text-decoration:line-through}.start-bar{position:sticky;bottom:0;margin:28px -16px 0;padding:12px 16px max(12px,env(safe-area-inset-bottom));background:color-mix(in srgb,var(--bg) 94%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}@media(min-width:720px){.start-bar{flex-direction:row;align-items:center;justify-content:space-between;gap:16px}.start-bar .btn-wide{width:auto;min-width:220px}}.topbar-test{border-bottom:0}.progress-text{font-size:.9375rem}.progress{position:absolute;left:0;right:0;bottom:-4px;height:4px;background:var(--line)}.progress-fill{height:100%;background:var(--primary);transition:width .25s ease}.content-test{padding-bottom:120px}.question{display:flex;flex-direction:column;gap:14px}.q-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:.8125rem;color:var(--muted)}.q-num{font-weight:700;color:var(--ink);font-family:var(--mono)}.q-topic{color:var(--t);font-weight:700}.q-dot{width:3px;height:3px;border-radius:50%;background:currentColor}.q-level{margin-left:auto;padding:2px 8px;border-radius:999px;border:1px solid var(--line-strong);font-weight:700;color:var(--ink-2)}.q-prompt{font-size:1.1875rem;line-height:1.45;font-weight:700}.q-hint{font-size:.875rem;color:var(--muted);margin-top:-4px}.options{display:flex;flex-direction:column;gap:8px}.options-row{flex-direction:row}.options-row .option{flex:1}.option{display:flex;align-items:center;gap:12px;min-height:52px;width:100%;padding:10px 14px;text-align:left;border-radius:var(--radius);border:1.5px solid var(--line);background:var(--surface);transition:border-color .12s,background-color .12s}.option:hover:not(:disabled){border-color:var(--line-strong)}.option:disabled{color:inherit}.option-key{flex-shrink:0;width:28px;height:28px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:.8125rem;font-weight:500;background:var(--surface-2);color:var(--ink-2)}.option-text{flex:1;min-width:0;overflow-wrap:anywhere}.option-text.mono{white-space:pre-wrap;font-size:.875rem}.option-note{font-size:.8125rem;font-weight:700;color:var(--ok)}.option.is-chosen{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 7%,var(--surface))}.option.is-chosen .option-key{background:var(--primary);color:var(--on-primary)}.option.is-used{opacity:.55}.option.is-right,.option.is-missed{border-color:var(--ok);background:var(--ok-bg)}.option.is-missed{border-style:dashed}.option.is-wrong{border-color:var(--bad);background:var(--bad-bg)}.option.is-dim{opacity:.6}.mark{flex-shrink:0;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff}.mark-ok{background:var(--ok)}.mark-bad{background:var(--bad)}@media(prefers-color-scheme:dark){.mark{color:#12161b}}.text-input{width:100%;min-height:52px;padding:10px 14px;border-radius:var(--radius);border:1.5px solid var(--line-strong);background:var(--surface);font-family:var(--mono);font-size:1.0625rem}.text-input:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 25%,transparent)}.text-input.is-right{border-color:var(--ok);background:var(--ok-bg)}.text-input.is-wrong{border-color:var(--bad);background:var(--bad-bg)}.typed{display:flex;flex-direction:column;gap:8px}.reveal-line{font-size:.9375rem}.reveal-block{padding:12px 14px;border-radius:var(--radius);background:var(--ok-bg)}.plain-list{margin:6px 0 0;padding-left:22px}.order{display:flex;flex-direction:column;gap:12px}.order-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.order-slot{min-height:52px;border-radius:var(--radius);border:1.5px dashed var(--line-strong);display:flex;align-items:center;padding:0 14px}.order-slot .option-key{background:transparent}.order-pool{display:flex;flex-direction:column;gap:8px;padding-top:4px}.match{display:grid;gap:16px}@media(min-width:760px){.match{grid-template-columns:1fr 1fr;align-items:start}.match-right{position:sticky;top:84px}}.match-left,.match-right{display:flex;flex-direction:column;gap:8px}.match-row{display:grid;grid-template-columns:1fr auto;gap:4px 12px;align-items:center;width:100%;padding:12px 14px;text-align:left;border-radius:var(--radius);border:1.5px solid var(--line);background:var(--surface)}.match-row:disabled{color:inherit}.match-row .mark{grid-column:2;grid-row:1 / span 3}.match-term{font-weight:700}.match-pick{grid-column:1;font-size:.9375rem;color:var(--ink-2)}.match-fix{grid-column:1;font-size:.875rem;color:var(--ok);font-weight:700}.match-row.is-active{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 15%,transparent)}.match-row.is-right{border-color:var(--ok);background:var(--ok-bg)}.match-row.is-wrong{border-color:var(--bad);background:var(--bad-bg)}.group{display:flex;flex-direction:column;gap:8px}.group-row{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-radius:var(--radius);border:1.5px solid var(--line);background:var(--surface)}@media(min-width:640px){.group-row{flex-direction:row;align-items:center;justify-content:space-between}.group-row .seg{flex:0 0 auto;min-width:260px}}.group-row.is-right{border-color:var(--ok)}.group-row.is-wrong{border-color:var(--bad);background:var(--bad-bg)}.group-label{font-weight:700}.seg-btn.is-right{background:var(--ok);color:var(--surface)}.seg-btn.is-wrong{background:var(--bad);color:var(--surface);text-decoration:line-through}.code{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface-2);overflow:hidden}.code-lang{padding:6px 12px;font-size:.75rem;font-weight:700;color:var(--muted);border-bottom:1px solid var(--line)}.code-body{padding:10px 0;overflow-x:auto;font-family:var(--mono);font-size:.875rem;line-height:1.6}.code-line{display:flex;width:100%;min-width:max-content;padding:0 14px;white-space:pre;text-align:left;border:0;background:none;font:inherit;color:var(--ink)}.code-pick .code-line{min-height:40px;align-items:center;border-left:3px solid transparent}.code-pick .code-line:hover:not(:disabled){background:color-mix(in srgb,var(--ink) 6%,transparent)}.code-line.is-chosen{background:color-mix(in srgb,var(--primary) 12%,transparent);border-left-color:var(--primary)}.code-line.is-right{background:var(--ok-bg);border-left-color:var(--ok)}.code-line.is-wrong{background:var(--bad-bg);border-left-color:var(--bad)}.code-ln{width:2.2em;flex-shrink:0;color:var(--muted);-webkit-user-select:none;user-select:none}.tk-kw{color:var(--tk-kw);font-weight:500}.tk-str{color:var(--tk-str)}.tk-num{color:var(--tk-num)}.tk-com{color:var(--tk-com);font-style:italic}.trace-wrap{overflow-x:auto}.trace{border-collapse:collapse;min-width:100%;font-family:var(--mono);font-size:.9375rem;background:var(--surface)}.trace th,.trace td{border:1px solid var(--line-strong);padding:6px 10px;text-align:center}.trace th{background:var(--surface-2);font-weight:500}.trace-blank{padding:4px!important}.trace-blank .text-input{min-height:40px;min-width:72px;padding:4px 8px;text-align:center;font-size:.9375rem}.trace-fix{display:block;font-size:.8125rem;color:var(--ok);font-weight:500}.feedback{margin-top:16px;padding:14px 16px;border-radius:var(--radius);border-left:4px solid}.feedback-ok{background:var(--ok-bg);border-color:var(--ok)}.feedback-bad{background:var(--bad-bg);border-color:var(--bad)}.feedback-title{font-weight:700;margin-bottom:4px}.feedback-ok .feedback-title{color:var(--ok)}.feedback-bad .feedback-title{color:var(--bad)}.feedback-text{color:var(--ink)}.action-bar{position:fixed;left:0;right:0;bottom:0;z-index:10;background:color-mix(in srgb,var(--bg) 94%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--line);padding:12px 16px max(12px,env(safe-area-inset-bottom))}.action-inner{max-width:780px;margin:0 auto;display:flex;justify-content:flex-end}@media(min-width:720px){.action-inner .btn-wide{width:auto;min-width:240px}}.score-card{padding:20px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);display:grid;gap:12px}.score-main{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.score-num{font-size:2.25rem;font-weight:700;line-height:1.1;font-family:var(--mono)}.score-of{font-size:1.25rem;color:var(--muted)}.score-pct{font-size:1.375rem;font-weight:700}.meter,.bd-bar{height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden}.meter-fill,.bd-bar span{display:block;height:100%;background:var(--ok);border-radius:4px}.breakdown{display:grid;gap:12px}@media(min-width:720px){.breakdown{grid-template-columns:1fr 1fr}}.bd-topic{padding:14px 16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--t)}.bd-head{display:flex;justify-content:space-between;margin-bottom:8px}.bd-rows{list-style:none;margin:0;padding:0;display:grid;gap:8px}.bd-rows li{display:grid;grid-template-columns:1fr 64px auto;gap:10px;align-items:center;font-size:.875rem}.bd-bar span{background:var(--t)}.review-list{display:flex;flex-direction:column;gap:16px;margin-top:6px}.review-item{padding:18px 16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}.review-item .q-prompt{font-size:1.0625rem}.end-actions{margin-top:28px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.notice{margin-top:16px;padding:10px 14px;border-radius:var(--radius);background:var(--surface-2)}.empty{margin-top:24px;padding:28px 16px;text-align:center;border-radius:var(--radius);border:1.5px dashed var(--line-strong)}.stats{margin-top:20px;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media(min-width:560px){.stats{grid-template-columns:repeat(4,1fr)}}.stat{padding:12px 14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);display:flex;flex-direction:column}.stat-num{font-size:1.375rem;font-weight:700;font-family:var(--mono)}.stat-label{font-size:.8125rem;color:var(--muted)}.weak-list,.record-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.weak-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--t)}.record{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;text-align:left;border-radius:var(--radius);border:1.5px solid var(--line);background:var(--surface)}.record:hover{border-color:var(--line-strong)}.record-main{display:flex;flex-direction:column;min-width:0}.record-score{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0}.pct{font-weight:700;font-size:.875rem}.pct-good{color:var(--ok)}.pct-mid{color:var(--warn)}.pct-low{color:var(--bad)}.danger-zone{padding-top:20px;border-top:1px solid var(--line);align-items:flex-start}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0a0e1473;display:flex;align-items:center;justify-content:center;padding:16px}.dialog{width:100%;max-width:420px;padding:22px 20px 16px;border-radius:14px;background:var(--surface);box-shadow:0 12px 40px #00000040}.dialog h2{font-size:1.1875rem}.dialog-body{margin-top:8px;color:var(--ink-2)}.dialog-actions{margin-top:20px;display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.toast{position:fixed;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:40;width:calc(100% - 32px);max-width:480px;display:flex;align-items:center;gap:8px;padding:10px 10px 10px 16px;border-radius:12px;background:var(--surface);border:1px solid var(--line-strong);box-shadow:0 8px 28px #0000002e}.toast span{flex:1;font-size:.9375rem}.toast-warn{border-color:var(--warn)}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
