:root{--bg:#E8EFEC;--surface:#F7FAF9;--sunk:#DCE5E1;--ink:#14212E;--muted:#56626C;--line:#C3CFCA;--blue:#1D4F91;--blue-soft:#D6E1F0;--mag:#A3216F;--mag-soft:#F3DCE9;--green:#3F7340;--green-soft:#DCEBD8;--runway:#2B3440;--mark:#F7FAF9;color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0D141B;--surface:#16202A;--sunk:#1E2A36;--ink:#E3E8EC;--muted:#98A6B2;--line:#2C3A47;--blue:#86ADE3;--blue-soft:#1C2E46;--mag:#E585BE;--mag-soft:#3A1E31;--green:#8CC084;--green-soft:#1D3020;--runway:#05090D;--mark:#C9D3DB;color-scheme:dark}}:root[data-theme=dark]{--bg:#0D141B;--surface:#16202A;--sunk:#1E2A36;--ink:#E3E8EC;--muted:#98A6B2;--line:#2C3A47;--blue:#86ADE3;--blue-soft:#1C2E46;--mag:#E585BE;--mag-soft:#3A1E31;--green:#8CC084;--green-soft:#1D3020;--runway:#05090D;--mark:#C9D3DB;color-scheme:dark}html{scroll-padding-top:env(safe-area-inset-top,0px)}*,*:before,*:after{box-sizing:inherit}body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.55 Barlow,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;padding-bottom:84px}h1,h2,h3{font-family:Barlow Condensed,Arial Narrow,Barlow,sans-serif;font-weight:600;line-height:1.1;margin:0}h1{font-size:2.1rem;letter-spacing:.005em}h2{font-size:1.55rem}h3{font-size:1.2rem}p{margin:.5em 0}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:2px}main{max-width:640px;margin:0 auto;padding:20px 18px 32px}.muted{color:var(--muted)}.small{font-size:.9rem}nav.tabs{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--surface);border-top:1px solid var(--line);display:flex;justify-content:center;padding-bottom:env(safe-area-inset-bottom,0px)}nav.tabs .in{display:flex;max-width:640px;width:100%}nav.tabs button{flex:1;background:none;border:0;padding:10px 4px 12px;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:.78rem;color:var(--muted)}nav.tabs button svg{width:22px;height:22px}nav.tabs button[aria-current=page]{color:var(--blue);font-weight:600}.hero{margin:6px 0 22px}.runway{margin-top:14px;position:relative}.runway svg{width:100%;height:auto;display:block}.runway-legend{display:flex;justify-content:space-between;font-size:.85rem;color:var(--muted);margin-top:6px}.big{font-family:Barlow Condensed,sans-serif;font-size:3.2rem;font-weight:700;line-height:1;color:var(--blue)}.actions{display:grid;gap:10px;margin:18px 0 26px}.btn{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;border:1.5px solid var(--line);background:var(--surface);padding:14px 16px;border-radius:10px}.btn strong{display:block;font-weight:600}.btn .meta{font-size:.88rem;color:var(--muted)}.btn.primary{background:var(--blue);border-color:var(--blue);color:var(--surface)}.btn.primary .meta{color:var(--surface);opacity:.85}.btn .count{font-family:Barlow Condensed,sans-serif;font-size:1.7rem;font-weight:700}.btn[disabled]{opacity:.5;cursor:default}.subj{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:12px;width:100%;background:none;border:0;border-bottom:1px solid var(--line);padding:13px 0;text-align:left}.subj .code{font-family:Barlow Condensed,sans-serif;font-weight:600;font-size:1.05rem;color:var(--blue);border:1.5px solid var(--blue);border-radius:6px;text-align:center;padding:2px 0}.subj .name{font-weight:500}.subj .pct{font-family:Barlow Condensed,sans-serif;font-weight:600;font-size:1.15rem;min-width:3ch;text-align:right}.bar{height:5px;background:var(--sunk);border-radius:3px;margin-top:6px;overflow:hidden;position:relative}.bar i{display:block;height:100%;background:var(--blue)}.bar:after{content:"";position:absolute;left:75%;top:0;bottom:0;width:2px;background:var(--mag)}.back{background:none;border:0;color:var(--blue);padding:6px 0;margin-bottom:8px;font-weight:600}details.lesson{border:1px solid var(--line);background:var(--surface);border-radius:10px;margin:10px 0}details.lesson summary{list-style:none;padding:14px 16px;display:flex;justify-content:space-between;gap:10px;align-items:center;font-weight:600}details.lesson summary::-webkit-details-marker{display:none}details.lesson summary .tick{font-size:.85rem;color:var(--green);font-weight:500;white-space:nowrap}details.lesson .body{padding:0 16px 14px}details.lesson .body ul{padding-left:1.1em;margin:.4em 0}details.lesson .body li{margin:.3em 0}.key{border-left:3px solid var(--mag);background:var(--mag-soft);padding:8px 12px;border-radius:0 8px 8px 0;margin:10px 0}table{border-collapse:collapse;width:100%;font-size:.92rem;margin:8px 0}th,td{border-bottom:1px solid var(--line);padding:6px;text-align:left;vertical-align:top}th{font-weight:600}.tbl{overflow-x:auto}.qhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:.9rem;color:var(--muted)}.qtrack{height:4px;background:var(--sunk);border-radius:2px;margin-bottom:18px}.qtrack i{display:block;height:100%;background:var(--blue);border-radius:2px;transition:width .25s}.qtext{font-size:1.15rem;font-weight:500;margin:0 0 16px}.opt{display:block;width:100%;text-align:left;background:var(--surface);border:1.5px solid var(--line);border-radius:10px;padding:13px 14px;margin:8px 0}.opt.ok{border-color:var(--green);background:var(--green-soft)}.opt.bad{border-color:var(--mag);background:var(--mag-soft)}.opt[disabled]{cursor:default}.expl{margin-top:14px;padding:12px 14px;border-radius:10px;background:var(--blue-soft)}.ai{margin-top:10px;padding:12px 14px;border-radius:10px;border:1px dashed var(--blue);white-space:pre-wrap}.row{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}.row .btn{flex:1;justify-content:center;text-align:center;min-width:140px}.score{font-family:Barlow Condensed,sans-serif;font-size:4rem;font-weight:700;line-height:1}.pass{color:var(--green)}.fail{color:var(--mag)}.check{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--line)}.check input{width:22px;height:22px;margin-top:2px;accent-color:var(--green);flex:none}.check b{font-family:Barlow Condensed,sans-serif;font-size:1.25rem;color:var(--blue);width:1.1em;display:inline-block}.verdict{margin:14px 0;padding:14px 16px;border-radius:10px;font-weight:600}.verdict.go{background:var(--green-soft);color:var(--green)}.verdict.no{background:var(--mag-soft);color:var(--mag)}.field{display:grid;grid-template-columns:1fr 96px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.field input{font:inherit;width:100%;padding:8px 10px;border:1.5px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);text-align:right}.field.wide{grid-template-columns:1fr}.field.wide input{text-align:left}.memory{counter-reset:m;padding:0;list-style:none}.memory li{counter-increment:m;padding:8px 0 8px 34px;position:relative}.memory li:before{content:counter(m);position:absolute;left:0;top:7px;width:24px;height:24px;border-radius:50%;background:var(--blue);color:var(--surface);font-weight:600;font-size:.85rem;display:grid;place-items:center}section.block{margin:26px 0}section.block>h2{margin-bottom:6px}textarea{font:inherit;width:100%;min-height:96px;padding:12px;border:1.5px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);resize:vertical}.msg{padding:12px 14px;border-radius:10px;margin:10px 0;white-space:pre-wrap}.msg.me{background:var(--blue-soft);margin-left:40px}.msg.bot{background:var(--surface);border:1px solid var(--line);margin-right:20px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.chip{border:1.5px solid var(--line);background:var(--surface);border-radius:20px;padding:6px 12px;font-size:.9rem}.note{font-size:.85rem;color:var(--muted);margin-top:28px;border-top:1px solid var(--line);padding-top:12px}@media(prefers-reduced-motion:reduce){*{transition:none!important}}nav.tabs a{flex:1;text-decoration:none;padding:10px 4px 12px;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:.78rem;color:var(--muted)}nav.tabs a svg{width:22px;height:22px}nav.tabs a[aria-current=page]{color:var(--blue);font-weight:600}nav.tabs a:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}.app-header{max-width:640px;margin:0 auto;padding:14px 18px 0;display:flex;align-items:center;justify-content:space-between;gap:12px}.app-header .title{font-family:Barlow Condensed,Arial Narrow,Barlow,sans-serif;font-weight:600;font-size:1.25rem;color:var(--muted);letter-spacing:.02em}.avatar{width:38px;height:38px;border-radius:50%;border:0;display:grid;place-items:center;color:#fff;font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:1.2rem;flex:none}.swatches{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 0}.swatch{width:36px;height:36px;border-radius:50%;border:3px solid transparent;padding:0}.swatch[aria-checked=true]{border-color:var(--ink)}.profile-list .btn{margin:8px 0}.profile-list .btn .avatar{margin-right:2px}.profile-list .btn .who{display:flex;align-items:center;gap:12px}a.subj,a.btn,.path a{text-decoration:none;color:inherit}a.btn.primary{color:var(--surface)}.bar.green i{background:var(--green)}ol.path{list-style:none;margin:0;padding:0}ol.path li{margin:10px 0}ol.path a{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:14px 16px;font-weight:600}ol.path a.next{border-color:var(--blue)}ol.path .tick{font-size:.85rem;color:var(--muted);font-weight:500;white-space:nowrap}.daybars{display:flex;align-items:flex-end;gap:4px;height:64px;margin:8px 0}.daybars i{flex:1;background:var(--blue);border-radius:2px 2px 0 0;min-height:3px}.imsafe-days{display:flex;gap:8px;margin:8px 0}.imsafe-days .day{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);background:transparent}.imsafe-days .day.ok{background:var(--green);border-color:var(--green)}.imsafe-days .day.part{background:var(--mag);border-color:var(--mag)}
