:root{--ink:#1c2430;--muted:#6b7280;--bg:#f4f1ea;--card:#fff;--accent:#1f5f8b;--ok:#1a7f4b;--warn:#a15c00;--line:#e6e2d8;
 --bio:#7fc8a9;--chem:#8fb8e8;--fiz:#f2c94c;--hist:#d9a066;--mat:#a99be8;--pol:#e08ea0;--geo:#f0a35e}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.5 -apple-system,system-ui,Segoe UI,Roboto,sans-serif}
.wrap{max-width:640px;margin:0 auto;padding:20px 16px 60px}
h1{font-size:26px;margin:4px 0 12px;line-height:1.2}h2{font-size:18px;margin:20px 0 8px}h3{font-size:17px;margin:0 0 6px}
p{margin:8px 0}
.muted{color:var(--muted);font-size:15px}.ok{color:var(--ok)}.warn{color:var(--warn);font-size:15px}
.lead{font-size:18px}
.card,.lesson{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;margin:14px 0}
.btn{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;padding:12px 18px;border-radius:12px;border:0;font:inherit;font-weight:600;cursor:pointer;margin:4px 6px 4px 0;box-shadow:0 3px 0 #164566}
.btn:active{transform:translateY(2px);box-shadow:0 1px 0 #164566}
.tag{display:inline-block;background:#fff1cc;color:var(--warn);font-size:13px;padding:2px 8px;border-radius:999px;vertical-align:middle}
.done{color:var(--ok);font-size:14px;font-weight:600}
.top{display:flex;justify-content:space-between;align-items:flex-start}
.streak{display:flex;align-items:center;gap:4px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 12px;color:#e0662c;font-weight:700;font-size:20px}
.board{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0 8px}
.tile{position:relative;aspect-ratio:1;border-radius:16px;padding:10px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:#fff;border:2px solid var(--line);transition:transform .15s}
.tile:hover{transform:translateY(-2px)}
.tile img{position:absolute;right:-6px;top:-4px;width:64%;mix-blend-mode:multiply}
.tile .num{position:absolute;left:10px;top:8px;font-weight:700;font-size:14px;color:var(--muted)}
.tile .kind{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.tile .subj{font-weight:700;font-size:15px;line-height:1.1}
.tile .score{position:absolute;left:10px;top:28px;font-size:13px;font-weight:700;color:var(--ok)}
.tile.done{background:#eaf6ee;border-color:#bfe3cc}
.tile.done img{opacity:.6}
.tile.current{border-color:var(--accent);box-shadow:0 0 0 4px rgba(31,95,139,.15);animation:pulse 1.6s infinite}
.tile.todo{background:#faf8f3}
.tile.s-biologia{background:linear-gradient(160deg,#fff 40%,#e3f4ec)}.tile.s-chemia{background:linear-gradient(160deg,#fff 40%,#e6eefb)}
.tile.s-fizyka{background:linear-gradient(160deg,#fff 40%,#fdf4d6)}.tile.s-historia{background:linear-gradient(160deg,#fff 40%,#f7ead9)}
.tile.s-matematyka{background:linear-gradient(160deg,#fff 40%,#ece8fb)}.tile.s-jezyk-polski{background:linear-gradient(160deg,#fff 40%,#fbe6ec)}
.tile.s-geografia{background:linear-gradient(160deg,#fff 40%,#fdebd9)}
.tile.done.s-biologia,.tile.done.s-chemia,.tile.done.s-fizyka,.tile.done.s-historia,.tile.done.s-matematyka,.tile.done.s-jezyk-polski,.tile.done.s-geografia{background:#eaf6ee}
@keyframes pulse{0%,100%{box-shadow:0 0 0 4px rgba(31,95,139,.15)}50%{box-shadow:0 0 0 8px rgba(31,95,139,.05)}}
.lesson{display:flex;gap:12px;align-items:flex-start}.lesson .mini{width:56px;height:56px;border-radius:50%;object-fit:cover;background:#fff;flex:none;mix-blend-mode:multiply}
.lesson a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.teacher{display:flex;gap:12px;align-items:flex-end;margin:10px 0 16px}
.teacher img{width:84px;height:84px;border-radius:50%;object-fit:cover;background:#fff;flex:none;border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.08);mix-blend-mode:multiply}
.bubble{background:#fff;border:1px solid var(--line);border-radius:16px 16px 16px 4px;padding:12px 14px;font-size:16px;position:relative}
.kindlabel{color:var(--accent);font-weight:600;font-size:14px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:0}
.terms dt{font-weight:700;margin-top:10px}.terms dd{margin:2px 0 0}
.points{padding-left:20px}.points li{margin:6px 0}
.hint{background:#fff8e6;border-left:4px solid var(--warn);padding:10px 12px;border-radius:8px}
.progress{height:8px;background:var(--line);border-radius:4px;overflow:hidden}.progress span{display:block;height:100%;background:var(--ok)}
.progress .pulse{animation:grow 8s linear forwards}@keyframes grow{from{width:5%}to{width:95%}}
.quiz fieldset{border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:12px 0;background:var(--card)}
.quiz legend{font-weight:600;padding:0 6px}
.opt{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:10px;margin:6px 0;cursor:pointer;border:1px solid transparent}
.opt:hover{background:var(--bg)}.opt:has(input:checked){border-color:var(--accent);background:#eef4f9}
.opt.right{background:#e6f5ec;border-color:#bfe3cc}.opt.wrong{background:#fdecec;border-color:#f3c2c2}
.expl{font-size:15px;color:var(--muted);margin-top:8px}
textarea{width:100%;font:inherit;padding:10px;border:1px solid var(--line);border-radius:8px}
ol.syl{padding-left:0;list-style:none}ol.syl li{padding:6px 0;border-bottom:1px solid var(--line)}
ol.syl .muted,ol.syl .warn{display:block;font-size:13px;margin-left:24px}
@media (max-width:420px){.board{gap:8px}.tile{padding:8px}.tile .subj{font-size:13px}}
.sep{border:0;border-top:2px dashed var(--line);margin:28px 0 12px}
.board{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.principal{margin:4px 0 14px}.principal img{width:72px;height:72px}
.bubble.comic{border:2px solid var(--ink);border-radius:18px 18px 18px 4px;font-weight:500;background:#fffdf5;box-shadow:3px 3px 0 var(--ink)}

.teacher.tip img{width:56px;height:56px}.teacher.tip .bubble{background:#eef4f9;border-color:#c9dcea}

.golden{background:#fffdf5;border:1px solid #efe6c8;border-radius:14px;padding:14px 16px;margin:14px 0}.golden p{margin:0}.golden .kindlabel{color:#a15c00;margin-bottom:4px}

.strong{background:#eaf6ee;border:1px solid #bfe3cc;border-radius:14px;padding:14px 16px;margin:14px 0}.strong .kindlabel{color:#1a7f4b;margin-bottom:4px}.strong ul{margin:0;padding-left:20px}.strong li{margin:4px 0}

.install{background:#e8f1f8;border:1px solid #c9dcea;border-radius:14px;padding:14px 16px;margin:14px 0}.install .kindlabel{margin-bottom:4px}

.tile.locked{opacity:.55;cursor:default;background:#f3f1ec}

.small-link{font-size:14px;font-weight:400;color:var(--accent);margin-left:8px}.btn-secondary{background:#6b7280;box-shadow:0 3px 0 #4b5563}
