/* Seminář legend – pastelový školní svět. Jednolité levandulové pozadí, papírové karty,
   každá sada má svou barvu: M1 korálová, M2 fialová, M3 tyrkysová, M4 zlatá. */
:root{
  color-scheme: light;
  --bg:#eef0fa; --card:#ffffff; --card2:#f6f7fd; --card3:#eceffa; --edge:#dfe3f3; --edge2:#c9cfe8;
  --ink:#262b47; --soft:#666d92; --faint:#9aa0bf;
  --primary:#5b6cff; --primary-d:#4150e0; --primary-l:#e8ebff;
  --m1:#ff7b72; --m1-d:#e25a52; --m1-l:#ffe9e7;
  --m2:#a685ff; --m2-d:#8662f2; --m2-l:#f1ebff;
  --m3:#2fbfa5; --m3-d:#1f9e88; --m3-l:#dff6f1;
  --m4:#f5b83d; --m4-d:#d99a1c; --m4-l:#fff3d9;
  --good:#24a26a; --good-l:#e3f6ec; --bad:#e2574c; --bad-l:#fdebe9; --warn:#c98a10; --warn-l:#fff4d6;
  --hl:#fff1a0;
  --f-display:"Nunito","Segoe UI",system-ui,sans-serif;
  --f-body:"Source Sans 3","Segoe UI",system-ui,sans-serif;
  --r:22px; --r-sm:14px;
  --shadow:0 5px 0 var(--edge);
}
*{box-sizing:border-box}
html,body{background:var(--bg);color:var(--ink)}
body{margin:0;font-family:var(--f-body);font-size:16px;line-height:1.55;padding-inline:16px;padding-block:0 60px;-webkit-font-smoothing:antialiased}
.wrap{max-width:1080px;margin:0 auto}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.num{font-variant-numeric:tabular-nums}
h1,h2,h3{font-family:var(--f-display);font-weight:800;line-height:1.15;margin:0;text-wrap:balance}
h2{font-size:1.75rem} h3{font-size:1.2rem}
p{margin:0}
.muted{color:var(--soft)} .small{font-size:.88rem}
.hidden{display:none!important}

/* Načítání */
.boot{min-height:70vh;display:grid;place-content:center;justify-items:center;gap:14px;color:var(--soft);font-weight:700}
.boot-logo{width:64px;height:64px;border-radius:18px;background:var(--primary) url(/img/icon.svg) center/cover;animation:bob 1.4s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-6px)}}

/* Hlavička */
header.top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 20px;padding-block:22px 14px}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand .mark{width:52px;height:52px;flex:none;border-radius:16px;background:url(/img/icon.svg) center/cover;box-shadow:0 4px 0 var(--primary-d)}
.brand h1{font-size:1.85rem;font-weight:900;color:var(--ink);letter-spacing:.005em}
.brand .sub{font-size:.85rem;font-weight:800;color:var(--primary);letter-spacing:.02em}
.res{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.pill{display:flex;align-items:center;gap:10px;background:var(--card);border:2px solid var(--edge);border-radius:999px;padding:5px 14px 5px 6px;box-shadow:0 3px 0 var(--edge)}
.pill .badge{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-family:var(--f-display);font-weight:900;color:#fff;background:var(--primary);font-size:1.05rem}
.pill .badge.gold{background:var(--m4);color:#6b4a00}
.pill small{display:block;font-size:.7rem;color:var(--soft);font-weight:800;line-height:1.1;text-transform:uppercase;letter-spacing:.05em}
.pill b{font-family:var(--f-display);font-size:1.1rem;line-height:1.1;font-weight:800}
.xpbar{width:110px;height:8px;border-radius:5px;background:var(--card3);overflow:hidden;margin-top:3px}
.xpbar i{display:block;height:100%;background:linear-gradient(90deg,var(--primary),#8a97ff);border-radius:5px}
.iconbtn{background:var(--card);border:2px solid var(--edge);border-radius:12px;padding:7px 12px;font-weight:800;cursor:pointer;color:var(--soft);box-shadow:0 3px 0 var(--edge)}
.iconbtn:hover{color:var(--ink)}

/* Navigace */
nav.navbar{display:flex;gap:6px;overflow-x:auto;padding:7px;margin-bottom:18px;background:var(--card);border:2px solid var(--edge);border-radius:20px;scrollbar-width:none;box-shadow:var(--shadow)}
nav.navbar::-webkit-scrollbar{display:none}
nav.navbar button{display:flex;align-items:center;gap:8px;background:transparent;border:0;border-radius:14px;padding:9px 14px;cursor:pointer;color:var(--ink);white-space:nowrap;font-weight:800;position:relative}
nav.navbar button svg{width:20px;height:20px;flex:none}
nav.navbar button:hover:not([disabled]){background:var(--card2)}
nav.navbar button[aria-current="page"]{background:var(--primary);color:#fff;box-shadow:0 3px 0 var(--primary-d)}
nav.navbar button[disabled]{color:var(--faint);cursor:default}
nav.navbar button .soon{font-size:.65rem;font-weight:800;background:var(--card3);color:var(--soft);padding:2px 7px;border-radius:999px}
nav.navbar .dot{position:absolute;top:6px;right:7px;width:9px;height:9px;border-radius:50%;background:var(--m1);box-shadow:0 0 0 2px var(--card)}
nav.navbar .sp{flex:1}

/* Obecné kostky */
.view{display:grid;gap:18px;min-width:0}
.card{background:var(--card);border:2px solid var(--edge);border-radius:var(--r);padding:22px;box-shadow:var(--shadow);min-width:0}
.card.flat{box-shadow:none}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.spread{display:flex;gap:10px 16px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:820px){.grid2{grid-template-columns:minmax(0,1fr)}.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}
.lead{color:var(--soft);max-width:64ch;margin-top:6px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--primary);color:#fff;border:0;border-radius:14px;padding:11px 20px;font-weight:800;cursor:pointer;box-shadow:0 4px 0 var(--primary-d);transition:transform .08s,box-shadow .08s;white-space:nowrap;text-decoration:none}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--primary-d)}
.btn:disabled{background:var(--card3);color:var(--faint);box-shadow:0 4px 0 var(--edge);cursor:not-allowed;transform:none}
.btn.ghost{background:var(--card);color:var(--ink);border:2px solid var(--edge);box-shadow:0 4px 0 var(--edge)}
.btn.good{background:var(--good);box-shadow:0 4px 0 #17804f}
.btn.danger{background:var(--bad);box-shadow:0 4px 0 #b9392f}
.btn.sm{padding:7px 13px;font-size:.9rem;border-radius:11px}
.btn.big{font-size:1.1rem;padding:14px 26px;border-radius:16px}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:800;padding:4px 10px;border-radius:999px;background:var(--card2);border:1.5px solid var(--edge);color:var(--soft);white-space:nowrap}
.chip.m1{background:var(--m1-l);border-color:transparent;color:var(--m1-d)}
.chip.m2{background:var(--m2-l);border-color:transparent;color:var(--m2-d)}
.chip.m3{background:var(--m3-l);border-color:transparent;color:var(--m3-d)}
.chip.m4{background:var(--m4-l);border-color:transparent;color:#9a6a00}
.chip.week{background:var(--hl);border-color:transparent;color:#6b5a00}
.bar{height:10px;border-radius:6px;background:var(--card3);overflow:hidden}
.bar i{display:block;height:100%;border-radius:6px;background:var(--primary);transition:width .5s cubic-bezier(.2,.8,.2,1)}
.kicker{font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--primary)}

/* Scéna (nadpis sekce) */
.scene{position:relative;overflow:hidden;border-radius:var(--r);padding:26px 230px 26px 28px;min-height:150px;color:#fff;display:flex;flex-direction:column;justify-content:center;gap:6px;box-shadow:0 5px 0 rgba(38,43,71,.12)}
.scene h2{color:#fff;font-size:2rem}
.scene p{color:#fff;opacity:.95;max-width:58ch}
.scene .deco{position:absolute;right:18px;bottom:0;width:200px;height:140px;pointer-events:none}
.scene.s-primary{background:linear-gradient(135deg,#7584ff,#4f5ee8)}
.scene.s-m1{background:linear-gradient(135deg,#ff958d,#e8645b)}
.scene.s-coral{background:linear-gradient(135deg,#ff9f8f,#f0727f)}
.scene.s-teal{background:linear-gradient(135deg,#48cdb4,#219c87)}
.scene.s-violet{background:linear-gradient(135deg,#b69bff,#7d5ee6)}
@media (max-width:700px){.scene{padding:22px 20px;min-height:0}.scene .deco{display:none}.scene h2{font-size:1.6rem}}

/* Přihlášení */
.auth{min-height:calc(100vh - 40px);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:28px;align-items:center;padding-block:30px}
@media (max-width:880px){.auth{grid-template-columns:minmax(0,1fr);gap:18px}}
.auth .hero{display:grid;gap:16px}
.auth .hero h1{font-size:clamp(2.4rem,6vw,3.6rem);font-weight:900;line-height:1}
.auth .hero h1 span{display:block;font-size:.42em;color:var(--primary);font-weight:800;margin-top:10px;letter-spacing:.01em}
.auth .hero .art{max-width:440px;width:100%}
.auth .hero p{color:var(--soft);max-width:46ch;font-size:1.05rem}
.tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--card2);border-radius:14px;padding:5px;margin-bottom:18px}
.tabs button{border:0;background:transparent;border-radius:10px;padding:9px;font-weight:800;cursor:pointer;color:var(--soft)}
.tabs button[aria-selected="true"]{background:var(--card);color:var(--ink);box-shadow:0 2px 0 var(--edge)}
form.stack{display:grid;gap:14px}
label.field{display:grid;gap:6px;font-weight:800;font-size:.9rem}
label.field input,select.inp{width:100%;min-width:0;border:2px solid var(--edge);border-radius:12px;padding:11px 13px;background:var(--card);font-weight:600}
label.field input:focus,select.inp:focus{border-color:var(--primary);outline:none}
label.field small{font-weight:500;color:var(--soft)}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.seg button{border:2px solid var(--edge);background:var(--card);border-radius:12px;padding:10px;font-weight:800;cursor:pointer}
.seg button[aria-pressed="true"]{border-color:var(--primary);background:var(--primary-l);color:var(--primary-d)}
.formerr{color:var(--bad);font-weight:700;min-height:1.4em}

/* Postava */
.charwrap{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:860px){.charwrap{grid-template-columns:minmax(0,1fr)}}
.charcard{padding:16px;display:grid;gap:12px}
.portrait{border-radius:18px;background:var(--card2);border:2px solid var(--edge);overflow:hidden;aspect-ratio:5/6;display:grid;place-items:end center}
.portrait svg{width:100%;height:100%;display:block}
.charname{display:grid;gap:2px;padding-inline:4px}
.charname b{font-family:var(--f-display);font-size:1.5rem;font-weight:800}
.lvlrow{display:flex;align-items:center;gap:10px}
.lvl{font-family:var(--f-display);font-weight:900;color:#fff;background:var(--primary);border-radius:12px;padding:3px 10px;font-size:1rem}
.stats{display:grid;gap:12px}
.stat{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:4px 14px;align-items:center;padding:12px 14px;border-radius:18px;background:var(--card2)}
.stat .ico{grid-row:span 2;width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-family:var(--f-display);font-weight:900;color:#fff;font-size:1.15rem}
.stat .nm{font-weight:800;line-height:1.2}
.stat .nm small{display:block;font-weight:600;color:var(--soft);font-size:.82rem}
.stat .val{grid-row:span 2;font-family:var(--f-display);font-size:2rem;font-weight:800;line-height:1}
.stat .bar{height:8px}
.stat.m1 .ico{background:var(--m1)} .stat.m1 .bar i{background:var(--m1)}
.stat.m2 .ico{background:var(--m2)} .stat.m2 .bar i{background:var(--m2)}
.stat.m3 .ico{background:var(--m3)} .stat.m3 .bar i{background:var(--m3)}
.stat.m4 .ico{background:var(--m4);color:#6b4a00} .stat.m4 .bar i{background:var(--m4)}
.effects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:560px){.effects{grid-template-columns:repeat(2,minmax(0,1fr))}}
.effect{border:2px dashed var(--edge);border-radius:16px;padding:10px 12px;display:grid;gap:2px}
.effect b{font-family:var(--f-display);font-size:1.35rem;font-weight:800}
.effect small{font-size:.75rem;font-weight:800;color:var(--soft);text-transform:uppercase;letter-spacing:.04em}

/* Cvičiště */
.sets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:820px){.sets{grid-template-columns:repeat(2,minmax(0,1fr))}}
.settile{position:relative;text-align:left;border:2px solid var(--edge);background:var(--card);border-radius:20px;padding:14px;cursor:pointer;display:grid;gap:6px;box-shadow:0 4px 0 var(--edge);transition:transform .08s}
.settile:hover:not([disabled]){transform:translateY(-2px)}
.settile .tag{font-family:var(--f-display);font-weight:900;font-size:1.4rem;line-height:1}
.settile .nm{font-weight:800;font-size:.92rem;line-height:1.25}
.settile .gv{font-size:.8rem;color:var(--soft);font-weight:600}
.settile .sv{position:absolute;top:12px;right:14px;font-family:var(--f-display);font-weight:800;font-size:1.25rem}
.settile[disabled]{opacity:.55;cursor:not-allowed}
.settile.m1 .tag{color:var(--m1-d)} .settile.m2 .tag{color:var(--m2-d)} .settile.m3 .tag{color:var(--m3-d)} .settile.m4 .tag{color:var(--m4-d)}
.settile.m1[aria-pressed="true"]{border-color:var(--m1);background:var(--m1-l);box-shadow:0 4px 0 var(--m1)}
.settile.m2[aria-pressed="true"]{border-color:var(--m2);background:var(--m2-l);box-shadow:0 4px 0 var(--m2)}
.settile.m3[aria-pressed="true"]{border-color:var(--m3);background:var(--m3-l);box-shadow:0 4px 0 var(--m3)}
.settile.m4[aria-pressed="true"]{border-color:var(--m4);background:var(--m4-l);box-shadow:0 4px 0 var(--m4)}
.trainbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center}
.trainbar .bar{height:14px;border-radius:8px}
.trainbar .bar i{background:linear-gradient(90deg,var(--m1),var(--m2),var(--m3),var(--m4))}

.task{display:grid;gap:16px}
.taskhead{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.prompt{font-size:1.08rem;overflow-x:auto;min-width:0}
.prompt .katex-display{margin:.7em 0;overflow-x:auto;overflow-y:hidden;padding-block:4px}
.prompt .katex{font-size:1.12em}
.answerbox{border:2px solid var(--edge);border-radius:18px;padding:14px;background:var(--card2);display:grid;gap:12px}
.answerbox .lbl{font-weight:800;font-size:.85rem;color:var(--soft);text-transform:uppercase;letter-spacing:.06em}
.verdict{border-radius:18px;padding:16px 18px;display:grid;gap:10px}
.verdict.ok{background:var(--good-l);border:2px solid #b5e5cc}
.verdict.bad{background:var(--bad-l);border:2px solid #f4c5c0}
.verdict h3{display:flex;align-items:center;gap:8px}
.verdict.ok h3{color:var(--good)} .verdict.bad h3{color:var(--bad)}
.notice{border-radius:14px;padding:10px 14px;font-weight:700;background:var(--warn-l);color:#8a5d00}
.rewards{display:flex;flex-wrap:wrap;gap:8px}
ol.steps{margin:0;padding-left:1.5em;display:grid;gap:10px}
ol.steps li{overflow-x:auto;min-width:0;padding-left:4px}
ol.steps li::marker{font-weight:800;color:var(--soft)}
ol.steps .katex-display{margin:.4em 0}
details.post summary{cursor:pointer;font-weight:800;color:var(--primary)}
details.post[open] summary{margin-bottom:10px}

/* Matematický vstup */
math-field{min-width:86px;font-size:1.25rem;border:2px solid var(--edge2);border-radius:12px;padding:4px 10px;background:#fff;--caret-color:var(--primary);--selection-background-color:var(--primary-l);--contains-highlight-background-color:var(--card2)}
math-field:focus-within{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px var(--primary-l)}
math-field::part(menu-toggle){display:none}
math-field::part(virtual-keyboard-toggle){color:var(--primary)}
input.plain{min-width:96px;width:9em;font-size:1.1rem;border:2px solid var(--edge2);border-radius:12px;padding:8px 10px;background:#fff;font-weight:600}
input.plain:focus{border-color:var(--primary);outline:none}
.setin{display:grid;gap:12px}
.setrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:1.15rem}
.setrow .keq{font-family:var(--f-display);font-weight:800;font-size:1.3rem;margin-right:2px}
.setitem{display:inline-flex;align-items:center;gap:4px;background:#fff;border:2px dashed var(--edge2);border-radius:14px;padding:4px 6px}
.setitem .x{border:0;background:transparent;color:var(--faint);font-weight:800;cursor:pointer;border-radius:8px;padding:2px 6px;font-size:1rem}
.setitem .x:hover{color:var(--bad);background:var(--bad-l)}
.brk{border:2px solid var(--edge2);background:var(--card2);border-radius:10px;min-width:36px;height:40px;font-size:1.35rem;font-weight:700;cursor:pointer;font-family:"Times New Roman",serif;color:var(--primary-d)}
.brk:hover{border-color:var(--primary)}
.infbtn{border:2px solid var(--edge2);background:var(--card2);border-radius:10px;height:40px;padding:0 10px;font-size:1.05rem;font-weight:700;cursor:pointer;color:var(--soft)}
.infbtn[aria-pressed="true"]{background:var(--primary-l);border-color:var(--primary);color:var(--primary-d)}
.semi{font-weight:800;color:var(--soft)}
.cup{font-size:1.3rem;color:var(--soft);padding-inline:2px}
.bigsym{font-family:"Times New Roman",serif;font-size:1.7rem;font-weight:700;color:var(--primary-d);padding:0 8px}
.setbtns{display:flex;flex-wrap:wrap;gap:8px}
.tuplein{display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-size:1.15rem}
.tuplein label{display:inline-flex;align-items:center;gap:8px;font-weight:700}
.hint{font-size:.85rem;color:var(--soft)}

/* Sešit chyb */
.sesitstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@media (max-width:700px){.sesitstats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.sstat{border-radius:18px;padding:12px 14px;background:var(--card2);display:grid;gap:2px}
.sstat b{font-family:var(--f-display);font-size:1.8rem;font-weight:800;line-height:1}
.sstat small{font-weight:800;color:var(--soft);font-size:.78rem}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filters button{border:2px solid var(--edge);background:var(--card);border-radius:999px;padding:6px 14px;font-weight:800;cursor:pointer;color:var(--soft)}
.filters button[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.mistake{display:grid;gap:12px}
.mistake .meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cmp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (max-width:640px){.cmp{grid-template-columns:minmax(0,1fr)}}
.cmp > div{border-radius:14px;padding:10px 12px;overflow-x:auto;min-width:0}
.cmp .yours{background:var(--bad-l)} .cmp .right{background:var(--good-l)}
.cmp small{display:block;font-weight:800;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--soft);margin-bottom:2px}
.status{font-size:.75rem;font-weight:800;padding:4px 10px;border-radius:999px}
.status.open{background:var(--bad-l);color:var(--bad)} .status.recheck{background:var(--warn-l);color:#8a5d00}
.status.due{background:var(--m2-l);color:var(--m2-d)} .status.done{background:var(--good-l);color:var(--good)}
.topicbars{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.topicbars li{display:grid;grid-template-columns:minmax(0,14em) minmax(0,1fr) 4.5em;gap:12px;align-items:center}
.topicbars .bar{height:12px}
.topicbars .pct{text-align:right;font-weight:800;font-variant-numeric:tabular-nums}
@media (max-width:560px){.topicbars li{grid-template-columns:minmax(0,1fr) 4em}.topicbars .bar{grid-column:1/-1;grid-row:2}}
.empty{text-align:center;padding:30px 18px;color:var(--soft);display:grid;gap:8px;justify-items:center}
.empty svg{width:90px;height:90px}

/* Učitel */
.tbl{overflow-x:auto;border-radius:16px;border:2px solid var(--edge)}
table{width:100%;border-collapse:collapse;font-size:.92rem}
th,td{padding:10px 12px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--edge)}
th{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--soft);background:var(--card2);position:sticky;top:0}
tbody tr:hover{background:var(--card2)}
tbody tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.sname{font-weight:800;display:flex;align-items:center;gap:8px}
.avatar{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;font-family:var(--f-display);font-weight:900;color:#fff;font-size:.95rem;flex:none}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:760px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kpi{background:var(--card);border:2px solid var(--edge);border-radius:18px;padding:14px 16px;display:grid;gap:2px;box-shadow:0 4px 0 var(--edge)}
.kpi b{font-family:var(--f-display);font-size:2rem;font-weight:800;line-height:1.05}
.kpi small{font-weight:800;color:var(--soft);font-size:.76rem;text-transform:uppercase;letter-spacing:.05em}
.spark{display:flex;align-items:flex-end;gap:4px;height:46px;margin-top:6px}
.spark i{flex:1;background:var(--primary-l);border-radius:4px 4px 2px 2px;min-height:3px}
.spark i.today{background:var(--primary)}
.pctcell{display:flex;align-items:center;gap:8px}
.pctcell .bar{width:70px;height:8px}
.good-t{color:var(--good)} .bad-t{color:var(--bad)} .warn-t{color:#a36f00}
.modal{position:fixed;inset:0;background:rgba(38,43,71,.45);display:grid;place-items:center;padding:16px;z-index:50}
.modal .card{max-width:520px;width:100%}
.banner{border-radius:18px;padding:14px 18px;background:var(--warn-l);border:2px solid #f3d48a;display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;font-weight:700}
.gens{display:grid;gap:10px}
.gen{display:grid;gap:8px;border:2px solid var(--edge);border-radius:16px;padding:12px 14px;background:var(--card)}
.gen .ex{border-top:1px dashed var(--edge);padding-top:10px;display:grid;gap:8px}

/* Úvodní příběh */
.intro{position:fixed;inset:0;background:rgba(38,43,71,.55);display:grid;place-items:center;padding:16px;z-index:60}
.introcard{background:var(--card);border-radius:28px;max-width:560px;width:100%;overflow:hidden;box-shadow:0 10px 0 rgba(0,0,0,.12)}
.introart{background:linear-gradient(160deg,#d9defd,#f7e5ff);aspect-ratio:16/9;display:grid;place-items:center}
.introart svg{width:100%;height:100%}
.introbody{padding:22px 24px;display:grid;gap:12px}
.introdots{display:flex;gap:6px}
.introdots i{width:8px;height:8px;border-radius:50%;background:var(--edge2)}
.introdots i.on{background:var(--primary);width:22px;border-radius:5px}

/* Toasty */
#toasts{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);display:grid;gap:8px;z-index:80;width:min(92vw,440px);pointer-events:none}
.toast{background:var(--ink);color:#fff;border-radius:14px;padding:11px 16px;font-weight:700;box-shadow:0 8px 24px rgba(0,0,0,.18);animation:tin .25s ease-out}
.toast.good{background:var(--good)} .toast.bad{background:var(--bad)}
@keyframes tin{from{transform:translateY(10px);opacity:0}}
.pop{animation:pop .45s cubic-bezier(.2,1.6,.4,1)}
@keyframes pop{0%{transform:scale(.85)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.katex-fallback{font-family:ui-monospace,Consolas,monospace;font-size:.92em;background:var(--card2);padding:0 4px;border-radius:6px}

/* Další typy odpovědí */
.legend{font-weight:700;color:var(--soft);font-size:.92rem}
.unit{font-weight:800;color:var(--soft);font-size:1.2rem}
.tuplein label.wide{flex:1 1 100%}
.tuplein label.wide math-field,.tuplein label.wide input.plain{flex:1;width:100%;max-width:520px}
.gonin{display:grid;gap:12px}
.gonrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:#fff;border:2px dashed var(--edge2);border-radius:14px;padding:8px 10px}
.gonrow .gx{font-size:1.15rem}
.gonrow .pers{display:flex;flex-wrap:wrap;gap:5px}
.gonrow .pers .chip{cursor:pointer;background:var(--m2-l);color:var(--m2-d);border-color:transparent}
.gonrow .pers .chip:hover{background:var(--m2);color:#fff}
.gonrow .x{border:0;background:transparent;color:var(--faint);font-weight:800;cursor:pointer;border-radius:8px;padding:2px 6px;font-size:1rem;margin-left:auto}
.gonrow .x:hover{color:var(--bad);background:var(--bad-l)}

/* ---------- Výbava ---------- */
.portrait{aspect-ratio:2/3}
.charname .ttl,.ttl{display:inline-block;font-size:.72rem;font-weight:800;color:#7a4fe0;background:var(--m2-l);border-radius:999px;padding:2px 9px;margin:2px 0 4px;letter-spacing:.02em}
.eqgrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.eqslot{display:grid;gap:3px;justify-items:center}
.eqslot small{font-size:.62rem;font-weight:800;color:var(--soft);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.invgrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:12px}
@media (max-width:520px){.invgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.itile{position:relative;width:100%;aspect-ratio:1;border-radius:14px;border:2.5px solid var(--edge);background:var(--card2);display:grid;place-items:center;padding:4px;cursor:pointer;box-shadow:0 3px 0 var(--edge);transition:transform .08s}
.itile:hover{transform:translateY(-2px)}
.itile svg{width:100%;height:100%}
.itile.empty{cursor:default;border-style:dashed;box-shadow:none;background:transparent}
.itile[aria-pressed="true"]{outline:3px solid var(--primary);outline-offset:2px}
.itile .en{position:absolute;top:4px;right:4px;width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 2px #fff}
.q0{} .itile.q1,.idetail.q1 .ipic{border-color:#7fd1cc;background:#ecfbf8}
.itile.q2,.idetail.q2 .ipic{border-color:#a685ff;background:#f4efff}
.itile.q3,.idetail.q3 .ipic{border-color:#f5b83d;background:linear-gradient(135deg,#fff6dc,#ffe9c4);box-shadow:0 3px 0 #e0a52a}
.qtag{font-size:.7rem;font-weight:800;padding:2px 8px;border-radius:999px;background:var(--card3);color:var(--soft)}
.qtag.q1{background:#dff6f1;color:#1f9e88}.qtag.q2{background:var(--m2-l);color:var(--m2-d)}.qtag.q3{background:#fff1c9;color:#9a6a00}
.chip.leg{background:#fff1c9;border-color:transparent;color:#9a6a00}
.idetail{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:start;padding:10px;border-radius:16px;background:var(--card2);margin-top:10px}
.idetail .ipic{width:72px;height:72px;border-radius:16px;border:2.5px solid var(--edge);background:#fff;display:grid;place-items:center;padding:4px}
.idetail .ipic svg{width:100%;height:100%}
.idetail .iinfo{display:grid;gap:4px;min-width:0}
.price{font-family:var(--f-display);font-weight:900;color:#9a6a00;background:var(--m4-l);border-radius:999px;padding:3px 10px;font-size:.9rem}
.shop{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px}
@media (max-width:760px){.shop{grid-template-columns:minmax(0,1fr)}}
.btn.warn{background:var(--bad);box-shadow:0 4px 0 #b9392f;color:#fff}
.btn.loading{opacity:.6;cursor:progress}
.setbox{border:2px dashed #f3d48a;border-radius:16px;padding:10px 12px;background:#fffaf0}
.setbox ul{margin:6px 0 0;padding-left:1.2em;font-size:.86rem;color:var(--faint)}
.setbox li.on{color:var(--ink);font-weight:700}
.loot{display:flex;gap:10px;align-items:center;margin-top:6px}
.loot .itile{width:56px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:760px){.grid3{grid-template-columns:minmax(0,1fr)}}
.ench h3{font-size:1.1rem}

/* ---------- Denní úkoly a tituly ---------- */
.qwrap{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:16px;align-items:center;margin-top:12px}
@media (max-width:760px){.qwrap{grid-template-columns:minmax(0,1fr)}}
.qlist{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.qlist li{display:grid;grid-template-columns:26px minmax(0,1fr) 70px auto;gap:10px;align-items:center;font-size:.92rem}
.qlist .qc{width:24px;height:24px;border-radius:8px;border:2px solid var(--edge2);display:grid;place-items:center;font-weight:900;color:#fff}
.qlist li.ok .qc{background:var(--good);border-color:var(--good)}
.qlist li.ok .qt{color:var(--soft);text-decoration:line-through}
.qbar{height:8px;border-radius:5px;background:var(--card3);overflow:hidden}.qbar i{display:block;height:100%;background:var(--primary)}
.chest{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;align-items:center;padding:10px;border-radius:16px;background:var(--card2)}
.chest svg{width:64px;height:64px}
.chest.ready{background:var(--m4-l);animation:bob 1.6s ease-in-out infinite}
.chest.opened{opacity:.75}
.titles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}
@media (max-width:820px){.titles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tcard{border:2px solid var(--edge);border-radius:16px;padding:10px 12px;display:grid;gap:4px;align-content:start}
.tcard.got{border-color:#c9b5ff;background:var(--m2-l)}
.tcard .tn{font-family:var(--f-display);font-weight:900}
.inbox .mail{border-top:1px dashed var(--edge);padding-top:8px;margin-top:8px}

/* ---------- Výpravy a souboj ---------- */
.mobs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (max-width:820px){.mobs{grid-template-columns:minmax(0,1fr)}}
.mob{display:grid;grid-template-columns:130px minmax(0,1fr);gap:14px;align-items:center;padding:14px}
.mob .mobart{background:var(--card2);border-radius:18px;aspect-ratio:8/7;display:grid;place-items:center}
.mob .mobart svg{width:100%;height:100%}
.mob.boss{border-color:#c9b5ff;background:linear-gradient(135deg,#fff,#f6f1ff)}
.mobinfo{display:grid;gap:8px;min-width:0}
.odds{display:grid;grid-template-columns:auto minmax(0,1fr) 3.4em;gap:8px;align-items:center;font-size:.82rem;font-weight:700;color:var(--soft)}
.odds .bar{height:8px}
.fight{display:grid;gap:12px}
.arenaRow{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:center}
.fighter{display:grid;gap:4px;justify-items:center;text-align:center;min-width:0}
.fighter .fpic{width:min(150px,100%);aspect-ratio:1;border-radius:20px;background:var(--card2);display:grid;place-items:center;overflow:hidden}
.fighter .fpic svg{width:100%;height:100%}
.vs{font-family:var(--f-display);font-weight:900;font-size:1.6rem;color:var(--faint)}
.hp{width:100%;height:12px;border-radius:7px;background:var(--card3);overflow:hidden;border:2px solid var(--edge)}
.hp i{display:block;height:100%;background:linear-gradient(90deg,#3ccf8e,#24a26a);transition:width .35s}
.hp.foe i{background:linear-gradient(90deg,#ff958d,#e2574c)}
.hp.big{height:18px;border-radius:10px}
.flog{list-style:none;margin:0;padding:0;display:grid;gap:4px;min-height:120px}
.flog li{padding:6px 10px;border-radius:10px;background:var(--card2);font-size:.92rem;animation:tin .2s ease-out}
.flog li.foe{background:#fff3f2}
.flog .r{font-weight:800;color:var(--faint);margin-right:4px}
.m1t{color:var(--m1-d)} .m4t{color:#b37b00}

/* ---------- Škola ---------- */
.food.today{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;align-items:center;background:linear-gradient(135deg,#fff,#fff6e6)}
.foodart svg{width:110px;height:110px}
.menu{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.menu li{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border-radius:14px}
.menu li.on{background:var(--m4-l)}
.menu .mi svg{width:36px;height:36px}

/* ---------- Třída ---------- */
.bosscard{display:grid;grid-template-columns:240px minmax(0,1fr);gap:20px;align-items:center;background:linear-gradient(135deg,#2c3157,#4a3f7a);color:#fff;border-color:#262b47;box-shadow:0 5px 0 #1a1d33}
.bosscard h2{color:#fff;font-size:2rem}
.bosscard .muted{color:#d6d9f5}
.bosscard .kicker{color:#ffd36b}
.bosscard .hp{border-color:#1a1d33;background:#1a1d33}
.bossart svg{width:100%}
.bossinfo{display:grid;gap:10px;min-width:0}
@media (max-width:760px){.bosscard{grid-template-columns:minmax(0,1fr)}.bossart{max-width:220px;margin:0 auto}}
.toplist{margin:0;padding-left:1.4em;display:grid;gap:4px}
.toplist li{display:flex;justify-content:space-between;gap:10px}
.toplist li.me{font-weight:900}
.bosscard .toplist{color:#fff}
.kasa .big{font-family:var(--f-display);font-size:1.6rem;color:#9a6a00}
.inp{border:2px solid var(--edge);border-radius:12px;padding:9px 12px;background:var(--card);font-weight:700}
.ples.done{background:linear-gradient(135deg,#fff,#f4efff);border-color:#c9b5ff}
.pakty{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
@media (max-width:760px){.pakty{grid-template-columns:minmax(0,1fr)}}
.pakt{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border-radius:16px;background:var(--card2)}
.pakt .pico svg{width:36px;height:36px}
.pakt.on{background:var(--hl)}
.pakt.off{opacity:.55}
.clog{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px;font-size:.92rem}
.raid{border-color:#c9b5ff;background:linear-gradient(135deg,#fff,#f4efff)}
.waves{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0}
.wave{display:grid;gap:4px;justify-items:center;text-align:center;padding:8px;border-radius:16px;background:#fff;border:2px solid var(--edge);opacity:.6}
.wave svg{width:100%;max-width:120px}
.wave.cur{opacity:1;border-color:var(--m2);box-shadow:0 4px 0 var(--m2)}
.wave.dead{opacity:.35;filter:grayscale(1)}
.timer{font-family:var(--f-display);font-weight:900;font-size:1.2rem;background:var(--card);border:2px solid var(--edge);border-radius:12px;padding:3px 12px}
.timer.hurry{color:var(--bad);border-color:var(--bad)}
.timer.big{font-size:2rem}
.projector .projq{font-size:1.5rem}
.projector:fullscreen{background:#fff;padding:40px;overflow:auto;display:grid;align-content:start;gap:20px}
.projector:fullscreen .projq{font-size:2.4rem}
.projector .big{font-size:1.2rem}
.waves.big .wave svg{max-width:160px}
.joined{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}

/* ---------- Aréna a bludiště ---------- */
.alist{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.alist li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:var(--card2);flex-wrap:wrap}
.dots4{display:flex;gap:6px}
.dots4 i{width:26px;height:10px;border-radius:6px;background:var(--card3)}
.dots4 i.ok{background:var(--good)} .dots4 i.no{background:var(--bad)} .dots4 i.cur{background:var(--primary)}
.arenaplay{display:grid;gap:14px}
.floors{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@media (max-width:820px){.floors{grid-template-columns:repeat(2,minmax(0,1fr))}}
.floor{display:grid;gap:6px;padding:10px;border-radius:18px;background:var(--card);border:2px solid var(--edge);text-align:center;justify-items:center}
.floor .gart{width:100%;max-width:150px}
.floor .gart svg{width:100%}
.floor.cur{border-color:var(--m1);box-shadow:0 4px 0 var(--m1);background:var(--m1-l)}
.floor.past{opacity:.6}
.boostpick .boost{display:grid;gap:6px;text-align:left;border:2.5px solid var(--edge);border-radius:18px;padding:16px;background:var(--card);cursor:pointer;box-shadow:0 4px 0 var(--edge);font:inherit}
.boostpick .boost b{font-family:var(--f-display);font-size:1.3rem}
.boostpick .boost:hover{border-color:var(--primary);transform:translateY(-2px)}
.boostpick .grid2{margin-top:12px}

/* ---------- Oslava ---------- */
.celebrate .card{text-align:center;display:grid;gap:10px;justify-items:center;max-width:420px}
.celart{font-size:3rem}
.celitem{width:120px;height:120px;border-radius:24px;border:3px solid var(--edge);display:grid;place-items:center;padding:8px;background:var(--card2)}
.celitem svg{width:100%;height:100%}
.celitem.q3{border-color:#f5b83d;background:linear-gradient(135deg,#fff6dc,#ffe9c4);box-shadow:0 0 0 6px #fff1c9}
nav.navbar button[aria-current="page"]:hover{background:var(--primary)}
.eqslot small{font-size:.56rem;letter-spacing:0}
@media (max-width:860px){.charcard .portrait{max-width:260px;margin:0 auto;width:100%}}

/* ---------- Horní lišta zdrojů ---------- */
.resbar{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rb{display:grid;grid-template-columns:auto 56px auto;align-items:center;gap:8px;background:var(--card);border:2px solid var(--edge);border-radius:999px;padding:5px 12px;font-weight:800;font-size:.82rem;cursor:pointer;box-shadow:0 3px 0 var(--edge)}
.rb:hover{border-color:var(--primary)}
.rb .rl{color:var(--soft)}
.rbar{height:8px;border-radius:5px;background:var(--card3);overflow:hidden}
.rbar i{display:block;height:100%;background:linear-gradient(90deg,var(--good),#3ccf8e)}
.rnext{font-size:.8rem;color:var(--soft);font-weight:700;margin-left:auto}
@media (max-width:640px){.rb{grid-template-columns:auto auto;padding:4px 10px}.rb .rbar{display:none}.rnext{flex-basis:100%;margin-left:0}}

/* ---------- Postava 2 ---------- */
.charwrap{grid-template-columns:minmax(0,380px) minmax(0,1fr)}
.portrait{position:relative}
.lookbtn{position:absolute;right:10px;top:10px;background:rgba(255,255,255,.9)}
.charname .lvlrow{flex-wrap:wrap}
.eqtitle{margin-top:6px}
.eqgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.eqslot small{font-size:.7rem;letter-spacing:.03em}
.eqslot .itile{max-width:110px}
.statcard .power{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:12px 0 14px}
@media (max-width:1000px){.statcard .power{grid-template-columns:repeat(3,minmax(0,1fr))}}
.power .effect{padding:8px 10px;border-style:solid;background:var(--card2);border-color:transparent}
.power .effect b{font-size:1.25rem}
.stat{grid-template-columns:52px minmax(0,1fr) auto}
.stat .nm{display:grid;grid-template-columns:auto auto;justify-content:start;column-gap:10px;align-items:baseline}
.stat .nm .fx{font-family:var(--f-display);font-weight:900;font-size:1.15rem;text-transform:uppercase;letter-spacing:.03em}
.stat .nm .fxv{font-family:var(--f-display);font-weight:900;font-size:1.15rem}
.stat.m1 .fx,.stat.m1 .fxv{color:var(--m1-d)} .stat.m2 .fx,.stat.m2 .fxv{color:var(--m2-d)} .stat.m3 .fx,.stat.m3 .fxv{color:var(--m3-d)} .stat.m4 .fx,.stat.m4 .fxv{color:#a87400}
.stat .nm small{grid-column:1/-1;font-weight:600;color:var(--soft);font-size:.8rem}
.stat .sbar{grid-column:2/-1}
.quests .qlist{margin-top:12px}
.quests .chest{margin-top:12px;grid-template-columns:64px minmax(0,1fr)}
.qlist li{grid-template-columns:26px minmax(0,1fr) 90px 3em}
@media (max-width:520px){.qlist li{grid-template-columns:26px minmax(0,1fr) 3em}.qlist .qbar{display:none}}
.lookcard{max-width:720px!important}
.lookgrid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:18px;margin-top:12px}
@media (max-width:640px){.lookgrid{grid-template-columns:minmax(0,1fr)}.lookgrid .portrait{max-width:200px;margin:0 auto}}
.lookopts{display:grid;gap:12px;align-content:start}
.lookopts small{display:block;font-weight:800;color:var(--soft);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.opts{display:flex;flex-wrap:wrap;gap:6px}
.opt{border:2px solid var(--edge);background:var(--card);border-radius:10px;padding:6px 10px;font-weight:800;cursor:pointer}
.opt[aria-pressed="true"]{border-color:var(--primary);background:var(--primary-l);color:var(--primary-d)}
.sw{width:32px;height:32px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 2px var(--edge);cursor:pointer}
.sw[aria-pressed="true"]{box-shadow:0 0 0 3px var(--primary)}
.modal{overflow-y:auto}
p,li,.lead{text-wrap:pretty}
.scene p{max-width:62ch}
textarea.inp{width:100%;resize:vertical;font:inherit;line-height:1.5}
.hospodka{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:center;background:linear-gradient(135deg,#fff,#fff3e8)}
.hospodka .hpic svg{width:100%;border-radius:18px}
@media (max-width:640px){.hospodka{grid-template-columns:minmax(0,1fr)}.hospodka .hpic{max-width:220px}}
.scene .deco{width:210px;height:150px}
.stat .nm{display:block}
.stat .nm .fxv{margin-left:10px}
.stat .nm small{display:block;margin-top:2px}
@media (max-width:860px){.charwrap{grid-template-columns:minmax(0,1fr)}}
.toplist{list-style:none;padding:0;counter-reset:t;margin:8px 0 0}
.toplist li{counter-increment:t;gap:8px}
.toplist li::before{content:counter(t) ".";font-weight:800;color:var(--faint);min-width:1.6em}
.toplist li>span{flex:1}
