/* Mapa souboru. Oddíly jdou v pořadí kaskády: při stejné specifičnosti vyhrává pozdější pravidlo. Oddíl najdete podle textu v uvozovkách.
   1. :root a sdílené barvy motivů --t-* („Sdílené barvy motivů“): nové prvky barvit jen jimi.
   2. Základní rozvržení a komponenty se svými tmavými variantami body:is([data-theme="dark"],[data-theme="aiflow"]) a úpravy pro mobil („Student practice mode“ až „Připnuté testy“).
   3. Barevný motiv a karty katalogu („Colourful theme“).
   4. Noční žár („Noční žár: tmavý technický motiv“); za každým jeho pravidlem stojí kopie pro Modrou noc z tools/generate-navy.php, ručně se neupravuje.
   5. Tyrkysový režim („AI průliv: temný produktový motiv“).
   6. Další funkce: dialogy tréninku, kartičky, zkouška nanečisto, přístupový kód, mapa odpovědí, QR, výběr a náhled otázek v editoru.
   7. Pravidla dřív vkládaná z app.js a dashboard.js („Styles formerly injected at runtime“). Jsou tu světlá pravidla tlačítek s vysokou specifičností a i.fa-solid,i.fa-regular{color:currentColor!important},
      proto nové ovládací prvky potřebují opakovanou třídu nebo předponu body:is([data-theme],:not([data-theme])) a ikona s vlastní barvou !important.
   8. Další funkce: návod, trénink z více testů, rozbalovací seznamy, časový limit, zprávy, zaškrtávátka v tmavých motivech, stránkování výsledků.
   9. Jednotný vzhled ve všech motivech a efekty Modré noci („Modrá noc: výrazné efekty“ až „Modrá noc: najetí na odpověď“); ruční pravidla jen pro Modrou noc patří sem.
   10. Novější stránky jen z --t-* (od „Přehled otázek pro žáky“): slabé otázky, statistiky tréninků, sady, Můj seznam, Průběh zkoušky, podrobné vysvětlení, souboje, administrace, záložky Souboje třídy, vzhledy odhalení v Průběhu zkoušky.
       Nový oddíl patří na konec souboru.
   Jedno pravidlo na řádek, pravidla v @media odsazená dvěma mezerami. Zlomy 600 px a 760 px jsou záměrně oba. Zbytky stylů po odebraných funkcích hledá node tools\mrtve-styly.mjs. */
:root{--ink:#18223a;--muted:#69738b;--purple:#6c5ce7;--blue:#3667ef;--line:#e8ebf5;--green:#21a67a;--red:#de5a69;--shadow:0 18px 46px rgba(35,46,92,.09)}

/* Sdílené barvy motivů pro nové prvky: nový panel, karta nebo pole používá jen var(--t-…) a funguje ve všech šesti motivech bez vlastních přepisů pro dark/colorful/ember/aiflow/navy.
   surface = pozadí panelu, soft = vnitřní/tlumené pozadí (hlavička tabulky), hover = pozadí při najetí, border = okraj, text/muted = text a vedlejší text,
   accent = zvýrazněný text a ikony, accent-soft + accent-on-soft = štítek/odznak, field-bg + field-border = vstupní pole. Hodnoty vychází z učitelské plochy (--teacher-*) a ze štítků .pill. */
:root{--t-surface:#fff;--t-soft:#f5f6fc;--t-hover:#f0f2fc;--t-border:#dfe4f0;--t-text:#25304b;--t-muted:#73809b;--t-accent:#6c5ce7;--t-accent-soft:#f0efff;--t-accent-on-soft:#5c52c5;--t-field-bg:#fff;--t-field-border:#dce0ed}
body[data-theme="dark"]{--t-surface:#20263a;--t-soft:#1a2032;--t-hover:#29324b;--t-border:#35415e;--t-text:#e8edff;--t-muted:#a5b1ca;--t-accent:#a993ff;--t-accent-soft:#39316e;--t-accent-on-soft:#d7d2ff;--t-field-bg:#161c2c;--t-field-border:#444f70}
body[data-theme="colorful"]{--t-surface:#fffafe;--t-soft:#f8eefa;--t-hover:#f4e5f7;--t-border:#e9cce8;--t-text:#392750;--t-muted:#806888;--t-accent:#d54791;--t-accent-soft:#f3ddf5;--t-accent-on-soft:#92368f;--t-field-bg:#fffaff;--t-field-border:#e2c6e4}
body[data-theme="ember"]{--t-surface:#19161b;--t-soft:#22191d;--t-hover:#332125;--t-border:#4a393b;--t-text:#f6ece8;--t-muted:#bbaaa6;--t-accent:#ff9a79;--t-accent-soft:#312025;--t-accent-on-soft:#ffb39e;--t-field-bg:#121217;--t-field-border:#503d3f}
body[data-theme="navy"]{--t-surface:#13182b;--t-soft:#151c31;--t-hover:#1c2440;--t-border:#313953;--t-text:#ebedf3;--t-muted:#9fa7c2;--t-accent:#ff7979;--t-accent-soft:#1b233e;--t-accent-on-soft:#ff9e9e;--t-field-bg:#111627;--t-field-border:#343c58}
body[data-theme="aiflow"]{--t-surface:#071827;--t-soft:#092033;--t-hover:#0b2a3b;--t-border:#17435d;--t-text:#f2fbff;--t-muted:#a8bacd;--t-accent:#35d6ef;--t-accent-soft:#082c3f;--t-accent-on-soft:#8ff8f0;--t-field-bg:#041828;--t-field-border:#1c5870}

*{box-sizing:border-box}
body{margin:0;background:#fff;color:var(--ink);font:16px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
.topbar{height:76px;padding:0 max(5vw,28px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #f1f2f7;background:rgba(255,255,255,.9);backdrop-filter:blur(10px);position:sticky;top:0;z-index:10}
.brand{font-weight:800;font-size:22px;text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:9px}
.brand-mark{width:31px;height:31px;background:linear-gradient(135deg,var(--purple),var(--blue));border-radius:10px;color:#fff;display:grid;place-items:center;font-size:17px}
.topbar nav{display:flex;align-items:center;gap:23px}
.topbar nav a{text-decoration:none;color:#44506a;font-weight:600;font-size:14px}
.nav-button{background:#eff1ff;padding:9px 13px;border-radius:9px}
.user-name{font-size:13px}
.shell{max-width:1180px;margin:auto;padding:0 28px 80px;min-height:calc(100vh - 136px)}
footer{text-align:center;padding:24px;color:#8992a8;font-size:13px;border-top:1px solid var(--line)}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(34px,5vw,58px);line-height:1.08;letter-spacing:-.035em}
h2{font-size:28px;letter-spacing:-.7px}
.hero{min-height:520px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:50px}
.hero h1 em{font-style:normal;color:var(--purple)}
.lead{font-size:18px;color:var(--muted);max-width:540px}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:1.6px;color:var(--purple);margin-bottom:15px}
.hero-actions,.dashboard-head{display:flex;gap:16px;align-items:center}
.button{display:inline-flex;gap:18px;align-items:center;justify-content:center;background:linear-gradient(115deg,var(--purple),var(--blue));border:0;border-radius:10px;padding:13px 19px;color:white;font-family:inherit;font-size:14px;text-decoration:none;cursor:pointer;box-shadow:0 8px 18px rgba(89,89,220,.22)}
:where(a).button{padding:11px 19px}
.button:hover{filter:brightness(1.05);transform:translateY(-1px)}
.text-link{font-weight:700;color:#5959c8;text-decoration:none}
.hero-art{height:350px;position:relative;background:linear-gradient(135deg,#eeefff,#f9f8ff);border-radius:32px;overflow:hidden}
.mock-card{position:absolute;inset:44px 35px 30px 60px;background:#fff;border-radius:18px;padding:20px 24px;box-shadow:var(--shadow);transform:rotate(2deg)}
.mock-top{display:flex;gap:5px;margin-bottom:22px}
.mock-top i{width:7px;height:7px;border-radius:50%;background:#e5e8f5}
.mock-card p{font-size:11px;color:var(--purple);font-weight:800}
.mock-card h3{font-size:18px}
.mock-answer{padding:9px;margin:7px 0;border:1px solid var(--line);border-radius:8px;font-size:12px}
.mock-answer.active{border-color:#9188ec;background:#f3f1ff;color:#5148bf}
.floating-card{position:absolute;z-index:2;background:#fff;padding:12px 16px;border-radius:12px;box-shadow:var(--shadow);font-size:16px;color:var(--green)}
.floating-card b{color:var(--ink);margin-left:7px}
.floating-card small{display:block;color:var(--muted);margin-left:23px;font-size:10px}
.floating-card.top{top:22px;right:18px}
.floating-card.bottom{bottom:14px;left:15px}
.section-head{display:flex;justify-content:space-between;align-items:end;margin:35px 0 18px}
.section-head h2{margin:0}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card-grid.large{grid-template-columns:repeat(3,1fr)}
.test-card{border:1px solid var(--line);border-radius:16px;padding:23px;background:#fff;display:flex;flex-direction:column;min-height:220px}
.pill,.status{display:inline-block;width:max-content;padding:4px 9px;background:#f0efff;border-radius:20px;color:#5c52c5;font-size:11px;font-weight:800}
.test-card h3{font-size:20px;margin:17px 0 9px}
.test-card p{font-size:14px;color:var(--muted)}
.card-bottom{margin-top:auto;padding-top:15px;display:flex;justify-content:space-between;color:#8992a8;font-size:12px}
.card-bottom a{font-weight:800;color:#5c52c5;text-decoration:none}
.page-title{padding:70px 0 28px}
.page-title h1{margin-bottom:12px}
.page-title p:not(.eyebrow){color:var(--muted)}
.page-title.compact{padding-bottom:20px}
.form-layout,.auth{max-width:950px;margin:75px auto;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:70px}
.form-intro p,.auth>div>p:not(.eyebrow){color:var(--muted);font-size:17px}
.info-row{color:#5d6680;font-size:14px}
.info-row span{padding:0 8px}
.form-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px;box-shadow:var(--shadow)}
label{display:block;font-size:13px;font-weight:750;color:#46506a;margin-bottom:16px}
input,textarea,select{display:block;width:100%;margin-top:6px;border:1px solid #dce0ed;border-radius:9px;padding:11px 12px;background:#fff;color:var(--ink);font:inherit}
textarea{resize:vertical}
input:focus,textarea:focus{outline:3px solid #e9e7ff;border-color:#8b81e7}
.full{width:100%}
.form-foot{text-align:center;margin:17px 0 0;color:var(--muted);font-size:13px}
.form-foot a{color:#5b52ca;font-weight:700}
.notice{padding:12px 16px;border-radius:9px;font-size:14px}
.notice.success{background:#eaf9f3;color:#177552}
.notice.error{background:#fff0f2;color:#b03a4d}
.test-heading{padding:45px 0 25px;display:flex;justify-content:space-between;align-items:start}
.test-heading h1{font-size:38px;margin:0}
.question-list{max-width:840px}
.question-card{border:1px solid var(--line);border-radius:14px;margin:0 0 18px;padding:23px}
.question-card legend{font-weight:750;padding:0 0 14px;display:flex;gap:12px;align-items:center}
.question-card legend span{background:#eceaff;color:#5b52c5;width:27px;height:27px;border-radius:8px;display:grid;place-items:center;font-size:13px}
.answers{display:grid;gap:9px}
.answer{border:1px solid var(--line);border-radius:9px;display:flex;align-items:center;gap:10px;padding:11px 13px;margin:0;cursor:pointer;font-size:14px;font-weight:500}
.answer:hover{border-color:#aba4ed;background:#fafaff}
.answer input{width:auto;margin:0;accent-color:var(--purple)}
.answer b{font-size:11px;width:22px;height:22px;border-radius:6px;background:#f0f1f7;display:grid;place-items:center;color:#687188}
.submit-test{margin:8px 0 30px}
.result-hero{display:flex;gap:30px;align-items:center;background:linear-gradient(125deg,#f2f1ff,#f9fbff);padding:36px;border-radius:20px;margin:55px 0 35px}
.result-hero h1{font-size:34px;margin-bottom:8px}
.result-hero p{color:var(--muted)}
.result-hero h2{margin:0;color:#4b46b7}
.score-ring{width:125px;height:125px;flex:0 0 125px;border-radius:50%;background:conic-gradient(var(--purple) calc(var(--score)*1%),#e0e3f0 0);display:grid;place-items:center}
.score-ring:before{content:"";grid-area:1/1;width:98px;height:98px;border-radius:50%;background:#f8f9ff}
.score-ring span{grid-area:1/1;z-index:1;font-weight:800;font-size:21px}
.score-ring{position:relative}
.score-ring::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:4px solid var(--t-accent);box-shadow:0 0 18px var(--t-accent),inset 0 0 12px var(--t-accent);opacity:0;pointer-events:none}
.score-ring.is-finished{animation:score-ring-pop .7s cubic-bezier(.3,1.7,.5,1),score-ring-pulse 1.1s ease-out}
.score-ring.is-finished::after{animation:score-ring-ripple 1.1s cubic-bezier(.2,.7,.3,1)}
@keyframes score-ring-pop{
  0%{transform:none}
  35%{transform:scale(1.13)}
  100%{transform:none}
}
@keyframes score-ring-pulse{
  0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--t-accent) 70%,transparent),0 0 30px 6px var(--t-accent)}
  100%{box-shadow:0 0 0 34px transparent,0 0 0 0 transparent}
}
@keyframes score-ring-ripple{
  0%{opacity:1;transform:scale(.95)}
  100%{opacity:0;transform:scale(1.8)}
}
.review-list{margin-bottom:25px}
.review-list h2{font-size:24px}
.review{border:1px solid var(--line);border-left:4px solid var(--green);border-radius:10px;display:flex}
.review.wrong{border-left-color:var(--red)}
.review-icon{border-radius:50%;background:#e8f7f0;color:var(--green);display:grid;place-items:center;font-weight:800}
.wrong .review-icon{background:#fff0f2;color:var(--red)}
.review p{margin:5px 0 0;color:var(--muted)}
.review strong{color:var(--ink)}
.dashboard-head{padding:48px 0 24px;justify-content:space-between}
.dashboard-head h1{font-size:36px;margin:0}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:4px 0 37px}
.stat-grid>div{border:1px solid var(--line);border-radius:13px;padding:18px;background:#fff}
.stat-grid small{display:block;color:var(--muted);font-weight:650}
.stat-grid b{display:block;font-size:29px;margin-top:3px}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:13px}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;background:#fafbff;color:#737d94;font-size:11px;letter-spacing:.5px;text-transform:uppercase}
th,td{padding:14px 15px;border-bottom:1px solid var(--line)}
tr:last-child td{border:0}
td small{display:block;color:var(--muted);margin-top:2px}
td a{color:#5752c2;text-decoration:none;font-weight:700}
.status.published{background:#e7f8f1;color:#178363}
.status.archived{background:#f1f2f5;color:#777e8e}
.status.draft{background:#fff5df;color:#9b7015}
.actions{white-space:nowrap}
.actions a,.actions form{display:inline-block;margin-right:8px}
.actions button,td form button,.filters button{border-radius:7px;padding:7px 9px;font-family:inherit;cursor:pointer}
.editor-head{padding:45px 0 15px;display:flex;align-items:center;justify-content:space-between}
.editor-head h1{font-size:35px;margin:0}
.editor-question{border:1px solid var(--line);border-radius:14px;padding:22px;margin:18px 0}
.editor-question-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}
.editor-question-top b{color:#5c52c5}
.editor-question-top>b{white-space:nowrap}
.remove-question,.add-option{font-family:inherit;border:0;background:transparent;color:#827dcb;cursor:pointer}
.remove-question{color:#bd5662}
.option-row{display:flex;gap:10px;align-items:center;margin:8px 0}
.option-row input[type=radio]{width:auto;margin:0;accent-color:var(--purple)}
.option-row input[type=text]{margin:0}
.option-row b{width:20px;color:#69738b}
.option-row button{border:0;background:#f5f5fa;border-radius:5px;color:#8b8fa0;cursor:pointer}
.add-option{margin-top:4px}
.import-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:24px}
.or{text-align:center;color:var(--muted);font-size:12px;margin:-4px 0 12px}
.help-card{border-radius:16px;background:#f5f5ff;padding:25px}
.help-card h2{font-size:22px}
.help-card p{color:var(--muted);font-size:14px}
.copy-button{border:0;border-radius:8px;background:#5d55c8;color:white;padding:10px 13px;font-family:inherit;cursor:pointer}
.copy-buttons{display:flex;flex-wrap:wrap;gap:10px}
.help-card h3{margin:23px 0 8px;font-size:14px}
.help-card pre{white-space:pre-wrap;overflow:auto;background:#1e2440;color:#e8ebff;padding:14px;border-radius:10px;font-size:11px}
.filters{display:flex;gap:10px;margin:0 0 18px}
.filters input{margin:0}
.empty{text-align:center;padding:90px 20px;color:var(--muted)}
@media(max-width:760px){
  .topbar{padding:0 18px;height:63px}
  .topbar nav{gap:12px}
  .topbar nav>a:not(.nav-button),.user-name{display:none}
  .shell{padding:0 18px 45px}
  .hero{grid-template-columns:1fr;padding:50px 0;gap:30px}
  .hero-art{height:285px}
  .mock-card{inset:34px 22px 22px 34px}
  .card-grid,.card-grid.large,.stat-grid,.import-grid{grid-template-columns:1fr}
  .form-layout,.auth{grid-template-columns:1fr;gap:20px;margin:45px auto}
  .test-heading,.dashboard-head,.editor-head{padding-top:32px}
  .dashboard-head{align-items:start;flex-direction:column}
  .result-hero{padding:24px;gap:18px}
  .score-ring{width:90px;height:90px;flex-basis:90px}
  .score-ring:before{width:70px;height:70px}
  .score-ring span{font-size:16px}
  .result-hero h1{font-size:25px}
  .filters{flex-direction:column}
  .section-head{margin-top:28px}
  .question-card{padding:17px}
  .topbar nav .nav-button{display:block}
  .editor-head{align-items:start;gap:15px;flex-direction:column}
}

/* Keep dashboard filter actions compact. */
.filters button{flex:0 0 auto;white-space:nowrap}

/* Accent colour for teacher test actions in dark mode. */
body:is([data-theme="dark"],[data-theme="aiflow"]) .actions>a,
body:is([data-theme="dark"],[data-theme="aiflow"]) .actions .download-menu a{color:#827dff!important}

/* Submit action shown while writing a test. */
.top-submit-test{margin-left:14px;padding:9px 15px;gap:8px;white-space:nowrap}

/* Stopky v liště (ostrý test, trénink, zkouška nanečisto): sdílené barvy motivu --t-*, ikona v akcentu (s !important kvůli obecnému i.fa-regular{color:currentColor!important}); varování a poslední minuta mají vlastní pravidla níže. */
.test-elapsed{display:inline-flex;align-items:center;justify-content:center;width:118px;gap:8px;margin-left:14px;padding:8px 12px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-soft);color:var(--t-text);font-size:13px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.03em}
.test-elapsed i{font-size:14px}
.test-elapsed:not(.is-warning,.is-critical) i.fa-regular{color:var(--t-accent)!important}
.test-elapsed:before{content:"";width:7px;height:7px;border-radius:50%;background:#32b984;box-shadow:0 0 0 0 rgba(50,185,132,.5);animation:test-elapsed-pulse 1.8s ease-out infinite}
@keyframes test-elapsed-pulse{
  70%{box-shadow:0 0 0 7px rgba(50,185,132,0)}
  100%{box-shadow:0 0 0 0 rgba(50,185,132,0)}
}
body:is([data-theme="dark"],[data-theme="aiflow"]) .test-elapsed:before{background:#62dda8;box-shadow:0 0 0 0 rgba(98,221,168,.5)}
@media(max-width:760px){
  .top-submit-test{margin-left:8px;padding:8px 11px}
  .top-submit-test .icon-inline{margin-right:0}
  .top-submit-test{font-size:0}
  .top-submit-test .icon-inline{font-size:14px}
  .test-elapsed{width:98px;margin-left:7px;padding:8px 9px;gap:5px;font-size:12px}
  .test-elapsed i{display:none}
  .test-elapsed:before{width:6px;height:6px}
}

/* Theme rules must be available before JavaScript runs to avoid a light flash between pages. */
.question-list .answer span{line-height:1.7}

.practice-option span{line-height:1.65}

/* Student practice mode. */
.card-training-actions{display:inline-flex;align-items:center;gap:12px}
.card-training-actions [data-practice-link],.card-training-actions .card-test-link{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border-radius:9px;font-size:12px;font-weight:800}
.card-training-actions [data-practice-link]{border:1px solid #dedff7;background:#eff0ff;color:#5251bf}
.card-training-actions [data-practice-link]:hover{background:#e3e4ff}
.card-training-actions .card-test-link{border:1px solid transparent;background:linear-gradient(135deg,#8f7bf5,#416df1);color:#fff;box-shadow:0 7px 16px rgba(80,91,211,.22)}
.card-training-actions .card-test-link:hover{color:#fff;filter:brightness(1.06);transform:translateY(-1px)}
.practice-session{margin:10px auto 28px;padding:26px;border:1px solid #dfe4f5;border-radius:20px;background:#fff;box-shadow:0 18px 42px rgba(39,48,103,.09)}
.practice-session-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:14px}
.practice-session-head>div{display:grid;gap:3px}
.practice-session-head b{font-size:15px;color:#30385c}
.practice-session-head span{font-size:13px;color:#71809e}
.practice-mode-label{border-radius:99px;font-size:12px;font-weight:800}
.practice-track{height:7px;overflow:hidden;border-radius:99px;background:#e8ebf6}
.practice-track span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#9c83ff,#416df1);transition:width .3s ease}
.practice-content{padding-top:27px}
.practice-question-number{margin:0 0 8px;color:#655bd5;font-size:12px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.practice-question-title{margin:0 0 22px;line-height:1.3}
.practice-options{display:grid;gap:10px}
.practice-option{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;border:1px solid #dce1f0;border-radius:12px;background:#fff;color:#27304a;text-align:left;cursor:pointer;transition:border-color .17s ease,background .17s ease,transform .17s ease}
.practice-option:hover:not(:disabled){border-color:#9e96e9;background:#f8f8ff;transform:translateY(-1px)}
.practice-option:disabled{cursor:default}
.practice-option b{display:grid;flex:0 0 25px;width:25px;height:25px;place-items:center;border-radius:7px;background:#eef0f8;color:#5a647e;font-size:12px}
.practice-option.is-correct{border-color:#71cba5;background:#e8f8f0;color:#147553}
.practice-option.is-correct b{background:#159266;color:#fff}
.practice-option.is-wrong{border-color:#e595a2;background:#fff0f2;color:#bf4054}
.practice-option.is-wrong b{background:#d95466;color:#fff}
.practice-next{display:flex;margin-top:20px}
.practice-next button,.practice-end-actions button{border:0;border-radius:10px;padding:11px 15px;background:#625be0;color:#fff;font-family:inherit;cursor:pointer}
.practice-end{display:grid;justify-items:center;padding:18px 10px;text-align:center}
.practice-end i{font-size:38px;color:#5f59db}
.practice-end h2{margin:13px 0 6px;font-size:28px}
.practice-end p{margin:0;color:#6f7c99}
.practice-end-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:23px}
.practice-end-actions .secondary{border:1px solid #dedff7;background:#eff0ff;color:#5251bf}
.practice-back-link{display:flex;align-items:center;gap:8px;width:max-content;margin:0 auto 45px}
body:is([data-theme="dark"],[data-theme="aiflow"]) .card-training-actions [data-practice-link]{border-color:#465575;background:#303a58;color:#dbe2ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .card-training-actions [data-practice-link]:hover{background:#3a4670}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-session{border-color:#3d4b70;background:#20283d;box-shadow:0 18px 42px rgba(0,0,0,.2)}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-session-head b,body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-question-title{color:#edf1ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-session-head span,body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-end p{color:#bdc7df}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-mode-label{background:#303a58;color:#d8ddff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-track{background:#35415f}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-option{border-color:#465575;background:#171f31;color:#e8edff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-option:hover:not(:disabled){border-color:#8277d8;background:#222b43}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-option b{background:#303a58;color:#dbe2ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-option.is-correct{border-color:#378969;background:#193e35;color:#a6e8c8}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-option.is-correct b{background:#239c6d}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-option.is-wrong{border-color:#914b59;background:#482832;color:#ffb3be}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-option.is-wrong b{background:#ca5264}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-end-actions .secondary{border-color:#465575;background:#303a58;color:#dbe2ff}
@media(max-width:620px){
  .practice-session{padding:19px}
  .practice-session-head{align-items:flex-start;flex-direction:column}
  .card-training-actions{gap:7px}
  .card-training-actions [data-practice-link],.card-training-actions .card-test-link{padding:6px 7px;font-size:11px}
}

.practice-mode-label{padding:0!important;background:transparent!important;color:inherit!important;white-space:normal!important}
.practice-auto-next{display:flex;align-items:center;gap:8px;margin:0!important;color:#5654c6!important;font-size:12px!important;font-weight:400!important;cursor:pointer}
.practice-auto-next input{display:block!important;width:15px!important;height:15px!important;margin:0!important;accent-color:#625be0;cursor:pointer}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-auto-next{color:#d8ddff!important}
@media(max-width:620px){
  .practice-auto-next{max-width:280px}
}

/* Test editor. */
.editor-head>div:last-child{display:flex;align-items:center;gap:14px}
.editor-header-save{padding:9px 13px;font-size:13px}
.editor-submit-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:20px 0 30px}
.editor-submit-actions .submit-test{margin:0}
.editor-training-toggle{display:flex!important;align-items:center;gap:10px}
.editor-training-toggle input{width:auto;margin:0}
body:is([data-theme="dark"],[data-theme="aiflow"]) #editor>label{color:#b9c4df}
body:is([data-theme="dark"],[data-theme="aiflow"]) #editor>label>small{color:#9daac9}
@media(max-width:760px){
  .editor-head>div:last-child{align-items:flex-start;flex-wrap:wrap}
}
@media(max-width:520px){
  .editor-submit-actions{align-items:stretch;flex-direction:column}
  .editor-submit-actions .button{width:100%}
}

/* Catalog card/list presentation and filters. */
.home-catalog-actions{display:flex;align-items:center;gap:22px}
.home-catalog-actions>.text-link[href="?r=catalog"]{display:none}
.home-view-switch{display:flex;align-items:center;gap:6px;padding:4px;background:#f0f1ff;border-radius:12px}
.home-view-button{display:inline-flex;align-items:center;gap:7px;border:0;border-radius:8px;padding:8px 12px;background:transparent;color:#5961c6;font-family:inherit;text-decoration:none}
.home-view-button::before{font-family:"Font Awesome 6 Free";font-size:12px;font-weight:900}
.home-view-button[href*="view=cards"]::before{content:"\f00a"}
.home-view-button[href*="view=names"]::before{content:"\f03a"}
.home-view-button:hover{background:#e4e6ff}
.home-view-button.is-active{background:#fff;color:#3842b7;box-shadow:0 2px 8px rgba(59,66,183,.14)}
.home-test-names{display:grid;gap:10px}
.home-test-names[hidden]{display:none!important}
.home-test-name{display:grid;grid-template-columns:minmax(0,1fr) auto!important;align-items:center;gap:18px;padding:18px 22px;border:1px solid #e2e5f5;border-radius:15px;background:#fff;color:#19233e;text-decoration:none;transition:.18s ease}
.home-test-name:hover{border-color:#8a90ef;box-shadow:0 8px 20px rgba(51,61,163,.1);transform:translateY(-1px)}
.home-test-name-meta{display:flex;align-items:center;gap:18px}
.home-test-name-title{display:flex;align-items:center;min-width:0;gap:13px}
.home-test-name-title>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400}
.home-test-name small{color:#7a86a3}
.home-test-name-marker{display:grid;flex:0 0 31px;width:31px;height:31px;place-items:center;border-radius:10px;background:#eeefff;color:#625be0;font-size:13px}
.home-test-name-actions{display:flex;align-items:center;gap:8px}
.home-test-name-actions a{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid #d7dcf0;border-radius:9px;color:#5251bf;text-decoration:none;font-size:13px;font-weight:500;white-space:nowrap}
.home-test-name-actions .name-test-link{border-color:transparent;background:linear-gradient(135deg,#8f7bf5,#416df1);color:#fff}
.home-test-name.card-color-yellow{background:#fff9df;border-color:#f0dda0}
.home-test-name.card-color-green{background:#eaf9f1;border-color:#bce8d1}
.home-test-name.card-color-blue{background:#edf5ff;border-color:#c4d9f7}
.home-test-name.card-color-pink{background:#fff0f6;border-color:#f2c9dd}
@media(max-width:760px){
  .section-head,.home-catalog-actions{align-items:flex-start;flex-direction:column}
  .home-catalog-actions{gap:12px}
  .home-test-name{grid-template-columns:1fr!important}
  .home-test-name-meta{grid-column:1;justify-content:space-between;flex-wrap:wrap;gap:10px}
  .home-test-name-actions{margin-left:auto}
}
body:is([data-theme="dark"],[data-theme="aiflow"]) .home-view-switch{background:#161d30}
body:is([data-theme="dark"],[data-theme="aiflow"]) .home-view-button{color:#bec8e2}
body:is([data-theme="dark"],[data-theme="aiflow"]) .home-view-button.is-active{background:#303d61;color:#fff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .home-test-name{background:#1a2133;border-color:#3b4b70;color:#e6ebf8}
body:is([data-theme="dark"],[data-theme="aiflow"]) .home-test-name small{color:#acb7d0}
body:is([data-theme="dark"],[data-theme="aiflow"]) .home-test-name-marker{background:#303a58;color:#b9b5ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .home-test-name.card-color-yellow{background:#39331f;border-color:#70633b}
body:is([data-theme="dark"],[data-theme="aiflow"]) .home-test-name.card-color-green{background:#1d3931;border-color:#3f6d5d}
body:is([data-theme="dark"],[data-theme="aiflow"]) .home-test-name.card-color-blue{background:#202f48;border-color:#465f86}
body:is([data-theme="dark"],[data-theme="aiflow"]) .home-test-name.card-color-pink{background:#40253a;border-color:#774a69}
body:is([data-theme="dark"],[data-theme="aiflow"]) .catalog-filter input,body:is([data-theme="dark"],[data-theme="aiflow"]) .catalog-filter select{background:#161c2c;color:#edf0ff;border-color:#444f70}

.home-card-pagination{display:flex;align-items:center;justify-content:center;gap:7px;margin:28px 0 0}
.home-card-pagination a{display:grid;place-items:center;min-width:34px;height:34px;padding:0 9px;border:1px solid #d7dcf0;border-radius:9px;background:#fff;color:#5b59b9;font-size:13px;font-weight:600;text-decoration:none}
.home-card-pagination a:hover{border-color:#aaa8df;background:#f2f3ff}
.home-card-pagination a.is-active{border-color:transparent;background:linear-gradient(135deg,#8f7bf5,#416df1);color:#fff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .home-card-pagination a{border-color:#465575;background:#20283d;color:#cbd4f6}
body:is([data-theme="dark"],[data-theme="aiflow"]) .home-card-pagination a:hover{border-color:#6675a2;background:#303a58;color:#edf1ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .home-card-pagination a.is-active{border-color:transparent;background:linear-gradient(135deg,#8f7bf5,#416df1);color:#fff}

/* Teacher dashboard. */
.teacher-wide-layout .shell{padding-left:clamp(28px,3.5vw,64px);padding-right:clamp(28px,3.5vw,64px)}
.teacher-wide-layout .stat-grid{grid-template-columns:repeat(5,minmax(180px,1fr));width:min(100%,1480px);margin-left:auto}
.teacher-wide-layout .stat-grid>div{text-align:center}
.teacher-wide-layout .training-stat small{color:#6658bd}
.teacher-wide-layout .training-stat b{color:#5446b9}
body:is([data-theme="dark"],[data-theme="aiflow"]) .teacher-wide-layout .actions>a{color:#b9c5ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .teacher-wide-layout .actions>a:hover{color:#dce3ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .teacher-wide-layout .training-stat small{color:#c8c0ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .teacher-wide-layout .training-stat b{color:#ddd8ff}
@media(max-width:1200px){
  .teacher-wide-layout .stat-grid{grid-template-columns:repeat(3,minmax(220px,1fr))}
}
@media(max-width:760px){
  .teacher-wide-layout .shell{padding-left:18px;padding-right:18px}
  .teacher-wide-layout .stat-grid{width:100%;grid-template-columns:1fr}
}

.teacher-wide-layout .filters{align-items:center}
.teacher-wide-layout .filters input[name="q"]{flex:1 1 360px}
.teacher-wide-layout .filters select[name="year"]{flex:0 0 190px;width:190px}
.teacher-wide-layout .filters select[name="subject"]{flex:1 1 280px}
@media(max-width:760px){
  .teacher-wide-layout .filters select[name="year"]{width:100%;flex-basis:auto}
}

body:is([data-theme="dark"],[data-theme="aiflow"]) .teacher-table-sort:hover{color:#b8adff}

.filters select{margin:0}
.filters .text-link{align-self:center;white-space:nowrap}

.combine-form{max-width:860px;margin:0 auto}
.combine-form h2{margin:28px 0 12px;font-size:22px}
.combine-source-list{display:grid;gap:10px}
.combine-source{display:grid;grid-template-columns:minmax(0,1fr) 180px;align-items:center;gap:22px;padding:16px;border:1px solid #e2e5f5;border-radius:12px;background:#fafbff}
.combine-source b{display:block}
.combine-source small{display:block;margin-top:3px;color:#73809a}
.combine-source label{margin:0}
.combine-source input{margin-top:4px}
.combine-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:24px}
body:is([data-theme="dark"],[data-theme="aiflow"]) .combine-source{background:#1a2133;border-color:#3b4b70}
body:is([data-theme="dark"],[data-theme="aiflow"]) .combine-source small{color:#acb7d0}
@media(max-width:760px){
  .combine-source{grid-template-columns:1fr;gap:12px}
  .combine-actions{align-items:stretch;flex-direction:column-reverse}
  .combine-actions .button{width:100%}
}

/* Results and grading. */
.review.wrong p:first-of-type strong{color:#d94d5e}
.review.correct p:first-of-type strong{color:#13845f}
.grade{display:inline-block;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:750;white-space:nowrap}
.grade-1{background:#e4f8ef;color:#137858}
.grade-2{background:#d3f1f6;color:#0a6f82}
.grade-3{background:#eeecff;color:#5547bc}
.grade-4{background:#fff2dc;color:#a76508}
.grade-5{background:#ffe8eb;color:#c13e52}
.result-score-line{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.result-score-line h2{margin:0}
.grade-result{display:inline-block;margin:0!important;padding:7px 11px;border-radius:10px;font-weight:800!important}
.grading-note{margin:18px 0;color:var(--muted)}
.grading-settings{max-width:680px;margin:0 auto}
.grading-settings input{max-width:150px}
body:is([data-theme="dark"],[data-theme="aiflow"]) .grade-1{background:#193e35;color:#87e4bb}
body:is([data-theme="dark"],[data-theme="aiflow"]) .grade-2{background:#0f3a48;color:#6fd6ea}
body:is([data-theme="dark"],[data-theme="aiflow"]) .grade-3{background:#302a58;color:#c4baff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .grade-4{background:#4b3520;color:#ffd289}
body:is([data-theme="dark"],[data-theme="aiflow"]) .grade-5{background:#4c2731;color:#ffadb9}
body:is([data-theme="dark"],[data-theme="aiflow"]) .result-score-line h2{color:#645fda}

.grading-settings [data-wrong-grading-fields]{display:none}
.grading-settings.is-wrong-answer-grading [data-percentage-grading-fields]{display:none}
.grading-settings.is-wrong-answer-grading [data-wrong-grading-fields]{display:block}
.grading-settings.is-wrong-answer-grading .grading-rows[data-wrong-grading-fields]{display:grid}

/* Známkovat i s mínusem on Hodnocení testu: the form switches to a table with a row per grade, "Bez mínusu" and "S mínusem" each with its own field, the range and the other view (wrong answers or percent); the form gets wider for the two columns. The lasting note that saving regrades the submitted results. Theme tokens only. */
.grading-settings .editor-training-toggle:has(input:disabled){opacity:.55}
.grading-settings.has-minus-grading{max-width:780px}
.grading-settings.has-minus-grading :is([data-percentage-grading-fields],[data-wrong-grading-fields]){display:none}
.grading-minus-grid{display:grid;gap:8px;margin:4px 0 18px}
.grading-minus-grid[hidden]{display:none}
.grading-minus-head,.grading-minus-row{display:grid;grid-template-columns:134px minmax(0,1fr) minmax(0,1fr);gap:8px}
.grading-minus-head span{padding:0 6px;color:var(--t-muted);font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.grading-minus-grade{display:flex;flex-direction:column;justify-content:center;padding:10px 12px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-soft)}
.grading-minus-grade .grade{align-self:flex-start}
.grading-minus-cell{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;column-gap:10px;row-gap:3px;padding:10px 12px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-surface)}
.grading-minus-cell>b{grid-row:1/3;color:var(--t-text);font-size:24px;font-weight:850;line-height:1;text-align:center}
.grading-minus-cell.is-minus>b{color:var(--t-accent)}
.grading-settings .grading-minus-input{display:flex;align-items:center;gap:7px;margin:0;color:var(--t-muted);font-size:14px;font-weight:600}
.grading-settings .grading-minus-input input{width:74px;margin:0;padding:8px 10px}
.grading-minus-cell small{color:var(--t-muted);font-size:12.5px}
.grading-minus-cell small b{color:var(--t-text);font-weight:700}
.grading-minus-row.is-five .grading-minus-cell{grid-column:2/4}
.grading-minus-row.is-five .grading-minus-cell span{color:var(--t-muted);font-size:14px;font-weight:600}
@media(max-width:600px){
  .grading-minus-head,.grading-minus-grade{display:none}
  .grading-minus-row{grid-template-columns:minmax(0,1fr)}
  .grading-minus-row.is-five .grading-minus-cell{grid-column:auto}
}
.grading-regrade-warning{display:flex;align-items:flex-start;gap:10px;margin:0 0 18px;padding:12px 14px;border:1px solid var(--t-warn-border);border-radius:12px;background:var(--t-warn-bg);color:var(--t-warn-text);font-size:14px;line-height:1.5}
.grading-settings .grading-regrade-warning>i.fa-solid{margin-top:3px;color:var(--t-warn-icon)!important}
.grading-table .grading-mark-range{display:block;white-space:nowrap}
.grading-table .grading-mark-range b{display:inline-block;min-width:2.2em}

.grading-settings .grading-wrong-preview,.grading-settings .grading-percent-preview{display:inline-flex;align-items:center;gap:6px;min-height:40px;margin-left:10px;padding:0 12px;border:1px solid #cfd4f4;border-radius:9px;background:#f1f2ff;color:#5961a9;font-size:12px;font-weight:750;white-space:nowrap}
.grading-settings .grading-wrong-preview b,.grading-settings .grading-percent-preview b{color:#685ae5;font-size:19px;line-height:1;font-weight:850;letter-spacing:.01em;text-shadow:0 1px 8px rgba(104,90,229,.2)}
body:is([data-theme="dark"],[data-theme="aiflow"]) .grading-settings .grading-wrong-preview,body:is([data-theme="dark"],[data-theme="aiflow"]) .grading-settings .grading-percent-preview{border-color:#4a5482;background:#252d49;color:#bec6ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .grading-settings .grading-wrong-preview b,body:is([data-theme="dark"],[data-theme="aiflow"]) .grading-settings .grading-percent-preview b{color:#b9b1ff}
body[data-theme="colorful"] .grading-settings .grading-wrong-preview b,body[data-theme="colorful"] .grading-settings .grading-percent-preview b{color:#d54791}

.result-row-actions{min-width:250px;padding-left:34px!important;text-align:right;white-space:nowrap}
.result-row-actions>a{display:inline-flex;align-items:center;margin-right:26px}
.result-row-actions .inline-form{margin-left:0}
.results-bulk-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin:-4px 0 18px}
.results-bulk-actions form{margin:0}
.danger-button{border:0;border-radius:9px;padding:11px 14px;background:#fff0f2;color:#ba3e51;font-family:inherit;cursor:pointer}
.danger-button:hover{background:#ffe0e5}
body:is([data-theme="dark"],[data-theme="aiflow"]) .danger-button{background:#4a2631;color:#ffb5c0}
.results-bulk-actions a[href*="export_filtered_results"]{gap:8px;padding:11px 14px;font-size:13px}
.results-bulk-actions a[href*="export_filtered_results"] .icon-inline{font-size:13px}
.results-bulk-actions>a,.results-bulk-actions>button,.results-bulk-actions>form .danger-button{height:45px;padding:0 16px;font-size:13px;font-weight:400;line-height:1}
@media(max-width:760px){
  .results-bulk-actions{align-items:stretch;flex-direction:column}
  .results-bulk-actions .button,.results-bulk-actions form,.danger-button{width:100%}
}

/* Shared dialogs and inline forms. */
.inline-form{display:inline-block;margin:0 0 0 10px;vertical-align:middle}
.inline-form button{vertical-align:middle}
.app-confirm-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;overflow-y:auto;overscroll-behavior:contain;background:rgba(11,15,30,.55);backdrop-filter:blur(5px)}
.app-confirm-dialog{width:min(100%,460px);margin:auto;padding:28px;border:1px solid #dfe4f5;border-radius:20px;background:#fff;color:#18213b;box-shadow:0 24px 70px rgba(11,15,30,.28)}
.app-confirm-dialog h2{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:23px}
.app-confirm-dialog h2 i{color:#dc4e61}
.app-confirm-dialog p{margin:0;color:#687592;line-height:1.55}
.app-confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}
.app-confirm-actions button{border:0;border-radius:10px;padding:11px 15px;font:inherit;font-weight:700;cursor:pointer}

/* Tlačítka dialogů (potvrzení, ukončení testu, obnovení zálohy, pořadí testů) reagují na najetí ve všech motivech okamžitě, bez přechodu jako hlavní tlačítka (barvy mají motivy často s !important, proto jas a posun místo pozadí). */
:is(.app-confirm-actions,.incomplete-test-actions,.backup-restore-actions,.test-order-actions) button:not(:disabled):hover{filter:brightness(1.1);transform:translateY(-1px)}
body:is([data-theme="dark"],[data-theme="ember"],[data-theme="aiflow"],[data-theme="navy"]) :is(.app-confirm-actions,.incomplete-test-actions,.backup-restore-actions,.test-order-actions) button:not(:disabled):hover{filter:brightness(1.35)}
.app-confirm-cancel{background:#eef1ff;color:#4e59c8}
.app-confirm-delete{background:#d94d5e;color:#fff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .app-confirm-dialog{border-color:#3d4b70;background:#20283d;color:#edf1ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .app-confirm-dialog p{color:#bdc7df}
body:is([data-theme="dark"],[data-theme="aiflow"]) .app-confirm-cancel{background:#33405f;color:#dbe4ff}
@media(max-width:520px){
  .app-confirm-actions{flex-direction:column-reverse}
  .app-confirm-actions button{width:100%}
}

.incomplete-test-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(11,15,30,.58);backdrop-filter:blur(5px)}
.incomplete-test-dialog{width:min(100%,620px);max-height:calc(100vh - 40px);overflow:auto;padding:28px;border:1px solid #dfe4f5;border-radius:20px;background:#fff;color:#18213b;box-shadow:0 24px 70px rgba(11,15,30,.28)}
.incomplete-test-dialog h2{display:flex;align-items:center;gap:10px;margin:0 0 14px;font-size:23px}
.incomplete-test-dialog h2 i{color:#d94d5e}
.incomplete-test-dialog p{margin:0;color:#687592;line-height:1.55}
.incomplete-test-dialog ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:18px 0;padding:0;list-style:none}
.incomplete-test-dialog li{padding:9px 11px;border-radius:9px;background:#fff1f3;color:#a93c4d;font-weight:700}
.incomplete-test-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}
.incomplete-test-actions button{border:0;border-radius:10px;padding:11px 15px;font:inherit;font-weight:700;cursor:pointer}
.incomplete-test-cancel{background:#eef1ff;color:#4e59c8}
.incomplete-test-confirm{background:#d94d5e;color:#fff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .incomplete-test-dialog{border-color:#3d4b70;background:#20283d;color:#edf1ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .incomplete-test-dialog p{color:#bdc7df}
body:is([data-theme="dark"],[data-theme="aiflow"]) .incomplete-test-dialog li{background:#482832;color:#ffb3be}
body:is([data-theme="dark"],[data-theme="aiflow"]) .incomplete-test-cancel{background:#33405f;color:#dbe4ff}
@media(max-width:620px){
  .incomplete-test-dialog{padding:22px}
  .incomplete-test-dialog ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .incomplete-test-actions{flex-direction:column-reverse}
  .incomplete-test-actions button{width:100%}
}

/* Shared form and dashboard controls. */
.dashboard-create-actions{display:flex;gap:12px;flex-wrap:wrap}
.dashboard-create-actions .button{gap:10px;padding:10px 15px;font-size:13px}
.dashboard-create-actions [data-grading-settings-link]{background:#e7f8f1;color:#167b5b}
.start-layout{align-items:stretch}
.start-form{position:relative;border-color:#dcdff5;background:linear-gradient(145deg,#fff 0%,#fafaff 100%);padding:30px;box-shadow:0 22px 50px rgba(65,72,170,.12)}
.start-form select{cursor:pointer}
.start-form .button{margin-top:8px}
body:is([data-theme="dark"],[data-theme="aiflow"]) .dashboard-create-actions [data-grading-settings-link]{background:#193e35;color:#87e4bb}
@media(max-width:760px){
  .dashboard-create-actions{width:100%;gap:9px}
  .dashboard-create-actions .button{flex:1}
  .start-form{padding:24px}
}

/* Shared cards, tables and dashboard summary. */
.test-card{position:relative;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.test-card:before{content:"";position:absolute;top:0;right:0;left:0;height:4px;background:linear-gradient(90deg,#9a82ff,#416df1)}
.test-card:hover,.practice-set-card:hover,.my-list-card:hover{transform:translateY(-4px);border-color:#b9b1fa;box-shadow:0 16px 30px rgba(66,81,180,.14)}
.info-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.info-row span{display:inline-flex;align-items:center;gap:7px}
.info-row i{width:15px;color:#6859df;text-align:center}
.score-cell{min-width:125px}
.score-progress{width:86px;height:5px;margin-top:7px;overflow:hidden;border-radius:99px;background:#e8ebf6}
.score-progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#9b82ff,#416df1)}
.dashboard-performance{margin:26px 0 34px;padding:20px 22px;border:1px solid #e1e5f3;border-radius:16px;background:linear-gradient(135deg,#fbfbff,#f5f7ff)}
.dashboard-performance[hidden]{display:none}
.dashboard-performance-head{display:flex;align-items:center;gap:9px;margin:0 0 16px;color:#252d61}
.dashboard-performance-head i{color:#6859df}
.dashboard-performance-head h2{margin:0;font-size:18px}
.performance-list{display:grid;gap:11px}
.performance-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,2fr) 48px;gap:12px;align-items:center;font-size:13px}
.performance-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.performance-track{height:8px;overflow:hidden;border-radius:99px;background:#e4e8f6}
.performance-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#9a82ff,#416df1)}
.performance-row em{font-style:normal;font-weight:700;color:#535fc8;text-align:right}
.empty-state{display:grid;justify-items:center;gap:7px;padding:42px 20px;border:1px dashed #cbd2ea;border-radius:16px;color:#6c7896;text-align:center}
.empty-state i{font-size:28px;color:#7666e9}
.empty-state b{color:#33405f}
.empty-performance{margin:0;color:#7783a0}
.empty-table-cell{padding:34px!important;color:#71809d;text-align:center}
.empty-table-cell i{margin-right:8px;color:#7666e9}
body:is([data-theme="dark"],[data-theme="aiflow"]) :is(.test-card,.practice-set-card,.my-list-card):hover{border-color:#6978b8;box-shadow:0 16px 30px rgba(0,0,0,.24)}
body:is([data-theme="dark"],[data-theme="aiflow"]) .info-row i{color:#b1a7ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .score-progress{background:#35415f}
body:is([data-theme="dark"],[data-theme="aiflow"]) .dashboard-performance{border-color:#35415f;background:linear-gradient(135deg,#20283d,#1b2336)}
body:is([data-theme="dark"],[data-theme="aiflow"]) .dashboard-performance-head{color:#e7ebfa}
body:is([data-theme="dark"],[data-theme="aiflow"]) .performance-track{background:#35415f}
body:is([data-theme="dark"],[data-theme="aiflow"]) .performance-row em{color:#b9adff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .empty-state{border-color:#3d4a69;color:#b7c1da}
body:is([data-theme="dark"],[data-theme="aiflow"]) .empty-state b{color:#e5eaff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .empty-table-cell{color:#bac5dc}
@media(max-width:600px){
  .performance-row{grid-template-columns:1fr 42px}
  .performance-track{grid-column:1/-1;grid-row:2}
  .dashboard-performance{padding:18px}
  .score-cell{min-width:105px}
}

/* Shared dark mode, notices and test progress. */
.class-group-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.class-group-fields label{margin-bottom:16px}
.actions>a+a{margin-left:14px}
.actions>.download-menu{display:block;margin:8px 0 18px}
.actions>.download-menu+form{margin-left:0}
@media(max-width:760px){
  .class-group-fields{grid-template-columns:1fr;gap:0}
}

.download-menu>summary{list-style:none}
.download-menu>summary::-webkit-details-marker{display:none}
.download-menu>summary::marker{content:""}
.download-menu[open]>div{margin-top:8px}
.download-menu>div{display:flex;flex-wrap:wrap;align-items:center;column-gap:14px;row-gap:14px}
.download-menu>div a{white-space:nowrap}

body:is([data-theme="dark"],[data-theme="aiflow"]) .topbar nav a:not(.nav-button){color:#c9d1e8}
body:is([data-theme="dark"],[data-theme="aiflow"]) .score-ring:before{background:#20263a}
body:is([data-theme="dark"],[data-theme="aiflow"]) .score-ring span{color:#fff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .review.wrong p:first-of-type strong{color:#ff8794}
body:is([data-theme="dark"],[data-theme="aiflow"]) .review.wrong p:nth-of-type(2) strong{color:#fff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .review.correct p:first-of-type strong{color:#64d8a9}
body:is([data-theme="dark"],[data-theme="aiflow"]) .start-form label,body:is([data-theme="dark"],[data-theme="aiflow"]) .auth .form-card label{color:#c6cee6}
body:is([data-theme="dark"],[data-theme="aiflow"]) .floating-card{background:#27304a}
body:is([data-theme="dark"],[data-theme="aiflow"]) .floating-card b{color:#f5f7ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .floating-card small{color:#c8d0e5}

.test-progress{position:sticky;top:76px;z-index:9;width:100%;height:5px;background:#e8ebf5}
.test-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,#9c83ff,#416df1);box-shadow:0 1px 8px rgba(91,83,220,.35);transition:width .28s ease}
body:is([data-theme="dark"],[data-theme="aiflow"]) .test-progress{background:#2b354e}
@media(max-width:760px){
  .test-progress{top:63px}
}

body:is([data-theme="dark"],[data-theme="aiflow"]) .notice.success{border:1px solid #2d6d5a;background:#193a33;color:#9be2c1}
body:is([data-theme="dark"],[data-theme="aiflow"]) .notice.error{border:1px solid #78414d;background:#482832;color:#ffb3be}

body:is([data-theme="dark"],[data-theme="aiflow"]) .help-card{border:1px solid #3d4b70;background:#20283d;color:#edf1ff;box-shadow:0 18px 42px rgba(0,0,0,.18)}
body:is([data-theme="dark"],[data-theme="aiflow"]) .help-card h2,body:is([data-theme="dark"],[data-theme="aiflow"]) .help-card h3{color:#e8edff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .help-card p{color:#bdc7df}
body:is([data-theme="dark"],[data-theme="aiflow"]) .help-card pre{border:1px solid #35415f;background:#151c2d;color:#e7edff}

.notice{box-sizing:border-box;width:fit-content;max-width:calc(100% - 40px);margin:18px auto 0}

body:is([data-theme="dark"],[data-theme="aiflow"]) .auth .form-card input[type="email"],body:is([data-theme="dark"],[data-theme="aiflow"]) .auth .form-card input[type="password"]{background:#151c2d!important;color:#edf2ff!important;border-color:#4b5b80!important;caret-color:#c4baff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .auth .form-card input[type="email"]:focus,body:is([data-theme="dark"],[data-theme="aiflow"]) .auth .form-card input[type="password"]:focus{border-color:#a993ff!important;box-shadow:0 0 0 3px rgba(169,147,255,.16)}
body:is([data-theme="dark"],[data-theme="aiflow"]) .auth .form-card input:-webkit-autofill,body:is([data-theme="dark"],[data-theme="aiflow"]) .auth .form-card input:-webkit-autofill:hover,body:is([data-theme="dark"],[data-theme="aiflow"]) .auth .form-card input:-webkit-autofill:focus{-webkit-text-fill-color:#edf2ff;caret-color:#c4baff;box-shadow:0 0 0 1000px #151c2d inset!important;transition:background-color 9999s ease-out 0s}

body:is([data-theme="dark"],[data-theme="aiflow"]) .form-card>label,body:is([data-theme="dark"],[data-theme="aiflow"]) .form-card .class-group-fields>label{color:#bec9e3}
body:is([data-theme="dark"],[data-theme="aiflow"]) .form-card input::placeholder,body:is([data-theme="dark"],[data-theme="aiflow"]) .form-card textarea::placeholder{color:#aab5cc;opacity:1}

/* Catalog filters, including the automatic grade-year filter. */
.catalog-filter{display:grid;grid-template-columns:minmax(220px,1fr) max-content minmax(165px,180px) minmax(190px,210px) auto auto;align-items:center;gap:10px;margin:0 0 26px}
.catalog-filter input,.catalog-filter select{height:45px;margin:0}
.catalog-filter .catalog-subject-filter{min-width:165px}
.catalog-filter select[name="year"],.filters select[name="class"]{width:max-content}
.catalog-filter select[name="teacher"]{width:190px}
.catalog-filter .button{height:45px;white-space:nowrap;padding:0 17px}
.catalog-filter .text-link{white-space:nowrap}
@media(max-width:760px){
  .catalog-filter{grid-template-columns:1fr}
  .catalog-filter .button{width:100%}
  .catalog-filter select[name="year"],.catalog-filter select[name="teacher"],.filters select[name="class"]{width:100%}
}

.home-test-name-actions .name-practice-link{border-color:#cdd2ee;background:transparent;color:#5b59b9}
.home-test-name-actions .name-practice-link:hover{border-color:#aaa8df;background:#f2f3ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .home-test-name-actions .name-practice-link{border-color:#465575;background:#27304a;color:#cbd4f6}
body:is([data-theme="dark"],[data-theme="aiflow"]) .home-test-name-actions .name-practice-link:hover{border-color:#6675a2;background:#303a58;color:#edf1ff}
.home-test-name-title>span{min-width:0;flex:1}
.home-test-name-title .card-tags{flex:0 0 auto;margin-left:2px}
.card-tag-row{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.card-tags{display:inline-flex;flex-wrap:wrap;gap:5px}
.card-tag{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#eef0ff;color:#5550bd;font-size:11px;font-weight:800;line-height:1}
.card-tag-maturita{background:#f3eaff;color:#824ab3}
.card-tag-opakování{background:#e8f7f1;color:#198667}
.card-tag-náročné{background:#fff0e4;color:#bd6727}
.card-tag-základní{background:#e9f1ff;color:#3566b4}
.card-tag-extra{background:#fff0f5;color:#bb4f80}
.editor-tags{margin:0 0 16px;padding:13px 15px;border:1px solid var(--line);border-radius:10px}
.editor-tags legend{padding:0 5px;font-size:13px;font-weight:750;color:#46506a}
.editor-tags>div{display:flex;flex-wrap:wrap;gap:8px 14px}
.editor-tags label{display:flex;align-items:center;gap:6px;margin:0;font-size:13px}
.editor-tags input{width:auto;margin:0;accent-color:var(--purple)}
body:is([data-theme="dark"],[data-theme="aiflow"]) .editor-tags{border-color:#3b4b70}
body:is([data-theme="dark"],[data-theme="aiflow"]) .editor-tags legend{color:#dce4fa}

.editor-subject-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,240px);gap:16px}
.editor-subject-row label{margin-bottom:0}
@media(max-width:600px){
  .editor-subject-row{grid-template-columns:1fr}
  .editor-subject-row label{margin-bottom:16px}
}

.test-card .card-teacher-stats{position:absolute;top:19px;right:19px;z-index:1;display:flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid rgba(119,111,220,.18);border-radius:10px;background:rgba(248,249,255,.84);color:#5a55bf;font-size:11px;font-weight:750;line-height:1;backdrop-filter:blur(8px)}
.card-teacher-stats span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.card-teacher-stats span+span{padding-left:5px;border-left:1px solid rgba(107,99,199,.16)}
.card-teacher-stats i{font-size:10px;color:#746de1}
body:is([data-theme="dark"],[data-theme="aiflow"]) .test-card .card-teacher-stats{border-color:rgba(154,148,255,.28);background:rgba(27,34,55,.82);color:#d4d1ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .card-teacher-stats span+span{border-color:rgba(188,183,255,.2)}
body:is([data-theme="dark"],[data-theme="aiflow"]) .card-teacher-stats i{color:#aaa5ff}
@media(max-width:520px){
  .test-card .card-teacher-stats{top:14px;right:14px}
  .test-card:has(.card-teacher-stats) .pill{margin-right:145px}
}

.editor-reset-statistics{margin:0}
.editor-reset-statistics button{display:inline-flex;align-items:center;gap:8px;border:1px solid #d8deeb;border-radius:10px;padding:9px 13px;background:transparent;color:#69748f;font:inherit;font-size:13px;cursor:pointer}
.editor-reset-statistics button i{color:#db8750}
.editor-reset-statistics button:hover{border-color:#d89c70;background:#fff6ee;color:#a95b2d}
body:is([data-theme="dark"],[data-theme="aiflow"]) .editor-reset-statistics button{border-color:#3b486a;background:#20283d;color:#d6def3}
body:is([data-theme="dark"],[data-theme="aiflow"]) .editor-reset-statistics button i{color:#ffb57d}
body:is([data-theme="dark"],[data-theme="aiflow"]) .editor-reset-statistics button:hover{border-color:#a96f4b;background:#3a2b25;color:#ffd0ab}

body:is([data-theme="dark"],[data-theme="aiflow"]) .topbar nav .nav-button{border:1px solid #4a587d;background:#2a3552;color:#edf1ff;box-shadow:inset 0 1px rgba(255,255,255,.07),0 6px 16px rgba(7,10,22,.18)}
body:is([data-theme="dark"],[data-theme="aiflow"]) .topbar nav .nav-button:hover{border-color:#7887bb;background:#344263;color:#fff}
body[data-theme="dark"] .topbar nav .nav-button:hover{border-color:#7d6fd6;background:#302f55;color:#a993ff}

/* Keep the landing-page call to action prominent without overwhelming the hero. */
.hero-actions>.button{gap:12px;padding:11px 17px;border-radius:10px;font-size:14px;box-shadow:0 7px 16px rgba(89,89,220,.2)}

/* Question-wide success is revealed only after an answer in practice mode. */
.practice-question-stats{display:flex;align-items:center;gap:7px;width:max-content;max-width:100%;margin:12px 0 0 auto;padding:6px 9px;border:1px solid #dce1f1;border-radius:999px;background:#f7f8ff;color:#596582;font-size:11px;font-weight:650}
.practice-question-stats i{color:#7069d8}
.practice-question-stats span{color:#8490aa;font-weight:500}
@media(max-width:600px){
  .practice-question-stats{width:100%;justify-content:center;flex-wrap:wrap;text-align:center}
}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-question-stats{border-color:#414e70;background:#1a2133;color:#c5cde2}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-question-stats i{color:#aba4ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-question-stats span{color:#98a4c0}

/* Teacher overview of question difficulty. */
.question-performance-panel{margin:26px 0;padding:22px;border:1px solid #e1e5f3;border-radius:16px;background:linear-gradient(135deg,#fbfbff,#f5f7ff)}
.question-performance-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:17px}
.question-performance-head h2{margin:0;font-size:20px;color:#252d61}
.question-performance-head h2 i{color:#7566dd}
.question-performance-head p{margin:4px 0 0;color:#71809d;font-size:13px}
.question-performance-legend{display:flex;align-items:center;flex-wrap:wrap;gap:5px;color:#71809d;font-size:11px;white-space:nowrap}
.question-performance-legend i{width:8px;height:8px;border-radius:50%;background:#27a879}
.question-performance-legend i:nth-of-type(2){background:#d99c32}
.question-performance-legend i:nth-of-type(3){background:#d75b69}
.question-performance-list{display:grid;gap:10px}
.question-performance-row{display:grid;grid-template-columns:minmax(250px,1.4fr) minmax(130px,1fr) 48px 180px;align-items:center;gap:14px;padding:11px 12px;border:1px solid #e1e5f2;border-radius:11px;background:#fff}
.question-performance-question{display:flex;align-items:flex-start;gap:9px;min-width:0}
.question-performance-question>span{display:grid;place-items:center;flex:0 0 23px;width:23px;height:23px;border-radius:7px;background:#eef0ff;color:#5953c2;font-size:11px;font-weight:800}
.question-performance-question b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.question-performance-bar{height:7px;overflow:hidden;border-radius:99px;background:#e4e8f5}
.question-performance-bar i{display:block;height:100%;border-radius:inherit;background:#2baa7c}
.question-performance-row strong{font-size:13px;color:#1d805e;text-align:right}
.question-performance-row small{color:#77839d;font-size:11px;white-space:nowrap}
.question-performance-medium .question-performance-bar i{background:#d79b32}
.question-performance-medium strong{color:#a66d0f}
.question-performance-low .question-performance-bar i{background:#d85b69}
.question-performance-low strong{color:#bc4052}
.question-performance-empty .question-performance-bar i{background:#c1c8da}
.question-performance-empty strong{color:#8490a8}
body:is([data-theme="dark"],[data-theme="aiflow"]) .question-performance-panel{border-color:#35415f;background:linear-gradient(135deg,#20283d,#1b2336)}
body:is([data-theme="dark"],[data-theme="aiflow"]) .question-performance-head h2{color:#e7ebfa}
body:is([data-theme="dark"],[data-theme="aiflow"]) .question-performance-head p,body:is([data-theme="dark"],[data-theme="aiflow"]) .question-performance-legend,body:is([data-theme="dark"],[data-theme="aiflow"]) .question-performance-row small{color:#aeb9d3}
body:is([data-theme="dark"],[data-theme="aiflow"]) .question-performance-row{border-color:#394762;background:#1a2133}
body:is([data-theme="dark"],[data-theme="aiflow"]) .question-performance-question>span{background:#303a58;color:#d9deff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .question-performance-question b{color:#e6ebfa}
body:is([data-theme="dark"],[data-theme="aiflow"]) .question-performance-bar{background:#35415f}
body[data-theme="ember"] .question-performance-panel{border-color:#463638;background:linear-gradient(135deg,#1d1619,#151217)}
body[data-theme="navy"] .question-performance-panel{border-color:#2f364f;background:linear-gradient(135deg,#13192d,#111627)}
body[data-theme="ember"] .question-performance-head h2{color:#f6e6e1}
body[data-theme="navy"] .question-performance-head h2{color:#e7e9f0}
body[data-theme="ember"] .question-performance-head p,body[data-theme="ember"] .question-performance-legend,body[data-theme="ember"] .question-performance-row small{color:#bfaaa5}
body[data-theme="navy"] .question-performance-head p,body[data-theme="navy"] .question-performance-legend,body[data-theme="navy"] .question-performance-row small{color:#a1a9c3}
body[data-theme="ember"] .question-performance-row{border-color:#463638;background:#1a1518}
body[data-theme="navy"] .question-performance-row{border-color:#2f364f;background:#12182a}
body[data-theme="ember"] .question-performance-question>span{background:#3a2426;color:#ffc4b3}
body[data-theme="navy"] .question-performance-question>span{background:#1e2746;color:#ffb3b3}
body[data-theme="ember"] .question-performance-question b{color:#f3e3de}
body[data-theme="navy"] .question-performance-question b{color:#e4e6ed}
body[data-theme="ember"] .question-performance-bar{background:#3d2e30}
body[data-theme="navy"] .question-performance-bar{background:#212c4e}
@media(max-width:800px){
  .question-performance-head{flex-direction:column}
  .question-performance-row{grid-template-columns:minmax(0,1fr) 48px;gap:9px}
  .question-performance-bar{grid-column:1/-1;grid-row:2}
  .question-performance-row small{grid-column:1/-1;grid-row:3;white-space:normal}
  .question-performance-question b{white-space:normal}
}

/* Answer spread under a question in "Úspěšnost otázek": which answers students chose in submitted tests and in practice. Rows with a spread open it on click (assets/app.js). */
.question-performance-row[data-answer-spread]{cursor:pointer;transition:border-color .15s}
.question-performance-row[data-answer-spread]:hover,.question-performance-row[data-answer-spread][aria-expanded="true"]{border-color:#b9b3f0}
.question-performance-row[data-answer-spread]:focus-visible{outline:2px solid #7566dd;outline-offset:2px}

.question-answer-spread{margin-top:-4px;padding:12px 14px 13px 44px;border:1px solid #e1e5f2;border-radius:11px;background:#fff}
.question-answer-spread>p{margin:0 0 9px;color:#77839d;font-size:11px}
.question-answer-spread ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.question-answer-spread li{display:grid;grid-template-columns:minmax(200px,1.4fr) minmax(120px,1fr) 48px 40px;align-items:center;gap:14px;font-size:13px}
.question-answer-spread-text{min-width:0;overflow-wrap:anywhere}
.question-answer-spread-text i{margin-right:7px}
.question-answer-spread li.is-correct .question-answer-spread-text{color:#1d805e;font-weight:700}
.question-answer-spread li.is-unanswered .question-answer-spread-text{color:#77839d;font-style:italic}
.question-answer-spread-bar{height:6px;overflow:hidden;border-radius:99px;background:#e4e8f5}
.question-answer-spread-bar i{display:block;height:100%;border-radius:inherit;background:#d85b69}
.question-answer-spread li.is-correct .question-answer-spread-bar i{background:#2baa7c}
.question-answer-spread li.is-unanswered .question-answer-spread-bar i{background:#c1c8da}
.question-answer-spread li b{text-align:right}
.question-answer-spread li small{color:#77839d;font-size:11px}
.question-answer-spread-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

body:is([data-theme="dark"],[data-theme="aiflow"]) .question-performance-row[data-answer-spread]:is(:hover,[aria-expanded="true"]){border-color:#5d6a92}
body:is([data-theme="dark"],[data-theme="aiflow"]) .question-answer-spread{border-color:#394762;background:#1a2133}
body:is([data-theme="dark"],[data-theme="aiflow"]) .question-answer-spread>p,body:is([data-theme="dark"],[data-theme="aiflow"]) .question-answer-spread li small,body:is([data-theme="dark"],[data-theme="aiflow"]) .question-answer-spread li.is-unanswered .question-answer-spread-text{color:#aeb9d3}
body:is([data-theme="dark"],[data-theme="aiflow"]) .question-answer-spread li{color:#e6ebfa}
body:is([data-theme="dark"],[data-theme="aiflow"]) .question-answer-spread li.is-correct .question-answer-spread-text{color:#64d8a9}
body:is([data-theme="dark"],[data-theme="aiflow"]) .question-answer-spread-bar{background:#35415f}

body[data-theme="ember"] .question-performance-row[data-answer-spread]:is(:hover,[aria-expanded="true"]){border-color:#7a4f50}
body[data-theme="navy"] .question-performance-row[data-answer-spread]:is(:hover,[aria-expanded="true"]){border-color:#864850}
body[data-theme="ember"] .question-answer-spread{border-color:#463638;background:#1a1518}
body[data-theme="navy"] .question-answer-spread{border-color:#2f364f;background:#12182a}
body[data-theme="ember"] .question-answer-spread>p,body[data-theme="ember"] .question-answer-spread li small,body[data-theme="ember"] .question-answer-spread li.is-unanswered .question-answer-spread-text{color:#bfaaa5}
body[data-theme="navy"] .question-answer-spread>p,body[data-theme="navy"] .question-answer-spread li small,body[data-theme="navy"] .question-answer-spread li.is-unanswered .question-answer-spread-text{color:#a1a9c3}
body[data-theme="ember"] .question-answer-spread li{color:#f3e3de}
body[data-theme="navy"] .question-answer-spread li{color:#e4e6ed}
body[data-theme="ember"] .question-answer-spread li.is-correct .question-answer-spread-text{color:#7fdcb0}
body[data-theme="navy"] .question-answer-spread li.is-correct .question-answer-spread-text{color:#7fdcb0}
body[data-theme="ember"] .question-answer-spread-bar{background:#3d2e30}
body[data-theme="navy"] .question-answer-spread-bar{background:#212c4e}

@media(max-width:800px){
  .question-answer-spread{padding-left:14px}
  .question-answer-spread li{grid-template-columns:minmax(0,1fr) 44px 36px;gap:6px 9px}
  .question-answer-spread-text{grid-column:1/-1}
}

/* Suspicious questions in "Úspěšnost otázek" (question_suspicion()): the box with the filter and the AI prompt, the note under a flagged question and the flagged answers in its spread. Theme tokens only; --flag is amber, red for a possibly wrong key, mixed with the theme text so it stays readable in light and dark themes. */
.question-flags,.question-flag,.question-flags-badge,.question-flags-icon,.question-answer-spread li.is-flagged{--flag:#d97706;--flag-ink:color-mix(in srgb,var(--flag) 72%,var(--t-text))}
.question-flag-key{--flag:#dc3545}
.question-flag-report{--flag-ink:var(--t-accent);flex-wrap:wrap;align-items:center}
.question-flag.question-flag-report>i{margin-top:0}
.question-flag-report form{margin-left:auto}
.question-flag-report .button{padding:5px 12px;font-size:12px}
.question-flags{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 14px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--flag) 40%,var(--t-border));border-radius:11px;background:color-mix(in srgb,var(--flag) 9%,var(--t-surface))}
.question-flags p{flex:1 1 100%;margin:0;color:var(--t-muted);font-size:12px;line-height:1.5}
.question-flags .question-flags-icon.fa-solid{color:var(--flag-ink)!important}
.question-flag{display:flex;grid-column:1/-1;gap:7px;margin:0;padding-left:32px;color:var(--t-text);font-size:12.5px;line-height:1.45}
.question-flag>i{margin-top:2px}
.question-performance-row .question-flag>i.fa-solid{color:var(--flag-ink)!important}
.question-flag b{color:var(--flag-ink)}
.question-flags-badge{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:1px 8px;border-radius:99px;background:color-mix(in srgb,var(--flag) 20%,transparent);color:var(--flag-ink);font-size:12px}
.button .question-flags-badge>i.fa-solid{color:inherit!important}
.question-answer-spread li.is-flagged .question-answer-spread-text>i{color:var(--flag-ink)!important}
.question-performance-list.is-flag-filter>:not([data-flagged]){display:none}

/* Nahlásit chybu in practice (practice.js): a quiet text button beside the answer statistics, under the actions on phones (where that line is hidden) and in the mock exam review; the dialog lists the four reasons. Theme tokens only; the doubled classes beat the light theme button colours. */
.practice-report{display:inline-flex;align-items:center;gap:7px;font-size:12px;cursor:pointer}
.practice-report-mobile{display:none;align-items:center;justify-content:center;gap:7px;font-size:14px;cursor:pointer}
body:is([data-theme],:not([data-theme])) :is(.practice-report,.practice-report-mobile):is(.practice-report,.practice-report-mobile),body:is([data-theme],:not([data-theme])) .review button.review-report.review-report.review-report.review-report,body:is([data-theme],:not([data-theme])) .practice-session .practice-next button:is(.practice-report,.practice-report-mobile):is(.practice-report,.practice-report-mobile):is(.practice-report,.practice-report-mobile):is(.practice-report,.practice-report-mobile){width:auto;min-height:0;margin:0;padding:6px 4px!important;border:0!important;border-radius:6px!important;background:none!important;box-shadow:none!important;color:var(--t-muted)!important;filter:none!important;opacity:1!important;transform:none}
body:is([data-theme],:not([data-theme])) :is(.practice-report,.practice-report-mobile):is(.practice-report,.practice-report-mobile):not(:disabled):hover,body:is([data-theme],:not([data-theme])) .review button.review-report.review-report.review-report.review-report:not(:disabled):hover,body:is([data-theme],:not([data-theme])) .practice-session .practice-next button:is(.practice-report,.practice-report-mobile):is(.practice-report,.practice-report-mobile):is(.practice-report,.practice-report-mobile):is(.practice-report,.practice-report-mobile):not(:disabled):hover{background:none!important;color:var(--t-accent)!important;text-decoration:underline;text-underline-offset:3px;transform:none}
:is(.practice-report,.practice-report-mobile):disabled{cursor:default;opacity:1}
.review .review-report{margin-top:8px}
.practice-report-slot{box-sizing:border-box;max-width:946px;min-height:34px;margin:-18px auto 18px;padding:0 8px}
body.test-wide-mode .practice-report-slot{max-width:none}
.practice-report-choices{display:grid;gap:8px;margin:4px 0 8px}
.practice-report-choices label{display:flex;align-items:center;gap:10px;margin:0;padding:11px 14px;border:1px solid var(--t-border);border-radius:11px;background:var(--t-soft);color:var(--t-text);font-size:15px;font-weight:500;text-align:left;cursor:pointer}
.practice-report-choices label:has(input:checked){border-color:var(--t-accent);background:var(--t-accent-soft);color:var(--t-accent-on-soft)}
.practice-report-choices input{flex:0 0 auto;width:18px;height:18px;margin:0;padding:0;accent-color:var(--t-accent)}
.app-choice-dialog:has(.practice-report-choices) .app-choice-primary:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:600px){
  .practice-next .practice-report-mobile{display:flex;width:100%}
}

/* Nahlášené chyby (app/views/question_reports.php) and its notice above the tiles in Moje výuka (only while some question is reported). Theme tokens only. */
.teacher-reports-notice{display:flex;align-items:center;gap:10px;margin:0 var(--teacher-dashboard-inset,0) 16px;padding:12px 16px;border:1px solid color-mix(in srgb,var(--t-accent) 35%,var(--t-border));border-radius:12px;background:var(--t-accent-soft);color:var(--t-accent-on-soft);font-size:14px;text-decoration:none}
.teacher-reports-notice:hover{border-color:var(--t-accent)}
.teacher-reports-notice>i.fa-solid{color:var(--t-accent)!important}
.teacher-reports-open{display:inline-flex;align-items:center;gap:6px;margin-left:auto;font-weight:700;white-space:nowrap}
.teacher-reports-open i{font-size:11px}
.question-reports-lead{max-width:80ch;margin:8px 0 0;color:var(--t-muted)}
.question-reports-empty{display:flex;align-items:flex-start;gap:10px;padding:18px 20px;border:1px solid var(--t-border);border-radius:14px;background:var(--t-surface);color:var(--t-text)}
.question-reports-empty>i.fa-solid{margin-top:4px;color:var(--t-accent)!important}
.question-reports-summary{margin:0 0 16px;color:var(--t-muted)}
.question-reports-test{margin:0 0 22px;padding:20px 22px;border:1px solid var(--t-border);border-radius:16px;background:var(--t-surface)}
.question-reports-test>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:6px}
.question-reports-test>header small{color:var(--t-accent);font-size:11px;font-weight:800;letter-spacing:.06em}
.question-reports-test>header h2{margin:2px 0 4px;color:var(--t-text);font-size:20px}
.question-reports-test>header p{margin:0;color:var(--t-muted);font-size:13px}
.question-reports-item{display:grid;gap:10px;padding:14px 0 4px;border-top:1px solid var(--t-border)}
.question-reports-test>header+.question-reports-item{margin-top:8px}
.question-reports-question{display:flex;align-items:flex-start;gap:9px;color:var(--t-text);font-size:15px}
.question-reports-question>span{display:grid;place-items:center;flex:0 0 23px;height:23px;border-radius:7px;background:var(--t-accent-soft);color:var(--t-accent-on-soft);font-size:11px;font-weight:800}
.question-reports-question>b{min-width:0;overflow-wrap:anywhere}
.question-reports-answers{display:grid;gap:4px;margin:0;padding:0 0 0 32px;list-style:none;color:var(--t-text);font-size:14px}
.question-reports-answers li{display:flex;gap:8px}
.question-reports-answers li>b{flex:0 0 16px;color:var(--t-muted)}
.question-reports-answers li>span{min-width:0;overflow-wrap:anywhere}
.question-reports-answers li.is-correct{color:color-mix(in srgb,var(--green) 80%,var(--t-text));font-weight:700}
.question-reports-item .question-flag>i.fa-solid{color:var(--flag-ink)!important}
.question-reports-section{display:flex;align-items:center;gap:9px;margin:26px 0 8px;color:var(--t-text);font-size:19px}
.question-reports-section>i{color:var(--t-accent)}
.question-reports-people{display:grid;gap:6px;margin:0;padding:0 0 0 32px;list-style:none;font-size:14px}
.question-reports-people li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding:7px 11px;border:1px solid var(--t-border);border-radius:9px;background:var(--t-soft);color:var(--t-text)}
.question-reports-person{min-width:0;overflow-wrap:anywhere}
.question-reports-kind{color:var(--t-accent-on-soft);font-weight:700}
.question-reports-chosen{color:var(--t-muted)}
.question-reports-people a{margin-left:auto;color:var(--t-accent)}
@media(max-width:600px){
  .question-reports-test{padding:16px}
  .question-reports-test>header{flex-direction:column}
  .question-reports-answers,.question-reports-people{padding-left:0}
  .question-reports-item .question-flag{padding-left:0}
}

/* Rows of "Úspěšnost podle testů" in Moje výuka open the test's results with "Úspěšnost otázek" open (assets/app.js, #uspesnost). */
.performance-row[data-results-href]{cursor:pointer}
.performance-row[data-results-href]:is(:hover,:focus-visible) b{text-decoration:underline;text-underline-offset:3px}
.performance-row[data-results-href]:focus-visible{outline:2px solid #7566dd;outline-offset:3px;border-radius:6px}
#questionPerformancePanel{scroll-margin-top:96px}

.results-head-actions{display:flex;align-items:center;gap:16px}
.results-head-actions .button{margin:0;white-space:nowrap}
@media(max-width:760px){
  .results-head-actions{width:100%;flex-wrap:wrap;gap:10px}
  .results-head-actions>*{flex:1 1 auto}
}

/* Safe wording corrections for tests that already have results. */
.text-repair-form{margin:0}
.text-repair-notice{display:flex;align-items:flex-start;gap:11px;width:auto;max-width:none;margin:0 0 20px;border:1px solid #d9d2a1;background:#fff8dc;color:#695916}
.text-repair-notice i{margin-top:3px}
.text-repair-question{background:#fff}
.text-repair-question .editor-question-top small{color:#7d879d;font-size:12px}
.text-repair-answers{display:grid;gap:10px}
.text-repair-answers label{margin:0}
.text-repair-answers input{margin-top:5px}
body:is([data-theme="dark"],[data-theme="aiflow"]) .text-repair-notice{border-color:#6d6131;background:#3c3521;color:#ffe6a0}
body:is([data-theme="dark"],[data-theme="aiflow"]) .text-repair-question{background:#1a2133}
body:is([data-theme="dark"],[data-theme="aiflow"]) .text-repair-question .editor-question-top small{color:#aeb9d3}

/* Lightweight hover feedback for teacher test actions and download links. */
.actions>a,.actions>.download-menu>summary,.download-menu>div a{display:inline-flex;align-items:center;border-radius:8px;transition:transform .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease}
.actions>a:hover,.actions>.download-menu>summary:hover,.download-menu>div a:hover{background:rgba(108,92,231,.1);color:#625be0;transform:translateY(-1px);box-shadow:0 5px 12px rgba(93,83,211,.12)}
body:is([data-theme="dark"],[data-theme="aiflow"]) .actions>a:hover,body:is([data-theme="dark"],[data-theme="aiflow"]) .actions>.download-menu>summary:hover,body:is([data-theme="dark"],[data-theme="aiflow"]) .download-menu>div a:hover{background:rgba(140,126,255,.14);color:#bdb5ff;box-shadow:0 5px 14px rgba(0,0,0,.18)}

/* Discreet hover feedback for the header navigation. */
.topbar nav a:not(.nav-button){display:inline-flex;align-items:center;gap:7px;transition:color .16s ease,text-shadow .16s ease}
.topbar nav a:not(.nav-button):hover{color:#625be0;text-shadow:0 0 12px rgba(108,92,231,.22)}
body:is([data-theme="dark"],[data-theme="aiflow"]) .topbar nav a:not(.nav-button):hover{background:transparent;color:#a993ff;text-shadow:0 0 14px rgba(151,139,255,.32)}
body[data-theme="dark"] :is(td a,.text-link){color:#edf0ff;transition:color .16s ease,text-shadow .16s ease}
body[data-theme="dark"] :is(td a,.text-link):hover{color:#a993ff;text-shadow:0 0 12px rgba(151,139,255,.28)}
body[data-theme="dark"] label:where(:not(.answer)),body[data-theme="dark"] .editor-question-top b{color:#c6cee6}
body[data-theme="dark"] .danger-button:hover{background:#5a2d3a;color:#ffd7dc}
body[data-theme="dark"] .copy-button{background:linear-gradient(115deg,#a993ff,#638cff);color:#fff;box-shadow:0 8px 18px rgba(89,89,220,.22)}
body[data-theme="dark"] .copy-button:hover{background:linear-gradient(115deg,#b7a5ff,#7599ff);color:#fff}
body[data-theme="dark"] .info-row{color:var(--t-muted)}
body[data-theme="dark"] .result-hero .eyebrow{color:var(--purple)}
body[data-theme="dark"] .result-hero h2{color:#b4a5ff}
body[data-theme="dark"] .hero-art{border:1px solid var(--t-border)}
body[data-theme="dark"] :is(.mock-card,.floating-card){border:1px solid var(--t-border)}
body[data-theme="dark"] .mock-answer{border-color:var(--t-border);color:#dce2f2}
body[data-theme="dark"] .mock-answer.active{border-color:#8f7ff0;background:#302d55;color:#d7d2ff}
body[data-theme="dark"] .home-view-switch{box-shadow:inset 0 0 0 1px var(--t-border)}
body[data-theme="dark"] .home-view-button.is-active{box-shadow:inset 0 0 0 1px #7d6fd6}
body[data-theme="dark"] .practice-mix-link{border-color:var(--t-border)}

/* Keep question statistics with the next-question control. */
.practice-next{align-items:center;justify-content:space-between;gap:16px}
.practice-next .practice-question-stats{margin:0}
@media(max-width:600px){
  .practice-next{align-items:stretch;flex-direction:column}
  .practice-next .practice-question-stats,.practice-next button{width:100%}
}

/* Compact answer state shown beside question-wide success statistics. */
.practice-next-meta{display:flex;align-items:center;flex-wrap:wrap;gap:9px}
.practice-next-meta .practice-question-stats{height:46px;box-sizing:border-box;margin:0;padding:0 16px}
.practice-answer-result{display:inline-flex;align-items:center;gap:7px;width:max-content;height:46px;box-sizing:border-box;padding:0 16px;border:1px solid transparent;border-radius:999px;font-size:11px;font-weight:650}
.practice-answer-result.correct{border-color:#71cba5;background:#e8f8f0;color:#147553}
.practice-answer-result.wrong{border-color:#e595a2;background:#fff0f2;color:#bd4053}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-answer-result.correct{border-color:#378969;background:#193e35;color:#a6e8c8}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-answer-result.wrong{border-color:#914b59;background:#482832;color:#ffb3be}
@media(max-width:600px){
  .practice-next-meta{justify-content:center}
  .practice-next-meta .practice-question-stats{width:auto}
}

/* Replacing questions must not let browser scroll anchoring move the viewport. */
.practice-session,.practice-content{overflow-anchor:none}

/* Emphasise the active training question. */
.practice-question-title{font-weight:700}

/* Keep the main test settings together at the top of the editor. */
.editor-config-row{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(130px,.6fr) minmax(160px,.8fr) minmax(255px,1.4fr) minmax(120px,.55fr);align-items:end;gap:16px;margin-bottom:16px}
.editor-config-row label{margin-bottom:0}
.editor-config-row .editor-training-toggle{min-height:45px;margin-top:0;padding:11px 12px;border:1px solid #dce0ed;border-radius:9px;background:#fff;white-space:nowrap}
@media(max-width:1100px){
  .editor-config-row{grid-template-columns:repeat(3,minmax(180px,1fr))}
}
@media(max-width:700px){
  .editor-config-row{grid-template-columns:1fr}
  .editor-config-row label{margin-bottom:0}
}

body:is([data-theme="dark"],[data-theme="aiflow"]) .editor-config-row .editor-training-toggle{border-color:#444f70;background:#161c2c;color:#c6cee6}

/* Zapnuté „Povolit trénink“ v editoru je zvýrazněné ve všech motivech (Noční žár, Modrá noc a Tyrkysový mají vlastní pravidla níže); barvy podle přepínače tréninku v nastavení hodnocení. */
.editor-config-row .editor-training-toggle:has(input:checked){border-color:#776ef0;background:#f0eeff;color:#393184}
body[data-theme="colorful"] .editor-config-row .editor-training-toggle:has(input:checked){border-color:#b951b5;background:#fff0fa;color:#5d2468}
body[data-theme="dark"] .editor-config-row .editor-training-toggle:has(input:checked){border-color:#8277d8;background:#282249;color:#fff}

/* Current question counter for sequential tests. */
.sequential-question-counter{align-items:center;gap:6px;width:max-content;margin:0 0 10px;padding:6px 10px;border:1px solid #d9d7f8;border-radius:999px;background:#f1f0ff;color:#5b55c6;font-size:12px;font-weight:700}
.sequential-question-counter i{color:#756ce0}
.sequential-question-counter b{font-variant-numeric:tabular-nums}
.sequential-question-counter span{color:inherit;font-weight:600}
body:is([data-theme="dark"],[data-theme="aiflow"]) .sequential-question-counter{border-color:#4b4b82;background:#29294b;color:#c8c2ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .sequential-question-counter i{color:#aaa2ff}

.sequential-question-counter{display:flex;margin-left:auto}

/* Clear, focused prompt when a sequential answer has not been selected. */
.answer-required-modal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:20px;background:rgba(9,12,24,.7);backdrop-filter:blur(4px)}
.answer-required-dialog{width:min(100%,410px);padding:30px;border:1px solid #e6a1aa;border-radius:20px;background:#fff;box-shadow:0 24px 72px rgba(0,0,0,.3);text-align:center}
.answer-required-icon{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 14px;border-radius:15px;background:#fff0f2;color:#c64658;font-size:23px}
.answer-required-dialog h2{margin:0 0 8px;font-size:24px;color:#39273b}
.answer-required-dialog p{margin:0 0 22px;color:#6f6170}
.answer-required-dialog .button{min-width:150px}
body:is([data-theme="dark"],[data-theme="aiflow"]) .answer-required-dialog{border-color:#814b58;background:#242b40}
body:is([data-theme="dark"],[data-theme="aiflow"]) .answer-required-icon{background:#482832;color:#ffb0ba}
body:is([data-theme="dark"],[data-theme="aiflow"]) .answer-required-dialog h2{color:#f1f3ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .answer-required-dialog p{color:#bbc4dc}

/* Sequential-test controls mirror the compact training controls. */
.test-heading .sequential-question-counter{align-self:flex-end;margin:0 0 5px}
.question-list.sequential .submit-test{display:flex;margin:20px 0 30px auto}
.question-list.sequential .submit-test:not(.sequential-submit-final){border:0!important;border-radius:10px!important;padding:11px 15px!important;background:#625be0!important;color:#fff!important;font-family:inherit!important;box-shadow:none!important}
.question-list.sequential .submit-test:not(.sequential-submit-final):hover{background:#554ed0!important;filter:none;transform:none}
.question-list.sequential .answer{transition:border-color .17s ease,background .17s ease,transform .17s ease}
.question-list.sequential .answer:hover{border-color:#9e96e9;background:#f8f8ff;transform:translateY(-1px)}
body:is([data-theme="dark"],[data-theme="aiflow"]) .question-list.sequential .answer:hover{border-color:#8277d8;background:#222b43}

.question-list.sequential .submit-test.sequential-submit-final{background:linear-gradient(115deg,#a18bff,#6388f7);box-shadow:0 8px 18px rgba(89,89,220,.22)}
.question-list.sequential .submit-test.sequential-submit-final:hover{background:linear-gradient(115deg,#aa96ff,#7092ff);box-shadow:0 10px 20px rgba(89,89,220,.28)}

/* Primary navigation uses the shared lavender-to-blue action style. */
.test-heading .sequential-question-counter{transform:translateY(14px)}
.question-list.sequential .submit-test,.practice-next button{border:0!important;border-radius:10px!important;padding:13px 19px!important;background:linear-gradient(115deg,var(--purple),var(--blue))!important;color:#fff!important;font-family:inherit!important;box-shadow:0 8px 18px rgba(89,89,220,.22)!important}
.question-list.sequential .submit-test:hover,.practice-next button:hover{background:linear-gradient(115deg,var(--purple),var(--blue))!important;box-shadow:0 10px 20px rgba(89,89,220,.28)!important;filter:brightness(1.05);transform:translateY(-1px)}

/* Reading and fullscreen controls available during tests and training. */
.test-reading-controls{display:flex;align-items:center;justify-content:flex-end;gap:7px;width:max-content;max-width:100%;margin:0 0 14px auto;color:#71809e;font-size:12px;font-weight:700}
.test-reading-controls>span{margin-right:2px}
.test-reading-controls button{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;border:1px solid #d9dff0;border-radius:9px;background:#f8f9ff;color:#5454ba;font-family:inherit;cursor:pointer;transition:.16s ease}
.test-reading-controls button:hover:not(:disabled){border-color:#aaa4ed;background:#eeefff;transform:translateY(-1px)}
.test-reading-controls button:disabled{opacity:.45;cursor:default}
.test-reading-controls .test-fullscreen-toggle{gap:7px;padding:0 11px;margin-left:4px;color:#4f4cb2}
.test-reading-controls .test-fullscreen-toggle i{font-size:12px}
body:is([data-theme="dark"],[data-theme="aiflow"]) .test-reading-controls{color:#b4bfd8}
body:is([data-theme="dark"],[data-theme="aiflow"]) .test-reading-controls button{border-color:#465575;background:#242d46;color:#fff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .test-reading-controls button:hover:not(:disabled){border-color:#8277d8;background:#303a58;color:#fff}
@media(max-width:600px){
  .test-reading-controls{width:100%;justify-content:flex-end;flex-wrap:wrap}
  .test-reading-controls>span{display:none}
  .test-reading-controls .test-fullscreen-toggle{margin-left:0}
}

.question-list .answer{font-size:var(--testio-answer-font-size,16px)}
.practice-option{font-size:var(--testio-answer-font-size,16px)}

/* Keep sequential-test controls with the heading; focus mode survives navigation. */
.test-heading-actions{display:flex;align-items:center;gap:14px;margin-left:auto}
.test-heading-actions .test-reading-controls{margin:0}
.test-heading-actions .sequential-question-counter{margin:0;transform:none}

.test-heading:has(.test-heading-actions){display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:start;gap:13px 18px}
.test-heading:has(.test-heading-actions)>div:first-child{display:contents}
.test-heading:has(.test-heading-actions) .eyebrow{grid-column:1;grid-row:1;margin:0;align-self:center}
.test-heading:has(.test-heading-actions) h1{grid-column:1/-1;grid-row:2;width:100%}
.test-heading:has(.test-heading-actions) .test-heading-actions{grid-column:2;grid-row:1}

.practice-session-head .test-reading-controls{display:flex!important;flex:0 0 auto;flex-direction:row!important;flex-wrap:nowrap!important;width:max-content!important;margin:0 12px 0 auto}

body.sequential-focus-mode .shell{width:100%;max-width:none;min-height:100vh;padding:26px clamp(20px,5vw,76px)}
body.sequential-focus-mode .test-heading,body.sequential-focus-mode .question-list{max-width:924px;margin-left:auto;margin-right:auto}

.test-reading-controls .question-weight-toggle{margin-right:12px}
.testio-regular-question-font .question-card legend,.testio-regular-question-font .practice-question-title{font-weight:400}

.question-card legend,.practice-question-title{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:22px!important;letter-spacing:normal}

.question-card .answer,.question-card .answer span,.practice-option,.practice-option span{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:400!important;letter-spacing:normal}

.question-card legend span{font-weight:800}

.practice-question-number{display:none}
.practice-session{margin-top:70px}

.practice-content>.practice-next-meta{margin-top:20px}

.test-reading-controls .test-explanation-toggle{margin-right:0;color:#e1a72e}

.test-reading-controls .test-explanation-toggle:hover:not(:disabled){border-color:#d9ad4a;background:#fff7dc;color:#b77800}

.question-explanation-modal{background:rgba(7,11,25,.76)}
.question-explanation-modal.is-tap-to-close{cursor:pointer}

.question-explanation-dialog{width:min(100%,860px);padding:40px 48px;text-align:left;overflow:hidden}

.question-explanation-dialog:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,#f1bd45,#ffdc76,#9e8bff)}

.question-explanation-dialog .test-info-icon{margin:0 0 16px;background:linear-gradient(145deg,#fff0c3,#ffe283);color:#a66b00;box-shadow:0 9px 22px rgba(224,166,39,.2)}

.question-explanation-kicker{margin:0 0 7px!important;color:#a67516!important;font-size:12px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}

.test-info-dialog.question-explanation-dialog h2{margin:0 38px 18px 0;text-align:left;font-size:30px;letter-spacing:-.6px}

.question-explanation-dialog .question-explanation-text{max-height:min(52vh,480px);margin:0 0 28px;overflow:auto;color:#3f4d6b;font-size:21px;line-height:1.78;text-align:justify;white-space:pre-line}

.question-explanation-dialog .test-info-confirm{min-width:156px}

body:is([data-theme="dark"],[data-theme="aiflow"]) .test-reading-controls .test-explanation-toggle{color:#ffd56b}

body:is([data-theme="dark"],[data-theme="aiflow"]) .test-reading-controls .test-explanation-toggle:hover:not(:disabled){border-color:#c69228;background:#45391d;color:#ffe09b}

.test-reading-controls .test-explanation-toggle.is-attention{animation:testio-explanation-pulse 1.15s ease-in-out infinite}

@keyframes testio-explanation-pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(239,183,54,.1);transform:scale(1)}
  50%{box-shadow:0 0 0 7px rgba(239,183,54,.18);transform:scale(1.08)}
}

body:is([data-theme="dark"],[data-theme="aiflow"]) .question-explanation-dialog{background:#1e2740}

body:is([data-theme="dark"],[data-theme="aiflow"]) .question-explanation-dialog .test-info-icon{background:linear-gradient(145deg,#51452a,#3d321b);color:#ffda6b}

body:is([data-theme="dark"],[data-theme="aiflow"]) .question-explanation-kicker{color:#f0c65e!important}

body:is([data-theme="dark"],[data-theme="aiflow"]) .question-explanation-dialog .question-explanation-text{color:#d5dff7}

.test-info-dialog.question-explanation-dialog{width:min(calc(100vw - 40px),860px);padding:40px 48px}

.question-list,.test-heading-all,.test-heading:has(.sequential-question-counter){max-width:924px}
.practice-session{max-width:946px}

.test-reading-controls .test-info-toggle{margin-right:5px}
.test-info-modal{position:fixed;inset:0;z-index:1100;display:grid;place-items:center;padding:20px;background:rgba(10,14,28,.66);backdrop-filter:blur(5px)}
.test-info-dialog{position:relative;width:min(100%,500px);padding:30px;border:1px solid #dfe4f5;border-radius:20px;background:#fff;color:#18213b;box-shadow:0 24px 70px rgba(11,15,30,.3);text-align:center}
.test-info-icon{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 14px;border-radius:15px;background:#eff0ff;color:#625be0;font-size:23px}
.test-info-dialog h2{margin:0 28px 10px;font-size:25px;letter-spacing:-.5px}
.test-info-dialog p{margin:0 auto 24px;color:#687592;line-height:1.6}
.test-info-confirm{min-width:145px}
.test-info-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border:0;border-radius:9px;background:#eef1ff;color:#5454ba;cursor:pointer}
body:is([data-theme="dark"],[data-theme="aiflow"]) .test-info-dialog{border-color:#3d4b70;background:#20283d;color:#edf1ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .test-info-icon{background:#303a58;color:#c4baff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .test-info-dialog p{color:#bdc7df}
body:is([data-theme="dark"],[data-theme="aiflow"]) .test-info-close{background:#33405f;color:#dbe4ff}

@media(max-width:700px){
  .test-heading-actions{width:100%;margin-top:10px}
  .practice-session-head{flex-wrap:wrap}
  .practice-session-head .test-reading-controls{width:100%;justify-content:flex-end;margin-top:7px}
  body.sequential-focus-mode .shell{padding:18px}
}

/* Form typography matches training answers, with stronger field labels. */
input,textarea,select{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;font-weight:400;line-height:1.55;letter-spacing:normal}

form label:not(.answer),form .editor-tags legend{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:15px;font-weight:700;letter-spacing:normal}

/* Keep mobile explanations and navigation within the visible viewport. */
.practice-next-actions{display:flex;align-items:stretch;justify-content:flex-end;gap:10px}

.practice-next-actions .practice-mobile-explanation{display:none}

@media(max-width:600px){
  .topbar{height:auto;min-height:63px;padding:10px 12px;flex-wrap:wrap;gap:8px}
  .topbar>div{min-width:0;max-width:100%;flex-wrap:wrap;gap:8px}
  .topbar .brand{font-size:19px;gap:6px}
  .topbar .brand-name{display:none}
  .topbar #themeSelect{width:125px!important;margin-left:0!important}
  .topbar nav{flex-wrap:wrap;gap:8px}
  .topbar nav a[href="?r=login"]{display:none}
  .topbar:has([data-logout]){justify-content:flex-start;row-gap:0}
  .topbar:has([data-logout]) .user-name{margin-left:auto}
  .topbar:has([data-logout]) nav{display:contents}
  .topbar:has([data-logout]) nav .nav-button{order:1;margin-left:auto}
  .topbar:has([data-logout])::before{content:"";order:2;flex-basis:100%}
  .topbar:has([data-logout]) nav>:not(.nav-button){order:3;margin-top:8px}
  .practice-session-head .test-reading-controls{width:100%!important;max-width:100%;flex-wrap:wrap!important;margin:0;gap:6px}
  .practice-session-head .test-reading-controls .test-explanation-toggle,.practice-session-head .test-reading-controls .practice-help-toggle,.practice-session-head .test-reading-controls .test-info-toggle{display:none}
  .test-reading-controls .test-fullscreen-toggle span{display:none}
  .test-reading-controls .question-weight-toggle{margin-right:0}
  .practice-mode-label{max-width:100%;white-space:normal}
  .practice-session .practice-next-meta{display:none}
  .practice-report-slot{display:none}
  .practice-session .practice-question-title{font-size:18px!important;line-height:1.4}
  .practice-next-actions{width:100%}
  .practice-next-actions>button{min-width:0;flex:1}
  .question-explanation-modal{padding:12px}
  .test-info-dialog.question-explanation-dialog{display:flex;flex-direction:column;width:100%;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);min-height:0;padding:20px;overflow:hidden}
  .question-explanation-dialog .test-info-icon{flex-shrink:0;width:36px;height:36px;font-size:18px;margin:0 0 10px}
  .question-explanation-dialog .question-explanation-kicker{flex-shrink:0;font-size:10px;margin:0 36px 6px 0!important}
  .test-info-dialog.question-explanation-dialog h2{flex-shrink:0;margin:0 28px 12px 0;font-size:20px;line-height:1.25}
  .question-explanation-dialog .question-explanation-text{flex:1 1 auto;min-height:0;max-height:none;margin:0 0 16px;font-size:16px;line-height:1.5;text-align:left;overflow:auto;overflow-wrap:anywhere;overscroll-behavior:contain}
  .question-explanation-dialog .test-info-confirm{flex-shrink:0;min-height:44px;width:100%}
}

/* Compact mobile question header in tests and training. */
@media(max-width:600px){
  .test-reading-controls,.practice-session-head .test-reading-controls{display:none!important}
  .test-heading .eyebrow{display:none}
  .test-heading,.test-heading:has(.test-heading-actions){display:flex;justify-content:flex-end;padding:16px 0 12px}
  .test-heading-actions{width:auto;margin-top:0}
  .question-card legend{font-size:18px!important;line-height:1.4}
}

/* Hide secondary header actions on mobile. */
@media(max-width:760px){
  .topbar .test-elapsed,.topbar .top-submit-test,
  .topbar nav a[data-grading-link],.topbar nav a[href="?r=login"]{display:none!important}
}

/* Zkouška nanečisto: na mobilu (kde se Odevzdat v horní liště skrývá) je malé Odevzdat vpravo v hlavičce karty. */
.practice-exam-submit-head{display:none}
@media(max-width:760px){
  .practice-session .practice-session-head:has(.practice-exam-submit-head){flex-direction:row;align-items:center}
  .practice-session .practice-session-head .practice-exam-submit-head{display:inline-flex;flex:0 0 auto;align-items:center;gap:7px;min-height:0;margin:0 0 0 auto;padding:7px 12px;border-radius:9px;font-size:13px;font-weight:600}
}

/* Explanation font controls stay visible in the dialog, including on mobile. */
.question-explanation-toolbar{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-bottom:16px}

.question-explanation-toolbar .test-info-icon{width:42px;height:42px;margin:0;border-radius:12px;font-size:19px}

.question-explanation-toolbar .question-explanation-kicker{min-width:0;margin:0 auto 0 4px!important;font-size:13px;letter-spacing:.12em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.question-explanation-font-controls{display:flex;gap:6px}

.question-explanation-font-controls button,.question-explanation-toolbar .test-info-close{display:inline-flex;align-items:center;justify-content:center;position:static;width:38px;height:38px;border:1px solid #d9dff0;border-radius:8px;background:#eef1ff;color:#5454ba;font:700 14px/1 Inter,ui-sans-serif,system-ui,sans-serif;cursor:pointer}

.question-explanation-font-controls button:disabled{opacity:.4;cursor:default}

body:is([data-theme="dark"],[data-theme="aiflow"]) .question-explanation-font-controls button{border-color:#465575;background:#33405f;color:#dbe4ff}

@media(max-width:600px){
  .question-explanation-toolbar{gap:6px;margin-bottom:12px}
  .question-explanation-toolbar .test-info-icon{width:34px;height:34px;margin:0;border-radius:10px;font-size:16px}
  .question-explanation-toolbar .question-explanation-kicker{margin-left:2px!important;font-size:10px;letter-spacing:.05em}
}

@media(max-width:430px){
  .question-explanation-kicker-long{display:none}
}

/* Selected test answers remain highlighted until another option is chosen. */
.question-list .answer{transition:border-color .17s ease,background-color .17s ease,box-shadow .17s ease}

/* The radio of a real test answer is hidden but stays in the form (it is still checked by a click on the row, sent with the test and reachable from the keyboard): the highlighted row and letter show the choice, as in practice. */
.question-list .answer{position:relative}
.question-list .answer input[type="radio"]{position:absolute!important;top:50%;left:0;width:1px!important;height:1px!important;margin:0!important;opacity:0!important;pointer-events:none}
.question-list .answer:has(input[type="radio"]:focus-visible){outline:2px solid var(--t-accent);outline-offset:2px}

.question-list .question-card .answer:has(input[type="radio"]:checked){border-color:#8b75e6;background:#eee9ff;box-shadow:inset 3px 0 0 #8b75e6}

.question-list .question-card .answer:has(input[type="radio"]:checked) b{background:#d9ceff;color:#51419c}

body:is([data-theme="dark"],[data-theme="aiflow"]) .question-list .question-card .answer:has(input[type="radio"]:checked){border-color:#a993ff;background:#373052;box-shadow:inset 3px 0 0 #a993ff}

body:is([data-theme="dark"],[data-theme="aiflow"]) .question-list .question-card .answer:has(input[type="radio"]:checked) b{background:#62508e;color:#fff}

/* Align all-at-once test controls with the question count and question column. */
.test-heading-all{align-items:center;gap:16px;flex-wrap:wrap}

.test-heading-all .eyebrow{margin:0}

.test-heading-toolbar{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:14px;margin-left:auto}

.test-heading-toolbar .test-reading-controls{margin:0}

.test-heading-toolbar .pill{flex-shrink:0}

.test-heading-toolbar .sequential-question-counter{align-self:center;flex-shrink:0;margin:0;transform:none}

/* Keep practice navigation available before answering. */
.practice-next{min-height:46px}

.practice-next-actions{flex-shrink:0;margin-left:auto}

.practice-next button:disabled{opacity:.45;cursor:default;filter:none!important;transform:none!important;box-shadow:none!important}

.practice-next .practice-unknown{border:1px solid #d9dff0!important;background:#eef0ff!important;color:#5251bf!important;box-shadow:none!important}

body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-next .practice-unknown{border-color:#465575!important;background:#303a58!important;color:#dbe2ff!important}

.practice-option.is-revealed,.practice-answer-result.unknown{border-color:#d9b43b;background:#fff3bf;color:#755600}

.practice-option.is-revealed b{background:#e6bd36;color:#392b00}

body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-option.is-revealed,body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-answer-result.unknown{border-color:#b99838;background:#51451f;color:#ffe59a}

body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-option.is-revealed b{background:#d7b33c;color:#302500}

.practice-option.is-explanation-link{cursor:pointer}

.practice-option.is-next-link{cursor:pointer}

.practice-option.is-wrong.is-next-link:hover{border-color:#e595a2;background:#fff0f2;transform:none}

body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-option.is-wrong.is-next-link:hover{border-color:#914b59;background:#482832}

.practice-option.is-correct.is-explanation-link:hover{border-color:#71cba5;background:#e8f8f0;transform:none}

body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-option.is-correct.is-explanation-link:hover{border-color:#378969;background:#193e35}

.practice-option.is-revealed.is-explanation-link:hover{border-color:#d9b43b;background:#fff3bf;transform:none}

body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-option.is-revealed.is-explanation-link:hover{border-color:#b99838;background:#51451f}

.practice-option.is-explanation-link:focus-visible{outline:2px solid #d9b43b;outline-offset:4px}

/* Make selected and evaluated answers equally clear in the light theme. */
body:not([data-theme="dark"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .question-list .question-card .answer:has(input[type="radio"]:checked),body:not([data-theme="dark"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .question-list .question-card .answer.is-selected-answer{border-color:#8068dc;background:#e5deff;box-shadow:inset 4px 0 0 #8068dc}
body:not([data-theme="dark"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .question-list .question-card .answer:has(input[type="radio"]:checked) b,body:not([data-theme="dark"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .question-list .question-card .answer.is-selected-answer b{background:#d1c4ff;color:#493493}
body:not([data-theme="dark"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .practice-option.is-correct{border-color:#5fbd92!important;background:#dff7eb!important;color:#126f50!important}
body:not([data-theme="dark"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .practice-option.is-correct b{background:#159266!important;color:#fff!important}
body:not([data-theme="dark"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .practice-option.is-wrong{border-color:#df7f91!important;background:#ffe1e6!important;color:#b6374e!important}
body:not([data-theme="dark"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .practice-option.is-wrong b{background:#d95466!important;color:#fff!important}
body:not([data-theme="dark"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .practice-option.is-revealed{border-color:#caa22b!important;background:#ffefaa!important;color:#725400!important}
body:not([data-theme="dark"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .practice-option.is-revealed b{background:#e6bd36!important;color:#392b00!important}

/* Compact mobile result summary: percentage, points, then grade. */
.test-info-dialog.practice-help-dialog{width:min(100%,1200px);max-height:calc(100dvh - 32px);overflow:auto;text-align:left;padding:26px}

.practice-help-dialog h2{margin:0 32px 14px 0;font-size:26px}

.practice-help-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}

.practice-help-legend p{display:flex;align-items:flex-start;gap:12px;margin:0;padding:13px 15px;border:1px solid;border-radius:12px;font-size:16px;line-height:1.5}

.practice-help-legend p>i{margin-top:4px;font-size:18px}

.practice-help-dialog strong{display:block;margin-bottom:3px}

.practice-help-legend .practice-help-correct{border-color:#71cba5;background:#e8f8f0;color:#147553}

.practice-help-legend .practice-help-wrong{border-color:#e595a2;background:#fff0f2;color:#bf4054}

.practice-help-legend .practice-help-unknown{border-color:#d9b43b;background:#fff3bf;color:#755600}

body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-help-correct{border-color:#378969;background:#193e35;color:#a6e8c8}

body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-help-wrong{border-color:#914b59;background:#482832;color:#ffb3be}

body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-help-unknown{border-color:#b99838;background:#51451f;color:#ffe59a}

.practice-help-tips{display:grid;grid-template-columns:1fr 1fr;gap:14px 32px;margin-bottom:18px}

.practice-help-tip{display:flex;align-items:flex-start;gap:12px;margin:0}
.practice-help-tip-wide{grid-column:1/-1}

.practice-help-tip>i{flex:0 0 20px;margin-top:4px;color:#c79726;font-size:18px}

.practice-help-tip p{margin:0;font-size:16px;line-height:1.5}

.practice-help-tip kbd{font:inherit;font-weight:650;padding:1px 6px;border:1px solid #8992a8;border-radius:5px;white-space:nowrap}

.practice-help-dialog .test-info-confirm{display:flex;width:max-content;max-width:100%;margin:6px auto 0}

@media(max-width:600px){
  .test-info-dialog.practice-help-dialog{padding:22px 18px}
  .practice-help-dialog h2{font-size:23px}
  .practice-help-legend,.practice-help-tips{grid-template-columns:1fr}
  .practice-help-tips{gap:14px}
}

@media(max-width:600px){
  .result-hero{flex-direction:column;gap:20px;margin:24px 0;padding:28px 20px;text-align:center}
  .result-hero>.score-ring{width:125px;height:125px;flex:0 0 125px}
  .result-hero>.score-ring:before{width:98px;height:98px}
  .result-hero>.score-ring span{font-size:24px}
  .result-hero>div:not(.score-ring){width:100%;min-width:0}
  .result-hero>div:not(.score-ring)>h1,.result-hero>div:not(.score-ring)>p{display:none}
  .result-hero .result-score-line{flex-direction:column;gap:14px}
  .result-hero .result-score-line h2{font-size:26px}
  .result-hero .grade-result{max-width:100%;font-size:16px}
}

/* Teacher dashboard: compact overview and contextual actions. */
.teacher-wide-layout .shell{max-width:1600px;width:100%;padding:0 clamp(18px,3vw,48px) 60px}

.teacher-workspace{--teacher-surface:#fff;--teacher-soft:#f5f6fc;--teacher-border:#dfe4f0;--teacher-text:#25304b;--teacher-muted:#73809b;--teacher-hover:#f0f2fc;padding-top:32px}

body:is([data-theme="dark"],[data-theme="aiflow"]) .teacher-workspace{--teacher-surface:#20263a;--teacher-soft:#1a2032;--teacher-border:#35415e;--teacher-text:#e8edff;--teacher-muted:#a5b1ca;--teacher-hover:#29324b}

.teacher-workspace [hidden]{display:none!important}

.teacher-workspace .dashboard-head{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:24px;margin:0 0 24px;padding:0}

.teacher-workspace .dashboard-head h1{margin:0 0 6px;font-size:30px;letter-spacing:-.8px;line-height:1.2}

.teacher-workspace .teacher-page-description{margin:0;color:var(--teacher-muted);font-size:14px}

.teacher-workspace .dashboard-create-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px}

.teacher-workspace .dashboard-create-actions>.button{margin:0;padding:11px 17px;gap:8px;font-size:14px}

.teacher-workspace .stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;width:100%;margin:0 0 28px}

.teacher-workspace .stat-grid>div{padding:15px 18px;border:1px solid var(--teacher-border);border-radius:12px;background:var(--teacher-surface);box-shadow:none;text-align:left;min-width:0}

.teacher-workspace .stat-grid small{display:block;color:var(--teacher-muted);font-size:12px;margin-bottom:5px}

.teacher-workspace .stat-grid b{display:block;color:var(--teacher-text);font-size:26px;line-height:1.2;letter-spacing:-.5px;font-variant-numeric:tabular-nums}

.teacher-workspace .stat-grid .training-stat b{color:#7f78e9}

body:is([data-theme="dark"],[data-theme="aiflow"]) .teacher-workspace .stat-grid .training-stat b{color:#b5aaff}

.teacher-list-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 12px}

.teacher-list-heading>div:first-child{display:flex;align-items:center;gap:12px}

.teacher-list-heading h2{margin:0;font-size:20px;letter-spacing:-.3px}

.teacher-list-heading span{padding:3px 9px;border-radius:7px;background:var(--teacher-soft);color:var(--teacher-muted);font-size:12px}

.teacher-workspace .test-order-button{padding:8px 11px;font-size:12px;gap:7px;background:transparent;border:1px solid var(--teacher-border);color:var(--teacher-muted);box-shadow:none}

.teacher-workspace .test-order-button:disabled{opacity:.5;cursor:not-allowed}

/* Upravit pořadí má výšku tlačítek filtrů (Filtrovat, Zrušit filtry) a od filtrů ho dělí stejná mezera jako prvky filtru. */
.teacher-workspace .test-order-button{min-height:39px}
.teacher-workspace .teacher-test-toolbar{column-gap:10px}

.teacher-workspace .teacher-test-toolbar{display:flex;flex-wrap:wrap;align-items:center;min-height:76px;margin:0;padding:15px 18px;border:1px solid var(--teacher-border);border-bottom:0;border-radius:14px 14px 0 0;background:var(--teacher-surface)}

.teacher-workspace .teacher-test-toolbar .filters{display:flex;flex:1 1 640px;flex-direction:row;align-items:center;gap:10px;width:auto;margin:0;padding:0;background:transparent;border:0}

.teacher-workspace .teacher-test-toolbar .filters input[name="q"]{flex:1 1 320px;min-width:160px;width:auto}

.teacher-workspace .teacher-test-toolbar .filters select[name]{flex:0 1 190px;min-width:140px;width:auto}

.teacher-workspace .filters input,.teacher-workspace .filters select{height:42px;margin:0;padding:9px 12px;border:1px solid var(--teacher-border);border-radius:8px;background:var(--teacher-soft);color:var(--teacher-text);font-size:13px}

.teacher-workspace .filters button{flex-shrink:0;margin:0;padding:10px 13px;font-size:13px;white-space:nowrap}

.teacher-workspace .teacher-test-bulk-actions{display:flex;flex:1 1 640px;flex-wrap:wrap;align-items:center;width:auto;gap:10px}

.teacher-workspace .teacher-selection{display:flex;align-items:center;gap:12px;margin-right:auto;white-space:nowrap}

.teacher-workspace .teacher-selection strong{font-size:14px;color:var(--teacher-text)}

.teacher-workspace .teacher-clear-selection{padding:5px 7px;border:0;background:transparent;color:var(--teacher-muted);font-size:12px;text-decoration:underline;cursor:pointer}

.teacher-workspace .bulk-test-actions{display:flex;flex-wrap:wrap;gap:8px}

.teacher-workspace .teacher-test-bulk-actions .button{padding:9px 11px;margin:0;gap:7px;font-size:12px;white-space:nowrap}

/* Připnuté testy: pin button next to the title, pinned rows on top of the table (also outside the filter) under a "Připnuté" group heading, the rest under "Ostatní testy" (theme tokens only). */
.teacher-workspace td b:has(>.teacher-pin-toggle){display:flex;align-items:flex-start;gap:4px}
.teacher-workspace :is(.teacher-pin-toggle,.teacher-questions-toggle){display:inline-grid;flex:0 0 26px;place-items:center;width:26px;height:26px;margin:-3px 0 0;padding:0;border-radius:7px;box-shadow:none;font-size:12px;opacity:.6;cursor:pointer}
.teacher-workspace .teacher-pin-toggle i{transform:rotate(45deg)}
.teacher-workspace .teacher-pin-toggle:is(:hover,:focus-visible,.is-pinned),.teacher-workspace .teacher-questions-toggle:is(:hover,:focus-visible){opacity:1}
.teacher-workspace .teacher-pin-toggle.is-pinned i{transform:none}
.teacher-workspace tr.is-pinned td:first-child{box-shadow:inset 3px 0 0 var(--t-accent)}
.teacher-workspace .table-wrap tbody tr[hidden],.teacher-workspace .teacher-empty[hidden]{display:none}
.teacher-workspace .teacher-test-table tbody tr.teacher-group-row,.teacher-workspace .teacher-test-table tbody tr.teacher-group-row:hover{background:var(--t-soft)}
.teacher-workspace .teacher-test-table tbody tr.teacher-group-row>td{padding:9px 16px;border-top:1px solid var(--t-border);border-bottom:1px solid var(--t-border);background:transparent;color:var(--t-muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-align:left;text-transform:uppercase;cursor:default}
.teacher-workspace .teacher-test-table tbody tr.teacher-group-row[data-group="pinned"]>td{box-shadow:inset 3px 0 0 var(--t-accent);color:var(--t-accent)}
.teacher-workspace .teacher-group-row span{position:sticky;left:16px;display:inline-flex;align-items:center;gap:8px}
.teacher-workspace .teacher-group-row b{padding:1px 8px;border-radius:999px;background:var(--t-accent-soft);color:var(--t-accent-on-soft);font-size:11px;letter-spacing:0}
.teacher-workspace .teacher-group-row small{color:var(--t-muted);font-size:11px;font-weight:500;letter-spacing:0;text-transform:none}
@media(hover:hover){
  .teacher-workspace tr:not(:hover) .teacher-pin-toggle:not(.is-pinned,:focus-visible),.teacher-workspace tr:not(:hover) .teacher-questions-toggle:not(:focus-visible){opacity:0}
}

.teacher-workspace .table-wrap{margin:0;border:1px solid var(--teacher-border);border-radius:0 0 14px 14px;background:var(--teacher-surface);overflow:auto}

.teacher-workspace .teacher-test-table{width:100%;min-width:1000px;border-collapse:collapse;table-layout:auto}

.teacher-workspace .teacher-test-table th{padding:13px 12px;background:var(--teacher-soft);color:var(--teacher-muted);font-size:10px;letter-spacing:.04em;border-bottom:1px solid var(--teacher-border)}

.teacher-workspace .teacher-test-table .teacher-table-sort{border:0!important;background:transparent!important;color:inherit!important;box-shadow:none!important}

.teacher-workspace .teacher-test-table td{padding:17px 12px;border-bottom:1px solid var(--teacher-border);vertical-align:middle;color:var(--teacher-text);font-size:13px}

.teacher-workspace .teacher-test-table tr:last-child td{border-bottom:0}

.teacher-workspace .teacher-test-table th:first-child,.teacher-workspace .teacher-test-table td:first-child{width:42px;text-align:center;padding-left:16px}

.teacher-workspace .teacher-test-table td:nth-child(2){min-width:240px;width:auto}

.teacher-workspace .teacher-test-table td:nth-child(2)>b{display:block;font-size:14px;font-weight:650;line-height:1.5;margin-bottom:4px}

.teacher-workspace .teacher-test-table td:nth-child(2)>small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--teacher-muted);font-size:12px;line-height:1.5;max-width:600px}

.teacher-workspace .teacher-test-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}
.teacher-workspace .teacher-test-tag{border:1px solid var(--teacher-border);border-radius:999px;padding:3px 6px;background:transparent;color:var(--teacher-muted);font:600 10px/1 Inter,ui-sans-serif,system-ui,sans-serif;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}
.teacher-workspace .teacher-test-tag:hover,.teacher-workspace .teacher-test-tag:focus-visible{border-color:#8b82dd;color:var(--teacher-text)}
.teacher-workspace .teacher-test-tag:disabled{cursor:wait;opacity:.65}
.teacher-workspace .teacher-test-tag.is-error{border-color:#d65b69;color:#d65b69}
.teacher-workspace .teacher-test-tag.tag-maturita.is-active{border-color:#8960ba;background:#342449;color:#d8b0f7}
.teacher-workspace .teacher-test-tag.tag-opakování.is-active{border-color:#367e67;background:#193d35;color:#8be0bc}
.teacher-workspace .teacher-test-tag.tag-náročné.is-active{border-color:#a97b24;background:#463719;color:#ffd36c}
.teacher-workspace .teacher-test-tag.tag-základní.is-active{border-color:#4f78b5;background:#233552;color:#a7c8ff}
.teacher-workspace .teacher-test-tag.tag-extra.is-active{border-color:#a3477e;background:#482239;color:#ff9fd2}
body:not([data-theme="dark"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]):not([data-theme="colorful"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .teacher-workspace .teacher-test-tag.tag-maturita.is-active{background:#f2eaff;color:#844bb5}
body:not([data-theme="dark"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]):not([data-theme="colorful"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .teacher-workspace .teacher-test-tag.tag-opakování.is-active{background:#e7f6ef;color:#207d5b}
body:not([data-theme="dark"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]):not([data-theme="colorful"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .teacher-workspace .teacher-test-tag.tag-náročné.is-active{background:#fff5dc;color:#9b6905}
body:not([data-theme="dark"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]):not([data-theme="colorful"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .teacher-workspace .teacher-test-tag.tag-základní.is-active{background:#eaf2ff;color:#3566b4}
body:not([data-theme="dark"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]):not([data-theme="colorful"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .teacher-workspace .teacher-test-tag.tag-extra.is-active{background:#ffedf6;color:#b83f83}
body[data-theme="colorful"] .teacher-workspace .teacher-test-tag.tag-maturita.is-active{background:#fae7f5;color:#9b3e88}
body[data-theme="colorful"] .teacher-workspace .teacher-test-tag.tag-opakování.is-active{background:#e2f7f1;color:#197d62}
body[data-theme="colorful"] .teacher-workspace .teacher-test-tag.tag-náročné.is-active{background:#fff1d9;color:#a66b08}
body[data-theme="colorful"] .teacher-workspace .teacher-test-tag.tag-základní.is-active{background:#e8f0ff;color:#3e67b2}
body[data-theme="colorful"] .teacher-workspace .teacher-test-tag.tag-extra.is-active{background:#ffe6f1;color:#bb3d82}

.teacher-workspace .teacher-test-table .pill,.teacher-workspace .teacher-test-table .status{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:3px 9px;border:1px solid transparent;border-radius:999px;font-size:12px;font-weight:500;line-height:1;letter-spacing:0}
.teacher-workspace .teacher-test-table .pill{background:#f0eeff;color:#5949bd}
.teacher-workspace .teacher-test-table .status.published{background:#e8f8f0;color:#188364}
.teacher-workspace .teacher-test-table .status.draft{background:#fff3dc;color:#9a6a12}
.teacher-workspace .teacher-test-table .status.archived{background:#edf0f5;color:#69758a}
body:is([data-theme="dark"],[data-theme="aiflow"]) .teacher-workspace .teacher-test-table .pill{background:#51419a;color:#fff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .teacher-workspace .teacher-test-table .status.published{border-color:#176861;background:#103b3d;color:#39dca9}
body:is([data-theme="dark"],[data-theme="aiflow"]) .teacher-workspace .teacher-test-table .status.draft{border-color:#9b7721;background:#514318;color:#ffe08a}
body:is([data-theme="dark"],[data-theme="aiflow"]) .teacher-workspace .teacher-test-table .status.archived{border-color:#56617a;background:#30394c;color:#c3cbe0}

.teacher-workspace .teacher-test-table [data-test-status-toggle]{font-family:inherit;cursor:pointer;transition:border-color .16s ease,filter .16s ease,transform .16s ease}
.teacher-workspace .teacher-test-table [data-test-status-toggle]:hover,.teacher-workspace .teacher-test-table [data-test-status-toggle]:focus-visible{border-color:currentColor;filter:brightness(.97);transform:translateY(-1px)}
.teacher-workspace .teacher-test-table [data-test-status-toggle]:disabled{cursor:wait;opacity:.65}

.teacher-workspace .teacher-test-table tbody tr:hover{background:var(--teacher-hover)}

.teacher-workspace .teacher-test-table tbody tr.is-selectable>td:not(.actions){cursor:pointer}

.teacher-workspace .teacher-test-table tr.is-selected{background:rgba(115,103,220,.12)}

.teacher-workspace .teacher-test-table input[type="checkbox"]{width:16px;height:16px;accent-color:#8070ed;cursor:pointer}

.teacher-workspace .teacher-test-table td.actions{display:table-cell;white-space:nowrap;text-align:right}

.teacher-workspace .actions>.teacher-row-primary{display:inline-flex;align-items:center;gap:6px;padding:7px 8px;margin:0 2px 0 0;font-size:12px;font-weight:500;text-decoration:none;color:var(--teacher-text);border:1px solid var(--teacher-border);border-radius:7px}

.teacher-workspace .actions>.teacher-row-primary:hover{background:var(--teacher-hover);border-color:#837add;color:var(--teacher-text)}

body:is([data-theme="dark"],[data-theme="aiflow"]) .teacher-workspace .actions>.teacher-row-primary{color:#fff!important}
body:is([data-theme="dark"],[data-theme="aiflow"]) .teacher-workspace .actions>.teacher-row-primary:hover{color:#fff!important}

.teacher-workspace .actions>.teacher-row-primary>i{margin:0!important}

.teacher-menu{display:inline-block;vertical-align:middle;text-align:left}

.teacher-workspace .teacher-menu>summary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 13px;border:1px solid var(--teacher-border);border-radius:9px;background:var(--teacher-surface);color:var(--teacher-text);list-style:none;cursor:pointer;font-size:13px;font-weight:500}

.teacher-menu>summary::-webkit-details-marker{display:none}

.teacher-workspace .actions .teacher-menu>summary{width:32px;height:32px;padding:0;border-radius:7px;margin:0}

.teacher-workspace .teacher-menu>summary:hover,.teacher-workspace .teacher-menu[open]>summary{background:var(--teacher-hover);border-color:#837add}

.teacher-workspace .teacher-menu-panel{display:none;position:fixed;z-index:75;width:240px;max-width:calc(100vw - 24px);overflow:auto;padding:6px;border:1px solid var(--teacher-border);border-radius:12px;background:var(--teacher-surface);box-shadow:0 14px 42px rgba(9,15,35,.26);white-space:normal}

.teacher-workspace .teacher-menu[open]>.teacher-menu-panel{display:grid;gap:2px}

.teacher-workspace .teacher-menu-panel form{display:block;margin:0;width:100%}

.teacher-workspace .teacher-menu-panel a,.teacher-workspace .teacher-menu-panel button{display:flex!important;align-items:center;justify-content:flex-start;gap:10px;width:100%;margin:0!important;padding:10px 12px!important;border:0!important;border-radius:7px!important;background:transparent!important;color:var(--teacher-text)!important;box-shadow:none!important;font:500 14px/1.4 Inter,ui-sans-serif,system-ui,sans-serif!important;text-align:left;text-decoration:none;white-space:normal;cursor:pointer}

.teacher-workspace .teacher-menu-panel a:hover,.teacher-workspace .teacher-menu-panel button:hover{background:var(--teacher-hover)!important;transform:none;filter:none}

.teacher-workspace .teacher-menu-panel i{flex:0 0 16px;text-align:center;color:var(--teacher-muted)}

.teacher-workspace .teacher-menu-danger{border-top:1px solid var(--teacher-border);padding-top:4px}

.teacher-workspace .teacher-menu-panel .teacher-menu-danger button{color:#d65064!important}

body:is([data-theme="dark"],[data-theme="aiflow"]) .teacher-workspace .teacher-menu-panel .teacher-menu-danger button{color:#ff9fae!important}

.teacher-workspace .dashboard-performance{margin:0 0 24px}

.teacher-empty{padding:38px 20px;text-align:center;color:var(--teacher-muted)}

.teacher-empty>i{font-size:28px;margin-bottom:14px}
.teacher-empty h3{margin:0 0 8px;color:var(--teacher-text)}
.teacher-empty p{margin:0}

@media(max-width:1050px){
  .teacher-workspace .stat-grid{gap:8px}
  .teacher-workspace .stat-grid>div{padding:13px 12px}
  .teacher-workspace .teacher-selection{width:100%;margin-bottom:3px}
}

@media(max-width:700px){
  .teacher-workspace{padding-top:22px}
  .teacher-workspace .dashboard-head{align-items:flex-start;flex-direction:column;gap:16px}
  .teacher-workspace .dashboard-head h1{font-size:26px}
  .teacher-workspace .dashboard-create-actions{width:100%;justify-content:space-between}
  .teacher-workspace .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:22px}
  .teacher-workspace .stat-grid>div:last-child{grid-column:1/-1}
  .teacher-workspace .stat-grid b{font-size:23px}
  .teacher-workspace .teacher-test-toolbar{padding:12px}
  .teacher-workspace .teacher-test-toolbar .filters{flex-wrap:wrap}
  .teacher-workspace .teacher-test-toolbar .filters input[name="q"]{flex:1 1 100%}
  .teacher-workspace .teacher-test-toolbar .filters select[name]{flex:1;min-width:100px;width:100%}
  .teacher-list-heading h2{font-size:18px}
  .teacher-workspace .teacher-test-bulk-actions{gap:8px}
  .teacher-workspace .teacher-selection{justify-content:space-between}
  .teacher-workspace .teacher-menu-panel{width:230px}
}

/* Colourful theme: deliberately vivid across both student and teacher screens. */
body[data-theme="colorful"]{--green:#149d7d;--red:#df4872}

body[data-theme="colorful"] .topbar{border-color:#efcce9}
body[data-theme="colorful"] .topbar nav a{color:#6c3975}
body[data-theme="colorful"] .nav-button{background:#f6d9f1;color:#972a9b}

body[data-theme="colorful"] .button{background:linear-gradient(115deg,#c334ac,#7b5bea 52%,#00a7b5);box-shadow:0 10px 22px rgba(169,49,173,.25)}
body[data-theme="colorful"] .button.secondary{background:#d9f5f2;color:#087f88}

body[data-theme="colorful"] .form-card,body[data-theme="colorful"] .test-card{background:linear-gradient(145deg,#fff 0%,#fff7fd 100%);box-shadow:0 16px 40px rgba(177,57,164,.11)}

body[data-theme="colorful"] .mock-card,body[data-theme="colorful"] .floating-card{box-shadow:0 17px 34px rgba(150,52,159,.18)}

body[data-theme="colorful"] input,body[data-theme="colorful"] textarea,body[data-theme="colorful"] select{border-color:#e2c6e4;background:#fffaff}
body[data-theme="colorful"] input:focus,body[data-theme="colorful"] textarea:focus{outline-color:#f5c7ea;border-color:#bf52b5}

body[data-theme="colorful"] .question-card{background:linear-gradient(125deg,#fff7fd,#f2edff);border-color:#dfc7ed}
body[data-theme="colorful"] .answer,body[data-theme="colorful"] .practice-option{border-color:#dfcce9;background:#fffaff}
body[data-theme="colorful"] .answer:hover,body[data-theme="colorful"] .practice-option:hover{border-color:#b951b5;background:#fff0fa}

body[data-theme="colorful"] .result-hero{border-color:#e6bde5;background:linear-gradient(120deg,#fff0fa,#f0e9ff 56%,#d9f8f6)}
body[data-theme="colorful"] .score-ring{background:conic-gradient(#d347aa,#8364e7,#0fb8b1,#d347aa)}

body[data-theme="colorful"] .pill{background:#f3ddf5;color:#92368f}
body[data-theme="colorful"] .status.published{background:#d9f6ee;color:#087c65}
body[data-theme="colorful"] .status.draft{background:#fff0cc;color:#966012}

body[data-theme="colorful"] .teacher-workspace{--teacher-surface:#fffafe;--teacher-soft:#f8eefa;--teacher-border:#e9cce8;--teacher-text:#392750;--teacher-muted:#806888;--teacher-hover:#f4e5f7;background:linear-gradient(135deg,rgba(255,221,244,.35),rgba(204,250,246,.32));padding:26px;border-radius:22px}

body[data-theme="colorful"] .teacher-workspace .stat-grid>div{border-color:transparent;box-shadow:0 12px 25px rgba(152,50,145,.10)}
body[data-theme="colorful"] .teacher-workspace .stat-grid>div:nth-child(1){background:#f9def0}
body[data-theme="colorful"] .teacher-workspace .stat-grid>div:nth-child(2){background:#e4ddff}
body[data-theme="colorful"] .teacher-workspace .stat-grid>div:nth-child(3){background:#d9f6f1}
body[data-theme="colorful"] .teacher-workspace .stat-grid>div:nth-child(4){background:#fff0cf}
body[data-theme="colorful"] .teacher-workspace .stat-grid>div:nth-child(5){background:#dceeff}

body[data-theme="colorful"] .teacher-workspace .teacher-test-toolbar{background:linear-gradient(100deg,#fff0fa,#eef8ff);border-color:#e7c9e7}
body[data-theme="colorful"] .teacher-workspace .table-wrap{border-color:#e7c9e7}
body[data-theme="colorful"] .teacher-workspace .teacher-test-table th{background:#f1e4f5}
body[data-theme="colorful"] .teacher-workspace .teacher-test-table tr.is-selected{background:#eadcff}
body[data-theme="colorful"] .teacher-workspace .teacher-test-table .pill{background:#6e50be;color:#fff}
body[data-theme="colorful"] .teacher-workspace .teacher-test-table .status.published{background:#d4f4e8;color:#087b61}
body[data-theme="colorful"] .teacher-workspace .teacher-test-table .status.draft{background:#ffedc0;color:#95600a}

/* The public pages and question modes carry the colourful theme most visibly. */
body[data-theme="colorful"] .topbar{position:sticky;border-bottom:0;box-shadow:0 7px 24px rgba(137,47,148,.18)}

body[data-theme="colorful"] .topbar::after{content:"";position:absolute;right:0;bottom:0;left:0;height:4px;background:linear-gradient(90deg,#f75aa9,#a451d0 44%,#14bdb4)}
body[data-theme="colorful"] .brand-mark{background:linear-gradient(135deg,#ed4c9b,#874fd8 50%,#11b9b1);box-shadow:0 6px 14px rgba(189,48,160,.32)}

body[data-theme="colorful"] .hero{position:relative}
body[data-theme="colorful"] .hero::before{content:"";position:absolute;z-index:-1;width:390px;height:390px;right:33%;border-radius:50%;background:radial-gradient(circle,rgba(255,176,218,.45),transparent 68%)}
body[data-theme="colorful"] .hero h1{background:linear-gradient(105deg,#9f2b91,#7547d2 55%,#078f99);-webkit-background-clip:text;background-clip:text;color:transparent}
body[data-theme="colorful"] .hero h1 em{color:#e13b8d}

body[data-theme="colorful"] .section-head h2,body[data-theme="colorful"] .page-title h1{color:#793484}
body[data-theme="colorful"] .test-card{position:relative;overflow:hidden;border-width:2px}
body[data-theme="colorful"] .test-card:nth-child(3n+1){background:linear-gradient(145deg,#fff,#ffe8f5)}
body[data-theme="colorful"] .test-card:nth-child(3n+2){background:linear-gradient(145deg,#fff,#eee7ff)}
body[data-theme="colorful"] .test-card:nth-child(3n){background:linear-gradient(145deg,#fff,#dcf8f6)}
body[data-theme="colorful"] .test-card::before{content:"";position:absolute;top:0;right:0;left:0;height:6px;background:linear-gradient(90deg,#f35aab,#8e63e7,#12b9b3)}

body[data-theme="colorful"] .practice-session{border:2px solid #e2b9e4;background:linear-gradient(145deg,#fff8fd 0%,#f1edff 51%,#e4fbf8 100%);box-shadow:0 22px 48px rgba(158,51,156,.16)}
body[data-theme="colorful"] .practice-session-head{margin:-26px -26px 20px;padding:20px 26px 16px;border-radius:18px 18px 0 0;background:linear-gradient(100deg,#fee0f1,#e7ddff 50%,#ccf4ef)}

body[data-theme="colorful"] .practice-mode-label{background:#824dcc;color:#fff}
body[data-theme="colorful"] .practice-track{background:#e8d7ee}
body[data-theme="colorful"] .practice-track span{background:linear-gradient(90deg,#ef4d9d,#8a61e8 52%,#11b9b2)}
body[data-theme="colorful"] .practice-question-title{color:#4b2661}
body[data-theme="colorful"] .practice-option{border-width:2px;background:rgba(255,255,255,.88);box-shadow:0 4px 13px rgba(138,71,151,.05)}
body[data-theme="colorful"] .practice-option b{background:#ecdafa;color:#703f9d}

body[data-theme="colorful"] .test-heading{padding:32px 26px 22px;margin:22px 0 18px;border:2px solid #e4c1e7;border-radius:20px;background:linear-gradient(105deg,#fff0f9,#eee7ff 52%,#ddf9f6)}
body[data-theme="colorful"] .test-heading h1{color:#5c2b7b}
body[data-theme="colorful"] .question-card{border-width:2px;box-shadow:0 10px 24px rgba(143,61,149,.08)}
body[data-theme="colorful"] .question-card legend span{background:linear-gradient(135deg,#ec57a4,#7b5cdb);color:#fff}
body[data-theme="colorful"] .question-list .answer{border-width:2px;background:linear-gradient(100deg,#fff,#fff5fd)}
body[data-theme="colorful"] .question-list .answer:nth-child(4n+2){background:linear-gradient(100deg,#fff,#f6f2ff)}
body[data-theme="colorful"] .question-list .answer:nth-child(4n+3){background:linear-gradient(100deg,#fff,#effcfb)}

body[data-theme="colorful"] .test-reading-controls button,body[data-theme="colorful"] .test-heading-actions .pill{border-color:#d2aee1;background:#fff4fd;color:#843e99}
body[data-theme="colorful"] .test-reading-controls button:hover{background:#f1d7f0;color:#6c2b8b}

@media(max-width:700px){
  body[data-theme="colorful"] .practice-session-head{margin:-26px -26px 18px;padding:17px 20px 14px}
  body[data-theme="colorful"] .test-heading{margin-top:12px;padding:16px 18px 12px}
}

/* Give the otherwise neutral light header the same clear ending as the colourful one. */
body:not([data-theme="dark"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]):not([data-theme="colorful"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .topbar{background:linear-gradient(100deg,rgba(250,249,255,.96),rgba(246,250,255,.96) 55%,rgba(244,253,252,.96))}
body:not([data-theme="dark"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]):not([data-theme="colorful"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .topbar::after{content:"";position:absolute;right:0;bottom:0;left:0;height:1px;background:linear-gradient(90deg,#a99df2,#80a3f2 52%,#83d2cb)}

/* Public catalog cards: compact adaptation of the supplied reference. */
.card-grid .test-card{border-radius:22px;padding:18px 22px;gap:0;min-width:0;min-height:0}

.card-grid .test-card::before{height:3px;background:linear-gradient(90deg,transparent,#6558ed 35%,#bc4bf1 65%,transparent)}

.card-grid .test-card h3{font-size:21px;line-height:1.3;letter-spacing:-.5px;margin:14px 0 9px;overflow-wrap:anywhere}

.card-grid .test-card p{font-size:14px;line-height:1.55;margin-bottom:15px}

.card-grid .test-card .pill,.practice-set-card .pill,:is(.card-grid .test-card,.home-test-name) .card-tag{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;width:fit-content;padding:6px 10px;border:1px solid #d5d4f5;border-radius:999px;background:#efeffb;color:#5d59b6;font-size:12px;font-weight:650;line-height:1.2;margin:0}

.card-grid .test-card .pill i,.practice-set-card .pill i{font-size:14px}

.card-grid .card-tag-row,.card-grid .card-tags,.home-test-name .card-tags{gap:7px}

.card-grid .card-tag-row{width:100%}

.card-grid .card-tag-row .card-tags{margin-left:auto;justify-content:flex-end}

:is(.card-grid .test-card,.home-test-name) .card-tag-náročné,.editor-tags label:has(input[value="náročné"]){background:#fff5dc;border-color:#ead39d;color:#9b6905}

:is(.card-grid .test-card,.home-test-name) .card-tag-extra,.editor-tags label:has(input[value="extra"]){background:#ffedf6;border-color:#ebc3d9;color:#b83f83}

:is(.card-grid .test-card,.home-test-name) .card-tag-maturita,.editor-tags label:has(input[value="maturita"]){background:#f2eaff;border-color:#d9c5f1;color:#844bb5}

:is(.card-grid .test-card,.home-test-name) .card-tag-opakování,.editor-tags label:has(input[value="opakování"]){background:#e7f6ef;border-color:#b8dfce;color:#207d5b}

:is(.card-grid .test-card,.home-test-name) .card-tag-základní,.editor-tags label:has(input[value="základní"]){background:#eaf2ff;border-color:#c1d5f4;color:#3566b4}

.card-grid .test-card .card-bottom{border-top:1px solid #e8eaf1;padding-top:12px;gap:10px;align-items:center;flex-wrap:wrap}

.card-grid .card-author{display:inline-flex;align-items:center;gap:9px;min-width:0;font-size:12px;color:#78859b}

.card-grid .card-author-avatar,.practice-set-card .card-author-avatar,.my-list-card .card-author-avatar{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:#edf0f6;color:#78859b;font-size:11px;font-weight:750}

.card-grid .card-training-actions{gap:8px;margin-left:auto;flex-wrap:wrap}

.card-grid .card-training-actions [data-practice-link],.card-grid .card-training-actions .card-test-link,.practice-set-card .card-training-actions [data-practice-link]{padding:0 12px;height:38px;min-height:38px;box-sizing:border-box;flex-shrink:0;justify-content:center;white-space:nowrap;line-height:1;border-radius:11px;font-size:12px;gap:7px}

.card-grid .card-training-actions [data-practice-link]{background:#f4f5f9;border-color:#dfe2ea;color:#59657a}

.card-grid .card-training-actions .card-test-link{background:linear-gradient(135deg,#8f7bf5,#416df1);color:#fff;box-shadow:0 7px 16px rgba(80,91,211,.22)}

.card-grid .test-card .card-teacher-stats{position:static;align-self:flex-end;margin:0 0 8px;max-width:100%;flex-wrap:wrap}

body:is([data-theme="dark"],[data-theme="aiflow"]) .card-grid .test-card{background:#151a28;border-color:#2a2e3d}

body:is([data-theme="dark"],[data-theme="aiflow"]) .card-grid .test-card h3{color:#fafbff}

body:is([data-theme="dark"],[data-theme="aiflow"]) .card-grid .test-card p{color:#94a3be}

body:is([data-theme="dark"],[data-theme="aiflow"]) .card-grid .test-card .pill,body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-set-card .pill{background:#21243d;border-color:#393975;color:#a6aff4}

body:is([data-theme="dark"],[data-theme="aiflow"]) :is(.card-grid .test-card,.home-test-name) .card-tag-náročné,body:is([data-theme="dark"],[data-theme="aiflow"]) .editor-tags label:has(input[value="náročné"]){background:#322c24;border-color:#68501f;color:#ffbc24}

body:is([data-theme="dark"],[data-theme="aiflow"]) :is(.card-grid .test-card,.home-test-name) .card-tag-extra,body:is([data-theme="dark"],[data-theme="aiflow"]) .editor-tags label:has(input[value="extra"]){background:#322138;border-color:#683054;color:#f366b4}

body:is([data-theme="dark"],[data-theme="aiflow"]) :is(.card-grid .test-card,.home-test-name) .card-tag-maturita,body:is([data-theme="dark"],[data-theme="aiflow"]) .editor-tags label:has(input[value="maturita"]){background:#30213f;border-color:#60417b;color:#c69aef}

body:is([data-theme="dark"],[data-theme="aiflow"]) :is(.card-grid .test-card,.home-test-name) .card-tag-opakování,body:is([data-theme="dark"],[data-theme="aiflow"]) .editor-tags label:has(input[value="opakování"]){background:#1c352f;border-color:#31594e;color:#80d9b5}

body:is([data-theme="dark"],[data-theme="aiflow"]) :is(.card-grid .test-card,.home-test-name) .card-tag-základní,body:is([data-theme="dark"],[data-theme="aiflow"]) .editor-tags label:has(input[value="základní"]){background:#202e47;border-color:#3b527a;color:#91b8ef}

body:is([data-theme="dark"],[data-theme="aiflow"]) .card-grid .test-card .card-bottom{border-color:#272c3b}

body:is([data-theme="dark"],[data-theme="aiflow"]) :is(.card-grid,.practice-set-card,.my-list-card) .card-author-avatar{background:#252e41;color:#96a7c2}

body:is([data-theme="dark"],[data-theme="aiflow"]) .card-grid .card-training-actions [data-practice-link]{background:#202738;border-color:#343a4b;color:#c1ccde}

.card-grid .card-training-actions [data-practice-link]:hover{filter:brightness(1.12)}

@media(max-width:520px){
  .card-grid .test-card{padding:17px 19px}
  .card-grid .test-card h3{font-size:20px}
}

/* Match the catalog accent on the training frame. */
.practice-session{position:relative}

.practice-session::before{content:"";position:absolute;top:0;left:20px;right:20px;height:3px;z-index:1;pointer-events:none;background:linear-gradient(90deg,transparent,#6558ed 35%,#bc4bf1 65%,transparent)}

.practice-session.practice-feedback-correct{animation:practice-correct-session-flash .62s ease-out}
@keyframes practice-correct-session-flash{
  0%,100%{filter:brightness(1) drop-shadow(0 0 0 rgba(43,182,119,0))}
  42%{filter:brightness(1.08) drop-shadow(0 0 12px rgba(43,182,119,.55))}
}
.practice-content.practice-feedback-wrong,.practice-option.practice-feedback-wrong{animation:practice-wrong-nudge .48s ease-out}
@keyframes practice-wrong-nudge{
  0%,100%{transform:translateX(0);box-shadow:none}
  22%{transform:translateX(-8px);box-shadow:0 0 0 3px rgba(210,78,96,.2)}
  48%{transform:translateX(7px);box-shadow:0 0 0 4px rgba(210,78,96,.28)}
  70%{transform:translateX(-3px);box-shadow:0 0 0 2px rgba(210,78,96,.16)}
}

.practice-option.practice-feedback-correct-answer{animation:practice-correct-answer-flash .62s ease-out}
@keyframes practice-correct-answer-flash{
  0%,100%{transform:translateX(0);filter:brightness(1);box-shadow:none}
  42%{transform:translateX(0) scale(1.012);filter:brightness(1.18);box-shadow:0 0 0 5px rgba(43,182,119,.38),0 0 24px rgba(43,182,119,.32)}
}

.practice-option.practice-feedback-correct-answer.practice-feedback-revealed-answer{animation:practice-correct-answer-flash .62s ease-out,practice-correct-answer-outline-pulse 1.55s ease-in-out .62s infinite}
@keyframes practice-correct-answer-outline-pulse{
  0%,100%{box-shadow:0 0 0 2px rgba(43,182,119,.16),0 0 7px rgba(43,182,119,.08)}
  50%{box-shadow:0 0 0 4px rgba(43,182,119,.38),0 0 17px rgba(43,182,119,.27)}
}

/* Final training assessment follows the same grade meanings as the grading page. */
.practice-end-grade{display:grid;justify-items:center;gap:8px;width:min(100%,520px);min-width:0;box-sizing:border-box;margin:22px auto 0;padding:15px 20px;border:1px solid #d7dcf0;border-radius:14px;background:#f8f9ff}
.practice-end-grade small{color:#6f7c99;font-size:12px;font-weight:700}
.practice-end-grade .grade{padding:7px 13px;font-size:15px}
.practice-end-grade p{max-width:560px;margin:0;color:#52617f;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-end-grade{border-color:#465575;background:#1a2133}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-end-grade small,body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-end-grade p{color:#bdc7df}
body[data-theme="colorful"] .practice-end-grade{border-color:#e4c1e7;background:rgba(255,255,255,.76)}
@media(max-width:620px){
  .practice-end{padding:15px 0}
  .practice-end h2{font-size:24px;line-height:1.2}
  .practice-end-grade{gap:7px;margin-top:18px;padding:13px 14px;border-radius:12px}
  .practice-end-grade .grade{max-width:100%;padding:6px 11px;font-size:14px;white-space:normal;text-align:center}
  .practice-end-grade p{font-size:13px;line-height:1.45}
  .practice-end-actions{width:100%;margin-top:22px}
  .practice-end-actions button{width:100%}
}

.practice-end .practice-end-grade-icon{display:grid;width:74px;height:74px;place-items:center;border-radius:50%;font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif;font-size:50px;font-style:normal;line-height:1;animation:practice-grade-icon-celebrate 1.8s ease-in-out infinite}
.practice-end .practice-end-grade-icon-1{color:#ffd52e!important;-webkit-text-fill-color:#ffd52e!important;--practice-icon-base:rgba(255,213,46,.11);--practice-icon-bright:rgba(255,232,115,.17);--practice-icon-glow:rgba(255,213,46,.46);--practice-icon-ring:rgba(255,213,46,.34)}
.practice-end .practice-end-grade-icon-2{color:#35c487!important;-webkit-text-fill-color:#35c487!important;--practice-icon-base:rgba(53,196,135,.11);--practice-icon-bright:rgba(105,222,166,.17);--practice-icon-glow:rgba(53,196,135,.46);--practice-icon-ring:rgba(53,196,135,.34)}
.practice-end .practice-end-grade-icon-3{color:#9588ff!important;-webkit-text-fill-color:#9588ff!important;--practice-icon-base:rgba(149,136,255,.11);--practice-icon-bright:rgba(180,170,255,.17);--practice-icon-glow:rgba(149,136,255,.46);--practice-icon-ring:rgba(149,136,255,.34)}
.practice-end .practice-end-grade-icon-4{color:#ffbd52!important;-webkit-text-fill-color:#ffbd52!important;--practice-icon-base:rgba(255,189,82,.11);--practice-icon-bright:rgba(255,213,139,.17);--practice-icon-glow:rgba(255,189,82,.46);--practice-icon-ring:rgba(255,189,82,.34)}
.practice-end .practice-end-grade-icon-5{color:#ff8292!important;-webkit-text-fill-color:#ff8292!important;--practice-icon-base:rgba(255,130,146,.11);--practice-icon-bright:rgba(255,173,185,.17);--practice-icon-glow:rgba(255,130,146,.46);--practice-icon-ring:rgba(255,130,146,.34)}
@keyframes practice-grade-icon-celebrate{
  0%,100%{background:var(--practice-icon-base);box-shadow:0 0 0 0 var(--practice-icon-ring),0 0 12px color-mix(in srgb,var(--practice-icon-glow) 45%,transparent);transform:scale(1)}
  50%{background:var(--practice-icon-bright);box-shadow:0 0 0 8px transparent,0 0 24px var(--practice-icon-glow);transform:scale(1.07)}
}

.practice-end .practice-mistake-review-summary{margin-top:8px;font-size:21px;font-weight:800;letter-spacing:.01em}

.practice-end .practice-mistake-review-encouragement{max-width:520px;margin-top:18px!important;font-size:15px;font-weight:700;line-height:1.45;animation:practice-mistake-review-encouragement-in .62s cubic-bezier(.2,.8,.25,1) both}
.practice-end .practice-mistake-review-completion{max-width:520px;margin-top:18px!important;font-size:15px;font-weight:700;line-height:1.45;animation:practice-mistake-review-encouragement-in .62s cubic-bezier(.2,.8,.25,1) both}
@keyframes practice-mistake-review-encouragement-in{
  0%{opacity:0;transform:translateY(11px) scale(.98);filter:brightness(.85)}
  65%{opacity:1;transform:translateY(-2px) scale(1.015);filter:brightness(1.22)}
  100%{opacity:1;transform:translateY(0) scale(1);filter:brightness(1)}
}
.practice-end:has(.practice-mistake-review-encouragement) .practice-end-actions{margin-top:32px}

/* Stable action heights independent of text/icon metrics or view. */
.home-test-name-actions .name-practice-link,.home-test-name-actions .name-test-link{height:38px;min-height:38px;box-sizing:border-box;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;white-space:nowrap;line-height:1}

.card-training-actions a i,.home-test-name-actions a i{line-height:1}

form .editor-tags label:not(.answer){display:inline-flex;align-items:center;width:auto;gap:6px;margin:0;padding:6px 10px;border:1px solid currentColor;border-radius:999px;font-size:13px;font-weight:650;line-height:1.2;cursor:pointer}

form .editor-tags label:not(.answer) input[type="checkbox"]{width:14px;height:14px;margin:0;accent-color:var(--purple)}

body[data-theme="colorful"] .editor-tags{border-color:#e3b8e1;background:#fff9fe}

body[data-theme="colorful"] .editor-tags label:has(input[value="maturita"]){background:#fae7f5;border-color:#d99fcf;color:#9b3e88}

body[data-theme="colorful"] .editor-tags label:has(input[value="opakování"]){background:#e2f7f1;border-color:#9bd9c8;color:#197d62}

body[data-theme="colorful"] .editor-tags label:has(input[value="náročné"]){background:#fff1d9;border-color:#e8c37b;color:#a66b08}

body[data-theme="colorful"] .editor-tags label:has(input[value="základní"]){background:#e8f0ff;border-color:#a9c3ed;color:#3e67b2}

body[data-theme="colorful"] .editor-tags label:has(input[value="extra"]){background:#ffe6f1;border-color:#ecabd0;color:#bb3d82}

/* A teacher-selected catalog colour takes priority over the rotating colourful-card palette. */
body[data-theme="colorful"] .test-card.card-color-yellow{background:linear-gradient(145deg,#fffbe4,#fff0bc);border-color:#e6c45b}

body[data-theme="colorful"] .test-card.card-color-green{background:linear-gradient(145deg,#effff7,#d1f6e2);border-color:#8ed5b1}

body[data-theme="colorful"] .test-card.card-color-blue{background:linear-gradient(145deg,#f0f7ff,#d2e8ff);border-color:#9cc6ee}

body[data-theme="colorful"] .test-card.card-color-pink{background:#ffe9f3;border-color:#efa9cf}

body:is([data-theme="dark"],[data-theme="aiflow"]) .home-view-button:hover{background:#29334e;color:#e7ecff}

body:is([data-theme="dark"],[data-theme="aiflow"]) .home-view-button.is-active:hover{background:#303d61;color:#fff}

/* Keep both card actions on the same baseline, including hover. */
.card-grid .card-training-actions > a{height:38px;min-height:38px;max-height:38px;box-sizing:border-box;border-width:1px;border-style:solid;border-radius:11px;background-clip:border-box;vertical-align:middle;transform:none}

.card-grid .card-training-actions > a:hover,.card-grid .card-training-actions > a:focus-visible{transform:none}

/* Vlastní kritéria musí být jasně odlišitelná od výchozích pravidel. */
.grading-settings .editor-training-toggle{display:flex;align-items:center;gap:10px;margin:0 0 18px;padding:13px 15px;border:2px solid #776ef0;border-radius:12px;background:#f0eeff;color:#393184;font-size:15px;font-weight:800}
.grading-settings .editor-training-toggle input{width:18px;height:18px;margin:0;accent-color:#6258dd}
.grading-settings .editor-training-toggle:has(input:checked){border-color:#4d43cb;background:#ddd9ff;color:#30288c;box-shadow:0 4px 14px rgba(91,78,220,.18)}
body:is([data-theme="dark"],[data-theme="aiflow"]) .grading-settings .editor-training-toggle{background:#282249;color:#d7d2ff;border-color:#857cff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .grading-settings .editor-training-toggle:has(input:checked){background:#39316e;color:#fff;border-color:#9b92ff}

/* Noční žár: tmavý technický motiv s korálovým akcentem. */
html[data-theme="ember"]{background:#080a0e}
html[data-theme="navy"]{background:#0c0f1b}

body[data-theme="ember"]{--ink:#f7f2ee;--muted:#b8aaa8;--purple:#ff7956;--blue:#ff4e2f;--line:#423536;--green:#58d3a1;--red:#ff7b86;--shadow:0 22px 54px rgba(0,0,0,.38);background-color:#080a0e;background-image:radial-gradient(circle at 23% 8%,rgba(214,65,42,.15),transparent 24rem),radial-gradient(circle at 86% 18%,rgba(21,106,126,.12),transparent 28rem),linear-gradient(rgba(255,132,102,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(91,145,158,.05) 1px,transparent 1px);background-size:auto,auto,36px 36px,36px 36px;background-attachment:fixed;color:var(--ink)}
body[data-theme="navy"]{--ink:#f0f1f5;--muted:#9fa7c1;--purple:#ff5656;--blue:#ff2f2f;--line:#2d344d;--green:#58d3a1;--red:#ff7b7b;--shadow:0 22px 54px rgba(0,0,0,.38);background-color:#0c0f1b;background-image:radial-gradient(circle at 23% 8%,rgba(227,29,29,.15),transparent 24rem),radial-gradient(circle at 86% 18%,rgba(21,106,126,.12),transparent 28rem),linear-gradient(rgba(255,102,102,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(91,145,158,.05) 1px,transparent 1px);background-size:auto,auto,36px 36px,36px 36px;background-attachment:fixed;color:var(--ink)}

body[data-theme="ember"] .topbar{border-color:#3d3031;background:rgba(13,13,18,.9);box-shadow:0 8px 26px rgba(0,0,0,.36)}
body[data-theme="navy"] .topbar{border-color:#2a3147;background:rgba(14,18,33,.9);box-shadow:0 8px 26px rgba(0,0,0,.36)}

body[data-theme="ember"] .topbar::after{content:"";position:absolute;right:0;bottom:0;left:0;height:2px;background:linear-gradient(90deg,transparent,#f35b3f 28%,#ff9a55 52%,#e14d45 74%,transparent);opacity:.8}
body[data-theme="navy"] .topbar::after{content:"";position:absolute;right:0;bottom:0;left:0;height:2px;background:linear-gradient(90deg,transparent,#f33f3f 28%,#ff9955 52%,#e73f3f 74%,transparent);opacity:.8}

body[data-theme="ember"] .brand,body[data-theme="ember"] .topbar nav a{color:#f8f2ef}
body[data-theme="navy"] .brand,body[data-theme="navy"] .topbar nav a{color:#f1f2f6}
body[data-theme="ember"] .brand-mark{background:linear-gradient(135deg,#ff9c62,#ff4d31 55%,#bd3435);box-shadow:0 6px 18px rgba(255,78,47,.3)}
body[data-theme="navy"] .brand-mark{background:linear-gradient(135deg,#ffa162,#ff3131 55%,#d61b1b);box-shadow:0 6px 18px rgba(255,47,47,.3)}
body[data-theme="ember"] .nav-button{background:#2a1c1d;color:#ffb19d!important;border:1px solid #593939}
body[data-theme="navy"] .nav-button{background:#181f38;color:#ff9d9d!important;border:1px solid #353e5b}
body[data-theme="ember"] .user-name{background:#20191c;border-color:#493638;color:#f3dfd9}
body[data-theme="navy"] .user-name{background:#151b30;border-color:#2f3751;color:#e1e3ec}

body[data-theme="ember"] .shell{background:transparent}
body[data-theme="navy"] .shell{background:transparent}
body[data-theme="ember"] footer{border-color:#352b2c;color:#988d8c;background:transparent}
body[data-theme="navy"] footer{border-color:#1f2847;color:#7a85aa;background:transparent}

body[data-theme="ember"] .hero h1,body[data-theme="ember"] .page-title h1{color:#faf5f2}
body[data-theme="navy"] .hero h1,body[data-theme="navy"] .page-title h1{color:#f4f5f8}
body[data-theme="ember"] .hero h1 em{color:#ff714e}
body[data-theme="navy"] .hero h1 em{color:#ff4e4e}
body[data-theme="ember"] .eyebrow{color:#ff9a79}
body[data-theme="navy"] .eyebrow{color:#ff7979}
body[data-theme="ember"] .lead,body[data-theme="ember"] .page-title p:not(.eyebrow),body[data-theme="ember"] .info-row{color:var(--muted)}
body[data-theme="navy"] .lead,body[data-theme="navy"] .page-title p:not(.eyebrow),body[data-theme="navy"] .info-row{color:var(--muted)}

body[data-theme="ember"] .button{background:linear-gradient(110deg,#ff9860,#ff573a 52%,#d73b3d);box-shadow:0 9px 22px rgba(235,73,44,.26)}
body[data-theme="navy"] .button{background:linear-gradient(110deg,#ffa060,#ff3a3a 52%,#e52d2d);box-shadow:0 9px 22px rgba(235,44,44,.26)}
body[data-theme="ember"] .button.secondary,body[data-theme="ember"] .filters button,body[data-theme="ember"] .actions button,body[data-theme="ember"] td form button{border:1px solid #583e40!important;background:#211a1e!important;color:#f4d4cc!important;box-shadow:none!important}
body[data-theme="navy"] .button.secondary,body[data-theme="navy"] .filters button,body[data-theme="navy"] .actions button,body[data-theme="navy"] td form button{border:1px solid #37405d!important;background:#151c31!important;color:#f8c8c8!important;box-shadow:none!important}
body[data-theme="ember"] .button.secondary:hover,body[data-theme="ember"] .filters button:hover,body[data-theme="ember"] .actions button:hover,body[data-theme="ember"] td form button:hover{border-color:#a55a4d!important;background:#322024!important;color:#fff4ee!important}
body[data-theme="navy"] .button.secondary:hover,body[data-theme="navy"] .filters button:hover,body[data-theme="navy"] .actions button:hover,body[data-theme="navy"] td form button:hover{border-color:#d71b1b!important;background:#391e22!important;color:#f5f6f8!important}

body[data-theme="ember"] .hero-art{background:linear-gradient(135deg,#211519,#111a21);border:1px solid #443234}
body[data-theme="navy"] .hero-art{background:linear-gradient(135deg,#141a2e,#111a21);border:1px solid #2d344c}
body[data-theme="ember"] .mock-card,body[data-theme="ember"] .floating-card{background:#171418;border:1px solid #463638;box-shadow:0 18px 42px rgba(0,0,0,.45)}
body[data-theme="navy"] .mock-card,body[data-theme="navy"] .floating-card{background:#111728;border:1px solid #2f364f;box-shadow:0 18px 42px rgba(0,0,0,.45)}
body[data-theme="ember"] .mock-top i{background:#514045}
body[data-theme="navy"] .mock-top i{background:#353e5a}
body[data-theme="ember"] .mock-answer{border-color:#473638;color:#e8dcda}
body[data-theme="navy"] .mock-answer{border-color:#2f3750;color:#dadde8}
body[data-theme="ember"] .mock-answer.active{border-color:#ef7357;background:#321d20;color:#ffd3c5}
body[data-theme="navy"] .mock-answer.active{border-color:#ef5757;background:#371d21;color:#ffc5c5}

body[data-theme="ember"] .form-card,body[data-theme="ember"] .test-card,body[data-theme="ember"] .question-card,body[data-theme="ember"] .editor-question,body[data-theme="ember"] .stat-grid>div,body[data-theme="ember"] .table-wrap,body[data-theme="ember"] .practice-session,body[data-theme="ember"] .help-card,body[data-theme="ember"] .result-hero{border-color:#483738;background:linear-gradient(145deg,rgba(29,23,27,.96),rgba(18,18,23,.96));box-shadow:var(--shadow)}
body[data-theme="navy"] .form-card,body[data-theme="navy"] .test-card,body[data-theme="navy"] .question-card,body[data-theme="navy"] .editor-question,body[data-theme="navy"] .stat-grid>div,body[data-theme="navy"] .table-wrap,body[data-theme="navy"] .practice-session,body[data-theme="navy"] .help-card,body[data-theme="navy"] .result-hero{border-color:#2f3751;background:linear-gradient(145deg,rgba(19,25,45,.96),rgba(17,22,39,.96));box-shadow:var(--shadow)}

body[data-theme="ember"] :is(.test-card,.practice-set-card,.my-list-card):hover{border-color:#84504a;box-shadow:0 18px 44px rgba(0,0,0,.42)}
body[data-theme="navy"] :is(.test-card,.practice-set-card,.my-list-card):hover{border-color:#b71717;box-shadow:0 18px 44px rgba(0,0,0,.42)}
body[data-theme="ember"] .test-card.card-color-yellow,body[data-theme="ember"] .test-card.card-color-green,body[data-theme="ember"] .test-card.card-color-blue,body[data-theme="ember"] .test-card.card-color-pink{background:linear-gradient(145deg,#21191c,#16161b);border-color:#563d3f}
body[data-theme="navy"] .test-card.card-color-yellow,body[data-theme="navy"] .test-card.card-color-green,body[data-theme="navy"] .test-card.card-color-blue,body[data-theme="navy"] .test-card.card-color-pink{background:linear-gradient(145deg,#151b31,#13182b);border-color:#363f5c}

body[data-theme="ember"] label,body[data-theme="ember"] .editor-question-top b,body[data-theme="ember"] .editor-tags legend{color:#e8d8d3}
body[data-theme="navy"] label,body[data-theme="navy"] .editor-question-top b,body[data-theme="navy"] .editor-tags legend{color:#d6dae5}
body[data-theme="ember"] input,body[data-theme="ember"] textarea,body[data-theme="ember"] select{border-color:#503d3f;background:#121217;color:#f8f1ed}
body[data-theme="navy"] input,body[data-theme="navy"] textarea,body[data-theme="navy"] select{border-color:#343c58;background:#111627;color:#f0f1f5}
body[data-theme="ember"] input:focus,body[data-theme="ember"] textarea:focus,body[data-theme="ember"] select:focus{outline-color:rgba(255,113,78,.28);border-color:#db7056}
body[data-theme="navy"] input:focus,body[data-theme="navy"] textarea:focus,body[data-theme="navy"] select:focus{outline-color:rgba(255,78,78,.28);border-color:#e84949}

body[data-theme="ember"] .notice.success{background:#16342d;color:#8ae3bd}
body[data-theme="navy"] .notice.success{background:#16342d;color:#8ae3bd}
body[data-theme="ember"] .notice.error{background:#3c2027;color:#ffabb4}
body[data-theme="navy"] .notice.error{background:#3c2027;color:#ffabab}

body[data-theme="ember"] .test-heading{border-color:#4a3536}
body[data-theme="navy"] .test-heading{border-color:#2f3751}
body[data-theme="ember"] .test-heading h1{color:#fff7f3}
body[data-theme="navy"] .test-heading h1{color:#f8f8fa}
body[data-theme="ember"] .question-card{background:#18161b}
body[data-theme="navy"] .question-card{background:#13182b}
body[data-theme="ember"] .question-card legend span{background:linear-gradient(135deg,#ff9462,#e24b3b);color:#fff}
body[data-theme="navy"] .question-card legend span{background:linear-gradient(135deg,#ff6262,#e63737);color:#ffffff}
body[data-theme="ember"] .answer,body[data-theme="ember"] .practice-option,body[data-theme="ember"] .review{border-color:#4a393b;background:#1b181d;color:#f4ece8}
body[data-theme="navy"] .answer,body[data-theme="navy"] .practice-option,body[data-theme="navy"] .review{border-color:#313953;background:#141a2e;color:#eaecf2}
body[data-theme="ember"] .answer:hover,body[data-theme="ember"] .practice-option:hover{border-color:#d66a55;background:#2b1b1e}
body[data-theme="navy"] .answer:hover,body[data-theme="navy"] .practice-option:hover{border-color:#e84343;background:#311a1d}
body[data-theme="ember"] .answer b,body[data-theme="ember"] .practice-option b{background:#33272a;color:#ffd2c4}
body[data-theme="navy"] .answer b,body[data-theme="navy"] .practice-option b{background:#1d2644;color:#ffc4c4}
body[data-theme="ember"] .answer span{color:#f1e7e2!important}
body[data-theme="navy"] .answer span{color:#e5e7ee!important}
body[data-theme="ember"] .answer input[type="radio"]{appearance:none;width:14px;height:14px;padding:0!important;border:2px solid #b78b82!important;border-radius:50%;background:#151419!important;position:relative;flex:0 0 14px}
body[data-theme="navy"] .answer input[type="radio"]{appearance:none;width:14px;height:14px;padding:0!important;border:2px solid #e95050!important;border-radius:50%;background:#121729!important;position:relative;flex:0 0 14px}
body[data-theme="ember"] .answer input[type="radio"]:checked{border-color:#ff7655!important;background:#ff7655!important;box-shadow:0 0 0 2px rgba(255,118,85,.16)}
body[data-theme="navy"] .answer input[type="radio"]:checked{border-color:#ff5555!important;background:#ff5555!important;box-shadow:0 0 0 2px rgba(255,85,85,.16)}
body[data-theme="ember"] .answer input[type="radio"]:checked:after{content:"";position:absolute;inset:3px;border-radius:50%;background:#161419}
body[data-theme="navy"] .answer input[type="radio"]:checked:after{content:"";position:absolute;inset:3px;border-radius:50%;background:#121729}

body[data-theme="ember"] .practice-track{background:#34282b}
body[data-theme="navy"] .practice-track{background:#1e2745}
body[data-theme="ember"] .practice-track span{background:linear-gradient(90deg,#f6a05f,#ff5740 55%,#e13e42)}
body[data-theme="navy"] .practice-track span{background:linear-gradient(90deg,#f69b5f,#ff4040 55%,#e63939)}
body[data-theme="ember"] .practice-mode-label,body[data-theme="ember"] .pill{background:#312025;color:#ffb39e;border:1px solid #6b403d}
body[data-theme="navy"] .practice-mode-label,body[data-theme="navy"] .pill{background:#1b233e;color:#ff9e9e;border:1px solid #961212}
body[data-theme="ember"] .practice-session-head b,body[data-theme="ember"] .practice-question-title{color:#faf2ee}
body[data-theme="navy"] .practice-session-head b,body[data-theme="navy"] .practice-question-title{color:#f2f3f6}
body[data-theme="ember"] .practice-session-head span,body[data-theme="ember"] .practice-question-number,body[data-theme="ember"] .practice-end p{color:#c7aaa2}
body[data-theme="navy"] .practice-session-head span,body[data-theme="navy"] .practice-question-number,body[data-theme="navy"] .practice-end p{color:#a4acc5}

body[data-theme="ember"] .result-hero{background:linear-gradient(125deg,#281719,#142027)}
body[data-theme="navy"] .result-hero{background:linear-gradient(125deg,#281719,#142027)}
body[data-theme="ember"] .result-hero h2{color:#ffab7f}
body[data-theme="navy"] .result-hero h2{color:#ffb27f}
body[data-theme="ember"] .score-ring{background:conic-gradient(#ff6d4e calc(var(--score)*1%),#403437 0)}
body[data-theme="navy"] .score-ring{background:conic-gradient(#ff4e4e calc(var(--score)*1%),#2c334b 0)}
body[data-theme="ember"] .score-ring:before{background:#18161b}
body[data-theme="navy"] .score-ring:before{background:#13182b}
body[data-theme="ember"] .review-icon{background:#17362d;color:#7de0b1}
body[data-theme="navy"] .review-icon{background:#17362d;color:#7de0b1}
body[data-theme="ember"] .wrong .review-icon{background:#422127;color:#ff9dab}
body[data-theme="navy"] .wrong .review-icon{background:#422127;color:#ff9d9d}

body[data-theme="ember"] th{background:#171419;color:#dfc7c0}
body[data-theme="navy"] th{background:#121729;color:#c5cada}
body[data-theme="ember"] th,body[data-theme="ember"] td{border-color:#443536}
body[data-theme="navy"] th,body[data-theme="navy"] td{border-color:#2e354e}
body[data-theme="ember"] tr:hover td{background:rgba(255,109,78,.055)}
body[data-theme="navy"] tr:hover td{background:rgba(255,78,78,.055)}
body[data-theme="ember"] .status.published{background:#163a30;color:#73dcb0}
body[data-theme="navy"] .status.published{background:#163a30;color:#73dcb0}
body[data-theme="ember"] .status.draft{background:#3d2a17;color:#ffd17f}
body[data-theme="navy"] .status.draft{background:#3d2a17;color:#ffb27f}
body[data-theme="ember"] .status.archived{background:#2d2d33;color:#c4bac0}
body[data-theme="navy"] .status.archived{background:#1f2847;color:#b1b7cd}

body[data-theme="ember"] .teacher-workspace{--teacher-surface:#19161b;--teacher-soft:#22191d;--teacher-border:#4a393b;--teacher-text:#f6ece8;--teacher-muted:#bbaaa6;--teacher-hover:#332125;background:linear-gradient(135deg,rgba(66,27,27,.42),rgba(18,31,37,.46));border:1px solid #423234}
body[data-theme="navy"] .teacher-workspace{--teacher-surface:#13182b;--teacher-soft:#151c31;--teacher-border:#313953;--teacher-text:#ebedf3;--teacher-muted:#9fa7c2;--teacher-hover:#1c2440;background:linear-gradient(135deg,rgba(30,39,70,.42),rgba(20,26,47,.46));border:1px solid #2c334b}
body[data-theme="ember"] .teacher-workspace .teacher-test-toolbar,body[data-theme="ember"] .teacher-workspace .teacher-menu-panel{background:#19161b;border-color:#4a393b}
body[data-theme="navy"] .teacher-workspace .teacher-test-toolbar,body[data-theme="navy"] .teacher-workspace .teacher-menu-panel{background:#13182b;border-color:#313953}
body[data-theme="ember"] .teacher-workspace .teacher-test-table th{background:#171419}
body[data-theme="navy"] .teacher-workspace .teacher-test-table th{background:#121729}
body[data-theme="ember"] .teacher-workspace .teacher-test-table tr.is-selected{background:rgba(255,111,77,.14)}
body[data-theme="navy"] .teacher-workspace .teacher-test-table tr.is-selected{background:rgba(255,77,77,.14)}
body[data-theme="ember"] .teacher-workspace .teacher-test-table .pill{background:#47272c;color:#ffd3c3}
body[data-theme="navy"] .teacher-workspace .teacher-test-table .pill{background:#47272c;color:#ffc3c3}
body[data-theme="ember"] .teacher-workspace .teacher-test-table .status.published{border-color:#236451;background:#15362e;color:#6de0ad}
body[data-theme="navy"] .teacher-workspace .teacher-test-table .status.published{border-color:#236451;background:#15362e;color:#6de0ad}
body[data-theme="ember"] .teacher-workspace .teacher-test-table .status.draft{border-color:#8b6324;background:#402d18;color:#ffd47f}
body[data-theme="navy"] .teacher-workspace .teacher-test-table .status.draft{border-color:#9c4a13;background:#402d18;color:#ffb27f}
body[data-theme="ember"] .teacher-workspace .teacher-test-table .status.archived{border-color:#59505a;background:#2d2a31;color:#d7ced4}
body[data-theme="navy"] .teacher-workspace .teacher-test-table .status.archived{border-color:#3d4768;background:#1d2644;color:#c9cddc}

body[data-theme="ember"] .teacher-workspace{margin-inline:0;border-radius:0;--teacher-dashboard-inset:clamp(12px,1.4vw,26px)}
body[data-theme="navy"] .teacher-workspace{margin-inline:0;border-radius:0;--teacher-dashboard-inset:clamp(12px,1.4vw,26px)}
body[data-theme="ember"] .teacher-workspace .dashboard-head{margin:0 var(--teacher-dashboard-inset) 24px}
body[data-theme="navy"] .teacher-workspace .dashboard-head{margin:0 var(--teacher-dashboard-inset) 24px}
body[data-theme="ember"] .teacher-workspace .stat-grid{width:auto;margin-left:var(--teacher-dashboard-inset);margin-right:var(--teacher-dashboard-inset)}
body[data-theme="navy"] .teacher-workspace .stat-grid{width:auto;margin-left:var(--teacher-dashboard-inset);margin-right:var(--teacher-dashboard-inset)}

body[data-theme="ember"] .card-grid .test-card .pill,body[data-theme="ember"] .practice-set-card .pill{background:#2c2024;border-color:#5a3d42;color:#ffb6a5}
body[data-theme="navy"] .card-grid .test-card .pill,body[data-theme="navy"] .practice-set-card .pill{background:#1a213c;border-color:#37405e;color:#ffa5a5}
body[data-theme="ember"] :is(.card-grid .test-card,.home-test-name) .card-tag-náročné,body[data-theme="ember"] .editor-tags label:has(input[value="náročné"]){background:#392c1b;border-color:#745622;color:#ffd071}
body[data-theme="navy"] :is(.card-grid .test-card,.home-test-name) .card-tag-náročné,body[data-theme="navy"] .editor-tags label:has(input[value="náročné"]){background:#392c1b;border-color:#745622;color:#ffd071}
body[data-theme="ember"] :is(.card-grid .test-card,.home-test-name) .card-tag-extra,body[data-theme="ember"] .editor-tags label:has(input[value="extra"]){background:#3a202c;border-color:#75384f;color:#ff9abf}
body[data-theme="navy"] :is(.card-grid .test-card,.home-test-name) .card-tag-extra,body[data-theme="navy"] .editor-tags label:has(input[value="extra"]){background:#3e2125;border-color:#783a42;color:#ff9a9a}
body[data-theme="ember"] :is(.card-grid .test-card,.home-test-name) .card-tag-maturita,body[data-theme="ember"] .editor-tags label:has(input[value="maturita"]){background:#32243b;border-color:#604875;color:#d5b1f5}
body[data-theme="navy"] :is(.card-grid .test-card,.home-test-name) .card-tag-maturita,body[data-theme="navy"] .editor-tags label:has(input[value="maturita"]){background:#1e2847;border-color:#604875;color:#d5b1f5}
body[data-theme="ember"] :is(.card-grid .test-card,.home-test-name) .card-tag-opakování,body[data-theme="ember"] .editor-tags label:has(input[value="opakování"]){background:#1c352e;border-color:#356150;color:#89dcba}
body[data-theme="navy"] :is(.card-grid .test-card,.home-test-name) .card-tag-opakování,body[data-theme="navy"] .editor-tags label:has(input[value="opakování"]){background:#1c352e;border-color:#356150;color:#89dcba}
body[data-theme="ember"] :is(.card-grid .test-card,.home-test-name) .card-tag-základní,body[data-theme="ember"] .editor-tags label:has(input[value="základní"]){background:#1d2c40;border-color:#3b5b7b;color:#9cc5f4}
body[data-theme="navy"] :is(.card-grid .test-card,.home-test-name) .card-tag-základní,body[data-theme="navy"] .editor-tags label:has(input[value="základní"]){background:#1d2c40;border-color:#3b5b7b;color:#9cc5f4}

body[data-theme="ember"] .test-elapsed:before{background:#69d9ab}
body[data-theme="navy"] .test-elapsed:before{background:#69d9ab}

body[data-theme="ember"] .test-info-dialog,body[data-theme="ember"] .backup-restore-dialog,body[data-theme="ember"] .test-order-dialog{border-color:#503d3f!important;background:#19161b!important;color:#f7eee9!important}
body[data-theme="navy"] .test-info-dialog,body[data-theme="navy"] .backup-restore-dialog,body[data-theme="navy"] .test-order-dialog{border-color:#343c58!important;background:#13182b!important;color:#edeef3!important}
body[data-theme="ember"] .test-info-dialog p,body[data-theme="ember"] .backup-restore-dialog p,body[data-theme="ember"] .test-order-dialog p{color:#c6b5b0!important}
body[data-theme="navy"] .test-info-dialog p,body[data-theme="navy"] .backup-restore-dialog p,body[data-theme="navy"] .test-order-dialog p{color:#acb3ca!important}
body[data-theme="ember"] .question-explanation-dialog .question-explanation-text{color:#c6b5b0}
body[data-theme="navy"] .question-explanation-dialog .question-explanation-text{color:#acb3ca}
body[data-theme="ember"] .backup-file-picker,body[data-theme="ember"] .test-order-item{border-color:#503d3f!important;background:#121217!important;color:#f3e9e4!important}
body[data-theme="navy"] .backup-file-picker,body[data-theme="navy"] .test-order-item{border-color:#343c58!important;background:#111627!important;color:#e7e9f0!important}
body[data-theme="ember"] .backup-restore-cancel{background:#312126!important;color:#ffd9cf!important}
body[data-theme="navy"] .backup-restore-cancel{background:#1b233f!important;color:#ffcfcf!important}

body[data-theme="ember"] .help-card{background:#1b171c}
body[data-theme="navy"] .help-card{background:#13192d}
body[data-theme="ember"] .help-card pre{background:#0e1014;color:#f1dfd8}
body[data-theme="navy"] .help-card pre{background:#0f1323;color:#dfe1ea}
body[data-theme="ember"] .grading-settings .editor-training-toggle{border-color:#96544b;background:#2b1c20;color:#ffd6ca}
body[data-theme="navy"] .grading-settings .editor-training-toggle{border-color:#c81919;background:#182039;color:#ffcaca}
body[data-theme="ember"] .grading-settings .editor-training-toggle:has(input:checked){border-color:#ff7355;background:#452328;color:#fff3ed}
body[data-theme="navy"] .grading-settings .editor-training-toggle:has(input:checked){border-color:#ff5555;background:#482529;color:#f4f5f8}
body[data-theme="ember"] .home-view-button:hover{background:#332226;color:#fff0ea}
body[data-theme="navy"] .home-view-button:hover{background:#3b2023;color:#f2f3f7}

body[data-theme="ember"] .fa-trash-can,body[data-theme="ember"] .fa-xmark,body[data-theme="ember"] .fa-triangle-exclamation{color:#ff9ca8!important}
body[data-theme="navy"] .fa-trash-can,body[data-theme="navy"] .fa-xmark,body[data-theme="navy"] .fa-triangle-exclamation{color:#ff9c9c!important}
body[data-theme="ember"] .fa-check,body[data-theme="ember"] .fa-circle-check,body[data-theme="ember"] .fa-user-check{color:#70d9ad!important}
body[data-theme="navy"] .fa-check,body[data-theme="navy"] .fa-circle-check,body[data-theme="navy"] .fa-user-check{color:#70d9ad!important}
body[data-theme="ember"] .fa-filter,body[data-theme="ember"] .fa-magnifying-glass{color:#ffb16f!important}
body[data-theme="navy"] .fa-filter,body[data-theme="navy"] .fa-magnifying-glass{color:#ffa96f!important}
body[data-theme="ember"] .stat-icon{color:#ff9b72!important}
body[data-theme="navy"] .stat-icon{color:#ff7272!important}

body[data-theme="ember"] input:-webkit-autofill,body[data-theme="ember"] input:-webkit-autofill:hover,body[data-theme="ember"] input:-webkit-autofill:focus,body[data-theme="ember"] textarea:-webkit-autofill,body[data-theme="ember"] select:-webkit-autofill{-webkit-text-fill-color:#f8f1ed!important;caret-color:#f8f1ed;box-shadow:0 0 0 1000px #121217 inset!important;transition:background-color 9999s ease-out 0s}
body[data-theme="navy"] input:-webkit-autofill,body[data-theme="navy"] input:-webkit-autofill:hover,body[data-theme="navy"] input:-webkit-autofill:focus,body[data-theme="navy"] textarea:-webkit-autofill,body[data-theme="navy"] select:-webkit-autofill{-webkit-text-fill-color:#f0f1f5!important;caret-color:#f0f1f5;box-shadow:0 0 0 1000px #111627 inset!important;transition:background-color 9999s ease-out 0s}

body[data-theme="ember"] .home-view-button{border-color:#563e41}
body[data-theme="navy"] .home-view-button{border-color:#363f5c}
body[data-theme="ember"] .home-view-button.is-active{border-color:#b25b4e}
body[data-theme="navy"] .home-view-button.is-active{border-color:#e31d1d}

body[data-theme="ember"] .dashboard-create-actions .dashboard-secondary-action,body[data-theme="ember"] .dashboard-create-actions .dashboard-tertiary-action,body[data-theme="ember"] .actions .table-action-button,body[data-theme="ember"] .download-menu>summary{border-color:#583e40!important;background:#211a1e!important;color:#f4d4cc!important;box-shadow:none!important}
body[data-theme="navy"] .dashboard-create-actions .dashboard-secondary-action,body[data-theme="navy"] .dashboard-create-actions .dashboard-tertiary-action,body[data-theme="navy"] .actions .table-action-button,body[data-theme="navy"] .download-menu>summary{border-color:#37405d!important;background:#151c31!important;color:#f8c8c8!important;box-shadow:none!important}
body[data-theme="ember"] .dashboard-create-actions .dashboard-secondary-action:hover,body[data-theme="ember"] .dashboard-create-actions .dashboard-tertiary-action:hover,body[data-theme="ember"] .actions .table-action-button:hover,body[data-theme="ember"] .download-menu[open]>summary{border-color:#a55a4d!important;background:#322024!important;color:#fff4ee!important}
body[data-theme="navy"] .dashboard-create-actions .dashboard-secondary-action:hover,body[data-theme="navy"] .dashboard-create-actions .dashboard-tertiary-action:hover,body[data-theme="navy"] .actions .table-action-button:hover,body[data-theme="navy"] .download-menu[open]>summary{border-color:#d71b1b!important;background:#391e22!important;color:#f5f6f8!important}

body[data-theme="ember"] .import-grid input[type="file"]::file-selector-button,body[data-theme="ember"] .backup-file-picker strong{border-color:#583e40!important;background:#211a1e!important;color:#f4d4cc!important}
body[data-theme="navy"] .import-grid input[type="file"]::file-selector-button,body[data-theme="navy"] .backup-file-picker strong{border-color:#37405d!important;background:#151c31!important;color:#f8c8c8!important}
body[data-theme="ember"] .import-grid input[type="file"]::file-selector-button:hover,body[data-theme="ember"] .backup-file-picker:hover strong{background:#322024!important;color:#fff4ee!important}
body[data-theme="navy"] .import-grid input[type="file"]::file-selector-button:hover,body[data-theme="navy"] .backup-file-picker:hover strong{background:#391e22!important;color:#f5f6f8!important}

body[data-theme="ember"] .bulk-delete-tests .button{color:#ffb1b9!important}
body[data-theme="navy"] .bulk-delete-tests .button{color:#ffb1b1!important}
body[data-theme="ember"] .bulk-delete-tests .button:hover:not(:disabled){border-color:#9a4c59!important;background:#43242d!important;color:#ffd3d8!important}
body[data-theme="navy"] .bulk-delete-tests .button:hover:not(:disabled){border-color:#cd1919!important;background:#46262a!important;color:#ffd3d3!important}

/* Noční žár – katalog v režimu Jen názvy, známky a ovládání testu. */
body[data-theme="ember"] .home-view-switch{background:#171419;border:1px solid #4d383a}
body[data-theme="navy"] .home-view-switch{background:#121729;border:1px solid #313954}
body[data-theme="ember"] .home-view-button{background:transparent!important;color:#d8c3bd!important}
body[data-theme="navy"] .home-view-button{background:transparent!important;color:#bfc4d6!important}
body[data-theme="ember"] .home-view-button.is-active{background:#402328!important;color:#fff4ee!important;box-shadow:0 5px 14px rgba(235,79,54,.2)}
body[data-theme="navy"] .home-view-button.is-active{background:#442429!important;color:#f5f6f8!important;box-shadow:0 5px 14px rgba(235,54,54,.2)}

body[data-theme="ember"] .home-test-name{background:#19161b;color:#f7eee9;border-color:#49383a;box-shadow:0 10px 24px rgba(0,0,0,.22)}
body[data-theme="navy"] .home-test-name{background:#13182b;color:#edeef3;border-color:#303852;box-shadow:0 10px 24px rgba(0,0,0,.22)}
body[data-theme="ember"] .home-test-name:hover{background:#21191d;border-color:#945348;box-shadow:0 12px 28px rgba(0,0,0,.32)}
body[data-theme="navy"] .home-test-name:hover{background:#151b31;border-color:#c41818;box-shadow:0 12px 28px rgba(0,0,0,.32)}
body[data-theme="ember"] .home-test-name small{color:#b8aaa8}
body[data-theme="navy"] .home-test-name small{color:#9fa7c1}
body[data-theme="ember"] .home-test-name-marker{background:#302229;color:#ffb39b}
body[data-theme="navy"] .home-test-name-marker{background:#1b233f;color:#ff9b9b}
body[data-theme="ember"] .home-test-name.card-color-yellow,body[data-theme="ember"] .home-test-name.card-color-green,body[data-theme="ember"] .home-test-name.card-color-blue,body[data-theme="ember"] .home-test-name.card-color-pink{background:#19161b;border-color:#49383a}
body[data-theme="navy"] .home-test-name.card-color-yellow,body[data-theme="navy"] .home-test-name.card-color-green,body[data-theme="navy"] .home-test-name.card-color-blue,body[data-theme="navy"] .home-test-name.card-color-pink{background:#13182b;border-color:#303852}

body[data-theme="ember"] .home-test-name-actions a,body[data-theme="ember"] .home-test-name-actions .name-practice-link{border-color:#5a4041;background:#20191d;color:#f2d7d0}
body[data-theme="navy"] .home-test-name-actions a,body[data-theme="navy"] .home-test-name-actions .name-practice-link{border-color:#38415f;background:#151b30;color:#dadde8}
body[data-theme="ember"] .home-test-name-actions .name-practice-link:hover{border-color:#a55a4d;background:#342126;color:#fff4ee}
body[data-theme="navy"] .home-test-name-actions .name-practice-link:hover{border-color:#d71b1b;background:#3b2023;color:#f5f6f8}

body[data-theme="ember"] .card-author{color:#b9aaa7}
body[data-theme="navy"] .card-author{color:#9fa7c1}
body[data-theme="ember"] .card-author-avatar{background:#2a242a;color:#ffb7a1;border:1px solid #503f42}
body[data-theme="navy"] .card-author-avatar{background:#1a223d;color:#ffa1a1;border:1px solid #353d59}
body[data-theme="ember"] .card-training-actions [data-practice-link]{border-color:#5a4041;background:#20191d;color:#f2d7d0}
body[data-theme="navy"] .card-training-actions [data-practice-link]{border-color:#38415f;background:#151b30;color:#dadde8}
body[data-theme="ember"] .card-training-actions [data-practice-link]:hover{border-color:#a55a4d;background:#342126;color:#fff4ee}
body[data-theme="navy"] .card-training-actions [data-practice-link]:hover{border-color:#d71b1b;background:#3b2023;color:#f5f6f8}

body[data-theme="ember"] .grade-1{background:#173c31;color:#86e3ba}
body[data-theme="navy"] .grade-1{background:#173c31;color:#86e3ba}
body[data-theme="ember"] .grade-2{background:#103a46;color:#72d6e8}
body[data-theme="navy"] .grade-2{background:#103a46;color:#72d6e8}
body[data-theme="ember"] .grade-3{background:#30274d;color:#cbbcff}
body[data-theme="navy"] .grade-3{background:#30274d;color:#cbbcff}
body[data-theme="ember"] .grade-4{background:#46321d;color:#ffd18a}
body[data-theme="navy"] .grade-4{background:#46321d;color:#ffb98a}
body[data-theme="ember"] .grade-5{background:#47252e;color:#ffb2bd}
body[data-theme="navy"] .grade-5{background:#47252e;color:#ffb2b2}
body[data-theme="ember"] .practice-end-grade{border-color:#4a393b;background:#19161b}
body[data-theme="navy"] .practice-end-grade{border-color:#313953;background:#13182b}
body[data-theme="ember"] .practice-end-grade small,body[data-theme="ember"] .practice-end-grade p{color:#c5b4af}
body[data-theme="navy"] .practice-end-grade small,body[data-theme="navy"] .practice-end-grade p{color:#abb2c9}

body[data-theme="ember"] .test-reading-controls{color:#c5b5b0}
body[data-theme="navy"] .test-reading-controls{color:#abb2ca}
body[data-theme="ember"] .test-reading-controls button{border-color:#563e41;background:#211a1e;color:#fff}
body[data-theme="navy"] .test-reading-controls button{border-color:#363f5c;background:#151c31;color:#ffffff}
body[data-theme="ember"] .test-reading-controls button:hover:not(:disabled){border-color:#a55a4d;background:#322024;color:#fff4ee}
body[data-theme="navy"] .test-reading-controls button:hover:not(:disabled){border-color:#d71b1b;background:#391e22;color:#f5f6f8}
body[data-theme="ember"] .test-reading-controls .test-explanation-toggle{color:#ffd06e}
body[data-theme="navy"] .test-reading-controls .test-explanation-toggle{color:#ffd06e}
body[data-theme="ember"] .test-reading-controls .test-explanation-toggle:hover:not(:disabled){border-color:#b5792b;background:#44301a;color:#ffe5a5}
body[data-theme="navy"] .test-reading-controls .test-explanation-toggle:hover:not(:disabled){border-color:#c75f19;background:#44301a;color:#ffe5a5}
body[data-theme="ember"] .test-info-dialog{border-color:#503d3f;background:#19161b;color:#f7eee9}
body[data-theme="navy"] .test-info-dialog{border-color:#343c58;background:#13182b;color:#edeef3}
body[data-theme="ember"] .test-info-icon,body[data-theme="ember"] .test-info-close{background:#302229;color:#ffb39b}
body[data-theme="navy"] .test-info-icon,body[data-theme="navy"] .test-info-close{background:#1b233f;color:#ff9b9b}

/* Noční žár – vyhodnocení odpovědí a dialog odevzdání. */
body[data-theme="ember"] .question-list .question-card .answer:has(input[type="radio"]:checked),body[data-theme="ember"] .question-list .question-card .answer.is-selected-answer{border-color:#d56555;background:#2d1d22;box-shadow:inset 4px 0 0 #ff7657;color:#fff0e9}
body[data-theme="navy"] .question-list .question-card .answer:has(input[type="radio"]:checked),body[data-theme="navy"] .question-list .question-card .answer.is-selected-answer{border-color:#e84242;background:#331c1f;box-shadow:inset 4px 0 0 #ff5757;color:#f2f3f6}
body[data-theme="ember"] .question-list .question-card .answer:has(input[type="radio"]:checked) b,body[data-theme="ember"] .question-list .question-card .answer.is-selected-answer b{background:#5a3034;color:#ffc8b7}
body[data-theme="navy"] .question-list .question-card .answer:has(input[type="radio"]:checked) b,body[data-theme="navy"] .question-list .question-card .answer.is-selected-answer b{background:#5d3238;color:#ffb7b7}

body[data-theme="ember"] .practice-option.is-correct,body[data-theme="ember"] .practice-option.is-correct.is-explanation-link:hover{border-color:#398d6c!important;background:#193e35!important;color:#a9e9ca!important}
body[data-theme="navy"] .practice-option.is-correct,body[data-theme="navy"] .practice-option.is-correct.is-explanation-link:hover{border-color:#398d6c!important;background:#193e35!important;color:#a9e9ca!important}
body[data-theme="ember"] .practice-option.is-correct b{background:#239c6d!important;color:#fff!important}
body[data-theme="navy"] .practice-option.is-correct b{background:#239c6d!important;color:#ffffff!important}
body[data-theme="ember"] .practice-option.is-wrong,body[data-theme="ember"] .practice-option.is-wrong.is-next-link:hover{border-color:#984f5c!important;background:#482832!important;color:#ffb5bf!important}
body[data-theme="navy"] .practice-option.is-wrong,body[data-theme="navy"] .practice-option.is-wrong.is-next-link:hover{border-color:#ce1919!important;background:#4c292e!important;color:#ffb5b5!important}
body[data-theme="ember"] .practice-option.is-wrong b{background:#ca5264!important;color:#fff!important}
body[data-theme="navy"] .practice-option.is-wrong b{background:#e63636!important;color:#ffffff!important}
body[data-theme="ember"] .practice-option.is-revealed,body[data-theme="ember"] .practice-option.is-revealed.is-explanation-link:hover{border-color:#b99838!important;background:#51451f!important;color:#ffe59a!important}
body[data-theme="navy"] .practice-option.is-revealed,body[data-theme="navy"] .practice-option.is-revealed.is-explanation-link:hover{border-color:#b99838!important;background:#51451f!important;color:#ffe59a!important}
body[data-theme="ember"] .practice-option.is-revealed b{background:#d7b33c!important;color:#302500!important}
body[data-theme="navy"] .practice-option.is-revealed b{background:#d7b33c!important;color:#302500!important}

body[data-theme="ember"] .sequential-question-counter{border-color:#684a50;background:#281b20;color:#ffc7b8}
body[data-theme="navy"] .sequential-question-counter{border-color:#404a6c;background:#171e36;color:#ffb8b8}
body[data-theme="ember"] .sequential-question-counter i{color:#ff9677}
body[data-theme="navy"] .sequential-question-counter i{color:#ff7777}

/* Noční žár – hlavní akce a stavy po odpovědi. */
body[data-theme="ember"] .card-training-actions .card-test-link,body[data-theme="ember"] .card-grid .card-training-actions .card-test-link,body[data-theme="ember"] .home-test-name-actions .name-test-link{border-color:#ff855e!important;background:linear-gradient(135deg,#ffad70,#ff6948 52%,#d94243)!important;color:#fff8f2!important;box-shadow:0 7px 16px rgba(229,73,58,.3)!important}
body[data-theme="navy"] .card-training-actions .card-test-link,body[data-theme="navy"] .card-grid .card-training-actions .card-test-link,body[data-theme="navy"] .home-test-name-actions .name-test-link{border-color:#ff5e5e!important;background:linear-gradient(135deg,#ffa970,#ff4848 52%,#e63535)!important;color:#f7f8fa!important;box-shadow:0 7px 16px rgba(230,57,57,.3)!important}

body[data-theme="ember"] .practice-next .practice-unknown{border-color:#6e5056!important;background:#2a2024!important;color:#ffc6b7!important}
body[data-theme="navy"] .practice-next .practice-unknown{border-color:#465278!important;background:#19213a!important;color:#ffb7b7!important}

body[data-theme="ember"] .practice-question-stats{border-color:#5b4a53!important;background:#211b20!important;color:#ffd2c3!important}
body[data-theme="navy"] .practice-question-stats{border-color:#3b4565!important;background:#151c32!important;color:#ffc3c3!important}
body[data-theme="ember"] .practice-question-stats i{color:#ff9677!important}
body[data-theme="navy"] .practice-question-stats i{color:#ff7777!important}
body[data-theme="ember"] .practice-question-stats span{color:#d7b7ad!important}
body[data-theme="navy"] .practice-question-stats span{color:#f29292!important}

body[data-theme="ember"] .practice-answer-result.correct{border-color:#398d6c!important;background:#193e35!important;color:#a9e9ca!important}
body[data-theme="navy"] .practice-answer-result.correct{border-color:#398d6c!important;background:#193e35!important;color:#a9e9ca!important}
body[data-theme="ember"] .practice-answer-result.wrong{border-color:#984f5c!important;background:#482832!important;color:#ffb5bf!important}
body[data-theme="navy"] .practice-answer-result.wrong{border-color:#ce1919!important;background:#482832!important;color:#ffb5b5!important}
body[data-theme="ember"] .practice-answer-result.unknown{border-color:#b99838!important;background:#51451f!important;color:#ffe59a!important}
body[data-theme="navy"] .practice-answer-result.unknown{border-color:#b99838!important;background:#51451f!important;color:#ffe59a!important}

body[data-theme="ember"] .answer.selected,body[data-theme="ember"] .answer.is-selected-answer,body[data-theme="ember"] .question-list .question-card .answer:has(input[type="radio"]:checked){border-color:#d56555!important;background:#2d1d22!important;box-shadow:inset 4px 0 0 #ff7657!important;color:#fff0e9!important}
body[data-theme="navy"] .answer.selected,body[data-theme="navy"] .answer.is-selected-answer,body[data-theme="navy"] .question-list .question-card .answer:has(input[type="radio"]:checked){border-color:#e84242!important;background:#331c1f!important;box-shadow:inset 4px 0 0 #ff5757!important;color:#f2f3f6!important}
body[data-theme="ember"] .answer.selected b,body[data-theme="ember"] .answer.is-selected-answer b,body[data-theme="ember"] .question-list .question-card .answer:has(input[type="radio"]:checked) b{background:#5a3034!important;color:#ffc8b7!important}
body[data-theme="navy"] .answer.selected b,body[data-theme="navy"] .answer.is-selected-answer b,body[data-theme="navy"] .question-list .question-card .answer:has(input[type="radio"]:checked) b{background:#5d3238!important;color:#ffb7b7!important}

body[data-theme="ember"] .incomplete-test-dialog{border-color:#503d3f;background:#19161b;color:#f7eee9}
body[data-theme="navy"] .incomplete-test-dialog{border-color:#343c58;background:#13182b;color:#edeef3}
body[data-theme="ember"] .incomplete-test-dialog p{color:#c6b5b0}
body[data-theme="navy"] .incomplete-test-dialog p{color:#acb3ca}
body[data-theme="ember"] .incomplete-test-dialog li{background:#482832;color:#ffb3be}
body[data-theme="navy"] .incomplete-test-dialog li{background:#482832;color:#ffb3b3}
body[data-theme="ember"] .incomplete-test-cancel{background:#302229;color:#ffd8ce}
body[data-theme="navy"] .incomplete-test-cancel{background:#1b233f;color:#ffcece}
body[data-theme="ember"] .incomplete-test-confirm{background:linear-gradient(115deg,#f06e58,#d74451);color:#fff}
body[data-theme="navy"] .incomplete-test-confirm{background:linear-gradient(115deg,#f05858,#e63535);color:#ffffff}

/* Noční žár – doplňující ovládání testu a formuláře učitele. */
body[data-theme="ember"] .question-explanation-font-controls button,body[data-theme="ember"] .question-explanation-toolbar .test-info-close{border-color:#563e41!important;background:#211a1e!important;color:#f4d4cc!important}
body[data-theme="navy"] .question-explanation-font-controls button,body[data-theme="navy"] .question-explanation-toolbar .test-info-close{border-color:#363f5c!important;background:#151c31!important;color:#f8c8c8!important}
body[data-theme="ember"] .question-explanation-font-controls button:hover:not(:disabled),body[data-theme="ember"] .question-explanation-toolbar .test-info-close:hover{border-color:#a55a4d!important;background:#322024!important;color:#fff4ee!important}
body[data-theme="navy"] .question-explanation-font-controls button:hover:not(:disabled),body[data-theme="navy"] .question-explanation-toolbar .test-info-close:hover{border-color:#d71b1b!important;background:#391e22!important;color:#f5f6f8!important}

body[data-theme="ember"] .editor-config-row .editor-training-toggle{border-color:#563e41!important;background:#211a1e!important;color:#f4d4cc!important}
body[data-theme="navy"] .editor-config-row .editor-training-toggle{border-color:#363f5c!important;background:#151c31!important;color:#f8c8c8!important}
body[data-theme="ember"] .editor-config-row .editor-training-toggle:has(input:checked){border-color:#d66a55!important;background:#352025!important;color:#fff0e9!important}
body[data-theme="navy"] .editor-config-row .editor-training-toggle:has(input:checked){border-color:#e84343!important;background:#3b2023!important;color:#f2f3f6!important}
body[data-theme="ember"] .editor-config-row .editor-training-toggle input{accent-color:#ff7657}
body[data-theme="navy"] .editor-config-row .editor-training-toggle input{accent-color:#ff5757}

body[data-theme="ember"] .answer:has(input[type="radio"]:checked){border-color:#d56555!important;background:#2d1d22!important;box-shadow:inset 4px 0 0 #ff7657!important;color:#fff0e9!important}
body[data-theme="navy"] .answer:has(input[type="radio"]:checked){border-color:#e84242!important;background:#331c1f!important;box-shadow:inset 4px 0 0 #ff5757!important;color:#f2f3f6!important}
body[data-theme="ember"] .answer:has(input[type="radio"]:checked) b{background:#5a3034!important;color:#ffc8b7!important}
body[data-theme="navy"] .answer:has(input[type="radio"]:checked) b{background:#5d3238!important;color:#ffb7b7!important}

/* Noční žár – sjednocení odkazů a oddělení obsahu. */
body[data-theme="ember"] .topbar nav a:not(.nav-button):hover,body[data-theme="ember"] .text-link:hover,body[data-theme="ember"] .card-bottom a:hover,body[data-theme="ember"] .form-foot a:hover,body[data-theme="ember"] td a:hover{text-shadow:0 0 12px rgba(255,111,78,.2)}
body[data-theme="navy"] .topbar nav a:not(.nav-button):hover,body[data-theme="navy"] .text-link:hover,body[data-theme="navy"] .card-bottom a:hover,body[data-theme="navy"] .form-foot a:hover,body[data-theme="navy"] td a:hover{text-shadow:0 0 12px rgba(255,78,78,.2)}

body[data-theme="ember"] .practice-end-actions button:not(.secondary){background:linear-gradient(135deg,#ffad70,#ff6948 52%,#d94243)!important;box-shadow:0 7px 16px rgba(229,73,58,.3)!important}
body[data-theme="navy"] .practice-end-actions button:not(.secondary){background:linear-gradient(135deg,#ffa970,#ff4848 52%,#e63535)!important;box-shadow:0 7px 16px rgba(230,57,57,.3)!important}
body[data-theme="ember"] .practice-end-actions .secondary{border-color:#63454a!important;background:#211a1e!important;color:#ffb29c!important}
body[data-theme="navy"] .practice-end-actions .secondary{border-color:#3c4667!important;background:#151c31!important;color:#ff9c9c!important}

body[data-theme="ember"] .card-grid .test-card .card-bottom{border-top-color:rgba(255,178,150,.18)!important}
body[data-theme="navy"] .card-grid .test-card .card-bottom{border-top-color:rgba(255,150,150,.18)!important}

body[data-theme="ember"] .question-list.sequential .answer:hover{border-color:#d66a55!important;background:#2b1b1e!important;color:#fff0e9!important}
body[data-theme="navy"] .question-list.sequential .answer:hover{border-color:#e84343!important;background:#311a1d!important;color:#f2f3f6!important}

/* Noční žár – záhlaví testu a upozornění při nevybrané odpovědi. */
body[data-theme="ember"] .test-heading{margin:22px 0 18px;padding:30px 28px 24px;border:1px solid #4a3536;border-radius:20px;background:linear-gradient(105deg,#201619,#15191e);overflow:hidden}
body[data-theme="navy"] .test-heading{margin:22px 0 18px;padding:30px 28px 24px;border:1px solid #2f3751;border-radius:20px;background:linear-gradient(105deg,#141a2e,#13192d);overflow:hidden}

body[data-theme="ember"] .answer-required-dialog{border-color:#7f4b52;background:#1c171c;color:#f8eee9}
body[data-theme="navy"] .answer-required-dialog{border-color:#b41616;background:#13192d;color:#edeff4}
body[data-theme="ember"] .answer-required-icon{background:#45242b;color:#ffadb7}
body[data-theme="navy"] .answer-required-icon{background:#45242b;color:#ffadad}
body[data-theme="ember"] .answer-required-dialog h2{color:#fff3ee}
body[data-theme="navy"] .answer-required-dialog h2{color:#f5f6f8}
body[data-theme="ember"] .answer-required-dialog p{color:#cdb8b1}
body[data-theme="navy"] .answer-required-dialog p{color:#b1b7cd}
body[data-theme="ember"] .answer-required-dialog .button{background:linear-gradient(135deg,#ffad70,#ff6948 52%,#d94243);box-shadow:0 8px 18px rgba(229,73,58,.28)}
body[data-theme="navy"] .answer-required-dialog .button{background:linear-gradient(135deg,#ffa970,#ff4848 52%,#e63535);box-shadow:0 8px 18px rgba(230,57,57,.28)}

body[data-theme="ember"] .home-card-pagination a{border-color:#563e41!important;background:#211a1e!important;color:#ffb29c!important}
body[data-theme="navy"] .home-card-pagination a{border-color:#363f5c!important;background:#151c31!important;color:#ff9c9c!important}
body[data-theme="ember"] .home-card-pagination a:hover{border-color:#a55a4d!important;background:#322024!important;color:#fff4ee!important}
body[data-theme="navy"] .home-card-pagination a:hover{border-color:#d71b1b!important;background:#391e22!important;color:#f5f6f8!important}
body[data-theme="ember"] .home-card-pagination a.is-active{border-color:transparent!important;background:linear-gradient(135deg,#ffad70,#ff6948 52%,#d94243)!important;color:#fff8f2!important}
body[data-theme="navy"] .home-card-pagination a.is-active{border-color:transparent!important;background:linear-gradient(135deg,#ffa970,#ff4848 52%,#e63535)!important;color:#f7f8fa!important}

body[data-theme="ember"] .danger-button{border-color:#914852!important;background:#3a2026!important;color:#ffb0b8!important}
body[data-theme="navy"] .danger-button{border-color:#c11818!important;background:#3a2026!important;color:#ffb0b0!important}
body[data-theme="ember"] .danger-button:hover{border-color:#c85c68!important;background:#4b252d!important;color:#ffd7dc!important}
body[data-theme="navy"] .danger-button:hover{border-color:#e73d3d!important;background:#4e272c!important;color:#ffd7d7!important}

/* Noční žár – odkazy jsou klidné, akcent se zobrazí až při najetí. */
body[data-theme="ember"] .topbar nav a:not(.nav-button),body[data-theme="ember"] .text-link,body[data-theme="ember"] .card-bottom a,body[data-theme="ember"] .form-foot a,body[data-theme="ember"] td a{color:#f8f2ef!important}
body[data-theme="navy"] .topbar nav a:not(.nav-button),body[data-theme="navy"] .text-link,body[data-theme="navy"] .card-bottom a,body[data-theme="navy"] .form-foot a,body[data-theme="navy"] td a{color:#f1f2f6!important}
body[data-theme="ember"] .topbar nav a:not(.nav-button):hover,body[data-theme="ember"] .text-link:hover,body[data-theme="ember"] .card-bottom a:hover,body[data-theme="ember"] .form-foot a:hover,body[data-theme="ember"] td a:hover{color:#ff9a79!important}
body[data-theme="navy"] .topbar nav a:not(.nav-button):hover,body[data-theme="navy"] .text-link:hover,body[data-theme="navy"] .card-bottom a:hover,body[data-theme="navy"] .form-foot a:hover,body[data-theme="navy"] td a:hover{color:#ff7979!important}

/* Noční žár – číselné přehledy a zaškrtávací pole používají hlavní akcent. */
body[data-theme="ember"] input[type="checkbox"]{accent-color:#ff7657}
body[data-theme="navy"] input[type="checkbox"]{accent-color:#ff5757}

body[data-theme="ember"] .test-card .card-teacher-stats{border-color:rgba(255,151,122,.26)!important;background:rgba(32,25,29,.9)!important;color:#ffb19c!important}
body[data-theme="navy"] .test-card .card-teacher-stats{border-color:rgba(255,122,122,.26)!important;background:rgba(21,27,48,.9)!important;color:#ff9c9c!important}
body[data-theme="ember"] .card-teacher-stats span+span{border-left-color:rgba(255,177,156,.2)!important}
body[data-theme="navy"] .card-teacher-stats span+span{border-left-color:rgba(255,156,156,.2)!important}
body[data-theme="ember"] .card-teacher-stats i{color:#ff8c63!important}
body[data-theme="navy"] .card-teacher-stats i{color:#ff6363!important}

body[data-theme="ember"] .combine-source{border-color:#4a393b;background:#1b181d;color:#f6ece8}
body[data-theme="navy"] .combine-source{border-color:#313953;background:#141a2e;color:#ebedf3}
body[data-theme="ember"] .combine-source small{color:#bbaaa6}
body[data-theme="navy"] .combine-source small{color:#9fa7c2}
body[data-theme="ember"] .combine-source input[type="number"]{color-scheme:dark}
body[data-theme="navy"] .combine-source input[type="number"]{color-scheme:dark}

body[data-theme="ember"] .grading-settings .grading-wrong-preview,body[data-theme="ember"] .grading-settings .grading-percent-preview{border-color:#5b4144;background:#211a1e;color:#f1c7b9}
body[data-theme="navy"] .grading-settings .grading-wrong-preview,body[data-theme="navy"] .grading-settings .grading-percent-preview{border-color:#394260;background:#151c31;color:#f6b4b4}
body[data-theme="ember"] .grading-settings .grading-wrong-preview b,body[data-theme="ember"] .grading-settings .grading-percent-preview b{color:#ff8c63;text-shadow:0 1px 8px rgba(255,111,78,.2)}
body[data-theme="navy"] .grading-settings .grading-wrong-preview b,body[data-theme="navy"] .grading-settings .grading-percent-preview b{color:#ff6363;text-shadow:0 1px 8px rgba(255,78,78,.2)}

body[data-theme="ember"] .test-progress{background:#2d2528}
body[data-theme="navy"] .test-progress{background:#1b233f}
body[data-theme="ember"] .test-progress span{background:linear-gradient(90deg,#ffad6b 0%,#ff744a 42%,#ed4048 100%);box-shadow:0 1px 8px rgba(245,74,58,.34)}
body[data-theme="navy"] .test-progress span{background:linear-gradient(90deg,#ffa66b 0%,#ff4a4a 42%,#ed4040 100%);box-shadow:0 1px 8px rgba(245,58,58,.34)}

body[data-theme="ember"] .test-card:before{background:linear-gradient(90deg,#ffad6b 0%,#ff744a 42%,#ed4048 100%)}
body[data-theme="navy"] .test-card:before{background:linear-gradient(90deg,#ffa66b 0%,#ff4a4a 42%,#ed4040 100%)}

body[data-theme="ember"] :is(.test-card,.home-test-name).card-color-yellow{border-color:#765b31;background:linear-gradient(145deg,#302719,#1b181b)}
body[data-theme="navy"] :is(.test-card,.home-test-name).card-color-yellow{border-color:#954612;background:linear-gradient(145deg,#302719,#13192d)}
body[data-theme="ember"] :is(.test-card,.home-test-name).card-color-green{border-color:#3d705d;background:linear-gradient(145deg,#19352d,#171b1c)}
body[data-theme="navy"] :is(.test-card,.home-test-name).card-color-green{border-color:#3d705d;background:linear-gradient(145deg,#19352d,#13192d)}
body[data-theme="ember"] :is(.test-card,.home-test-name).card-color-blue{border-color:#415f7c;background:linear-gradient(145deg,#1b2c3b,#171a1e)}
body[data-theme="navy"] :is(.test-card,.home-test-name).card-color-blue{border-color:#415f7c;background:linear-gradient(145deg,#1b2c3b,#141a2e)}
body[data-theme="ember"] :is(.test-card,.home-test-name).card-color-pink{border-color:#7a455c;background:linear-gradient(145deg,#36202b,#1c181c)}
body[data-theme="navy"] :is(.test-card,.home-test-name).card-color-pink{border-color:#aa1515;background:linear-gradient(145deg,#36202b,#13192d)}

body[data-theme="ember"] .dashboard-performance{border-color:#4a393b;background:linear-gradient(135deg,#1d171b,#17181d)}
body[data-theme="navy"] .dashboard-performance{border-color:#313953;background:linear-gradient(135deg,#13192d,#13192d)}
body[data-theme="ember"] .dashboard-performance-head{color:#f7ece7}
body[data-theme="navy"] .dashboard-performance-head{color:#ebedf3}
body[data-theme="ember"] .dashboard-performance-head i{color:#ff8c63}
body[data-theme="navy"] .dashboard-performance-head i{color:#ff6363}
body[data-theme="ember"] .empty-performance{color:#bbaaa6}
body[data-theme="navy"] .empty-performance{color:#9fa7c2}

body[data-theme="ember"] .practice-session::before{background:linear-gradient(90deg,transparent,#ffad6b 35%,#ff744a 58%,#ed4048 72%,transparent);box-shadow:0 0 10px rgba(245,74,58,.24)}
body[data-theme="navy"] .practice-session::before{background:linear-gradient(90deg,transparent,#ffa66b 35%,#ff4a4a 58%,#ed4040 72%,transparent);box-shadow:0 0 10px rgba(245,58,58,.24)}

body[data-theme="ember"] .app-confirm-dialog{border-color:#503d3f;background:#19161b;color:#f7eee9}
body[data-theme="navy"] .app-confirm-dialog{border-color:#343c58;background:#13182b;color:#edeef3}
body[data-theme="ember"] .app-confirm-dialog p{color:#c6b5b0}
body[data-theme="navy"] .app-confirm-dialog p{color:#acb3ca}
body[data-theme="ember"] .app-confirm-cancel{background:#302229;color:#ffd8ce}
body[data-theme="navy"] .app-confirm-cancel{background:#1b233f;color:#ffcece}
body[data-theme="ember"] .app-confirm-delete{background:linear-gradient(115deg,#f06e58,#d74451);color:#fff}
body[data-theme="navy"] .app-confirm-delete{background:linear-gradient(115deg,#f05858,#e63535);color:#ffffff}

body[data-theme="ember"] .text-repair-notice{border-color:#78622d;background:#332b18;color:#ffe09a}
body[data-theme="navy"] .text-repair-notice{border-color:#78622d;background:#332b18;color:#ffe09a}
body[data-theme="ember"] .text-repair-question{background:#1b181d}
body[data-theme="navy"] .text-repair-question{background:#141a2e}
body[data-theme="ember"] .text-repair-question .editor-question-top small{color:#c6b5b0}
body[data-theme="navy"] .text-repair-question .editor-question-top small{color:#acb3ca}

body[data-theme="ember"] textarea{scrollbar-color:#d7654e #211a1e}
body[data-theme="navy"] textarea{scrollbar-color:#e73e3e #151c31}
body[data-theme="ember"] textarea::-webkit-scrollbar{width:13px}
body[data-theme="navy"] textarea::-webkit-scrollbar{width:13px}
body[data-theme="ember"] textarea::-webkit-scrollbar-track{background:#211a1e}
body[data-theme="navy"] textarea::-webkit-scrollbar-track{background:#151c31}
body[data-theme="ember"] textarea::-webkit-scrollbar-thumb{border:3px solid #211a1e;border-radius:99px;background:#d7654e}
body[data-theme="navy"] textarea::-webkit-scrollbar-thumb{border:3px solid #151c31;border-radius:99px;background:#e73e3e}
body[data-theme="ember"] textarea::-webkit-scrollbar-thumb:hover{background:#ff8c63}
body[data-theme="navy"] textarea::-webkit-scrollbar-thumb:hover{background:#ff6363}
body[data-theme="ember"] textarea::-webkit-scrollbar-button{background:#211a1e}
body[data-theme="navy"] textarea::-webkit-scrollbar-button{background:#151c31}

body[data-theme="ember"] .topbar nav .nav-button{color:#f8f2ef!important}
body[data-theme="navy"] .topbar nav .nav-button{color:#f1f2f6!important}
body[data-theme="ember"] .topbar nav .nav-button:hover{border-color:#a55a4d;background:#322024;color:#ff9a79!important}
body[data-theme="navy"] .topbar nav .nav-button:hover{border-color:#d71b1b;background:#391e22;color:#ff7979!important}

body[data-theme="ember"] .editor-reset-statistics button{border-color:#8c4a54;background:#231a1e;color:#f8f2ef}
body[data-theme="navy"] .editor-reset-statistics button{border-color:#be1818;background:#161c33;color:#f1f2f6}
body[data-theme="ember"] .editor-reset-statistics button i{color:#ff8c63}
body[data-theme="navy"] .editor-reset-statistics button i{color:#ff6363}
body[data-theme="ember"] .editor-reset-statistics button:hover{border-color:#c46758;background:#3a2423;color:#ff9a79}
body[data-theme="navy"] .editor-reset-statistics button:hover{border-color:#e63636;background:#402226;color:#ff7979}

body[data-theme="ember"] .copy-button{background:linear-gradient(115deg,#ff8c63,#ef4b45);color:#fff;box-shadow:0 8px 18px rgba(239,75,69,.24)}
body[data-theme="navy"] .copy-button{background:linear-gradient(115deg,#ff6363,#ef4545);color:#ffffff;box-shadow:0 8px 18px rgba(239,69,69,.24)}
body[data-theme="ember"] .copy-button:hover{background:linear-gradient(115deg,#ff9b70,#f2584c);color:#fff}
body[data-theme="navy"] .copy-button:hover{background:linear-gradient(115deg,#ff7070,#f24c4c);color:#ffffff}

body[data-theme="ember"] .practice-help-dialog h2>i,body[data-theme="ember"] .practice-help-tip>i{color:#ff8c63}
body[data-theme="navy"] .practice-help-dialog h2>i,body[data-theme="navy"] .practice-help-tip>i{color:#ff6363}
body[data-theme="ember"] .practice-help-legend .practice-help-correct{border-color:#3d9c77;background:#193b32;color:#b9ead2}
body[data-theme="navy"] .practice-help-legend .practice-help-correct{border-color:#3d9c77;background:#193b32;color:#b9ead2}
body[data-theme="ember"] .practice-help-legend .practice-help-wrong{border-color:#a55360;background:#41252b;color:#ffc1c8}
body[data-theme="navy"] .practice-help-legend .practice-help-wrong{border-color:#dd1b1b;background:#41252b;color:#ffc1c1}
body[data-theme="ember"] .practice-help-legend .practice-help-unknown{border-color:#b68a32;background:#40361b;color:#ffe3a2}
body[data-theme="navy"] .practice-help-legend .practice-help-unknown{border-color:#b68a32;background:#40361b;color:#ffe3a2}
body[data-theme="ember"] .practice-help-dialog .test-info-close{background:#352027;color:#ff8c63}
body[data-theme="navy"] .practice-help-dialog .test-info-close{background:#1c2441;color:#ff6363}

body[data-theme="ember"] .option-row button{border:1px solid #5b4041;background:#211a1e;color:#ff8c63}
body[data-theme="navy"] .option-row button{border:1px solid #384260;background:#151c31;color:#ff6363}
body[data-theme="ember"] .option-row button:hover{border-color:#a55a4d;background:#322024;color:#ffb08f}
body[data-theme="navy"] .option-row button:hover{border-color:#d71b1b;background:#391e22;color:#ff8f8f}

body[data-theme="ember"] .teacher-workspace .stat-grid b{color:#f6ece8!important}
body[data-theme="navy"] .teacher-workspace .stat-grid b{color:#ebedf3!important}
body[data-theme="ember"] .teacher-workspace .stat-grid .training-stat b{color:#ff8c63!important}
body[data-theme="navy"] .teacher-workspace .stat-grid .training-stat b{color:#ff6363!important}

body[data-theme="ember"] .teacher-workspace .teacher-menu>summary,body[data-theme="ember"] .teacher-workspace .teacher-menu-panel a,body[data-theme="ember"] .teacher-workspace .teacher-menu-panel button,body[data-theme="ember"] .teacher-workspace .teacher-menu-panel i{color:#f8f2ef!important}
body[data-theme="navy"] .teacher-workspace .teacher-menu>summary,body[data-theme="navy"] .teacher-workspace .teacher-menu-panel a,body[data-theme="navy"] .teacher-workspace .teacher-menu-panel button,body[data-theme="navy"] .teacher-workspace .teacher-menu-panel i{color:#f1f2f6!important}
body[data-theme="ember"] .teacher-workspace .teacher-menu>summary:hover,body[data-theme="ember"] .teacher-workspace .teacher-menu[open]>summary,body[data-theme="ember"] .teacher-workspace .teacher-menu-panel a:hover,body[data-theme="ember"] .teacher-workspace .teacher-menu-panel button:hover,body[data-theme="ember"] .teacher-workspace .teacher-menu-panel a:hover i,body[data-theme="ember"] .teacher-workspace .teacher-menu-panel button:hover i{color:#ff9a79!important}
body[data-theme="navy"] .teacher-workspace .teacher-menu>summary:hover,body[data-theme="navy"] .teacher-workspace .teacher-menu[open]>summary,body[data-theme="navy"] .teacher-workspace .teacher-menu-panel a:hover,body[data-theme="navy"] .teacher-workspace .teacher-menu-panel button:hover,body[data-theme="navy"] .teacher-workspace .teacher-menu-panel a:hover i,body[data-theme="navy"] .teacher-workspace .teacher-menu-panel button:hover i{color:#ff7979!important}

body[data-theme="ember"] .add-option{color:#ff8c63}
body[data-theme="navy"] .add-option{color:#ff6363}
body[data-theme="ember"] .add-option:hover{color:#ffb08f}
body[data-theme="navy"] .add-option:hover{color:#ff8f8f}

/* AI průliv: temný produktový motiv s elektrickou modrou a tyrkysovou. */
html[data-theme="aiflow"]{background:#020b19}

body[data-theme="aiflow"]{--green:#4de0a8;--red:#ff8095;--shadow:0 24px 56px rgba(0,0,0,.42);background-image:radial-gradient(circle at 14% 5%,rgba(4,125,255,.19),transparent 27rem),radial-gradient(circle at 87% 13%,rgba(0,198,176,.16),transparent 30rem),linear-gradient(rgba(50,198,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(50,198,255,.035) 1px,transparent 1px);background-size:auto,auto,38px 38px,38px 38px;background-attachment:fixed;color:var(--ink)}

body[data-theme="aiflow"] .topbar{box-shadow:0 8px 28px rgba(0,0,0,.38)}
body[data-theme="aiflow"] .topbar::after{content:"";position:absolute;right:0;bottom:0;left:0;height:2px;background:linear-gradient(90deg,transparent,#0789f8 25%,#00c5b5 52%,#29dc9e 74%,transparent);opacity:.82}
body[data-theme="aiflow"] .brand,body[data-theme="aiflow"] .topbar nav a{color:#f7fbff}
body[data-theme="aiflow"] .brand-mark{background:linear-gradient(135deg,#0789f8,#00c5b5);box-shadow:0 7px 19px rgba(0,155,241,.32)}
body[data-theme="aiflow"] .nav-button,body[data-theme="aiflow"] .user-name{border-color:#225875;background:#082033;color:#e5f7ff}
body[data-theme="aiflow"] .nav-button:hover{border-color:#00bcae;background:#0b3041;color:#fff!important}
body[data-theme="aiflow"] .shell{background:transparent}
body[data-theme="aiflow"] footer{background:transparent;color:#7593a8}

body[data-theme="aiflow"] .topbar nav a:not(.nav-button):hover{background:transparent;color:#74fff0;text-shadow:0 0 14px rgba(0,197,181,.35)}

body[data-theme="aiflow"] .hero h1,body[data-theme="aiflow"] .page-title h1{color:#f8fbff}
body[data-theme="aiflow"] .hero h1 em{color:#00c5b5}
body[data-theme="aiflow"] .eyebrow{color:#35d6ef}
body[data-theme="aiflow"] .lead,body[data-theme="aiflow"] .page-title p:not(.eyebrow),body[data-theme="aiflow"] .info-row{color:var(--muted)}

body[data-theme="aiflow"] .button,body[data-theme="aiflow"] .copy-button{background:linear-gradient(110deg,#0789f8,#00bcae);color:#fff;box-shadow:0 10px 24px rgba(0,153,239,.3)}
body[data-theme="aiflow"] .button:hover,body[data-theme="aiflow"] .copy-button:hover{background:linear-gradient(110deg,#1798ff,#14cdbd);color:#fff}
body[data-theme="aiflow"] .button.secondary,body[data-theme="aiflow"] .filters button,body[data-theme="aiflow"] .actions button,body[data-theme="aiflow"] td form button,body[data-theme="aiflow"] .download-menu>summary{border:1px solid #22556f!important;background:#071d30!important;color:#d8effb!important;box-shadow:none!important}
body[data-theme="aiflow"] .button.secondary:hover,body[data-theme="aiflow"] .filters button:hover,body[data-theme="aiflow"] .actions button:hover,body[data-theme="aiflow"] td form button:hover,body[data-theme="aiflow"] .download-menu[open]>summary{border-color:#00bcae!important;background:#0b3142!important;color:#fff!important}
body[data-theme="aiflow"] .text-link,body[data-theme="aiflow"] td a,body[data-theme="aiflow"] .card-bottom a,body[data-theme="aiflow"] .form-foot a{color:#f7fbff!important}
body[data-theme="aiflow"] .text-link:hover,body[data-theme="aiflow"] td a:hover,body[data-theme="aiflow"] .card-bottom a:hover,body[data-theme="aiflow"] .form-foot a:hover{color:#47e7f5!important;text-shadow:0 0 12px rgba(0,197,181,.22)}

body[data-theme="aiflow"] .hero-art{border:1px solid #16465e;background:linear-gradient(135deg,#06223c,#061522)}
body[data-theme="aiflow"] .mock-card,body[data-theme="aiflow"] .floating-card{border:1px solid #1b4a64;background:#07182a;color:#edf9ff;box-shadow:var(--shadow)}
body[data-theme="aiflow"] .mock-top i{background:#22546a}
body[data-theme="aiflow"] .mock-answer{border-color:#1b4a64;color:#d9edf8}
body[data-theme="aiflow"] .mock-answer.active{border-color:#00bcae;background:#073844;color:#8affef}

body[data-theme="aiflow"] .form-card,body[data-theme="aiflow"] .test-card,body[data-theme="aiflow"] .question-card,body[data-theme="aiflow"] .editor-question,body[data-theme="aiflow"] .stat-grid>div,body[data-theme="aiflow"] .table-wrap,body[data-theme="aiflow"] .practice-session,body[data-theme="aiflow"] .help-card,body[data-theme="aiflow"] .result-hero{border-color:#17435d;background:linear-gradient(145deg,rgba(7,27,46,.97),rgba(3,16,30,.97));box-shadow:var(--shadow)}
body[data-theme="aiflow"] :is(.test-card,.practice-set-card,.my-list-card):hover,body[data-theme="aiflow"] .home-test-name:hover{border-color:#2384a6;box-shadow:0 18px 44px rgba(0,0,0,.4)}
body[data-theme="aiflow"] .test-card:before{background:linear-gradient(90deg,#0789f8,#00c5b5 52%,#41e5a5)}

body[data-theme="aiflow"] label,body[data-theme="aiflow"] .editor-question-top b{color:#d8edf8}
body[data-theme="aiflow"] input,body[data-theme="aiflow"] textarea,body[data-theme="aiflow"] select{border-color:#1c5870;background:#041828;color:#f5fbff}
body[data-theme="aiflow"] input:focus,body[data-theme="aiflow"] textarea:focus,body[data-theme="aiflow"] select:focus{outline-color:rgba(0,197,181,.28);border-color:#00bcae}
body[data-theme="aiflow"] input[type="checkbox"],body[data-theme="aiflow"] input[type="radio"]{accent-color:#00bcae}
body[data-theme="aiflow"] input[type="number"]{color-scheme:dark}
body[data-theme="aiflow"] textarea{scrollbar-color:#00aeb1 #041828}
body[data-theme="aiflow"] textarea::-webkit-scrollbar{width:13px}
body[data-theme="aiflow"] textarea::-webkit-scrollbar-track{background:#041828}
body[data-theme="aiflow"] textarea::-webkit-scrollbar-thumb{border:3px solid #041828;border-radius:99px;background:#00aeb1}
body[data-theme="aiflow"] textarea::-webkit-scrollbar-thumb:hover{background:#35d6ef}
body[data-theme="aiflow"] input:-webkit-autofill,body[data-theme="aiflow"] input:-webkit-autofill:hover,body[data-theme="aiflow"] input:-webkit-autofill:focus,body[data-theme="aiflow"] textarea:-webkit-autofill{-webkit-text-fill-color:#f5fbff!important;caret-color:#f5fbff;box-shadow:0 0 0 1000px #041828 inset!important}

body[data-theme="aiflow"] .notice.success{background:#073b32;color:#9af4cb}
body[data-theme="aiflow"] .notice.error{background:#3a1f31;color:#ffc0ca}
body[data-theme="aiflow"] .text-repair-notice{border-color:#7c6a2b;background:#342f15;color:#ffe5a0}
body[data-theme="aiflow"] .text-repair-question{background:#07182a}
body[data-theme="aiflow"] .text-repair-question .editor-question-top small{color:#a8bacd}

body[data-theme="aiflow"] .test-heading{border-color:#174b64}
body[data-theme="aiflow"] .test-heading h1{color:#f8fbff}
body[data-theme="aiflow"] .question-card legend span{background:linear-gradient(135deg,#0789f8,#00bcae);color:#fff}
body[data-theme="aiflow"] .answer,body[data-theme="aiflow"] .practice-option,body[data-theme="aiflow"] .review{border-color:#1b4a62;background:#061a2b;color:#ecf9ff}
body[data-theme="aiflow"] .answer:hover,body[data-theme="aiflow"] .practice-option:hover{border-color:#00aeba;background:#092c3c;color:#f6fdff}
body[data-theme="aiflow"] .answer b,body[data-theme="aiflow"] .practice-option b{background:#0c3043;color:#a4f5ef}
body[data-theme="aiflow"] .answer span{color:#ebf8ff!important}
body[data-theme="aiflow"] .answer input[type="radio"]{appearance:none;width:14px;height:14px;padding:0!important;border:2px solid #78a9bd!important;border-radius:50%;background:#041525!important;position:relative;flex:0 0 14px}
body[data-theme="aiflow"] .answer input[type="radio"]:checked{border-color:#00c5b5!important;background:#00c5b5!important;box-shadow:0 0 0 2px rgba(0,197,181,.18)}
body[data-theme="aiflow"] .answer input[type="radio"]:checked:after{content:"";position:absolute;inset:3px;border-radius:50%;background:#041525}
body[data-theme="aiflow"] .answer:has(input[type="radio"]:checked),body[data-theme="aiflow"] .answer.is-selected-answer{border-color:#00aeba!important;background:#082f40!important;box-shadow:inset 4px 0 0 #00c5b5!important;color:#f2ffff!important}
body[data-theme="aiflow"] .answer:has(input[type="radio"]:checked) b,body[data-theme="aiflow"] .answer.is-selected-answer b{background:#075466!important;color:#b8fffb!important}

body[data-theme="aiflow"] .test-heading{margin:22px 0 18px;padding:30px 28px 24px;border:1px solid #174b64;border-radius:20px;background:linear-gradient(105deg,#06233b,#061524);overflow:hidden}
body[data-theme="aiflow"] .option-row button{border:1px solid #1d5972;background:#071d30;color:#47e7f5}
body[data-theme="aiflow"] .option-row button:hover{border-color:#00bcae;background:#0b3142;color:#fff}

body[data-theme="aiflow"] .practice-track,body[data-theme="aiflow"] .test-progress{background:#0b2b3d}
body[data-theme="aiflow"] .practice-track span,body[data-theme="aiflow"] .test-progress span{background:linear-gradient(90deg,#0789f8,#00c5b5 55%,#41e5a5);box-shadow:0 1px 8px rgba(0,197,181,.3)}
body[data-theme="aiflow"] .practice-mode-label,body[data-theme="aiflow"] .pill{border:1px solid #1f6379;background:#082c3f;color:#8ff8f0}
body[data-theme="aiflow"] .practice-session::before{background:linear-gradient(90deg,transparent,#0789f8 32%,#00c5b5 57%,#41e5a5 74%,transparent);box-shadow:0 0 12px rgba(0,197,181,.3)}
body[data-theme="aiflow"] .practice-session-head b,body[data-theme="aiflow"] .practice-question-title{color:#f5fbff}
body[data-theme="aiflow"] .practice-session-head span,body[data-theme="aiflow"] .practice-question-number,body[data-theme="aiflow"] .practice-end p{color:#a8bacd}
body[data-theme="aiflow"] .practice-option.is-correct{border-color:#318c6d!important;background:#073d33!important;color:#a5f4cd!important}
body[data-theme="aiflow"] .practice-option.is-correct b{background:#15966e!important;color:#fff!important}
body[data-theme="aiflow"] .practice-option.is-wrong{border-color:#a24d69!important;background:#432233!important;color:#ffc0ca!important}
body[data-theme="aiflow"] .practice-option.is-wrong b{background:#c65372!important;color:#fff!important}
body[data-theme="aiflow"] .practice-option.is-revealed{border-color:#bd9c35!important;background:#433a17!important;color:#ffe59b!important}
body[data-theme="aiflow"] .practice-option.is-revealed b{background:#d2aa2e!important;color:#181509!important}
body[data-theme="aiflow"] .practice-end-actions .secondary{border-color:#22556f;background:#071d30;color:#d8effb}
body[data-theme="aiflow"] .practice-end-actions button:not(.secondary){background:linear-gradient(110deg,#0789f8,#00bcae)!important;box-shadow:0 10px 24px rgba(0,153,239,.3)!important}
body[data-theme="colorful"] .practice-end-actions button:not(.secondary){background:linear-gradient(115deg,#c334ac,#7b5bea 52%,#00a7b5)!important;box-shadow:0 10px 22px rgba(169,49,173,.25)!important}

body[data-theme="aiflow"] .result-hero{background:linear-gradient(125deg,#062740,#061524)}
body[data-theme="aiflow"] .result-hero h2{color:#52e9df}
body[data-theme="aiflow"] .score-ring{background:conic-gradient(#00c5b5 calc(var(--score)*1%),#17394c 0)}
body[data-theme="aiflow"] .score-ring:before{background:#061727}
body[data-theme="aiflow"] .review-icon{background:#073c33;color:#86f2c1}
body[data-theme="aiflow"] .wrong .review-icon{background:#442235;color:#ffb7c4}
body[data-theme="aiflow"] .grade-1{background:#073c33;color:#8df1c4}
body[data-theme="aiflow"] .grade-2{background:#073848;color:#6ad8ee}
body[data-theme="aiflow"] .grade-3{background:#092e52;color:#a6d9ff}
body[data-theme="aiflow"] .grade-4{background:#403715;color:#ffe293}
body[data-theme="aiflow"] .grade-5{background:#452337;color:#ffc0ca}
body[data-theme="aiflow"] .practice-end-grade{border-color:#17435d;background:#061727}
body[data-theme="aiflow"] .practice-end-grade small,body[data-theme="aiflow"] .practice-end-grade p{color:#a8bacd}

body[data-theme="aiflow"] th,body[data-theme="aiflow"] td{border-color:#164158}
body[data-theme="aiflow"] tr:hover td{background:rgba(0,197,181,.055)}
body[data-theme="aiflow"] .status.published{background:#073d33;color:#7deab9}
body[data-theme="aiflow"] .status.draft{background:#3d3515;color:#ffe08f}
body[data-theme="aiflow"] .status.archived{background:#202f3b;color:#bfced8}

body[data-theme="aiflow"] .home-view-switch{border:1px solid #17465e;background:#061725}
body[data-theme="aiflow"] .home-view-button{background:transparent!important;color:#b9d7e6!important}
body[data-theme="aiflow"] .home-view-button:hover{background:#0a2b3c!important;color:#f1fdff!important}
body[data-theme="aiflow"] .home-view-button.is-active{border-color:#16829a;background:#093b4d!important;color:#a7fff5!important;box-shadow:0 6px 15px rgba(0,197,181,.18)}
body[data-theme="aiflow"] .home-test-name{border-color:#17435d;background:#071827;color:#f2fbff;box-shadow:0 10px 24px rgba(0,0,0,.25)}
body[data-theme="aiflow"] .home-test-name small,body[data-theme="aiflow"] .card-author{color:#a8bacd}
body[data-theme="aiflow"] .home-test-name-marker,body[data-theme="aiflow"] .card-author-avatar{border:1px solid #1c5870;background:#0a2b3c;color:#92f9f2}
body[data-theme="aiflow"] .home-test-name-actions a,body[data-theme="aiflow"] .card-training-actions [data-practice-link]{border-color:#22556f;background:#071d30;color:#d8effb}
body[data-theme="aiflow"] .home-test-name-actions a:hover,body[data-theme="aiflow"] .card-training-actions [data-practice-link]:hover{border-color:#00aeba;background:#0b3142;color:#fff}
body[data-theme="aiflow"] .home-test-name-actions .name-test-link,body[data-theme="aiflow"] .card-training-actions .card-test-link{border-color:transparent;background:linear-gradient(110deg,#0789f8,#00bcae);color:#fff}

body[data-theme="aiflow"] .teacher-workspace{--teacher-surface:#071827;--teacher-soft:#092033;--teacher-border:#17435d;--teacher-text:#f2fbff;--teacher-muted:#a8bacd;--teacher-hover:#0b2a3b;border:1px solid #17435d;background:linear-gradient(135deg,rgba(4,49,82,.48),rgba(3,24,41,.55))}
body[data-theme="aiflow"] .teacher-workspace .teacher-test-toolbar,body[data-theme="aiflow"] .teacher-workspace .teacher-menu-panel{border-color:#17435d;background:#071827}
body[data-theme="aiflow"] .teacher-workspace .teacher-test-table th{background:#051525}
body[data-theme="aiflow"] .teacher-workspace .teacher-test-table tr.is-selected{background:rgba(0,197,181,.14)}
body[data-theme="aiflow"] .teacher-workspace .teacher-test-table .pill{border-color:#20657a;background:#083044;color:#a4fbf2}
body[data-theme="aiflow"] .teacher-workspace .teacher-test-table .status.published{border-color:#2d8669;background:#073d33;color:#7deab9}
body[data-theme="aiflow"] .teacher-workspace .teacher-test-table .status.draft{border-color:#927a26;background:#3d3515;color:#ffe08f}
body[data-theme="aiflow"] .teacher-workspace .teacher-menu>summary,body[data-theme="aiflow"] .teacher-workspace .teacher-menu-panel a,body[data-theme="aiflow"] .teacher-workspace .teacher-menu-panel button,body[data-theme="aiflow"] .teacher-workspace .teacher-menu-panel i{color:#f3fbff!important}
body[data-theme="aiflow"] .teacher-workspace .teacher-menu>summary:hover,body[data-theme="aiflow"] .teacher-workspace .teacher-menu[open]>summary,body[data-theme="aiflow"] .teacher-workspace .teacher-menu-panel a:hover,body[data-theme="aiflow"] .teacher-workspace .teacher-menu-panel button:hover,body[data-theme="aiflow"] .teacher-workspace .teacher-menu-panel a:hover i,body[data-theme="aiflow"] .teacher-workspace .teacher-menu-panel button:hover i{color:#fff!important}
body[data-theme="aiflow"] .teacher-workspace .stat-grid b{color:#f3fbff!important}
body[data-theme="aiflow"] .teacher-workspace .stat-grid .training-stat b{color:#43e6d8!important}

body[data-theme="aiflow"] .teacher-workspace{margin-inline:0;border-radius:0;--teacher-dashboard-inset:clamp(12px,1.4vw,26px)}
body[data-theme="aiflow"] .teacher-workspace .dashboard-head{margin:0 var(--teacher-dashboard-inset) 24px}
body[data-theme="aiflow"] .teacher-workspace .stat-grid{width:auto;margin-left:var(--teacher-dashboard-inset);margin-right:var(--teacher-dashboard-inset)}
body:is([data-theme="aiflow"],[data-theme="ember"]) .teacher-workspace :is(.teacher-list-heading,.teacher-test-toolbar,.table-wrap,.teacher-archive){margin-left:var(--teacher-dashboard-inset);margin-right:var(--teacher-dashboard-inset)}
body[data-theme="navy"] .teacher-workspace :is(.teacher-list-heading,.teacher-test-toolbar,.table-wrap,.teacher-archive){margin-left:var(--teacher-dashboard-inset);margin-right:var(--teacher-dashboard-inset)}

/* Framed themes: Moje výuka spans the whole window; the panel inset keeps content off the edges. */
body:is([data-theme="aiflow"],[data-theme="ember"]).teacher-wide-layout .shell{max-width:none;padding-left:0;padding-right:0}
body[data-theme="navy"].teacher-wide-layout .shell{max-width:none;padding-left:0;padding-right:0}

body:is([data-theme="aiflow"],[data-theme="ember"]) .teacher-workspace{border-left:0;border-right:0;--teacher-dashboard-inset:clamp(16px,2vw,32px)}
body[data-theme="navy"] .teacher-workspace{border-left:0;border-right:0;--teacher-dashboard-inset:clamp(16px,2vw,32px)}

body:is([data-theme="aiflow"],[data-theme="ember"]).teacher-wide-layout .shell>.notice{margin-left:clamp(16px,2vw,32px);margin-right:clamp(16px,2vw,32px)}
body[data-theme="navy"].teacher-wide-layout .shell>.notice{margin-left:clamp(16px,2vw,32px);margin-right:clamp(16px,2vw,32px)}

body[data-theme="aiflow"] .combine-source,body[data-theme="aiflow"] .grading-settings .grading-wrong-preview,body[data-theme="aiflow"] .grading-settings .grading-percent-preview{border-color:#1a4b63;background:#061827;color:#ddf3fc}
body[data-theme="aiflow"] .combine-source small{color:#a8bacd}
body[data-theme="aiflow"] .grading-settings .grading-wrong-preview b,body[data-theme="aiflow"] .grading-settings .grading-percent-preview b,body[data-theme="aiflow"] .add-option{color:#43e6d8}
body[data-theme="aiflow"] .grading-settings .editor-training-toggle,body[data-theme="aiflow"] .editor-config-row .editor-training-toggle{border-color:#22556f!important;background:#071d30!important;color:#d8effb!important}
body[data-theme="aiflow"] .grading-settings .editor-training-toggle:has(input:checked),body[data-theme="aiflow"] .editor-config-row .editor-training-toggle:has(input:checked){border-color:#00bcae!important;background:#083b49!important;color:#d7fff9!important}

body[data-theme="aiflow"] .test-info-dialog,body[data-theme="aiflow"] .backup-restore-dialog,body[data-theme="aiflow"] .test-order-dialog,body[data-theme="aiflow"] .app-confirm-dialog,body[data-theme="aiflow"] .answer-required-dialog{border-color:#1d5770!important;background:#071827!important;color:#f3fbff!important}
body[data-theme="aiflow"] :is(.test-info-dialog,.backup-restore-dialog,.test-order-dialog,.app-confirm-dialog,.answer-required-dialog) p{color:#a8bacd!important}
body[data-theme="aiflow"] .backup-file-picker,body[data-theme="aiflow"] .test-order-item{border-color:#1b4d66!important;background:#041828!important;color:#e6f7ff!important}
body[data-theme="aiflow"] .backup-restore-cancel,body[data-theme="aiflow"] .app-confirm-cancel{background:#0b2b3c!important;color:#cdebf7!important}
body[data-theme="aiflow"] .app-confirm-delete{background:linear-gradient(115deg,#f15d7c,#cf3f67)!important;color:#fff!important}
body[data-theme="aiflow"] .editor-reset-statistics button{border-color:#8c4d67!important;background:#321f30!important;color:#ffc4d0!important}
body[data-theme="aiflow"] .editor-reset-statistics button:hover{border-color:#d26083!important;background:#47253b!important;color:#ffe2e8!important}

body[data-theme="aiflow"] .practice-help-dialog h2>i,body[data-theme="aiflow"] .practice-help-tip>i,body[data-theme="aiflow"] .test-info-icon,body[data-theme="aiflow"] .test-info-close{color:#47e7f5}
body[data-theme="aiflow"] .practice-help-legend .practice-help-correct{border-color:#318c6d;background:#073d33;color:#a5f4cd}
body[data-theme="aiflow"] .practice-help-legend .practice-help-wrong{border-color:#a24d69;background:#432233;color:#ffc0ca}
body[data-theme="aiflow"] .practice-help-legend .practice-help-unknown{border-color:#bd9c35;background:#433a17;color:#ffe59b}
body[data-theme="aiflow"] .practice-help-dialog .test-info-close{background:#092b3b}
body[data-theme="aiflow"] .answer-required-icon{background:#3f2132;color:#ffc0ca}
body[data-theme="aiflow"] .danger-button{border-color:#9d4d68!important;background:#402033!important;color:#ffc0ca!important}
body[data-theme="aiflow"] .danger-button:hover{border-color:#d26083!important;background:#52243e!important;color:#ffe1e8!important}

body[data-theme="aiflow"] .fa-trash-can,body[data-theme="aiflow"] .fa-xmark,body[data-theme="aiflow"] .fa-triangle-exclamation{color:#ff91a6!important}
body[data-theme="aiflow"] .fa-check,body[data-theme="aiflow"] .fa-circle-check,body[data-theme="aiflow"] .fa-user-check{color:#51e5ae!important}
body[data-theme="aiflow"] .fa-filter,body[data-theme="aiflow"] .fa-magnifying-glass,body[data-theme="aiflow"] .stat-icon{color:#47e7f5!important}

/* AI průliv musí zůstat nad tmavými pravidly, která aplikace vkládá skriptem až po stylesheetu. */
body[data-theme="aiflow"]{--ink:#f7fbff!important;--muted:#a8bacd!important;--purple:#0789f8!important;--blue:#00bcae!important;--line:#17435d!important;background-color:#020b19!important}
body[data-theme="aiflow"] .topbar{background:rgba(2,11,25,.9)!important;border-color:#16455f!important}
body[data-theme="aiflow"] :is(.form-card,.test-card,.stat-grid>div,.table-wrap,.mock-card){border-color:#17435d!important;background:#071a2d!important}
body[data-theme="aiflow"] .question-card{border-color:#17435d!important;background:#061727!important}
body[data-theme="aiflow"] :is(input,textarea,select){border-color:#1c5870!important;background:#041828!important;color:#f5fbff!important}
body[data-theme="aiflow"] :is(.answer,.review){border-color:#1b4a62!important;background:#061a2b!important;color:#ecf9ff!important}
body[data-theme="aiflow"] :is(.hero-art,.result-hero){background:linear-gradient(135deg,#062740,#061524)!important}
body[data-theme="aiflow"] th{background:#051525!important;color:#c6e4f2!important}
body[data-theme="aiflow"] footer{border-color:#12394f!important}

body[data-theme="aiflow"] :is(.test-card,.home-test-name).card-color-yellow{border-color:#9a8730!important;background:linear-gradient(145deg,#393617,#081927)!important}
body[data-theme="aiflow"] :is(.test-card,.home-test-name).card-color-green{border-color:#2f9979!important;background:linear-gradient(145deg,#07483c,#061827)!important}
body[data-theme="aiflow"] :is(.test-card,.home-test-name).card-color-blue{border-color:#268ebd!important;background:linear-gradient(145deg,#093e68,#061827)!important}
body[data-theme="aiflow"] :is(.test-card,.home-test-name).card-color-pink{border-color:#a1559b!important;background:linear-gradient(145deg,#42234e,#081827)!important}

/* Choice dialog buttons: repeated classes outrank the light-theme button rules injected by app.js. */
.app-choice-dialog{width:min(100%,580px)}

.app-choice-dialog .app-confirm-actions{flex-wrap:wrap}

.app-confirm-dialog.app-choice-dialog h2 i.fa-solid{color:#d99a1b!important}

body[data-theme="ember"] .app-confirm-dialog.app-choice-dialog h2 i.fa-solid{color:#ffad6b!important}
body[data-theme="navy"] .app-confirm-dialog.app-choice-dialog h2 i.fa-solid{color:#ffa66b!important}

body:is([data-theme],:not([data-theme])) .app-confirm-overlay .app-choice-dialog .app-confirm-actions button.app-choice-primary.app-choice-primary.app-choice-primary{border:0!important;background:linear-gradient(115deg,#6f5cf0,#4f7cf4)!important;color:#fff!important}

body:is([data-theme],:not([data-theme])) .app-confirm-overlay .app-choice-dialog .app-confirm-actions button.app-choice-secondary.app-choice-secondary.app-choice-secondary{border:0!important;background:#fff4d8!important;color:#7a5a0e!important}

body:is([data-theme="dark"],[data-theme="aiflow"]) .app-confirm-overlay .app-choice-dialog .app-confirm-actions button.app-choice-secondary.app-choice-secondary.app-choice-secondary{background:#3c3521!important;color:#ffe6a0!important}

body[data-theme="aiflow"] .app-confirm-overlay .app-choice-dialog .app-confirm-actions button.app-choice-primary.app-choice-primary.app-choice-primary{background:linear-gradient(115deg,#2f7bff,#14c4c8)!important}

body[data-theme="ember"] .app-confirm-overlay .app-choice-dialog .app-confirm-actions button.app-choice-primary.app-choice-primary.app-choice-primary{background:linear-gradient(115deg,#ffad6b,#ff744a,#ed4048)!important}
body[data-theme="navy"] .app-confirm-overlay .app-choice-dialog .app-confirm-actions button.app-choice-primary.app-choice-primary.app-choice-primary{background:linear-gradient(115deg,#ffa66b,#ff4a4a,#ed4040)!important}

body[data-theme="ember"] .app-confirm-overlay .app-choice-dialog .app-confirm-actions button.app-choice-secondary.app-choice-secondary.app-choice-secondary{background:#302229!important;color:#ffd8ce!important}
body[data-theme="navy"] .app-confirm-overlay .app-choice-dialog .app-confirm-actions button.app-choice-secondary.app-choice-secondary.app-choice-secondary{background:#1b233f!important;color:#ffcece!important}

/* Practice question count dialog (tests with more than 20 questions). */
.practice-count-dialog{width:min(100%,460px)}

.app-confirm-dialog.practice-count-dialog h2 i.fa-solid{color:#6f5cf0!important}

body:is([data-theme="dark"],[data-theme="aiflow"]) .app-confirm-dialog.practice-count-dialog h2 i.fa-solid{color:#8fb0ff!important}

body[data-theme="aiflow"] .app-confirm-dialog.practice-count-dialog h2 i.fa-solid{color:#14c4c8!important}

body[data-theme="ember"] .app-confirm-dialog.practice-count-dialog h2 i.fa-solid{color:#ffad6b!important}
body[data-theme="navy"] .app-confirm-dialog.practice-count-dialog h2 i.fa-solid{color:#ffa66b!important}

.practice-count-field{display:grid;gap:8px;margin:20px 0 0;color:inherit}

.practice-count-label{font-size:15px;font-weight:700}

.practice-count-row{display:flex;align-items:center;gap:12px}

.practice-count-row input{width:110px;margin:0;font-size:18px;font-weight:700;text-align:center}

.practice-count-total{font-size:17px;font-weight:700;opacity:.75}

body:is([data-theme="dark"],[data-theme="ember"],[data-theme="aiflow"]) .practice-count-row input{color-scheme:dark}
body[data-theme="navy"] .practice-count-row input{color-scheme:dark}

/* Practice start dialog: practice vs. mock exam. Compact (short descriptions, 32px icons) so that all modes fit on a notebook (1366×768) and a phone without scrolling. */
.practice-start-modes{display:grid;grid-template-columns:1fr;gap:8px;margin:6px 0 0}

.practice-start-mode{position:relative;display:flex;align-items:center;gap:12px;margin:0;padding:10px 12px;border:2px solid #dfe4f5;border-radius:14px;background:#f8f9ff;color:inherit;font-weight:400;cursor:pointer;transition:border-color .15s ease,background .15s ease}

.practice-start-mode{outline:none}

.practice-start-mode:hover{border-color:#b9b3f2}

.practice-start-mode:is(:hover,:focus-visible){border-color:#6f5cf0;background:#f1efff;box-shadow:0 0 0 3px rgba(111,92,240,.15)}

.practice-start-mode-icon{display:grid;flex:0 0 32px;width:32px;height:32px;place-items:center;border-radius:9px;background:#e9e6ff;color:#6f5cf0;font-size:15px}

.practice-start-mode-text{display:grid;gap:1px;min-width:0}

.practice-start-mode-text b{font-size:15px}

.practice-start-mode-text small{font-size:12.5px;line-height:1.35;opacity:.8}

.practice-count-hint{font-size:13px;opacity:.75}

.practice-start-dialog .practice-count-field{margin:4px 0 18px}

.practice-start-dialog .practice-count-field[hidden]{display:none}

/* Heading row with × (back), which iPhones need: the dialog fills the screen there. Up to 430 px the title is short, without the dumbbell and with a narrower padding, so it stays on one line even with the wide iPhone font. */
.practice-start-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}
.practice-start-head h2{min-width:0;margin:0}
@media(max-width:430px){
  .practice-start-title-long{display:none}
  .practice-start-head h2>i.fa-solid{display:none}
  .app-confirm-dialog.practice-start-dialog{padding:24px 20px}
}

/* Modes stacked, then the optional question count and the start button, both centred. */
.practice-start-dialog .practice-count-field{justify-items:center;text-align:center}

.practice-start-mode-last{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:999px;background:rgba(111,92,240,.12);color:#5b4bd6;font-size:11px;font-weight:700;letter-spacing:.02em;vertical-align:2px}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .practice-start-mode-last{background:rgba(255,255,255,.1);color:inherit}
body[data-theme="navy"] .practice-start-mode-last{background:rgba(255,255,255,.1);color:inherit}

body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-start-mode{border-color:#3d4b70;background:#1a2133}

body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-start-mode:is(:hover,:focus-visible){border-color:#8f84ff;background:#262f4b;box-shadow:0 0 0 3px rgba(143,132,255,.18)}

body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-start-mode-icon{background:#303a58;color:#c9c2ff}

body[data-theme="aiflow"] .practice-start-mode{border-color:#1b4d66;background:#041828}

body[data-theme="aiflow"] .practice-start-mode:is(:hover,:focus-visible){border-color:#14c4c8;background:#082f40;box-shadow:0 0 0 3px rgba(20,196,200,.18)}

body[data-theme="aiflow"] .practice-start-mode-icon{background:#0c3043;color:#a4f5ef}

body[data-theme="ember"] .practice-start-mode{border-color:#4a393b;background:#1b181d}
body[data-theme="navy"] .practice-start-mode{border-color:#313953;background:#141a2e}

body[data-theme="ember"] .practice-start-mode:is(:hover,:focus-visible){border-color:#ff744a;background:#2d1d22;box-shadow:0 0 0 3px rgba(255,116,74,.18)}
body[data-theme="navy"] .practice-start-mode:is(:hover,:focus-visible){border-color:#ff4a4a;background:#331c1f;box-shadow:0 0 0 3px rgba(255,74,74,.18)}

body[data-theme="ember"] .practice-start-mode-icon{background:#33272a;color:#ffad6b}
body[data-theme="navy"] .practice-start-mode-icon{background:#1d2644;color:#ffa66b}

body[data-theme="colorful"] .practice-start-mode{border-color:#e2c6e4;background:#fffaff}

body[data-theme="colorful"] .practice-start-mode:is(:hover,:focus-visible){border-color:#b951b5;background:#fff0fa;box-shadow:0 0 0 3px rgba(185,81,181,.15)}

@media(max-width:600px){
  .practice-start-mode{padding:10px 12px}
}

/* Flashcards (practice mode "cards"): both faces share one grid cell, so the card is as tall as the longer face. Options, answer and explanation follow A−/A+. */
.flashcard{--card-bg:#fff;--card-line:#dfe4f5;--card-back-bg:#effaf5;--card-back-line:#5fbd92;--card-answer:#126f50;--card-muted:#69738b;--card-badge:#e9e6ff;--card-badge-ink:#5251bf;--card-bulb:#d69a00;display:block;margin:8px 0 18px;perspective:1600px;cursor:pointer;outline:none}

.flashcard-inner{display:grid;transition:transform .55s cubic-bezier(.3,.7,.3,1);transform-style:preserve-3d}

.flashcard.is-flipped .flashcard-inner{transform:rotateY(180deg)}

.flashcard-face{grid-area:1/1;display:flex;flex-direction:column;justify-content:center;gap:16px;min-height:300px;padding:34px 36px;border:2px solid var(--card-line);border-radius:20px;background:var(--card-bg);box-shadow:0 14px 36px rgba(35,46,92,.08);backface-visibility:hidden;-webkit-backface-visibility:hidden;text-align:center}

.flashcard-back{border-color:var(--card-back-line);background:var(--card-back-bg);transform:rotateY(180deg)}

.flashcard:not(.is-flipped) .flashcard-back,.flashcard.is-flipped .flashcard-front{pointer-events:none}

.flashcard:focus-visible .flashcard-face{box-shadow:0 0 0 4px rgba(111,92,240,.35)}

.flashcard .practice-question-title{margin:0}

.flashcard-options{display:grid;gap:8px;margin:0 auto;padding:0;list-style:none;text-align:left;max-width:640px;width:100%}

.flashcard-options[hidden]{display:none}

.flashcard-options li{display:flex;align-items:flex-start;gap:10px;font-size:calc(var(--testio-answer-font-size,16px) + 1px);line-height:1.45}

.flashcard-options b{display:grid;flex:0 0 28px;height:28px;place-items:center;border-radius:8px;background:var(--card-badge);color:var(--card-badge-ink);font-size:14px}

body:is([data-theme],:not([data-theme])) .flashcard .flashcard-options-toggle.flashcard-options-toggle{align-self:center;width:auto;margin:0;padding:4px 8px;border:0!important;border-radius:8px;background:transparent!important;box-shadow:none!important;color:var(--card-badge-ink)!important;font-family:inherit;font-size:15px;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}

.flashcard-hint{margin:6px 0 0;color:var(--card-muted);font-size:14px}

.flashcard-label{margin:0;color:var(--card-muted);font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}

.flashcard-answer{margin:0;color:var(--card-answer);font-size:calc(var(--testio-answer-font-size,16px) * 1.625);font-weight:800;line-height:1.3}

.flashcard-explanation{display:flex;align-items:flex-start;gap:10px;max-width:680px;margin:4px auto 0;font-size:calc(var(--testio-answer-font-size,16px) + 1px);line-height:1.55;text-align:left}

.flashcard-explanation i.fa-solid{flex:0 0 auto;margin-top:4px;color:var(--card-bulb)!important}

.practice-next-actions button[hidden]{display:none!important}

/* 50/50 hint in practice: an inconspicuous outlined button left of Nevím; removed options stay in place, greyed and struck through. */
body:is([data-theme],:not([data-theme])) .practice-session .practice-next button.practice-fifty.practice-fifty.practice-fifty.practice-fifty{border:1px dashed #b9bfdc!important;background:transparent!important;color:#5c6385!important;box-shadow:none!important;font-variant-numeric:tabular-nums}

body:is([data-theme],:not([data-theme])) .practice-session .practice-next button.practice-fifty.practice-fifty.practice-fifty.practice-fifty:hover:not(:disabled){border-style:solid!important;background:transparent!important;filter:none!important;transform:none!important;box-shadow:none!important}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .practice-session .practice-next button.practice-fifty.practice-fifty.practice-fifty.practice-fifty.practice-fifty{border-color:#56627f!important;color:#b8c2dc!important}
body[data-theme="navy"] .practice-session .practice-next button.practice-fifty.practice-fifty.practice-fifty.practice-fifty.practice-fifty{border-color:#56627f!important;color:#bec4d6!important}

body[data-theme="colorful"] .practice-session .practice-next button.practice-fifty.practice-fifty.practice-fifty.practice-fifty.practice-fifty{border-color:#d7a9d9!important;color:#8a3f8c!important}

.practice-session .practice-options .practice-option.is-eliminated{opacity:.35!important;cursor:default;filter:grayscale(1)}

.practice-session .practice-options .practice-option.is-eliminated span{text-decoration:line-through}

.practice-end-hints{margin:-4px 0 0;font-size:14px;opacity:.75}

/* Slabé otázky na konci tréninku: uložené chyby (konec běžného tréninku) nebo kolik jich zbývá (konec slabých otázek), tlumenou barvou jako ostatní text konce (pravidla motivů pro .practice-end p) s terčem v akcentu motivu a tučným slovem. */
.practice-end p.practice-end-weak{max-width:640px;margin:0 auto;line-height:1.5;text-align:center}
body:is([data-theme],:not([data-theme])) .practice-end .practice-end-weak i{margin-right:7px;font-size:15px;color:var(--t-accent)!important}

@media(max-width:600px){
  .practice-next-actions.has-fifty{flex-wrap:wrap}
  .practice-next-actions.has-fifty>button:last-child{flex:1 0 100%}
  /* Vedle šipek jsou tlačítka úzká: s okraji 19 px by „Nevím“ přeteklo doprava a „50/50 · 2“ se zalomilo, proto menší okraje a jeden řádek. Flex text vystředí i tehdy, když se nevejde (přesahuje pak rovnoměrně na obě strany). */
  .practice-next-actions>button:is(.practice-unknown,.practice-fifty){display:flex;align-items:center;justify-content:center;padding-right:6px!important;padding-left:6px!important;white-space:nowrap}
}

/* The explanation is printed on the back of the card, so the header light bulb is not needed. */
.practice-session.is-cards .test-reading-controls .test-explanation-toggle{display:none!important}

body[data-theme="colorful"] .flashcard{--card-line:#e2c6e4;--card-badge:#fbe3f6;--card-badge-ink:#9b3b98}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .flashcard{--card-muted:#9aa6c4;--card-bulb:#ffd166}
body[data-theme="navy"] .flashcard{--card-muted:#9aa6c4;--card-bulb:#ffd166}

body[data-theme="dark"] .flashcard{--card-bg:#1a2133;--card-line:#3d4b70;--card-back-bg:#11271f;--card-back-line:#2f8a63;--card-answer:#7ee2b0;--card-badge:#303a58;--card-badge-ink:#c9c2ff}

body[data-theme="ember"] .flashcard{--card-bg:#1b181d;--card-line:#4a393b;--card-back-bg:#15231e;--card-back-line:#2f7a5c;--card-answer:#7ee2b0;--card-badge:#33272a;--card-badge-ink:#ffad6b}
body[data-theme="navy"] .flashcard{--card-bg:#141a2e;--card-line:#313953;--card-back-bg:#15231e;--card-back-line:#2f7a5c;--card-answer:#7ee2b0;--card-badge:#1d2644;--card-badge-ink:#ffa66b}

body[data-theme="aiflow"] .flashcard{--card-bg:#041828;--card-line:#1b4d66;--card-back-bg:#052a2b;--card-back-line:#14a39a;--card-answer:#7af0e0;--card-badge:#0c3043;--card-badge-ink:#a4f5ef}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .flashcard-face{box-shadow:0 14px 36px rgba(0,0,0,.3)}
body[data-theme="navy"] .flashcard-face{box-shadow:0 14px 36px rgba(0,0,0,.3)}

@media(prefers-reduced-motion:reduce){
  .flashcard-inner{transition:none}
  .flashcard.is-flipped .flashcard-inner,.flashcard-back{transform:none}
  .flashcard:not(.is-flipped) .flashcard-back,.flashcard.is-flipped .flashcard-front{visibility:hidden}
}

@media(max-width:600px){
  .flashcard-face{min-height:240px;padding:24px 18px;gap:12px}
  .flashcard-answer{font-size:calc(var(--testio-answer-font-size,16px) * 1.3)}
  .flashcard-options li,.flashcard-explanation{font-size:var(--testio-answer-font-size,16px)}
}

/* Mock exam: a marked choice without revealing correctness. */
body .practice-session .practice-options .practice-option.is-exam-selected{border-color:#8068dc!important;background:#e5deff!important;box-shadow:inset 4px 0 0 #8068dc!important;color:#2b2470!important}

body .practice-session .practice-options .practice-option.is-exam-selected b{background:#d1c4ff!important;color:#493493!important}

body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-session .practice-options .practice-option.is-exam-selected{border-color:#a993ff!important;background:#373052!important;box-shadow:inset 3px 0 0 #a993ff!important;color:#f1f0ff!important}
body[data-theme="dark"] .practice-session .practice-options .practice-option.is-exam-selected b{background:#62508e!important;color:#fff!important}

body[data-theme="aiflow"] .practice-session .practice-options .practice-option.is-exam-selected{border-color:#00aeba!important;background:#082f40!important;box-shadow:inset 4px 0 0 #00c5b5!important;color:#f2ffff!important}

body[data-theme="aiflow"] .practice-session .practice-options .practice-option.is-exam-selected b{background:#075466!important;color:#b8fffb!important}

body[data-theme="ember"] .practice-session .practice-options .practice-option.is-exam-selected{border-color:#d56555!important;background:#2d1d22!important;box-shadow:inset 4px 0 0 #ff7657!important;color:#fff1ec!important}
body[data-theme="navy"] .practice-session .practice-options .practice-option.is-exam-selected{border-color:#e84242!important;background:#331c1f!important;box-shadow:inset 4px 0 0 #ff5757!important;color:#f3f4f8!important}

body[data-theme="ember"] .practice-session .practice-options .practice-option.is-exam-selected b{background:#5a3034!important;color:#ffc8b7!important}
body[data-theme="navy"] .practice-session .practice-options .practice-option.is-exam-selected b{background:#5d3238!important;color:#ffb7b7!important}

body[data-theme="colorful"] .practice-session .practice-options .practice-option.is-exam-selected{border-color:#b951b5!important;background:#fff0fa!important;box-shadow:inset 4px 0 0 #b951b5!important;color:#5d2468!important}

body[data-theme="colorful"] .practice-session .practice-options .practice-option.is-exam-selected b{background:#b951b5!important;color:#fff!important}

/* Barevný motiv: vybraná odpověď v ostrém testu má stejnou růžovofialovou podobu jako ve zkoušce nanečisto (dřív fialová ze Světlého motivu). */
body[data-theme="colorful"] .question-list .question-card .answer:has(input[type="radio"]:checked),body[data-theme="colorful"] .question-list .question-card .answer.is-selected-answer{border-color:#b951b5!important;background:#fff0fa!important;box-shadow:inset 4px 0 0 #b951b5!important}
body[data-theme="colorful"] .question-list .question-card .answer:has(input[type="radio"]:checked) b,body[data-theme="colorful"] .question-list .question-card .answer.is-selected-answer b{background:#b951b5!important;color:#fff!important}

/* Mock exam end: the submitted-test result card (.result-hero) and answer review (.review-list) inside practice. */
.practice-session.is-exam-result{max-width:none;margin-top:0;padding:0;border:0!important;background:none!important;box-shadow:none!important}

.practice-session.is-exam-result::before,.practice-session.is-exam-result>.practice-session-head,.practice-session.is-exam-result>.practice-track{display:none!important}

.practice-session.is-exam-result>.practice-content{padding-top:0}

.exam-result-body{min-width:0}

.exam-result-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}

.exam-result-actions .button{margin:0}

.exam-result-hero .exam-result-tip{display:flex;align-items:center;gap:7px;margin:14px 0 0;color:var(--muted);font-size:14px}

.exam-result-tip i{font-size:14px!important;color:inherit!important}

.exam-result-hero>.exam-result-body{flex:1}

.exam-result-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 20px;margin-top:18px}

.exam-result-footer .exam-result-actions{margin:0 0 0 auto}

.exam-result-hero .exam-result-footer .exam-result-tip{margin:0}

.exam-review-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}

.exam-review-head h2{margin:0}

.exam-review{text-align:left}

.exam-review.is-mistakes-only .review.correct{display:none}

.exam-review .review>div:last-child{flex:1;min-width:0}

/* Review filter: a quiet segmented control (one frame, tinted active option), so the gradient stays reserved for the main action. */
.practice-review-filter{--seg-line:#dfe3f2;--seg-bg:#f5f6fc;--seg-ink:#5c6385;--seg-on-bg:#ebe9ff;--seg-on-ink:#4b46b7;--seg-on-line:#c9c3f7;display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border:1px solid var(--seg-line);border-radius:12px;background:var(--seg-bg)}

body:is([data-theme],:not([data-theme])) .exam-review .practice-review-filter button.practice-review-toggle.practice-review-toggle.practice-review-toggle.practice-review-toggle{width:auto;margin:0;padding:7px 14px!important;border:0!important;border-radius:9px!important;background:transparent!important;box-shadow:none!important;color:var(--seg-ink)!important;font-family:inherit!important;font-size:14px!important;font-weight:600!important;cursor:pointer;transform:none!important;filter:none!important}

body:is([data-theme],:not([data-theme])) .exam-review .practice-review-filter button.practice-review-toggle.practice-review-toggle.practice-review-toggle.practice-review-toggle:hover{color:var(--seg-on-ink)!important}

body:is([data-theme],:not([data-theme])) .exam-review .practice-review-filter button.practice-review-toggle.practice-review-toggle.practice-review-toggle.practice-review-toggle[aria-pressed="true"]{background:var(--seg-on-bg)!important;box-shadow:inset 0 0 0 1px var(--seg-on-line)!important;color:var(--seg-on-ink)!important}

body:is([data-theme],:not([data-theme])) .exam-review .practice-review-filter button.practice-review-toggle.practice-review-toggle.practice-review-toggle.practice-review-toggle:focus-visible{outline:2px solid var(--seg-on-line);outline-offset:1px}

body[data-theme="colorful"] .practice-review-filter{--seg-line:#e6bde5;--seg-bg:#fffaff;--seg-ink:#7a5a85;--seg-on-bg:#fbe3f6;--seg-on-ink:#9b3b98;--seg-on-line:#e6bde5}

body[data-theme="dark"] .practice-review-filter{--seg-line:#3d4b70;--seg-bg:#1a2133;--seg-ink:#b8c2dc;--seg-on-bg:#2c3556;--seg-on-ink:#a993ff;--seg-on-line:#5b5fa8}

body[data-theme="aiflow"] .practice-review-filter{--seg-line:#1b4d66;--seg-bg:#041828;--seg-ink:#9fc3d6;--seg-on-bg:#0b3b4a;--seg-on-ink:#7af0e0;--seg-on-line:#14a39a}

body[data-theme="ember"] .practice-review-filter{--seg-line:#4a393b;--seg-bg:#1b181d;--seg-ink:#d9b8ae;--seg-on-bg:#3a2420;--seg-on-ink:#ffb48f;--seg-on-line:#a0523c}
body[data-theme="navy"] .practice-review-filter{--seg-line:#313953;--seg-bg:#141a2e;--seg-ink:#f29595;--seg-on-bg:#3a2420;--seg-on-ink:#ff8f8f;--seg-on-line:#c41818}

.review .review-explanation{margin-top:8px;padding:9px 11px;border-radius:9px;background:#f5f6fb;color:inherit;line-height:1.5;overflow-wrap:anywhere}

.review .review-explanation i.fa-solid{font-size:13px!important;color:#d99a1b!important}

body:is([data-theme="dark"],[data-theme="aiflow"]) .review .review-explanation{background:#2a3352;color:#dbe2f5}

body[data-theme="aiflow"] .review .review-explanation{background:#0b2b3c;color:#d6eef7}

body[data-theme="ember"] .review .review-explanation{background:#2a2025;color:#ecdcd6}
body[data-theme="navy"] .review .review-explanation{background:#19213a;color:#dadde8}

body[data-theme="ember"] .review .review-explanation i.fa-solid{color:#ffad6b!important}
body[data-theme="navy"] .review .review-explanation i.fa-solid{color:#ffa66b!important}

body[data-theme="colorful"] .review .review-explanation{background:#fbefff}

@media(max-width:760px){
  .exam-result-footer{flex-direction:column;align-items:stretch}
  .exam-result-footer .exam-result-actions{order:-1;margin:0}
  .exam-result-actions{justify-content:center}
  .exam-result-hero .exam-result-tip{justify-content:center}
}

@media(max-width:600px){
  .exam-result-actions .button{flex:1 1 100%;justify-content:center}
  .exam-review-head{align-items:flex-start}
}

/* Výsledek zkoušky nanečisto na telefonu: mapa odpovědí hned pod známkou, aby bylo vidět její postupné odhalování (na iPhonu byla pod okrajem obrazovky); tlačítka a tip pod ní.
   Obal textu se „rozpustí“ (display:contents), takže jeho části se řadí spolu s mapou; skryté popisky zůstávají skryté, selektory se řídí stromem stránky. */
@media(max-width:600px){
  .exam-result-hero>.exam-result-body{display:contents}
  .exam-result-hero>.answer-map{order:1}
  .exam-result-hero .exam-result-footer{order:2;width:100%;margin-top:0}
}

/* Light theme: repeated classes outrank the light button rules in the "formerly injected" section below. */
body:is(:not([data-theme]),[data-theme=""]) .practice-session .practice-end .practice-end-actions button:not(.secondary):not(.secondary):not(.secondary):not(.secondary){border:0!important;background:linear-gradient(115deg,var(--purple),var(--blue))!important;box-shadow:0 8px 18px rgba(89,89,220,.25)!important;color:#fff!important}

.practice-start-mode-text small,.practice-count-hint{font-weight:400!important}

body:is(:not([data-theme]),[data-theme=""]) .practice-session .practice-options button.practice-option.is-exam-selected.is-exam-selected.is-exam-selected{border-color:#8068dc!important;background:#e5deff!important;box-shadow:inset 4px 0 0 #8068dc!important;color:#2b2470!important}

/* Access code: teacher badge, settings page and the student start form. */
.teacher-access-code{display:inline-flex;align-items:center;gap:5px;margin:4px 0 2px;padding:2px 8px;border:1px solid #e3c779;border-radius:999px;background:#fff6dc;color:#7a5a0e;font:700 12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.06em;vertical-align:2px;white-space:nowrap}

.teacher-access-code i{font-size:11px}

.teacher-access-code[data-regenerate-code]{cursor:pointer;transition:filter .15s,transform .15s}

.teacher-access-code[data-regenerate-code]:hover{filter:brightness(1.12);transform:translateY(-1px)}

.teacher-access-code[data-regenerate-code]:focus-visible{outline:2px solid currentColor;outline-offset:2px}

.teacher-access-code[aria-busy="true"]{opacity:.6;pointer-events:none}

.teacher-access-code.is-new-code{animation:access-code-flash .9s ease}

@keyframes access-code-flash{
  0%{transform:scale(1)}
  35%{transform:scale(1.15)}
  100%{transform:scale(1)}
}

/* No code: the badge stays as a muted placeholder that switches the code back on. */
.teacher-access-code.is-off{opacity:.45;filter:grayscale(1)}

.teacher-access-code.is-off:hover,.teacher-access-code.is-off:focus-visible{opacity:.75;filter:grayscale(1)}

.teacher-code-cell .teacher-access-code{margin:0;vertical-align:middle}

.access-code-input{font:700 20px ui-monospace,SFMono-Regular,Consolas,monospace!important;letter-spacing:.18em;text-transform:uppercase}

.access-code-input::placeholder{font-weight:400;letter-spacing:.05em;text-transform:none}

.access-code-form .access-code-input{max-width:260px}

.access-code-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}

.access-code-form .combine-actions{flex-wrap:wrap;gap:14px}

.access-code-warning{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:10px;background:#fff6dc;color:#7a5a0e!important}

.access-code-warning i{margin-top:3px}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .teacher-access-code{border-color:#7a6527;background:#3c3521;color:#ffe6a0}
body[data-theme="navy"] .teacher-access-code{border-color:#7a6527;background:#3c3521;color:#ffe6a0}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .access-code-warning{background:#3c3521;color:#ffe6a0!important}
body[data-theme="navy"] .access-code-warning{background:#3c3521;color:#ffe6a0!important}

body[data-theme="ember"] .teacher-access-code{border-color:#8a5a3c;background:#302229;color:#ffd2a8}
body[data-theme="navy"] .teacher-access-code{border-color:#b05416;background:#1b233f;color:#ffcba8}

@media(max-width:600px){
  .access-code-actions{justify-content:stretch}
  .access-code-actions .button{flex:1 1 100%;justify-content:center}
}

/* Results: numbering of repeated submissions by the same student. */
.attempt-repeat-badge{display:inline-block;margin-left:8px;padding:2px 8px;border:1px solid #dfe4f5;border-radius:999px;background:#f5f6fb;color:#5a647e;font-size:12px;font-weight:700;line-height:1.5;white-space:nowrap;vertical-align:1px}

.attempt-repeat-badge.is-repeat{border-color:#f0b37a;background:#fff1e0;color:#9a4b0b}

body:is([data-theme="dark"],[data-theme="aiflow"]) .attempt-repeat-badge{border-color:#465575;background:#232c45;color:#c4cde6}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .attempt-repeat-badge.is-repeat{border-color:#9a6331;background:#3d2a18;color:#ffc78f}
body[data-theme="navy"] .attempt-repeat-badge.is-repeat{border-color:#b55616;background:#3d2a18;color:#ffbc8f}

body[data-theme="ember"] .attempt-repeat-badge{border-color:#4a393b;background:#2a2025;color:#d8c4be}
body[data-theme="navy"] .attempt-repeat-badge{border-color:#313953;background:#19213a;color:#c0c5d6}

body[data-theme="aiflow"] .attempt-repeat-badge{border-color:#1b4d66;background:#0b2b3c;color:#a8d8e8}

body[data-theme="colorful"] .attempt-repeat-badge{border-color:#e2c6e4;background:#fffaff;color:#703f9d}

/* Leaving the test window: red badge in results, a line in the teacher's result view and a notice before the start. */
.attempt-leave-badge{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;border:1px solid #f1a7a7;border-radius:999px;background:#fff0f0;color:#a12828;font-size:12px;font-weight:700;line-height:1.5;white-space:nowrap;vertical-align:1px}

.attempt-leave-badge i.fa-solid{font-size:11px;color:currentColor!important}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .attempt-leave-badge{border-color:#8a3b3b;background:#3b1e22;color:#ffb3b3}
body[data-theme="navy"] .attempt-leave-badge{border-color:#af1616;background:#3b1e22;color:#ffb3b3}

.result-hero .attempt-leave-note{display:inline-flex;align-items:center;gap:7px;margin:6px 0 12px;padding:4px 11px;border-radius:999px;background:rgba(127,140,170,.14);font-size:13px;font-weight:600}

.result-hero .attempt-leave-note.is-left{background:#fff0f0;color:#a12828}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .result-hero .attempt-leave-note.is-left{background:#3b1e22;color:#ffb3b3}
body[data-theme="navy"] .result-hero .attempt-leave-note.is-left{background:#3e2024;color:#ffb3b3}

.result-hero .attempt-leave-note i.fa-solid{color:currentColor!important}

/* Start page: the leave-recording rule is a test rule, shown in the same amber as the locked review notice. */
.attempt-leave-warning{display:flex;gap:10px;align-items:flex-start;margin:4px 0 16px;padding:11px 14px;border-left:3px solid #e3a33b;border-radius:10px;background:#fff8e8;color:#5a4209;font-size:13px;line-height:1.5}

.attempt-leave-warning strong{font-weight:700}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .attempt-leave-warning{border-left-color:#c98a2a;background:rgba(227,163,59,.12);color:#ffe2a8}
body[data-theme="navy"] .attempt-leave-warning{border-left-color:#d8671b;background:rgba(230,126,56,.12);color:#ffcba8}

.attempt-leave-warning i.fa-solid{margin-top:2px;font-size:15px;color:#d48a12!important}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .attempt-leave-warning i.fa-solid{color:#f0b44c!important}
body[data-theme="navy"] .attempt-leave-warning i.fa-solid{color:#f08e4c!important}

.attempt-review-badge{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;border:1px solid #c9d2ea;border-radius:999px;background:#f2f5fc;color:#3c4a6b;font-size:12px;font-weight:700;line-height:1.5;white-space:nowrap;vertical-align:1px}

.attempt-review-badge i.fa-solid{font-size:11px;color:currentColor!important}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .attempt-review-badge{border-color:#3f4d6e;background:#1f2840;color:#c9d4f0}
body[data-theme="navy"] .attempt-review-badge{border-color:#3f4d6e;background:#1f2840;color:#d5d8e4}

/* Locked answer review right after submitting: a clear warning and a deliberately plain button. */
.review-gate{display:flex;gap:20px;align-items:flex-start;margin:28px 0;padding:26px 28px;border:2px solid #e3a33b;border-radius:18px;background:#fff8e8;color:#4a3608}

.review-gate-icon{display:grid;flex:0 0 54px;width:54px;height:54px;place-items:center;border-radius:14px;background:#e3a33b;color:#fff;font-size:24px}

.review-gate-icon i.fa-solid{color:#fff!important}

.review-gate-body{display:grid;gap:10px;min-width:0}

.review-gate h2{margin:0;font-size:22px;line-height:1.3;color:inherit}

.review-gate p{margin:0;font-size:16px;line-height:1.55}

.review-gate p strong{font-weight:800}

.review-gate form{margin:8px 0 0}

body:is([data-theme],:not([data-theme])) .review-gate .review-gate-button.review-gate-button{display:inline-flex;align-items:center;gap:8px;width:auto;padding:10px 18px;border:1px solid currentColor!important;border-radius:12px;background:transparent!important;box-shadow:none!important;color:inherit!important;font-family:inherit;font-size:14px;font-weight:700;opacity:.85}

body:is([data-theme],:not([data-theme])) .review-gate .review-gate-button.review-gate-button:hover{opacity:1;background:rgba(0,0,0,.05)!important}

.review-gate .review-gate-button i.fa-solid{color:currentColor!important}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .review-gate{border-color:#c98a2a;background:#33270f;color:#ffe2a8}
body[data-theme="navy"] .review-gate{border-color:#d8671b;background:#33270f;color:#ffcba8}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .review-gate-icon{background:#c98a2a}
body[data-theme="navy"] .review-gate-icon{background:#d8671b}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .review-gate .review-gate-button.review-gate-button:hover{background:rgba(255,255,255,.07)!important}
body[data-theme="navy"] .review-gate .review-gate-button.review-gate-button:hover{background:rgba(255,255,255,.07)!important}

@media(max-width:600px){
  .review-gate{flex-direction:column;gap:14px;padding:20px}
  .review-gate h2{font-size:19px}
  .review-gate p{font-size:15px}
}

/* Answer map: a row of coloured cells at the bottom of the result card (.result-hero); a cell jumps to its question in the review. */
.answer-map{--map-line:#e3e7f3;--map-ok-bg:#ecfdf5;--map-ok-line:#6ee7b7;--map-ok:#047857;--map-ok-mark:#059669;--map-bad-bg:#fff1f2;--map-bad-line:#fda4af;--map-bad:#be123c;--map-bad-mark:#e11d48;flex:1 0 100%;min-width:0;margin:4px 0 0;padding:18px 0 0;border-top:1px solid var(--map-line);text-align:left}

.result-hero .answer-map h2{margin:0 0 10px;font-size:14px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;opacity:.8}

.answer-map-grid{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:7px}

body:is([data-theme],:not([data-theme])) .answer-map .answer-map-cell{position:relative;display:flex;align-items:center;justify-content:center;min-height:36px;border:1.5px solid var(--map-ok-line);border-radius:8px;background:var(--map-ok-bg);color:var(--map-ok);font-size:15px;font-weight:700;text-decoration:none;transition:transform .15s,border-color .15s}

body:is([data-theme],:not([data-theme])) .answer-map .answer-map-cell.is-wrong{border-color:var(--map-bad-line);background:var(--map-bad-bg);color:var(--map-bad)}

/* A small check or cross in the corner, so the result reads without colour too (the cell's aria-label already says it). */
.answer-map .answer-map-cell::after{content:"\2713";position:absolute;top:1px;right:4px;font-size:10px;font-weight:700;line-height:1.2;opacity:.85}

.answer-map .answer-map-cell.is-wrong::after{content:"\2715"}

/* The answer map fills in one cell at a time while the result counts up (assets/results.js); the mark in the corner follows a moment later. */
body:is([data-theme],:not([data-theme])) .answer-map .answer-map-cell.is-pending{opacity:0}

body:is([data-theme],:not([data-theme])) .answer-map .answer-map-cell.is-revealed{animation:answer-map-reveal .34s cubic-bezier(.2,.8,.3,1.25) backwards}

.answer-map .answer-map-cell.is-revealed::after{animation:answer-map-mark .26s .2s ease-out backwards}

@keyframes answer-map-reveal{
  from{opacity:0;transform:translateY(8px) scale(.85)}
  to{opacity:1;transform:none}
}

@keyframes answer-map-mark{
  from{opacity:0;transform:scale(.3)}
  to{opacity:.85;transform:none}
}

body:is([data-theme],:not([data-theme])) .answer-map .answer-map-cell:hover,body:is([data-theme],:not([data-theme])) .answer-map .answer-map-cell:focus-visible{transform:translateY(-2px);border-color:currentColor}

.result-hero .answer-map-legend{display:flex;flex-wrap:wrap;gap:6px 22px;margin:10px 0 0;font-size:14px}

.answer-map-legend span{display:inline-flex;align-items:center;gap:7px}

.answer-map-legend .is-correct i.fa-solid{color:var(--map-ok-mark)!important;font-size:16px}

.answer-map-legend .is-wrong i.fa-solid{color:var(--map-bad-mark)!important;font-size:16px}

.review{scroll-margin-top:90px}

body[data-theme="colorful"] .answer-map{--map-line:#e6bde5}

body[data-theme="dark"] .answer-map{--map-line:#343d5c}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .answer-map{--map-ok-bg:rgba(16,185,129,.16);--map-ok-line:rgba(52,211,153,.7);--map-ok:#a7f3d0;--map-ok-mark:#34d399;--map-bad-bg:rgba(244,63,94,.2);--map-bad-line:rgba(251,113,133,.75);--map-bad:#fecdd3;--map-bad-mark:#fb7185}
body[data-theme="navy"] .answer-map{--map-ok-bg:rgba(16,185,129,.16);--map-ok-line:rgba(52,211,153,.7);--map-ok:#a7f3d0;--map-ok-mark:#34d399;--map-bad-bg:rgba(244,63,63,.2);--map-bad-line:rgba(251,113,113,.75);--map-bad:#fecdcd;--map-bad-mark:#fb7171}

body[data-theme="ember"] .answer-map{--map-line:#483738}
body[data-theme="navy"] .answer-map{--map-line:#2f3751}

body[data-theme="aiflow"] .answer-map{--map-line:#17435d}

/* Result card holds the map, so it wraps; the review uses the full width with larger text. */
.result-hero{flex-wrap:wrap}

.review-list{max-width:none}

.review{padding:18px 22px;gap:16px;margin:10px 0}

.review b{font-size:18px;line-height:1.45}

.review p{margin-top:7px;font-size:16px}

.review-icon{width:30px;height:30px;flex:0 0 30px}

@media(min-width:761px){
  .result-hero{gap:26px;margin:32px 0 22px;padding:24px 30px}
  .result-hero h1{font-size:27px;margin:0 0 4px}
  .result-hero .eyebrow{margin:0 0 6px}
  .result-hero>div>p{margin:4px 0}
  .result-hero>.score-ring{width:116px;height:116px;flex:0 0 116px}
  .result-hero>.score-ring:before{width:92px;height:92px}
  .result-hero>.score-ring span{font-size:22px}
  .result-hero .result-score-line{gap:14px;margin-top:8px}
  .result-hero .result-score-line h2{font-size:24px}
  .result-hero .grade-result{padding:6px 10px;font-size:15px}
}

@media(max-width:760px){
  .answer-map-grid{grid-template-columns:repeat(10,minmax(0,1fr))}
}

@media(max-width:600px){
  .result-hero>.answer-map{flex:none;width:100%}
  body:is([data-theme],:not([data-theme])) .answer-map .answer-map-cell{font-size:14px}
  .answer-map .answer-map-cell::after{top:0;right:2px;font-size:8px}
  .answer-map-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:6px}
  .result-hero .answer-map h2{text-align:center}
  .result-hero .answer-map-legend{justify-content:center}
  .review{padding:16px}
  .review b{font-size:17px}
  .review p{font-size:15px}
}

/* Teacher table: the training launch count is also the practice on/off switch. Repeated classes outrank the light button rules. */
body:is([data-theme],:not([data-theme])) .table-wrap td button.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle{display:inline-flex;align-items:center;gap:6px;margin:0;padding:4px 11px;border:1px solid #d9dff0!important;border-radius:999px!important;background:#f3f4f8!important;color:#8a93a8!important;font-family:inherit!important;font-size:12px!important;font-weight:600!important;line-height:1.4!important;white-space:nowrap;cursor:pointer;box-shadow:none!important;transition:border-color .15s ease,background .15s ease,transform .15s ease}

body:is([data-theme],:not([data-theme])) .table-wrap td button.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle span{text-decoration:line-through}

body:is([data-theme],:not([data-theme])) .table-wrap td button.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.is-on{border-color:#5fbd92!important;background:#dff7eb!important;color:#126f50!important}

body:is([data-theme],:not([data-theme])) .table-wrap td button.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.is-on span{text-decoration:none}

body:is([data-theme],:not([data-theme])) .table-wrap td button.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle:hover:not(:disabled){transform:translateY(-1px);border-color:#9e96e9!important}

body:is([data-theme],:not([data-theme])) .table-wrap td button.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.is-error{border-color:#de5a69!important}

body:is([data-theme],:not([data-theme])) .table-wrap td button.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle[aria-busy="true"]{opacity:.6;cursor:progress}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .table-wrap td button.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle{border-color:#3d4b70!important;background:transparent!important;color:#8e9ab8!important}
body[data-theme="navy"] .table-wrap td button.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle{border-color:#3d4b70!important;background:transparent!important;color:#8e9ab8!important}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .table-wrap td button.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.is-on{border-color:#2f8a64!important;background:#123a2c!important;color:#8fe0b9!important}
body[data-theme="navy"] .table-wrap td button.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.is-on{border-color:#2f8a64!important;background:#123a2c!important;color:#8fe0b9!important}

body[data-theme="ember"] .table-wrap td button.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle{border-color:#4a393b!important}
body[data-theme="navy"] .table-wrap td button.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle{border-color:#313953!important}

/* Moje výuka: ikona přehledu otázek za štítkem tréninku – přepínač (zapnutý v barvě motivu, vypnutý ztlumený, bez zapnutého tréninku neaktivní). Jen sdílené barvy --t-*; opakované třídy přebíjejí světlá pravidla tlačítek. */
.teacher-training-cell{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
body:is([data-theme],:not([data-theme])) .table-wrap td button.teacher-overview-toggle.teacher-overview-toggle.teacher-overview-toggle.teacher-overview-toggle.teacher-overview-toggle{display:inline-grid;place-items:center;width:28px;height:28px;margin:0;padding:0!important;border:1px solid var(--t-border)!important;border-radius:999px!important;background:transparent!important;color:var(--t-muted)!important;font-size:12px!important;line-height:1!important;opacity:.7;cursor:pointer;box-shadow:none!important;transition:border-color .15s ease,background .15s ease,opacity .15s ease,transform .15s ease}
body:is([data-theme],:not([data-theme])) .table-wrap td button.teacher-overview-toggle.teacher-overview-toggle.teacher-overview-toggle.teacher-overview-toggle.teacher-overview-toggle.is-on{border-color:var(--t-accent-border)!important;background:var(--t-accent-soft)!important;color:var(--t-accent-on-soft)!important;opacity:1}
body:is([data-theme],:not([data-theme])) .table-wrap td button.teacher-overview-toggle.teacher-overview-toggle.teacher-overview-toggle.teacher-overview-toggle.teacher-overview-toggle:hover:not([aria-disabled="true"]){transform:translateY(-1px);border-color:var(--t-accent-border)!important;opacity:1}
body:is([data-theme],:not([data-theme])) .table-wrap td button.teacher-overview-toggle.teacher-overview-toggle.teacher-overview-toggle.teacher-overview-toggle.teacher-overview-toggle[aria-disabled="true"]{opacity:.3;cursor:not-allowed}
body:is([data-theme],:not([data-theme])) .table-wrap td button.teacher-overview-toggle.teacher-overview-toggle.teacher-overview-toggle.teacher-overview-toggle.teacher-overview-toggle.is-error{border-color:#de5a69!important}
body:is([data-theme],:not([data-theme])) .table-wrap td button.teacher-overview-toggle.teacher-overview-toggle.teacher-overview-toggle.teacher-overview-toggle.teacher-overview-toggle[aria-busy="true"]{opacity:.5;cursor:progress}

body[data-theme="colorful"] .table-wrap td button.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle.teacher-training-toggle:not(.is-on){border-color:#e2c6e4!important;background:#fffaff!important}

/* QR code page: the code itself stays black on white in every theme so phones read it reliably. */
.test-qr{display:grid;gap:16px;justify-items:start;max-width:620px}

.test-qr-switch{display:inline-flex;gap:6px;padding:4px;border:1px solid #dfe4f5;border-radius:999px;background:#f5f6fb}

body:is([data-theme],:not([data-theme])) .test-qr .test-qr-switch button.test-qr-toggle.test-qr-toggle.test-qr-toggle.test-qr-toggle{display:inline-flex;align-items:center;gap:7px;margin:0;padding:8px 16px;border:0!important;border-radius:999px!important;background:transparent!important;color:#5251bf!important;font-family:inherit!important;font-size:14px!important;font-weight:700!important;cursor:pointer;box-shadow:none!important}

body:is([data-theme],:not([data-theme])) .test-qr .test-qr-switch button.test-qr-toggle.test-qr-toggle.test-qr-toggle.test-qr-toggle[aria-pressed="true"]{background:linear-gradient(115deg,#6f5cf0,#4f7cf4)!important;color:#fff!important}

body:is([data-theme],:not([data-theme])) .test-qr .test-qr-switch button.test-qr-toggle.test-qr-toggle.test-qr-toggle.test-qr-toggle:disabled{opacity:.45;cursor:not-allowed}

.test-qr-note{display:flex;align-items:center;gap:8px;margin:0;color:var(--muted);font-size:14px}

.test-qr-note.is-warning{padding:9px 12px;border-radius:10px;background:#fff6dc;color:#7a5a0e}

.test-qr-stage{display:grid;justify-items:center;gap:12px;width:100%;box-sizing:border-box;padding:22px;border:1px solid #dfe4f5;border-radius:20px;background:#fff}

.test-qr-canvas{display:block;width:min(100%,380px);height:auto;image-rendering:pixelated}

.test-qr-stage .test-qr-url{margin:0;color:#18213b!important;font:600 14px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;text-align:center;overflow-wrap:anywhere}

.test-qr-stage:fullscreen{align-content:center;justify-items:center;gap:2.5vh;padding:4vh;border:0;border-radius:0;background:#fff}

.test-qr-stage:fullscreen .test-qr-canvas{width:min(82vh,92vw)}

.test-qr-stage:fullscreen .test-qr-url{font-size:max(16px,2.4vh)}

.test-qr-actions{display:flex;flex-wrap:wrap;gap:10px}

.test-qr-actions .button{margin:0}

body:is([data-theme="dark"],[data-theme="aiflow"]) .test-qr-switch{border-color:#3d4b70;background:#1a2133}

body:is([data-theme="dark"],[data-theme="aiflow"]) .test-qr .test-qr-switch button.test-qr-toggle.test-qr-toggle.test-qr-toggle.test-qr-toggle{color:#dbe2ff!important}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .test-qr-stage{border-color:transparent}
body[data-theme="navy"] .test-qr-stage{border-color:transparent}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .test-qr-note.is-warning{background:#3c3521;color:#ffe6a0}
body[data-theme="navy"] .test-qr-note.is-warning{background:#3c3521;color:#ffe6a0}

body[data-theme="aiflow"] .test-qr-switch{border-color:#1b4d66;background:#041828}

body[data-theme="aiflow"] .test-qr .test-qr-switch button.test-qr-toggle.test-qr-toggle.test-qr-toggle.test-qr-toggle[aria-pressed="true"]{background:linear-gradient(115deg,#2f7bff,#14c4c8)!important}

body[data-theme="ember"] .test-qr-switch{border-color:#4a393b;background:#1b181d}
body[data-theme="navy"] .test-qr-switch{border-color:#313953;background:#141a2e}

body[data-theme="ember"] .test-qr .test-qr-switch button.test-qr-toggle.test-qr-toggle.test-qr-toggle.test-qr-toggle{color:#ffd2c4!important}
body[data-theme="navy"] .test-qr .test-qr-switch button.test-qr-toggle.test-qr-toggle.test-qr-toggle.test-qr-toggle{color:#ffc4c4!important}

body[data-theme="ember"] .test-qr .test-qr-switch button.test-qr-toggle.test-qr-toggle.test-qr-toggle.test-qr-toggle[aria-pressed="true"]{background:linear-gradient(115deg,#ffad6b,#ff744a,#ed4048)!important;color:#fff!important}
body[data-theme="navy"] .test-qr .test-qr-switch button.test-qr-toggle.test-qr-toggle.test-qr-toggle.test-qr-toggle[aria-pressed="true"]{background:linear-gradient(115deg,#ffa66b,#ff4a4a,#ed4040)!important;color:#ffffff!important}

body[data-theme="colorful"] .test-qr-switch{border-color:#e2c6e4;background:#fffaff}

body[data-theme="colorful"] .test-qr .test-qr-switch button.test-qr-toggle.test-qr-toggle.test-qr-toggle.test-qr-toggle[aria-pressed="true"]{background:linear-gradient(115deg,#d347aa,#8364e7)!important}

@media(max-width:600px){
  .test-qr{justify-items:stretch}
  .test-qr-switch{justify-content:center}
  .test-qr-stage{padding:14px}
  .test-qr-actions .button{flex:1 1 100%;justify-content:center}
}

/* Editor: picking questions from the teacher's other tests. */
.editor-questions-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.editor-questions-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.editor-questions-actions .editor-question-search{width:240px;margin:0}
.editor-search-status{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:-6px 0 12px;color:var(--t-muted);font-size:14px;font-weight:600}
.editor-search-status[hidden],#questions .editor-question[hidden],.text-repair-question[hidden]{display:none}
.editor-search-clear{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;background:none;color:var(--t-accent);font:inherit;cursor:pointer}
#questions .editor-question .is-search-hit,.text-repair-question .is-search-hit{border-color:#e0a800!important;box-shadow:0 0 0 3px rgba(255,196,0,.3)!important}
mark.search-hit{padding:0 1px;border-radius:3px;background:rgba(255,196,0,.4);color:inherit}
.editor-format-hint{margin:6px 0 16px;color:var(--t-muted);font-size:13px;line-height:1.5}
.editor-format-hint code{padding:1px 6px;border:1px solid var(--t-border);border-radius:5px;background:var(--t-soft);color:var(--t-text);font-family:"Cascadia Mono",Consolas,"SFMono-Regular",Menlo,monospace;font-size:12px}
.editor-format-hint a{color:var(--t-accent);font-weight:600}

.app-confirm-dialog.question-picker-dialog{width:min(100%,760px);max-height:calc(100vh - 40px);display:flex;flex-direction:column}

.app-confirm-dialog.question-picker-dialog h2 i.fa-solid{color:#6f5cf0!important}

body:is([data-theme="dark"],[data-theme="aiflow"]) .app-confirm-dialog.question-picker-dialog h2 i.fa-solid{color:#8fb0ff!important}

body[data-theme="aiflow"] .app-confirm-dialog.question-picker-dialog h2 i.fa-solid{color:#14c4c8!important}

body[data-theme="ember"] .app-confirm-dialog.question-picker-dialog h2 i.fa-solid{color:#ffad6b!important}
body[data-theme="navy"] .app-confirm-dialog.question-picker-dialog h2 i.fa-solid{color:#ffa66b!important}

.question-picker-source{display:grid;gap:6px;margin:4px 0 0;color:inherit;font-weight:700}

.question-picker-source select{width:100%;margin:0}

.question-picker-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:16px 0 8px}

.question-picker-all{display:inline-flex;align-items:center;gap:8px;margin:0;color:inherit;font-size:15px;font-weight:700;cursor:pointer}

.question-picker-all input,.question-picker-item input{width:18px;height:18px;margin:0;flex:none;accent-color:#6f5cf0}

.question-picker-count{font-size:14px;font-weight:700;opacity:.75}

.question-picker-list{flex:1 1 auto;min-height:120px;max-height:55vh;overflow:auto;border:1px solid #dfe4f5;border-radius:14px;background:#f8f9ff}

.question-picker-item{display:grid;grid-template-columns:18px minmax(0,1fr);gap:12px;align-items:start;margin:0;padding:12px 14px;border-bottom:1px solid #e6e9f6;color:inherit;font-weight:400;cursor:pointer}

.question-picker-item:last-child{border-bottom:0}

.question-picker-item:hover{background:#eff0ff}

.question-picker-item input{margin-top:2px}

.question-picker-body{display:block;min-width:0}

.question-picker-text{display:inline;font-size:15px;line-height:1.45;overflow-wrap:anywhere}

.question-picker-duplicate{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;background:#fff4d8;color:#7a5a0e;font-size:12px;font-weight:700;vertical-align:1px}

.question-picker-options{margin:6px 0 0;padding-left:22px;list-style:upper-alpha;font-size:13px;line-height:1.5;opacity:.85}

.question-picker-options li{overflow-wrap:anywhere}

.question-picker-options li.is-correct{color:#177552;font-weight:700;opacity:1}

.question-picker-status{margin:0;padding:18px;text-align:center}

.question-picker-dialog .app-choice-primary:disabled{opacity:.5;cursor:not-allowed}

body:is([data-theme="dark"],[data-theme="ember"],[data-theme="aiflow"]) .question-picker-list{color-scheme:dark}
body[data-theme="navy"] .question-picker-list{color-scheme:dark}

body:is([data-theme="dark"],[data-theme="aiflow"]) .question-picker-list{border-color:#3d4b70;background:#161c2c}

body:is([data-theme="dark"],[data-theme="aiflow"]) .question-picker-item{border-bottom-color:#2c3756}

body:is([data-theme="dark"],[data-theme="aiflow"]) .question-picker-item:hover{background:#232c45}

body:is([data-theme="dark"],[data-theme="aiflow"]) .question-picker-options li.is-correct{color:#7fdcb2}

body:is([data-theme="dark"],[data-theme="aiflow"]) .question-picker-duplicate{background:#3c3521;color:#ffe6a0}

body[data-theme="aiflow"] .question-picker-list{border-color:#1b4d66;background:#041828}

body[data-theme="aiflow"] .question-picker-item{border-bottom-color:#123a4f}

body[data-theme="aiflow"] .question-picker-item:hover{background:#0b2b3c}

body[data-theme="aiflow"] .question-picker-all input,body[data-theme="aiflow"] .question-picker-item input{accent-color:#14c4c8}

body[data-theme="ember"] .question-picker-list{border-color:#4a393b;background:#1b181d}
body[data-theme="navy"] .question-picker-list{border-color:#313953;background:#141a2e}

body[data-theme="ember"] .question-picker-item{border-bottom-color:#3a2d30}
body[data-theme="navy"] .question-picker-item{border-bottom-color:#202a4c}

body[data-theme="ember"] .question-picker-item:hover{background:#2a2025}
body[data-theme="navy"] .question-picker-item:hover{background:#19213a}

body[data-theme="ember"] .question-picker-options li.is-correct{color:#8fe0b9}
body[data-theme="navy"] .question-picker-options li.is-correct{color:#8fe0b9}

body[data-theme="ember"] .question-picker-duplicate{background:#302229;color:#ffd8ce}
body[data-theme="navy"] .question-picker-duplicate{background:#1b233f;color:#ffcece}

body[data-theme="ember"] .question-picker-all input,body[data-theme="ember"] .question-picker-item input{accent-color:#ff744a}
body[data-theme="navy"] .question-picker-all input,body[data-theme="navy"] .question-picker-item input{accent-color:#ff4a4a}

body[data-theme="colorful"] .question-picker-list{border-color:#e2c6e4;background:#fffaff}

body[data-theme="colorful"] .question-picker-item:hover{background:#fbefff}

/* Editor: Náhled otázky (the question as a practice card; the card itself uses the practice styles). */
.editor-question-tools{display:inline-flex;align-items:center;gap:14px}
.editor-question-try{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;background:transparent;color:var(--t-accent);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer}
.app-confirm-overlay .practice-session.question-try{box-sizing:border-box;width:min(100%,946px);min-width:0;margin:0}
body.test-wide-mode .app-confirm-overlay .practice-session.question-try{width:100%}
.question-try .practice-session-head{align-items:center}
.question-try-close{display:inline-flex;flex:none;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border:1px solid var(--t-border);border-radius:8px;background:var(--t-soft);color:var(--t-text);cursor:pointer}
.question-try em{color:var(--t-muted);font-weight:400}

/* Editor: Náhled (questions with their correct answers). */
.app-confirm-dialog.test-preview-dialog{--pv-ok:#1f9d6b;--pv-tip:#e1a72e;width:min(100%,960px);max-height:calc(100vh - 40px);display:flex;flex-direction:column}
.app-confirm-dialog.test-preview-dialog h2 i.fa-solid{color:var(--t-accent)!important}
.test-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}
.test-preview-head h2{min-width:0;margin:0}
.test-preview-head .question-explanation-font-controls{margin-left:auto}
.test-preview-head :is([data-preview-font="-2"],[data-preview-fullscreen]){margin-left:6px}
.test-preview-head [data-preview-fullscreen][hidden]{display:none}
.app-confirm-dialog.test-preview-dialog.is-wide{width:100%}
.test-preview-meta{margin:0 0 12px;color:var(--t-muted);font-size:14px}
.editor-question-total{color:var(--t-muted);font-size:.6em;font-weight:500;vertical-align:middle}
.test-preview-meta b{color:var(--t-text)}
.test-preview-summary{display:flex;flex-wrap:wrap;gap:8px;margin:-4px 0 12px}
.test-preview-filter{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border:1px solid var(--t-border);border-radius:999px;background:var(--t-surface);color:var(--t-text);font:inherit;font-size:13px;line-height:1.4;cursor:pointer}
.test-preview-filter b{font-weight:700}
.test-preview-filter small{color:var(--t-muted);font-size:12px}
.test-preview-filter:hover:not([aria-disabled="true"]){border-color:var(--t-accent)}
body .app-confirm-dialog.test-preview-dialog .test-preview-summary .test-preview-filter.test-preview-filter.test-preview-filter[aria-pressed="true"]{border-color:var(--t-accent)!important;background:var(--t-accent-soft)!important;color:var(--t-accent-on-soft)!important}
.test-preview-filter[aria-disabled="true"]{cursor:default}
.test-preview-dialog .test-preview-filter-explanation i.fa-solid{color:color-mix(in srgb,var(--pv-tip) 80%,var(--t-text))!important}
.test-preview-dialog .test-preview-filter-detail i.fa-solid{color:var(--t-accent)!important}
.test-preview-dialog .test-preview-search{width:100%;margin:0 0 12px}
.test-preview-list[hidden]{display:none}
.test-preview-item[hidden]{display:none}
.test-preview-empty{padding:18px;border:1px dashed var(--t-border);border-radius:14px;color:var(--t-muted);text-align:center}
.test-preview-empty[hidden]{display:none}
.test-preview-list{flex:1 1 auto;min-height:0;margin:0;padding:0;overflow:auto;list-style:none;border:1px solid var(--t-border);border-radius:14px;background:var(--t-soft);scrollbar-width:thin;scrollbar-color:var(--t-border) transparent}
.test-preview-item{padding:14px 16px;border-bottom:1px solid var(--t-border)}
.test-preview-item:last-child{border-bottom:0}
.test-preview-question{display:flex;align-items:flex-start;gap:10px;margin:0;color:var(--t-text);font-size:var(--pv-font,15px);font-weight:600;line-height:1.45;overflow-wrap:anywhere}
.test-preview-question>span{flex:1 1 auto;min-width:0}
.test-preview-question>.test-preview-tools{display:inline-flex;flex:none;gap:6px;margin:-4px 0 0}
:is(.test-preview-try,.test-preview-info){display:inline-flex;flex:none;align-items:center;justify-content:center;width:30px;height:30px;margin:0;padding:0;border:1px solid var(--t-border);border-radius:8px;background:var(--t-surface);color:var(--t-accent);font-size:13px;cursor:pointer}
:is(.test-preview-try,.test-preview-info):hover{background:var(--t-hover)}
body .app-confirm-dialog.test-preview-dialog .test-preview-tools .test-preview-info.test-preview-info.test-preview-info.test-preview-info{border-color:transparent!important;background:transparent!important;font-size:15px}
body .app-confirm-dialog.test-preview-dialog .test-preview-tools .test-preview-info.test-preview-info.test-preview-info:hover:not(.is-missing){background:var(--t-hover)!important}
body .app-confirm-dialog.test-preview-dialog .test-preview-tools .test-preview-info.test-preview-explain.is-filled.is-filled{color:color-mix(in srgb,var(--pv-tip) 85%,var(--t-text))!important}
body .app-confirm-dialog.test-preview-dialog .test-preview-tools .test-preview-info.test-preview-explain.is-filled.is-filled:hover{background:color-mix(in srgb,var(--pv-tip) 18%,transparent)!important}
body .app-confirm-dialog.test-preview-dialog .test-preview-tools .test-preview-info.test-preview-detail.is-filled.is-filled{color:var(--t-accent)!important}
body .app-confirm-dialog.test-preview-dialog .test-preview-tools .test-preview-info.test-preview-detail.is-filled.is-filled:hover{background:var(--t-accent-soft)!important}
body .app-confirm-dialog.test-preview-dialog .test-preview-tools .test-preview-info.test-preview-detail.is-hidden.is-hidden{color:var(--t-accent)!important;opacity:.5}
body .app-confirm-dialog.test-preview-dialog .test-preview-tools .test-preview-info.test-preview-info.is-missing.is-missing{color:var(--t-muted)!important;opacity:.35;cursor:default}
:is(.test-preview-try,.test-preview-info):focus-visible{outline:2px solid var(--t-accent);outline-offset:2px}
.test-preview-answer{display:flex;align-items:baseline;gap:8px;margin:8px 0 0;padding:7px 12px;border:1px solid color-mix(in srgb,var(--pv-ok) 70%,transparent);border-radius:10px;background:color-mix(in srgb,var(--pv-ok) 14%,var(--t-surface));color:color-mix(in srgb,var(--pv-ok) 45%,var(--t-text));font-weight:700;font-size:calc(var(--pv-font,15px) - 1px);line-height:1.45;overflow-wrap:anywhere}
.test-preview-answer span{min-width:0}
.test-preview-dialog .test-preview-answer i.fa-solid{color:var(--pv-ok)!important}
.test-preview-dialog em{color:var(--t-muted);font-weight:400}
.test-preview-answer,.test-preview-options{cursor:pointer}
.test-preview-answer:hover{border-color:var(--pv-ok)}
.test-preview-answer:focus-visible,.test-preview-options:focus-visible{outline:2px solid var(--t-accent);outline-offset:2px}
.test-preview-dialog .test-preview-answer .test-preview-toggle{margin-left:auto;align-self:center;font-size:12px}
.test-preview-answer[hidden],.test-preview-options[hidden]{display:none}
.test-preview-options{display:grid;gap:6px;margin:8px 0 0;border-radius:10px}
.test-preview-option{display:flex;align-items:baseline;gap:10px;padding:7px 12px;border:1px solid var(--t-border);border-radius:10px;background:var(--t-surface);color:var(--t-text);font-size:calc(var(--pv-font,15px) - 1px);line-height:1.45;overflow-wrap:anywhere}
.test-preview-option b{flex:none;min-width:1.1em;color:var(--t-muted)}
.test-preview-option span{min-width:0}
.test-preview-option.is-correct{border-color:color-mix(in srgb,var(--pv-ok) 70%,transparent);background:color-mix(in srgb,var(--pv-ok) 14%,var(--t-surface));color:color-mix(in srgb,var(--pv-ok) 45%,var(--t-text));font-weight:700}
.test-preview-option.is-correct b{color:var(--pv-ok)}
.test-preview-dialog .test-preview-option i.fa-solid{margin-left:auto;align-self:center;color:var(--pv-ok)!important}

@media(max-width:600px){
  .app-confirm-dialog.question-picker-dialog{padding:20px}
  .question-picker-list{max-height:50vh}
  .editor-questions-actions{width:100%}
  .editor-question-tools{flex-wrap:wrap;justify-content:flex-end;gap:4px 14px}
  .text-repair-question .editor-question-top small{text-align:right}
  .editor-questions-actions .button{flex:1 1 auto;justify-content:center}
  .editor-questions-actions .editor-question-search{width:100%}
  .app-confirm-dialog.test-preview-dialog{padding:20px}
  .test-preview-head .test-preview-wide-toggle{display:none}
  .test-preview-head{flex-wrap:wrap}
  .test-preview-head h2{flex-basis:100%}
  .app-confirm-overlay .practice-session.question-try{padding:18px}
  .question-try .practice-next{flex-wrap:wrap}
  .question-try .practice-next-actions{flex-wrap:wrap;width:100%;margin-left:0}
  .question-try .practice-next-actions>*{flex:1 1 auto}
  .question-try .practice-nav-group{flex:1 1 100%;margin-right:0}
  .question-try .practice-nav-group .practice-nav{flex:1 1 0;height:46px}
  .question-try .question-try-close{justify-self:end}
}

/* ---- Styles formerly injected at runtime from JavaScript (same order as before, so the cascade is unchanged). ---- */
/* app.js: dashboardActionCss */
.dashboard-create-actions .dashboard-primary-action{background:linear-gradient(135deg,#9a82ff,#416df1);border-color:transparent;color:#fff}
.dashboard-create-actions .dashboard-secondary-action{border:1px solid #d8ddec;background:#f5f6fb;color:#35405c}
.dashboard-create-actions .dashboard-tertiary-action{border:1px solid #d8ddec;background:transparent;color:#56617c;box-shadow:none}
.dashboard-create-actions .dashboard-secondary-action:hover{border-color:#a9a2ee;background:#eeeffc}
.dashboard-create-actions .dashboard-tertiary-action:hover{border-color:#a9a2ee;background:#f3f4fb;color:#4e50bd}
.actions .table-action-button{border:1px solid #d9deec!important;background:#f5f6fb!important;color:#57617f!important;box-shadow:none!important}
.actions .table-action-button:hover{border-color:#aaa5e6!important;background:#ebeefe!important;color:#4d4cbd!important}
.actions .table-action-danger:hover{border-color:#d95869!important;background:#fff0f2!important;color:#c33f52!important}
body:is([data-theme="dark"],[data-theme="aiflow"]) .dashboard-create-actions .dashboard-secondary-action{border-color:#3b486a;background:#1a2035;color:#edf1ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .dashboard-create-actions .dashboard-tertiary-action{border-color:#3b486a;background:transparent;color:#c7d0e7}
body:is([data-theme="dark"],[data-theme="aiflow"]) .dashboard-create-actions .dashboard-secondary-action:hover{border-color:#7884bd;background:#25304b}
body:is([data-theme="dark"],[data-theme="aiflow"]) .dashboard-create-actions .dashboard-tertiary-action:hover{border-color:#7884bd;background:#293551;color:#eff2ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .actions .table-action-button{border-color:#3b486a!important;background:#20283d!important;color:#d6def3!important}
body:is([data-theme="dark"],[data-theme="aiflow"]) .actions .table-action-button:hover{border-color:#7884bd!important;background:#2b3653!important;color:#fff!important}
body:is([data-theme="dark"],[data-theme="aiflow"]) .actions .table-action-danger:hover{border-color:#cf596b!important;background:#542c37!important;color:#ffb7c1!important}

/* app.js: unifiedButtonCss */
.button.secondary,.filters button,.actions button,td form button{border:1px solid #d8deeb;background:#f3f5fa;color:#545f7c;box-shadow:none}
.button.secondary:hover,.filters button:hover,.actions button:hover,td form button:hover{border-color:#aaa5e6;background:#e9ecfa;color:#4d4cbd}
.button.secondary{gap:10px}
.actions button,td form button{transition:background .16s ease,border-color .16s ease,color .16s ease}
.table-action-danger:hover{border-color:#d95869!important;background:#fff0f2!important;color:#c33f52!important}
body:is([data-theme="dark"],[data-theme="aiflow"]) .button.secondary,body:is([data-theme="dark"],[data-theme="aiflow"]) .filters button,body:is([data-theme="dark"],[data-theme="aiflow"]) .actions button,body:is([data-theme="dark"],[data-theme="aiflow"]) td form button{border-color:#3b486a;background:#20283d;color:#d6def3}
body:is([data-theme="dark"],[data-theme="aiflow"]) .button.secondary:hover,body:is([data-theme="dark"],[data-theme="aiflow"]) .filters button:hover,body:is([data-theme="dark"],[data-theme="aiflow"]) .actions button:hover,body:is([data-theme="dark"],[data-theme="aiflow"]) td form button:hover{border-color:#7884bd;background:#2b3653;color:#fff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .table-action-danger:hover{border-color:#cf596b!important;background:#542c37!important;color:#ffb7c1!important}

/* app.js: lightButtonContrastCss */
body:not([data-theme]) .dashboard-create-actions .dashboard-tertiary-action:hover,body[data-theme=""] .dashboard-create-actions .dashboard-tertiary-action:hover,body:not([data-theme]) .dashboard-create-actions .dashboard-secondary-action:hover,body[data-theme=""] .dashboard-create-actions .dashboard-secondary-action:hover{border-color:#77aee3;background:#d6eaff;color:#174a82}
body:not([data-theme]) .danger-button,body[data-theme=""] .danger-button{border:1px solid #f1bbc3;background:#ffe8eb;color:#b33a4b}

/* app.js: lightControlContrastCss */
body:not([data-theme]) button:not(.button):not(.danger-button):not(.copy-button):not(.app-confirm-delete):not(.incomplete-test-confirm),body[data-theme=""] button:not(.button):not(.danger-button):not(.copy-button):not(.app-confirm-delete):not(.incomplete-test-confirm){border:1px solid #b9d1ed}
body:not([data-theme]) .remove-question,body[data-theme=""] .remove-question{border-color:#f1bbc3!important;background:#fff1f3!important;color:#bd4051!important}
body:not([data-theme]) .remove-question:hover,body[data-theme=""] .remove-question:hover{border-color:#d95869!important;background:#ffe1e6!important;color:#a9293e!important}
body:not([data-theme]) .copy-button,body[data-theme=""] .copy-button{background:#4b6fe3;color:#fff}
body:not([data-theme]) .copy-button:hover,body[data-theme=""] .copy-button:hover{background:#365dce}
body:not([data-theme]) details.download-menu summary,body[data-theme=""] details.download-menu summary{color:#245b96}

/* app.js: lightTableActionCss */
body:not([data-theme]) .actions .table-action-danger:hover,body[data-theme=""] .actions .table-action-danger:hover{border-color:#d95869!important;background:#ffe0e5!important;color:#ad2f43!important}

/* app.js: lightLavenderButtonsCss */
body:not([data-theme]) .button.secondary,body[data-theme=""] .button.secondary,body:not([data-theme]) .filters button,body[data-theme=""] .filters button,body:not([data-theme]) .actions button,body[data-theme=""] .actions button,body:not([data-theme]) td form button,body[data-theme=""] td form button,body:not([data-theme]) button:not(.button):not(.danger-button):not(.copy-button):not(.app-confirm-delete):not(.incomplete-test-confirm),body[data-theme=""] button:not(.button):not(.danger-button):not(.copy-button):not(.app-confirm-delete):not(.incomplete-test-confirm){border-color:#e1e2f7!important;background:#eff0ff!important;color:#5251bf!important}
body:not([data-theme]) .button.secondary:hover,body[data-theme=""] .button.secondary:hover,body:not([data-theme]) .filters button:hover,body[data-theme=""] .filters button:hover,body:not([data-theme]) .actions button:hover,body[data-theme=""] .actions button:hover,body:not([data-theme]) td form button:hover,body[data-theme=""] td form button:hover,body:not([data-theme]) button:not(.button):not(.danger-button):not(.copy-button):not(.app-confirm-delete):not(.incomplete-test-confirm):hover,body[data-theme=""] button:not(.button):not(.danger-button):not(.copy-button):not(.app-confirm-delete):not(.incomplete-test-confirm):hover{border-color:#d0d1f2!important;background:#e3e4ff!important;color:#4645ad!important}
body:not([data-theme]) .dashboard-create-actions .dashboard-secondary-action,body[data-theme=""] .dashboard-create-actions .dashboard-secondary-action,body:not([data-theme]) .dashboard-create-actions .dashboard-tertiary-action,body[data-theme=""] .dashboard-create-actions .dashboard-tertiary-action{border-color:#e1e2f7!important;background:#eff0ff!important;color:#5251bf!important}
body:not([data-theme]) .actions .table-action-button,body[data-theme=""] .actions .table-action-button{border-color:#e1e2f7!important;background:#eff0ff!important;color:#5251bf!important}
body:not([data-theme]) .actions .table-action-button:hover,body[data-theme=""] .actions .table-action-button:hover{border-color:#d0d1f2!important;background:#e3e4ff!important;color:#4645ad!important}

/* app.js: lightTeacherTagCss */
body[data-theme=""] .teacher-workspace .teacher-test-table .status.published{border-color:#51b597!important;background:#e8f8f0!important;color:#188364!important}
body[data-theme=""] .teacher-workspace .teacher-test-table .status.draft{border-color:#d39b26!important;background:#fff3dc!important;color:#9a6a12!important}
body[data-theme=""] .teacher-workspace .teacher-test-tag.tag-maturita.is-active{border-color:#d9c5f1!important;background:#f2eaff!important;color:#844bb5!important}
body[data-theme=""] .teacher-workspace .teacher-test-tag.tag-opakování.is-active{border-color:#b8dfce!important;background:#e7f6ef!important;color:#207d5b!important}
body[data-theme=""] .teacher-workspace .teacher-test-tag.tag-náročné.is-active{border-color:#ead39d!important;background:#fff5dc!important;color:#9b6905!important}
body[data-theme=""] .teacher-workspace .teacher-test-tag.tag-základní.is-active{border-color:#c1d5f4!important;background:#eaf2ff!important;color:#3566b4!important}
body[data-theme=""] .teacher-workspace .teacher-test-tag.tag-extra.is-active{border-color:#ebc3d9!important;background:#ffedf6!important;color:#b83f83!important}

/* app.js: iconCss */
.icon-inline{display:inline-block;width:1.1em;text-align:center;margin-right:7px}
.button .icon-inline{margin-right:0}
.text-link .icon-inline{margin-right:5px}
.stat-icon{color:var(--purple);margin-right:7px}
.test-card .card-bottom a{display:inline-flex;align-items:center}
body:is([data-theme="dark"],[data-theme="aiflow"]) .stat-icon{color:#b6a7ff}

/* app.js: fileInputCss */
.import-grid input[type="file"]{padding:8px 10px;color:var(--muted);cursor:pointer}
.import-grid input[type="file"]::file-selector-button{margin-right:12px;padding:9px 13px;border:0;border-radius:8px;background:#eff1ff;color:#5251bf;font-family:inherit;cursor:pointer}
.import-grid input[type="file"]::file-selector-button:hover{background:#e3e4ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .import-grid input[type="file"]::file-selector-button{background:#303a58;color:#d8ddff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .import-grid input[type="file"]::file-selector-button:hover{background:#3a4670}

/* app.js: semanticIconCss */
.fa-trash-can,.fa-xmark,.fa-triangle-exclamation{color:#d65363}
.fa-check,.fa-circle-check,.fa-user-check{color:#20a875}
.fa-file-import,.fa-file-csv,.fa-download,.fa-file-lines{color:#4e82dc}
.fa-chart-line,.fa-chart-column{color:#28a6b8}
.fa-wand-magic-sparkles{color:#b35bcf}
.fa-graduation-cap,.fa-book-open,.fa-circle-plus,.fa-pen-to-square{color:#7561dc}
.fa-filter,.fa-magnifying-glass{color:#bf7b24}
.fa-shuffle,.fa-copy,.fa-globe{color:#5573d6}
.fa-play,.fa-right-to-bracket,.fa-right-from-bracket{color:#5c68b7}
.fa-user-slash{color:#cf6470}
.button:not(.secondary) .fa-solid{color:inherit}
body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-trash-can,body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-xmark,body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-triangle-exclamation{color:#ff9eaa}
body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-check,body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-circle-check,body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-user-check{color:#68d8ad}
body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-file-import,body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-file-csv,body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-download,body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-file-lines{color:#8ab7ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-chart-line,body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-chart-column{color:#6bd3df}
body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-wand-magic-sparkles{color:#e09af2}
body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-graduation-cap,body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-book-open,body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-circle-plus,body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-pen-to-square{color:#b6a8ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-filter,body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-magnifying-glass{color:#ffd08a}
body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-shuffle,body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-copy,body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-globe{color:#9dadff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-play,body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-right-to-bracket,body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-right-from-bracket{color:#b6c5ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .fa-user-slash{color:#ff9ca8}
body:is([data-theme="dark"],[data-theme="aiflow"]) .button:not(.secondary) .fa-solid{color:inherit}

/* app.js: unifiedIconColorCss */
i.fa-solid,i.fa-regular{color:currentColor!important}
i.fa-trash-can{color:#d65363!important}
body:is([data-theme="dark"],[data-theme="aiflow"]) i.fa-trash-can{color:#ff9eaa!important}

/* app.js: userBadgeCss */
.user-name{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #dedff5;border-radius:999px;background:#f5f4ff;color:#504b9d;font-weight:750;letter-spacing:.1px}
.user-name:before{content:"";width:7px;height:7px;border-radius:50%;background:#32b984;box-shadow:0 0 0 3px #dff8ed}
body:is([data-theme="dark"],[data-theme="aiflow"]) .user-name{background:#2a3150;border-color:#424d72;color:#e0e5f7}
body:is([data-theme="dark"],[data-theme="aiflow"]) .user-name:before{box-shadow:0 0 0 3px #253c42}

/* app.js: themeCss */
body:is([data-theme="dark"],[data-theme="aiflow"]){--ink:#edf0ff;--muted:#aeb7d3;--line:#313957;--purple:#a993ff;--blue:#638cff;background:#151927;color:var(--ink)}
body:is([data-theme="dark"],[data-theme="aiflow"]) .topbar,body:is([data-theme="dark"],[data-theme="aiflow"]) .form-card,body:is([data-theme="dark"],[data-theme="aiflow"]) .test-card,body:is([data-theme="dark"],[data-theme="aiflow"]) .stat-grid>div,body:is([data-theme="dark"],[data-theme="aiflow"]) .table-wrap,body:is([data-theme="dark"],[data-theme="aiflow"]) .mock-card{background:#20263a;border-color:#353e5d}
body:is([data-theme="dark"],[data-theme="aiflow"]) .question-card{background:#1d2438;border-color:#353e5d}
body:is([data-theme="dark"],[data-theme="aiflow"]) th{background:#1a2032;color:#b9c2dc}
body:is([data-theme="dark"],[data-theme="aiflow"]) input,body:is([data-theme="dark"],[data-theme="aiflow"]) textarea,body:is([data-theme="dark"],[data-theme="aiflow"]) select{background:#161c2c;color:#edf0ff;border-color:#444f70}
body:is([data-theme="dark"],[data-theme="aiflow"]) .answer,body:is([data-theme="dark"],[data-theme="aiflow"]) .review{border-color:#3a4564;background:#20263a}
body:is([data-theme="dark"],[data-theme="aiflow"]) .hero-art,body:is([data-theme="dark"],[data-theme="aiflow"]) .result-hero{background:linear-gradient(135deg,#242a48,#18213b)}
body:is([data-theme="dark"],[data-theme="aiflow"]) footer{border-color:#313957}
body[data-theme="colorful"]{--purple:#d54791;--blue:#00a5b5;--ink:#27203e;--muted:#6d6580;--line:#eadcf4;background:linear-gradient(135deg,#fff7fb,#f1feff)}
body[data-theme="colorful"] .topbar{background:rgba(255,250,254,.9)}
body[data-theme="colorful"] .hero-art{background:linear-gradient(135deg,#ffe1f1,#dffbfb)}
body[data-theme="colorful"] .form-card,body[data-theme="colorful"] .test-card{border-color:#e6cdec}

/* app.js: cardColorCss */
.test-card.card-color-yellow{background:#fff9df;border-color:#f0dda0}
.test-card.card-color-green{background:#eaf9f1;border-color:#bce8d1}
.test-card.card-color-blue{background:#edf5ff;border-color:#c4d9f7}
.test-card.card-color-pink{background:#fff0f6;border-color:#f2c9dd}
body:is([data-theme="dark"],[data-theme="aiflow"]) .test-card.card-color-yellow{background:#39331f;border-color:#70633b}
body:is([data-theme="dark"],[data-theme="aiflow"]) .test-card.card-color-green{background:#1d3931;border-color:#3f6d5d}
body:is([data-theme="dark"],[data-theme="aiflow"]) .test-card.card-color-blue{background:#202f48;border-color:#465f86}
body:is([data-theme="dark"],[data-theme="aiflow"]) .test-card.card-color-pink{background:#40253a;border-color:#774a69}

/* app.js: darkCombineFormCss */
body:is([data-theme="dark"],[data-theme="aiflow"]) .combine-form>label{color:#c4cde5}
body:is([data-theme="dark"],[data-theme="aiflow"]) .combine-form>label small{color:#aeb9d6}
body:is([data-theme="dark"],[data-theme="aiflow"]) .grading-settings label{color:#c4cde5}
body:is([data-theme="dark"],[data-theme="aiflow"]) .grading-settings label small{color:#aeb9d6}

/* app.js: gradingThresholdCss */
.grading-settings .grading-threshold{display:flex;width:max-content;align-items:center;gap:8px;margin-top:8px}
.grading-settings .grading-threshold input{display:block;margin:0;max-width:150px}
.grading-settings .grading-threshold span{font-weight:700}

/* app.js: darkAnswerCss */
body:is([data-theme="dark"],[data-theme="aiflow"]) .answer span{color:#c8d0e2!important}
body:is([data-theme="dark"],[data-theme="aiflow"]) .answer b{background:#36436a;color:#eef1ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .answer:hover span{color:#dce2f2!important}
body[data-theme="dark"] .answer:hover{border-color:#8277d8;background:#262c4a}

/* app.js: darkRadioCss */
body:is([data-theme="dark"],[data-theme="aiflow"]) .answer input[type="radio"]{appearance:none;box-sizing:border-box;width:14px;height:14px;padding:0!important;border:2px solid #8591b2!important;border-radius:50%;background:#1a2133!important;position:relative;flex:0 0 14px}
body:is([data-theme="dark"],[data-theme="aiflow"]) .answer input[type="radio"]:checked{border-color:#a993ff!important;background:#a993ff!important;box-shadow:0 0 0 2px rgba(169,147,255,.16)}
body:is([data-theme="dark"],[data-theme="aiflow"]) .answer input[type="radio"]:checked:after{content:"";position:absolute;inset:3px;border-radius:50%;background:#1a2133}
body:is([data-theme="dark"],[data-theme="aiflow"]) .answer input[type="radio"]:focus-visible{outline:2px solid #d6ceff;outline-offset:2px}

/* app.js: buttonWeightCss */
button,
  .button,
  .copy-button,
  .home-view-button,
  .card-training-actions a{font-weight: 500 !important}

.teacher-test-toolbar{justify-content: flex-end !important}

.test-order-actions button,
  .backup-restore-actions button{display: inline-flex;align-items: center;justify-content: center;gap: 8px;font-weight: 500 !important}

.backup-file-picker small{font-size: 14px !important}

/* app.js: bulkStatusCss */
.section-head:has(.teacher-test-bulk-actions){align-items:center}
.teacher-test-bulk-actions,.bulk-test-actions{display:flex;gap:10px;align-items:center}
.bulk-test-actions .button,.restore-backup-button,.bulk-delete-tests .button{margin:0;white-space:nowrap}
.bulk-delete-tests .button:hover:not(:disabled){border-color:#e1909d!important;background:#ffe9ed!important}
body:is([data-theme="dark"],[data-theme="aiflow"]) .bulk-delete-tests .button:hover:not(:disabled){border-color:#824353!important;background:#482832!important}
@media(max-width:860px){
  .section-head:has(.teacher-test-bulk-actions){align-items:flex-start;gap:14px;flex-direction:column}
  .teacher-workspace .teacher-test-toolbar .filters,.teacher-workspace .teacher-test-bulk-actions{flex:0 0 auto;width:100%}
  .teacher-test-bulk-actions,.bulk-test-actions{flex-wrap:wrap}
  .bulk-test-actions .button{flex:1}
}
@media(max-width:600px){
  .teacher-workspace .teacher-test-toolbar .filters select[name]{flex:1 1 0;min-width:0}
  .teacher-workspace .teacher-test-toolbar .filters button{flex:1 1 100%}
}

/* app.js: bulkDeleteTextCss */
.bulk-delete-tests .button,.bulk-delete-tests .button:hover:not(:disabled){color:#5251bf!important}
body:is([data-theme="dark"],[data-theme="aiflow"]) .bulk-delete-tests .button,body:is([data-theme="dark"],[data-theme="aiflow"]) .bulk-delete-tests .button:hover:not(:disabled){color:#dbe2ff!important}

/* app.js: restoreDialogCss */
.backup-restore-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(11,15,30,.58);backdrop-filter:blur(5px)}
.backup-restore-dialog{width:min(100%,480px);padding:28px;border:1px solid #dfe4f5;border-radius:20px;background:#fff;color:#18213b;box-shadow:0 24px 70px rgba(11,15,30,.28)}
.backup-restore-dialog h2{display:flex;align-items:center;gap:10px;margin:0 0 11px;font-size:23px}
.backup-restore-dialog p{margin:0;color:#687592;line-height:1.55}
.backup-file-picker{border-radius:13px;cursor:pointer}
.backup-restore-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}
.backup-restore-actions button{border:0;border-radius:10px;padding:11px 15px;font:inherit;font-weight:700;cursor:pointer}
.backup-restore-cancel{background:#eef1ff;color:#4e59c8}
.backup-restore-confirm{background:#625be0;color:#fff}
.backup-restore-confirm:disabled{cursor:not-allowed;opacity:.48}
body:is([data-theme="dark"],[data-theme="aiflow"]) .backup-restore-dialog{border-color:#3d4b70;background:#20283d;color:#edf1ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .backup-restore-dialog p{color:#bdc7df}
body:is([data-theme="dark"],[data-theme="aiflow"]) .backup-file-picker{border-color:#4a5a81}
body:is([data-theme="dark"],[data-theme="aiflow"]) .backup-file-picker small{color:#b1bdd6}
body:is([data-theme="dark"],[data-theme="aiflow"]) .backup-restore-cancel{background:#33405f;color:#dbe4ff}
@media(max-width:520px){
  .backup-restore-actions{flex-direction:column-reverse}
  .backup-restore-actions button{width:100%}
}

/* app.js: restoreFilePickerCss */
.backup-file-picker{display:flex;align-items:center;gap:12px;margin:22px 0;padding:0;border:0;background:transparent}
.backup-file-picker input[type="file"]{display:none!important}
.backup-file-picker strong{display:inline-flex;align-items:center;gap:9px;padding:11px 14px;border:1px solid #dedff7;border-radius:10px;background:#eff0ff;color:#5251bf;transition:background .18s ease,transform .18s ease}
.backup-file-picker:hover strong{background:#e3e4ff;transform:translateY(-1px)}
.backup-file-picker small{color:#71809e;font-weight:600}
body:is([data-theme="dark"],[data-theme="aiflow"]) .backup-file-picker{border:0;background:transparent}
body:is([data-theme="dark"],[data-theme="aiflow"]) .backup-file-picker strong{border-color:#465575;background:#303a58;color:#dbe2ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .backup-file-picker:hover strong{background:#3a4670}

/* app.js: orderDialogCss */
.test-order-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(11,15,30,.58);backdrop-filter:blur(5px)}
.test-order-dialog{width:min(100%,640px);padding:28px;border:1px solid #dfe4f5;border-radius:20px;background:#fff;color:#18213b;box-shadow:0 24px 70px rgba(11,15,30,.28)}
.test-order-dialog h2{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-size:23px}
.test-order-dialog p{margin:0;color:#687592;line-height:1.55}
.test-order-search{margin:18px 0 0}
.test-order-list{display:grid;gap:8px;max-height:46vh;overflow:auto;margin:14px 0 22px;padding:0;list-style:none}
.test-order-item{display:flex;align-items:center;gap:11px;padding:12px 13px;border:1px solid #dfe4f5;border-radius:11px;background:#fafbff;cursor:grab}
.test-order-item.dragging{opacity:.48}
.test-order-handle{color:#7a76d8}
.test-order-item b{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.test-order-position{width:72px;margin:0;padding:7px 8px;text-align:center;font-size:13px}
.test-order-actions{display:flex;justify-content:flex-end;gap:10px}
.test-order-actions button{border:0;border-radius:10px;padding:11px 15px;font:inherit;font-weight:700;cursor:pointer}
body:is([data-theme="dark"],[data-theme="aiflow"]) .test-order-dialog{border-color:#3d4b70;background:#20283d;color:#edf1ff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .test-order-dialog p{color:#bdc7df}
body:is([data-theme="dark"],[data-theme="aiflow"]) .test-order-search,body:is([data-theme="dark"],[data-theme="aiflow"]) .test-order-position{border-color:#465575;background:#171f31;color:#e7edff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .test-order-item{border-color:#465575;background:#171f31;color:#e7edff}
body:is([data-theme="dark"],[data-theme="aiflow"]) .test-order-handle{color:#b9adff}
@media(max-width:520px){
  .test-order-actions{flex-direction:column-reverse}
  .test-order-actions button{width:100%}
}

/* dashboard.js: teacherTagThemeCss */
.teacher-workspace .teacher-test-table [data-test-status-toggle],.teacher-workspace .teacher-test-tags [data-test-tag-toggle]{box-shadow:none!important}
body:not([data-theme="dark"]):not([data-theme="colorful"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .teacher-workspace .teacher-test-table .status.published{border-color:#51b597!important;background:#e8f8f0!important;color:#188364!important}
body:not([data-theme="dark"]):not([data-theme="colorful"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .teacher-workspace .teacher-test-table .status.draft{border-color:#d39b26!important;background:#fff3dc!important;color:#9a6a12!important}
body:not([data-theme="dark"]):not([data-theme="colorful"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .teacher-workspace .teacher-test-tag.tag-maturita.is-active{border-color:#d9c5f1!important;background:#f2eaff!important;color:#844bb5!important}
body:not([data-theme="dark"]):not([data-theme="colorful"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .teacher-workspace .teacher-test-tag.tag-opakování.is-active{border-color:#b8dfce!important;background:#e7f6ef!important;color:#207d5b!important}
body:not([data-theme="dark"]):not([data-theme="colorful"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .teacher-workspace .teacher-test-tag.tag-náročné.is-active{border-color:#ead39d!important;background:#fff5dc!important;color:#9b6905!important}
body:not([data-theme="dark"]):not([data-theme="colorful"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .teacher-workspace .teacher-test-tag.tag-základní.is-active{border-color:#c1d5f4!important;background:#eaf2ff!important;color:#3566b4!important}
body:not([data-theme="dark"]):not([data-theme="colorful"]):not([data-theme="ember"],[data-theme="navy"]):not([data-theme="aiflow"]) .teacher-workspace .teacher-test-tag.tag-extra.is-active{border-color:#ebc3d9!important;background:#ffedf6!important;color:#b83f83!important}

/* dashboard.js: compactTeacherColumnsCss */
.teacher-test-table th:nth-child(n+3):nth-child(-n+11),.teacher-test-table td:nth-child(n+3):nth-child(-n+11){width:1%;padding-right:7px;padding-left:7px;white-space:nowrap;text-align:center}

/* dashboard.js: teacherTableSortCss */
.teacher-table-sort{display:inline-flex;align-items:center;gap:6px;padding:2px 0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}
.teacher-table-sort:hover{color:#625be0}
.teacher-sort-indicator{width:10px;height:14px;font-style:normal;opacity:0;transition:opacity .15s ease}
.teacher-table-sort.is-active .teacher-sort-indicator{opacity:.8}
.teacher-table-sort[data-direction="asc"] .teacher-sort-indicator::before{content:"↑"}
.teacher-table-sort[data-direction="desc"] .teacher-sort-indicator::before{content:"↓"}
body[data-theme="dark"] .teacher-table-sort:hover{color:#b8adff}

/* Native date pickers: light calendar icon and dark popup in the dark themes. */
body:is([data-theme="dark"],[data-theme="ember"],[data-theme="aiflow"]) input:is([type="date"],[type="time"],[type="datetime-local"],[type="month"]){color-scheme:dark}
body[data-theme="navy"] input:is([type="date"],[type="time"],[type="datetime-local"],[type="month"]){color-scheme:dark}

/* Návod k obsluze (?r=guide). Barvy přes proměnné, tmavé motivy dostávají vlastní plochy. */
.guide{--g-surface:#fff;--g-soft:#f6f7fe;--g-border:#e6e9f4;--g-shadow:0 12px 34px rgba(35,46,92,.07);--g-tip-bg:#e9f8f1;--g-tip-ink:#11744f;--g-warn-bg:#fff5e3;--g-warn-ink:#8a5300;--g-info-bg:#eef1ff;--g-info-ink:#3d43ad;padding:30px 0 40px;color:var(--ink)}

body[data-theme="colorful"] .guide{--g-surface:rgba(255,255,255,.86);--g-soft:#fff3fa;--g-border:#efd6ea}

body[data-theme="dark"] .guide{--g-surface:#20263a;--g-soft:#1a2033;--g-border:#343d5c}

body[data-theme="ember"] .guide{--g-surface:rgba(23,18,20,.94);--g-soft:#1e1719;--g-border:#3d3031}
body[data-theme="navy"] .guide{--g-surface:rgba(17,22,39,.94);--g-soft:#141a2e;--g-border:#2a3147}

body[data-theme="aiflow"] .guide{--g-surface:rgba(6,25,44,.92);--g-soft:#0a2239;--g-border:#17435d}

body:is([data-theme="dark"],[data-theme="ember"],[data-theme="aiflow"]) .guide{--g-shadow:0 16px 40px rgba(0,0,0,.28);--g-tip-bg:rgba(62,200,140,.12);--g-tip-ink:#86e6bd;--g-warn-bg:rgba(255,178,64,.12);--g-warn-ink:#ffd08a;--g-info-bg:rgba(125,135,255,.14);--g-info-ink:#c3c6ff}
body[data-theme="navy"] .guide{--g-shadow:0 16px 40px rgba(0,0,0,.28);--g-tip-bg:rgba(62,200,140,.12);--g-tip-ink:#86e6bd;--g-warn-bg:rgba(255,140,64,.12);--g-warn-ink:#ffb98a;--g-info-bg:rgba(125,135,255,.14);--g-info-ink:#c3c6ff}

.guide-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:30;pointer-events:none}
.guide-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--purple),var(--blue));transition:width .1s linear}

.guide-hero{position:relative;overflow:hidden;padding:46px 46px 38px;border:1px solid var(--g-border);border-radius:26px;background:radial-gradient(circle at 92% 0%,color-mix(in srgb,var(--blue) 16%,transparent),transparent 42%),radial-gradient(circle at 0% 100%,color-mix(in srgb,var(--purple) 14%,transparent),transparent 45%),var(--g-surface);box-shadow:var(--g-shadow)}

.guide-hero h1{margin:6px 0 14px;font-size:clamp(32px,4.4vw,50px)}

.guide-hero-text{max-width:62ch;margin:0;color:var(--muted);font-size:18px;line-height:1.65}

.guide-quickstart{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:32px 0 0;padding:0;list-style:none}

.guide-quickstart li{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center;padding:14px 16px;border:1px solid var(--g-border);border-radius:16px;background:var(--g-soft)}

.guide-quickstart span{grid-row:span 2;display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,var(--purple),var(--blue));color:#fff;font-weight:800}

.guide-quickstart b{font-size:15px;line-height:1.3}
.guide-quickstart small{color:var(--muted);font-size:13px;line-height:1.35}

.guide-layout{display:grid;grid-template-columns:232px minmax(0,1fr);gap:34px;align-items:start;margin-top:34px}

.guide-toc{position:sticky;top:96px;max-height:calc(100vh - 116px);overflow:auto;padding:16px 12px;border:1px solid var(--g-border);border-radius:18px;background:var(--g-surface);box-shadow:var(--g-shadow)}

.guide-toc>p{margin:0 0 8px 10px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}

.guide-toc ol{display:grid;gap:2px;margin:0;padding:0;list-style:none}

.guide-toc a{position:relative;display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:10px;color:var(--muted);font-size:14px;font-weight:600;text-decoration:none;transition:background .15s ease,color .15s ease}

.guide-toc a i{width:16px;text-align:center;color:var(--purple)!important;opacity:.75}

.guide-toc a:hover{background:var(--g-soft);color:var(--ink)}

.guide-toc a.is-active{background:var(--g-soft);color:var(--ink)}
.guide-toc a.is-active i{opacity:1}

.guide-toc a.is-active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:3px;background:linear-gradient(var(--purple),var(--blue))}

/* Hledat v návodu (guide.js): pole nahoře v obsahu a pod ním výsledky s místem v návodu a úryvkem; nalezené místo v textu krátce zabliká. Jen sdílené barvy --t-*. */
.guide-search{position:relative;margin:0 0 12px}
.guide-search i{position:absolute;top:50%;left:12px;transform:translateY(-50%);color:var(--t-muted)!important;font-size:13px;pointer-events:none}
.guide-toc .guide-search input{width:100%;height:38px;margin:0;padding:0 10px 0 34px;border:1px solid var(--t-field-border);border-radius:10px;background:var(--t-field-bg);color:var(--t-text);font-size:14px}
.guide-search-results{display:grid;gap:6px;margin:0 0 14px}
.guide-toc,.guide-search-results{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--t-muted) 65%,transparent) transparent}
.guide-search-results[hidden]{display:none}
.guide-search-count{margin:0 0 2px 4px;color:var(--t-muted);font-size:12px}
.guide-toc .guide-search-result{display:grid;gap:3px;padding:8px 10px;border:1px solid var(--t-border);border-radius:10px;background:var(--t-surface);color:var(--t-text);font-size:13px;font-weight:400;line-height:1.45;text-decoration:none;white-space:normal}
.guide-toc .guide-search-result:hover{border-color:var(--t-accent-border,var(--t-accent));background:var(--t-hover);color:var(--t-text)}
.guide-search-result b{color:var(--t-muted);font-size:11.5px;font-weight:700}
.guide-search-result mark{padding:0 1px;border-radius:3px;background:var(--t-accent-soft);color:var(--t-accent-on-soft)}
.guide-search-hit{animation:guide-search-hit 2.4s ease}
@keyframes guide-search-hit{
  0%,45%{background:var(--t-accent-soft);box-shadow:0 0 0 6px var(--t-accent-soft)}
  100%{background:transparent;box-shadow:0 0 0 6px transparent}
}

.guide-chapter{scroll-margin-top:96px;margin-bottom:22px;padding:34px 38px;border:1px solid var(--g-border);border-radius:22px;background:var(--g-surface);box-shadow:var(--g-shadow)}

.guide-chapter-head{display:flex;align-items:center;gap:16px;margin-bottom:16px}

.guide-chapter-icon{flex:0 0 auto;display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,var(--purple),var(--blue));color:#fff;font-size:21px;box-shadow:0 10px 22px color-mix(in srgb,var(--purple) 28%,transparent)}

.guide-chapter-number{margin:0 0 2px;color:var(--purple);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}

.guide-chapter-head h2{margin:0;font-size:clamp(24px,2.6vw,30px)}

.guide-lead{max-width:70ch;margin:0 0 20px;font-size:18px;line-height:1.68}

.guide-chapter h3{margin:26px 0 10px;font-size:17px;letter-spacing:-.2px}

.guide-chapter p,.guide-chapter li{font-size:15.5px;line-height:1.7}

.guide-chapter code{padding:1px 6px;border-radius:6px;background:var(--g-soft);font-size:.9em}

.guide-chapter a{color:var(--purple);font-weight:650}

.guide-ui{display:inline-flex;align-items:center;gap:6px;margin:1px 0;padding:1px 8px;border:1px solid var(--g-border);border-radius:7px;background:var(--g-soft);font-size:.88em;font-weight:650;line-height:1.6;white-space:nowrap;vertical-align:baseline}
.guide-ui i{color:var(--purple)!important;font-size:.9em}

.guide-list{display:grid;gap:8px;margin:0;padding-left:20px;max-width:76ch}
.guide-list li::marker{color:var(--t-accent)}

.guide-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:18px 0}
.guide-cards.two{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}

.guide-card{padding:20px;border:1px solid var(--g-border);border-radius:16px;background:var(--g-soft)}

.guide-card>i{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:color-mix(in srgb,var(--purple) 14%,transparent);color:var(--purple)!important;font-size:17px}

.guide-card.danger>i{background:color-mix(in srgb,var(--red) 15%,transparent);color:var(--red)!important}

.guide-chapter .guide-card h3{margin:12px 0 6px;font-size:16px}
.guide-chapter .guide-card p{margin:0;color:var(--muted);font-size:14.5px;line-height:1.6}

.guide-steps{margin:8px 0 18px;padding:0;list-style:none;counter-reset:guide-step}

.guide-steps li{position:relative;counter-increment:guide-step;padding:0 0 18px 56px}

.guide-steps li:before{content:counter(guide-step);position:absolute;left:0;top:0;display:grid;place-items:center;width:36px;height:36px;border:2px solid color-mix(in srgb,var(--purple) 45%,transparent);border-radius:50%;background:var(--g-surface);color:var(--purple);font-weight:800;font-size:15px}

.guide-steps li:not(:last-child):after{content:"";position:absolute;left:17px;top:40px;bottom:4px;width:2px;border-radius:2px;background:var(--g-border)}

.guide-chapter .guide-steps h3{margin:5px 0 4px;font-size:16.5px}
.guide-steps p{margin:0;max-width:72ch}

.guide-steps.compact li{padding-bottom:14px}
.guide-points{display:grid;gap:6px;margin:8px 0 0;padding-left:20px;max-width:74ch}
.guide-points{list-style-type:disc}
.guide-points li::marker{color:var(--t-accent);font-size:1.25em}
.guide-steps .guide-points li{padding:0;counter-increment:none}
.guide-steps .guide-points li::before,.guide-steps .guide-points li::after{content:none}
.guide-chapter .guide-note .guide-points li{font-size:15px;line-height:1.62}
.guide-chapter .guide-card .guide-points{margin-top:4px;padding-left:18px}
.guide-chapter .guide-card .guide-points li{color:var(--muted);font-size:14.5px;line-height:1.55}

.guide-note{display:flex;gap:14px;margin:18px 0;padding:16px 18px;border-left:4px solid;border-radius:14px}

.guide-note>i{margin-top:4px;font-size:18px}
.guide-note>div>b{display:block;margin-bottom:2px;font-size:15.5px}
.guide-chapter .guide-note p{margin:0;font-size:15px;line-height:1.62}

.guide-note.tip{border-color:var(--g-tip-ink);background:var(--g-tip-bg)}
.guide-note.tip>div>b{color:var(--g-tip-ink)}
.guide-note.tip>i{color:var(--g-tip-ink)!important}

.guide-note.warn{border-color:var(--g-warn-ink);background:var(--g-warn-bg)}
.guide-note.warn>div>b{color:var(--g-warn-ink)}
.guide-note.warn>i{color:var(--g-warn-ink)!important}

.guide-note.info{border-color:var(--g-info-ink);background:var(--g-info-bg)}
.guide-note.info>div>b{color:var(--g-info-ink)}
.guide-note.info>i{color:var(--g-info-ink)!important}

.guide-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}

.guide-split>div{padding:20px 22px;border:1px solid var(--g-border);border-radius:16px;background:var(--g-soft)}

.guide-chapter .guide-split h3{margin:0 0 8px}
.guide-split h3 i{margin-right:6px;color:var(--purple)!important}
.guide-split p{margin:0 0 10px}
.guide-split p:last-child{margin-bottom:0}

.guide-status{display:inline-block;padding:0 9px;border-radius:999px;font-size:.88em;font-weight:700;line-height:1.7}

.guide-status.published{background:color-mix(in srgb,var(--green) 16%,transparent);color:var(--green)}
.guide-status.draft{background:rgba(232,168,30,.18);color:#a86a00}

body:is([data-theme="dark"],[data-theme="ember"],[data-theme="aiflow"]) .guide-status.draft{color:#ffcf70}
body[data-theme="navy"] .guide-status.draft{color:#ffa970}

.guide-table-wrap{overflow-x:auto;margin:6px 0 10px;border:1px solid var(--g-border);border-radius:16px}

.guide .guide-table{min-width:560px;font-size:14.5px}

.guide .guide-table th{padding:12px 16px;background:var(--g-soft);color:var(--muted);border-bottom:1px solid var(--g-border)}

.guide .guide-table td{padding:13px 16px;border-bottom:1px solid var(--g-border);line-height:1.5}
.guide .guide-table tr:last-child td{border-bottom:0}

.guide .guide-table td.yes{color:var(--green);font-weight:650}
.guide .guide-table td.no{color:var(--red);font-weight:650}
.guide-table td i{margin-right:4px}

.guide-grades{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;max-width:560px;margin:4px 0 18px}

.guide-grades div{display:grid;justify-items:center;gap:2px;padding:12px 6px;border-radius:14px;background:color-mix(in srgb,var(--g) 14%,transparent)}

.guide-grades b{color:var(--g);font-size:26px;line-height:1.1}
.guide-grades span{color:var(--muted);font-size:12.5px;font-weight:600}

.guide-grades div:nth-child(1){--g:#21a67a}
.guide-grades div:nth-child(2){--g:#5ab03a}
.guide-grades div:nth-child(3){--g:#d99a12}
.guide-grades div:nth-child(4){--g:#e3742b}
.guide-grades div:nth-child(5){--g:#de4f5f}

.guide-small{margin:14px 0 0;color:var(--muted);font-size:14.5px!important}

.guide-more,.guide-faq details{border:1px solid var(--g-border);border-radius:14px;background:var(--g-soft)}

.guide-more{margin-top:16px}
.guide-faq{display:grid;gap:10px}

.guide-more summary,.guide-faq summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;cursor:pointer;font-weight:700;list-style:none}

.guide-more summary::-webkit-details-marker,.guide-faq summary::-webkit-details-marker{display:none}

.guide-more summary:after,.guide-faq summary:after{content:"";flex:0 0 auto;width:8px;height:8px;margin-right:4px;border-right:2px solid var(--purple);border-bottom:2px solid var(--purple);transform:rotate(45deg);transition:transform .2s ease}

.guide-more[open] summary:after,.guide-faq details[open] summary:after{transform:rotate(-135deg)}

.guide-more>p,.guide-faq details>p{margin:0;padding:0 18px 16px;max-width:76ch}

.guide-code{margin:0 18px 18px;padding:16px;overflow-x:auto;border:1px solid var(--g-border);border-radius:12px;background:var(--g-surface);font:13px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace}

.guide-top-link{display:inline-flex;align-items:center;gap:8px;margin-top:6px;color:var(--purple);font-weight:700;text-decoration:none}

@media(max-width:760px){
  .guide{padding-top:18px}
  .guide-hero{padding:30px 22px 26px;border-radius:20px}
  .guide-hero-text,.guide-lead{font-size:16.5px}
  .guide-quickstart{grid-template-columns:repeat(2,minmax(0,1fr))}
  .guide-layout{grid-template-columns:minmax(0,1fr);gap:18px;margin-top:20px}
  .guide-toc{position:static;max-height:none;padding:12px}
  .guide-search-results{max-height:55vh;overflow:auto;overscroll-behavior:contain}
  .guide-toc ol{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}
  .guide-toc a{white-space:nowrap;border:1px solid var(--g-border)}
  .guide-toc a.is-active:before{display:none}
  .guide-chapter{padding:26px 22px;border-radius:18px;scroll-margin-top:170px}
  .guide-split{grid-template-columns:1fr}
}

@media(max-width:600px){
  .guide-quickstart{grid-template-columns:1fr}
  .guide-chapter{padding:22px 16px}
  .guide-chapter-icon{width:44px;height:44px;font-size:18px;border-radius:13px}
  .guide-steps li{padding-left:48px}
  .guide-grades{gap:6px}
  .guide-grades b{font-size:21px}
  .guide-grades span{font-size:11px}
  .guide .guide-table{min-width:0}
  .guide .guide-table thead{display:none}
  .guide .guide-table tr{display:block;padding:12px 14px;border-bottom:1px solid var(--g-border)}
  .guide .guide-table tr:last-child{border-bottom:0}
  .guide .guide-table td{display:flex;align-items:baseline;gap:6px;padding:4px 0;border:0;text-align:right}
  .guide .guide-table td:first-child{display:block;margin-bottom:4px;font-weight:700;text-align:left}
  .guide .guide-table td:not(:first-child):before{content:attr(data-label);margin-right:auto;padding-right:10px;color:var(--muted);font-weight:600;text-align:left}
}

/* Start page: a smaller test title (long names took four lines), the question count and time limit line up with the text above, and the grading link sits a little lower. */
.start-layout .form-intro .info-row{column-gap:26px}

.start-layout .form-intro .info-row>span{padding:0}

.start-layout .form-intro [data-test-grading-link]{display:inline-flex;align-items:center;margin-top:20px}

.start-layout .form-intro h1{font-size:clamp(30px,3.4vw,44px);line-height:1.12;text-wrap:balance}

/* ---- Practice across several tests: picker (?r=practice_mix), catalog link and the source test in the mock exam review. ---- */
.practice-mix-link{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid transparent;border-radius:12px;background:#f0f1ff;color:#3842b7;font-weight:500;text-decoration:none;white-space:nowrap}

.practice-mix-link:hover{background:#e4e6ff}

body[data-theme="colorful"] .practice-mix-link{background:#fbeefc;color:#92368f}

body[data-theme="colorful"] .practice-mix-link:hover{background:#f3ddf5}

body[data-theme="dark"] .practice-mix-link{background:#161d30;color:#d9deff}

body[data-theme="dark"] .practice-mix-link:hover{background:#29334e}

body[data-theme="aiflow"] .practice-mix-link{border-color:#17465e;background:#061725;color:#a7fff5}

body[data-theme="aiflow"] .practice-mix-link:hover{background:#0a2b3c}

body[data-theme="ember"] .practice-mix-link{border-color:#4d383a;background:#171419;color:#ffb59f}
body[data-theme="navy"] .practice-mix-link{border-color:#313954;background:#121729;color:#ff9f9f}

body[data-theme="ember"] .practice-mix-link:hover{background:#332226}
body[data-theme="navy"] .practice-mix-link:hover{background:#3b2023}

.practice-mix{--mix-ink:var(--ink);--mix-muted:#69738b;--mix-bg:#fff;--mix-line:#e3e6f2;--mix-hover:#c9c3f5;--mix-on-bg:#f4f2ff;--mix-on-line:#8b81e7;--mix-share:#5949bd;--mix-footer:rgba(255,255,255,.94);--mix-accent:var(--purple)}

body[data-theme="colorful"] .practice-mix{--mix-hover:#e0b6e6;--mix-on-bg:#fbeefc;--mix-on-line:#c27fd0;--mix-share:#92368f;--mix-accent:#a23fa0}

body[data-theme="dark"] .practice-mix{--mix-ink:#edf0ff;--mix-muted:#aeb7d3;--mix-bg:#1d2338;--mix-line:#353e5d;--mix-hover:#5a5fa8;--mix-on-bg:#272d50;--mix-on-line:#7c74e8;--mix-share:#b9b3ff;--mix-footer:rgba(29,35,56,.95);--mix-accent:#8f86f0}

body[data-theme="aiflow"] .practice-mix{--mix-ink:#f7fbff;--mix-muted:#9fc0d0;--mix-bg:#061a2b;--mix-line:#16465f;--mix-hover:#1c6a83;--mix-on-bg:#093b4d;--mix-on-line:#16a3a8;--mix-share:#a7fff5;--mix-footer:rgba(4,17,32,.95);--mix-accent:#00bcae}

body[data-theme="ember"] .practice-mix{--mix-ink:#f8f4f1;--mix-muted:#c9aea7;--mix-bg:#141218;--mix-line:#3d3031;--mix-hover:#7a4b45;--mix-on-bg:#2a1a1e;--mix-on-line:#d0664f;--mix-share:#ffb59f;--mix-footer:rgba(17,16,21,.95);--mix-accent:#ff7657}
body[data-theme="navy"] .practice-mix{--mix-ink:#f2f3f7;--mix-muted:#a8b0c8;--mix-bg:#111627;--mix-line:#2a3147;--mix-hover:#aa1515;--mix-on-bg:#171f37;--mix-on-line:#e63939;--mix-share:#ff9f9f;--mix-footer:rgba(16,20,36,.95);--mix-accent:#ff5757}

.practice-mix-filter{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:0 0 16px}

.practice-mix-filter input[type="search"]{flex:1 1 280px;width:auto;height:45px;margin:0}

.practice-mix-filter select{flex:0 0 auto;width:auto;height:45px;margin:0}

/* Jen vybrané (Trénink z více testů) and Jen Můj seznam (Souboj s počítačem): a toggle framed like the selects beside it; the checkbox covers it invisibly, so it still clicks and is read as a checkbox. On: accent frame and background. */
.practice-mix-selected-only{position:relative;display:inline-flex;flex:0 0 auto;align-items:center;height:45px;margin:0;padding:0 16px;border:1px solid var(--t-field-border);border-radius:9px;background:var(--t-field-bg);color:var(--t-text);font-size:15px;font-weight:600;white-space:nowrap;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,color .15s ease}
.practice-mix-selected-only span{display:inline-flex;align-items:center;gap:8px}
.practice-mix-selected-only i.fa-solid{color:var(--t-muted)!important;font-weight:400}
.practice-mix-selected-only:hover{border-color:var(--t-accent-border,var(--t-accent))}
.practice-mix-selected-only:has(input:checked){border-color:var(--t-accent);background:var(--t-accent-soft);color:var(--t-accent-on-soft)}
.practice-mix-selected-only:has(input:checked) i.fa-solid{color:var(--t-accent)!important;font-weight:900}
.practice-mix-selected-only:has(input:focus-visible){outline:2px solid var(--t-accent);outline-offset:2px}

.practice-mix-filter .practice-mix-selected-only input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}

.practice-mix-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}

.practice-mix-item{display:flex;align-items:center;gap:14px;margin:0;padding:14px 16px;border:1.5px solid var(--mix-line);border-radius:14px;background:var(--mix-bg);color:var(--mix-ink);cursor:pointer;transition:border-color .15s,background-color .15s}

.practice-mix-item[hidden]{display:none}

.practice-mix-item:hover{border-color:var(--mix-hover)}

.practice-mix-item.is-selected{border-color:var(--mix-on-line);background:var(--mix-on-bg)}

.practice-mix-item>input{flex:none;width:18px;height:18px;margin:0;accent-color:var(--mix-accent);cursor:pointer}

.practice-mix-item-text{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}

.practice-mix-item-text b{font-size:15px;line-height:1.35;overflow-wrap:anywhere}

.practice-mix-item-text small{color:var(--mix-muted);font-size:12px;font-weight:600}

.practice-mix-share{color:var(--mix-share);font-size:12px;font-weight:800}

.practice-mix-share[hidden]{display:none}

.practice-mix-item .pill{flex:none}

/* The generic .pill has no dark variant; use the colours of the catalog card pills. */
body[data-theme="dark"] .practice-mix-item .pill{border:1px solid #393975;background:#21243d;color:#a6aff4}

.practice-mix-none{grid-column:1/-1;padding:40px 20px}

.practice-mix-footer{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;flex-wrap:wrap;gap:14px 18px;margin-top:18px;padding:14px 18px;border:1px solid var(--mix-line);border-radius:16px;background:var(--mix-footer);color:var(--mix-ink);box-shadow:0 -8px 24px rgba(35,46,92,.08);backdrop-filter:blur(8px)}

.practice-mix-summary{flex:1 1 260px;margin:0;font-size:14px;font-weight:650;line-height:1.45}

.practice-mix-count{display:flex;align-items:center;gap:10px;margin:0;color:var(--mix-ink);font-size:14px}

.practice-mix-count input{width:84px;height:42px;margin:0;text-align:center}

.practice-mix-count small{color:var(--mix-muted);font-size:12px;font-weight:600}

.practice-mix-footer .button{display:inline-flex;align-items:center;gap:8px}

.practice-mix-footer .button:disabled{opacity:.5;cursor:not-allowed}

@media(max-width:600px){
  .practice-mix-filter select{flex:1 1 140px;min-width:0}
  .practice-mix-list{grid-template-columns:1fr}
  .practice-mix-item{padding:12px 14px}
  .practice-mix-footer{padding:12px 14px}
  .practice-mix-footer .button{justify-content:center;width:100%}
}

.review .review-source{display:block;margin-top:4px;color:var(--muted);font-size:12px;font-weight:700}

body[data-theme="dark"] .review .review-source{color:#9aa5c4}

body[data-theme="aiflow"] .review .review-source{color:#8fb7c9}

body[data-theme="ember"] .review .review-source{color:#c9aaa2}
body[data-theme="navy"] .review .review-source{color:#ef7c7c}

/* Student name in the heading of a test being written: readable size instead of the small eyebrow label (still hidden up to 600 px). */
.test-heading .eyebrow{font-size:20px;letter-spacing:.2px;line-height:1.25;overflow-wrap:anywhere}

/* Icons in the row's "more actions" menu: the automatic icon-inline margin would add space after some icons only. */
.teacher-workspace .teacher-menu-panel .icon-inline{margin-right:0}

/* Form buttons in that menu (Vytvořit kopii, Odstranit) look like its links: the repeated class outranks the generic
   ".actions button" / "td form button" theme rules and the light theme's 0,6,2 button rule. */
.teacher-workspace .teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel form button{border:0!important;background:transparent!important;box-shadow:none!important}

.teacher-workspace .teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel form button:hover{background:var(--teacher-hover)!important}

.teacher-workspace .teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel form:not(.teacher-menu-danger) button:not(:hover){color:var(--teacher-text)!important}

.teacher-workspace .teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel .teacher-menu-danger button{color:#d65064!important}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .teacher-workspace .teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel .teacher-menu-danger button{color:#ff9fae!important}
body[data-theme="navy"] .teacher-workspace .teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel .teacher-menu-danger button{color:#ff9f9f!important}

:is(body:not([data-theme]),body[data-theme=""]) .teacher-workspace .teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel form:not(.teacher-menu-danger) button:hover{color:var(--teacher-text)!important}

/* ---- Drop-down lists in theme colours (customizable select, Chrome/Edge 135+). Firefox and Safari keep the native list.
   The hovered option is tinted like the "more actions" menu, the chosen one is bold with a check mark in the theme colour. ---- */
@supports (appearance: base-select){
  :root{--sel-bg:#fff;--sel-line:#dce0ed;--sel-text:#25304b;--sel-hover:#f0eeff;--sel-hover-text:#4d44c4;--sel-mark:#6c5ce7;--sel-shadow:0 14px 34px rgba(35,46,92,.16)}
  body[data-theme="colorful"]{--sel-line:#dfcce9;--sel-text:#392750;--sel-hover:#f4e5f7;--sel-hover-text:#92368f;--sel-mark:#a23fa0}
  body[data-theme="dark"]{--sel-bg:#1d2338;--sel-line:#3d4b70;--sel-text:#e8edff;--sel-hover:#2d3050;--sel-hover-text:#a993ff;--sel-mark:#a49cff;--sel-shadow:0 16px 36px rgba(0,0,0,.45);--sel-scheme:dark}
  body[data-theme="ember"]{--sel-bg:#19161b;--sel-line:#4a393b;--sel-text:#f6ece8;--sel-hover:#332125;--sel-hover-text:#ff9a79;--sel-mark:#ff7657;--sel-shadow:0 16px 36px rgba(0,0,0,.5);--sel-scheme:dark}
  body[data-theme="navy"]{--sel-bg:#13182b;--sel-line:#313953;--sel-text:#ebedf3;--sel-hover:#1c2440;--sel-hover-text:#ff7979;--sel-mark:#ff5757;--sel-shadow:0 16px 36px rgba(0,0,0,.5);--sel-scheme:dark}
  body[data-theme="aiflow"]{--sel-bg:#071827;--sel-line:#17435d;--sel-text:#f2fbff;--sel-hover:#0b2a3b;--sel-hover-text:#47e7f5;--sel-mark:#00bcae;--sel-shadow:0 16px 36px rgba(0,0,0,.5);--sel-scheme:dark}
  select,::picker(select){appearance:base-select}
  /* Native lists ignore the page line height and never wrap; keep the same height and one line. */
  select:not([hidden]){display:flex;align-items:center;gap:8px;line-height:1.45;white-space:nowrap;cursor:pointer}
  /* The list is as wide as the chosen option, not the longest one, so these filters get a stable minimum width. */
  @media(min-width:601px){
    .practice-mix-filter select{min-width:180px}
  }
  /* The theme switcher has an inline display:block, which would wrap the arrow under the text. */
  #themeSelect{display:flex!important;line-height:1.5}
  select::picker-icon{content:"\f078";margin-left:auto;color:currentColor;font:900 11px/1 "Font Awesome 6 Free";opacity:.7;transition:rotate .15s}
  select:open::picker-icon{rotate:180deg}
  select:disabled{cursor:default}
  ::picker(select){margin-top:6px;padding:5px;border:1px solid var(--sel-line);border-radius:12px;background:var(--sel-bg);color:var(--sel-text);box-shadow:var(--sel-shadow);color-scheme:var(--sel-scheme,light);scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--sel-text) 45%,transparent) transparent}
  select option{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:8px;background:transparent;color:var(--sel-text);font-size:max(14px,1em);line-height:1.35;cursor:pointer}
  select option:is(:hover,:focus-visible){background:var(--sel-hover);color:var(--sel-hover-text);outline:none}
  select option:checked{font-weight:700}
  select option::checkmark{order:1;margin-left:auto;color:var(--sel-mark)}
}

/* Review cards: the coloured left stripe survives the dark themes' border-color (AI Flow sets it with !important); on phones the mark sits inline so the text uses the full width. */
body[data-theme] .review.correct{border-left-color:var(--green)}

body[data-theme] .review.wrong{border-left-color:var(--red)}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .review.correct{border-left-color:#34d399!important}
body[data-theme="navy"] .review.correct{border-left-color:#34d399!important}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .review.wrong{border-left-color:#fb7185!important}
body[data-theme="navy"] .review.wrong{border-left-color:#fb7171!important}

body[data-theme="dark"] .review-icon{background:rgba(16,185,129,.18);color:#6ee7b7}
body[data-theme="dark"] .wrong .review-icon{background:rgba(244,63,94,.2);color:#fda4af}

@media(max-width:600px){
  .review{display:flow-root}
  .review>.review-icon{float:left;width:24px;height:24px;margin:1px 9px 0 0;font-size:14px}
}

/* Menus with a mouse: select lists and the three-dot menu share 14px text and a compact row (~33px); phones keep the taller touch rows. */
@media(min-width:761px){
  .teacher-workspace .teacher-menu-panel a,.teacher-workspace .teacher-menu-panel button{padding:7px 12px!important}
}

@supports (appearance: base-select){
  @media(min-width:761px){
    select option{padding:7px 12px}
  }
}

/* AI Flow hover: buttons keep white text; the top-bar buttons and the teacher menus get the teal border and fill instead of the dark theme's slate and purple. */
body[data-theme="aiflow"] .topbar nav .nav-button:hover{border-color:#00bcae;background:#0b3041;color:#fff!important}

body[data-theme="aiflow"] .teacher-workspace .teacher-menu>summary:hover,body[data-theme="aiflow"] .teacher-workspace .teacher-menu[open]>summary{border-color:#00bcae;background:#0b3142}

/* Footer link to the student guide and the "what is recorded" link on the start page stay quiet, in the surrounding text colour. */
footer a,.attempt-leave-warning a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}

footer a:hover,.attempt-leave-warning a:hover{text-decoration-thickness:2px}

/* Time limit (minutes) in the editor and the "Upravit test" dialog: a short number field with a unit. */
.time-limit-field{display:flex;align-items:center;gap:8px;margin-top:8px}

.time-limit-field input{width:100%;max-width:110px;margin:0}

.time-limit-field span{font-weight:700}

.time-limit-hint{display:block;margin-top:6px;font-weight:400;opacity:.75}

/* Time limit: the countdown turns amber 5 minutes before the end and red in the last minute; it stays visible on phones, unlike the plain elapsed timer. */
body .test-elapsed.test-elapsed.is-warning{border-color:#f0a43a;background:rgba(245,158,11,.14);color:#8a4b00}

body .test-elapsed.test-elapsed.is-warning i{color:#c77700}

body .test-elapsed.test-elapsed.is-warning:before{background:#f0a43a;animation:none}

body .test-elapsed.test-elapsed.is-critical{border-color:#ef5a6f;background:rgba(239,68,68,.13);color:#b42335;animation:time-limit-pulse 1s ease-in-out infinite}

body .test-elapsed.test-elapsed.is-critical i{color:#d93a50}

body .test-elapsed.test-elapsed.is-critical:before{background:#ef5a6f;animation:none}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .test-elapsed.test-elapsed.is-warning{color:#ffd59a}
body[data-theme="navy"] .test-elapsed.test-elapsed.is-warning{color:#ffc29a}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .test-elapsed.test-elapsed.is-warning i{color:#ffbe5c}
body[data-theme="navy"] .test-elapsed.test-elapsed.is-warning i{color:#ff9d5c}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .test-elapsed.test-elapsed.is-critical{color:#ffc2cb}
body[data-theme="navy"] .test-elapsed.test-elapsed.is-critical{color:#ffc2c2}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .test-elapsed.test-elapsed.is-critical i{color:#ff8a9a}
body[data-theme="navy"] .test-elapsed.test-elapsed.is-critical i{color:#ff8a8a}

@keyframes time-limit-pulse{
  50%{box-shadow:0 0 0 4px rgba(239,90,111,.22)}
}

@media(prefers-reduced-motion:reduce){
  body .test-elapsed.test-elapsed.is-critical{animation:none}
}

/* Last minute of a time limit on a computer (real test and practice exam, instead of the last-minute warning bar): a floating window in the top right corner over the end of the top bar (top set by catalog.js) with the score ring of the result emptying second by second. The ring keeps each theme's colours; Barevný has a decorative full gradient there, so it gets a proper track here. Hidden on phones. */
.final-countdown{position:fixed;z-index:96;right:24px;top:12px;padding:14px;border:1px solid var(--t-border);border-radius:22px;background:var(--t-surface);box-shadow:0 18px 44px rgba(0,0,0,.28);pointer-events:none;animation:final-countdown-in .3s ease-out both}

body:is([data-theme],:not([data-theme])) .final-countdown .score-ring:before{background:var(--t-surface)}

body:is([data-theme],:not([data-theme])) .final-countdown .score-ring span{font-size:34px;font-variant-numeric:tabular-nums;color:var(--t-text)}

body[data-theme="colorful"] .final-countdown .score-ring{background:conic-gradient(#d347aa calc(var(--score)*1%),#f0dcef 0)}

body[data-theme="dark"] .final-countdown .score-ring{background:conic-gradient(var(--purple) calc(var(--score)*1%),#343d5c 0)}

@keyframes final-countdown-in{
  from{opacity:0;transform:translateY(-10px) scale(.96)}
}

@media(prefers-reduced-motion:reduce){
  .final-countdown{animation:none}
}

@media(max-width:760px){
  .final-countdown{display:none}
}

/* While the ring counts down, the small countdown in the top bar fades out (the ring sits in the same corner, as if it grew); it keeps its place so the Odevzdat button next to it does not jump. Phones keep it. */
@media(min-width:761px){
  .topbar .test-elapsed.has-limit{transition:opacity .3s ease,visibility .3s}
  body:has(.final-countdown) .topbar .test-elapsed.has-limit{opacity:0;visibility:hidden}
}

@media(max-width:760px){
  .topbar .test-elapsed.has-limit{display:inline-flex!important}
}

/* Návod k obsluze for a signed-in teacher (the admin's longer bar has no room; Administrace has its own guide button): a muted question mark left of the name; on narrow phones (up to 430 px) the bar has no room, the guide stays in Nástroje. */
.topbar nav a.nav-help{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;margin:-6px -8px;font-size:19px;opacity:.7}
.topbar nav a.nav-help:hover{opacity:1}
@media(max-width:430px){
  .topbar nav a.nav-help{display:none}
}

/* Návod in the student's top bar: question mark and text on wider screens, on narrow phones only a muted question mark at the right end (with a 40 px tap area).
   In a real test (Odevzdat in the bar, no practice card) it is hidden: leaving would count as leaving the test. In the mock exam it stays and opens in a new tab (practice.js), so the exam goes on (on phones its countdown is above the card, so the bar stays as on the home page). */
@media(max-width:430px){
  .topbar nav a.nav-guide{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;margin:-8px -8px -8px -4px;opacity:.7}
  .topbar nav a.nav-guide .nav-guide-text{display:none}
  .topbar nav a.nav-guide .nav-guide-help{margin-right:0;font-size:19px}
  body:has(.topbar .top-submit-test):not(:has(.practice-session)) .topbar nav a.nav-guide{display:none!important}
}

/* Narrow phones: the top bar scrolls away with the page, except in a timed test or mock exam, where it holds the countdown. */
@media(max-width:430px){
  .topbar{position:relative!important}
  body:has(.topbar .test-elapsed.has-limit:not(.practice-exam-timer)) .topbar{position:sticky!important}
  body:has(.topbar .test-elapsed.has-limit:not(.practice-exam-timer)) .topbar nav a[href="?r=catalog"]{display:none!important}
  body:not(:has(.topbar .test-elapsed.has-limit)) .test-progress{top:0}
}

.time-limit-warning{position:fixed;z-index:95;top:88px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;width:max-content;max-width:calc(100vw - 32px);padding:11px 12px 11px 16px;border:1px solid #f3c27a;border-radius:12px;background:#fff7e6;color:#7a4300;font-size:15px;font-weight:600;line-height:1.4;box-shadow:0 14px 34px rgba(30,30,60,.18)}

.time-limit-warning>i{color:#e08a00}

.time-limit-warning.is-critical{border-color:#f1a3ae;background:#fff0f2;color:#a3192e}

.time-limit-warning.is-critical>i{color:#d93a50}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .time-limit-warning{border-color:#a8731f;background:#33260f;color:#ffe2b0;box-shadow:0 14px 34px rgba(0,0,0,.45)}
body[data-theme="navy"] .time-limit-warning{border-color:#b15416;background:#33260f;color:#ffd0b0;box-shadow:0 14px 34px rgba(0,0,0,.45)}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .time-limit-warning>i{color:#ffbe5c}
body[data-theme="navy"] .time-limit-warning>i{color:#ff9d5c}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .time-limit-warning.is-critical{border-color:#b8475a;background:#3f1c25;color:#ffd3da}
body[data-theme="navy"] .time-limit-warning.is-critical{border-color:#e31c1c;background:#431e22;color:#ffd3d3}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .time-limit-warning.is-critical>i{color:#ff8a9a}
body[data-theme="navy"] .time-limit-warning.is-critical>i{color:#ff8a8a}

body:is([data-theme],:not([data-theme])) .time-limit-warning button.time-limit-close.time-limit-close.time-limit-close.time-limit-close.time-limit-close{display:inline-grid;place-items:center;width:28px;height:28px;margin:0;padding:0!important;border:0!important;border-radius:8px!important;background:transparent!important;box-shadow:none!important;color:inherit!important;cursor:pointer;opacity:.7}

body:is([data-theme],:not([data-theme])) .time-limit-warning button.time-limit-close.time-limit-close.time-limit-close.time-limit-close.time-limit-close:hover{opacity:1;background:rgba(127,127,127,.15)!important}

@media(max-width:760px){
  .time-limit-warning{font-size:14px}
}

/* Results: a submission that arrived after the time limit and its tolerance. */
.attempt-overtime-badge{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;border:1px solid #f0c27a;border-radius:999px;background:#fff6e6;color:#8a4b00;font-size:12px;font-weight:700;white-space:nowrap}

.attempt-overtime-badge i.fa-solid{font-size:11px;color:currentColor!important}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .attempt-overtime-badge{border-color:#8a6420;background:#33260f;color:#ffd59a}
body[data-theme="navy"] .attempt-overtime-badge{border-color:#974813;background:#33260f;color:#ffc29a}

/* Time limit badges: under the access code in Moje výuka (same shape and width) and next to the question count on catalog cards. */
.teacher-time-limit{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border:1px solid #e3c779;border-radius:999px;background:#fff6dc;color:#7a5a0e;white-space:nowrap;cursor:pointer;transition:filter .15s,transform .15s}

.teacher-time-limit:hover{filter:brightness(1.08);transform:translateY(-1px)}

.teacher-time-limit:focus-visible{outline:2px solid currentColor;outline-offset:2px}

.teacher-code-cell .teacher-access-code,.teacher-code-cell .teacher-time-limit{min-width:78px;justify-content:center}

.teacher-code-cell .teacher-time-limit{display:flex;width:max-content;margin-top:6px}

/* Same colours as the access code badge above it. */
body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .teacher-time-limit{border-color:#7a6527;background:#3c3521;color:#ffe6a0}
body[data-theme="navy"] .teacher-time-limit{border-color:#7a6527;background:#3c3521;color:#ffe6a0}

body[data-theme="ember"] .teacher-time-limit{border-color:#8a5a3c;background:#302229;color:#ffd2a8}
body[data-theme="navy"] .teacher-time-limit{border-color:#b05416;background:#1b233f;color:#ffcba8}

body .card-grid .test-card .pill.card-time-limit.card-time-limit,body .practice-set-card .pill.card-time-limit.card-time-limit{border-color:#f0c27a;background:#fff6e6;color:#8a4b00}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .card-grid .test-card .pill.card-time-limit.card-time-limit,body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .practice-set-card .pill.card-time-limit.card-time-limit{border-color:#8a6420;background:#33260f;color:#ffd59a}
body[data-theme="navy"] .card-grid .test-card .pill.card-time-limit.card-time-limit,body[data-theme="navy"] .practice-set-card .pill.card-time-limit.card-time-limit{border-color:#974813;background:#33260f;color:#ffc29a}

/* Time-limit dialog opened from the badge in Moje výuka. */
.time-limit-dialog .time-limit-dialog-field{display:block;margin:4px 0 20px;font-weight:700}

.time-limit-dialog .time-limit-field input{max-width:120px}

.time-limit-hint.is-error{color:#c62f45;opacity:1}

body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) .time-limit-hint.is-error{color:#ff8a9a}
body[data-theme="navy"] .time-limit-hint.is-error{color:#ff8a8a}

/* A real test is centred like practice and the mock exam; the heading and the questions keep their shared 924px width.
   The themed headings set margin with body[data-theme], hence the body prefix. */
body .question-list,body .test-heading.test-heading-all,body .test-heading:has(.sequential-question-counter){margin-left:auto;margin-right:auto}

/* Test width toggle next to "Celá obrazovka": the question frame spans the whole window; only on the question pages, so a result shown afterwards keeps its width. */
body.test-wide-mode .shell:has(.question-list){max-width:none}

body.test-wide-mode .question-list,body.test-wide-mode .test-heading.test-heading-all,body.test-wide-mode .test-heading:has(.sequential-question-counter){max-width:none}

.test-reading-controls .test-wide-toggle i{font-size:13px}

body .test-reading-controls :is(button.test-wide-toggle,button.test-fullscreen-toggle)[aria-pressed="true"]{border-color:#8f86ea;background:#e7e5ff;color:#4038b0}

body:is([data-theme="dark"],[data-theme="aiflow"]) .test-reading-controls :is(button.test-wide-toggle,button.test-fullscreen-toggle)[aria-pressed="true"]{border-color:#8277d8;background:#353f63;color:#fff}

body[data-theme="aiflow"] .test-reading-controls :is(button.test-wide-toggle,button.test-fullscreen-toggle)[aria-pressed="true"]{border-color:#00bcae;background:#0b3142;color:#fff}

body[data-theme="ember"] .test-reading-controls :is(button.test-wide-toggle,button.test-fullscreen-toggle)[aria-pressed="true"]{border-color:#c0644f;background:#3a2226;color:#fff4ee}
body[data-theme="navy"] .test-reading-controls :is(button.test-wide-toggle,button.test-fullscreen-toggle)[aria-pressed="true"]{border-color:#e52a2a;background:#3f2226;color:#f5f6f8}

body[data-theme="colorful"] .test-reading-controls :is(button.test-wide-toggle,button.test-fullscreen-toggle)[aria-pressed="true"]{border-color:#b56fc7;background:#f1d7f0;color:#6c2b8b}

@media(max-width:760px){
  .test-reading-controls .test-wide-toggle{display:none}
}

/* The width toggle also stretches practice and the mock exam; the exam result keeps its width like a test result (the toggle is hidden there). */
body.test-wide-mode .shell:has(.practice-session:not(.is-exam-result)){max-width:none}

body.test-wide-mode .practice-session{max-width:none}

/* „Automaticky další otázka“ v liště tréninku vypadá ve všech motivech jako tlačítka vedle ní (stejný okraj, pozadí, zaoblení, výška i reakce na najetí); pozadí s !important kvůli obecnému .practice-mode-label{background:transparent!important}. */
.practice-mode-label:has(.practice-auto-next){display:inline-flex;align-items:center;min-height:34px;padding:0 12px 0 9px!important;border:1px solid #e1e2f7;border-radius:9px;background:#eff0ff!important}
.practice-mode-label:has(.practice-auto-next):hover{border-color:#d0d1f2;background:#e3e4ff!important}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-mode-label:has(.practice-auto-next){border-color:#465575;background:#242d46!important}
body:is([data-theme="dark"],[data-theme="aiflow"]) .practice-mode-label:has(.practice-auto-next):hover{border-color:#8277d8;background:#303a58!important}
body[data-theme="colorful"] .practice-mode-label:has(.practice-auto-next){border-color:#d2aee1;background:#fff4fd!important}
body[data-theme="colorful"] .practice-mode-label:has(.practice-auto-next):hover{border-color:#aaa4ed;background:#f1d7f0!important}
body[data-theme="ember"] .practice-mode-label:has(.practice-auto-next){border-color:#563e41;background:#211a1e!important}
body[data-theme="navy"] .practice-mode-label:has(.practice-auto-next){border-color:#64363c;background:#151c31!important}
body[data-theme="ember"] .practice-mode-label:has(.practice-auto-next):hover{border-color:#a55a4d;background:#322024!important}
body[data-theme="navy"] .practice-mode-label:has(.practice-auto-next):hover{border-color:#d71b1b;background:#391e22!important}

/* Space between the top bar and the test heading matches practice (70px; the shell adds 5px). Placed after the themed heading margins. */
body .test-heading.test-heading-all,body .test-heading:has(.sequential-question-counter){margin-top:65px}

/* The light theme's general button rule uses !important, so the pressed width and fullscreen buttons need it too there. */
body:is(:not([data-theme]),[data-theme=""]) .test-reading-controls.test-reading-controls.test-reading-controls :is(button.test-wide-toggle,button.test-fullscreen-toggle)[aria-pressed="true"][aria-pressed="true"][aria-pressed="true"][aria-pressed="true"]{border-color:#8f86ea!important;background:#e7e5ff!important;color:#4038b0!important}

/* One-off messages after a redirect have a close cross on the right. */
.notice[data-flash]{display:flex;align-items:center;gap:12px}

.notice[data-flash]>span{flex:1}

body:is([data-theme],:not([data-theme])) .notice button.notice-close.notice-close.notice-close.notice-close.notice-close{display:inline-grid;place-items:center;flex:0 0 28px;width:28px;height:28px;margin:-4px -6px -4px 0;padding:0!important;border:0!important;border-radius:8px!important;background:transparent!important;box-shadow:none!important;color:inherit!important;cursor:pointer;opacity:.7}

body:is([data-theme],:not([data-theme])) .notice button.notice-close.notice-close.notice-close.notice-close.notice-close:hover{opacity:1;background:rgba(127,127,127,.15)!important}

body:is([data-theme],:not([data-theme])) .notice button.notice-close.notice-close.notice-close.notice-close.notice-close:focus-visible{outline:2px solid currentColor;outline-offset:1px}

/* "Vrátit" in a message (e.g. after "Už to umím" in Slabé otázky) is outlined in the colour of the message. */
body:is([data-theme],:not([data-theme])) .notice button.notice-undo.notice-undo.notice-undo.notice-undo.notice-undo{flex:0 0 auto;margin:-4px 0;padding:4px 11px!important;border:1px solid color-mix(in srgb,currentColor 40%,transparent)!important;border-radius:8px!important;background:transparent!important;box-shadow:none!important;color:inherit!important;font:inherit;font-weight:700;cursor:pointer}

body:is([data-theme],:not([data-theme])) .notice button.notice-undo.notice-undo.notice-undo.notice-undo.notice-undo:hover{background:rgba(127,127,127,.15)!important}

/* The close crosses take the colour of their message; the general red .fa-xmark (with !important in some themes) is meant for delete and cancel actions. */
body:is([data-theme],:not([data-theme])) :is(.notice-close,.time-limit-close) i.fa-xmark{color:inherit!important}

/* The one-off messages float in the bottom right corner (on a phone across the bottom) above the content and below dialogs. A success message fades out by itself after --toast-delay (set from the text length in notice() and showNoticeToast()) and app.js then removes it; hovering or focusing it pauses the countdown. An error stays until it is closed. The colours stay those of .notice in each theme; the border takes the text colour, so it also shows on a light page. */
body:is([data-theme],:not([data-theme])) .notice[data-flash][data-flash]{position:fixed;z-index:990;right:24px;bottom:24px;width:max-content;max-width:min(440px,calc(100vw - 48px));margin:0!important;padding:12px 14px 12px 16px;border:1px solid color-mix(in srgb,currentColor 28%,transparent);border-radius:12px;box-shadow:0 14px 36px rgba(0,0,0,.24);line-height:1.45;animation:notice-toast-in .25s ease-out both}

body:is([data-theme],:not([data-theme])) .notice.success[data-flash][data-flash]{animation:notice-toast-in .25s ease-out both,notice-toast-out .35s ease-in var(--toast-delay,6s) forwards}

body:is([data-theme],:not([data-theme])) .notice[data-flash][data-flash]:is(:hover,:focus-within){animation-play-state:paused}

@keyframes notice-toast-in{
  from{opacity:0;transform:translateY(14px)}
}

@keyframes notice-toast-out{
  to{opacity:0;transform:translateY(14px);visibility:hidden}
}

@media(max-width:600px){
  body:is([data-theme],:not([data-theme])) .notice[data-flash][data-flash]{left:16px;right:16px;bottom:16px;width:auto;max-width:none}
}

@media(prefers-reduced-motion:reduce){
  @keyframes notice-toast-in{
    from{opacity:0}
  }
  @keyframes notice-toast-out{
    to{opacity:0;visibility:hidden}
  }
}

/* Checkboxes in the dark themes: the browser draws them dark instead of a bright white square; the tick keeps the theme accent. */
body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) input[type="checkbox"]{color-scheme:dark}
body[data-theme="navy"] input[type="checkbox"]{color-scheme:dark}

body[data-theme="dark"] input[type="checkbox"]{accent-color:#8277d8}

body[data-theme="aiflow"] .teacher-workspace .teacher-test-table input[type="checkbox"]{accent-color:#00bcae}

body[data-theme="ember"] .teacher-workspace .teacher-test-table input[type="checkbox"]{accent-color:#ff7657}
body[data-theme="navy"] .teacher-workspace .teacher-test-table input[type="checkbox"]{accent-color:#ff5757}

/* Editor: the "remove answer" cross in the dark theme (Noční žár and Tyrkysový režim have their own). */
body[data-theme="dark"] .option-row button{border:1px solid #465575;background:#242d46;color:#b9c2e0}

body[data-theme="dark"] .option-row button:hover{border-color:#cf596b;background:#542c37;color:#ffb7c1}

/* Radio buttons in the dark themes, like the checkboxes: dark circle, theme accent when chosen (the custom answer radios of Noční žár and Tyrkysový režim keep their own look). */
body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"]) input[type="radio"]{color-scheme:dark}
body[data-theme="navy"] input[type="radio"]{color-scheme:dark}

body[data-theme="dark"] input[type="radio"]{accent-color:#8277d8}

body[data-theme="ember"] input[type="radio"]{accent-color:#ff7657}
body[data-theme="navy"] input[type="radio"]{accent-color:#ff5757}

/* Radio buttons and checkboxes: no square text-field ring after a mouse click; keyboard focus still gets a thin ring in the theme accent. */
input:is([type="radio"],[type="checkbox"]):focus{outline:none}

body input:is([type="radio"],[type="checkbox"]):focus-visible{outline:2px solid #8b81e7;outline-offset:2px}

body[data-theme="dark"] input:is([type="radio"],[type="checkbox"]):focus-visible{outline-color:#a993ff}

body[data-theme="colorful"] input:is([type="radio"],[type="checkbox"]):focus-visible{outline-color:#bf52b5}

body[data-theme="ember"] input:is([type="radio"],[type="checkbox"]):focus-visible{outline-color:#ff7657}
body[data-theme="navy"] input:is([type="radio"],[type="checkbox"]):focus-visible{outline-color:#ff5757}

body[data-theme="aiflow"] input:is([type="radio"],[type="checkbox"]):focus-visible{outline-color:#00bcae}

/* Number fields (time limit, grade thresholds, question counts): dark spin arrows in the dark theme and Noční žár too, as in Tyrkysový režim. */
body:is([data-theme="dark"],[data-theme="ember"]) input[type="number"]{color-scheme:dark}
body[data-theme="navy"] input[type="number"]{color-scheme:dark}

/* Time-limit badge for a test without a limit: muted like the access code. */
.teacher-time-limit.is-off{opacity:.45;filter:grayscale(1)}

.teacher-time-limit.is-off:hover,.teacher-time-limit.is-off:focus-visible{opacity:.75;filter:grayscale(1)}

/* Time-limit field in both dialogs with the hint below it. */
.time-limit-settings-row{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px 22px;margin:16px 0 0}

.time-limit-settings-row>label:first-child,.time-limit-dialog .time-limit-settings-row .time-limit-dialog-field{margin:0}

.time-limit-settings-hint{margin:6px 0 16px}

.time-limit-dialog .time-limit-settings-hint{margin-bottom:22px}

/* The time-limit badge uses the access code's font, so "30 min" and the muted "----" match "4830" and "----". */
.teacher-time-limit{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;font-weight:700;line-height:1.5;letter-spacing:.06em}

.teacher-time-limit i{font-size:11px}

/* Moje výuka: the time limit has its own column next to the code (the Upravit button moved to the ⋯ menu). */
.teacher-limit-cell .teacher-time-limit{justify-content:center;margin:0;vertical-align:middle}

/* The test title opens editing (the former Upravit button): link look on hover with a pen icon. */
.teacher-workspace .teacher-test-table .teacher-test-title{color:inherit;text-decoration:none;cursor:pointer}

.teacher-workspace .teacher-test-table .teacher-test-title:hover,.teacher-workspace .teacher-test-table .teacher-test-title:focus-visible{color:#5b52d6;text-decoration:underline;text-underline-offset:3px}

.teacher-workspace .teacher-test-table .teacher-test-title::after{content:"\f044";display:inline-block;margin-left:7px;font-family:"Font Awesome 6 Free";font-size:12px;font-weight:900;opacity:0;transition:opacity .15s}

.teacher-workspace .teacher-test-table .teacher-test-title:hover::after,.teacher-workspace .teacher-test-table .teacher-test-title:focus-visible::after{opacity:.75}

body[data-theme="dark"] .teacher-workspace .teacher-test-table .teacher-test-title:is(:hover,:focus-visible){color:#b9b1ff}

body[data-theme="colorful"] .teacher-workspace .teacher-test-table .teacher-test-title:is(:hover,:focus-visible){color:#9b3b98}

body[data-theme="ember"] .teacher-workspace .teacher-test-table .teacher-test-title:is(:hover,:focus-visible){color:#ffb08f}
body[data-theme="navy"] .teacher-workspace .teacher-test-table .teacher-test-title:is(:hover,:focus-visible){color:#ff8f8f}

body[data-theme="aiflow"] .teacher-workspace .teacher-test-table .teacher-test-title:is(:hover,:focus-visible){color:#74fff0}

/* With Upravit in the ⋯ menu the actions cell holds Výsledky and ⋯ only; its freed width pays for the Limit column. */
.teacher-workspace .teacher-test-table td.actions{width:135px;min-width:135px;padding-left:8px;padding-right:8px}

.teacher-code-cell .teacher-access-code,.teacher-limit-cell .teacher-time-limit{min-width:75px}

/* Stránkování výsledků testu (30 na stránku) */
.results-pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;margin:16px 0 0}
.results-pagination-info{color:var(--muted);font-size:14px}
.results-pagination-pages{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.results-pagination-pages>a,.results-pagination-pages>span{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 10px;border:1px solid var(--sel-line);border-radius:9px;background:var(--sel-bg);color:var(--sel-text);font-weight:700;font-size:14px;text-decoration:none}
.results-pagination-pages>a:hover{background:var(--sel-hover);color:var(--sel-hover-text)}
.results-pagination-pages>.is-current{border-color:var(--sel-mark);background:var(--sel-mark);color:#fff}
.results-pagination-pages>.is-disabled{opacity:.4}
.results-pagination-pages>.results-pagination-gap{min-width:auto;padding:0 2px;border:0;background:none;color:var(--muted)}
@media(max-width:600px){
  .results-pagination{justify-content:center}
}

body[data-theme="dark"] .results-pagination-pages>.is-current{color:#161a2e}

/* Přehled výsledků: krátké sloupce na jeden řádek, užší sloupec akcí */
.results-table th,.results-table td:nth-child(n+3){white-space:nowrap}
.results-table td:nth-child(2){min-width:180px}
.results-table td:nth-child(6){min-width:0}
.results-table .result-row-actions{min-width:0;padding-left:12px!important}
.results-table .result-row-actions>a{margin-right:12px}

.grade.grade-dot{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:30px;height:30px;padding:0;border-radius:50%;font-size:14px;font-weight:800;cursor:default}
.results-table th:nth-child(7),.results-table td:nth-child(7){text-align:center}

.results-table .results-empty td{padding:26px 15px;color:var(--muted);text-align:center;white-space:normal}
.results-table .results-empty a{margin-left:6px;font-weight:700}

/* Hlavička a filtr výsledků: Zpět a Zrušit filtr jako stejná vedlejší tlačítka */
.results-head-actions a.button,.filters .results-clear-filter{display:inline-flex;align-items:center;justify-content:center;margin:0;padding:13px 19px;font-size:13px;line-height:normal;white-space:nowrap}
.filters .results-clear-filter{padding:7px 14px}

/* Tmavý motiv: hlavička testu v rámečku jako v Nočním žáru a Tyrkysovém režimu */
body[data-theme="dark"] .test-heading{margin-bottom:18px;padding:30px 28px 24px;border:1px solid #353e5d;border-radius:20px;background:linear-gradient(105deg,#232b47,#1b2134);overflow:hidden}

/* Modrá noc: výrazné efekty podle předlohy – zvýrazněné slovo v nadpisu s přechodem červená→oranžová, červená záře u hlavních karet a tlačítek, tmavé dlaždice statistik. Barvy motivu jsou kopie Nočního žáru převedené na modrý podklad (pravidla body[data-theme="navy"] vždy hned za pravidlem pro ember). */
body[data-theme="navy"] .hero h1 em{background:linear-gradient(95deg,#ef4444 10%,#f97316 90%);-webkit-background-clip:text;background-clip:text;color:transparent}
body[data-theme="navy"] .hero-art,body[data-theme="navy"] .result-hero{border:1px solid rgba(239,68,68,.34);background:radial-gradient(circle at 88% 12%,rgba(239,68,68,.16),transparent 55%),linear-gradient(135deg,#171e36,#11172a);box-shadow:0 0 0 1px rgba(239,68,68,.08),0 0 48px rgba(239,68,68,.17)}
body[data-theme="navy"] .test-heading{border-color:rgba(239,68,68,.32);box-shadow:0 0 36px rgba(239,68,68,.12)}
body[data-theme="navy"] .score-ring{filter:drop-shadow(0 0 14px rgba(239,68,68,.35))}
body[data-theme="navy"] .stat-grid>div{background:#0e1323;border-color:#242c46;transition:border-color .2s,box-shadow .2s}
body[data-theme="navy"] .stat-grid>div:hover{border-color:rgba(249,115,22,.5);box-shadow:0 0 28px rgba(249,115,22,.2)}
body[data-theme="navy"] :is(.test-card,.practice-set-card,.my-list-card):hover{border-color:rgba(239,68,68,.7);box-shadow:0 0 0 1px rgba(239,68,68,.22),0 0 36px rgba(239,68,68,.22)}
body[data-theme="navy"] .button:not(.secondary){box-shadow:0 0 24px rgba(239,68,68,.32),0 9px 22px rgba(0,0,0,.3)}
body[data-theme="navy"] :is(.app-confirm-actions,.incomplete-test-actions,.backup-restore-actions,.test-order-actions) button:not(:disabled):hover{box-shadow:0 0 0 1px rgba(239,68,68,.45),0 0 20px rgba(239,68,68,.28)}

/* Modrá noc: vybraná odpověď v testu i ve zkoušce nanečisto je výrazná – červené podbarvení s přechodem, záře a plné červené písmeno (převod z Nočního žáru ji slil s modrým pozadím). */
body[data-theme="navy"] .answer.selected,body[data-theme="navy"] .answer.is-selected-answer,body[data-theme="navy"] .question-list .question-card .answer:has(input[type="radio"]:checked),body[data-theme="navy"] .practice-session .practice-options .practice-option.is-exam-selected{border-color:#ef4444!important;background:linear-gradient(90deg,rgba(239,68,68,.26),rgba(239,68,68,.1) 60%,rgba(249,115,22,.08))!important;box-shadow:inset 4px 0 0 #ff5757,0 0 22px rgba(239,68,68,.2)!important;color:#fff!important}
body[data-theme="navy"] .answer.selected b,body[data-theme="navy"] .answer.is-selected-answer b,body[data-theme="navy"] .question-list .question-card .answer:has(input[type="radio"]:checked) b,body[data-theme="navy"] .practice-session .practice-options .practice-option.is-exam-selected b{background:#ef4444!important;color:#fff!important}

/* Na mobilu (do 600 px) zůstává v hlavičce ostrého testu jen počítadlo „Otázka X z Y“ (ovladače a jméno jsou skryté): ve všech motivech bez prázdného rámečku a velké mezery, jako malý štítek vpravo nad otázkou. */
@media(max-width:600px){
  body .shell .test-heading:is(.test-heading-all,:has(.sequential-question-counter)){min-height:0!important;margin-top:16px!important;margin-bottom:12px!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important}
  body .shell .test-heading:is(.test-heading-all,:has(.sequential-question-counter))::before,body .shell .test-heading:is(.test-heading-all,:has(.sequential-question-counter))::after{display:none!important}
}

/* Učitelská plocha: tlačítka lišty (Filtrovat, Zrušit filtry, Upravit pořadí, po výběru testů hromadné akce Zálohovat, Vytvořit z vybraných, Odstranit…), řádků (Výsledky) a nabídek (tři tečky, Nástroje) vypadají v každém motivu stejně – barvy učitelské plochy, při najetí okraj v akcentu motivu, světlejší pozadí a posun o 1 px. body:is(...) a opakovaná třída .teacher-workspace zvedají specifičnost nad starší pravidla motivů, ve Světlém i nad obecné button:not(.button)… (0,6,2) s !important. */
.teacher-workspace{--teacher-accent:#837add}
body[data-theme="colorful"] .teacher-workspace{--teacher-accent:#b951b5}
body[data-theme="dark"] .teacher-workspace{--teacher-accent:#8277d8}
body[data-theme="ember"] .teacher-workspace{--teacher-accent:#a55a4d}
body[data-theme="navy"] .teacher-workspace{--teacher-accent:#d71b1b}
body[data-theme="aiflow"] .teacher-workspace{--teacher-accent:#00bcae}
body:is([data-theme],:not([data-theme])) .teacher-workspace.teacher-workspace.teacher-workspace.teacher-workspace :is(.teacher-test-toolbar .filters button,.test-order-button,.teacher-test-bulk-actions .button,.actions>.teacher-row-primary,.teacher-menu>summary){border:1px solid var(--teacher-border)!important;background:var(--teacher-surface)!important;color:var(--teacher-text)!important;box-shadow:none!important;filter:none!important;transform:none}
body:is([data-theme],:not([data-theme])) .teacher-workspace.teacher-workspace.teacher-workspace.teacher-workspace :is(.teacher-test-toolbar .filters button,.test-order-button,.teacher-test-bulk-actions .button,.actions>.teacher-row-primary,.teacher-menu>summary):not(:disabled):hover,body:is([data-theme],:not([data-theme])) .teacher-workspace.teacher-workspace.teacher-workspace.teacher-workspace .teacher-menu[open]>summary{border-color:var(--teacher-accent)!important;background:var(--teacher-hover)!important;color:var(--teacher-text)!important;transform:translateY(-1px)}

/* Špendlík u názvu testu je v každém motivu bez rámečku a podkladu, i proti tlačítkovým pravidlům světlého motivu. */
body:is([data-theme],:not([data-theme])) .teacher-workspace.teacher-workspace.teacher-workspace.teacher-workspace.teacher-workspace :is(.teacher-pin-toggle,.teacher-questions-toggle){border:0!important;background:transparent!important;color:var(--t-muted)}
body:is([data-theme],:not([data-theme])) .teacher-workspace.teacher-workspace.teacher-workspace.teacher-workspace.teacher-workspace .teacher-pin-toggle.is-pinned{color:var(--t-accent)!important}
body:is([data-theme],:not([data-theme])) .teacher-workspace.teacher-workspace.teacher-workspace.teacher-workspace.teacher-workspace :is(.teacher-pin-toggle,.teacher-questions-toggle):is(:hover,:focus-visible){background:var(--t-hover)!important;color:var(--t-accent)!important}

/* Nabídky v Moje výuka (Nástroje i tři tečky u testu) vypadají v každém motivu stejně: položky bez rámečku (jsou to položky seznamu, ne tlačítka), při najetí podbarvení a text i ikona v akcentu motivu; „Odstranit“ si nechává varovnou barvu. Osminásobná třída přebíjí starší pravidla nabídek (až 0,10,3 s !important). */
.teacher-workspace{--teacher-accent-text:#5a4fcf}
body[data-theme="colorful"] .teacher-workspace{--teacher-accent-text:#9b2f97}
body[data-theme="dark"] .teacher-workspace{--teacher-accent-text:#b3a9ff}
body[data-theme="ember"] .teacher-workspace{--teacher-accent-text:#ff9a79}
body[data-theme="navy"] .teacher-workspace{--teacher-accent-text:#ff7979}
body[data-theme="aiflow"] .teacher-workspace{--teacher-accent-text:#47e7f5}
body:is([data-theme],:not([data-theme])) .teacher-workspace .teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel :is(a,button){border:1px solid transparent!important;background:transparent!important;box-shadow:none!important;transform:none!important;filter:none!important}
body:is([data-theme],:not([data-theme])) .teacher-workspace .teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel :is(a,button):not(.teacher-menu-danger *){color:var(--teacher-text)!important}
body:is([data-theme],:not([data-theme])) .teacher-workspace .teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel :is(a,button):not(.teacher-menu-danger *) i{color:var(--teacher-muted)!important}
body:is([data-theme],:not([data-theme])) .teacher-workspace .teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel :is(a,button):is(:hover,:focus-visible){background:var(--teacher-hover)!important}
body:is([data-theme],:not([data-theme])) .teacher-workspace .teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel :is(a,button):not(.teacher-menu-danger *):is(:hover,:focus-visible),body:is([data-theme],:not([data-theme])) .teacher-workspace .teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel.teacher-menu-panel :is(a,button):not(.teacher-menu-danger *):is(:hover,:focus-visible) i{color:var(--teacher-accent-text)!important}

/* Filtr katalogu (úvod i stránka Katalog): Hledat a Zrušit filtr vypadají jako tlačítka filtru v Moje výuka – sdílené barvy --t-*, při najetí okraj v akcentu motivu, světlejší pozadí a posun o 1 px. Pětinásobná třída přebíjí obecná pravidla tlačítek (ve Světlém motivu 0,6,2 s !important). */
:root{--t-accent-border:#837add}
body[data-theme="colorful"]{--t-accent-border:#b951b5}
body[data-theme="dark"]{--t-accent-border:#8277d8}
body[data-theme="ember"]{--t-accent-border:#a55a4d}
body[data-theme="navy"]{--t-accent-border:#d71b1b}
body[data-theme="aiflow"]{--t-accent-border:#00bcae}
body:is([data-theme],:not([data-theme])) .catalog-filter.catalog-filter.catalog-filter.catalog-filter.catalog-filter :is(button[type="submit"],.catalog-clear-filter){font-size:14px!important;border:1px solid var(--t-border)!important;background:var(--t-surface)!important;color:var(--t-text)!important;box-shadow:none!important;filter:none!important;transform:none}
body:is([data-theme],:not([data-theme])) .catalog-filter.catalog-filter.catalog-filter.catalog-filter.catalog-filter :is(button[type="submit"],.catalog-clear-filter):hover{border-color:var(--t-accent-border)!important;background:var(--t-hover)!important;color:var(--t-text)!important;transform:translateY(-1px)}

/* Vedlejší tlačítka (button secondary) v celé aplikaci vypadají v každém motivu stejně jako tlačítka Moje výuka a filtru katalogu: neutrální text, okraj a plocha ze sdílených barev --t-*, při najetí okraj v akcentu motivu (--t-accent-border), světlejší pozadí a posun o 1 px. Dřív měly vlastní barvy motivu (Noční žár a Modrá noc růžový text, Barevný tyrkysové pozadí, Světlý levandulové). Výstražná tlačítka (Resetovat statistiky, mazání v dialozích) a hlavní tlačítka s přechodem mají vlastní třídy a tohle pravidlo se jich netýká. Opakovaná třída přebíjí starší pravidla motivů s !important (0,3,1). */
body:is([data-theme],:not([data-theme])) .button.secondary.secondary.secondary.secondary{border:1px solid var(--t-border)!important;background:var(--t-surface)!important;color:var(--t-text)!important;box-shadow:none!important;filter:none!important}
body:is([data-theme],:not([data-theme])) .button.secondary.secondary.secondary.secondary:not(:disabled):hover{border-color:var(--t-accent-border)!important;background:var(--t-hover)!important;color:var(--t-text)!important;transform:translateY(-1px)}

/* Tlačítka filtrů (.filters button, např. Filtrovat na stránce výsledků) stejně jako vedlejší tlačítka vedle nich. */
body:is([data-theme],:not([data-theme])) .filters.filters.filters.filters.filters.filters button{border:1px solid var(--t-border)!important;background:var(--t-surface)!important;color:var(--t-text)!important;box-shadow:none!important;filter:none!important}
body:is([data-theme],:not([data-theme])) .filters.filters.filters.filters.filters.filters button:not(:disabled):hover{border-color:var(--t-accent-border)!important;background:var(--t-hover)!important;color:var(--t-text)!important;transform:translateY(-1px)}

/* Tlačítko Trénink u testu v katalogu (karty i Jen názvy) je vedlejší tlačítko jako ostatní; hlavní Test s přechodem zůstává. Dřív se v každém motivu chovalo jinak (jen zesvětlení, nebo barevný text i okraj). */
body:is([data-theme],:not([data-theme])) :is(.card-training-actions.card-training-actions.card-training-actions.card-training-actions,.home-test-name-actions.home-test-name-actions.home-test-name-actions.home-test-name-actions) :is([data-practice-link],.name-practice-link){border:1px solid var(--t-border)!important;background:var(--t-surface)!important;color:var(--t-text)!important;box-shadow:none!important;filter:none!important}
body:is([data-theme],:not([data-theme])) :is(.card-training-actions.card-training-actions.card-training-actions.card-training-actions,.home-test-name-actions.home-test-name-actions.home-test-name-actions.home-test-name-actions) :is([data-practice-link],.name-practice-link):hover{border-color:var(--t-accent-border)!important;background:var(--t-hover)!important;color:var(--t-text)!important;filter:none!important;transform:translateY(-1px)}

/* Tlačítko Nevím v tréninku a zkoušce nanečisto má v každém motivu neutrální barvu textu (--t-text) jako ostatní vedlejší tlačítka; dřív Noční žár lososovou, Modrá noc růžovou a Světlý fialovou. Vybrané Nevím ve zkoušce nanečisto (.is-exam-selected) zůstává žluté. */
body:is([data-theme],:not([data-theme])) .practice-next button.practice-unknown.practice-unknown.practice-unknown.practice-unknown:not(.is-exam-selected){color:var(--t-text)}

/* Modrá noc: zapnuté „Povolit trénink“ v editoru s červeným nádechem jako ostatní zvýrazněné volby (generovaná kopie z Nočního žáru je téměř stejně modrá jako vypnutý stav). */
body[data-theme="navy"] .editor-config-row .editor-training-toggle.editor-training-toggle:has(input:checked){border-color:#ef4444!important;background:rgba(239,68,68,.16)!important;color:#fff!important}

/* Editor: „Resetovat statistiky“ (hlavička editoru i dialog Upravit test) je ve všech motivech vedlejší tlačítko s ikonou ve výstražné barvě; při najetí výstražný okraj, podbarvení a text. Výstražné barvy podle motivu (oranžová, v Nočním žáru korálová, v Modré noci červená – generovaná kopie, v Tyrkysovém růžová). */
:root{--t-warn-border:#d89c70;--t-warn-bg:#fff6ee;--t-warn-text:#a95b2d;--t-warn-icon:#db8750}
body[data-theme="dark"]{--t-warn-border:#a96f4b;--t-warn-bg:#3a2b25;--t-warn-text:#ffd0ab;--t-warn-icon:#ffb57d}
body[data-theme="ember"]{--t-warn-border:#c46758;--t-warn-bg:#3a2423;--t-warn-text:#ff9a79;--t-warn-icon:#ff8c63}
body[data-theme="navy"]{--t-warn-border:#e63636;--t-warn-bg:#1e2746;--t-warn-text:#ff7979;--t-warn-icon:#ff6363}
body[data-theme="aiflow"]{--t-warn-border:#d26083;--t-warn-bg:#47253b;--t-warn-text:#ffc4d0;--t-warn-icon:#ff9fb8}
body:is([data-theme],:not([data-theme])) :is(.editor-reset-statistics.editor-reset-statistics.editor-reset-statistics.editor-reset-statistics.editor-reset-statistics.editor-reset-statistics button){border:1px solid var(--t-border)!important;background:var(--t-surface)!important;color:var(--t-text)!important;box-shadow:none!important;filter:none!important}
body:is([data-theme],:not([data-theme])) :is(.editor-reset-statistics.editor-reset-statistics.editor-reset-statistics.editor-reset-statistics.editor-reset-statistics.editor-reset-statistics button) i{color:var(--t-warn-icon)!important}
body:is([data-theme],:not([data-theme])) :is(.editor-reset-statistics.editor-reset-statistics.editor-reset-statistics.editor-reset-statistics.editor-reset-statistics.editor-reset-statistics button):hover{border-color:var(--t-warn-border)!important;background:var(--t-warn-bg)!important;color:var(--t-warn-text)!important;transform:translateY(-1px)}
body:is([data-theme],:not([data-theme])) :is(.editor-reset-statistics.editor-reset-statistics.editor-reset-statistics.editor-reset-statistics.editor-reset-statistics.editor-reset-statistics button):hover i{color:var(--t-warn-text)!important}

/* Editor: vypnuté „Povolit trénink“ vypadá jako vstupní pole vedle něj (neutrální text), při najetí okraj v akcentu motivu; zapnutý stav mají pravidla motivů výše. */
body:is([data-theme],:not([data-theme])) .editor-config-row .editor-training-toggle.editor-training-toggle.editor-training-toggle:not(:has(input:checked)){border-color:var(--t-field-border)!important;background:var(--t-field-bg)!important;color:var(--t-text)}
body:is([data-theme],:not([data-theme])) .editor-config-row .editor-training-toggle.editor-training-toggle.editor-training-toggle:not(:has(input:checked)):hover{border-color:var(--t-accent-border)!important}

/* Modrá noc: výstražné podbarvení „Resetovat statistiky“ při najetí s červeným nádechem (generovaná kopie z Nočního žáru je modrá). */
body[data-theme="navy"]{--t-warn-bg:rgba(239,68,68,.14)}

/* Modrá noc: zvýrazněná karta režimu v dialogu „Jak chcete procvičovat?“ (najetí, předvybraná „Naposledy“) má červený nádech pozadí – generovaná kopie z Nočního žáru byla téměř stejně modrá jako ostatní karty. */
body[data-theme="navy"] .practice-start-mode.practice-start-mode:is(:hover,:focus-visible){background:linear-gradient(90deg,rgba(239,68,68,.2),rgba(239,68,68,.08) 70%,rgba(249,115,22,.06))}

/* Modrá noc: společná barva pozadí při najetí (vedlejší tlačítka, tlačítka Moje výuka, položky nabídek, Trénink v katalogu) má jemný červený nádech; převedená modrá #1c2440 téměř splývala s plochou tlačítka. */
body[data-theme="navy"]{--t-hover:#2a1d2c}
body[data-theme="navy"] .teacher-workspace.teacher-workspace{--teacher-hover:#2a1d2c}

/* Modrá noc: najetí na odpověď (test, trénink, zkouška nanečisto) jen jemně – červený okraj a mírně světlejší modré pozadí. Červený nádech zvýrazněných stavů z generátoru byl u odpovědí moc výrazný a připomínal špatnou odpověď. Vybrané, správné a špatné odpovědi mají vlastní silnější pravidla. */
body[data-theme="navy"] .answer:hover,body[data-theme="navy"] .practice-option:hover{background:#1c2441}
body[data-theme="navy"] .question-list.sequential .answer:hover{background:#1c2441!important}

/* Přehled otázek pro žáky: jen sdílené barvy --t-*, správná odpověď v zelené smíchané s barvami motivu (color-mix), takže vypadá dobře ve všech šesti motivech bez vlastních přepisů. */
.question-overview{--ov-ok:#1f9d6b;max-width:920px;margin:36px auto 0}
.question-overview .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Hlavička přehledu: lišta čtení vpravo v řádku nápisu PŘEHLED OTÁZEK, nadpis a popis pod nimi přes celou šířku; do 760 px je lišta pod popisem. */
.question-overview-head{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"eyebrow actions" "title title" "lead lead";align-items:center;column-gap:24px;margin-bottom:24px}
.question-overview-head .eyebrow{grid-area:eyebrow;margin:0}
.question-overview-head h1{grid-area:title;margin:14px 0 10px;font-size:clamp(28px,4vw,42px);color:var(--t-text)}
.question-overview-lead{grid-area:lead;max-width:620px;margin:0;color:var(--t-muted)}

/* Zpět do tréninku má na počítači velikost tlačítek lišty čtení a stojí v jejím řádku vlevo; na mobilu (lišta skrytá) je velké přes celou šířku. */
.question-overview-actions{display:flex;grid-area:actions;align-items:center;gap:7px}
.question-overview-actions .test-reading-controls{margin:0}
.question-overview-back{flex-shrink:0;order:-1;height:34px;margin-right:8px;padding:0 12px;gap:7px;border-radius:9px;font-size:12px;font-weight:700}
.question-overview-back i{font-size:12px}
.question-overview-toolbar{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:14px 18px;margin-bottom:22px;padding:12px 14px;border:1px solid var(--t-border);border-radius:16px;background:var(--t-surface);box-shadow:0 12px 30px rgba(15,23,42,.1)}
.question-overview-status{display:flex;flex:1 1 180px;flex-direction:column;gap:6px;min-width:150px}
.question-overview-progress{color:var(--t-muted);font-size:13px;font-weight:700}
.question-overview-meter{display:block;height:6px;overflow:hidden;border-radius:99px;background:var(--t-border)}
.question-overview-meter span{display:block;width:0;height:100%;border-radius:inherit;background:var(--t-accent);transition:width .3s ease}
.question-overview-all{gap:10px;padding:11px 16px}
.question-overview-list{display:grid;gap:16px;margin:0;padding:0;list-style:none}
.question-overview-item{display:grid;grid-template-columns:44px minmax(0,1fr);gap:18px;padding:22px 24px;border:1px solid var(--t-border);border-radius:18px;background:var(--t-surface);box-shadow:0 6px 20px rgba(15,23,42,.05);transition:border-color .2s ease}
.question-overview-item:is(.is-revealed,.is-correct-only *){border-color:color-mix(in srgb,var(--ov-ok) 45%,var(--t-border))}
.question-overview-number{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--t-accent-soft);color:var(--t-accent-on-soft);font-size:17px;font-weight:800;transition:background .2s ease,color .2s ease}
.question-overview-item:is(.is-revealed,.is-correct-only *) .question-overview-number{background:color-mix(in srgb,var(--ov-ok) 18%,var(--t-surface));color:color-mix(in srgb,var(--ov-ok) 70%,var(--t-text))}
.question-overview-question{margin:8px 0 16px;color:var(--t-text);font-size:calc(var(--testio-answer-font-size,16px) + 3px);font-weight:700;line-height:1.45;letter-spacing:-.2px;white-space:pre-line}
.testio-regular-question-font .question-overview-question{font-weight:400}
.testio-regular-question-font .test-preview-question{font-weight:400}
.testio-regular-question-font :is(.test-preview-answer,.test-preview-option.is-correct){font-weight:500}
.question-overview-options{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.question-overview-option{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-soft);color:var(--t-text);transition:opacity .2s ease,border-color .2s ease,background .2s ease}
.question-overview-letter{display:grid;flex:0 0 30px;place-items:center;height:30px;border:1px solid var(--t-border);border-radius:9px;background:var(--t-surface);color:var(--t-muted);font-size:13px;font-weight:800}
.question-overview-option-text{flex:1;font-size:var(--testio-answer-font-size,16px);white-space:pre-line;overflow-wrap:anywhere}
.question-overview-mark{display:none}
.back-to-top{display:none}
.question-overview-item.is-revealed .question-overview-option:not(.is-correct){opacity:.55}
.question-overview-item:is(.is-revealed,.is-correct-only *) .question-overview-option.is-correct{border-color:color-mix(in srgb,var(--ov-ok) 70%,transparent);background:color-mix(in srgb,var(--ov-ok) 14%,var(--t-surface));color:color-mix(in srgb,var(--ov-ok) 45%,var(--t-text));font-weight:700}
.question-overview-item:is(.is-revealed,.is-correct-only *) .question-overview-option.is-correct .question-overview-letter{border-color:var(--ov-ok);background:var(--ov-ok);color:#fff}
.question-overview-item:is(.is-revealed,.is-correct-only *) .question-overview-mark{display:inline-flex;flex-shrink:0;align-items:center;gap:6px;padding:3px 10px;border-radius:99px;background:var(--ov-ok);color:#fff;font-size:12px;font-weight:800;animation:question-overview-in .25s ease}
.question-overview-explanation{display:none;gap:12px;margin-top:14px;padding:14px 16px;border-left:4px solid var(--t-accent);border-radius:12px;background:var(--t-accent-soft);color:var(--t-text)}
.question-overview-item:is(.is-revealed,.is-correct-only *) .question-overview-explanation{display:flex;animation:question-overview-in .25s ease}
.question-overview .question-overview-explanation>i{margin-top:4px;color:var(--t-accent)}
.question-overview-explanation b{display:block;margin-bottom:4px;color:var(--t-accent-on-soft);font-size:12px;letter-spacing:1px;text-transform:uppercase}
.question-overview-explanation p{margin:0;font-size:var(--testio-answer-font-size,16px);line-height:1.6;overflow-wrap:anywhere}
body.test-wide-mode .shell:has(.question-overview),body.test-wide-mode .question-overview{max-width:none}
.question-overview-reveal{gap:10px;margin-top:16px;padding:9px 15px;font-size:14px}
.question-overview-modes{display:flex;flex-wrap:wrap;gap:10px}
.question-overview-mode{gap:10px;padding:11px 16px}
body:is([data-theme],:not([data-theme])) .question-overview-modes .button.secondary.secondary.secondary.secondary[aria-pressed="true"]{border-color:var(--t-accent)!important;background:var(--t-accent-soft)!important;color:var(--t-accent-on-soft)!important}
.question-overview.is-correct-only :is(.question-overview-option:not(.is-correct),.question-overview-reveal,.question-overview-letter){display:none}
.question-overview.is-answers-only .question-overview-item:not(.is-explained) .question-overview-explanation{display:none}
.question-overview.is-weak-only .question-overview-item:not(.is-weak){display:none}
.question-overview-known,.question-overview-weak-empty,.question-overview-weak-all{display:none}
.question-overview.is-weak-only .question-overview-weak-all{display:block;margin:0 0 14px;font-size:14px}
.question-overview-weak-all a{display:inline-flex;align-items:center;gap:8px;color:var(--t-accent);font-weight:600;text-decoration:none}
.question-overview-weak-all a:hover{text-decoration:underline}
.question-overview.is-weak-only .question-overview-item.is-weak .question-overview-known{display:inline-flex;gap:8px;margin-top:14px;padding:8px 14px;font-size:13px}
.question-overview.is-weak-only.is-weak-empty .question-overview-weak-empty{display:block;margin:0;padding:28px 20px;border:1px dashed var(--t-border);border-radius:18px;color:var(--t-muted);text-align:center}
.question-overview.is-answers-only .question-overview-option[role="button"]{cursor:pointer}
.question-overview.is-answers-only .question-overview-item.is-explained{cursor:pointer}
.question-overview.is-answers-only .question-overview-option[role="button"]:focus-visible{outline:2px solid var(--t-accent);outline-offset:2px}
.question-overview.is-answers-only .question-overview-item{padding-block:16px}
.question-overview.is-answers-only .question-overview-question{margin-bottom:10px}
@keyframes question-overview-in{
  from{opacity:0;transform:translateY(-4px)}
  to{opacity:1;transform:none}
}
@media(max-width:760px){
  .question-overview{margin-top:24px}
  .question-overview-head{grid-template-columns:minmax(0,1fr);grid-template-areas:"eyebrow" "title" "lead" "actions"}
  .question-overview-actions{justify-self:start;margin-top:16px}
}
@media(max-width:600px){
  .question-overview-item{grid-template-columns:minmax(0,1fr);gap:10px;padding:16px}
  .question-overview-actions{justify-self:stretch}
  .question-overview-back{flex:1;height:auto;margin:0;padding:13px 19px;gap:10px;border-radius:10px;font-size:16px;font-weight:600}
  .question-overview-back i{font-size:inherit}
  .question-overview-number{width:34px;height:34px;border-radius:10px;font-size:15px}
  .question-overview-question{margin-top:0;font-size:calc(var(--testio-answer-font-size,16px) + 1px)}
  .question-overview-all,.question-overview-modes,.question-overview-mode,.question-overview-reveal,.question-overview-status{width:100%}
  .question-overview.is-weak-only .question-overview-item.is-weak{grid-template-columns:auto minmax(0,1fr)}
  .question-overview.is-weak-only .question-overview-item.is-weak .question-overview-body{display:contents}
  .question-overview.is-weak-only .question-overview-item.is-weak .question-overview-body>*{grid-column:1/-1}
  .question-overview.is-weak-only .question-overview-item.is-weak .question-overview-known{grid-column:2;grid-row:1;justify-self:end;align-self:center;margin:0}
  .question-overview-item:is(.is-revealed,.is-correct-only *) .question-overview-mark{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
}

/* Moje slabé otázky (?r=weak_questions): a bar with Procvičit všechny / Odebrat vybrané and a card per test with its weak questions; theme tokens only, the correct answer in the green of the question overview. */
.weak-questions{display:grid;gap:16px;margin:0 0 40px}
.weak-questions-tools{display:flex;justify-content:flex-end;gap:6px;margin:0 0 10px}
.weak-questions-tools[hidden]{display:none}
.weak-questions-tools .button{min-width:44px;margin:0;padding:7px 10px;font-size:13px;font-weight:700}
.weak-questions-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;padding:16px 20px;border:1px solid var(--t-border);border-radius:16px;background:var(--t-surface)}
.weak-questions-summary{display:flex;flex-direction:column;gap:2px}
.weak-questions-summary b{color:var(--t-text);font-size:18px}
.weak-questions-summary span{color:var(--t-muted);font-size:13px}
.weak-questions-bar-actions{display:flex;flex-wrap:wrap;gap:10px}
.weak-questions-bar-actions .button{display:inline-flex;align-items:center;gap:8px;margin:0;padding:9px 16px;font-size:14px}
.weak-questions-bar-actions .button.secondary{gap:7px;padding:8px 12px;font-size:14px}
.weak-questions-note{display:flex;flex-basis:100%;align-items:center;gap:8px;margin:0;color:var(--t-muted);font-size:13px}
.weak-test{padding:18px 20px;border:1px solid var(--t-border);border-radius:16px;background:var(--t-surface)}
.weak-test-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px}
.weak-test-head h2{margin:0 0 6px;color:var(--t-text);font-size:17px}
.weak-test-head p{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;color:var(--t-muted);font-size:13px}
.weak-test-count{padding:2px 10px;border-radius:999px;background:var(--t-accent-soft);color:var(--t-accent-on-soft);font-weight:700}
.weak-test-meta+.weak-test-meta::before{content:"·";margin-right:8px}
.weak-test-state{padding:2px 9px;border-radius:999px;background:var(--t-soft);color:var(--t-muted);font-weight:600}
.weak-test-actions{display:flex;flex-wrap:wrap;gap:8px}
.weak-test-actions .button{display:inline-flex;align-items:center;gap:7px;margin:0;padding:8px 12px;font-size:13px}
.weak-test-questions{display:grid;gap:8px;margin:14px 0 0;padding:0;list-style:none}
.weak-test-questions li{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-soft)}
.weak-test-questions label{display:flex;flex:1;align-items:flex-start;gap:10px;min-width:0;margin:0;color:var(--t-text);font-size:var(--testio-answer-font-size,16px);font-weight:500;line-height:1.45;cursor:pointer}
.weak-test-questions input[type="checkbox"]{flex:0 0 auto;width:18px;height:18px;margin:3px 0 0;padding:0;accent-color:var(--t-accent)}
.weak-question-text{display:flex;flex-direction:column;gap:6px;min-width:0;overflow-wrap:anywhere}
.weak-question-answer{display:inline-flex;align-items:center;gap:6px;width:fit-content;max-width:100%;padding:3px 10px;border:1px solid color-mix(in srgb,#1f9d6b 55%,transparent);border-radius:999px;background:color-mix(in srgb,#1f9d6b 14%,var(--t-surface));color:color-mix(in srgb,#1f9d6b 70%,var(--t-text));font-size:calc(var(--testio-answer-font-size,16px) - 2px);font-weight:600}
.weak-question-answer.is-explainable{cursor:pointer;transition:background .15s ease,box-shadow .15s ease}
.weak-question-answer.is-explainable:hover{background:color-mix(in srgb,#1f9d6b 24%,var(--t-surface));box-shadow:0 0 0 3px color-mix(in srgb,#1f9d6b 18%,transparent)}
.weak-question-answer.is-explainable:focus-visible{outline:2px solid #1f9d6b;outline-offset:2px}
.weak-test-questions .button.weak-question-remove{display:inline-flex;flex:0 0 auto;align-items:center;gap:6px;margin:0;padding:6px 10px;font-size:12px;white-space:nowrap}
.weak-test-hidden{margin:12px 0 0;color:var(--t-muted);font-size:13px}
.weak-questions-empty{display:grid;justify-items:center;gap:12px;margin:0;padding:40px 20px;border:1px dashed var(--t-border);border-radius:16px;color:var(--t-muted);text-align:center}
.weak-questions-empty i{color:var(--t-accent);font-size:28px}
.weak-questions-empty p{margin:0}
@media(max-width:600px){
  .weak-questions-bar,.weak-test{padding:14px}
  .weak-questions-bar-actions,.weak-test-actions{width:100%}
  .weak-questions-bar-actions .button,.weak-test-actions .button{flex:1;justify-content:center}
  .weak-test-questions li{position:relative;flex-wrap:wrap;row-gap:4px}
  .weak-test-questions label{flex-basis:100%}
  .weak-test-questions .button.weak-question-remove{height:32px;margin-left:auto;padding:0 12px;font-size:13px}
  .weak-question-answer{border-radius:14px}
  .weak-question-answer>i{display:none}
}
@media(max-width:430px){
  .weak-questions-bar-actions [data-weak-remove-selected],.weak-test-questions input[type="checkbox"],.weak-test-overview-long{display:none}
  .weak-test-questions label{cursor:default}
}

/* Long words in questions and answers (paths like C:\Windows\System32\drivers\etc, addresses, commands without spaces) break where they do not fit instead of widening the page on phones. Spans in flex rows also need min-width:0 to shrink. */
.question-card legend,.question-card-text,.question-list .answer span,.practice-question-title,.practice-option span,.flashcard,.flashcard-options li,.question-overview-question,.review,.duel-question-text,.duel-options{overflow-wrap:anywhere}
.question-list .answer span,.practice-option span{min-width:0}

/* Commands and terminal output in question, answer and explanation text (format_text() / window.formatText()): ``command`` inline, a ``` block on its own lines. Colours follow the surrounding text, so they fit every theme and the green or red answer states. */
.text-code,.text-code-block{font-family:"Cascadia Mono","Cascadia Code",Consolas,"SFMono-Regular",Menlo,"Liberation Mono",monospace;border:1px solid color-mix(in srgb,currentColor 22%,transparent);background:color-mix(in srgb,currentColor 8%,transparent);color:inherit;letter-spacing:0;text-transform:none}
.question-card legend .question-card-text{flex:1;min-width:0;font-weight:inherit}
.review .review-explanation,.flashcard-explanation>span{white-space:pre-line}
.text-code{padding:.05em .38em;border-radius:6px;font-size:.92em;white-space:pre-wrap;overflow-wrap:anywhere}
.text-code-block{display:block;max-width:100%;margin:.6em 0;padding:10px 14px;border-radius:10px;font-size:clamp(13px,.82em,16px);font-weight:400;line-height:1.5;text-align:left;white-space:pre;overflow-x:auto;tab-size:4;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,currentColor 35%,transparent) transparent}

/* A long line of a terminal block scrolls inside the block: the flex items that may hold formatted text can shrink below its width. */
.question-overview-explanation>div,.review>div,.flashcard-explanation>span,.flashcard-options li>span,.practice-option>span,.answer>span,.question-overview-option-text,.question-performance-question>b{min-width:0}
.question-overview-options>li,.question-overview-option,.practice-option,.answer{min-width:0;max-width:100%}

/* Tlačítko nahoru (přehled otázek, výsledek testu a zkoušky nanečisto) na telefonech a dotykových tabletech (i širších než 760 px). */
@media(max-width:600px),(hover:none) and (pointer:coarse){
  body .back-to-top.back-to-top{position:fixed;right:16px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:40;display:grid;place-items:center;width:46px;height:46px;margin:0;padding:0;border:1px solid var(--t-border);border-radius:50%;background:var(--t-surface);color:var(--t-accent);font-size:17px;box-shadow:0 6px 18px rgba(0,0,0,.18);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease,visibility .2s}
  body .back-to-top.back-to-top.is-visible{opacity:.92;visibility:visible;transform:none}
  body .back-to-top.back-to-top:focus-visible{outline:2px solid var(--t-accent);outline-offset:2px}
}

/* Statistiky tréninků: dlaždice „Spuštění tréninku“ v Moje výuka a v administraci vede na stránku statistik (řádek „dnes N · statistiky“); stránka s denními počty a rozpisem podle testů. Jen sdílené barvy --t-*. */
.stat-grid .practice-stats-tile>a{display:block;color:inherit;text-decoration:none}
.stat-grid .practice-stats-tile .practice-stats-today{display:flex;align-items:center;gap:6px;margin-top:5px;color:var(--t-muted);font-size:12px;font-weight:650}
.stat-grid .practice-stats-tile .practice-stats-today i{font-size:10px}
.stat-grid .practice-stats-tile>a:is(:hover,:focus-visible) .practice-stats-today{color:var(--t-accent)}
.stat-grid:has(>.practice-stats-tile:nth-child(5)):not(.teacher-workspace *){grid-template-columns:repeat(5,minmax(0,1fr))}
.practice-stats .practice-stats-lead{margin:6px 0 0;color:var(--t-muted)}
.practice-stats .stat-grid.practice-stats-summary{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:24px}
.practice-stats .stat-grid.practice-stats-summary:has(>.practice-stats-success){grid-template-columns:repeat(4,minmax(0,1fr))}
.practice-stats .practice-stats-visitors{display:block;margin-top:4px;color:var(--t-muted);font-size:13px;font-weight:650}
.practice-stats-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:20px;align-items:start}
.practice-stats-card{min-width:0;padding:18px 20px;border:1px solid var(--t-border);border-radius:13px;background:var(--t-surface);color:var(--t-text)}
.practice-stats-card h2{margin:0 0 12px;color:var(--t-text);font-size:18px}
.practice-stats-scroll{overflow-x:auto}
.practice-stats .practice-stats-table{width:100%;border-collapse:collapse;background:transparent;font-size:14px}
.practice-stats .practice-stats-table :is(th,td){padding:8px 10px;border:0;border-bottom:1px solid var(--t-border);background:transparent;color:var(--t-text);text-align:left;vertical-align:middle}
.practice-stats .practice-stats-table th{color:var(--t-muted);font-size:12px;font-weight:700;text-transform:none}
.practice-stats .practice-stats-table tr:last-child td{border-bottom:0}
.practice-stats .practice-stats-days td:first-child{white-space:nowrap}
.practice-stats .practice-stats-days td:last-child{width:62%}
.practice-stats-count{display:flex;align-items:center;gap:10px}
.practice-stats-count b{min-width:2ch;text-align:right;font-variant-numeric:tabular-nums}
.practice-stats-bar{flex:1;height:8px;border-radius:99px;background:linear-gradient(90deg,var(--t-accent) var(--share),var(--t-soft) var(--share))}
.practice-stats .practice-stats-days tr.is-empty td{color:var(--t-muted)}
.practice-stats .practice-stats-days td.practice-stats-pupils{width:1%;color:var(--t-muted);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.practice-stats .practice-stats-days th:nth-child(2){text-align:right}
.practice-stats .practice-stats-days tr.is-today td:first-child{color:var(--t-accent);font-weight:700}
.practice-stats .practice-stats-tests :is(th,td):nth-child(n+2){text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.practice-stats .practice-stats-tests td:first-child small{display:block;color:var(--t-muted);font-size:12px}
.practice-stats .practice-stats-tests td:first-child a{color:var(--t-text);font-weight:700;text-decoration:none}
.practice-stats .practice-stats-tests td:first-child a:hover{color:var(--t-accent);text-decoration:underline}
.practice-stats .practice-stats-tests tr.is-selected td{background:var(--t-accent-soft)}
.practice-stats .practice-stats-tests tr.is-selected td:first-child a{color:var(--t-accent-on-soft)}
.practice-stats-card h2 small{display:block;margin-top:3px;color:var(--t-muted);font-size:13px;font-weight:500}
.practice-stats-filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 14px;padding:10px 14px;border:1px solid var(--t-accent-border);border-radius:11px;background:var(--t-accent-soft);color:var(--t-accent-on-soft)}
.practice-stats-filter a{display:inline-flex;align-items:center;gap:6px;margin-left:auto;color:var(--t-accent-on-soft);font-weight:700;text-decoration:none}
.practice-stats-filter a:hover{text-decoration:underline}
.practice-stats-empty{margin:0;color:var(--t-muted)}
.practice-stats-side{display:grid;gap:20px;min-width:0}
.practice-stats-modes ul{display:grid;gap:9px;margin:0;padding:0;list-style:none}
.practice-stats-modes li{display:grid;grid-template-columns:150px minmax(0,1fr) 4ch 4ch;align-items:center;gap:12px;font-size:14px}
.practice-stats-modes li b{text-align:right;font-variant-numeric:tabular-nums}
.practice-stats-modes li small{color:var(--t-muted);font-size:12px;text-align:right;font-variant-numeric:tabular-nums}
.practice-stats-modes li.is-empty>span:first-child,.practice-stats-modes li.is-empty b{color:var(--t-muted)}
.practice-stats-duration{display:flex;align-items:baseline;gap:9px;margin:14px 0 0;padding-top:12px;border-top:1px solid var(--t-border);color:var(--t-text);font-size:14px;line-height:1.45}
.practice-stats-duration i{color:var(--t-accent)!important}
.practice-stats-duration.is-empty{color:var(--t-muted)}
.practice-stats-duration+.practice-stats-duration{margin-top:8px;padding-top:0;border-top:0}
.practice-stats-card-note{margin:12px 0 0;color:var(--t-muted);font-size:12px}
.practice-stats .practice-stats-tests td.practice-stats-reset-cell{width:36px;padding-left:4px;padding-right:0}
body:is([data-theme],:not([data-theme])) .practice-stats .practice-stats-tests button.practice-stats-reset.practice-stats-reset.practice-stats-reset{display:inline-grid;place-items:center;width:28px;height:28px;min-height:0;margin:0;padding:0!important;border:1px solid transparent!important;border-radius:999px!important;background:transparent!important;color:var(--t-muted)!important;font-size:12px!important;opacity:.6;box-shadow:none!important;transform:none!important;cursor:pointer;transition:opacity .15s ease,border-color .15s ease,color .15s ease}
body:is([data-theme],:not([data-theme])) .practice-stats .practice-stats-tests button.practice-stats-reset.practice-stats-reset.practice-stats-reset:is(:hover,:focus-visible){border-color:var(--t-accent-border)!important;color:var(--t-accent)!important;opacity:1}
body:is([data-theme],:not([data-theme])) .practice-stats .practice-stats-card button.practice-stats-others.practice-stats-others.practice-stats-others{display:inline-flex;align-items:center;gap:7px;min-height:0;margin:12px 0 0;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;color:var(--t-accent)!important;font:inherit!important;font-size:13px!important;font-weight:700!important;box-shadow:none!important;transform:none!important;cursor:pointer}
body:is([data-theme],:not([data-theme])) .practice-stats .practice-stats-card button.practice-stats-others.practice-stats-others.practice-stats-others:hover{text-decoration:underline}
body:is([data-theme],:not([data-theme])) .practice-stats .practice-stats-card button.practice-stats-others.practice-stats-others.practice-stats-others i{display:inline-block;font-size:11px;transition:transform .15s ease}
body:is([data-theme],:not([data-theme])) .practice-stats .practice-stats-card button.practice-stats-others.practice-stats-others.practice-stats-others[aria-expanded="true"] i{transform:rotate(180deg)}
.practice-stats-exam{display:inline-flex;align-items:center;gap:5px;margin-left:8px;padding:1px 8px;border:1px solid var(--t-accent-border);border-radius:999px;background:var(--t-accent-soft);color:var(--t-accent-on-soft);font-size:11px;font-weight:700;white-space:nowrap;vertical-align:middle;cursor:help}
.practice-stats-heatmap{width:100%;border-collapse:separate;border-spacing:3px;table-layout:fixed;font-size:12px}
.practice-stats .practice-stats-heatmap th{padding:2px;border:0!important;background:transparent!important;color:var(--t-muted)!important;font-size:12px;font-weight:600;letter-spacing:normal;text-align:center;text-transform:none;white-space:nowrap}
.practice-stats .practice-stats-heatmap tbody th{width:28px;text-align:left}
.practice-stats .practice-stats-heatmap tbody tr td{height:30px;padding:0;border-radius:6px;background:color-mix(in srgb,var(--t-accent) var(--heat),var(--t-soft));color:var(--t-text);font-weight:700;text-align:center;font-variant-numeric:tabular-nums}
.practice-stats .practice-stats-heatmap tbody tr td.is-empty{background:var(--t-soft)}
.practice-stats .practice-stats-heatmap tbody tr td.is-hot{color:var(--t-surface)}
body:is([data-theme],:not([data-theme])) .practice-stats .practice-stats-table button.practice-stats-day.practice-stats-day.practice-stats-day{display:inline-flex;align-items:center;gap:7px;min-height:0;margin:0;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;color:inherit!important;font:inherit!important;font-weight:inherit!important;box-shadow:none!important;transform:none!important;cursor:pointer}
body:is([data-theme],:not([data-theme])) .practice-stats .practice-stats-table button.practice-stats-day.practice-stats-day.practice-stats-day:hover{color:var(--t-accent);text-decoration:underline}
body:is([data-theme],:not([data-theme])) .practice-stats .practice-stats-table button.practice-stats-day.practice-stats-day.practice-stats-day i{display:inline-block;width:10px;text-align:center;color:var(--t-muted);font-size:10px;transition:transform .15s ease}
body:is([data-theme],:not([data-theme])) .practice-stats .practice-stats-table button.practice-stats-day.practice-stats-day.practice-stats-day[aria-expanded="true"] i{transform:rotate(90deg)}
.practice-stats-day-label{padding-left:17px}
.practice-stats .practice-stats-table tr.practice-stats-slots td{padding:4px 10px 12px 27px;background:var(--t-soft)}
.practice-stats-slots ul{display:grid;gap:5px;margin:0;padding:6px 0 0;list-style:none}
.practice-stats-slots li{display:grid;grid-template-columns:44px minmax(0,1fr) 2.5ch;align-items:center;gap:10px;font-size:13px}
.practice-stats-slots li span:first-child{color:var(--t-muted);font-variant-numeric:tabular-nums}
.practice-stats-slots li b{text-align:right;font-variant-numeric:tabular-nums}
.practice-stats-slots li.is-empty b{color:var(--t-muted);font-weight:500}
.practice-stats-slots p{margin:8px 0 0;color:var(--t-muted);font-size:12px}
.practice-stats-note{display:flex;gap:8px;align-items:baseline;margin:18px 0 0;color:var(--t-muted);font-size:13px}
@media(max-width:900px){
  .practice-stats-grid{grid-template-columns:minmax(0,1fr)}
  .stat-grid:has(>.practice-stats-tile:nth-child(5)):not(.teacher-workspace *){grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:600px){
  .practice-stats-modes li{grid-template-columns:118px minmax(0,1fr) 3.5ch 4ch;gap:8px;font-size:13px}
  .practice-stats-heatmap{border-spacing:2px;font-size:10px}
  .practice-stats .practice-stats-heatmap th{font-size:10px}
  .practice-stats .practice-stats-heatmap tbody tr td{height:26px;border-radius:4px}
  .practice-stats .stat-grid.practice-stats-summary{gap:8px}
  .practice-stats .stat-grid.practice-stats-summary:has(>.practice-stats-success){grid-template-columns:repeat(3,minmax(0,1fr))}
  .practice-stats .stat-grid.practice-stats-summary>.practice-stats-success{grid-column:1/-1}
  .practice-stats .stat-grid.practice-stats-summary>div{padding:12px}
  .practice-stats .stat-grid.practice-stats-summary b{font-size:23px}
  .practice-stats .practice-stats-visitors{font-size:12px}
  .stat-grid:has(>.practice-stats-tile:nth-child(5)):not(.teacher-workspace *){grid-template-columns:minmax(0,1fr)}
  .practice-stats-card{padding:14px}
  .practice-stats .practice-stats-table :is(th,td){padding:8px 6px}
  .practice-stats .practice-stats-days .practice-stats-exam{display:flex;width:fit-content;margin:4px 0 0 17px}
}

/* Trénink: šipky ‹ › ve spodní liště pro listování zpět mezi zodpovězenými otázkami (vpřed jen k rozpracované). Neutrální jako vedlejší tlačítka, sdílené barvy --t-*; opakovaná třída přebíjí obecný vzhled tlačítek .practice-next. */
.practice-nav-group{display:flex;flex-shrink:0;gap:6px;margin-right:4px}
body:is([data-theme],:not([data-theme])) .practice-session .practice-next button.practice-nav.practice-nav.practice-nav.practice-nav{min-width:46px;padding:0 14px!important;border:1px solid var(--t-border)!important;background:var(--t-surface)!important;color:var(--t-text)!important;box-shadow:none!important;filter:none!important}
body:is([data-theme],:not([data-theme])) .practice-session .practice-next button.practice-nav.practice-nav.practice-nav.practice-nav:hover:not(:disabled){border-color:var(--t-accent-border)!important;background:var(--t-hover)!important}

/* Editor: Povolit trénink a Povolit přehled otázek vedle sebe v rámečku „Procvičování pro žáky“ nad Štítky testu (rámeček jako Štítky, přepínače jako štítky; zapnutý v barvě motivu). Jen sdílené barvy --t-*. Vlastní třída, ne .editor-tags – ta se čte jako seznam štítků. */
.editor-practice-options{margin:0 0 16px;padding:13px 15px;border:1px solid var(--t-border);border-radius:10px}
form .editor-practice-options legend{padding:0 5px;color:var(--t-text);font-size:15px;font-weight:700}
.editor-practice-options>div{display:flex;flex-wrap:wrap;gap:8px 10px}
form .editor-practice-options label{display:inline-flex;align-items:center;gap:8px;width:auto;margin:0;padding:8px 13px;border:1px solid var(--t-field-border);border-radius:999px;background:var(--t-field-bg);color:var(--t-text);font-size:14px;font-weight:650;line-height:1.2;cursor:pointer}
form .editor-practice-options label:hover{border-color:var(--t-accent-border)}
form .editor-practice-options label:has(input:checked){border-color:var(--t-accent);background:var(--t-accent-soft);color:var(--t-accent-on-soft)}
form .editor-practice-options input[type="checkbox"]{width:15px;height:15px;margin:0;accent-color:var(--t-accent)}

/* Blokování tréninku během výuky (editor i dialog Upravit test): zaškrtávátko a dva výběry hodin od–do. Jen sdílené barvy --t-*; vypnuté výběry jsou ztlumené. */
.training-block-field{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.training-block-hours{display:inline-flex;align-items:center;gap:7px;color:var(--t-muted);font-size:14px;font-weight:650}
body .training-block-field .training-block-hours select{width:auto;min-width:0;height:auto;margin:0;padding:6px 10px;border:1px solid var(--t-field-border);border-radius:8px;background-color:var(--t-field-bg);color:var(--t-text);font-size:14px;line-height:1.2;cursor:pointer}
body .training-block-field .training-block-hours select:disabled{opacity:.5;cursor:not-allowed}
.training-block-field .training-block-dates{flex-basis:100%;flex-wrap:wrap}
.training-block-dates label{display:inline-flex;align-items:center;gap:6px;color:var(--t-text);white-space:nowrap}
body .training-block-field .training-block-hours input[type="date"]{width:auto;min-width:0;height:auto;margin:0;padding:5px 8px;border:1px solid var(--t-field-border);border-radius:8px;background-color:var(--t-field-bg);color:var(--t-text);font:inherit;font-size:14px;font-weight:400;line-height:1.2}
body .training-block-field .training-block-hours input[type="date"]:disabled{opacity:.5;cursor:not-allowed}
.editor-practice-options>small{display:block;margin-top:8px;color:var(--t-muted)}

/* Moje výuka: ikona hodin u tlačítka Trénink, dokud blokování platí nebo teprve začne (naplánované je ztlumené); u vypnutého tréninku se neukazuje. */
.teacher-training-block{display:inline-flex;align-items:center;color:var(--t-accent);font-size:13px;cursor:help}
.teacher-training-block.is-upcoming{color:var(--t-muted)}
.teacher-training-toggle:not(.is-on)~.teacher-training-block{display:none}

/* Katalog: tlačítko Trénink v době blokování během výuky – ztlumené a šedé ve všech motivech (bez vlastních barev), klik ukáže dialog s hodinami. */
body .card-training-actions a.practice-link-blocked,body .home-test-name-actions a.practice-link-blocked{opacity:.55;filter:grayscale(1)!important;cursor:help}
body .card-training-actions a.practice-link-blocked:hover,body .home-test-name-actions a.practice-link-blocked:hover{opacity:.75}

/* Sady pro trénink: blok nad testy v katalogu, přehled sad učitele a formulář sady. Jen sdílené barvy --t-*. */
.practice-set-catalog{margin:0 0 26px}
.practice-set-catalog h2{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 10px;margin:0 0 12px;color:var(--t-text);font-size:18px}
.practice-set-catalog h2 i{color:var(--t-accent);font-size:16px}
.practice-set-catalog h2 small{color:var(--t-muted);font-size:13px;font-weight:500}
.catalog-tests-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 10px;margin:0 0 12px;color:var(--t-text);font-size:18px}
.catalog-tests-heading i{color:var(--t-accent);font-size:16px}
.catalog-tests-heading small{color:var(--t-muted);font-size:13px;font-weight:500}
.practice-set-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.practice-set-card{display:flex;flex-direction:column;gap:6px;min-width:0;padding:16px 18px;border:1px solid var(--t-border);border-left:4px solid var(--t-accent);border-radius:14px;background:var(--t-surface);color:var(--t-text);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.practice-set-card b{font-size:17px;line-height:1.3}
.practice-set-card-top{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;margin-bottom:4px}
.practice-set-card .card-training-actions [data-practice-link]{display:inline-flex;align-items:center;font-weight:500;text-decoration:none}
.practice-set-card-text{color:var(--t-muted);font-size:14px;line-height:1.45}
.practice-set-card small{overflow:hidden;color:var(--t-muted);font-size:12px;white-space:nowrap;text-overflow:ellipsis}
.practice-set-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:12px;border-top:1px solid var(--t-border);color:var(--t-muted);font-size:13px}

/* The text above the divider keeps the same 15px gap as on the catalog test cards (flex gap + margin). */
.practice-set-card>:has(+ .practice-set-card-bottom){margin-bottom:9px}
.my-list-card>:has(+ .my-list-card-bottom){margin-bottom:10px}
.practice-set-card-bottom .card-author,.my-list-author{display:inline-flex;align-items:center;gap:9px;min-width:0}
.practice-set-card-bottom .card-author>span:last-child,.my-list-author>span:last-child{overflow:hidden;min-width:0;white-space:nowrap;text-overflow:ellipsis}
.practice-sets-page .dashboard-head{align-items:flex-start}
.practice-sets-lead{max-width:760px;color:var(--t-muted)}
.practice-sets-head-actions{display:flex;flex-wrap:wrap;gap:10px}
.practice-sets-empty{display:grid;justify-items:center;gap:8px;padding:36px 20px;border:1px dashed var(--t-border);border-radius:14px;background:var(--t-surface);color:var(--t-text);text-align:center}
.practice-sets-empty i{color:var(--t-accent);font-size:28px}
.practice-sets-empty h2{margin:0;font-size:20px}
.practice-sets-empty p{max-width:520px;margin:0 0 6px;color:var(--t-muted)}
.practice-sets-list{display:grid;gap:12px}
.practice-set-item{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border:1px solid var(--t-border);border-radius:14px;background:var(--t-surface);color:var(--t-text)}
.practice-set-item.is-published{border-left:4px solid var(--t-accent)}
.practice-set-item-main{min-width:0}
.practice-set-item-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}
.practice-set-item-title a{color:var(--t-text);font-size:18px;font-weight:700;text-decoration:none}
.practice-set-item-title a:hover{color:var(--t-accent);text-decoration:underline}
.practice-set-state{padding:2px 10px;border:1px solid var(--t-border);border-radius:999px;background:var(--t-soft);color:var(--t-muted);font-size:12px;font-weight:700}
.practice-set-item.is-published .practice-set-state{border-color:transparent;background:var(--t-accent-soft);color:var(--t-accent-on-soft)}
.practice-set-item-meta{margin:6px 0 8px;color:var(--t-muted);font-size:14px}
.practice-set-item-tests{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.practice-set-item-tests li{display:inline-flex;align-items:baseline;gap:6px;padding:3px 10px;border:1px solid var(--t-border);border-radius:999px;background:var(--t-soft);color:var(--t-text);font-size:13px}
.practice-set-item-tests li.is-unavailable{border-style:dashed;background:transparent;color:var(--t-muted)}
.practice-set-item-tests li small{font-size:11px}
.practice-set-warning{display:flex;align-items:baseline;gap:8px;margin:10px 0 0;color:var(--t-muted);font-size:13px}
.practice-set-warning i{color:var(--t-accent)}
.practice-set-item-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.practice-set-item-actions .inline-form{margin:0}
.practice-set-item-actions .button{min-height:0;padding:8px 12px;font-size:14px}
.practice-sets-note{display:flex;gap:8px;align-items:baseline;max-width:900px;margin:18px 0 0;color:var(--t-muted);font-size:13px}
.practice-set-form{max-width:none}
.practice-set-form-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.practice-set-form-row label{margin:0}
.practice-set-form-hint{display:block;margin:6px 0 16px;color:var(--t-muted)}
.practice-set-tests{min-width:0;margin:0 0 16px;padding:14px 16px;border:1px solid var(--t-border);border-radius:12px}
.practice-set-tests legend{padding:0 6px;color:var(--t-text);font-weight:700}
.practice-set-tests>p{margin:0 0 12px;color:var(--t-muted);font-size:14px}
.practice-set-test-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:10px}
.practice-set-form .practice-set-test{display:flex;align-items:flex-start;gap:12px;margin:0;padding:11px 14px;border:1.5px solid var(--t-border);border-radius:12px;background:var(--t-surface);color:var(--t-text);cursor:pointer}
.practice-set-form .practice-set-test:hover{border-color:var(--t-accent-border,var(--t-accent))}
.practice-set-form .practice-set-test:has(input:checked){border-color:var(--t-accent);background:var(--t-accent-soft)}
.practice-set-form .practice-set-test input{flex:none;width:17px;height:17px;margin:2px 0 0;accent-color:var(--t-accent)}
.practice-set-test span{display:grid;gap:2px;min-width:0}
.practice-set-test small{color:var(--t-muted);font-size:12px}
.practice-set-test em{color:var(--t-muted);font-size:12px;font-style:italic}
.practice-set-share{color:var(--t-accent-on-soft);font-size:12px;font-weight:700}
.practice-set-share[hidden]{display:none}
.practice-set-summary{margin:12px 0 0;color:var(--t-muted);font-size:13px}
.practice-set-test-note[hidden]{display:none}
.practice-set-form .practice-set-test[hidden]{display:none}
.practice-set-filter{margin:4px 0 14px}
.practice-set-filter input[type="search"]{flex-basis:200px}
.practice-set-options{display:grid;gap:8px;margin:0 0 14px}
.practice-set-form .practice-set-option{display:flex;align-items:flex-start;gap:10px;margin:0;color:var(--t-text);cursor:pointer}
.practice-set-form .practice-set-option input{flex:none;width:17px;height:17px;margin:2px 0 0;accent-color:var(--t-accent)}
.practice-set-option span{display:grid;gap:2px;min-width:0}
.practice-set-option b{font-size:14px;font-weight:600}
.practice-set-option small{color:var(--t-muted);font-size:12px;font-weight:400}
.practice-set-form .practice-set-publish{display:inline-flex;align-items:center;gap:10px;margin:0 0 4px;color:var(--t-text);font-weight:700;cursor:pointer}
.practice-set-form .practice-set-publish input{width:17px;height:17px;margin:0;accent-color:var(--t-accent)}
@media(max-width:760px){
  .practice-set-item{flex-direction:column}
  .practice-set-item-actions{justify-content:flex-start}
}
@media(max-width:600px){
  .practice-set-form-row{grid-template-columns:minmax(0,1fr)}
  .practice-set-cards{grid-template-columns:minmax(0,1fr)}
}
.practice-stats .practice-stats-tests td.practice-stats-set a i{margin-right:7px;color:var(--t-accent);font-size:13px}

/* Můj seznam: hvězdička na kartách katalogu, blok nad katalogem a přepínač Jen můj seznam (seznam je jen v prohlížeči). Tlačítko má opakované třídy kvůli světlým pravidlům tlačítek. */
body button.my-list-toggle.my-list-toggle.my-list-toggle.my-list-toggle.my-list-toggle.my-list-toggle{display:inline-grid;flex:none;place-items:center;width:34px;height:34px;padding:0;border:1px solid transparent!important;border-radius:50%;background:transparent!important;color:var(--t-muted)!important;font-size:16px;line-height:1;cursor:pointer;transition:color .15s ease,background .15s ease,border-color .15s ease}
body button.my-list-toggle.my-list-toggle.my-list-toggle.my-list-toggle.my-list-toggle.my-list-toggle:hover{border-color:var(--t-border)!important;background:var(--t-hover)!important;color:var(--t-accent)!important}
body button.my-list-toggle.my-list-toggle.my-list-toggle.my-list-toggle.my-list-toggle.my-list-toggle.is-on{color:var(--t-accent)!important}
body button.my-list-toggle.my-list-toggle.my-list-toggle.my-list-toggle.my-list-toggle.my-list-toggle:focus-visible{outline:2px solid var(--t-accent);outline-offset:2px}
.my-list-toggle.is-pulsing i{animation:my-list-pulse .35s ease}
@keyframes my-list-pulse{
  0%{transform:scale(1)}
  45%{transform:scale(1.35)}
  100%{transform:scale(1)}
}
.test-card>.my-list-toggle{position:absolute;top:10px;right:10px;z-index:2}
.card-grid .card-training-actions>.my-list-toggle,.practice-set-card .card-training-actions>.my-list-toggle{margin:0 -4px}
.card-grid .card-tag-row.is-tags-wrapped .card-tags{margin-left:0;justify-content:flex-start}
.card-grid .test-card .card-bottom:has(.my-list-toggle),.card-grid .test-card .card-bottom:has(.my-list-toggle) .card-training-actions{flex-wrap:nowrap}
.card-grid .test-card .card-bottom:has(.my-list-toggle) .card-author>span:last-child{overflow:hidden;min-width:0;white-space:nowrap;text-overflow:ellipsis}
.practice-set-card .card-training-actions{gap:8px;flex:none}

/* Set and Můj seznam cards lift on hover like the test cards. In these themes the test cards keep their border on hover (other rules win), so these do too. */
body:is([data-theme="dark"],[data-theme="aiflow"]) :is(.practice-set-card,.my-list-card):hover{border-color:var(--t-border)}
body[data-theme="colorful"] :is(.practice-set-card,.my-list-card):hover{border-color:var(--t-border);box-shadow:0 16px 40px rgba(177,57,164,.11)}

/* The hover border must keep the set's accent stripe on the left. */
body .practice-set-card.practice-set-card:hover{border-left-color:var(--t-accent)}
.practice-question-source{position:absolute;bottom:calc(100% + 10px);left:4px;right:4px;overflow:hidden;margin:0;color:var(--t-muted);font-size:14px;line-height:1.3;white-space:nowrap;text-overflow:ellipsis;opacity:.85}
.practice-set-card .card-training-actions [data-practice-link]{width:88px}
.my-list-card-actions>.my-list-toggle{margin:-2px -3px}
body .practice-mix-link.my-list-filter.is-active{border-color:var(--t-accent)}
.my-list-filter[hidden]{display:none}
.my-list-filter-count{min-width:20px;padding:1px 7px;border-radius:999px;background:var(--t-accent-soft);color:var(--t-accent-on-soft);font-size:12px;font-weight:700;text-align:center}
.my-list{margin:0 0 26px}
.my-list-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 16px;margin:0 0 12px}
.my-list-head h2{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 10px;margin:0;color:var(--t-text);font-size:18px}
.my-list-head h2 i{color:var(--t-accent);font-size:16px}
.my-list-head h2 small{color:var(--t-muted);font-size:13px;font-weight:500}
.my-list-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.my-list-card{position:relative;display:flex;flex-direction:column;gap:5px;min-width:0;padding:14px 16px;border:1px solid var(--t-border);border-radius:14px;background:var(--t-surface);color:var(--t-text);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.my-list-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-height:24px;color:var(--t-muted);font-size:12px}
.my-list-kind{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;background:var(--t-accent-soft);color:var(--t-accent-on-soft);font-weight:700}
.my-list-card h3{display:-webkit-box;overflow:hidden;margin:2px 0 0;color:var(--t-text);font-size:16px;line-height:1.3;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.my-list-card p{display:-webkit-box;overflow:hidden;margin:0;color:var(--t-muted);font-size:13px;line-height:1.4;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.my-list-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:12px;border-top:1px solid var(--t-border)}
.my-list-author{overflow:hidden;min-width:0;color:var(--t-muted);font-size:12px;white-space:nowrap;text-overflow:ellipsis}
.my-list-card-actions{display:flex;flex:none;align-items:center;gap:6px}
.my-list-card-actions :is(a,span){display:inline-flex;align-items:center;justify-content:center;gap:7px;box-sizing:border-box;height:38px;padding:0 12px;border:1px solid var(--t-border);border-radius:11px;background:transparent;color:var(--t-text);font-size:12px;font-weight:500;line-height:1;text-decoration:none;white-space:nowrap}
.my-list-card-actions a:hover{border-color:var(--t-accent-border,var(--t-accent));background:var(--t-hover);color:var(--t-text)}
.my-list-card-actions .my-list-test{border-color:transparent;background:var(--t-accent-soft);color:var(--t-accent-on-soft)}
.my-list-card-actions .my-list-test:hover{background:var(--t-accent-soft);color:var(--t-accent-on-soft)}
.my-list-card-actions .is-blocked{color:var(--t-muted);opacity:.7;cursor:help}
@media(max-width:600px){
  .my-list-cards{display:flex;overflow-x:auto;margin:-6px -16px 0;padding:6px 16px 6px;scroll-snap-type:x mandatory;scroll-padding:0 16px}
  .my-list-card{flex:0 0 88%;scroll-snap-align:start}
}

/* Narrow phones: the teacher's initials move to the card's top right corner (the name stays for screen readers), so the star, Trénink and Test fit the bottom row. */
@media(max-width:430px){
  .my-list-card-meta{padding-right:40px}
  .my-list-card .my-list-author{position:absolute;top:12px;right:14px}
  .my-list-card .my-list-author>span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .my-list-card-actions{margin-left:auto}
}

/* Průběh zkoušky (?r=live): závod třídy (medaile na stupních mají barvu s !important kvůli obecnému i.fa-solid{color:currentColor!important}) – každý žák má dráhu s raketou, která letí k cílové pásce podle zodpovězených otázek; kdo odevzdá, dostane konfety a odznak s procenty v barvě známky (.grade-N).
   Nahoře prstenec „v cíli“, počty a stupně vítězů (tři nejlepší), vpravo dole krátké zprávy. Jen sdílené barvy --t-*; konfety, jiskry, plamen a medaile mají pevné barvy čitelné ve všech motivech. Kdo odpoví na další otázku, tomu raketa přidá plyn a nechá za sebou jiskry (.is-boost, .live-spark), komu zbývá poslední pětina otázek, tomu pulzuje cílová páska (.is-near), přes stupně vítězů jednou za 9 s přejede lesk a odhalení výsledku občas letí jiný pilot než raketa (live.js nextPilot). Pozvánka na stránce výsledku je .live-invite. */
.live-board{position:relative;margin:28px 0 0;color:var(--t-text)}
.live-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:16px 24px;margin:0 0 20px}
.live-head h1{margin:0 0 8px;color:var(--t-text);font-size:clamp(26px,3.4vw,38px)}
.live-eyebrow{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.live-dot{position:relative;width:9px;height:9px;border-radius:50%;background:#ef4b5f}
.live-dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:#ef4b5f;animation:live-dot 1.8s ease-out infinite}
@keyframes live-dot{
  0%{transform:scale(1);opacity:.7}
  100%{transform:scale(3.2);opacity:0}
}
.live-meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;color:var(--t-muted);font-size:14px}
.live-meta span{display:inline-flex;align-items:center;gap:7px}
.live-meta i{color:var(--t-accent)}
.live-demo-note{display:flex;align-items:flex-start;gap:8px;max-width:720px;margin:12px 0 0;color:var(--t-muted);font-size:14px;line-height:1.45}
.live-demo-note i{margin-top:3px;color:var(--t-accent)}
.live-head-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.live-group-form{display:flex;align-items:center;gap:8px}
.live-group-form select{height:44px;padding:0 12px;border:1px solid var(--t-field-border);border-radius:10px;background:var(--t-field-bg);color:var(--t-text);font:inherit;font-size:14px}
.live-summary{display:grid;grid-template-columns:auto minmax(170px,.7fr) minmax(280px,1.3fr);gap:16px;margin:0 0 22px}
.live-ring,.live-podium{border:1px solid var(--t-border);border-radius:18px;background:var(--t-surface)}
.live-ring{position:relative;display:grid;place-items:center;width:178px;padding:14px}
.live-ring svg{display:block;width:150px;height:150px;transform:rotate(-90deg)}
.live-ring circle{fill:none;stroke-width:11}
.live-ring-track{stroke:var(--t-border);opacity:.6}
.live-ring-value{stroke:var(--t-accent);stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset 1.2s cubic-bezier(.2,.8,.2,1)}
.live-ring>span{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:1.1}
.live-ring b{color:var(--t-text);font-size:42px;font-variant-numeric:tabular-nums}
.live-ring small{color:var(--t-muted);font-size:13px}
.live-stats{display:grid;grid-template-rows:1fr 1fr;gap:16px}
.live-stat{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 12px;padding:14px 18px;border:1px solid var(--t-border);border-radius:18px;background:var(--t-surface)}
.live-stat i{grid-row:span 2;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--t-accent-soft);color:var(--t-accent-on-soft)}
.live-stat small{color:var(--t-muted);font-size:13px}
.live-stat b{color:var(--t-text);font-size:26px;line-height:1.1;font-variant-numeric:tabular-nums}
.live-podium{display:grid;grid-template-columns:repeat(3,1fr);align-items:end;gap:10px;padding:16px 18px 0;overflow:hidden}
.live-podium-place{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;text-align:center}
.live-podium-name{overflow:hidden;max-width:100%;color:var(--t-text);font-size:14px;font-weight:700;white-space:nowrap;text-overflow:ellipsis}
.live-podium-score{min-height:20px;color:var(--t-muted);font-size:13px;font-variant-numeric:tabular-nums}
.live-podium-step{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;margin-top:4px;padding-top:10px;border-radius:12px 12px 0 0;background:var(--t-accent-soft);color:var(--t-accent-on-soft);font-size:15px;font-weight:800}
.live-podium-step i{font-size:20px}
.is-place-1 .live-podium-step{height:96px}
.is-place-2 .live-podium-step{height:72px}
.is-place-3 .live-podium-step{height:54px}
.live-podium .is-place-1 .live-podium-step i.fa-solid{color:#f2b630!important}
.live-podium .is-place-2 .live-podium-step i.fa-solid{color:#a9b4c6!important}
.live-podium .is-place-3 .live-podium-step i.fa-solid{color:#cd8a52!important}
.live-podium-place.is-empty .live-podium-step{opacity:.55}
.live-podium-place.is-empty .live-podium-name{color:var(--t-muted);font-weight:500}
.live-podium-place.is-me .live-podium-name{color:var(--t-accent)}
.live-podium-place.is-changed :is(.live-podium-name,.live-podium-score){animation:live-pop .6s cubic-bezier(.3,1.6,.5,1)}
.live-board .live-podium-step{position:relative;overflow:hidden}
.live-board .live-podium-step::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%);transform:translateX(-130%);animation:live-shine 9s ease-in-out infinite;pointer-events:none}
.live-board .is-place-1 .live-podium-step::after{animation-delay:.25s}
.live-board .is-place-3 .live-podium-step::after{animation-delay:.5s}
.live-board .is-place-1 .live-podium-step i{animation:live-crown 9s ease-in-out .25s infinite}
.live-board .live-podium-place.is-empty .live-podium-step::after{opacity:0}
.live-board .live-podium-place.is-empty .live-podium-step i{transform:none!important;filter:none!important}
@keyframes live-shine{
  0%{transform:translateX(-130%)}
  14%,100%{transform:translateX(130%)}
}
@keyframes live-crown{
  0%,5%,16%,100%{transform:none;filter:none}
  10%{transform:scale(1.28) rotate(-8deg);filter:drop-shadow(0 0 7px #f2b630)}
}
.live-empty{padding:22px;border:1px dashed var(--t-border);border-radius:16px;color:var(--t-muted);text-align:center}
.live-lanes{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}
.live-lane{position:relative;display:grid;grid-template-columns:minmax(110px,190px) 1fr 84px;align-items:center;gap:14px;padding:8px 14px;border:1px solid var(--t-border);border-radius:14px;background:var(--t-surface)}
.live-lane.is-new{animation:live-lane-in .5s ease backwards}
@keyframes live-lane-in{
  from{transform:translateY(10px);opacity:0}
  to{transform:none;opacity:1}
}
.live-lane.is-me{border-color:var(--t-accent);background:var(--t-accent-soft)}
.live-lane.is-idle{opacity:.55;filter:grayscale(1)}
.live-lane.is-near{border-color:color-mix(in srgb,var(--t-accent) 55%,var(--t-border))}
.live-lane.is-near .live-finish{opacity:.85;animation:live-near 1.8s ease-in-out infinite}
@keyframes live-near{
  0%,100%{box-shadow:0 0 0 0 transparent}
  50%{box-shadow:0 0 14px 3px color-mix(in srgb,var(--t-accent) 60%,transparent)}
}
.live-lane.is-arriving{animation:live-arrive 1.1s ease}
@keyframes live-arrive{
  0%{box-shadow:0 0 0 0 var(--t-accent)}
  100%{box-shadow:0 0 0 14px transparent}
}
.live-lane-name{overflow:hidden;color:var(--t-text);font-size:14px;font-weight:700;white-space:nowrap;text-overflow:ellipsis}
.live-lane-name small{color:var(--t-accent);font-weight:600}
.live-track{--rocket-size:36px;position:relative;height:36px;border-radius:999px;background:var(--t-soft) repeating-linear-gradient(90deg,var(--t-border) 0 12px,transparent 12px 24px) center/100% 2px no-repeat}
.live-trail{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(90deg,transparent,var(--t-accent));opacity:.35;transform:scaleX(var(--progress));transform-origin:left;transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.live-finish{position:absolute;top:0;right:0;bottom:0;width:12px;border-radius:0 999px 999px 0;background:repeating-conic-gradient(var(--t-text) 0 25%,transparent 0 50%) 0 0/6px 6px;opacity:.4}
.live-rail{position:absolute;top:0;bottom:0;left:calc(var(--progress) * (100% - var(--rocket-size)));width:var(--rocket-size);transition:left 1.3s cubic-bezier(.34,1.45,.55,1);pointer-events:none}
.live-rocket{position:absolute;top:0;left:0;display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--t-border);border-radius:50%;background:var(--t-surface);color:var(--t-accent);font-size:15px;animation:live-bob 2.4s ease-in-out infinite}
.live-rocket i{transform:rotate(45deg)}
.live-rocket::before{content:"";position:absolute;top:50%;right:100%;width:16px;height:8px;margin-top:-4px;border-radius:999px;background:linear-gradient(90deg,transparent,#ffb347,#ff6a3d);animation:live-flame .24s steps(3) infinite alternate;transform-origin:right}
@keyframes live-bob{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-2px)}
}
@keyframes live-flame{
  0%{transform:scaleX(.6);background:linear-gradient(90deg,transparent,#ffd23f,#ff8a00)}
  50%{transform:scaleX(1.25);background:linear-gradient(90deg,transparent,#ff5a36,#ffd23f)}
  100%{transform:scaleX(.85);background:linear-gradient(90deg,transparent,#ffb347,#ff3b2f)}
}
.live-lane.is-me .live-rocket{border-color:var(--t-accent);background:var(--t-accent);color:var(--t-surface)}
.live-lane:is(.is-done,.is-idle) .live-rocket{animation:none}
.live-lane:is(.is-done,.is-idle) .live-rocket::before{display:none}
.live-lane.is-done .live-trail{opacity:.55}
.live-lane-result{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:6px;color:var(--t-muted);font-size:14px;font-variant-numeric:tabular-nums}
.live-count b{color:var(--t-text);font-size:17px}
.live-count b.is-up{display:inline-block;animation:live-pop .6s cubic-bezier(.3,1.6,.5,1)}
.live-rail .live-rocket{transition:box-shadow .3s}
.live-lane.is-boost .live-rail .live-rocket{box-shadow:0 0 0 3px color-mix(in srgb,var(--t-accent) 22%,transparent),0 0 18px color-mix(in srgb,#ffb020 55%,transparent)}
.live-lane.is-boost .live-rail .live-rocket::before{width:28px;height:10px;margin-top:-5px}
.live-spark{position:absolute;z-index:1;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:#ffb020;box-shadow:0 0 7px #ffb347;pointer-events:none;animation:live-spark .9s ease-out forwards}
@keyframes live-spark{
  0%{transform:translate(0,0) scale(1.1);opacity:1}
  100%{transform:translate(var(--x),var(--y)) scale(.2);opacity:0}
}
.live-score:not([class*="grade-"]){background:var(--t-accent-soft);color:var(--t-accent-on-soft)}
.live-score{padding:4px 11px;border-radius:999px;font-size:15px;font-weight:800;white-space:nowrap;animation:live-pop .7s cubic-bezier(.3,1.6,.5,1)}
@keyframes live-pop{
  0%{transform:scale(.3);opacity:0}
  70%{transform:scale(1.12);opacity:1}
  100%{transform:scale(1)}
}
.live-confetti{position:absolute;top:50%;right:30px;width:0;height:0;pointer-events:none}
.live-confetti span{position:absolute;width:7px;height:10px;border-radius:2px;background:var(--t-accent);animation:live-burst 1.3s cubic-bezier(.15,.7,.3,1) forwards}
.live-confetti span:nth-child(5n+1){background:#ffc94a}
.live-confetti span:nth-child(5n+2){background:#4cd6a0}
.live-confetti span:nth-child(5n+3){background:#ff7a90}
.live-confetti span:nth-child(5n+4){background:#6ea8ff}
@keyframes live-burst{
  0%{transform:translate(0,0) rotate(0) scale(.6);opacity:1}
  80%{opacity:1}
  100%{transform:translate(var(--x),calc(var(--y) + 26px)) rotate(var(--r)) scale(1);opacity:0}
}
.live-lane.has-map .live-track{background:var(--t-soft)}
.live-lane.has-map :is(.live-trail,.live-rail,.live-finish){opacity:0;transition:opacity .4s ease 1.1s,transform 1.3s cubic-bezier(.34,1.45,.55,1),left 1.3s cubic-bezier(.34,1.45,.55,1)}
.live-map{position:absolute;inset:4px 6px;display:flex;align-items:stretch;gap:3px}
.live-map.is-dense{inset:8px 6px;gap:2px}
.live-map.is-settled .live-tile,.live-score.is-settled{animation:none}
.live-score.is-pending{min-width:48px;background:var(--t-soft);color:var(--t-muted);text-align:center;animation:live-pending 1s ease-in-out infinite}
@keyframes live-pending{
  0%,100%{opacity:.55;transform:scale(.94)}
  50%{opacity:1;transform:scale(1.04)}
}
.live-flyer{position:absolute;top:0;bottom:0;left:0;width:var(--rocket-size);z-index:2;pointer-events:none}
.live-lane.is-done .live-flyer .live-rocket{animation:live-bob .8s ease-in-out infinite}
.live-lane.is-done .live-flyer .live-rocket::before{display:block;width:24px}
.live-lane.is-done .live-flyer .live-rocket.is-flameless::before{display:none}
.live-rocket i:is(.fa-shuttle-space,.fa-jet-fighter,.fa-dragon){transform:none}
.live-rocket i.fa-user-astronaut{transform:rotate(8deg)}
.live-rocket i.fa-helicopter{transform:scaleX(-1)}
.live-tile{display:grid;flex:1 1 0;place-items:center;min-width:0;border:1px solid;border-radius:6px;overflow:hidden;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;animation:live-tile-in .45s cubic-bezier(.3,1.5,.5,1) var(--delay,0s) backwards}
.live-tile.is-correct{border-color:#21a67a;background:color-mix(in srgb,#21a67a 20%,var(--t-surface));color:color-mix(in srgb,#21a67a 70%,var(--t-text))}
.live-tile.is-wrong{border-color:#de5a69;background:color-mix(in srgb,#de5a69 18%,var(--t-surface));color:color-mix(in srgb,#de5a69 70%,var(--t-text))}
.live-map.is-dense .live-tile{border:0;border-radius:3px;font-size:0}
.live-map.is-dense .live-tile.is-correct{background:color-mix(in srgb,#21a67a 85%,var(--t-surface))}
.live-map.is-dense .live-tile.is-wrong{background:color-mix(in srgb,#de5a69 85%,var(--t-surface))}
@keyframes live-tile-in{
  from{transform:rotateY(90deg) scale(.6);opacity:0}
  60%{transform:scale(1.18);opacity:1}
  to{transform:none;opacity:1}
}
.live-burst{position:absolute;top:50%;z-index:3;width:0;height:0;pointer-events:none}
.live-burst i{position:absolute;top:-3.5px;left:-3.5px;width:7px;height:7px;border-radius:50%;background:currentColor;opacity:0;animation:live-burst-fly .75s cubic-bezier(.15,.7,.3,1) var(--delay,0s) forwards}
.live-burst.is-correct{color:#2bd18f}
.live-burst.is-correct i{box-shadow:0 0 8px currentColor}
.live-burst.is-wrong{color:#e0606f}
.live-burst.is-wrong i{top:-3px;left:-3px;width:6px;height:6px;animation-name:live-burst-drop;animation-duration:.6s}
.live-burst.is-correct i:nth-child(1){--x:-24px;--y:-26px}
.live-burst.is-correct i:nth-child(2){--x:-12px;--y:-37px}
.live-burst.is-correct i:nth-child(3){--x:0px;--y:-42px}
.live-burst.is-correct i:nth-child(4){--x:12px;--y:-37px}
.live-burst.is-correct i:nth-child(5){--x:24px;--y:-26px}
.live-burst.is-correct i:nth-child(6){--x:-30px;--y:-8px}
.live-burst.is-correct i:nth-child(7){--x:30px;--y:-8px}
.live-burst.is-wrong i:nth-child(1){--x:-18px;--y:-8px}
.live-burst.is-wrong i:nth-child(2){--x:-9px;--y:-15px}
.live-burst.is-wrong i:nth-child(3){--x:0px;--y:-12px}
.live-burst.is-wrong i:nth-child(4){--x:9px;--y:-15px}
.live-burst.is-wrong i:nth-child(5){--x:18px;--y:-8px}
.live-burst.is-wrong i:nth-child(6){--x:-12px;--y:4px}
.live-burst.is-wrong i:nth-child(7){--x:12px;--y:4px}
.live-map.is-dense .live-burst{--spread:.6}
.live-map.is-dense .live-burst i{top:-2px;left:-2px;width:4px;height:4px}
.live-map.is-settled .live-burst{display:none}
.answer-map-cell>.live-burst{left:50%}
@keyframes live-burst-fly{
  0%{transform:translate(0,0) scale(1.3);opacity:1}
  70%{opacity:1}
  100%{transform:translate(calc(var(--x) * var(--spread,1)),calc((var(--y) + 8px) * var(--spread,1))) scale(.3);opacity:0}
}
@keyframes live-burst-drop{
  0%{transform:translate(0,0) scale(1.2);opacity:1}
  60%{opacity:.9}
  100%{transform:translate(calc(var(--x) * var(--spread,1)),calc((var(--y) + 16px) * var(--spread,1))) scale(.4);opacity:0}
}
.live-toasts{position:fixed;right:20px;bottom:20px;z-index:40;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none}
.live-toast{display:flex;align-items:center;gap:10px;max-width:min(360px,calc(100vw - 40px));padding:12px 16px;border:1px solid var(--t-border);border-radius:14px;background:var(--t-surface);color:var(--t-text);font-size:14px;font-weight:600;box-shadow:0 14px 34px rgba(0,0,0,.18);animation:live-toast-in .45s cubic-bezier(.3,1.4,.5,1)}
.live-toast i{color:var(--t-accent)}
.live-toast.is-leaving{opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s}
@keyframes live-toast-in{
  from{transform:translateY(18px);opacity:0}
  to{transform:none;opacity:1}
}
.editor-live-options input[type="radio"]{width:15px;height:15px;margin:0;accent-color:var(--t-accent)}
.editor-live-options small a{color:var(--t-accent);font-weight:700;text-decoration:none;white-space:nowrap}
.editor-live-options small a:hover{text-decoration:underline}
.live-invite{display:flex;align-items:center;gap:16px;margin:0 0 22px;padding:16px 20px;border:1px solid var(--t-border);border-radius:18px;background:var(--t-surface);color:var(--t-text);text-decoration:none;transition:border-color .2s,transform .2s}
.live-invite:hover{border-color:var(--t-accent);transform:translateY(-1px)}
.live-invite-icon{display:grid;flex:none;place-items:center;width:50px;height:50px;border-radius:14px;background:var(--t-accent-soft);color:var(--t-accent-on-soft);font-size:21px}
.live-invite-icon i{animation:live-bob 2.4s ease-in-out infinite}
.live-invite-text{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}
.live-invite-text b{color:var(--t-text);font-size:17px}
.live-invite-text small{color:var(--t-muted);font-size:14px}
.live-invite-go{color:var(--t-accent);font-size:18px;transition:transform .2s}
.live-invite:hover .live-invite-go{transform:translateX(4px)}
@media(max-width:760px){
  .live-summary{grid-template-columns:auto 1fr}
  .live-podium{grid-column:1/-1}
}
@media(max-width:600px){
  .live-board{margin-top:18px}
  .live-summary{grid-template-columns:1fr;gap:10px}
  .live-ring{width:auto;grid-template-columns:auto 1fr;justify-items:start;gap:16px;padding:12px 16px}
  .live-ring svg{grid-area:1/1;width:84px;height:84px}
  .live-ring>span{display:contents}
  .live-ring b{grid-area:1/1;justify-self:center;font-size:28px}
  .live-ring small{grid-area:1/2;font-size:15px}
  .live-stats{grid-template-columns:1fr 1fr;grid-template-rows:auto;gap:10px}
  .live-stat{grid-template-columns:1fr;padding:12px 14px}
  .live-stat i{display:none}
  .live-lane{grid-template-columns:1fr auto;gap:6px 10px;padding:8px 12px}
  .live-lane-name{grid-row:1}
  .live-lane-result{grid-row:1;grid-column:2}
  .live-track{--rocket-size:30px;grid-row:2;grid-column:1/-1;height:30px}
  .live-rocket{width:30px;height:30px;font-size:13px}
  .live-toasts{right:12px;bottom:12px;left:12px;align-items:stretch}
  .live-toast{max-width:none}
  .live-invite{padding:14px 16px}
}

/* Stopky tréninku a zkoušky nanečisto bez limitu: na počítači .practice-run-timer v liště (vzhled .test-elapsed jako u ostrého testu), na mobilu, kde lišta stopky skrývá, .practice-run-timer-head vpravo nahoře v hlavičce karty (ve zkoušce vedle Odevzdat). Jen sdílené barvy --t-*. */
.practice-run-timer-head{display:none}
@media(max-width:760px){
  .practice-session .practice-session-head:has(.practice-run-timer-head){position:relative}
  .practice-session .practice-session-head:has(.practice-run-timer-head)>div:first-child{padding-right:84px}
  body .practice-session .practice-session-head .practice-run-timer-head{position:absolute;top:0;right:0;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--t-border);border-radius:9px;background:var(--t-soft);color:var(--t-text);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
  body .practice-session .practice-session-head .practice-run-timer-head span{color:inherit;font-size:13px}
  body .practice-session .practice-session-head:has(.practice-exam-submit-head) .practice-run-timer-head{position:static;margin-left:auto}
  body .practice-session .practice-session-head:has(.practice-run-timer-head):has(.practice-exam-submit-head){flex-wrap:nowrap;column-gap:8px}
  body .practice-session .practice-session-head:has(.practice-exam-submit-head)>div:first-child{flex:1 1 auto;min-width:0;padding-right:0}
  body .practice-session .practice-session-head .practice-run-timer-head+.practice-exam-submit-head{margin-left:8px}
  body .practice-session .practice-session-head:has(.practice-exam-submit-head) .practice-run-timer-head{padding:5px 8px}
  body .practice-session .practice-session-head:has(.practice-exam-submit-head) .practice-run-timer-head i{display:none}
  body .practice-session .practice-session-head:has(.practice-exam-submit-head)>div:first-child>*{white-space:nowrap}
}

/* Phones: the card head of practice, mock exam and flashcards is a grid – the count and A− / A+ (the only reading controls shown here) on the first row,
   Automaticky dál and the stopwatch on the second. In the mock exam the stopwatch (left) and Odevzdat (right) sit in the gap above the card. */
.practice-auto-next-short{display:none}
@media(max-width:600px){
  body .practice-session .practice-session-head,body .practice-session .practice-session-head:has(.practice-run-timer-head){position:static;display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 8px}
  body .practice-session .practice-session-head>div:first-child{grid-area:1/1;min-width:0;padding-right:0!important}
  body .practice-session .practice-session-head .test-reading-controls{display:flex!important;grid-area:1/2;width:auto!important;margin:0!important;gap:6px}
  body .practice-session .practice-session-head .test-reading-controls>:not([data-answer-font-decrease],[data-answer-font-increase]){display:none!important}
  body .practice-session .practice-session-head .practice-mode-label{grid-area:2/1;justify-self:start}
  body .practice-session .practice-session-head .practice-run-timer-head{position:static;grid-area:2/2;justify-self:end;margin:0}
  .practice-auto-next-long{display:none}
  .practice-auto-next-short{display:inline}
  body .practice-session:has(.practice-exam-submit-head){position:relative;margin-top:62px}
  body .practice-session .practice-session-head:has(.practice-exam-submit-head) .practice-run-timer-head{position:absolute;top:-52px;right:auto;left:0;padding:7px 12px}
  body .practice-session .practice-session-head:has(.practice-exam-submit-head) .practice-run-timer-head i{display:inline}
  body .practice-session .practice-session-head .practice-exam-submit-head{position:absolute;top:-52px;right:0;margin:0}
}

/* Zkouška nanečisto s limitem na telefonu (do 600 px): odpočet není v horní liště (ta zůstává jako na úvodní stránce), ale jako stopky vlevo nad kartou naproti Odevzdat (.practice-exam-timer-head z practice.js);
   5 minut před koncem oranžový, v poslední minutě červený. Na širších obrazovkách zůstává v liště. Pravidla lišty pro odpočet (připnutí, skrytí odkazů) platí jen v ostrém testu. */
@media(max-width:600px){
  body .topbar .test-elapsed.has-limit.practice-exam-timer{display:none!important}
  body .practice-session .practice-session-head .practice-run-timer-head.practice-exam-timer-head.is-warning{border-color:var(--t-warn-border);background:var(--t-warn-bg);color:var(--t-warn-text)}
  body .practice-session .practice-session-head .practice-run-timer-head.practice-exam-timer-head.is-critical{border-color:#ef5a6f;background:rgba(239,68,68,.13);color:color-mix(in srgb,#ef5a6f 70%,var(--t-text))}
}
@media(min-width:601px){
  body .practice-session .practice-session-head .practice-run-timer-head.practice-exam-timer-head{display:none}
}

/* Porovnat s ostatními (konec tréninku a zkoušky nanečisto): tlačítko u akcí a v dialogu graf výsledků po deseti procentech, vlastní sloupec v akcentu motivu. Jen sdílené barvy --t-*. */
.practice-end-actions .practice-compare-button,.exam-result-actions .practice-compare-button{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.practice-end .practice-end-actions .practice-compare-button i{font-size:15px}
.practice-compare{margin:16px 0 0}
.practice-compare-bars{display:flex;align-items:flex-end;gap:5px;height:120px;padding:0 2px;border-bottom:1px solid var(--t-border)}
.practice-compare-bar{flex:1;min-height:3px;height:calc(var(--size) * 100%);border-radius:5px 5px 0 0;background:var(--t-accent-soft);transform-origin:bottom;animation:practice-compare-grow .6s cubic-bezier(.2,.8,.2,1) backwards}
.practice-compare-bar:nth-child(2n){animation-delay:.04s}
.practice-compare-bar:nth-child(3n){animation-delay:.08s}
.practice-compare-bar.is-own{background:var(--t-accent)}
@keyframes practice-compare-grow{
  from{transform:scaleY(0)}
  to{transform:scaleY(1)}
}
.practice-compare-axis{display:flex;justify-content:space-between;margin-top:5px;color:var(--t-muted);font-size:12px}
.app-confirm-dialog .practice-compare-record{display:flex;align-items:center;justify-content:center;gap:8px;margin:14px 0 0;padding:9px 12px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-soft);color:var(--t-text);font-size:14px;font-weight:700;text-align:center}
.app-confirm-dialog .practice-compare-record i.fa-solid{color:#f2b630!important}
.app-confirm-dialog .practice-compare-record.is-yours{border-color:var(--t-accent);background:var(--t-accent-soft);color:var(--t-accent-on-soft)}
.app-confirm-dialog .practice-compare-record-note{margin:6px 0 0;color:var(--t-muted);font-size:12px;text-align:center}
.app-confirm-dialog .practice-compare-own{margin:10px 0 0;color:var(--t-muted);font-size:13px;text-align:center}

/* Practice times and launches under the chart (practice only), in the same box as the record of a mock exam. */
.app-confirm-dialog .practice-compare-training{display:grid;gap:6px;margin:14px 0 0;padding:10px 14px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-soft)}
.app-confirm-dialog .practice-compare-training>p:not(.practice-compare-record-note){display:flex;align-items:baseline;gap:9px;margin:0;color:var(--t-text);font-size:14px;line-height:1.4}
.app-confirm-dialog .practice-compare-training>p i{flex:0 0 16px;color:var(--t-accent)!important;text-align:center}
.app-confirm-dialog .practice-compare-training .practice-compare-record-note{margin:0;text-align:left}

/* Podrobné vysvětlení (showQuestionDetailDialog v app.js): okno z dialogu vysvětlení, obsah se posouvá uvnitř. Výklad, Rozbor odpovědí (zelená správná, cihlová vlastní chybná volba) a Co si zapamatovat. Jen sdílené barvy --t-*. */
.test-info-dialog.question-detail-dialog{--qd-ok:#1f9d6b;--qd-bad:#c4553b;display:flex;flex-direction:column;width:min(calc(100vw - 40px),900px);max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);padding:32px 40px}
.question-detail-dialog .question-explanation-toolbar{margin-bottom:12px}
.question-detail-dialog .question-explanation-kicker{flex-shrink:0}
.question-detail-dialog h2.question-detail-question{flex-shrink:0;margin:0 0 22px;text-align:left;font-size:22px;line-height:1.35;letter-spacing:-.2px;overflow-wrap:anywhere}
.question-detail-scroll{flex:1 1 auto;min-height:0;margin:0 -12px 20px 0;padding:2px 12px 2px 0;overflow:auto;overscroll-behavior:contain}
.question-detail-body{color:var(--qd-body);font-size:17px;line-height:1.65;text-align:left}
.question-detail-scroll:focus{outline:none}
.question-detail-scroll,.question-explanation-dialog .question-explanation-text{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--t-muted) 65%,transparent) transparent}
.question-detail-scroll:focus-visible{outline:2px solid var(--t-accent);outline-offset:2px;border-radius:8px}
.question-detail-dialog .test-info-confirm{flex-shrink:0;align-self:center}
@media (min-width:601px){
  .test-info-dialog.question-detail-dialog .test-info-confirm{display:none}
  .question-detail-scroll{margin-bottom:0}
}
.question-detail-status{margin:12px 0}
.question-detail-section+.question-detail-section{margin-top:26px}
.question-detail-section-title{display:flex;align-items:center;gap:10px;margin:0 0 12px;color:var(--t-text);font-size:18px;font-weight:800}
.question-detail-section-title i{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--t-accent-soft);color:var(--t-accent)!important;font-size:16px}
.question-detail-body p{margin:0 0 .75em;white-space:pre-line;overflow-wrap:anywhere}

/* Running text of the detailed explanation in the softer colour of the short explanation's text (per theme, like .question-explanation-text); headings, terms, answers, tips and Co si zapamatovat stay in --t-text. */
.question-detail-dialog{--qd-body:#3f4d6b}
body:is([data-theme="dark"],[data-theme="aiflow"]) .question-detail-dialog{--qd-body:#d5dff7}
body[data-theme="ember"] .question-detail-dialog{--qd-body:#c6b5b0}
body[data-theme="navy"] .question-detail-dialog{--qd-body:#acb3ca}
.test-info-dialog.question-detail-dialog .question-detail-body p{color:var(--qd-body)!important}
.test-info-dialog.question-detail-dialog .question-detail-body :is(.detail-tip,.question-detail-remember) p{color:var(--t-text)}
.test-info-dialog.question-detail-dialog .question-detail-body p.question-detail-status{color:var(--t-muted)}
.test-info-dialog.question-detail-dialog .question-detail-body p.question-detail-status.is-error{color:var(--qd-bad)!important}
.question-detail-body :is(p,ul,ol,li,.detail-tip):last-child{margin-bottom:0}
.question-detail-body :is(ul,ol):not(.question-detail-options){margin:0 0 .75em;padding-left:1.4em}
.question-detail-body ol:not(.question-detail-options){padding-left:0;list-style:none;counter-reset:detail-step}
.question-detail-body ol:not(.question-detail-options)>li{position:relative;padding-left:2.1em;counter-increment:detail-step}
.question-detail-body ol:not(.question-detail-options)>li::before{content:counter(detail-step);position:absolute;top:.12em;left:0;display:grid;place-items:center;width:1.55em;height:1.55em;border:1px solid var(--t-border);border-radius:50%;background:var(--t-soft);color:var(--t-muted);font-size:.85em;font-weight:800;line-height:1}
.question-detail-body .detail-heading{display:flex;align-items:center;gap:10px;margin:1.2em 0 .6em;color:var(--t-text);font-size:1.05em;font-weight:800;line-height:1.35}
.question-detail-body .detail-heading>i{display:inline-grid;flex:0 0 auto;place-items:center;width:1.75em;height:1.75em;border-radius:8px;background:var(--t-accent-soft);color:var(--t-accent)!important;font-size:.78em}
.question-detail-text:has(>.detail-block){display:grid;gap:12px}
.question-detail-body .detail-block{min-width:0;padding:16px 20px;border:1px solid var(--t-border);border-radius:14px;background:color-mix(in srgb,var(--t-soft) 60%,var(--t-surface))}
.question-detail-body .detail-block>:last-child{margin-bottom:0}
.question-detail-body .text-code{border-color:var(--t-field-border);background:var(--t-field-bg)}
.question-detail-body .detail-tip{display:flex;gap:12px;margin:0 0 .85em;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,#f1bd45 14%,var(--t-surface));border:1px solid color-mix(in srgb,#f1bd45 45%,var(--t-border))}
.question-detail-body .detail-tip>i{margin-top:.25em;color:#e0a527!important}
.question-detail-body .detail-tip>p{margin:0}
.question-detail-options{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.question-detail-option{padding:12px 14px;border:1px solid var(--t-border);border-left-width:4px;border-radius:12px;background:var(--t-soft)}
.question-detail-option.is-correct{border-color:color-mix(in srgb,var(--qd-ok) 55%,var(--t-border));border-left-color:var(--qd-ok);background:color-mix(in srgb,var(--qd-ok) 9%,var(--t-surface))}
.question-detail-option.is-wrong.is-selected{border-color:color-mix(in srgb,var(--qd-bad) 50%,var(--t-border));border-left-color:var(--qd-bad);background:color-mix(in srgb,var(--qd-bad) 8%,var(--t-surface))}
.question-detail-option-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px}
.question-detail-letter{display:inline-grid;flex:0 0 28px;place-items:center;width:28px;height:28px;border:1px solid var(--t-border);border-radius:8px;background:var(--t-surface);color:var(--t-muted);font-size:13px;font-weight:800}
.question-detail-option.is-correct .question-detail-letter{border-color:var(--qd-ok);background:var(--qd-ok);color:#fff}
.question-detail-option-text{flex:1 1 220px;min-width:0;color:var(--t-text);font-weight:700;overflow-wrap:anywhere}
.question-detail-verdict{display:inline-flex;align-items:center;gap:6px;color:var(--t-muted);font-size:13px;font-weight:700;white-space:nowrap}
.question-detail-option.is-correct .question-detail-verdict{color:color-mix(in srgb,var(--qd-ok) 75%,var(--t-text))}
.question-detail-option.is-correct .question-detail-verdict i{color:var(--qd-ok)!important}
.question-detail-option.is-wrong .question-detail-verdict i{color:color-mix(in srgb,var(--qd-bad) 75%,var(--t-muted))!important}
.question-detail-yours{padding:2px 9px;border:1px solid var(--t-border);border-radius:999px;background:var(--t-surface);color:var(--t-text);font-size:12px;font-weight:700;white-space:nowrap}
.question-detail-option.is-wrong.is-selected .question-detail-yours{border-color:color-mix(in srgb,var(--qd-bad) 55%,transparent);color:color-mix(in srgb,var(--qd-bad) 70%,var(--t-text))}
.question-detail-option-note{margin:8px 0 0 38px;color:var(--qd-body);font-size:.94em}
.question-detail-option.is-unlettered .question-detail-option-note{margin-left:0}
.question-detail-body li{margin:0 0 .35em;overflow-wrap:anywhere}
.question-detail-body li::marker{color:var(--t-muted)}
.question-detail-body .detail-heading:first-child{margin-top:0}
.question-detail-body .detail-term{color:color-mix(in srgb,var(--t-accent) 70%,var(--t-text));font-weight:800}
.question-detail-remember{display:flex;gap:12px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--t-accent) 35%,var(--t-border));border-left:4px solid var(--t-accent);border-radius:12px;background:var(--t-accent-soft);color:var(--t-text)}
.question-detail-body .question-detail-remember>i{margin-top:.25em;color:#e0a527!important}
.question-detail-remember>div{min-width:0;color:var(--t-text)}
.question-detail-dialog .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.question-explanation-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.question-detail-more{display:inline-flex;align-items:center;gap:8px}
.question-detail-open{display:inline-flex;align-items:center;gap:8px;margin-top:10px;padding:7px 14px;border:1px solid color-mix(in srgb,var(--t-accent) 45%,var(--t-border));border-radius:999px;background:var(--t-surface);color:var(--t-accent-on-soft);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.question-detail-open:hover{border-color:var(--t-accent);background:var(--t-accent-soft)}
.question-detail-open i,.flashcard-detail i{color:var(--t-accent)!important}

/* Podrobné vysvětlení na rubu kartičky: kartička je flexový sloupec a světlý motiv má obecná pravidla tlačítek s !important, proto opakovaná třída jako u „Zobrazit možnosti“. */
body:is([data-theme],:not([data-theme])) .flashcard .flashcard-detail.flashcard-detail{display:inline-flex;align-items:center;align-self:center;gap:8px;width:auto;min-height:0;margin:6px 0 0;padding:7px 14px!important;border:1px solid color-mix(in srgb,var(--t-accent) 45%,var(--t-border))!important;border-radius:999px;background:var(--t-surface)!important;box-shadow:none!important;color:var(--t-accent-on-soft)!important;font-family:inherit;font-size:14px;font-weight:700;cursor:pointer}
body:is([data-theme],:not([data-theme])) .flashcard .flashcard-detail.flashcard-detail:hover{border-color:var(--t-accent)!important;background:var(--t-accent-soft)!important;transform:none}
body:is([data-theme],:not([data-theme])) .review .review-detail-open.review-detail-open{display:inline-flex;align-items:center;gap:8px;width:auto;min-height:0;margin:10px 0 0;padding:7px 14px!important;border:1px solid color-mix(in srgb,var(--t-accent) 45%,var(--t-border))!important;border-radius:999px;background:var(--t-surface)!important;box-shadow:none!important;color:var(--t-accent-on-soft)!important;font-family:inherit;font-size:14px;font-weight:700;cursor:pointer}
body:is([data-theme],:not([data-theme])) .review .review-detail-open.review-detail-open:hover{border-color:var(--t-accent)!important;background:var(--t-accent-soft)!important;transform:none}
.review-detail-open i{color:var(--t-accent)!important}
@media (max-width:600px){
  .test-info-dialog.question-detail-dialog{padding:18px 16px}
  .question-detail-dialog h2.question-detail-question{margin-bottom:12px;font-size:18px}
  .question-detail-section-title{font-size:18px}
  .question-detail-scroll{margin:0 -8px 14px 0;padding-right:8px}
  .question-detail-body{font-size:16px;line-height:1.55}
  .question-detail-option-note{margin-left:0}
  .question-detail-text:has(>.detail-block){gap:18px}
  .question-detail-body .detail-block{padding:0;border:0;background:none}
  .question-detail-dialog .test-info-confirm{align-self:stretch}
  .question-explanation-actions{flex-direction:column;flex-shrink:0}
  .question-explanation-actions .button{width:100%;min-height:44px}
  /* Phones: the detailed explanation fills the screen and scrolls as a whole (the question too); only the top row with A− / A+ and the close button stays, Rozumím ends the text. */
  .test-info-modal.question-detail-modal{padding:0;place-items:stretch}
  .test-info-dialog.question-explanation-dialog.question-detail-dialog{display:block;width:100%;height:100vh;height:100dvh;max-height:none;padding:0 16px 20px;border:0;border-radius:16px 16px 0 0;overflow-y:auto;overscroll-behavior:contain}
  .test-info-dialog.question-explanation-dialog.question-detail-dialog::before{position:sticky;top:0;z-index:3;display:block;margin:0 -16px}
  .question-detail-dialog .question-explanation-toolbar{position:sticky;top:5px;z-index:2;margin:0 -16px 12px;padding:12px 16px 10px;background:inherit;transition:box-shadow .15s ease}
  .question-detail-dialog.is-scrolled .question-explanation-toolbar{box-shadow:0 1px 0 var(--t-border),0 8px 14px -10px rgba(0,0,0,.45)}
  .question-detail-dialog .question-detail-scroll{margin:0 0 18px;padding:0;overflow:visible}
  .question-detail-dialog .test-info-confirm{display:flex;width:100%}
}

/* Editor a Opravit text: podrobné vysvětlení otázky (rozbalovací rámeček pod krátkým vysvětlením, rozbor pod každou odpovědí). Jen sdílené barvy --t-*. */
.editor-detail{margin:0 0 14px}
.editor-detail-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.editor-question .editor-detail-hidden{display:inline-flex;align-items:center;gap:8px;margin:0;color:var(--t-muted);font-size:14px;font-weight:600;cursor:pointer}
.editor-question .editor-detail-hidden[hidden]{display:none}
.editor-detail-hidden input,.text-repair-detail-hidden input{width:auto;margin:0;accent-color:var(--t-accent)}
.text-repair-detail .text-repair-detail-hidden{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;margin:0 0 12px;color:var(--t-text);font-weight:600;cursor:pointer}
.text-repair-detail-bar{display:flex;justify-content:flex-end;margin:0 0 8px}
.editor-question .editor-detail-toggle.editor-detail-toggle{display:inline-flex;align-items:center;gap:8px;width:auto;padding:6px 14px;border:1px dashed color-mix(in srgb,var(--t-accent) 55%,var(--t-border))!important;border-radius:999px;background:transparent!important;box-shadow:none!important;color:var(--t-accent-on-soft)!important;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.editor-question .editor-detail-toggle.editor-detail-toggle:hover,.editor-question .editor-detail-toggle.editor-detail-toggle.is-filled{border-style:solid!important;background:var(--t-accent-soft)!important}
.editor-detail-toggle i,.text-repair-detail summary i{color:var(--t-accent)!important}
.editor-detail-panel{margin-top:10px;padding:16px 16px 4px;border:1px solid color-mix(in srgb,var(--t-accent) 40%,var(--t-border));border-radius:12px;background:var(--t-accent-soft)}
.editor-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.editor-detail-head p{margin:0;color:var(--t-text)}
.editor-detail-head small,.text-repair-detail summary small{color:var(--t-muted);font-weight:400}
.editor-detail-preview{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}
.editor-detail-hint{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin:-6px 0 14px;color:var(--t-muted);font-size:12px;line-height:1.5}
.editor-detail-hint code{padding:1px 6px;border:1px solid var(--t-border);border-radius:5px;background:var(--t-soft);color:var(--t-text);font-family:"Cascadia Mono",Consolas,"SFMono-Regular",Menlo,monospace;font-size:12px;white-space:pre}
.option-detail{margin:-2px 46px 12px 53px}
.option-detail textarea{min-height:0;margin:0;font-size:14px}
.text-repair-detail{margin-top:16px;padding:12px 14px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-soft)}
.text-repair-detail summary{color:var(--t-accent-on-soft);font-weight:700;cursor:pointer}
.text-repair-detail summary i{margin-right:8px}
.text-repair-detail[open] summary{margin-bottom:12px}
@media (max-width:600px){
  .editor-detail-head{flex-wrap:wrap}
  .option-detail{margin:-2px 0 12px}
}

/* Doplnit podrobná vysvětlení (?r=import_details): kroky v nápovědě a souhrn před uložením (zelená doplní, akcent přepíše, cihlová nesedí). Jen sdílené barvy --t-*. */
.detail-import-steps{margin:0 0 14px;padding-left:20px;color:var(--t-text);font-size:14px;line-height:1.55}
.detail-import-steps li{margin:0 0 14px}
.detail-import-steps .copy-button{margin-top:8px}
.detail-import-steps .text-link{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-weight:700}
.detail-import-summary{max-width:900px}
.detail-import-summary h2{margin:0 0 6px}
.detail-import-summary>p{margin:0;color:var(--t-muted)}
.detail-import-rows{display:grid;gap:8px;margin:16px 0 20px;padding:0;list-style:none}
.detail-import-rows li{display:flex;align-items:flex-start;gap:12px;padding:10px 14px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-soft);color:var(--t-text)}
.detail-import-rows li>i{width:16px;margin-top:4px;color:var(--t-muted)!important;text-align:center}
.detail-import-rows li>div{min-width:0}
.detail-import-question{overflow-wrap:anywhere}
.detail-import-rows small{display:block;margin-top:2px;color:var(--t-muted);font-size:13px}
.detail-import-rows li.is-new>i{color:#1f9d6b!important}
.detail-import-rows li.is-replace>i{color:var(--t-accent)!important}
.detail-import-rows li:is(.is-mismatch,.is-invalid,.is-missing){border-color:color-mix(in srgb,#c4553b 45%,var(--t-border))}
.detail-import-rows li:is(.is-mismatch,.is-invalid,.is-missing)>i{color:#c4553b!important}
.detail-import-summary .combine-actions form{margin:0}

/* Souboj třídy (?r=duel_new nastavení, ?r=duel_board projektor, ?r=duel žák; assets/duel.js): čekárna s QR kódem a hráči, otázka s odpočtem a barevnými odpověďmi A–E, po otázce správná odpověď, počty odpovědí, vysvětlení a nejlepší pětka, na konci stupně vítězů (třídy .live-podium z Průběhu zkoušky).
   Plochy jen ze sdílených barev --t-*; odpovědi, výsledek a medaile mají pevné syté barvy s bílým textem, čitelné ve všech motivech. Tlačítka odpovědí mají opakovanou třídu, aby přebila obecná pravidla .button v motivech. */
.duel-board,.duel-player{position:relative;margin:28px 0 0;color:var(--t-text)}
.duel-board-head,.duel-player-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:14px 24px;margin:0 0 20px}
.duel-player-head{margin-bottom:36px}
.duel-board-head h1,.duel-player-head h1{margin:0;color:var(--t-text);font-size:clamp(24px,3.2vw,36px)}
.duel-board-actions,.duel-me{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
:is(.duel-board,.duel-player) .button[hidden]{display:none}
.duel-board-actions .button{font-size:14px}
.duel-me .button.secondary:is(.duel-fullscreen,.duel-motion,.duel-ranking-toggle){width:38px;height:38px;padding:0;border-radius:50%}

/* Animace vypnuté (data-duel-motion): the rows of a ranking appear at once; the button's wand loses its sparkles and fades a little. */
.is-calm .duel-overlay-list li{animation:none}
.button.secondary[data-duel-motion].is-off i.fa-solid{opacity:.6}

/* Pořadí po každé otázce vypnuté (Souboj s počítačem, data-duel-ranking-toggle): the icon fades and gets a slash across. */
.button.secondary[data-duel-ranking-toggle]{position:relative}
.button.secondary[data-duel-ranking-toggle].is-off i.fa-solid{opacity:.5}
.button.secondary[data-duel-ranking-toggle].is-off::after{content:"";position:absolute;top:50%;left:50%;width:22px;height:2px;border-radius:2px;background:currentColor;transform:translate(-50%,-50%) rotate(-45deg)}
.duel-setup>.practice-set-options{margin-top:16px}
.duel-setup>.practice-set-tests{margin:22px 0}
.practice-set-form.duel-setup{max-width:none}
.duel-setup>.practice-set-form-row+.practice-set-form-row,.duel-setup>.practice-set-form-hint+.practice-set-form-row{margin-top:14px}
.duel-code-chip{display:inline-flex;align-items:baseline;gap:8px;padding:8px 14px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-surface);color:var(--t-muted);font-size:14px;font-weight:700}
.duel-code-chip b{color:var(--t-text);font:800 22px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em}
.duel-stage{min-height:200px}
.duel-join-card{display:flex;align-items:center;gap:32px;padding:26px;border:1px solid var(--t-border);border-radius:20px;background:var(--t-surface)}
.duel-qr{flex:none;width:min(280px,40vw);height:auto;border-radius:12px;image-rendering:pixelated}
.duel-join-text{min-width:0}
.duel-join-text p{margin:0 0 6px;color:var(--t-muted);font-size:18px}
.duel-join-text .duel-join-url{color:var(--t-text);font-size:clamp(20px,2.6vw,30px);font-weight:800;overflow-wrap:anywhere}
.duel-join-nav{display:inline-flex;align-items:center;gap:6px;color:var(--t-text);white-space:nowrap}
.duel-join-nav i.fa-solid{color:#f2b630!important}
.duel-join-text .duel-big-code{margin:8px 0 0;color:var(--t-accent);font:800 clamp(52px,8vw,96px)/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.06em}
.duel-roster{margin:18px 0 0;padding:16px 18px;border:1px solid var(--t-border);border-radius:16px;background:var(--t-surface)}
.duel-roster summary{display:flex;align-items:center;gap:10px;color:var(--t-text);font-size:18px;font-weight:800;list-style:none;cursor:pointer}
.duel-roster summary::-webkit-details-marker{display:none}
.duel-roster summary i.fa-solid{margin-left:auto;color:var(--t-muted)!important;font-size:14px;transition:transform .2s}
.duel-roster[open] summary{margin:0 0 10px}
.duel-roster[open] summary i.fa-solid{transform:rotate(180deg)}
.duel-roster:not(.is-lobby){padding:10px 18px}
.duel-roster:not(.is-lobby) summary{font-size:15px}
.duel-roster-empty,.duel-roster-hint{margin:0;color:var(--t-muted);font-size:13px}
.duel-roster-hint{margin-top:10px}
.duel-roster:not(.is-lobby) .duel-roster-hint{display:none}
.duel-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.duel-chips li.is-new{animation:live-pop .6s cubic-bezier(.3,1.6,.5,1)}
.duel-roster .button.secondary.duel-chip{gap:8px;padding:7px 12px;font-weight:700}
.duel-roster.is-lobby .button.secondary.duel-chip{padding:9px 14px;font-size:17px}
.duel-chip.is-static{display:inline-flex;align-items:center;padding:7px 12px;border:1px solid var(--t-border);border-radius:10px;background:var(--t-soft);color:var(--t-text);font-size:14px;font-weight:700}
.duel-roster.is-lobby .duel-chip.is-static{padding:9px 14px;font-size:17px}
.duel-chip i.fa-solid{opacity:.5;font-size:12px}
.duel-chip:hover i.fa-solid{opacity:1}
.duel-question{display:grid;gap:18px}
.duel-question-top{display:flex;align-items:center;justify-content:space-between;gap:14px}
.duel-answered{color:var(--t-muted);font-size:16px}
.duel-answered b{color:var(--t-text);font-size:24px;font-variant-numeric:tabular-nums}
.duel-timer{position:relative;flex:none;width:76px;height:76px}
.duel-timer svg{width:100%;height:100%;transform:rotate(-90deg)}
.duel-timer circle{fill:none;stroke-width:10}
.duel-timer-track{stroke:var(--t-soft)}
.duel-timer-value{stroke:var(--t-accent);stroke-linecap:round;stroke-dasharray:100;transition:stroke-dashoffset .2s linear}
.duel-timer b{position:absolute;inset:0;display:grid;place-items:center;color:var(--t-text);font-size:26px;font-variant-numeric:tabular-nums}
.duel-question.is-hurry .duel-timer-value{stroke:#ef4b5f}
.duel-question.is-hurry .duel-timer b{color:#ef4b5f;animation:duel-pulse 1s ease-in-out infinite}
.duel-question-text{margin:0;padding:22px 24px;border:1px solid var(--t-border);border-radius:18px;background:var(--t-surface);color:var(--t-text);font-size:clamp(22px,3vw,34px);line-height:1.3;letter-spacing:-.01em;overflow-wrap:anywhere}
.duel-question.is-player .duel-question-text{padding:16px 18px;font-size:clamp(19px,4.6vw,26px)}
.duel-reveal-actions,.duel-overlay-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.duel-overlay-actions{margin-top:18px}
.duel-reveal-actions .button,.duel-overlay-actions .button{font-size:16px}
.duel-reveal-actions .button i.fa-lightbulb{color:#f2b630!important}
.duel-option.is-explainable{cursor:pointer}
.duel-option.is-explainable:focus-visible{outline:3px solid var(--t-accent);outline-offset:3px}
.duel-next{margin-left:auto;padding:6px 12px;border:1px solid var(--t-border);border-radius:999px;background:var(--t-soft);color:var(--t-muted);font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}
.duel-next.is-paused{border-color:color-mix(in srgb,#f08a24 55%,var(--t-border));color:color-mix(in srgb,#f08a24 70%,var(--t-text))}
.duel-next[hidden]{display:none}
.duel-question.is-revealed .duel-question-top .duel-answered{margin-left:auto}
.duel-question.is-revealed .duel-question-top .duel-next{margin-left:0}
.duel-progress{display:grid;gap:7px;min-width:170px}
.duel-progress-label{color:var(--t-muted);font-size:19px;font-weight:700;font-variant-numeric:tabular-nums}
.duel-progress-label b{color:var(--t-text);font-size:26px}
.duel-progress-bar{display:block;height:7px;overflow:hidden;border-radius:999px;background:var(--t-soft)}
.duel-progress-bar i{display:block;width:var(--duel-progress);height:100%;border-radius:inherit;background:var(--t-accent)}
.duel-overlay{position:fixed;inset:0;z-index:35;display:grid;place-items:center;padding:16px;background:rgba(6,8,16,.55);backdrop-filter:blur(5px);animation:duel-fade .25s ease-out}
.duel-overlay.is-closed{display:none}
.duel-overlay-card{position:relative;width:min(620px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden;--duel-pad-x:26px;--duel-pad-b:20px;padding:24px var(--duel-pad-x) 0;border:1px solid var(--t-border);border-radius:22px;background:var(--t-surface);color:var(--t-text);box-shadow:0 30px 80px rgba(0,0,0,.4);animation:duel-pop .4s cubic-bezier(.2,1.3,.4,1)}
.duel-board .duel-overlay-card{width:min(760px,100%);--duel-pad-x:32px;--duel-pad-b:24px;padding:28px var(--duel-pad-x) 0}
.duel-overlay-card h2{display:flex;flex:none;align-items:center;gap:12px;margin:0 44px 16px 0;color:var(--t-text);font-size:clamp(22px,2.6vw,32px)}
.duel-overlay-card h2 i.fa-solid{color:#f2b630!important}
.duel-overlay .button.secondary.duel-overlay-close{position:absolute;top:14px;right:14px;width:38px;height:38px;padding:0;border-radius:50%}
.duel-overlay-list{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin:0;padding:0;list-style:none}
.duel-overlay-list li{display:flex;align-items:center;gap:12px;padding:11px 16px;border-radius:12px;background:var(--t-soft);font-size:clamp(17px,2vw,22px);animation:duel-row .45s ease-out backwards;animation-delay:calc(var(--duel-row) * 110ms + .15s)}
.duel-board .duel-overlay-list li{padding:13px 18px;font-size:clamp(19px,2.2vw,26px)}
.duel-overlay-list li>i.fa-solid,.duel-overlay-list .duel-rank{flex:none;width:34px;text-align:center}
.duel-overlay-list li>i.fa-solid.is-place-1{color:#f2b630!important}
.duel-overlay-list li>i.fa-solid.is-place-2{color:#a9b4c6!important}
.duel-overlay-list li>i.fa-solid.is-place-3{color:#cd8a52!important}
.duel-overlay-list li>b{font-variant-numeric:tabular-nums}
.duel-overlay-list li.is-me{box-shadow:inset 0 0 0 2px var(--t-accent)}
.duel-overlay-list li.is-me .duel-name{color:var(--t-accent)}
.duel-overlay-list li.is-up{background:color-mix(in srgb,#1f9d6b 12%,var(--t-soft))}
.duel-overlay-gap{margin:4px 0;color:var(--t-muted);font-size:20px;line-height:1;text-align:center}
.duel-overlay-empty{margin:0;color:var(--t-muted)}
.duel-right{color:var(--t-muted);font-size:14px;font-weight:600;white-space:nowrap}
.duel-roster-list{margin-top:4px}
.duel-chips li.is-me .duel-chip{border-color:var(--t-accent);color:var(--t-accent)}
.duel-lobby-names{justify-content:center;margin-top:10px}
.duel-player-head{position:relative}
.duel-player-head .button.secondary.duel-roster-open{position:absolute;top:-6px;right:0;gap:6px;padding:4px 10px;border-radius:999px;font-size:13px;font-weight:700}
.duel-roster-open b{min-width:22px;padding:0 6px;border-radius:999px;background:var(--t-accent-soft);color:var(--t-accent-on-soft);font-size:12px;text-align:center}
.duel-overlay-time{flex:none;height:5px;margin:0 calc(-1 * var(--duel-pad-x));overflow:hidden;background:var(--t-soft)}
.duel-overlay-time[hidden]{display:none}
.duel-overlay-time i{display:block;width:100%;height:100%;background:var(--t-accent);transition:width .2s linear}
html:fullscreen body:has(:is(.duel-board,.duel-player)) :is(.topbar,footer){display:none}
html:fullscreen body:has(:is(.duel-board,.duel-player)) .shell{min-height:0;padding-top:4px;padding-bottom:16px}

/* The projector is denser than the player page, so the correct answer with the explanation fits 1280×720 even with the top bar. */
.duel-board .duel-board-head{margin-bottom:14px}
.duel-board .duel-board-head h1{font-size:clamp(22px,2.6vw,32px)}
.duel-board .duel-question{gap:14px}
.duel-board .duel-question-text{padding:16px 22px;font-size:clamp(22px,2.6vw,32px)}
.duel-board .duel-option{min-height:64px;padding:12px 18px}
.duel-board .duel-roster{margin-top:14px}
.duel-lead{margin:0;color:var(--t-accent);font-size:22px;font-weight:800;text-align:center}
.duel-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none}
.duel-option{--duel-color:#e5484d;display:flex;align-items:center;gap:14px;min-height:76px;padding:14px 18px;border-radius:16px;background:var(--duel-color);color:#fff;font-size:clamp(17px,2vw,24px);font-weight:700;text-align:left;transition:opacity .3s,transform .3s,filter .3s,box-shadow .3s}
.duel-option.is-b{--duel-color:#2f6fe4}
.duel-option.is-c{--duel-color:#c27c0e}
.duel-option.is-d{--duel-color:#1f9d6b}
.duel-option.is-e{--duel-color:#8455e8}
.duel-option>b{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:10px;background:rgba(255,255,255,.22);font-size:20px}
.duel-option>span{flex:1;min-width:0;overflow-wrap:anywhere}
.duel-option>em{flex:none;padding:4px 12px;border-radius:999px;background:rgba(0,0,0,.22);font-size:20px;font-style:normal;font-variant-numeric:tabular-nums}
.duel-question.is-player .duel-option{position:relative}
.duel-question.is-player .duel-option>em{position:absolute;top:-10px;right:14px;padding:2px 10px;border:2px solid var(--t-surface);background:var(--duel-color);font-size:12px;line-height:1.4}
.duel-question.is-lead .duel-options{opacity:.18;filter:blur(3px);pointer-events:none}
.duel-option.is-dimmed{opacity:.32}
.duel-option.is-wrong{opacity:.6}
.duel-option.is-wrong>span{text-decoration:line-through}
.duel-option.is-correct{box-shadow:inset 0 0 0 4px rgba(255,255,255,.92)}
.duel-option.is-correct::after{content:"\f00c";flex:none;font:900 22px/1 "Font Awesome 6 Free"}
.duel-options .button.duel-option.duel-option{justify-content:flex-start;gap:14px;width:100%;min-height:76px;padding:14px 18px;border:0;border-radius:16px;background:var(--duel-color);color:#fff;box-shadow:0 6px 0 color-mix(in srgb,var(--duel-color) 65%,#000);font-family:inherit;font-size:clamp(17px,2vw,24px);font-weight:700;line-height:1.35;text-align:left;cursor:pointer}
.duel-options .button.duel-option.duel-option:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-2px)}
.duel-options .button.duel-option.duel-option:disabled{cursor:default;filter:none;transform:none}
.duel-options .button.duel-option.duel-option.is-dimmed{opacity:.3;box-shadow:none}
.duel-options .button.duel-option.duel-option.is-chosen{box-shadow:inset 0 0 0 4px rgba(255,255,255,.92);transform:none}
.duel-note{min-height:24px;margin:0;color:var(--t-muted);font-weight:600;text-align:center}
.duel-result{display:flex;align-items:center;gap:14px;min-height:76px;padding:8px 18px;border-radius:18px;background:#6b7489;color:#fff}
.duel-result.is-right{background:#1f9d6b}
.duel-result.is-wrong{background:#d64554}
.duel-result>i.fa-solid{color:#fff!important;font-size:28px}
.duel-result b{display:block;font-size:21px;line-height:1.25}
.duel-result span{font-size:15px;line-height:1.3;opacity:.92}
.duel-streak{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;background:color-mix(in srgb,#f08a24 18%,transparent);color:color-mix(in srgb,#f08a24 70%,var(--t-text));font-size:14px;font-weight:800}
.duel-streak i.fa-solid{color:#f08a24!important}
.duel-result .duel-streak{margin-left:auto;background:rgba(255,255,255,.2);color:#fff}
.duel-result .duel-streak i.fa-solid{color:#ffd166!important}
.duel-question.is-player .duel-option{line-height:1.35}
:is(.duel-board,.duel-player) .pill.pill{border:1px solid var(--t-border);background:var(--t-accent-soft);color:var(--t-accent-on-soft)}
.duel-question.is-player .duel-option>span{font-weight:600}
.duel-question.is-player .duel-options .duel-option.duel-option.duel-option{padding-right:48px}
.duel-question.is-player .duel-option.is-correct::after{position:absolute;top:50%;right:16px;transform:translateY(-50%)}
.duel-explanation{padding:16px 18px;border:1px solid var(--t-border);border-radius:16px;background:var(--t-soft);color:var(--t-text);font-size:17px;line-height:1.5}
.duel-explanation b{display:flex;align-items:center;gap:8px;margin:0 0 6px}
.duel-explanation b i.fa-solid{color:#f2b630!important}
.duel-explanation p{margin:0;overflow-wrap:anywhere}
.duel-board .duel-explanation{max-height:26vh;overflow:auto}
.duel-ranking{padding:14px 16px;border:1px solid var(--t-border);border-radius:16px;background:var(--t-surface)}
.duel-ranking ol{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.duel-ranking li{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;background:var(--t-soft);font-size:18px}
.duel-ranking li>b{font-variant-numeric:tabular-nums}
.duel-rank{flex:none;width:32px;color:var(--t-muted);font-weight:800;font-variant-numeric:tabular-nums}
.duel-name{flex:1;min-width:0;overflow:hidden;font-weight:700;white-space:nowrap;text-overflow:ellipsis}
.duel-gain{color:#1f9d6b;font-size:14px;font-weight:800;font-variant-numeric:tabular-nums}
.duel-gain.is-minus{color:#d64554}
.duel-up{display:inline-flex;align-items:center;gap:3px;color:#1f9d6b;font-size:13px;font-weight:800}
.duel-up i.fa-solid{color:#1f9d6b!important}
.duel-final{display:grid;justify-items:center;gap:18px;text-align:center}
.duel-final h2{margin:0;color:var(--t-text);font-size:clamp(26px,3.4vw,40px)}
.live-podium.duel-podium{width:min(720px,100%);padding:22px 22px 0}
.duel-podium .live-podium-name{font-size:clamp(17px,2.2vw,26px)}
.duel-podium .live-podium-score{font-size:16px}
.duel-podium .is-place-1 .live-podium-step{height:150px}
.duel-podium .is-place-2 .live-podium-step{height:112px}
.duel-podium .is-place-3 .live-podium-step{height:84px}
.duel-final>.duel-ranking{width:min(720px,100%);text-align:left}
.duel-final-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.duel-card{display:grid;justify-items:center;gap:8px;max-width:560px;margin:0 auto;padding:30px 24px;border:1px solid var(--t-border);border-radius:20px;background:var(--t-surface);text-align:center}
.duel-card h2{margin:6px 0 0;color:var(--t-text)}
.duel-card p{margin:0;color:var(--t-text)}
.duel-card .duel-muted{color:var(--t-muted)}
.duel-card .button{margin-top:12px}
.duel-wait-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--t-accent-soft);color:var(--t-accent-on-soft);font-size:26px}
.duel-wait .duel-wait-icon i{animation:duel-turn 2.4s ease-in-out infinite}
.duel-card .duel-final-rank{color:var(--t-accent);font-size:48px;font-weight:800;line-height:1.1}
.duel-card.duel-final-me{grid-template-columns:minmax(0,1fr)}
.duel-mini-podium{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;width:100%;margin:12px 0 0;padding:0;list-style:none}
.duel-mini-podium li{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;background:var(--t-soft);text-align:left}
.duel-mini-podium li span{flex:1;min-width:0;overflow:hidden;font-weight:700;white-space:nowrap;text-overflow:ellipsis}
.duel-mini-podium li.is-me span{color:var(--t-accent)}
.duel-mini-podium i.fa-solid.is-place-1{color:#f2b630!important}
.duel-mini-podium i.fa-solid.is-place-2{color:#a9b4c6!important}
.duel-mini-podium i.fa-solid.is-place-3{color:#cd8a52!important}
.duel-me>span{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid var(--t-border);border-radius:999px;background:var(--t-surface);color:var(--t-text);font-size:14px;font-weight:700}
.duel-me-score b{font-variant-numeric:tabular-nums}
.duel-me .duel-me-rank:empty{display:none}
.duel-me-name i.fa-solid{color:var(--t-accent)!important}
.duel-join-note{display:flex;align-items:flex-start;gap:10px;margin:0 0 14px;padding:12px 14px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-soft);color:var(--t-text)}
.duel-join-note.is-error{border-color:color-mix(in srgb,#d64554 45%,var(--t-border))}
.duel-join-note.is-error i.fa-solid{color:#d64554!important}
.duel-join-note i,.duel-join-hint i{margin-top:4px}
.duel-join-hint{display:flex;gap:8px;margin:0 0 14px;color:var(--t-muted);font-size:13px}
.duel-nick-card{text-align:center}
.duel-nick-label{margin:0;color:var(--t-muted);font-size:14px;font-weight:700}
.duel-nick{margin:6px 0 18px;color:var(--t-accent);font-size:clamp(26px,6vw,34px);font-weight:800;line-height:1.2;overflow-wrap:anywhere}
.duel-nick.is-new{animation:live-pop .5s cubic-bezier(.3,1.6,.5,1)}
.duel-nick-join{margin-top:10px}
.duel-nick-card .duel-join-hint{justify-content:center;margin:14px 0 0}
.duel-join-or{margin:16px 0 8px;color:var(--t-muted);font-size:13px;text-align:center}
.duel-join-alt{margin-top:10px}
.duel-recent{margin:30px 0 0}
.duel-recent-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-left:auto}
.duel-recent-table td.duel-recent-code,.duel-recent-table td.duel-recent-row-actions{white-space:nowrap}
.duel-recent-table td.duel-recent-row-actions{text-align:right}
.duel-recent-table td.duel-recent-row-actions>*{vertical-align:middle}
.duel-recent-table td.duel-recent-row-actions button:disabled{opacity:.4;cursor:not-allowed;transform:none}
.duel-recent-table td.duel-recent-row-actions .inline-form{display:inline-block;margin:0 0 0 8px}
.duel-recent-table th:first-child,.duel-recent-table td:first-child{width:36px}
.duel-recent h2{margin:0 0 4px}
.duel-recent-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:0 0 12px}
.duel-recent-head p{margin:0;color:var(--t-muted)}
.duel-recent-head form,.duel-final-actions form{margin:0}
.duel-final-actions .button{font-size:16px}
.duel-recent td small{display:block;color:var(--t-muted);font-size:12px}
.duel-recent td small .duel-recent-class{color:var(--t-text)}
.duel-offline{position:fixed;bottom:18px;left:50%;z-index:30;margin:0;padding:9px 16px;border-radius:999px;background:#d64554;color:#fff;font-weight:700;box-shadow:0 8px 20px rgba(0,0,0,.25);transform:translateX(-50%)}
.duel-offline[hidden]{display:none}
.duel-confetti{position:fixed;inset:0;z-index:40;overflow:hidden;pointer-events:none}
.duel-confetti i{position:absolute;top:-20px;width:10px;height:16px;border-radius:2px;animation:duel-fall linear forwards}
@keyframes duel-fall{
  0%{transform:translateY(0) rotate(0)}
  100%{transform:translateY(105vh) rotate(720deg)}
}
@keyframes duel-pulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.15)}
}
@keyframes duel-fade{
  0%{opacity:0}
  100%{opacity:1}
}
@keyframes duel-pop{
  0%{opacity:0;transform:scale(.9) translateY(14px)}
  100%{opacity:1;transform:none}
}
@keyframes duel-row{
  0%{opacity:0;transform:translateX(-24px)}
  100%{opacity:1;transform:none}
}
@keyframes duel-turn{
  0%,20%{transform:rotate(0)}
  50%,70%{transform:rotate(180deg)}
  100%{transform:rotate(360deg)}
}
@media (max-width:760px){
  .duel-join-card{flex-direction:column;text-align:center}
  .duel-qr{width:min(260px,70vw)}
}
@media (max-width:600px){
  .duel-board,.duel-player{margin-top:16px}
  .duel-player-head{margin-bottom:26px}
  .duel-options{grid-template-columns:1fr}
  .duel-option,.duel-options .button.duel-option.duel-option{min-height:60px;padding:12px 14px}
  .duel-timer{width:60px;height:60px}
  .duel-timer b{font-size:21px}
  .duel-progress{min-width:0}
  .duel-progress-label{font-size:16px}
  .duel-progress-label b{font-size:21px}
  .duel-overlay-card{--duel-pad-x:16px;--duel-pad-b:16px;padding:20px var(--duel-pad-x) 0}
  .duel-overlay-card h2{font-size:20px}
  .duel-overlay-list li{font-size:16px}
  .duel-overlay-list .duel-gain{font-size:12px}
  .duel-result{min-height:60px;padding:6px 14px}
  .duel-result b{font-size:18px}
  .duel-result span{font-size:14px}
  .duel-card .duel-final-rank{font-size:40px}
  .topbar:has([data-logout]) nav .nav-duel{display:none}
}

/* Souboj s počítačem (?r=duel_bot nastavení, hra je stránka hráče souboje): obtížnost jako tři dlaždice, pod ní výběr testu ze stylů Tréninku z více testů. */
.duel-bot-setup>.form-card{margin:0 0 24px}
.duel-bot-label{margin:16px 0 8px;color:var(--t-text);font-weight:700}
.duel-bot-levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.duel-bot-heading{margin:0 0 12px;color:var(--t-text);font-size:20px}
.duel-bot-setup .practice-mix-item>.my-list-toggle{margin:-6px -8px -6px -4px}
@media (max-width:600px){
  .duel-bot-levels{grid-template-columns:minmax(0,1fr)}
}

/* Souboj s kamarády (?r=duel_friends, stránka hráče): kód a QR kód v čekárně zakladatele, lišta Ukončit souboj pod hrou, odveta na konci, karta s důvodem, proč souboj teď nejde založit, a nastavení v Administraci. */
.duel-friends-lobby-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin:0 0 16px}
.duel-friends-lobby-actions .button,.duel-friends-lobby-actions form{margin:0}
.duel-friends-lobby-actions .duel-note{margin:0 0 0 4px;color:var(--t-muted)}
.duel-friends-lobby .duel-join-text h2{margin:0 0 12px;color:var(--t-text);font-size:clamp(22px,2.4vw,30px)}
.duel-friends-lobby-players{margin:16px 0 0;padding:14px 20px;border:1px solid var(--t-border);border-radius:16px;background:var(--t-surface);text-align:center}
.duel-friends-lobby-players .duel-muted{margin:0}
@media (max-width:600px){
  .duel-friends-lobby .duel-join-card{gap:12px;padding:20px 16px}
  .duel-friends-lobby .duel-join-text{display:contents}
  .duel-friends-lobby .duel-join-text h2{order:1;margin:0}
  .duel-friends-lobby .duel-join-text .duel-big-code{order:2;margin:0}
  .duel-friends-lobby .duel-qr{order:3;width:min(200px,55vw)}
  .duel-friends-lobby .duel-join-text p:not(.duel-big-code){order:4;margin:0;font-size:15px}
}
.duel-friends-host-bar{display:flex;justify-content:center;margin:18px 0 0}
.duel-friends-host-bar[hidden]{display:none}
.duel-friends-next{display:contents}
.duel-friends-next form{margin:0}
.duel-friends-wait{flex-basis:100%;margin:0}
.duel-friends-closed{max-width:760px}
.duel-friends-closed .duel-join-note{margin:0 0 12px}
.duel-friends-closed>p{color:var(--t-text)}
.duel-friends-closed>p a{color:var(--t-accent);font-weight:700}
.duel-friends-none{margin:0;color:var(--t-muted)}
.duel-friends-table td small{display:block;color:var(--t-muted);font-size:12px}
.duel-friends-table td.duel-friends-actions{text-align:right;white-space:nowrap}
.duel-friends-table td.duel-friends-actions .inline-form{display:inline-block;margin:0}

/* Telefon na výšku (do 430 px, 26. 10. 2026, návrh C): výběr vzhledu v hlavičce žáka ukazuje jen paletu (SVG v pozadí, barva textu motivu); jinak zůstává hlavička původní
   (velikosti, mezery, ikony i rozbalovací seznam). Platí i v tréninku, zkoušce nanečisto a ostrém testu; hlavička učitele a admina se nemění. Text zvoleného motivu je průhledný. */
@media (max-width:430px){
  .topbar:not(:has([data-logout])) #themeSelect{width:48px!important;padding-right:0!important;padding-left:0!important;color:transparent!important;background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 512 512%27%3E%3Cpath fill=%27%2325304b%27 d=%27M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3H344c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z%27/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:center!important;background-size:18px 18px!important}
  body[data-theme="colorful"] .topbar:not(:has([data-logout])) #themeSelect{background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 512 512%27%3E%3Cpath fill=%27%23392750%27 d=%27M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3H344c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z%27/%3E%3C/svg%3E")!important}
  body[data-theme="dark"] .topbar:not(:has([data-logout])) #themeSelect{background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 512 512%27%3E%3Cpath fill=%27%23e8edff%27 d=%27M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3H344c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z%27/%3E%3C/svg%3E")!important}
  body[data-theme="aiflow"] .topbar:not(:has([data-logout])) #themeSelect{background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 512 512%27%3E%3Cpath fill=%27%23f2fbff%27 d=%27M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3H344c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z%27/%3E%3C/svg%3E")!important}
  body[data-theme="ember"] .topbar:not(:has([data-logout])) #themeSelect{background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 512 512%27%3E%3Cpath fill=%27%23f6ece8%27 d=%27M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3H344c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z%27/%3E%3C/svg%3E")!important}
  body[data-theme="navy"] .topbar:not(:has([data-logout])) #themeSelect{background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 512 512%27%3E%3Cpath fill=%27%23f6ece8%27 d=%27M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3H344c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z%27/%3E%3C/svg%3E")!important}
  /* Test a zkouška nanečisto s limitem: vedle časovače zůstanou Testy (původně skryté výše), Souboj se skryje – dřív padal na druhý řádek. */
  body:has(.topbar .test-elapsed.has-limit:not(.practice-exam-timer)) .topbar:not(:has([data-logout])) nav a.nav-duel{display:none!important}
  body:has(.topbar .test-elapsed.has-limit:not(.practice-exam-timer)) .topbar:not(:has([data-logout])) nav a[href="?r=catalog"]{display:inline-flex!important}
}

/* Safari a Firefox: nativní šipku jde schovat jen bez nativního vzhledu; položky seznamu dostanou vlastní barvy, aby nezdědily průhledný text. */
@supports not (appearance:base-select){
  @media (max-width:430px){
    .topbar:not(:has([data-logout])) #themeSelect{appearance:none!important;-webkit-appearance:none!important}
    .topbar:not(:has([data-logout])) #themeSelect option{color:var(--t-text);background:var(--t-surface)}
  }
}

/* Chrome a Edge 135+ si nechají vlastní rozbalovací seznam motivu, jen bez šipky. */
@supports (appearance:base-select){
  @media (max-width:430px){
    .topbar:not(:has([data-logout])) #themeSelect::picker-icon{display:none}
  }
}

/* Rozbor: Podrobné vysvětlení u pravého okraje karty a Nahlásit chybu před ním (barvou jako řádek Správná odpověď). */
.review-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px 20px;margin-top:10px}
body:is([data-theme],:not([data-theme])) .review .review-actions .review-detail-open.review-detail-open{margin:0}
body:is([data-theme],:not([data-theme])) .review .review-actions button.review-report.review-report.review-report.review-report{margin:0;padding:7px 10px!important;font-size:14px;color:var(--muted)!important}

/* Administrace (app/views/admin.php): záložky Účty, Zálohy a Nastavení, karty s formuláři; jen tokeny --t-*. */
.adm{max-width:1180px;margin:0 auto;padding:30px 0 70px;color:var(--t-text)}
.adm *{box-sizing:border-box}
.adm-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 22px}
.adm-head .eyebrow{margin:0 0 6px}
.adm-head h1{margin:0;font-size:34px;line-height:1.1}
.adm-head p{margin:6px 0 0;color:var(--t-muted)}
.adm-alert{display:flex;align-items:center;gap:14px;margin:0 0 22px;padding:14px 16px;border:1px solid color-mix(in srgb,#ff6b6b 45%,var(--t-border));border-radius:14px;background:color-mix(in srgb,#ff6b6b 11%,var(--t-surface))}
.adm-alert[hidden]{display:none}
.adm-alert>i.lead{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:11px;background:color-mix(in srgb,#ff6b6b 22%,transparent);color:#ff8a8a;font-size:17px}
.adm-alert-text{flex:1;min-width:0;font-size:14px;line-height:1.5}
.adm-alert-text b{display:block;margin-bottom:2px;font-size:15px}
.adm-alert-text span{color:var(--t-muted)}
.adm-alert .button{white-space:nowrap}
body:is([data-theme],:not([data-theme])) .adm-alert-close.adm-alert-close.adm-alert-close.adm-alert-close.adm-alert-close.adm-alert-close{flex:0 0 auto;display:grid;place-items:center;width:34px;height:34px;min-height:0;margin:0;padding:0!important;border:0!important;border-radius:9px!important;background:transparent!important;box-shadow:none!important;color:var(--t-muted)!important;cursor:pointer}
body:is([data-theme],:not([data-theme])) .adm-alert-close.adm-alert-close.adm-alert-close.adm-alert-close.adm-alert-close.adm-alert-close:hover{background:var(--t-hover)!important;color:var(--t-text)}
.adm-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:0 0 26px}
.adm-kpi{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px solid var(--t-border);border-radius:16px;background:var(--t-surface);color:inherit;text-decoration:none}
.adm-kpi>i{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:12px;background:var(--t-accent-soft);color:var(--t-accent);font-size:17px}
.adm-kpi small{display:block;color:var(--t-muted);font-size:12.5px;font-weight:650}
.adm-kpi b{display:block;margin-top:1px;font-size:25px;line-height:1.15}
.adm-kpi em{display:block;color:var(--t-muted);font-size:12px;font-style:normal}
a.adm-kpi:hover{border-color:var(--t-accent);background:var(--t-hover)}
.adm-tabs{position:sticky;top:8px;z-index:5;display:flex;gap:4px;width:fit-content;max-width:100%;margin:0 0 22px;padding:5px;overflow:auto;border:1px solid var(--t-border);border-radius:14px;background:var(--t-surface);box-shadow:0 8px 24px rgba(0,0,0,.14)}
body:is([data-theme],:not([data-theme])) .adm-tabs .adm-tab.adm-tab.adm-tab.adm-tab.adm-tab.adm-tab{display:inline-flex;align-items:center;gap:8px;width:auto;min-height:0;margin:0;padding:9px 16px!important;border:0!important;border-radius:10px!important;background:transparent!important;box-shadow:none!important;color:var(--t-muted)!important;font-size:14.5px;font-weight:700;white-space:nowrap;cursor:pointer}
body:is([data-theme],:not([data-theme])) .adm-tabs .adm-tab.adm-tab.adm-tab.adm-tab.adm-tab.adm-tab:hover{background:var(--t-hover)!important;color:var(--t-text)}
body:is([data-theme],:not([data-theme])) .adm-tabs .adm-tab.adm-tab.adm-tab.adm-tab.adm-tab.adm-tab[aria-selected="true"]{background:var(--t-accent-soft)!important;color:var(--t-accent-on-soft)!important}
.adm-tabs button i{font-size:14px}
.adm-panel[hidden]{display:none}
.adm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start;margin:0 0 18px}
body:is([data-theme],:not([data-theme])) .adm-card{padding:22px 24px;border:1px solid var(--t-border);border-radius:18px;background:var(--t-surface);box-shadow:none}
.adm-card>header{display:flex;align-items:center;gap:12px;margin:0 0 16px}
.adm-card>header>i{display:grid;place-items:center;flex:0 0 36px;height:36px;border-radius:10px;background:var(--t-accent-soft);color:var(--t-accent);font-size:15px}
.adm-card h2{margin:0;font-size:18px;line-height:1.25}
.adm-card>header p{margin:2px 0 0;color:var(--t-muted);font-size:13px}
.adm-card>header .grow{flex:1;min-width:0}
.adm-card label{margin-bottom:14px}
.adm-card label small{color:var(--t-muted);font-weight:500}
.adm-card .row{display:grid;align-items:end;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.adm-card .hint{margin:0 0 14px;color:var(--t-muted);font-size:13px;line-height:1.5}
.adm-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px}
.adm-backup-now{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 16px;padding:16px 18px;border:1px dashed var(--t-border);border-radius:14px;background:var(--t-soft)}
.adm-backup-now p{margin:0;color:var(--t-muted);font-size:14px;line-height:1.5}
.adm-backup-now b{color:var(--t-text)}
.adm-list{display:grid;margin:0;padding:0;list-style:none}
.adm-list li{display:flex;align-items:center;gap:14px;padding:11px 4px;border-top:1px solid var(--t-border)}
.adm-list li:first-child{border-top:0}
.adm-list form{margin:0}
.adm-day{flex:1;min-width:0;font-weight:700}
.adm-day small{margin-left:8px;color:var(--t-muted);font-weight:500}
.adm-size{min-width:72px;color:var(--t-muted);font-size:13.5px;text-align:right}
.adm-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;background:var(--t-accent-soft);color:var(--t-accent-on-soft);font-size:12px;font-weight:750}
.adm-chip i{font-size:7px}
.adm-chip.ok{background:rgba(52,199,140,.16);color:#47d3a0}
body:not([data-theme]) .adm-chip.ok,body[data-theme=""] .adm-chip.ok,body[data-theme="colorful"] .adm-chip.ok{color:#178363}
.adm-chip.off{background:var(--t-soft);color:var(--t-muted)}
.adm details.adm-how,.adm details.adm-more{margin-top:14px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-soft)}
.adm details>summary{padding:12px 16px;cursor:pointer;font-size:14px;font-weight:700}
.adm details.adm-how>div{padding:0 16px 14px;color:var(--t-muted);font-size:13.5px;line-height:1.6}
.adm details.adm-more>ul{padding:0 14px 6px}
.adm-table{width:100%;border-collapse:collapse}
.adm-table th{padding:0 12px 10px;color:var(--t-muted);font-size:12px;font-weight:750;letter-spacing:.04em;text-align:left;text-transform:uppercase}
.adm-table td{padding:13px 12px;border-top:1px solid var(--t-border);vertical-align:middle}
.adm-table tr:not(.adm-edit-row):hover td{background:var(--t-soft)}
.adm-table .adm-edit-row td{padding:16px 12px;background:var(--t-soft)}
.adm-edit-row[hidden]{display:none}
.adm-edit-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:14px;align-items:end}
.adm-edit-form label{margin:0}
.adm-edit-form .adm-switch{grid-column:1/-1}
.adm-locked{color:var(--t-muted);font-size:13px}
.adm-who{display:flex;align-items:center;gap:12px;min-width:0}
.adm-avatar{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:50%;background:var(--t-accent-soft);color:var(--t-accent-on-soft);font-size:14px;font-weight:800}
.adm-who b{display:block;line-height:1.25}
.adm-who small{color:var(--t-muted)}
.adm-row-actions{display:flex;justify-content:flex-end;gap:8px}
.adm-row-actions form{margin:0}
.adm-row-actions .button{padding:8px 13px;font-size:13.5px}
.adm-themes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 16px}
.adm-card label.adm-theme{position:relative;display:block;margin:0;padding:0;cursor:pointer}
.adm-theme input{position:absolute;width:1px;height:1px;margin:0;opacity:0}
.adm-theme span{display:grid;gap:8px;padding:10px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-soft);color:var(--t-text);font-size:13px;font-weight:700}
.adm-theme i{display:block;height:34px;border:1px solid rgba(128,128,128,.35);border-radius:8px}
.adm-theme input:checked+span{border-color:var(--t-accent);background:var(--t-accent-soft);color:var(--t-accent-on-soft)}
.adm-theme input:focus-visible+span{outline:2px solid var(--t-accent);outline-offset:2px}
.adm-card label.adm-switch{display:flex;align-items:flex-start;gap:14px;margin:0 0 16px;padding:14px 16px;border:1px solid var(--t-border);border-radius:14px;background:var(--t-soft);cursor:pointer}
.adm-switch input{position:absolute;width:1px;height:1px;margin:0;opacity:0}
.adm-switch .track{position:relative;flex:0 0 44px;height:26px;margin-top:2px;border:1px solid var(--t-border);border-radius:999px;background:var(--t-hover);transition:.15s}
.adm-switch .track::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--t-muted);transition:.15s}
.adm-switch input:checked+.track{border-color:var(--t-accent);background:var(--t-accent)}
.adm-switch input:checked+.track::after{left:20px;background:#fff}
.adm-switch input:focus-visible+.track{outline:2px solid var(--t-accent);outline-offset:2px}
.adm-switch b{display:block;color:var(--t-text);font-size:15px}
.adm-switch small{display:block;margin-top:2px;font-size:13px;font-weight:500;line-height:1.45}
@media(max-width:1000px){
  .adm-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .adm-grid{grid-template-columns:minmax(0,1fr)}
  .adm-edit-form{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:600px){
  .adm{padding:20px 0 60px}
  .adm-head{flex-direction:column;align-items:flex-start}
  .adm-alert{display:grid;grid-template-columns:38px minmax(0,1fr) 34px;grid-template-areas:"icon text close" "btn btn btn";align-items:start;gap:12px}
  .adm-alert>i.lead{grid-area:icon}
  .adm-alert-text{grid-area:text}
  .adm-alert-close{grid-area:close}
  .adm-alert>.button{grid-area:btn;justify-self:stretch}
  .adm-card .row{grid-template-columns:minmax(0,1fr)}
  .adm-themes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .adm-backup-now{flex-direction:column;align-items:flex-start}
  .adm-table thead{display:none}
  .adm-table,.adm-table tbody,.adm-table tr,.adm-table td{display:block}
  .adm-table tr{padding:10px 0;border-top:1px solid var(--t-border)}
  .adm-table td{padding:5px 4px;border:0}
  .adm-row-actions{justify-content:flex-start}
}

/* Souboj třídy (?r=duel_new): záložky Nový souboj, Moje souboje a Souboje žáků (vzhled záložek z Administrace, tady neplavou), sbalené Další nastavení
   a na telefonu seznamy soubojů jako karty (i seznam soubojů žáků v Administraci); jen tokeny --t-*, zelená tečka běžícího souboje je ve všech motivech stejná. */
.adm-tabs.duel-tabs{position:static}
.duel-tab-count{min-width:22px;padding:1px 7px;border-radius:999px;background:var(--t-hover);color:var(--t-text);font-size:12px;font-weight:800;line-height:1.5;text-align:center}
.adm-tab[aria-selected="true"] .duel-tab-count{background:var(--t-surface);color:var(--t-accent-on-soft)}
.duel-tab-live{flex:none;width:8px;height:8px;border-radius:50%;background:#2fbf71;box-shadow:0 0 0 3px rgba(47,191,113,.22)}
.duel-tabs .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.duel-panel[hidden],.duel-setup [data-duel-hint-value][hidden]{display:none}
.duel-panel>.duel-recent{margin:0}
.duel-more{margin:4px 0 0;border:1px solid var(--t-border);border-radius:12px;background:var(--t-soft)}
.duel-more>summary{padding:12px 16px;color:var(--t-text);font-size:14px;font-weight:700;cursor:pointer}
.duel-more>summary small{margin-left:10px;color:var(--t-muted);font-size:13px;font-weight:500}
.duel-more[open]>summary small{display:none}
.duel-more-body{padding:2px 16px 2px}
.duel-more .practice-set-form-row{grid-template-columns:repeat(4,minmax(0,1fr))}
.duel-recent-table td.duel-recent-state.is-live{color:var(--t-text);font-weight:700}
.duel-recent-table td.duel-recent-state.is-live::before{content:"";display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:#2fbf71;vertical-align:1px}
@media(max-width:1000px){
  .duel-more .practice-set-form-row{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .adm-tabs.duel-tabs{width:100%}
  body:is([data-theme],:not([data-theme])) .duel-tabs .adm-tab.adm-tab.adm-tab.adm-tab.adm-tab.adm-tab{flex:1 1 0;justify-content:center;gap:6px;padding:8px 6px!important;font-size:13.5px;line-height:1.25;text-align:center;white-space:normal}
  .duel-tabs .adm-tab i{display:none}
  .duel-more>summary small{display:block;margin:2px 0 0}
  .duel-setup>.practice-set-form-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .duel-setup>.practice-set-form-row:not([data-duel-timing])>label:last-child,.duel-setup>[data-duel-timing]>label:first-child{grid-column:1/-1}
  .duel-more .practice-set-form-row{grid-template-columns:minmax(0,1fr)}
  .duel-recent-actions{justify-content:flex-start;margin-left:0}
  .duel-recent-table thead,.duel-friends-table thead{display:none}
  .duel-recent-table,.duel-recent-table tbody,.duel-friends-table,.duel-friends-table tbody{display:block}
  .duel-recent-table tr,.duel-friends-table tr{position:relative;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding:14px;border-top:1px solid var(--t-border)}
  .duel-recent-table tr{padding-left:46px}
  .duel-recent-table tr:first-child,.duel-friends-table tr:first-child{border-top:0}
  .duel-recent-table td,.duel-friends-table td{padding:0;border:0}
  .duel-recent-table td.duel-recent-pick{position:absolute;top:19px;left:16px;display:flex;width:auto}
  .duel-recent-table td.duel-recent-pick input{margin:0}
  .duel-recent-table td:is(.duel-recent-name,.duel-recent-row-actions),.duel-friends-table td:is(.duel-friends-test,.duel-friends-players,.duel-friends-actions){flex:0 0 100%}
  .duel-recent-table td.duel-recent-name{font-weight:700}
  .duel-recent-table td.duel-recent-name small{font-weight:400}
  .duel-recent-table td.duel-recent-row-actions,.duel-friends-table td.duel-friends-actions{margin-top:6px;text-align:left;white-space:normal}
  .duel-recent-table td.duel-recent-row-actions .inline-form{margin:0 0 0 6px}
  .duel-friends-table td.duel-friends-test{order:-1}
  .duel-friends-table td.duel-friends-players{order:1}
  .duel-friends-table td.duel-friends-actions{order:2}
  .duel-friends-table td.duel-friends-time small{display:inline;margin-left:6px}
  .duel-recent-table td[data-label]::before,.duel-friends-table td[data-label]::before{content:attr(data-label) " ";color:var(--t-muted)}
}

/* Moje kritéria známek (?r=grading_settings): jedna známka na jednom řádku, barevný štítek známky, hranice od a rozsah; jen tokeny --t-*, barvy štítků jsou .grade-1 až .grade-5 ve všech motivech. */
.grading-rows{display:grid;gap:8px;margin:4px 0 6px}
.grading-settings .grading-row{display:grid;grid-template-columns:150px auto minmax(0,1fr);align-items:center;gap:14px;padding:10px 14px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-soft);color:var(--t-muted);font-weight:600}
.grading-row .grade{padding:7px 12px;font-size:14px;text-align:center}
.grading-settings .grading-row .grading-threshold{margin:0;color:var(--t-muted);font-size:14px}
.grading-settings .grading-row .grading-threshold input{width:84px;margin:0;padding:8px 10px}
.grading-row .grading-range{color:var(--t-text);font-size:14px;font-weight:700;text-align:right;white-space:nowrap}
@media(max-width:600px){
  .grading-settings .grading-row{grid-template-columns:auto minmax(0,1fr);gap:6px 12px}
  .grading-row .grade{padding:7px 10px;font-size:13.5px}
  .grading-settings .grading-row .grading-threshold{justify-self:end;gap:6px}
  .grading-settings .grading-row .grading-threshold input{width:68px}
  .grading-settings .grading-row.is-five .grading-threshold{grid-column:1/-1;justify-self:start}
  .grading-row .grading-range{grid-column:1/-1;text-align:left}
  .grading-row .grading-range:empty{display:none}
}
@media(max-width:380px){
  .grading-settings .grading-row{grid-template-columns:auto minmax(0,1fr)}
  .grading-row .grade{grid-column:1/-1;justify-self:start}
  .grading-settings .grading-row .grading-threshold{justify-self:start}
  .grading-settings .grading-row:not(.is-five) .grading-threshold{grid-column:1}
  .grading-settings .grading-row:not(.is-five) .grading-range{grid-column:2;text-align:right}
}

/* Hodnocení testu (?r=edit_test_grading): známky v procentech i v chybách jako řádky se štítkem (jako Moje kritéria známek), políčko a náhled druhého pohledu jsou v jednom .grading-threshold. */
.grading-settings .grading-rows[data-percentage-grading-fields] .grading-row,.grading-settings .grading-rows[data-wrong-grading-fields] .grading-row{grid-template-columns:150px minmax(0,1fr)}
.grading-settings .grading-rows .grading-threshold{flex-wrap:wrap}
.grading-settings .grading-rows .grading-threshold small{margin-left:4px}
@media(max-width:600px){
  .grading-settings .grading-rows[data-percentage-grading-fields] .grading-row,.grading-settings .grading-rows[data-wrong-grading-fields] .grading-row{grid-template-columns:minmax(0,1fr);gap:8px}
  .grading-settings .grading-rows .grading-row .grading-threshold{grid-column:1;justify-self:start;width:auto;max-width:100%;row-gap:8px}
  .grading-settings .grading-rows .grading-row .grade{justify-self:start}
  .grading-settings .grading-rows .grading-threshold small{margin-left:0}
}

/* Průběh zkoušky: vzhledy odhalení na počítači (tests.live_style; třída fx-… na dráze nastavuje live.js, na telefonu do 760 px je vždy raketa). Raketa je výchozí a zůstává ve stylech výše.
   Laser = pulzující paprsek, který výsledky vypaluje do políček; Oscilograf = mapa jako pravoúhlý signál; Reflektor = políčka ve tmě osvětlovaná světelným kruhem;
   Radar = paprsek a ozvěny, Trezor = visací zámky, Razítko = razítko, které odpovědi otiskuje, Výboj = blesky do políček. Barvy ✓ a ✕ jsou ve všech vzhledech stejné jako u rakety, ostatní z --t-* a z --fx. */
@property --spot{syntax:"<length-percentage>";inherits:false;initial-value:-200px}
.live-lane:is(.fx-scope,.fx-radar){--fx:#5eead4}
.live-lane.fx-bolt{--fx:#a78bfa}
.live-lane.fx-vault{--fx:#fbbf24}
.live-lane.fx-stamp{--fx:#c084fc}
body:not([data-theme]) .live-lane:is(.fx-scope,.fx-radar),body[data-theme=""] .live-lane:is(.fx-scope,.fx-radar),body[data-theme="colorful"] .live-lane:is(.fx-scope,.fx-radar){--fx:#0f766e}
body:not([data-theme]) .live-lane.fx-bolt,body[data-theme=""] .live-lane.fx-bolt,body[data-theme="colorful"] .live-lane.fx-bolt{--fx:#7c3aed}
body:not([data-theme]) .live-lane.fx-vault,body[data-theme=""] .live-lane.fx-vault,body[data-theme="colorful"] .live-lane.fx-vault{--fx:#b45309}
body:not([data-theme]) .live-lane.fx-stamp,body[data-theme=""] .live-lane.fx-stamp,body[data-theme="colorful"] .live-lane.fx-stamp{--fx:#7e22ce}
.live-lane:is(.fx-laser,.fx-scope,.fx-spot,.fx-radar,.fx-vault,.fx-stamp,.fx-bolt) .live-rocket i{display:none}
.live-lane:is(.fx-laser,.fx-scope,.fx-spot,.fx-radar,.fx-vault,.fx-stamp,.fx-bolt) .live-rail .live-rocket::before{display:none}
.live-lane:is(.fx-laser,.fx-scope,.fx-spot,.fx-radar,.fx-vault,.fx-stamp,.fx-bolt) .live-rail .live-rocket{border:0;border-radius:2px;background:var(--fx,#fff);color:inherit}
.live-lane:is(.fx-laser,.fx-scope,.fx-spot,.fx-radar,.fx-vault,.fx-stamp,.fx-bolt) .live-fxhead{position:absolute;top:0;bottom:0;left:0;right:0}
.live-lane:is(.fx-laser,.fx-scope,.fx-spot,.fx-radar,.fx-vault,.fx-stamp,.fx-bolt) .live-flyer{left:6px;z-index:4}
.live-lane:is(.fx-laser,.fx-scope,.fx-spot,.fx-radar,.fx-vault,.fx-stamp,.fx-bolt).is-idle .live-rocket{animation:none}

/* Laser */
.live-lane.fx-laser .live-track{--rocket-size:3px;background:var(--t-soft) linear-gradient(var(--t-border),var(--t-border)) center/100% 2px no-repeat}
.live-lane.fx-laser .live-trail{inset:auto 0 auto 0;top:50%;height:2px;margin-top:-1px;border-radius:0;background:linear-gradient(90deg,transparent,#ff4d5e);box-shadow:0 0 8px #ff4d5e;opacity:.9}
.live-lane.fx-laser .live-finish{width:2px;border-radius:0;background:var(--t-border);opacity:1}
.live-lane.fx-laser.is-near .live-finish{background:#ff4d5e;box-shadow:0 0 10px #ff4d5e}
.live-lane.fx-laser .live-rail .live-rocket,.live-lane.fx-laser .live-fxhead{top:5px;bottom:auto;width:3px;height:26px;margin-left:-1px;background:#fff;box-shadow:0 0 6px 1px #fff,0 0 16px 4px #ff4d5e,0 0 32px 8px rgba(255,77,94,.45);animation:live-laser .5s ease-in-out infinite alternate}
.live-lane.fx-laser .live-fxhead::before{content:"";position:absolute;right:100%;top:-6px;bottom:-6px;width:70px;background:linear-gradient(90deg,transparent,rgba(255,77,94,.28))}
.live-lane.fx-laser.is-boost .live-rail .live-rocket{box-shadow:0 0 8px 2px #fff,0 0 22px 7px #ff4d5e,0 0 44px 12px rgba(255,77,94,.55)}
.live-lane.fx-laser .live-flyer{width:3px}
@keyframes live-laser{
  from{opacity:.72;transform:scaleY(.86)}
  to{opacity:1;transform:scaleY(1.04)}
}
.live-lane.fx-laser .live-map:not(.is-settled) .live-tile{animation:live-tile-laser .5s ease-out var(--delay,0s) backwards}
.live-lane.fx-laser .live-map:not(.is-settled) .live-tile.is-wrong{animation-name:live-tile-glitch;animation-timing-function:steps(2,end)}
@keyframes live-tile-laser{
  0%{opacity:.28;filter:saturate(0)}
  12%{opacity:1;filter:brightness(2.6) saturate(1.3);box-shadow:0 0 18px #2bd18f}
  100%{opacity:1;filter:none;box-shadow:none}
}
@keyframes live-tile-glitch{
  0%{opacity:.28;filter:saturate(0)}
  12%{opacity:1;filter:brightness(2.2);box-shadow:0 0 16px #e0606f;transform:translateX(-3px)}
  36%{transform:translateX(3px)}
  60%{transform:translateX(-2px)}
  100%{opacity:1;filter:none;box-shadow:none;transform:none}
}

/* Oscilograf */
.live-lane.fx-scope .live-track{border-radius:8px}
.live-lane.fx-scope .live-track::before{content:"";position:absolute;inset:0;border-radius:inherit;background-image:linear-gradient(color-mix(in srgb,var(--t-border) 55%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--t-border) 55%,transparent) 1px,transparent 1px);background-size:100% 12px,36px 100%;pointer-events:none}
.live-lane.fx-scope :is(.live-trail,.live-rail,.live-flyer){display:none}
.live-lane.fx-scope .live-finish{width:2px;border-radius:0;background:var(--t-border);opacity:1}
.live-lane.fx-scope .live-map{opacity:0}
.live-scope{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.live-scope-trace{fill:none;stroke:var(--fx);stroke-width:2.2;stroke-linejoin:round;filter:drop-shadow(0 0 4px var(--fx))}
.live-scope-ahead{fill:none;stroke:var(--t-muted);stroke-width:1;stroke-dasharray:3 5;opacity:.5}
.live-scope-head{fill:#fff;filter:drop-shadow(0 0 6px var(--fx)) drop-shadow(0 0 12px var(--fx))}
.live-scope-dot{opacity:0;r:3;transition:.25s}
.live-scope-dot.is-on{opacity:1;r:5.5}
.live-scope-dot.is-correct{fill:#2bd18f;filter:drop-shadow(0 0 6px #2bd18f)}
.live-scope-dot.is-wrong{fill:#e0606f;filter:drop-shadow(0 0 6px #e0606f)}

/* Reflektor */
.live-lane.fx-spot .live-track{--rocket-size:14px}
.live-lane.fx-spot .live-trail{inset:auto 0 auto 0;top:50%;height:2px;margin-top:-1px;border-radius:0;background:linear-gradient(90deg,transparent,#fde68a);opacity:.55}
.live-lane.fx-spot .live-finish{width:2px;border-radius:0;background:var(--t-border);opacity:1}
.live-lane.fx-spot .live-rail .live-rocket,.live-lane.fx-spot .live-fxhead{top:11px;bottom:auto;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 0 10px 3px #fde68a,0 0 26px 8px rgba(253,230,138,.5);animation:live-orb 1.2s ease-in-out infinite}
@keyframes live-orb{
  50%{box-shadow:0 0 14px 5px #fde68a,0 0 38px 14px rgba(253,230,138,.55)}
}
.live-lane.fx-spot .live-flyer{width:14px}
.live-lane.fx-spot .live-map:not(.is-settled)::after{content:"";position:absolute;inset:-4px -6px;z-index:2;border-radius:8px;background:radial-gradient(circle 72px at var(--spot) 50%,transparent 0,transparent 38%,color-mix(in srgb,var(--t-soft) 95%,transparent) 100%);pointer-events:none;animation:live-spot-move 5s linear 1.4s both}
@keyframes live-spot-move{
  0%{--spot:6px;opacity:1}
  96%{opacity:1}
  100%{--spot:calc(100% - 6px);opacity:0}
}
.live-lane.fx-spot .live-map:not(.is-settled) .live-tile{animation:live-tile-spot .5s ease-out var(--delay,0s) both}
@keyframes live-tile-spot{
  0%{z-index:1}
  1%{z-index:3;filter:brightness(2.2);box-shadow:0 0 18px currentColor}
  100%{z-index:3;filter:none;box-shadow:0 0 12px color-mix(in srgb,currentColor 45%,transparent)}
}

/* Radar */
.live-lane.fx-radar .live-track{--rocket-size:8px;background:var(--t-soft) linear-gradient(var(--t-border),var(--t-border)) center/100% 1px no-repeat}
.live-lane.fx-radar :is(.live-trail,.live-finish){display:none}
.live-lane.fx-radar .live-rail .live-rocket{top:14px;width:8px;height:8px;border-radius:50%;background:var(--fx);box-shadow:0 0 10px var(--fx);animation:none}
.live-lane.fx-radar .live-rail .live-rocket::before,.live-lane.fx-radar .live-rail .live-rocket::after{content:"";display:block;position:absolute;inset:0;width:auto;height:auto;margin:0;border:2px solid var(--fx);border-radius:50%;background:none;animation:live-ripple 1.8s ease-out infinite;transform-origin:center}
.live-lane.fx-radar .live-rail .live-rocket::after{animation-delay:.9s}
@keyframes live-ripple{
  from{transform:scale(1);opacity:.9}
  to{transform:scale(5);opacity:0}
}
.live-lane.fx-radar .live-fxhead{width:2px;background:var(--fx);box-shadow:0 0 12px 2px var(--fx)}
.live-lane.fx-radar .live-fxhead::before{content:"";position:absolute;right:100%;top:0;bottom:0;width:90px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--fx) 30%,transparent))}
.live-lane.fx-radar .live-flyer{width:2px}
.live-lane.fx-radar .live-tile{position:relative;overflow:visible}
.live-lane.fx-radar .live-tile::after{content:"";position:absolute;left:50%;top:50%;width:30px;height:30px;margin:-15px 0 0 -15px;border:2px solid currentColor;border-radius:50%;opacity:0;pointer-events:none}
.live-lane.fx-radar .live-map:not(.is-settled) .live-tile{animation:live-tile-blip .9s ease-out var(--delay,0s) backwards}
.live-lane.fx-radar .live-map:not(.is-settled) .live-tile::after{animation:live-blip-ring .9s ease-out var(--delay,0s)}
@keyframes live-tile-blip{
  0%{opacity:.12}
  1%{opacity:1;filter:brightness(3)}
  100%{opacity:1;filter:none}
}
@keyframes live-blip-ring{
  from{transform:scale(.2);opacity:.9}
  to{transform:scale(2.4);opacity:0}
}

/* Výboj */
.live-lane.fx-bolt .live-track{--rocket-size:16px}
.live-lane.fx-bolt .live-trail{inset:auto 0 auto 0;top:50%;height:2px;margin-top:-1px;border-radius:0;background:repeating-linear-gradient(90deg,var(--fx) 0 5px,transparent 5px 8px);box-shadow:0 0 8px var(--fx);opacity:.9}
.live-lane.fx-bolt .live-finish{width:2px;border-radius:0;background:var(--t-border);opacity:1}
.live-lane.fx-bolt .live-rail .live-rocket,.live-lane.fx-bolt .live-fxhead{top:10px;bottom:auto;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle,#fff 0 25%,var(--fx) 70%);animation:live-zap .14s steps(2) infinite alternate}
@keyframes live-zap{
  from{box-shadow:0 0 10px 3px var(--fx),0 0 24px 6px color-mix(in srgb,var(--fx) 50%,transparent)}
  to{box-shadow:0 0 16px 6px var(--fx),0 0 40px 12px color-mix(in srgb,var(--fx) 40%,transparent)}
}
.live-lane.fx-bolt .live-flyer{width:16px}
.live-bolts{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:5;pointer-events:none}
.live-bolt{fill:none;stroke:#fff;stroke-width:2;stroke-linejoin:round;filter:drop-shadow(0 0 4px var(--fx)) drop-shadow(0 0 10px var(--fx));animation:live-bolt .28s ease-out forwards}
@keyframes live-bolt{
  to{opacity:0}
}
.live-lane.fx-bolt .live-map:not(.is-settled) .live-tile{animation:live-tile-strike .6s ease-out var(--delay,0s) backwards}
.live-lane.fx-bolt .live-map:not(.is-settled) .live-tile.is-wrong{animation-name:live-tile-shock;animation-timing-function:steps(3,end)}
@keyframes live-tile-strike{
  0%{opacity:.3}
  1%{opacity:1;filter:brightness(4);box-shadow:0 0 22px #fff}
  100%{opacity:1;filter:none;box-shadow:none}
}
@keyframes live-tile-shock{
  0%{opacity:.3}
  1%{opacity:1;filter:brightness(3);transform:translateX(-3px);box-shadow:0 0 20px #e0606f}
  33%{transform:translateX(3px)}
  66%{transform:translateX(-2px)}
  100%{filter:none;transform:none;box-shadow:none}
}

/* Trezor */
.live-lane.fx-vault .live-track{--rocket-size:30px}
.live-lane.fx-vault .live-trail{inset:auto 0 auto 0;top:50%;height:2px;margin-top:-1px;border-radius:0;background:linear-gradient(90deg,transparent,var(--fx));opacity:.5}
.live-lane.fx-vault .live-finish{width:2px;border-radius:0;background:var(--t-border);opacity:1}
.live-lane.fx-vault .live-rail .live-rocket,.live-lane.fx-vault .live-fxhead{top:3px;bottom:auto;width:30px;height:30px;border:2px solid var(--fx);border-radius:50%;background:repeating-conic-gradient(var(--fx) 0 4deg,transparent 4deg 30deg),var(--t-surface);box-shadow:0 0 10px color-mix(in srgb,var(--fx) 50%,transparent);animation:none}
.live-lane.fx-vault .live-rail .live-rocket{transform:rotate(calc(var(--progress) * 720deg));transition:transform 1.3s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.live-lane.fx-vault .live-fxhead{animation:live-dial 1.6s linear infinite}
@keyframes live-dial{
  to{transform:rotate(360deg)}
}
.live-lane.fx-vault .live-rail .live-rocket::before,.live-lane.fx-vault .live-fxhead::before{content:"";display:block;position:absolute;top:-7px;right:auto;left:50%;width:4px;height:8px;margin:0 0 0 -2px;border-radius:2px;background:var(--fx);animation:none;transform:none}
.live-lane.fx-vault .live-rail .live-rocket::after,.live-lane.fx-vault .live-fxhead::after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--t-surface)}
.live-lane.fx-vault .live-flyer{width:30px}
.live-lane.fx-vault .live-tile svg{width:20px;height:24px;overflow:visible}
.live-lane.fx-vault .live-map.is-dense .live-tile svg{width:12px;height:14px}
.live-lock-shackle{fill:none;stroke:currentColor;stroke-width:2.4}
.live-lock-body{fill:currentColor}
.live-lane.fx-vault .live-tile.is-correct .live-lock-shackle{transform:translateY(-4px)}
.live-lane.fx-vault .live-map:not(.is-settled) .live-tile{animation:live-tile-lock .5s ease-out var(--delay,0s) backwards}
.live-lane.fx-vault .live-map:not(.is-settled) .live-tile.is-wrong{animation-name:live-tile-locked;animation-timing-function:steps(4,end)}
.live-lane.fx-vault .live-map:not(.is-settled) .live-tile.is-correct .live-lock-shackle{animation:live-shackle-open .3s ease-out var(--delay,0s) backwards}
@keyframes live-tile-lock{
  0%{border-color:var(--t-border);background:var(--t-soft);color:var(--t-muted)}
  40%{transform:scale(1.2)}
  100%{transform:none}
}
@keyframes live-tile-locked{
  0%{border-color:var(--t-border);background:var(--t-soft);color:var(--t-muted)}
  25%{transform:translateX(-3px)}
  50%{transform:translateX(3px)}
  75%{transform:translateX(-2px)}
  100%{transform:none}
}
@keyframes live-shackle-open{
  from{transform:none}
}

/* Razítko */
.live-lane.fx-stamp .live-track{--rocket-size:30px}
.live-lane.fx-stamp .live-trail{inset:auto 0 auto 0;top:50%;height:2px;margin-top:-1px;border-radius:0;background:repeating-linear-gradient(90deg,var(--fx) 0 10px,transparent 10px 16px);opacity:.35}
.live-lane.fx-stamp .live-finish{width:2px;border-radius:0;background:var(--t-border);opacity:1}
.live-lane.fx-stamp .live-rail .live-rocket,.live-lane.fx-stamp .live-fxhead{top:12px;bottom:auto;left:6px;right:auto;width:18px;height:10px;border-radius:4px;background:var(--fx);box-shadow:0 0 8px color-mix(in srgb,var(--fx) 55%,transparent);transition:transform .07s ease-in}
.live-lane.fx-stamp .live-rail .live-rocket::before,.live-lane.fx-stamp .live-fxhead::before{content:"";display:block;position:absolute;left:50%;top:-8px;right:auto;width:6px;height:9px;margin:0 0 0 -3px;border-radius:3px 3px 0 0;background:var(--fx);animation:none;transform:none}
.live-lane.fx-stamp .live-rail .live-rocket::after,.live-lane.fx-stamp .live-fxhead::after{content:"";position:absolute;left:-3px;right:-3px;bottom:-5px;height:6px;border-radius:2px;background:color-mix(in srgb,var(--fx) 65%,#000)}
.live-lane.fx-stamp .live-flyer{width:30px}
.live-lane.fx-stamp .live-flyer.is-hit .live-fxhead{transform:translateY(12px)}
.live-lane.fx-stamp .live-tile{position:relative;overflow:visible}
.live-lane.fx-stamp .live-map:not(.is-dense) .live-tile{font-size:17px;transform:rotate(-3deg)}
.live-lane.fx-stamp .live-tile::after{content:"";position:absolute;inset:-3px;border:2px solid currentColor;border-radius:8px;opacity:0;pointer-events:none}
.live-lane.fx-stamp .live-map:not(.is-settled) .live-tile{animation:live-tile-stamp .5s cubic-bezier(.2,1.4,.4,1) var(--delay,0s) backwards}
.live-lane.fx-stamp .live-map:not(.is-settled) .live-tile::after{animation:live-stamp-ring .5s ease-out var(--delay,0s)}
@keyframes live-tile-stamp{
  0%,1%{border-color:var(--t-border);background:var(--t-soft);color:transparent;transform:none}
  2%{transform:scale(1.9) rotate(-10deg);opacity:0}
  55%{transform:scale(.92) rotate(-3deg);opacity:1}
  100%{transform:rotate(-3deg)}
}
@keyframes live-stamp-ring{
  from{transform:scale(.6);opacity:.8}
  to{transform:scale(1.5);opacity:0}
}
.live-lane:is(.fx-scope,.fx-spot,.fx-radar,.fx-vault,.fx-stamp,.fx-bolt) .live-burst{display:none}

/* Vzhled odhalení výsledku v editoru a v Upravit test: rozbalovací seznam a tlačítko Ukázka (?r=live_demo&style=…) pro zvolenou možnost. */
.editor-live-style>.live-style-select{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:12px}
form .editor-practice-options .live-style-select label{display:grid;flex:1 1 280px;gap:6px;width:auto;max-width:420px;margin:0;padding:0;border:0;border-radius:0;background:none;color:var(--t-text);font-weight:700}
form .editor-practice-options .live-style-select label:hover{border:0}
.live-style-select .button{margin:0}
.live-style-select .button[aria-disabled="true"]{opacity:.45;pointer-events:none}
.live-lane:is(.fx-laser,.fx-scope,.fx-spot,.fx-radar,.fx-vault,.fx-stamp,.fx-bolt).has-map :is(.live-trail,.live-rail,.live-finish){opacity:0}

/* Administrace → Testy (kopírování testů mezi uživateli): výběr uživatele, seznam jeho testů s checkboxy a cílový uživatel; jen tokeny --t-*. */
.adm-copy-source{max-width:520px;margin:0 0 6px}
.adm-card .adm-copy-all{display:flex;align-items:center;gap:10px;margin:14px 0 8px;font-weight:700;cursor:pointer}
.adm-copy-all input,.adm-copy-test input{flex:none;width:17px;height:17px;margin:0;accent-color:var(--t-accent)}
.adm-copy-tests{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:8px;margin:0 0 16px}
.adm-card label.adm-copy-test{display:flex;align-items:flex-start;gap:12px;margin:0;padding:11px 14px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-soft);cursor:pointer}
.adm-card label.adm-copy-test:hover{border-color:var(--t-accent)}
.adm-card label.adm-copy-test:has(input:checked){border-color:var(--t-accent);background:var(--t-accent-soft)}
.adm-copy-test input{margin-top:3px}
.adm-copy-test span{display:grid;gap:2px;min-width:0}
.adm-copy-test small{color:var(--t-muted);font-size:12.5px}
.adm-copy-target{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px}
.adm-card .adm-copy-target label{flex:1 1 260px;max-width:420px;margin:0}
@media(max-width:600px){
  .adm-copy-target .button{width:100%}
}
@media(max-width:430px){
  .adm-tabs:not(.duel-tabs){width:100%}
  .adm-tabs:not(.duel-tabs) button i{display:none}
  body:is([data-theme],:not([data-theme])) .adm-tabs:not(.duel-tabs) .adm-tab.adm-tab.adm-tab.adm-tab.adm-tab.adm-tab{flex:1 1 0;justify-content:center;padding:9px 6px!important;font-size:14px}
}

/* Průběh zkoušky: lesk přejíždějící přes stupně vítězů patří jen raketě (třída na stránce nastavuje live.js). */
.live-board.has-plain-podium .live-podium-step::after{display:none}

/* Průběh zkoušky: místo konfet jemný záblesk v barvě vzhledu kolem skóre, když žák doletí do cíle (jen vzhledy mimo raketu; barva z --glow). */
.live-lane.fx-laser{--glow:#ff4d5e}
.live-lane.fx-spot{--glow:#fde68a}
.live-lane:is(.fx-scope,.fx-radar,.fx-vault,.fx-stamp,.fx-bolt){--glow:var(--fx)}
.live-lane:is(.fx-laser,.fx-scope,.fx-spot,.fx-radar,.fx-vault,.fx-stamp,.fx-bolt) .live-lane-result::before{content:"";position:absolute;inset:-3px -7px;border-radius:999px;opacity:0;pointer-events:none}
.live-lane:is(.fx-laser,.fx-scope,.fx-spot,.fx-radar,.fx-vault,.fx-stamp,.fx-bolt).is-arriving .live-lane-result::before{animation:live-score-glow 1.5s ease-out}
@keyframes live-score-glow{
  0%{opacity:0;box-shadow:0 0 0 0 var(--glow)}
  25%{opacity:1;box-shadow:0 0 20px 6px color-mix(in srgb,var(--glow) 55%,transparent),inset 0 0 0 2px color-mix(in srgb,var(--glow) 70%,transparent)}
  100%{opacity:0;box-shadow:0 0 30px 14px transparent}
}

/* Přihlášení správce jako jiný učitel: pruh nad obsahem */
.impersonation-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0 0;padding:10px 14px;border:1px solid var(--t-accent);border-radius:12px;background:var(--t-accent-soft);color:var(--t-accent-on-soft)}
.impersonation-bar i{font-size:18px}
.impersonation-bar span{flex:1 1 240px;min-width:0}
.impersonation-bar form{margin:0}
.teacher-wide-layout:not([data-theme=""],[data-theme="dark"],[data-theme="colorful"]) .shell>.impersonation-bar{margin-left:clamp(16px,2vw,32px);margin-right:clamp(16px,2vw,32px)}

/* Statistiky tréninků: hledání v seznamu testů a sad */
.practice-stats-search{display:block;width:100%;height:42px;margin:0 0 12px;padding:0 14px;border:1px solid var(--t-field-border);border-radius:10px;background:var(--t-field-bg);color:var(--t-text);font:inherit;font-size:14px}
.practice-stats-search:focus{outline:2px solid var(--t-accent);outline-offset:1px}
.practice-stats-card .practice-stats-empty{padding:10px 2px}

/* Statistiky tréninků: tlačítka v hlavičce (Zobrazit vše pro správce) */
.practice-stats-actions{display:flex;flex-wrap:nowrap;align-items:flex-start;gap:10px;white-space:nowrap}
@media(max-width:600px){
  .practice-stats-actions{flex-wrap:wrap}
}

/* Statistiky tréninků: graf, jak dlouho tréninky trvaly (rozbalí se šipkou v řádku s typickou dobou) */
.practice-duration-toggle{margin-left:auto;display:inline-grid;place-items:center;flex:0 0 auto;width:30px;height:30px;padding:0;border:1px solid var(--t-border);border-radius:9px;background:var(--t-surface);color:var(--t-muted);cursor:pointer}
.practice-duration-toggle:hover{border-color:var(--t-accent);background:var(--t-accent-soft);color:var(--t-accent)}
.practice-duration-toggle i{font-size:12px;transition:transform .15s ease}
.practice-duration-toggle[aria-expanded="true"] i{transform:rotate(180deg)}
.practice-duration-chart{margin:12px 0 0;padding:14px 14px 10px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-soft)}
.practice-duration-chart[hidden]{display:none}
.practice-duration-chart h3{margin:0 0 2px;color:var(--t-text);font-size:14px}
.practice-duration-chart p{margin:0 0 10px;color:var(--t-muted);font-size:12.5px;line-height:1.4}
.practice-duration-cols{display:grid;grid-template-columns:repeat(20,minmax(0,1fr));gap:3px;align-items:end;height:130px}
.practice-duration-col{display:grid;grid-template-rows:14px minmax(0,1fr) 16px;height:100%;min-width:0;text-align:center}
.practice-duration-count{align-self:end;color:var(--t-muted);font-size:10.5px}
.practice-duration-bar{align-self:end;width:100%;border-radius:4px 4px 0 0;background:color-mix(in srgb,var(--t-accent) 38%,var(--t-border))}
.practice-duration-col.is-median .practice-duration-bar{background:var(--t-accent)}
.practice-duration-min{align-self:end;color:var(--t-muted);font-size:10.5px;line-height:16px}
.practice-duration-col.is-median .practice-duration-min{color:var(--t-accent);font-weight:800}
.practice-duration-chart .practice-duration-legend{margin:8px 0 0;font-size:12px}
.practice-duration-legend i{display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:3px;background:var(--t-accent);vertical-align:-1px}
@media(max-width:600px){
  .practice-duration-cols{gap:2px}
  .practice-duration-count,.practice-duration-min{font-size:9px}
}

/* Moje výuka: nadpis Připnuté se kliknutím sbalí na Skryté připnuté */
.teacher-workspace .teacher-group-row[data-group="pinned"]{cursor:pointer}
.teacher-workspace .teacher-group-row[data-group="pinned"]:hover>td{background:var(--t-hover)}
.teacher-workspace .teacher-group-toggle em{font-style:normal}
.teacher-workspace .teacher-group-toggle:focus-visible{outline:2px solid var(--t-accent);outline-offset:3px;border-radius:6px}
.teacher-workspace .teacher-group-chevron{font-size:11px;transition:transform .15s ease}
.teacher-workspace .teacher-group-row.is-collapsed .teacher-group-chevron{transform:rotate(-90deg)}
.teacher-workspace .teacher-group-row.is-collapsed .teacher-group-toggle em{font-style:italic}

/* Horní lišta: ikony blíž k textu (pevný box ikony je 1,1 em, odsazení za ním jen 4 px místo 7 px) */
.topbar nav a .icon-inline{margin-right:4px}

/* Přehled otázek: tlačítko Podrobné vysvětlení v rámečku vysvětlení vpravo (jako v rozboru odpovědí) */
.question-overview-explanation>div{flex:1 1 0}
.question-overview-footer{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px 20px;margin-top:10px}
.question-overview-explanation .question-detail-open{margin:0}
.question-overview-report{display:inline-flex;align-items:center;gap:6px;margin:0;padding:7px 10px;border:0;border-radius:999px;background:transparent;color:var(--t-muted);font:inherit;font-size:14px;cursor:pointer}
.question-overview-report:hover:not(:disabled){background:var(--t-hover);color:var(--t-text)}
.question-overview-report:disabled{cursor:default;opacity:.8}
body:is([data-theme],:not([data-theme])) .question-overview-explanation .question-overview-report.question-overview-report{padding:7px 10px!important;border:0!important;background:transparent!important;box-shadow:none!important;color:var(--t-muted)}
body:is([data-theme],:not([data-theme])) .question-overview-explanation .question-overview-report.question-overview-report:hover:not(:disabled){background:var(--t-hover)!important;color:var(--t-text)}

/* Trénink: Nahlásit chybu pod kartou je stejně velké jako v Přehledu otázek a v rozboru (14 px, odsazení 7/10 px) */
body:is([data-theme],:not([data-theme])) .practice-report-slot .practice-report.practice-report{padding:7px 10px!important;font-size:14px}

/* Editor: Odstranit otázku (text i ikona koše) má stejnou barvu a písmo jako Náhled a Duplikovat */
body:is([data-theme],:not([data-theme])) .editor-question-tools .remove-question{color:var(--t-accent)!important;font-size:13px;font-weight:600}
body:is([data-theme],:not([data-theme])) .editor-question-tools .remove-question i.fa-solid{color:inherit!important}

/* Návod na úzkém telefonu (do 430 px, široká Verdana): tlačítka v textu (.guide-ui) se smějí zalomit a odrážky i rámečky se smrští, nic nepřeteče z rámečku */
@media(max-width:430px){
  .guide-ui{max-width:100%;white-space:normal}
  .guide-note>div,.guide-points li{min-width:0}
}

/* Blokování sady: pole s hodinami je pod sebou s nápovědou a bez dolního odsazení legendy */
.practice-set-block .training-block-field{margin:0 0 8px}
.practice-set-block .practice-set-form-hint{display:block;margin:0}
.practice-set-form .practice-set-block .training-block-field label{display:inline-flex;flex-direction:row;align-items:center;gap:8px;width:auto;margin:0;color:var(--t-text);font-size:14px;font-weight:700}
.practice-set-form .practice-set-block .training-block-field input[type="checkbox"]{flex:none;width:18px;height:18px;margin:0;accent-color:var(--t-accent)}

/* Rozbor odpovědí pro žáky: pruh učitele na stránce Výsledky testu a čekání žáka na odemknutí */
.review-control{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin:0 0 18px;padding:14px 16px;border:1px solid var(--t-border);border-radius:14px;background:var(--t-surface);color:var(--t-text)}
.review-control-state{display:inline-flex;align-items:center;gap:7px;padding:4px 12px;border-radius:999px;background:var(--t-accent-soft);color:var(--t-accent-on-soft);font-size:13px;font-weight:700;white-space:nowrap}
.review-control-text{flex:1 1 260px;min-width:0}
.review-control-text b{display:block;font-size:15px}
.review-control-text small{display:block;color:var(--t-muted);font-size:13px;line-height:1.45}
.review-control-actions{display:flex;flex-wrap:wrap;gap:8px}
.review-control-form{margin:0}
.review-gate-wait{display:inline-flex;align-items:center;gap:10px;margin-top:6px;padding:9px 14px;border:1px dashed currentColor;border-radius:12px;font-weight:650;opacity:.85}

/* Výsledky testu: kolik výsledků vybral filtr */
.results-filter-count{margin:0 0 10px;color:var(--t-muted);font-size:14px}
.results-filter-count b{color:var(--t-text)}

/* Editor: Přegenerovat otázky pomocí AI (jen na počítači): široké okno ve dvou sloupcích, vlevo hledání a výběr otázek, vpravo zadání a odpověď AI; vpravo nahoře A−, A+, celá obrazovka a zavření, text se škáluje přes --regen-scale */
.app-confirm-dialog.question-picker-dialog.regenerate-dialog{--regen-scale:1;position:relative;width:min(calc(100% - 24px),1560px);max-width:none;height:min(94vh,1020px);max-height:94vh}
.regenerate-dialog h2{padding-right:230px}
.regenerate-tools{position:absolute;top:16px;right:16px;display:flex;gap:8px}
.regenerate-tools button{display:grid;place-items:center;min-width:38px;height:38px;margin:0;padding:0 9px;border:1px solid var(--t-border);border-radius:10px;background:var(--t-soft);color:var(--t-text);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.regenerate-tools button:hover:not(:disabled){border-color:var(--t-accent);background:var(--t-accent-soft)}
.regenerate-tools button:disabled{opacity:.4;cursor:not-allowed}
.regenerate-help{margin:6px 0 0;color:var(--t-muted);font-size:calc(14px * var(--regen-scale));line-height:1.5}
.regenerate-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:22px;flex:1 1 auto;min-height:0;margin-top:14px}
.regenerate-left,.regenerate-right{display:flex;flex-direction:column;min-width:0;min-height:0}
.regenerate-search{width:100%;margin:0 0 4px;font-size:calc(16px * var(--regen-scale))}
.regenerate-left .question-picker-list{flex:1 1 auto;min-height:0;max-height:none}
.regenerate-left .question-picker-item[hidden]{display:none}
.question-picker-dialog.regenerate-dialog .question-picker-text{font-size:calc(16px * var(--regen-scale))}
.question-picker-dialog.regenerate-dialog .question-picker-options li{font-size:calc(14px * var(--regen-scale))}
.regenerate-step{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 14px}
.regenerate-step .button{margin:0}
.regenerate-apply:disabled{opacity:.45;cursor:not-allowed}
.regenerate-paste-label{display:flex;flex-direction:column;flex:1 1 auto;gap:6px;min-height:0;margin:0;font-weight:700}
.regenerate-paste{flex:1 1 auto;width:100%;min-height:200px;margin:0;resize:none;font:calc(13px * var(--regen-scale))/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}
.regenerate-status{margin:8px 0 0;color:var(--t-accent);font-size:calc(14px * var(--regen-scale));font-weight:650}
@media(max-width:899px){
  .question-regenerate-open{display:none}
}

/* Přidat otázky z jiného testu: A−, A+ a celá obrazovka jako v okně Přegenerovat (text se škáluje přes --regen-scale) */
.app-confirm-dialog.question-picker-dialog{position:relative}
.question-picker-dialog:not(.regenerate-dialog) h2{padding-right:150px}
.question-picker-dialog .question-picker-text{font-size:calc(15px * var(--regen-scale,1))}
.question-picker-dialog .question-picker-options{font-size:calc(13px * var(--regen-scale,1))}
.question-picker-dialog .question-picker-source{font-size:calc(16px * var(--regen-scale,1))}

/* Přidat otázky z jiného testu (jen počítač a tablet): širší okno, tlačítko Přidat vybrané vedle výběru testu, zavření křížkem vpravo nahoře */
.app-confirm-dialog.question-picker-dialog:not(.regenerate-dialog){width:min(calc(100% - 24px),1100px)}
.question-picker-top{display:flex;align-items:flex-end;gap:14px}
.question-picker-top .question-picker-source{flex:1 1 auto;min-width:0;margin:4px 0 0}
.question-picker-top .question-picker-add{flex:none;margin:0;white-space:nowrap}
.question-picker-top .question-picker-add:disabled{opacity:.45;cursor:not-allowed}
.question-picker-dialog:not(.regenerate-dialog) .question-picker-list{max-height:calc(100vh - 300px)}
@media(max-width:600px){
  .question-picker-open{display:none}
}

/* Pohled Otázky (Průběh zkoušky a Přehled odpovědí, assets/live-matrix.js): tabulka žák × otázka s řádky jako karty, zelenou fajfkou, červeným křížkem, kroužkem známky a pruhem úspěšnosti otázky; jen z --t-*, zelená a červená jsou stejné ve všech motivech. */
.live-matrix{--ok:#1fa97a;--bad:#e4566b;margin:0}
.live-matrix[hidden]{display:none}
.live-board.is-matrix-view .live-lanes{display:none}
.live-board.is-matrix-view .live-empty{display:none}
.live-view-switch{display:inline-grid;grid-template-columns:1fr 1fr;padding:4px;border:1px solid var(--t-border);border-radius:14px;background:var(--t-soft)}
.live-board .live-view-switch button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:auto;min-height:0;padding:9px 18px;border:0;border-radius:10px;background:transparent;box-shadow:none;color:var(--t-muted);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.live-board .live-view-switch button i{color:inherit}
.live-board .live-view-switch button.is-on{background:var(--t-surface);box-shadow:0 1px 2px rgba(0,0,0,.12),0 0 0 1px var(--t-border);color:var(--t-accent-on-soft)}
.live-board .live-view-switch button.is-on i{color:var(--t-accent)}
.live-board .live-view-switch button:focus-visible{outline:2px solid var(--t-accent);outline-offset:2px}
.lx-bar-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin:0 0 14px}
.live-matrix .lx-btn{display:inline-flex;align-items:center;gap:9px;height:40px;min-height:0;padding:0 15px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-surface);box-shadow:none;color:var(--t-text);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.live-matrix .lx-btn:hover{background:var(--t-hover)}
.live-matrix .lx-btn i{color:var(--t-muted)}
.lx-hardest{color:var(--t-muted);font-size:14px}
.lx-hardest i{margin-right:9px;color:var(--bad)}
.lx-hardest b{color:var(--t-text)}
.lx-board{overflow-x:auto;padding:0 0 8px;scrollbar-width:thin;scrollbar-color:var(--t-border) transparent}
.lx-board:focus-visible{outline:2px solid var(--t-accent);outline-offset:2px;border-radius:12px}
.lx-grid{--w:230px;--r:152px;min-width:calc(var(--w) + var(--r) + var(--n) * 44px + 40px);display:flex;flex-direction:column;gap:8px}
.lx-hrow,.lx-row{display:grid;grid-template-columns:var(--w) repeat(var(--n),minmax(38px,1fr)) var(--r);align-items:center;gap:6px}
.lx-hrow{align-items:end;padding:6px 14px 8px;border-radius:14px;background:var(--t-soft)}
.lx-corner,.lx-rh{color:var(--t-muted);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.lx-rh{padding-left:6px}
.lx-qh{display:flex;flex-direction:column;align-items:center;gap:5px;padding:6px 0 4px;border-radius:10px}
.lx-qh b{display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--t-border);border-radius:50%;background:var(--t-surface);color:var(--t-text);font-size:13px}
.lx-qh small{color:var(--t-muted);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.lx-qh small.is-low{color:var(--bad)}
.lx-meter{width:70%;height:5px;border-radius:99px;background:var(--t-border);overflow:hidden}
.lx-meter i{display:block;height:100%;border-radius:inherit;background:var(--ok)}
.lx-meter.is-low i{background:var(--bad)}
.lx-qh.is-hardest b{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 16%,var(--t-surface));color:var(--bad)}
.lx-row{padding:4px 12px;border:1px solid var(--t-border);border-radius:16px;background:var(--t-surface);transition:border-color .2s,transform .2s}
.lx-row:hover{border-color:var(--t-accent);transform:translateY(-1px)}
.lx-row.is-idle{opacity:.6}
.lx-who{position:sticky;left:0;z-index:1;display:flex;align-items:center;gap:12px;min-width:0;background:var(--t-surface)}
.lx-av{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:color-mix(in srgb,hsl(var(--h) 75% 55%) 24%,var(--t-surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,hsl(var(--h) 70% 50%) 35%,transparent);color:color-mix(in srgb,hsl(var(--h) 70% 50%) 75%,var(--t-text));font-size:13px;font-weight:800}
.lx-name{display:flex;flex:1;flex-direction:column;gap:4px;min-width:0}
.lx-name b{overflow:hidden;color:var(--t-text);font-size:14px;white-space:nowrap;text-overflow:ellipsis}
.lx-bar{display:block;height:4px;border-radius:99px;background:var(--t-border);overflow:hidden}
.lx-bar i{display:block;height:100%;border-radius:inherit;background:var(--t-accent)}
.lx-cell{display:grid;place-items:center;height:28px;border:1px solid transparent;border-radius:6px;font-size:13px;font-weight:700}
.lx-cell.is-ok{border-color:#21a67a;background:color-mix(in srgb,#21a67a 20%,var(--t-surface));color:color-mix(in srgb,#21a67a 70%,var(--t-text))}
.lx-cell.is-bad{border-color:#de5a69;background:color-mix(in srgb,#de5a69 18%,var(--t-surface));color:color-mix(in srgb,#de5a69 70%,var(--t-text))}
.lx-cell.is-empty{border:1.5px dashed color-mix(in srgb,var(--t-border) 90%,var(--t-muted))}
.live-matrix .lx-cell i.fa-solid{color:inherit!important}
.lx-res{display:flex;align-items:center;gap:12px;padding-left:6px}
.lx-ring{--c:var(--t-accent);flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:radial-gradient(closest-side,var(--t-surface) 70%,transparent 72%),conic-gradient(var(--c) calc(var(--p) * 1%),var(--t-border) 0)}
.lx-ring b{color:var(--t-text);font-size:15px;font-variant-numeric:tabular-nums}
.lx-ring.g1,.lx-ring.g2{--c:var(--ok)}
.lx-ring.g1 b,.lx-ring.g2 b{color:var(--ok)}
.lx-ring.g3{--c:#e0a31f}
.lx-ring.g3 b{color:#d49a15}
.lx-ring.g4,.lx-ring.g5{--c:var(--bad)}
.lx-ring.g4 b,.lx-ring.g5 b{color:var(--bad)}
.lx-ring.is-live{--c:var(--t-muted);opacity:.85}
.lx-ring.is-live b{color:var(--t-muted);font-size:14px}
.lx-ring.is-none b{color:var(--t-muted)}
.lx-res-t{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.lx-res-t b{color:var(--t-text);font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}
.lx-res:not(.is-done) .lx-res-t b{color:var(--t-muted)}
.lx-res-t small{color:var(--t-muted);font-size:12px;white-space:nowrap}
.lx-divider{display:flex;align-items:center;gap:12px;margin:8px 4px 2px;color:var(--t-muted);font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.lx-divider::after{content:"";flex:1;height:1px;background:var(--t-border)}
.lx-divider i{margin-right:6px;color:var(--t-accent)}
.lx-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:16px 4px 0;color:var(--t-muted);font-size:13px}
.lx-legend span{display:inline-flex;align-items:center;gap:8px}
.lx-legend .lx-cell{display:grid;place-items:center;width:22px;height:22px;border-radius:5px;font-size:11px}
.answer-matrix-page{margin:28px 0 0}
.lx-res{position:sticky;right:0;z-index:1;background:var(--t-surface)}
.lx-rh{position:sticky;right:0;z-index:1;background:var(--t-soft)}
.lx-grid.is-compact{--w:190px;--r:98px;min-width:calc(var(--w) + var(--r) + var(--n) * 24px + 40px)}
.lx-grid.is-compact :is(.lx-hrow,.lx-row){grid-template-columns:var(--w) repeat(var(--n),minmax(20px,1fr)) var(--r);gap:4px}
.lx-grid.is-compact .lx-cell{height:24px;border-radius:5px;font-size:11px}
.lx-grid.is-compact .lx-qh{gap:4px}
.lx-grid.is-compact .lx-qh b{width:22px;height:22px;font-size:11px}
.lx-grid.is-compact .lx-qh small{font-size:10px}
.lx-grid.is-compact .lx-av{width:32px;height:32px;font-size:12px}
.lx-grid.is-compact .lx-ring{width:36px;height:36px}
.lx-grid.is-compact .lx-ring b{font-size:13px}
.lx-grid.is-compact .lx-res{gap:9px}
.lx-grid.is-compact .lx-res-t b{font-size:14px}
.lx-grid.is-compact .lx-res-t small{display:none}
.lx-grid.is-dense{min-width:calc(var(--w) + var(--r) + var(--n) * 13px + 40px)}
.lx-grid.is-dense :is(.lx-hrow,.lx-row){grid-template-columns:var(--w) repeat(var(--n),minmax(10px,1fr)) var(--r);gap:2px}
.lx-grid.is-dense .lx-cell{height:20px;border:0;border-radius:3px}
.lx-grid.is-dense .lx-cell i{display:none}
.lx-grid.is-dense .lx-cell.is-ok{background:color-mix(in srgb,#21a67a 85%,var(--t-surface))}
.lx-grid.is-dense .lx-cell.is-bad{background:color-mix(in srgb,#de5a69 85%,var(--t-surface))}
.lx-grid.is-dense .lx-qh b{width:auto;height:auto;border:0;background:none;font-size:10px}
.lx-grid.is-dense .lx-qh b.is-skipped{visibility:hidden}
.lx-grid.is-dense .lx-qh small{display:none}
.lx-grid.is-dense .lx-meter{width:100%}
@media(max-width:760px){
  .lx-grid{--w:170px;--r:150px}
  .lx-who{gap:9px}
  .lx-av{display:none}
}
@media(prefers-reduced-motion:reduce){
  .lx-row{transition:none}
  .lx-row:hover{transform:none}
}

/* Výsledky testu: název testu má celý řádek, tlačítka (Živý průběh, Přehled odpovědí, Zobrazit úspěšnost, Zpět) jsou pod ním. */
body .dashboard-head:has(>.results-head-actions){flex-direction:column;align-items:flex-start;gap:20px}
body .dashboard-head:has(>.results-head-actions) .results-head-actions{flex-wrap:wrap;width:100%;gap:12px}

/* Pořadí testů: dialog se roztáhne podle počtu testů (do 10 úzký, do 24 širší, víc skoro přes celou obrazovku) a testy jsou ve sloupcích. */
.test-order-dialog{display:flex;flex-direction:column;max-height:calc(100vh - 40px);transition:width .2s}
.test-order-dialog>form{display:flex;flex-direction:column;min-height:0;flex:1}
.test-order-dialog.is-wide{width:min(100%,1000px)}
.test-order-dialog.is-full{width:min(100%,1500px)}
.test-order-dialog .test-order-list{flex:1;min-height:120px;max-height:none;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-content:start;scrollbar-width:thin;scrollbar-color:var(--t-border) transparent}
.test-order-dialog:not(.is-wide):not(.is-full) .test-order-list{grid-template-columns:1fr}
.test-order-dialog .test-order-item{padding:9px 11px}
.test-order-dialog .test-order-item[hidden]{display:none}
.test-order-dialog .test-order-actions{flex:none}
@media(max-width:600px){
  .test-order-overlay{padding:8px}
  .test-order-dialog{padding:18px}
  .test-order-dialog .test-order-list{grid-template-columns:1fr}
}

/* Pořadí testů: A− / A+ v pravém horním rohu mění velikost názvů, celý název je v bublině nad položkou. */
.test-order-dialog{position:relative;--order-scale:1}
.test-order-dialog h2{padding-right:96px}
.test-order-dialog .test-order-item b{font-size:calc(15px*var(--order-scale))}
.test-order-dialog .test-order-position{font-size:calc(13px*var(--order-scale));width:calc(60px*var(--order-scale))}

/* Pořadí testů: menší tlačítka Zrušit a Uložit pořadí, barvy dává .button / .button.secondary podle motivu. */
.test-order-dialog .test-order-actions button{padding:8px 14px;font-size:13px;gap:8px;border-radius:9px}

/* Archiv testů: sbalená sekce pod seznamem Moje testy (skryté testy, tlačítko Obnovit vrátí test mezi koncepty). */
.teacher-archive{margin-top:22px;border:1px solid var(--t-border);border-radius:14px;background:var(--t-surface);color:var(--t-text)}
.teacher-archive>summary{display:flex;align-items:center;gap:10px;padding:13px 16px;cursor:pointer;font-weight:700;list-style:none}
.teacher-archive>summary::-webkit-details-marker{display:none}
.teacher-archive>summary b{padding:1px 9px;border-radius:999px;background:var(--t-accent-soft);color:var(--t-accent-on-soft);font-size:13px}
.teacher-archive>summary small{flex:1;color:var(--t-muted);font-weight:400}
.teacher-archive[open]>summary .teacher-group-chevron{transform:rotate(180deg)}
.teacher-archive-list{display:grid;gap:8px;margin:0;padding:0 16px 16px;list-style:none}
.teacher-archive-list li{display:flex;align-items:center;gap:14px;padding:9px 12px;border:1px solid var(--t-border);border-radius:10px;background:var(--t-soft)}
.teacher-archive-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--t-text);font-weight:600;text-decoration:none}
.teacher-archive-list small{color:var(--t-muted)}
@media(max-width:600px){
  .teacher-archive>summary small{display:none}
  .teacher-archive-list li{flex-wrap:wrap}
}
.teacher-archive-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px 10px}
.teacher-archive-tools label{display:flex;align-items:center;gap:8px;cursor:pointer}
.teacher-archive-tools .button:disabled{opacity:.5;cursor:not-allowed}
.teacher-archive-list li>input{flex:none;margin:0}
.teacher-archive input[type="checkbox"]{flex:none;width:18px;height:18px;min-height:0;margin:0;padding:0;accent-color:var(--t-accent);cursor:pointer}
.teacher-archive-tools label{white-space:nowrap;width:auto}
.teacher-archive-buttons{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.teacher-archive-buttons .button{padding:7px 13px;font-size:13px}

/* Mám kód od učitele: pole v hlavičce katalogu (počítač), tlačítko s oknem (úvod, telefon) a výběr testu při shodném kódu. */
.code-entry-box{display:none}
.code-entry-phone{margin-top:18px}
@media(min-width:761px){
  .page-title:has(.code-entry-box){display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,430px);grid-template-areas:"eyebrow box" "title box" "text box";column-gap:40px;align-items:start}
  .page-title:has(.code-entry-box)>.eyebrow{grid-area:eyebrow}
  .page-title:has(.code-entry-box)>h1{grid-area:title}
  .page-title:has(.code-entry-box)>p:not(.eyebrow){grid-area:text}
  .code-entry-box{display:flex;flex-direction:column;gap:10px;grid-area:box;align-self:center;padding:16px 18px;border:1px solid var(--t-border);border-radius:16px;background:var(--t-surface);color:var(--t-text)}
  .code-entry-phone{display:none}
}
.code-entry-box label{display:flex;align-items:center;gap:9px;margin:0;font-weight:700;color:var(--t-text)}
.code-entry-row{display:flex;gap:10px;align-items:stretch}
.code-entry-row input{flex:1;min-width:0;margin:0;letter-spacing:.18em;font-weight:700;text-align:center}
.code-entry-row .button{flex:none;white-space:nowrap}
.code-entry-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:16px;background:rgba(11,15,30,.62);backdrop-filter:blur(5px)}
.code-entry-dialog{width:min(100%,420px);padding:26px;border:1px solid var(--t-border);border-radius:18px;background:var(--t-surface);color:var(--t-text);box-shadow:0 24px 70px rgba(0,0,0,.4)}
.code-entry-dialog h2{display:flex;align-items:center;gap:10px;margin:0 0 8px;font-size:21px}
.code-entry-dialog p{margin:0 0 16px;color:var(--t-muted);line-height:1.5}
.code-entry-dialog input.access-code-input{margin:0 0 18px;font-size:24px;letter-spacing:.2em;text-align:center;font-weight:700}
.code-entry-actions{display:flex;justify-content:flex-end;gap:10px}
.code-entry-actions .button{padding:9px 16px;font-size:14px}
.code-pick-list{display:grid;gap:10px}
.code-pick-list form{margin:0}
.code-pick-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:12px 14px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-soft);color:var(--t-text);font:inherit;text-align:left;cursor:pointer}
.code-pick-item:hover{border-color:var(--t-accent);background:var(--t-accent-soft)}
.code-pick-item small{color:var(--t-muted)}
@media(max-width:600px){
  .hero-actions:has(.code-entry-open){flex-wrap:wrap;row-gap:12px}
  .hero-actions:has(.code-entry-open)>.button,.hero-actions:has(.code-entry-open)>.text-link{white-space:nowrap}
  .hero-actions .code-entry-open{flex:1 0 100%}
}
body .code-entry-box label i,body .code-entry-dialog h2 i,body .code-entry-open i{color:#f5b82e!important}

/* Administrace: nastavení kódu na úvodní stránce (hlášky s tlačítkem Výchozí text, seznam zablokovaných adres). */
.adm-card label small{display:block;margin-top:4px;font-size:12px;line-height:1.4}
.code-text-field{display:flex;gap:12px;align-items:flex-end;margin-top:14px}
.code-text-field label{flex:1;margin:0}
.code-text-field .button{flex:none;padding:10px 14px;font-size:13px}
.code-blocked{margin-top:4px}
.code-blocked p{margin:0;color:var(--t-muted)}
.code-blocked-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:8px;padding:9px 12px;border:1px solid var(--t-border);border-radius:10px;background:var(--t-soft)}
.code-blocked-row code{font-weight:700}
.code-blocked-row span{flex:1;min-width:180px;color:var(--t-muted);font-size:13px}
.code-blocked .button{padding:7px 13px;font-size:13px}
@media(max-width:600px){
  .code-text-field{flex-direction:column;align-items:stretch}
}
.code-limits{align-items:start!important}
.code-text-field~.adm-actions{margin-top:20px}

/* Souhrn testu (?r=results_summary): čísla, sloupcový graf známek, srovnání tříd, nejtěžší otázky a trénink před psaním. Sloupce jsou jedním odstínem (--rs-1), žlutá (--rs-4) označuje den psaní; popisky nesou identitu, ne barva. */
.rs-kpis,.rs-grid{--rs-1:#2a78d6;--rs-4:#eda100}
body:is([data-theme="dark"],[data-theme="aiflow"],[data-theme="ember"],[data-theme="navy"]) :is(.rs-kpis,.rs-grid){--rs-1:#3987e5;--rs-4:#c98500}
.rs-sub{margin:4px 0 0;color:var(--t-muted)}
.rs-filters{align-items:center;flex-wrap:wrap;margin:0 0 18px}
.rs-filters select{flex:0 1 260px;min-width:0;margin:0}
.rs-switch{display:inline-flex;padding:3px;border:1px solid var(--t-border);border-radius:11px;background:var(--t-soft)}
.rs-switch label{margin:0;cursor:pointer}
.rs-switch input{position:absolute;width:1px;height:1px;margin:0;opacity:0}
.rs-switch span{display:block;padding:7px 14px;border-radius:8px;color:var(--t-muted);font-size:14px;font-weight:600}
.rs-switch input:checked+span{background:var(--t-accent-soft);color:var(--t-accent-on-soft)}
.rs-switch input:focus-visible+span{outline:2px solid var(--t-accent);outline-offset:1px}
.rs-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:0 0 18px}
.rs-kpi{padding:12px 14px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-surface);color:var(--t-text)}
.rs-kpi small{display:block;color:var(--t-muted);font-size:12px}
.rs-kpi b{display:block;font-size:26px;line-height:1.25;font-variant-numeric:tabular-nums}
.rs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.rs-card{padding:16px 18px;border:1px solid var(--t-border);border-radius:14px;background:var(--t-surface);color:var(--t-text)}
.rs-card h2{margin:0 0 4px;font-size:17px}
.rs-card p{margin:0 0 12px;color:var(--t-muted);font-size:13px}
.rs-columns{display:flex;align-items:flex-end;gap:14px;height:190px;padding:0 6px;border-bottom:1px solid var(--t-border)}
.rs-column{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px;height:100%}
.rs-column b{font-size:13px;font-weight:400;font-variant-numeric:tabular-nums;color:var(--t-text)}
.rs-column i{display:block;width:100%;max-width:64px;border-radius:4px 4px 0 0;background:var(--rs-1)}
.rs-axis{display:flex;gap:14px;padding:6px 6px 0}
.rs-axis b{flex:1;text-align:center;font-size:13px;font-weight:400;color:var(--t-muted)}
.rs-class{margin:0 0 14px}
.rs-class-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px;font-size:14px}
.rs-class-head em{font-style:normal;color:var(--t-muted);font-size:12px}
.rs-track{height:12px;border-radius:6px;background:var(--t-soft);overflow:hidden}
.rs-track i{display:block;height:100%;border-radius:0 6px 6px 0;background:var(--rs-1)}
.rs-col{display:grid;gap:16px;align-content:start;min-width:0}
.rs-warn{margin-top:6px;font-size:12px;color:#d98f00}
.rs-star{color:#d98f00;text-decoration:none;cursor:help}
.rs-question{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--t-border);font-size:14px}
.rs-question strong{flex:none;font-variant-numeric:tabular-nums;color:#e34948}
.rs-link{display:inline-block;margin-top:10px;font-size:13px;font-weight:700;color:var(--t-accent);text-decoration:none}
.rs-train{display:flex;align-items:flex-end;gap:6px;height:64px;margin:6px 0 4px}
.rs-train i{flex:1;border-radius:3px 3px 0 0;background:var(--rs-1);opacity:.85}
.rs-train i.is-exam{background:var(--rs-4);opacity:1}
.rs-train-axis{display:flex;justify-content:space-between;font-size:12px;color:var(--t-muted)}
.rs-card .rs-train-total{margin:10px 0 0}
.rs-table{margin-top:18px}
.rs-table summary{cursor:pointer;font-weight:700;color:var(--t-accent)}
.rs-table table{width:auto;min-width:260px;margin:10px 18px 0 0;display:inline-table;border-collapse:collapse;font-size:14px}
.rs-table th,.rs-table td{padding:6px 12px;border-bottom:1px solid var(--t-border);text-align:left}
@media(max-width:600px){
  .rs-filters select{flex:none}
}
@media(max-width:760px){
  .rs-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rs-grid{grid-template-columns:minmax(0,1fr)}
}

/* Administrace: tlačítko Stáhnout zálohu má text na jednom řádku, popis vedle se zalamuje. */
.adm-backup-now .button{flex:none;white-space:nowrap}
.adm-backup-now p{flex:1 1 0;min-width:0}

/* Pořadí testů na celou obrazovku: okno se roztáhne na celou šířku a výšku. */
.test-order-overlay:fullscreen{padding:16px}
.test-order-overlay:fullscreen .test-order-dialog{width:100%;max-width:none;max-height:calc(100vh - 32px);height:calc(100vh - 32px)}

/* Datum vytvoření a poslední změny testu v hlavičce editoru */
.editor-dates{margin:4px 0 0;color:var(--t-muted);font-size:14px}

/* Dopisování testu: zaškrtávátko vedle data psaní na startu a štítek ve Výsledcích */
.start-date-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}
.start-date-row>label{margin:0}
.start-makeup{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid var(--t-field-border);border-radius:10px;background:var(--t-field-bg);color:var(--t-text);font-weight:600;cursor:pointer;white-space:nowrap}
.start-makeup input{width:18px;height:18px;margin:0;padding:0;flex:none}
.start-makeup i{color:var(--t-muted)}
.makeup-badge{display:inline-flex;align-items:center;gap:5px;margin-left:6px;padding:2px 9px;border-radius:999px;background:var(--t-accent-soft);color:var(--t-accent-on-soft);font-size:12px;font-weight:700;white-space:nowrap}
.lx-makeup{margin-left:4px;color:var(--t-accent);font-size:.8em}
.results-makeup-filter{display:inline-flex;align-items:center;gap:8px;margin:0;padding:0 14px;min-height:44px;border:1px solid var(--t-field-border);border-radius:10px;background:var(--t-field-bg);color:var(--t-text);font-weight:600;cursor:pointer;white-space:nowrap}
.results-makeup-filter input{width:18px;height:18px;margin:0;padding:0;flex:none}

/* Administrace: karta Velikost databáze (tabulky od největší s pruhem podílu) */
.adm-wide{grid-column:1/-1}
.adm-size-list li{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,2fr) 8.5em 5.5em;gap:14px;align-items:center}
.adm-size-name{overflow:hidden;text-overflow:ellipsis;font-weight:600}
.adm-size-bar{display:block;height:8px;border-radius:999px;background:var(--t-soft);overflow:hidden}
.adm-size-bar i{display:block;height:100%;border-radius:999px;background:var(--t-accent)}
.adm-size-rows{color:var(--t-muted);font-size:13px;text-align:right;white-space:nowrap}
.adm-size-bytes{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:760px){
  .adm-size-list li{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name bytes" "rows rows" "bar bar";row-gap:6px}
  .adm-size-name{grid-area:name}
  .adm-size-bytes{grid-area:bytes}
  .adm-size-rows{grid-area:rows}
  .adm-size-bar{grid-area:bar}
}
.adm-size-name[title]{cursor:help;text-decoration:underline dotted var(--t-muted);text-underline-offset:4px}

/* Rozpis tříhodinového intervalu ve Statistikách tréninků (okno po kliknutí na interval dne nebo číslo v tabulce Kdy se trénuje) */
.practice-stats-slots li[data-practice-slot]{padding:3px 6px;margin:0 -6px;border-radius:8px;cursor:pointer}
.practice-stats-slots li[data-practice-slot]:hover{background:var(--t-hover)}
.practice-stats-slots li[data-practice-slot]:focus-visible,.practice-heat-open:focus-visible{outline:2px solid var(--t-accent);outline-offset:1px}
.practice-stats .practice-stats-heatmap tbody tr td button.practice-heat-open{display:block;width:100%;height:100%;min-height:30px;padding:0;border:0;border-radius:inherit;background:transparent;color:inherit;font:inherit;font-weight:inherit;box-shadow:none;cursor:pointer}
.practice-stats .practice-stats-heatmap tbody tr td:has(button.practice-heat-open):hover{outline:2px solid var(--t-accent);outline-offset:1px}
.practice-slot-dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;text-align:left}
.pslot-sub{margin:0 0 16px;color:var(--t-muted);font-size:13px}
.pslot-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 14px}
.pslot-kpi{padding:10px 12px;border:1px solid var(--t-border);border-radius:12px;background:var(--t-soft)}
.pslot-kpi small{display:block;color:var(--t-muted);font-size:12px}
.pslot-kpi b{font-size:24px;font-variant-numeric:tabular-nums}
.pslot-block{margin:0 0 14px}
.pslot-block h3{margin:0 0 6px;font-size:14px}
.pslot-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.pslot-list li{display:grid;grid-template-columns:minmax(0,13em) minmax(0,1fr) 3ch;align-items:center;gap:10px;font-size:13px}
.pslot-list li b{text-align:right;font-variant-numeric:tabular-nums}
.pslot-bar{display:block;height:8px;border-radius:999px;background:linear-gradient(to right,var(--t-accent) var(--share),var(--t-soft) var(--share))}
.pslot-warning{margin:0 0 14px;padding:10px 12px;border:1px solid var(--t-border);border-left:4px solid #e0a43a;border-radius:10px;background:var(--t-soft);color:var(--t-text);font-size:13px}
.pslot-note{margin:0 0 10px;color:var(--t-muted);font-size:13px}
.pslot-own{margin:0 0 14px;padding:8px 12px;border-radius:10px;background:var(--t-accent-soft);color:var(--t-accent-on-soft);font-size:13px;font-weight:600}

/* Podrobné vysvětlení na celou obrazovku: okno se roztáhne, text má víc místa */
.question-detail-modal:fullscreen{padding:24px}
.question-detail-modal:fullscreen .test-info-dialog.question-detail-dialog{width:min(calc(100vw - 48px),1400px);max-height:calc(100vh - 48px)}

/* Ukázka průběhu: výběr vzhledu odhalení vedle výběru pohledu (na úzkém telefonu pod sebou) */
.live-demo-form{flex:0 0 auto;max-width:100%}
.live-demo-form select{width:auto}
@media(max-width:600px){
  .live-demo-form{flex-wrap:wrap}
  .live-demo-form select{flex:1 1 100%;width:100%;min-width:0}
}
.pslot-list li span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm-size-errors{margin:6px 0 0;color:var(--t-muted);font-size:12px;overflow-wrap:anywhere}

/* Hlavička editoru: odkazy a tlačítka vpravo zůstávají na jednom řádku, datum „Naposledy změněno“ je na druhém řádku */
.editor-head>div:last-child :is(.text-link,.button,button){white-space:nowrap}
.editor-head .editor-dates{line-height:1.5}

/* QR kód testu: přístupový kód vedle QR kódu */
.test-qr-stage .test-qr-code{margin:0;color:#18213b!important;font-size:18px;text-align:center}
.test-qr-stage .test-qr-code[hidden]{display:none}
.test-qr-stage .test-qr-code b{font:800 34px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.12em}
.test-qr-stage:fullscreen .test-qr-code{font-size:max(18px,3vh)}
.test-qr-stage:fullscreen .test-qr-code b{font-size:max(40px,8vh)}

/* Výsledky: Zápis známek (známka hned za jménem, řazení podle příjmení) */
.results-table.is-grades th:nth-child(7),.results-table.is-grades td:nth-child(7){text-align:left}
.results-table.is-grades th:nth-child(3),.results-table.is-grades td:nth-child(3){text-align:center}

/* Moje skupiny: pole se skupinami přes celou šířku karty */
.grading-settings input[name="groups"]{max-width:none;width:100%}

/* Průběh zkoušky: Radar na telefonu (do 760 px) – vlna a paprsek se ořežou na dráhu, aby nepřesahovaly kartu */
@media(max-width:760px){
  .live-lane.fx-radar .live-track{overflow:hidden}
}

/* Souboj: pruh s výsledkem otázky – čára dole ukazuje, jak dlouho ještě zůstane na obrazovce */
.duel-result{position:relative;overflow:hidden}
.duel-result-time{position:absolute;left:0;right:0;bottom:0;height:5px;background:rgba(255,255,255,.18)}
.duel-result-time[hidden]{display:none}
.duel-result-time i{display:block;width:100%;height:100%;background:rgba(255,255,255,.7);transition:width .2s linear}

/* Souboj: okna s pořadím – pevné záhlaví, tělo se posouvá jen když se nevejde, čára odpočtu je vždy dole; dlouhé pořadí jde do sloupců (duel.js, fitRanking) */
.duel-overlay-body{flex:1 1 auto;min-height:0;padding-bottom:var(--duel-pad-b);overflow:hidden auto;scrollbar-width:thin;scrollbar-color:var(--t-border) transparent}
.duel-overlay-body::-webkit-scrollbar{width:8px}
.duel-overlay-body::-webkit-scrollbar-thumb{border-radius:99px;background:var(--t-border)}
.duel-overlay-body::-webkit-scrollbar-track{background:transparent}
.duel-overlay-card.has-cols{width:min(calc(var(--duel-cols) * var(--duel-col-w) + 2 * var(--duel-pad-x)),100%)}
.duel-overlay-card.has-cols .duel-overlay-list:not(.is-mine){grid-template-columns:repeat(var(--duel-cols),minmax(0,1fr));grid-template-rows:repeat(var(--duel-rows),auto);grid-auto-flow:column;column-gap:14px}
.duel-overlay-card.is-compact .duel-overlay-list{gap:6px}
.duel-overlay-card.is-compact .duel-overlay-list li{padding:7px 14px;gap:10px;font-size:17px}
.duel-overlay-card.is-dense .duel-overlay-list{gap:4px}
.duel-overlay-card.is-dense .duel-overlay-list li{padding:4px 12px;gap:8px;font-size:14px}

/* Hodnocení sady pro trénink: čtyři hranice známek ve formuláři sady */
.practice-set-grading-rows{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:10px}
.practice-set-grading-rows label{display:flex;flex-direction:column;gap:6px;margin:0}
.practice-set-grading-input{display:flex;align-items:center;gap:6px;color:var(--t-muted)}
.practice-set-grading-input input{width:76px;min-width:0}
.practice-set-grading:not(:has(input[name="use_custom_grading"]:checked)) .practice-set-grading-input{opacity:.5}
[data-set-grading-fields][hidden]{display:none}
.practice-set-grading-mode{display:block;margin-top:10px;max-width:340px}
.practice-set-grading-preview{color:var(--t-muted);min-height:1.2em}
@media (max-width:600px){
  .practice-set-grading-rows{grid-template-columns:repeat(2,minmax(0,1fr))}
}
