/* Вопросы, тест, задания, карта команды. Цвета и шрифты из app.css, свои классы начинаются с z-. */

/* ---------- под уроком ---------- */
.z-niz{max-width:720px;margin-top:40px;display:flex;flex-direction:column;gap:22px}
.z-sec h3{margin:0 0 6px}
.z-sec .eyebrow{margin-bottom:10px}
.z-sec-h{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.z-sec-h .eyebrow{margin:0}
.z-sub{margin:4px 0 18px}
.z-note{margin:0 0 14px;padding:12px 16px;border-radius:var(--r-sm);font-size:15px;line-height:1.45}
.z-note.ok{background:var(--green-wash);color:var(--green);border:1px solid rgba(61,214,140,.3)}
.z-note.err{background:var(--red-wash);color:var(--red);border:1px solid rgba(255,107,107,.3)}
.z-text{margin:0;white-space:pre-wrap;word-break:break-word;color:var(--soft);line-height:1.55}
.z-who{margin:0 0 8px;font-size:13px;color:var(--muted)}
.z-who b{color:var(--ink);font-weight:600}
.z-who.blue{color:var(--blue-2);font-weight:600;letter-spacing:.04em}
.z-prose{margin-top:12px;font-size:16px}
.z-prose > :last-child{margin-bottom:0}
.z-answer{margin-top:14px;padding:14px 16px;border-left:3px solid var(--blue);background:var(--blue-wash);border-radius:0 12px 12px 0}
.z-answer .z-prose{margin-top:4px;color:var(--ink)}
.z-area{min-height:110px}
.z-area.small{min-height:70px}
.z-form{display:flex;flex-direction:column;gap:16px}
.z-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.z-link{display:inline-flex;align-items:center;gap:8px;color:var(--blue-2);text-decoration:none;word-break:break-all}
.z-link svg{width:16px;height:16px;flex:none}
.z-link:hover span{text-decoration:underline}
.z-file{padding:12px 14px}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}

/* качество */
.z-quality{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:14px 18px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card)}
.z-quality-k{font-size:13px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-right:6px}
.z-quality a.chip{text-decoration:none}

/* тест */
.z-quiz{display:flex;flex-direction:column;gap:18px;margin-top:6px}
.z-q{margin:0;padding:0;border:0;min-width:0}
.z-q legend{display:flex;gap:12px;align-items:flex-start;font-weight:600;font-size:16px;line-height:1.4;margin-bottom:10px;padding:0}
.z-qn{flex:none;width:28px;height:28px;border-radius:50%;display:inline-grid;place-items:center;border:1px solid var(--line-2);
  font-family:var(--f-display);font-size:12px;color:var(--soft)}
.z-opt{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;margin:0 0 8px 40px;border:1px solid var(--line);border-radius:12px;
  background:var(--card-2);cursor:pointer;transition:border-color .15s,background .15s}
.z-opt:hover{border-color:var(--line-2)}
.z-opt:has(input:checked){border-color:var(--blue);background:var(--blue-wash)}
.z-opt input{margin:3px 0 0;accent-color:var(--blue);flex:none}
.z-result{display:flex;gap:14px;align-items:center;padding:16px 18px;border-radius:var(--r-md);margin:4px 0 14px}
.z-result b{display:block;font-family:var(--f-display);font-size:17px;margin-bottom:2px}
.z-result.pass{background:var(--green-wash);border:1px solid rgba(61,214,140,.35)}
.z-result.pass b{color:var(--green)}
.z-result.fail{background:var(--amber-wash);border:1px solid rgba(245,181,68,.35)}
.z-result.fail b{color:var(--amber)}
.z-result-ico{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;flex:none;font-weight:800;font-size:18px}
.z-result.pass .z-result-ico{background:var(--green);color:#06210F}
.z-result.fail .z-result-ico{background:var(--amber);color:#2A1C00}
.z-result-ico svg{width:18px;height:18px}
.z-marks{margin:0 0 16px;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.z-marks li{display:flex;justify-content:space-between;gap:14px;padding:10px 14px;border-radius:10px;background:var(--card-2);border:1px solid var(--line);font-size:14.5px}
.z-marks li.bad{border-color:rgba(255,107,107,.3)}
.z-mark-a{flex:none;max-width:45%;text-align:right;color:var(--green);font-weight:600}
.z-marks li.bad .z-mark-a{color:var(--red)}
.z-again > summary,.z-edit > summary{list-style:none;cursor:pointer;width:max-content}
.z-again > summary::-webkit-details-marker,.z-edit > summary::-webkit-details-marker{display:none}
.z-again[open] > summary,.z-edit[open] > summary{margin-bottom:16px}

/* задание */
.z-sent{margin:0 0 18px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card-2);display:flex;flex-direction:column;gap:8px}
.z-sent p{margin:0}
.z-self{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.z-self .chip svg,.z-self .btn svg{width:14px;height:14px}
.z-krit{margin:14px 0 0;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--card-2);
  font-size:15px;line-height:1.5;color:var(--soft);word-break:break-word}
.z-krit b{color:var(--ink);font-weight:600}
.z-krit ~ .z-note{margin-top:14px}
.z-krit + .z-sub,.z-note + .z-sub{margin-top:16px}
.z-form .field small{font-size:13px;line-height:1.4}
.z-draft-when{margin:-4px 0 0}
.z-galka .z-self{margin-top:14px}

/* вопросы */
.z-qs{display:flex;flex-direction:column;gap:12px}
.z-qs .z-sec-h h3{margin:0}
.z-qs .z-sec-h{margin-bottom:0}
.z-lich{margin:0 0 4px}
.z-qa{padding:16px 0;border-top:1px solid var(--line)}
.z-qa.mine .z-who b{color:var(--blue-2)}
.z-ask{display:flex;flex-direction:column;gap:14px;align-items:flex-start;margin-top:6px}
.z-ask .field{width:100%}

/* ---------- главная ---------- */
.z-home{margin-top:56px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:16px}
.z-home-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;text-decoration:none;padding:20px 22px;
  transition:transform .15s,border-color .15s}
.z-home-card:hover{transform:translateY(-2px);border-color:var(--line-2)}
.z-home-t{display:flex;flex-direction:column;gap:4px;min-width:0}
.z-home-t .eyebrow{margin:0}
.z-home-h{font-family:var(--f-display);font-weight:700;font-size:18px;line-height:1.2}
.z-home-go{color:var(--muted)}
.z-home-go svg{width:20px;height:20px}
.z-home-ico{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:var(--blue-wash);border:1px solid var(--blue-line);color:var(--blue-2)}
.z-home-ico svg{width:24px;height:24px}

/* кольцо */
.z-ring{position:relative;width:120px;height:120px;display:grid;place-items:center;flex:none}
.z-ring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.z-ring .bg{stroke:var(--line-2)}
.z-ring .fg{stroke:var(--blue);stroke-linecap:round;transition:stroke-dasharray .5s ease}
.z-ring b{position:relative;font-family:var(--f-display);font-weight:800;font-size:30px;line-height:1}
.z-ring.small{width:56px;height:56px}
.z-ring.small b{font-size:16px}

/* ---------- карта команды ---------- */
.z-team-head{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:22px;align-items:end}
.z-team-score{display:flex;gap:22px;align-items:center}
.z-team-score .eyebrow{margin:0 0 6px}
.z-team-score p{margin:0}
.z-team-big{font-family:var(--f-display);font-weight:800;font-size:34px;line-height:1;text-transform:uppercase}
.z-groups{display:flex;flex-direction:column;gap:34px;margin-top:56px}
.z-group{padding-top:26px;border-top:1px solid var(--line)}
.z-group-h{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
.z-group-h h2{font-size:clamp(20px,2.4vw,28px)}
.z-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));gap:10px}
.z-tiles form{margin:0;display:flex}
.z-tile{position:relative;width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:10px;text-align:left;cursor:pointer;
  min-height:96px;padding:14px 16px;border-radius:16px;border:1px solid var(--line);background:var(--card);color:var(--soft);
  transition:border-color .15s,background .15s,transform .15s}
.z-tile:hover{border-color:var(--line-2);transform:translateY(-1px)}
.z-tile[disabled]{cursor:default;transform:none}
.z-tile-n{font-family:var(--f-display);font-weight:700;font-size:12px;color:var(--dim);letter-spacing:.06em}
.z-tile-t{font-weight:600;font-size:15px;line-height:1.3;color:var(--ink)}
.z-tile-c{position:absolute;top:12px;right:12px;width:24px;height:24px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;color:transparent}
.z-tile-c svg{width:12px;height:12px}
.z-tile.on{border-color:var(--blue-line);background:linear-gradient(140deg,rgba(90,135,255,.18),rgba(90,135,255,.05))}
.z-tile.on .z-tile-n{color:var(--blue-2)}
.z-tile.on .z-tile-c{background:var(--blue);border-color:var(--blue);color:var(--blue-ink)}
.z-tile.busy{opacity:.6}

/* ---------- «Задания» ученика ---------- */
/* шкала над списком: вариант 2, который выбрала Алина */
.z-shapka{margin-bottom:26px}
.z-karta{background:var(--card);border-radius:20px;box-shadow:inset 0 0 0 1px var(--line),0 18px 40px -30px rgba(13,20,48,.3)}
.z2k{margin-top:18px;padding:20px 24px 22px}
.z2v{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:14px}
.z2c{display:flex;align-items:baseline;gap:10px;margin:0}
.z-chislo{font:600 34px/1 var(--f-d);letter-spacing:-.03em;color:var(--ink)}
.z-pod{font:500 16px/1.3 var(--f-t);color:var(--soft)}
.z-sled{margin:0;text-align:right;font:500 16px/1.35 var(--f-t);color:var(--soft)}
.z-sled a{color:inherit;text-decoration:none}
.z-sled a:hover b{color:var(--acc)}
.z-sled b{display:block;font:600 17px/1.3 var(--f-t);color:var(--ink)}
.z-seg{display:flex;gap:6px;height:8px}
.z-seg i{flex:1;border-radius:999px;background:#E3E6EE}
.z-seg i.on{background:var(--acc)}
.z-seg i.est{background:#F0B23A}
@media (max-width:760px){.z-sled{text-align:left}}
.z-mgroup{margin-top:30px}
.z-mgroup .eyebrow{margin-bottom:12px}
.lesson-row .l-right .chip{white-space:nowrap}
/* сдача ещё не открылась: строка без ссылки, с датой вместо статуса */
.z-mgroup .lesson-row.z-pozzhe,.z-mgroup .lesson-row.z-pozzhe:hover{background:var(--card-2);box-shadow:inset 0 0 0 1px var(--line);cursor:default}
.z-mgroup .z-pozzhe .l-num{color:var(--muted);background:none;box-shadow:inset 0 0 0 1px var(--line)}
.z-mgroup .z-pozzhe .l-num svg{width:16px;height:16px}
.z-mgroup .z-pozzhe .l-title{color:var(--muted)}

/* ---------- кабинет ---------- */
.z-ksub{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 26px}
.z-ksub a{text-decoration:none;font-size:14px;color:var(--muted);padding:7px 14px;border-radius:999px;border:1px solid var(--line)}
.z-ksub a:hover{color:var(--ink);border-color:var(--line-2)}
.z-ksub a.on{color:var(--blue-2);border-color:var(--blue-line);background:var(--blue-wash)}
.z-khead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.z-khead .eyebrow{margin-bottom:10px}
.z-khead h2{font-size:clamp(24px,3vw,36px)}
.z-ksec{margin-top:34px;display:flex;flex-direction:column;gap:12px}
.z-ksec > h3{margin:0}
.z-ksec > p{margin:0}
.z-kq{display:flex;flex-direction:column;gap:10px;padding:20px 22px}
.z-kq.z-wait{border-color:rgba(245,181,68,.35)}
.z-kq-h{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.z-kq-h .z-who{margin:0}
.z-kq-l{font-size:13px;color:var(--blue-2);text-decoration:none}
.z-kq-l:hover{text-decoration:underline}
.z-kq .z-answer{margin-top:4px}
.z-kgrid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start}
.z-kcol{display:flex;flex-direction:column;gap:18px}
.z-kside{position:sticky;top:84px;display:flex;flex-direction:column;gap:14px}
.z-kmod{margin-top:12px}
.z-kmod .eyebrow{margin-bottom:8px}
.z-klink{text-decoration:none}
.z-lt{width:60%}
.z-split{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.z-fs{margin:0;padding:14px 16px;border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;gap:8px;min-width:0}
.z-fs legend{padding:0 6px;font-size:14px;color:var(--muted)}
.z-form:has(input[name=kind][value=galochka]:checked) .z-bez-galki{display:none}
.z-check{display:flex;gap:10px;align-items:flex-start;font-size:15px;color:var(--soft);cursor:pointer}
.z-check input{margin:4px 0 0;accent-color:var(--blue);flex:none}
.z-qedit{display:flex;flex-direction:column;gap:12px;padding:20px 22px;margin:0}
.z-qedit legend{float:left;margin-bottom:4px}
.z-qedit legend + .field{clear:both}
.z-opts{display:flex;flex-direction:column;gap:8px}
.z-optedit{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center}
.z-optedit input[type=radio]{width:20px;height:20px;accent-color:var(--green);margin:0}
.z-optedit .input{padding:11px 14px;font-size:15px}
.z-test-edit{gap:14px}
.z-test-set{display:flex;flex-direction:column;gap:14px;padding:20px 22px}
.z-num{max-width:140px}
.z-filter{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0 18px}
.z-filter .chip{text-decoration:none}

/* таблицы */
.z-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card)}
.z-table{width:100%;border-collapse:collapse;font-size:14px}
.z-table th,.z-table td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.z-table thead th{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:var(--card-2)}
.z-table tbody tr:last-child td{border-bottom:0}
.z-table tfoot td{background:var(--card-2);border-top:1px solid var(--line-2);border-bottom:0}
.z-table td small,.z-table th small{display:block;font-size:12px;color:var(--muted);font-weight:500;letter-spacing:0;text-transform:none}
.z-table .nowrap{white-space:nowrap}
.z-matrix th,.z-matrix td{padding:10px 12px}
.z-num-c{text-align:center!important;white-space:nowrap}
.z-sticky{position:sticky;left:0;z-index:1;background:var(--card);min-width:170px;box-shadow:1px 0 0 var(--line)}
.z-matrix thead .z-sticky,.z-matrix tfoot .z-sticky{background:var(--card-2)}
.z-cell{text-align:center;white-space:nowrap;min-width:74px}
.z-v,.z-t{display:block;font-size:13px;line-height:1.5;font-variant-numeric:tabular-nums}
.z-v{color:var(--soft)}
.z-v.full{color:var(--blue-2);font-weight:600}
.z-t{font-weight:600;color:var(--muted)}
.z-t.pass{color:var(--green)}
.z-t.fail{color:var(--amber)}
.z-dim{color:var(--dim)}

@media (max-width:980px){
  .z-team-head{grid-template-columns:1fr}
  .z-kgrid{grid-template-columns:1fr}
  .z-kside{position:static}
}
@media (max-width:640px){
  .z-opt{margin-left:0}
  .z-split{grid-template-columns:1fr}
  .z-team-score{flex-direction:row}
  .z-ring{width:96px;height:96px}
  .z-home-card{grid-template-columns:auto minmax(0,1fr)}
  .z-home-go{display:none}
  .z-marks li{flex-direction:column;gap:4px}
  .z-mark-a{max-width:none;text-align:left}
  .z-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
}
