/* The one marathon design, for all twenty-four.
 *
 * Before this there were twenty-four stylesheets in eight visual families —
 * the same story as the 97 header wordings, at the level of design. One
 * sheet now, served from /styles/ and cached across every marathon page the
 * reader walks.
 *
 * The palette is the site's: the variable *names* below are the ones
 * styles/theme.css re-declares under [data-theme="dark"] at (0,2,0)
 * specificity, which is the whole dark-mode mechanism — a page that invents
 * its own names is a page the switch cannot reach. Only light values are
 * written here, and dark comes from the theme sheet, the same arrangement as
 * every vocabulary page.
 *
 * Direction is derived, not styled: everything is logical properties, and
 * the pages set dir on <html>. The two deliberate exceptions are marked.
 */
:root{
  --ink:#182338; --ink2:#3d4658; --paper:#f6f4ef; --card:#ffffff;
  --azul:#245ba8; --azul-d:#183f74; --azul-l:#eaf1fb;
  --green:#2e7d54; --green-l:#e7f4ec; --red:#c23b2f; --red-l:#fbe9e7;
  --amber:#a9720c; --amber-l:#fbf0d8;
  --line:#e7e2d6; --muted:#6a7183;
  --serif:'Frank Ruhl Libre',Georgia,'PT Sans',serif;
  --sans:'Assistant','PT Sans',system-ui,sans-serif;
  --shadow:0 2px 10px rgba(24,40,74,.06); --shadow-h:0 6px 20px rgba(24,40,74,.12);
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--paper);
 line-height:1.6;font-size:18px}
main{max-width:1080px;margin:0 auto;padding:8px 18px 72px}
a{color:var(--azul-d)}

/* ---- the head of the page ------------------------------------------ */
.mhero h1{font-family:var(--serif);font-size:1.9rem;margin:18px 0 4px}
.mhero .sub{color:var(--ink2);margin:0 0 10px;max-width:64ch}
.mstats{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px}
.mstat{background:var(--card);border:1px solid var(--line);border-radius:20px;
 padding:3px 13px;font-size:.86rem;color:var(--ink2);box-shadow:var(--shadow)}
.mstat b{color:var(--azul-d)}

/* the way back, and the only one: the crumb above the title, like the
   vocabulary's title bar — a faint pill so it reads as a control */
.mcrumb{display:inline-flex;align-items:center;gap:6px;margin-top:16px;
 background:var(--card);border:1px solid var(--line);border-radius:20px;
 padding:3px 13px;font-size:.86rem;text-decoration:none;color:var(--ink2)}
.mcrumb:hover{border-color:var(--azul);color:var(--azul-d)}

/* ---- the tabs: the same segmented control the vocabulary uses ------- */
.seg{display:flex;background:var(--card);border:1.5px solid var(--line);
 border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}
.seg a,.seg button{flex:1;text-align:center;padding:9px 6px;font-size:.98rem;
 font-weight:700;font-family:var(--sans);border:0;background:none;cursor:pointer;
 color:var(--ink2);text-decoration:none;line-height:1.35}
.seg .on{background:var(--azul);color:#fff}
.mtabs{margin:16px 0 22px;max-width:560px}

/* ---- the tense tiles ------------------------------------------------ */
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
 gap:14px;margin:14px 0 6px}
a.ttile{display:block;background:var(--card);border:1px solid var(--line);
 border-radius:14px;padding:14px 16px 12px;text-decoration:none;color:var(--ink);
 box-shadow:var(--shadow);transition:.14s}
a.ttile:hover{box-shadow:var(--shadow-h);border-color:var(--azul);transform:translateY(-1px)}
.ttile .tn{font-family:var(--serif);font-size:1.18rem;color:var(--azul-d);
 font-weight:700;line-height:1.3}
.ttile .tl{color:var(--ink2);font-size:.9rem;margin-top:1px}
.ttile .tx{color:var(--muted);font-size:.84rem;margin-top:7px;line-height:1.45;
 display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ttile .tgo{color:var(--azul);font-size:.84rem;font-weight:700;margin-top:8px}
h2.msec{font-family:var(--serif);font-size:1.35rem;margin:30px 0 6px;
 padding-bottom:6px;border-bottom:2px solid var(--line)}

/* ---- the conjugation table ------------------------------------------ */
.tablewrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);
 border-radius:14px;box-shadow:var(--shadow);margin:14px 0}
table.mtab{border-collapse:collapse;width:100%;min-width:560px}
.mtab th,.mtab td{padding:8px 12px;text-align:start;border-bottom:1px solid var(--line);
 vertical-align:top}
.mtab thead th{background:var(--azul-l);color:var(--azul-d);font-size:.9rem;
 position:sticky;top:0}
.mtab thead th small{display:block;font-weight:400;color:var(--ink2);font-size:.78rem}
.mtab tbody tr:last-child td,.mtab tbody tr:last-child th{border-bottom:0}
.mtab tbody th{font-weight:700;white-space:nowrap}
.mtab tbody th .inf{color:var(--azul-d)}
.mtab tbody th .gl{display:block;font-weight:400;color:var(--muted);font-size:.8rem;
 max-width:15ch;white-space:normal}
.mtab td .tr{display:block;color:var(--muted);font-size:.78rem}
/* the language being learned is isolated in its own direction — the same
   <bdi>-family reasoning as the note column, done with dir on the cell */
.mtab td .f{font-weight:600}
.spk{border:0;background:none;cursor:pointer;font-size:.9rem;padding:0 2px;opacity:.75}
.spk:hover{opacity:1}

/* ---- the guide ------------------------------------------------------ */
.guide{margin-top:6px}
.gcard{background:var(--card);border:1px solid var(--line);border-radius:14px;
 padding:6px 20px 14px;box-shadow:var(--shadow);margin:14px 0}
/* the prose inherited from the old pages arrives with its own class names;
   inside .legacy only element selectors are styled, so it reads in the new
   skin whatever it was called before */
.legacy h2,.legacy h3{font-family:var(--serif);margin:16px 0 6px}
.legacy h2{font-size:1.2rem}.legacy h3{font-size:1.05rem;color:var(--azul-d)}
.legacy p{margin:8px 0}
.legacy table{border-collapse:collapse;margin:10px 0;max-width:100%}
.legacy th,.legacy td{border:1px solid var(--line);padding:5px 10px;font-size:.92rem;
 text-align:start}
.legacy th{background:var(--azul-l);color:var(--azul-d)}
.legacy ul{padding-inline-start:22px}
/* the inherited class names are lg-prefixed at render time, so a site-wide
   rule written for the old pages cannot reach them */
.legacy .lg-card,.legacy .lg-sec{background:none;border:0;padding:0}
.legacy b{color:var(--azul-d)}
.gex{color:var(--ink2);font-size:.95rem;margin:6px 0 0}

/* ---- practice: the setup ------------------------------------------- */
.setup fieldset{border:1px solid var(--line);border-radius:14px;background:var(--card);
 box-shadow:var(--shadow);margin:14px 0;padding:10px 16px 14px}
.setup legend{font-weight:800;font-size:.95rem;color:var(--azul-d);padding:0 8px}
.frow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.fchip{border:1.5px solid var(--line);background:var(--paper);border-radius:20px;
 padding:4px 14px;font-size:.92rem;font-family:var(--sans);cursor:pointer;color:var(--ink2)}
.fchip[aria-pressed="true"]{background:var(--azul);border-color:var(--azul);color:#fff;
 font-weight:700}
.fmini{border:0;background:none;color:var(--azul-d);font-size:.82rem;cursor:pointer;
 text-decoration:underline;padding:2px 4px}
.fnote{color:var(--muted);font-size:.84rem;margin-top:6px}
.seg.small{max-width:420px;margin-top:8px}
.btn{display:inline-block;border:0;border-radius:12px;background:var(--azul);color:#fff;
 font-family:var(--sans);font-weight:800;font-size:1.02rem;padding:11px 26px;cursor:pointer;
 box-shadow:var(--shadow);text-decoration:none;text-align:center;box-sizing:border-box}
.btn:hover{background:var(--azul-d)}
.btn.big{width:100%;max-width:420px;font-size:1.12rem;padding:13px 26px}
.btn.ghost{background:var(--card);color:var(--azul-d);border:1.5px solid var(--line)}
.btn.ghost:hover{background:var(--azul-l)}
.setupwarn{color:var(--red);font-size:.92rem;margin-top:8px}

/* ---- practice: the quiz -------------------------------------------- */
.qbar{display:flex;align-items:center;gap:12px;margin:14px 0 10px}
.qnum{font-size:.9rem;color:var(--ink2);white-space:nowrap}
.qprog{flex:1;height:6px;border-radius:3px;background:var(--line);overflow:hidden}
.qprog i{display:block;height:100%;background:var(--azul);border-radius:3px;
 transition:width .25s}
.qcard{background:var(--card);border:1px solid var(--line);border-radius:16px;
 padding:20px 22px;box-shadow:var(--shadow)}
.qmeta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.qtag{border-radius:20px;padding:2px 12px;font-size:.84rem;font-weight:700}
.qtag.t{background:var(--amber-l);color:var(--amber)}
.qtag.p{background:var(--azul-l);color:var(--azul-d)}
.qtag.v{background:var(--green-l);color:var(--green)}
.qtag .g{font-weight:400;opacity:.85}
.qtext{font-size:1.3rem;font-family:var(--serif);margin:6px 0 16px;line-height:1.5}
.qtext .blank{display:inline-block;min-width:4.5ch;border-bottom:2.5px solid var(--azul);
 margin:0 3px;text-align:center;color:var(--azul-d);font-weight:700}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.opts button{border:1.5px solid var(--line);background:var(--paper);border-radius:12px;
 padding:11px 14px;font-size:1.05rem;font-family:var(--sans);cursor:pointer;color:var(--ink)}
.opts button:hover{border-color:var(--azul);background:var(--azul-l)}
.opts button.ok{background:var(--green-l);border-color:var(--green);color:var(--green);font-weight:800}
.opts button.bad{background:var(--red-l);border-color:var(--red);color:var(--red)}
.opts button:disabled{cursor:default}
.tywrap{display:flex;gap:10px;flex-wrap:wrap}
.tywrap input{flex:1;min-width:200px;border:1.5px solid var(--line);border-radius:12px;
 padding:10px 14px;font-size:1.1rem;font-family:var(--sans);background:var(--paper);
 color:var(--ink)}
.tywrap input:focus{outline:2px solid var(--azul);border-color:var(--azul)}
.fb{margin-top:14px;border-radius:12px;padding:10px 16px;font-size:1.02rem}
.fb.ok{background:var(--green-l);color:var(--green);font-weight:700}
.fb.bad{background:var(--red-l);color:var(--red)}
.fb .ans{font-weight:800}
.qnav{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}

/* ---- practice: the score ------------------------------------------- */
.scorebig{font-family:var(--serif);font-size:2.3rem;color:var(--azul-d);margin:10px 0 2px}
.mistlist{margin-top:14px}
.mistlist table{width:100%;border-collapse:collapse}
.mistlist td{padding:6px 10px;border-bottom:1px solid var(--line);font-size:.95rem}
.mistlist .was{color:var(--red);text-decoration:line-through}
.mistlist .ans{color:var(--green);font-weight:700}

/* ---- small screens -------------------------------------------------- */
@media (max-width:560px){
  main{padding:6px 12px 60px}
  .mhero h1{font-size:1.5rem}
  .opts{grid-template-columns:1fr}
  .qtext{font-size:1.15rem}
  .mtabs{max-width:none}
}
