:root{--paper:#f6f8fc;--sheet:#fff;--ink:#15203a;--muted:#5b6579;--line:#d7deeb;--grid:#2346d812;--accent:#2346d8;--accent-ink:#fff;--accent-soft:#2346d81a;--pencil:#cf3d27;--good:#1d8a4b;--good-soft:#1d8a4b1f;--warn:#a8670a;--warn-soft:#a8670a1f;--bad:#c0392b;--bad-soft:#c0392b1f;--font-display:"Barlow Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;--font-body:"Source Sans 3", "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#0d1322;--sheet:#131b2e;--ink:#e5e9f3;--muted:#9aa4b9;--line:#26314a;--grid:#7c98ff12;--accent:#7f9bff;--accent-ink:#0d1322;--accent-soft:#7f9bff24;--pencil:#ff7a62;--good:#4cc68a;--good-soft:#4cc68a24;--warn:#f0b354;--warn-soft:#f0b35424;--bad:#ff7f6e;--bad-soft:#ff7f6e24;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}[hidden]{display:none!important}body{background-color:var(--paper);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);color:var(--ink);font:400 17px/1.5 var(--font-body);background-size:24px 24px;min-height:100vh}h1,h2{font-family:var(--font-display);letter-spacing:.01em;text-wrap:balance;margin:0;font-weight:600}.kicker{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:15px;font-weight:600}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.topbar{z-index:5;background:color-mix(in srgb, var(--sheet) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0}.topbar-in{flex-wrap:wrap;align-items:center;gap:12px 24px;max-width:980px;margin:0 auto;padding:10px 20px;display:flex}.brand{font-family:var(--font-display);color:var(--ink);letter-spacing:.02em;font-size:22px;font-weight:700;text-decoration:none}.brand span{color:var(--accent);margin:0 4px}.nav{flex:1;gap:4px;display:flex}.nav a{color:var(--muted);border-radius:6px;padding:4px 10px;font-weight:600;text-decoration:none}.nav a:hover{background:var(--accent-soft);color:var(--accent)}.who{align-items:center;gap:10px;margin-left:auto;display:flex}.who-name{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:22ch;font-size:15px;overflow:hidden}.loading{max-width:980px;color:var(--muted);margin:0 auto;padding:64px 20px}.btn{font:inherit;background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);cursor:pointer;border-radius:6px;padding:9px 16px;font-weight:600}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.6;cursor:progress}.btn.ghost{color:var(--ink);border-color:var(--line);background:0 0}.btn.ghost:hover{border-color:var(--accent);color:var(--accent);filter:none}.btn.small{padding:4px 10px;font-size:14px}.btn.danger{background:var(--bad);border-color:var(--bad);color:#fff}.linkbtn{font:inherit;color:var(--accent);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;width:fit-content;padding:0;font-size:15px;text-decoration:underline}select,input[type=date],input[type=text],input[type=email],input[type=password],input[type=number]{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:6px;width:100%;min-width:0;padding:8px 10px}input:focus,select:focus{border-color:var(--accent)}.msg{min-height:1.5em;color:var(--muted);margin:0;font-size:15px}.msg.err{color:var(--bad)}.msg.ok{color:var(--good)}.auth{grid-template-columns:1.2fr 1fr;align-items:start;gap:40px;max-width:980px;margin:0 auto;padding:56px 20px 64px;display:grid}.auth-intro{gap:14px;display:grid}.auth-intro h1{font-size:clamp(48px,8vw,88px);font-weight:700;line-height:.95}.auth-intro p{color:var(--muted);max-width:46ch;margin:0;font-size:18px}.auth-card{gap:18px}.auth-tabs{width:100%}.auth-tabs button{flex:1}.inapp{background:var(--warn-soft);color:var(--ink);border:1px solid var(--warn);border-radius:6px;justify-items:start;gap:6px;padding:12px 14px;display:grid}.inapp strong{color:var(--warn)}.inapp p{margin:0;font-size:15px}.oauth{gap:16px;display:grid}.btn.google{background:var(--sheet);width:100%;color:var(--ink);border-color:var(--line);justify-content:center;align-items:center;gap:10px;display:inline-flex}.btn.google:hover{border-color:var(--accent);filter:none}.btn.google svg{flex:none}.divider{color:var(--muted);align-items:center;gap:12px;font-size:14px;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.form{gap:14px;display:grid}.form h2{font-size:26px}@media (width<=760px){.auth{grid-template-columns:1fr;gap:24px;padding-top:32px}}.wrap{gap:28px;max-width:980px;margin:0 auto;padding:32px 20px 64px;display:grid}.wrap>section{scroll-margin-top:72px}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.hero{gap:10px;display:grid}.finish{font-family:var(--font-display);letter-spacing:-.005em;font-size:clamp(48px,10vw,104px);font-weight:700;line-height:.95}.finish small{color:var(--muted);letter-spacing:.02em;margin-top:8px;font-size:.32em;font-weight:500;display:block}.chip{border-radius:999px;align-items:center;gap:8px;width:fit-content;padding:6px 12px;font-size:16px;font-weight:600;display:inline-flex}.chip.ok{background:var(--good-soft);color:var(--good)}.chip.late{background:var(--bad-soft);color:var(--bad)}.chip:before{content:"";background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}.stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-top:8px;display:grid}.stat{background:var(--sheet);border:1px solid var(--line);border-radius:6px;gap:2px;padding:12px 14px;display:grid}.stat b{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:24px;font-weight:500}.stat span{color:var(--muted);font-size:14px;line-height:1.3}.panel{background:var(--sheet);border:1px solid var(--line);border-radius:8px;gap:12px;min-width:0;padding:18px;display:grid}.panel h2{font-size:26px}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;display:flex}.panel .hint{margin:0}.avg{color:var(--muted);font-size:15px}.avg b{font-family:var(--font-mono);color:var(--ink);font-size:18px;font-weight:500}.legend{color:var(--muted);flex-wrap:wrap;gap:16px;font-size:14px;display:flex}.legend i{border-top:3px solid var(--accent);vertical-align:middle;width:22px;height:0;margin-right:6px;display:inline-block}.legend i.plan{border-top:2px dashed var(--muted)}.legend i.dead{border-top:0;border-left:2px solid var(--pencil);width:3px;height:14px}.chartbox{overflow-x:auto}.chartbox svg{width:100%;min-width:560px;height:auto;display:block}.chartbox svg text{font-family:var(--font-body);fill:var(--muted);font-size:12px}.controls{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px 24px;display:grid}.field{align-content:start;gap:6px;min-width:0;display:grid}.field>label,.field>.lbl{font-weight:600}.hint{color:var(--muted);font-size:14px}.seg{border:1px solid var(--line);border-radius:6px;width:fit-content;display:inline-flex;overflow:hidden}.seg button{font:inherit;background:var(--paper);color:var(--muted);cursor:pointer;border:0;padding:8px 14px;font-weight:600}.seg button[aria-pressed=true],.seg button[aria-selected=true]{background:var(--accent);color:var(--accent-ink)}.days{flex-wrap:wrap;gap:6px;display:flex}.days label{cursor:pointer;position:relative}.days input{opacity:0;pointer-events:none;position:absolute}.days span{text-align:center;border:1px solid var(--line);min-width:44px;color:var(--muted);background:var(--paper);border-radius:6px;padding:6px 8px;font-weight:600;display:inline-block}.days input:checked+span{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.check{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.check input{accent-color:var(--accent);width:18px;height:18px;margin-top:4px}.slider{align-items:center;gap:12px;display:flex}.slider input{accent-color:var(--accent);flex:1}.slider output{font-family:var(--font-mono);min-width:3ch;font-size:20px}.dim{opacity:.45;pointer-events:none}button:focus-visible,select:focus-visible,input:focus-visible+span,input:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chapters{gap:8px;display:grid}details{background:var(--sheet);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:6px}details.done{border-left-color:var(--good)}details.now{border-left-color:var(--accent)}details.late{border-left-color:var(--pencil)}summary{cursor:pointer;grid-template-columns:1fr auto auto;align-items:baseline;gap:4px 12px;padding:10px 14px;list-style:none;display:grid}summary::-webkit-details-marker{display:none}summary .name{min-width:0;font-weight:600}summary .name em{color:var(--muted);margin-right:6px;font-size:14px;font-style:normal;font-weight:400}summary .when{font-family:var(--font-mono);color:var(--muted);text-align:right;font-size:14px}summary .bar{background:var(--line);border-radius:2px;grid-column:1/-1;height:4px;overflow:hidden}summary .bar>div{background:var(--good);height:100%}.score{font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:13px}.score.none{color:var(--muted);border:1px dashed var(--line)}.score.hi{background:var(--good-soft);color:var(--good)}.score.mid{background:var(--warn-soft);color:var(--warn)}.score.lo{background:var(--bad-soft);color:var(--bad)}.topics{gap:2px;margin:0;padding:0 14px 12px;list-style:none;display:grid}.topics li{border-top:1px dashed var(--line);grid-template-columns:52px 1fr auto;align-items:baseline;gap:10px;padding:4px 0;font-size:15px;display:grid}.topics li .nr{font-family:var(--font-mono);color:var(--muted);padding-top:2px;font-size:13px}.topics li .d{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;font-size:13px}.topics li.done .t{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:var(--good);text-decoration-color:var(--good)}.topics li.done .d{color:var(--good)}.topics li.off .t,.topics li.off .d{color:var(--muted);font-style:italic}.topics li.test{align-items:center}.topics li.test .t{color:var(--ink);flex-wrap:wrap;align-items:center;gap:6px 14px;font-weight:700;text-decoration:none;display:flex}.scorebox{color:var(--muted);align-items:center;gap:6px;font-size:14px;font-weight:400;display:inline-flex}.pct{align-items:center;gap:4px;display:inline-flex}.pct input{text-align:right;width:5.5em;font-family:var(--font-mono);padding:4px 8px;font-size:15px}.pct span{color:var(--muted);font-family:var(--font-mono)}.saved{color:var(--good);font-size:13px}.saved.err{color:var(--bad)}.matura-form{flex-wrap:wrap;align-items:end;gap:12px 14px;display:flex}.matura-form .grow{flex:240px}.matura-form .field:not(.grow):not(.narrow){flex:0 170px}.matura-form .narrow{flex:none}.matura-form .pct input{width:6em;padding:8px 10px}.form-actions{gap:8px;display:flex}.tablebox{overflow-x:auto}.results{border-collapse:collapse;width:100%;min-width:520px;font-size:16px}.results th{text-align:left;font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--line);padding:8px 10px;font-size:14px;font-weight:600}.results td{border-bottom:1px solid var(--line);vertical-align:middle;padding:10px}.results .r{text-align:right}.results td.date{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:14px}.results td.res{width:34%}.resbar{grid-template-columns:1fr auto;align-items:center;gap:10px;display:grid}.resbar .track{background:var(--line);border-radius:4px;height:8px;overflow:hidden}.resbar .fill{background:var(--accent);border-radius:4px;height:100%}.resbar .fill.hi{background:var(--good)}.resbar .fill.mid{background:var(--warn)}.resbar .fill.lo{background:var(--bad)}.resbar b{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;min-width:4.5ch;font-weight:500}.results td.act{white-space:nowrap;text-align:right}.results td.act .btn+.btn{margin-left:6px}.results tr.editing td{background:var(--accent-soft)}.empty td{color:var(--muted);text-align:center;padding:28px 10px}footer{color:var(--muted);gap:4px;max-width:70ch;font-size:14px;display:grid}.legal{margin:0}.legal a{color:var(--muted)}.legal a:hover{color:var(--accent)}@media (width<=520px){.topics li{grid-template-columns:44px 1fr}.topics li .d{grid-column:2}summary{grid-template-columns:1fr auto}summary .when{text-align:left;grid-column:1/-1}.nav{flex-basis:100%;order:3}}
