/* ════════════════════════════════════════════════════════════════════
   anathesi.css — η κονσόλα ανάθεσης (js/anathesi.js).
   Μόνο tokens του θέματος (--card, --line, --fg, --muted, --terra…): ίδια
   όψη με τις υπόλοιπες σελίδες, σε ανοιχτό και σκοτεινό θέμα. Όλα κάτω
   από .ax / .ax-page / .ax-acard, ώστε να μη διαρρέουν σε άλλες οθόνες.
   ════════════════════════════════════════════════════════════════════ */
.ax-page .sc-cta--ghost, .as-pop .sc-cta--ghost {
  background:transparent; color:var(--fg); border:1px solid var(--line-bold); box-shadow:none; }
.ax-page .sc-cta--ghost:hover, .as-pop .sc-cta--ghost:hover { border-color:var(--terra); color:var(--fg); }
.ax-page .sc-cta[disabled] { opacity:.45; cursor:not-allowed; box-shadow:none; }
.ax-page .sc-mini { min-height:36px; }
.ax-page .sc-mini--danger, .ax-acard .sc-mini--danger { color:#D04452; border-color:color-mix(in srgb, #D04452 34%, transparent); }
.ax-page .sc-mini--danger:hover { background:color-mix(in srgb, #D04452 12%, transparent); }
.ax-page .sc-mini--danger:focus-visible { outline:2px solid #D04452; outline-offset:2px; }

.ax { display:flex; flex-direction:column; gap:18px; }
.ax * { box-sizing:border-box; }
/* τα κουμπιά δεν κληρονομούν γραμματοσειρά από μόνα τους */
.ax button, .ax input, .ax select { font-family:var(--sans); }

/* ── βήματα ── */
.ax-rail { list-style:none; margin:0; padding:0; display:flex; gap:8px; flex-wrap:wrap; }
.ax-rail__s { flex:1 1 150px; }
.ax-rail__b { width:100%; display:flex; align-items:center; gap:10px; padding:10px 14px; border-radius:14px;
  background:var(--sink); border:1px solid var(--line); color:var(--muted); font-family:var(--sans); font-weight:700;
  font-size:14px; cursor:pointer; text-align:left; min-height:46px; }
.ax-rail__b[disabled] { cursor:default; }
.ax-rail__s.on .ax-rail__b { background:var(--card); color:var(--fg); border-color:var(--terra); box-shadow:0 8px 22px var(--terra-soft); }
.ax-rail__s.past .ax-rail__b { color:var(--fg); }
.ax-rail__s.past .ax-rail__b:hover { border-color:var(--terra); }
.ax-rail__n { width:26px; height:26px; flex:none; border-radius:50%; display:grid; place-items:center; font-size:12.5px;
  background:color-mix(in srgb, var(--fg) 9%, transparent); color:var(--fg-70); }
.ax-rail__s.on .ax-rail__n { background:var(--acc-fill); color:var(--on-acc); }
.ax-rail__s.past .ax-rail__n { background:color-mix(in srgb, var(--sage) 22%, transparent); color:var(--sage); }

/* ── κείμενα ── */
.ax-pane { display:flex; flex-direction:column; gap:14px; min-width:0; }
.ax-h { font-family:var(--serif); font-weight:800; font-size:clamp(22px,3.2vw,28px); line-height:1.15; margin:0; }
.ax-h--sm { font-size:clamp(19px,2.6vw,23px); }
.ax-p { margin:0; color:var(--fg-70); font-size:14.5px; line-height:1.55; max-width:68ch; }
.ax-p--sm { font-size:12.5px; color:var(--muted); }
.ax-hint { margin:0; padding:10px 14px; border-radius:12px; font-size:13px; line-height:1.5; color:var(--fg-70);
  background:var(--terra-soft); border:1px solid color-mix(in srgb, var(--terra) 24%, transparent); }
.ax-group { font-family:var(--disp); font-weight:500; font-size:12px; letter-spacing:.12em; color:var(--muted); margin-top:4px; }
.ax-link { background:none; border:0; padding:4px 2px; cursor:pointer; color:var(--terra-dk); font-family:var(--sans); font-weight:700; font-size:13px; }
.ax-nav { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-top:4px; }
.ax-bar { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.ax-bar__t { display:flex; flex-direction:column; gap:3px; min-width:0; flex:1 1 220px; }

/* ── σήματα παιχνιδιών (SYM_GAME_MARKS / tl-*) ── */
.ax-mark { flex:none; display:grid; place-items:center; width:52px; height:52px; border-radius:14px;
  background:var(--terra-soft); color:var(--terra-dk); }
.ax-mark__illu { display:block; width:62%; height:62%; }
.ax-mark__illu svg { width:100%; height:100%; display:block; }
.ax-mark--sm { width:40px; height:40px; border-radius:11px; }
.ax-mark--xs { width:26px; height:26px; border-radius:8px; }

/* ── τα παιχνίδια που μπήκαν ── */
.ax-items { display:flex; flex-direction:column; gap:10px; }
.ax-item { display:grid; grid-template-columns:auto 1fr auto; gap:14px; align-items:center; padding:12px 14px;
  background:var(--card); border:1px solid var(--line); border-left:4px solid var(--terra); border-radius:16px; }
.ax-item__b { min-width:0; display:flex; flex-direction:column; gap:4px; align-items:flex-start; }
.ax-item__nm { font-family:var(--sans); font-weight:800; font-size:15.5px; line-height:1.2; overflow-wrap:anywhere; }
.ax-item__mt { font-size:13px; color:var(--fg-70); overflow-wrap:anywhere; }
.ax-item__acts { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.ax-mini--x { min-width:36px; }
.ax-kind { font-family:var(--sans); font-weight:700; font-size:11.5px; padding:3px 9px; border-radius:999px;
  background:var(--sink); color:var(--fg-70); border:1px solid var(--line); }
.ax-kind--grammar { background:color-mix(in srgb, var(--sage) 14%, transparent); color:var(--fg); border-color:color-mix(in srgb, var(--sage) 35%, transparent); }

/* ── οι δύο πόρτες ── */
.ax-add { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:12px; }
.ax-door { position:relative; display:flex; flex-direction:column; align-items:flex-start; gap:6px; text-align:left;
  padding:18px; border-radius:18px; cursor:pointer; color:var(--fg); background:var(--card);
  border:1.5px dashed var(--line-bold); transition:border-color .16s, box-shadow .16s, transform .16s; min-height:150px; }
.ax-door:hover, .ax-door:focus-visible { border-style:solid; border-color:var(--terra); box-shadow:0 14px 30px var(--terra-soft); outline:none; transform:translateY(-1px); }
.ax-door__mark { flex:none; display:grid; place-items:center; width:46px; height:46px; border-radius:13px; background:var(--terra-soft); color:var(--terra-dk); margin-bottom:4px; }
.ax-door__t { font-family:var(--sans); font-weight:800; font-size:16.5px; }
.ax-door__d { font-size:13.5px; color:var(--fg-70); line-height:1.45; }
.ax-door__f { margin-top:auto; font-size:12px; font-weight:700; color:var(--terra-dk); }

/* ── κατάλογος / γραμματική: κάρτες παιχνιδιών ── */
.ax-chips { display:flex; flex-wrap:wrap; gap:7px; }
.ax-chip { font-family:var(--sans); font-weight:700; font-size:13px; padding:8px 14px; min-height:38px; border-radius:999px; cursor:pointer;
  background:transparent; border:1px solid var(--line-bold); color:var(--fg-70); }
.ax-chip:hover { border-color:var(--terra); color:var(--fg); }
.ax-chip.on { background:var(--acc-fill); border-color:var(--terra-dk); color:var(--on-acc); }
.ax-search, .ax-input { width:100%; font-family:var(--sans); font-size:16px; color:var(--fg); background:var(--bg);
  border:1.5px solid var(--line-bold); border-radius:12px; padding:11px 13px; min-height:46px; }
.ax-search:focus, .ax-input:focus { outline:none; border-color:var(--terra); box-shadow:0 0 0 3px var(--terra-soft); }
.ax-input--num { width:96px; }
.ax-games { display:grid; grid-template-columns:repeat(auto-fill, minmax(168px, 1fr)); gap:10px; }
.ax-game { display:flex; flex-direction:column; align-items:flex-start; gap:6px; text-align:left; padding:14px; min-height:132px;
  border-radius:16px; cursor:pointer; color:var(--fg); background:var(--card); border:1px solid var(--line);
  transition:border-color .16s, box-shadow .16s, transform .16s; }
.ax-game:hover, .ax-game:focus-visible { border-color:var(--terra); box-shadow:0 12px 26px var(--terra-soft); transform:translateY(-1px); outline:none; }
.ax-game__mark { display:grid; place-items:center; width:48px; height:48px; border-radius:13px; background:var(--terra-soft); color:var(--terra-dk); }
.ax-game__nm { font-family:var(--sans); font-weight:800; font-size:14.5px; line-height:1.2; overflow-wrap:anywhere; }
.ax-game__tag { font-size:12px; color:var(--muted); line-height:1.35; }

/* ── ο επιλογέας ύλης (js/live-picker.js) μέσα στη σελίδα ── */
.ax-picker { min-width:0; }

/* ── επίπεδα γραμματικής ── */
.ax-lvls { display:flex; flex-direction:column; gap:6px; }
.ax-lvls__g { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:10px;
  font-family:var(--disp); font-weight:500; font-size:12.5px; letter-spacing:.08em; color:var(--muted); }
.ax-lvl, .ax-who { display:flex; align-items:center; gap:12px; width:100%; text-align:left; padding:10px 12px; min-height:46px;
  border-radius:12px; cursor:pointer; background:var(--card); border:1px solid var(--line); color:var(--fg); font-family:var(--sans); font-size:14px; }
.ax-lvl:hover, .ax-who:hover { border-color:var(--terra); }
.ax-lvl.on, .ax-who.on { border-color:var(--terra); background:color-mix(in srgb, var(--terra) 8%, var(--card)); }
.ax-check { flex:none; width:22px; height:22px; border-radius:7px; display:grid; place-items:center; font-size:12px; font-weight:800;
  border:1.5px solid var(--line-bold); color:transparent; }
.ax-lvl.on .ax-check, .ax-who.on .ax-check { background:var(--acc-fill); border-color:var(--terra-dk); color:var(--on-acc); }
.ax-lvl__t { font-weight:700; min-width:0; overflow-wrap:anywhere; }
.ax-lvl__s { margin-left:auto; font-size:12.5px; color:var(--muted); text-align:right; }
.ax-sticky { position:sticky; bottom:12px; z-index:5; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  padding:12px 14px; border-radius:16px; background:var(--card); border:1px solid var(--line-bold); box-shadow:0 14px 34px var(--shadow); }
.ax-sticky__n { font-family:var(--sans); font-weight:700; font-size:14px; }

/* ── παραλήπτες ── */
.ax-card { display:flex; flex-direction:column; gap:10px; padding:16px; border-radius:18px; background:var(--card); border:1px solid var(--line); }
.ax-card__hd { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.ax-card__t { font-family:var(--sans); font-weight:800; font-size:15px; }
.ax-roster { display:flex; flex-direction:column; gap:6px; max-height:300px; overflow-y:auto; }
.ax-who__av, .ax-av { flex:none; width:28px; height:28px; border-radius:50%; display:inline-grid; place-items:center; font-weight:800; font-size:13px;
  background:var(--terra-soft); color:var(--terra-dk); }
.ax-av { margin-right:8px; vertical-align:middle; }
.ax-who__nm { min-width:0; overflow-wrap:anywhere; }
.ax-pin { font-family:var(--disp); font-weight:600; letter-spacing:.24em; font-size:32px; text-align:center; color:var(--terra-dk); padding:4px 0; }
.ax-inline { display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-family:var(--sans); font-weight:700; font-size:13.5px; }

/* ── λεπτομέρειες ── */
.ax-fields { display:grid; grid-template-columns:2fr 1fr; gap:12px; }
.ax-field { display:flex; flex-direction:column; gap:7px; min-width:0; }
.ax-field > span:first-child { font-family:var(--sans); font-weight:700; font-size:13px; color:var(--fg-70); }
.ax-sum__games { display:flex; flex-direction:column; gap:8px; }
.ax-sum__g { display:flex; align-items:center; gap:10px; font-size:14px; line-height:1.35; }
.ax-sum__g > span:last-child { min-width:0; overflow-wrap:anywhere; }
.ax-sum__row { display:flex; justify-content:space-between; gap:14px; font-size:13.5px; padding:7px 0; border-top:1px solid var(--line); }
.ax-sum__k { color:var(--muted); }
.ax-sum__v { font-weight:700; text-align:right; overflow-wrap:anywhere; }

/* ── η λίστα αναθέσεων ── */
.ax-alist { display:flex; flex-direction:column; gap:12px; margin-top:16px; }
.ax-acard { display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:start; padding:16px 18px;
  background:var(--card); border:1px solid var(--line); border-left:4px solid var(--terra); border-radius:18px; }
.ax-acard__marks { display:grid; grid-template-columns:repeat(2, auto); gap:6px; align-content:start; }
.ax-acard__marks .ax-mark:only-child { width:52px; height:52px; }
.ax-acard__b { min-width:0; display:flex; flex-direction:column; gap:6px; }
.ax-acard__t { font-family:var(--sans); font-weight:800; font-size:17px; line-height:1.25; margin:0; overflow-wrap:anywhere; }
.ax-acard__m { font-size:13px; color:var(--fg-70); overflow-wrap:anywhere; }
.ax-acard__g, .ax-chiplist { display:flex; flex-wrap:wrap; gap:6px; }
.ax-gchip { display:inline-flex; align-items:center; gap:6px; max-width:100%; padding:5px 10px; border-radius:999px; font-size:12.5px; font-weight:700;
  background:var(--sink); border:1px solid var(--line); }
.ax-gchip > span { overflow-wrap:anywhere; }
.ax-gchip__m { font-weight:500; color:var(--muted); }
.ax-acard__by { font-size:12px; color:var(--muted); }
.ax-acard__acts { display:flex; flex-direction:column; gap:6px; }
.ax-mini--main { border-color:var(--terra); color:var(--fg); }
.ax-empty { display:flex; flex-direction:column; align-items:center; text-align:center; gap:8px; padding:36px 20px;
  border:1.5px dashed var(--line-bold); border-radius:20px; color:var(--fg-70); font-size:14px; line-height:1.5; }
.ax-empty strong { color:var(--fg); font-size:16px; }
.ax-empty__ic { width:46px; height:46px; color:var(--terra-dk); }
.ax-empty__ic svg { width:100%; height:100%; }

/* ── πρόοδος ── */
.ax-prog__top { display:flex; gap:12px; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; }
.ax-pinbox { display:flex; align-items:center; gap:10px; padding:10px 14px; border-radius:14px; background:var(--card); border:1px solid var(--line-bold); }
.ax-pinbox__l { font-size:12px; color:var(--muted); font-weight:700; }
.ax-pinbox__v { font-family:var(--disp); font-weight:600; letter-spacing:.2em; font-size:22px; color:var(--terra-dk); }
.ax-prog { display:flex; flex-direction:column; gap:14px; }
.ax-table .sc-tr { grid-template-columns:1.6fr 1.6fr .7fr .9fr .9fr; }
.ax-table .sc-tr > span { min-width:0; overflow-wrap:anywhere; }

/* ── «QR · διάλεξε παιχνίδι» ── */
.ax-door--qr { border-color:color-mix(in srgb, var(--terra) 45%, var(--line-bold)); }
.ax-game--pick { position:relative; }
.ax-game--pick.on { border-color:var(--terra); background:color-mix(in srgb, var(--terra) 8%, var(--card)); box-shadow:0 10px 24px var(--terra-soft); }
.ax-game__check { position:absolute; top:10px; right:10px; }
.ax-game--pick.on .ax-game__check { background:var(--acc-fill); border-color:var(--terra-dk); color:var(--on-acc); }
.ax-sticky__n { min-width:0; overflow-wrap:anywhere; flex:1 1 180px; }
.ax-choice { border-left:4px solid var(--terra); }
.ax-choice__games { display:flex; flex-wrap:wrap; gap:10px; }
.ax-choice__g { display:flex; align-items:center; gap:10px; min-width:0; padding:8px 12px 8px 8px; border-radius:14px; background:var(--sink); border:1px solid var(--line); }
.ax-choice__acts { justify-content:flex-start; }
.ax-choice__marks { display:flex; gap:6px; flex-wrap:wrap; }
.ax-table--g .sc-tr { grid-template-columns:1.3fr 1.4fr 1.4fr .6fr .8fr .8fr; }
.ax-played { font-weight:700; }

/* ── ο ανοιχτός σύνδεσμος της ομάδας μέσα στο παράθυρο του QR (js/open-share.js) ── */
.os-note { text-align:left; margin:0 0 14px; padding:11px 13px; border-radius:12px; background:var(--terra-soft);
  border:1px solid color-mix(in srgb, var(--terra) 26%, transparent); }
.os-note__t { margin:0 0 3px; font-family:var(--sans); font-weight:800; font-size:13px; color:var(--fg); }
.os-note__p { margin:0 0 8px; font-size:12.5px; line-height:1.45; color:var(--fg-70, var(--muted)); }
.os-note.is-off { background:var(--sink); border-color:var(--line); }
.os-note__b { background:none; border:0; padding:2px 0; cursor:pointer; font-family:var(--sans); font-weight:700; font-size:12.5px; color:var(--terra-dk); }
.os-note__b:hover { text-decoration:underline; }
.os-list { width:min(460px, 94vw); max-height:86vh; overflow-y:auto; text-align:left; }
.os-list .qrm__title, .os-list .qrm__sub { text-align:center; }
.os-list__rows { display:flex; flex-direction:column; gap:8px; }
.os-list__empty { margin:6px 0; font-size:13px; color:var(--muted); text-align:center; }
.os-row { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:10px 12px; border-radius:12px; background:var(--sink); border:1px solid var(--line); }
.os-row.is-off { opacity:.62; }
.os-row__b { flex:1 1 200px; min-width:0; display:flex; flex-direction:column; gap:2px; }
.os-row__t { font-family:var(--sans); font-weight:800; font-size:13.5px; overflow-wrap:anywhere; }
.os-row__m { font-size:12px; color:var(--muted); overflow-wrap:anywhere; }
.os-row__acts { display:flex; gap:6px; flex:0 0 auto; }
.os-row__btn { flex:0 0 auto; padding:8px 11px; font-size:12.5px; }
.os-row__btn--x { color:#D04452; border-color:color-mix(in srgb, #D04452 34%, transparent); }

@media (max-width: 720px) {
  .ax-acard { grid-template-columns:auto 1fr; }
  .ax-acard__acts { grid-column:1 / -1; flex-direction:row; flex-wrap:wrap; }
  .ax-acard__acts .sc-mini { flex:1 1 auto; }
  .ax-table .sc-tr--h { display:none; }
  .ax-table .sc-tr { grid-template-columns:1fr; gap:5px; padding:14px 16px; }
  .ax-table .sc-tr > span[data-k]::before { content:attr(data-k) ' · '; color:var(--muted); font-size:11.5px; }
  .ax-table--g .sc-tr { grid-template-columns:1fr; }
}
@media (max-width: 600px) {
  .ax-item { grid-template-columns:auto 1fr; }
  .ax-item__acts { grid-column:1 / -1; justify-content:flex-start; }
  .ax-fields { grid-template-columns:1fr; }
  .ax-games { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .ax-rail__s { flex:1 1 30%; }
  .ax-rail__b { flex-direction:column; align-items:flex-start; gap:4px; padding:9px 10px; font-size:12.5px; }
  .ax-nav .sc-cta { flex:1 1 auto; justify-content:center; }
}
@media (prefers-reduced-motion: reduce) { .ax * { transition-duration:.001ms !important; } }

/* Μαθητές με email (js/anathesi.js emailCard) και αφαίρεση από την Πρόοδο */
.ax-emails__row { display:flex; gap:8px; align-items:flex-start; }
.ax-emails__in { flex:1 1 auto; min-width:0; resize:vertical; min-height:46px; font-size:15px; }
.ax-emails__err:empty { display:none; }
.ax-emails__err { color:var(--terra-dk); }
.ax-emails__list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.ax-emails__it { display:flex; align-items:center; gap:8px; padding:6px 10px; border-radius:12px; border:1px solid var(--line); background:var(--bg); }
.ax-emails__m { flex:1 1 auto; min-width:0; overflow-wrap:anywhere; font-size:14px; }
.ax-pend { margin-top:14px; }
.ax-rm { margin-left:auto; padding:2px 8px; min-height:0; }
@media (max-width:520px) { .ax-emails__row { flex-direction:column; align-items:stretch; } }

/* Θέσεις μαθητών (js/anathesi.js seatsBox) — μόνο όταν υπάρχει όριο */
.ax-seats { margin:14px 0 6px; padding:14px 16px; border-radius:16px; background:var(--card); border:1px solid var(--line-bold); display:flex; flex-direction:column; gap:8px; }
.ax-seats[hidden] { display:none; }
.ax-seats__hd { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.ax-seats__t { font-family:var(--disp); font-weight:600; font-size:20px; font-variant-numeric:tabular-nums; }
.ax-seats__bar { flex:1 1 160px; min-width:120px; height:8px; border-radius:99px; background:var(--line); overflow:hidden; }
.ax-seats__fill { display:block; height:100%; border-radius:inherit; background:var(--terra); transition:width .4s ease; }
.ax-seats.is-near .ax-seats__fill, .ax-seats.is-full .ax-seats__fill { background:var(--terra-dk); }
.ax-seats.is-full { border-color:var(--terra-dk); }
.ax-seats__m { margin:0; font-size:13.5px; color:var(--muted); }
.ax-seats__warn { margin:0; font-size:14px; color:var(--terra-dk); font-weight:600; }
.ax-seats__buy { align-self:flex-start; }

/* Επιλογή πακέτου θέσεων (js/anathesi.js openSeatPacks) */
.ax-modal { position:fixed; inset:0; z-index:9000; display:flex; align-items:center; justify-content:center; padding:16px; background:rgba(20,14,8,.45); }
.ax-modal__box { width:min(460px, 100%); max-height:calc(100vh - 32px); overflow:auto; background:var(--card); border:1px solid var(--line-bold); border-radius:20px; padding:20px; display:flex; flex-direction:column; gap:12px; box-shadow:0 20px 50px rgba(0,0,0,.25); }
.ax-modal__t { margin:0; font-family:var(--disp); font-weight:600; font-size:21px; }
.ax-modal__msg:empty { display:none; }
.ax-modal__msg { margin:0; font-size:14px; color:var(--terra-dk); }
.ax-packs { display:flex; flex-direction:column; gap:8px; }
.ax-pack { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; padding:12px 14px; border-radius:14px; border:1px solid var(--line-bold); background:var(--bg); color:inherit; font:inherit; text-align:left; cursor:pointer; }
.ax-pack:hover:not(:disabled), .ax-pack:focus-visible { border-color:var(--terra); outline:none; }
.ax-pack:disabled { opacity:.6; cursor:default; }
.ax-pack.is-busy { opacity:1; border-color:var(--terra); }
.ax-pack__n { font-family:var(--disp); font-weight:600; font-size:22px; color:var(--terra-dk); min-width:3.2ch; }
.ax-pack__l { font-weight:600; }
.ax-pack__p { font-weight:700; font-variant-numeric:tabular-nums; }
