.exam-page{max-width:1000px;margin:0 auto;padding:24px 20px 64px}.exam-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:18px;padding:28px;margin:20px 0}.exam-facts{display:flex;gap:32px;flex-wrap:wrap;margin-bottom:20px}.exam-facts span{display:grid;gap:5px;color:var(--color-text-muted)}.exam-facts strong{font-size:1.3rem;color:var(--color-primary-strong)}.exam-primary,.exam-secondary{border-radius:10px;padding:12px 20px;font:inherit;font-weight:650;cursor:pointer}.exam-primary{background:var(--color-primary);color:var(--color-surface);border:1px solid var(--color-primary)}.exam-secondary{background:var(--color-surface);border:1px solid var(--color-border-strong);color:var(--color-primary-strong)}.exam-navigation button:disabled{opacity:.4;cursor:default}.exam-toolbar{position:static;display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--color-primary-wash);border:1px solid var(--color-border);border-radius:14px;padding:16px;box-shadow:var(--shadow-card)}.exam-toolbar>div{display:grid;gap:4px}.exam-toolbar span,.exam-clock small{font-size:.85rem;color:var(--color-text-muted)}.exam-clock strong{font-size:1.5rem;font-variant-numeric:tabular-nums;color:var(--color-primary)}.exam-clock.is-low strong{color:var(--color-danger)}.exam-question-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--color-text-muted)}.exam-question h1{font-size:1.5rem}.exam-question .tresc,.exam-review .tresc,.exam-saved-answer .tresc{line-height:1.65}.exam-page .tresc img{max-width:100%;height:auto}.exam-page .tresc table{max-width:100%;border-collapse:collapse}.exam-page .tresc td,.exam-page .tresc th{border:1px solid var(--color-border);padding:8px}.exam-question label{display:block;font-weight:650;margin:24px 0 8px}.exam-question textarea{box-sizing:border-box;width:100%;border:1px solid var(--color-border-strong);border-radius:10px;padding:14px;font:inherit;resize:vertical;line-height:1.5}.exam-question textarea:focus{outline:2px solid var(--color-primary);outline-offset:2px}.exam-navigation{display:flex;align-items:center;justify-content:space-between;gap:12px}.exam-alert{background:var(--color-warning-soft);border:1px solid var(--color-border-strong);border-radius:10px;padding:14px;color:var(--color-warning)}.exam-status,.exam-hint{font-size:.88rem;color:var(--color-text-muted)}.exam-history-row{display:flex;justify-content:space-between;gap:16px;padding:20px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;margin:12px 0;text-decoration:none;color:var(--color-text)}.exam-history-row span{display:grid;gap:6px}.exam-history-row small{font-weight:400;color:var(--color-text-muted)}.exam-result-heading h1{font-size:2.5rem;margin:10px 0}.exam-student-answer{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--color-surface-soft);padding:16px;border-radius:10px}.exam-feedback{border-top:1px solid var(--color-border);padding-top:12px;line-height:1.65;overflow-wrap:anywhere}.exam-back{display:inline-block;margin:12px 0;color:var(--color-primary)}.exam-abandon{margin-top:24px}.exam-abandon button{border:0;background:none;text-decoration:underline;color:var(--color-text-muted);cursor:pointer}.exam-saved-answer{border-bottom:1px solid var(--color-border);padding-bottom:20px;margin-bottom:20px}.exam-page [hidden]{display:none!important}
.exam-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;list-style:none}.exam-summary::-webkit-details-marker{display:none}

.exam-page.exam-ended {
  max-width: var(--content-width);
  width: min(100%, var(--content-width));
  padding: 0;
  margin: 32px auto 64px;
  gap: 20px;
}

.exam-ended .exam-card {
  margin: 0;
  box-shadow: var(--shadow-card);
}

.exam-ended-hero,
.exam-ended-action {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.exam-ended-hero {
  padding: 28px 32px 32px;
}

.exam-ended-artwork {
  display: block;
  width: 200px;
  height: 200px;
  object-fit: contain;
  margin-bottom: 16px;
}

.exam-ended-hero h1 {
  margin: 0;
  color: var(--color-text);
  font-size: clamp(2rem, 4.3vw, 3.1rem);
  font-weight: 790;
  letter-spacing: -0.045em;
  line-height: 1.12;
}

.exam-ended-hero p,
.exam-ended-action p {
  margin: 14px 0 0;
  color: var(--color-text-muted);
  font-size: 1.08rem;
  line-height: 1.6;
}

.exam-ended-action {
  padding: 28px 32px;
}

.exam-ended-action h2 {
  margin: 0;
  font-size: clamp(1.45rem, 2.6vw, 1.85rem);
  letter-spacing: -0.025em;
  line-height: 1.25;
}

.exam-ended-action form {
  margin: 20px 0 12px;
}

.exam-ended-action .ai-action-button {
  padding: 14px 24px;
  font-size: 1.05rem;
}

.exam-ended-action small {
  color: var(--color-text-muted);
  font-size: 0.9rem;
}

.exam-ended-answers {
  padding: 22px 28px;
}

.exam-ended-answers-label {
  display: flex;
  align-items: center;
  gap: 18px;
  min-width: 0;
  font-weight: 700;
}

.exam-ended-answers-label svg {
  width: 30px;
  height: 34px;
  flex: 0 0 auto;
  color: var(--color-primary);
}

.exam-ended-answers .help-summary-chevron {
  color: var(--color-primary);
}

.exam-ended-answers[open] > summary {
  margin-bottom: 24px;
}

.exam-ended-retry {
  justify-self: center;
  text-align: center;
  text-underline-offset: 4px;
}

.exam-ended-retry span {
  display: inline-block;
  margin-left: 8px;
}

.exam-ended > .exam-alert {
  margin: 0;
}


/* A bundle is one navigation page, while each part retains its own answer and score. */
.exam-bundle,.exam-bundle-part,.exam-bundle-common{min-width:0;max-width:100%}
.exam-bundle>.exam-question-heading{align-items:baseline}
.exam-bundle>.exam-question-heading h1{margin:0;font-size:1.5rem;color:var(--color-text)}
.exam-bundle .tresc{background:transparent;border:0;padding:0;box-shadow:none;margin:20px 0;line-height:1.65}
.exam-bundle-common{overflow-x:auto}
.exam-bundle-common img{display:block;max-width:100%;height:auto;margin:20px auto}
.exam-bundle-part+.exam-bundle-part,.exam-bundle-common+.exam-bundle-part{border-top:1px solid var(--color-border);margin-top:28px;padding-top:24px}
.exam-part-heading h2{font-size:1.15rem;margin:0;color:var(--color-text)}
.exam-part-heading strong{white-space:nowrap}
.exam-bundle .response-source{margin:18px 0}
.exam-bundle-part .standalone-response>h2{font-size:.95rem;color:var(--color-text-muted)}
.exam-bundle-part .exam-official-answer{margin:18px 0}
.exam-official-content{max-width:100%;overflow-x:auto;overflow-wrap:anywhere}
.exam-bundle .exam-official-content{box-sizing:border-box;padding:0 20px 12px}
.exam-official-content table{width:100%;table-layout:auto}
.exam-review-feedback{border:0;padding-top:0;margin-top:12px}
.exam-review-feedback>p{margin:8px 0}
.exam-bundle-part .ai-verdict-box{margin-top:18px}.exam-bundle-part .ai-hint{margin-top:12px}
/* A result by its points: all green, some orange, none red (tokens in main.css). The mark is the verdict line at the bottom and
   the box of the grade; the answer of a closed task is coloured field by field (questions.css). */
.exam-bundle.is-correct>.exam-result-line,.exam-bundle-part.is-correct>.exam-result-line,.ai-verdict-box.is-correct .exam-result-line{border-color:var(--color-success);background:var(--color-success-soft);color:var(--color-success)}
.exam-bundle.is-partial>.exam-result-line,.exam-bundle-part.is-partial>.exam-result-line,.ai-verdict-box.is-partial .exam-result-line{border-color:var(--color-partial);background:var(--color-partial-soft);color:var(--color-partial)}
.exam-bundle.is-wrong>.exam-result-line,.exam-bundle-part.is-wrong>.exam-result-line,.ai-verdict-box.is-wrong .exam-result-line{border-color:var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger)}
/* The bottom of a result, the same in an exam and on an exercise's page: the verdict and the points ("Odpowiedź poprawna · 1/1 pkt"),
   in the place of the check button, green (all the points), orange (some) or red (none). */
.exam-result-line{font-weight:700;display:flex;align-items:center;box-sizing:border-box;min-height:46px;margin-top:32px;padding:0 16px;border:1px solid var(--color-border);border-radius:10px}
.ai-verdict-box .exam-result-line{margin:0;padding:0 18px;border-width:1px 0 0;border-radius:0}
.ai-verdict-box.is-correct{border-color:var(--color-success)}.ai-verdict-box.is-partial{border-color:var(--color-partial)}.ai-verdict-box.is-wrong{border-color:var(--color-danger)}
.exam-part-result{min-height:0;margin-top:12px;padding:8px 16px}
.ai-check-form [hidden],.ai-check-form[hidden]{display:none!important}
/* As specific as the form's own rule (main.css: .exercise-help details.ai-check > .ai-check-form), which it takes the place of:
   the shared `details.ai-elaboration > :not(summary)` gives every child side margins, that the form cancels and this must too. */
.exercise-help details.ai-check>.ai-check-result{width:100%;margin:0;padding:12px 20px 20px}
.ai-check-result .exam-card{border:0;box-shadow:none;padding:0;margin:0;background:transparent}
.exam-feedback-details{margin-top:10px}.exam-feedback-details summary{cursor:pointer;font-weight:650}

.exam-bundle-common table{display:table;width:100%;table-layout:auto}
.exam-bundle-common th:not(:first-child),.exam-bundle-common td:not(:first-child){width:auto;text-align:left}

.exam-feedback > p { white-space: pre-line; }

.exam-division-results > summary{font-weight:600}
.exam-division-table{display:table;table-layout:fixed;width:100%;margin:24px 0 0;overflow:visible;border-collapse:collapse;font-size:14px;line-height:1.5}
.exam-division-table th,.exam-division-table td{padding:16px 12px;border:0;border-bottom:1px solid var(--color-border);background:transparent}
.exam-division-table thead th{padding-top:0;padding-bottom:12px;color:var(--color-text-muted);font-size:12px;font-weight:500;text-align:left}
.exam-division-table tr>:first-child{padding-left:0}
.exam-division-table tr>:last-child{padding-right:0}
.exam-division-table tbody tr:last-child>*{border-bottom:0;padding-bottom:0}
.exam-division-table tbody th{text-align:left;font-weight:500;width:56%}
.exam-division-table .exam-division-points{width:19%;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.exam-division-points span{color:var(--color-text-muted)}
.exam-division-table thead th:first-child{width:56%}
.exam-division-table thead th:nth-child(2){width:19%;text-align:right}
.exam-division-table thead th:nth-child(3){width:25%}
.exam-division-table td.exam-division-result{width:25%}
.exam-division-meter{display:flex;align-items:center;gap:12px}
.exam-division-meter>span{min-width:4ch;text-align:right;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-primary-strong)}
.exam-division-meter progress{display:block;appearance:none;flex:1;min-width:0;width:100%;height:7px;border:0;border-radius:99px;overflow:hidden;background:var(--color-primary-soft);color:var(--color-primary)}
.exam-division-meter progress::-webkit-progress-bar{background:var(--color-primary-soft);border-radius:99px}
.exam-division-meter progress::-webkit-progress-value{background:var(--color-primary);border-radius:99px}
.exam-division-meter progress::-moz-progress-bar{background:var(--color-primary);border-radius:99px}


/* Matura próbna: a single start action, followed by context and saved attempts. */
.exam-exit-summary{max-width:640px}
.exam-exit-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:20px}
.exam-resume-action{margin-top:24px}
.mock-exam-start{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;padding:26px;border:1px solid var(--color-border);border-radius:20px;background:var(--color-surface);box-shadow:var(--shadow-card)}
.mock-exam-start h2{margin:0 0 20px;font-size:20px;line-height:1.3;font-weight:650;color:var(--color-text)}
.mock-exam-facts{display:flex;flex-wrap:wrap;gap:20px 32px}
.mock-exam-facts>div{display:grid;gap:5px}
.mock-exam-facts strong{font-size:32px;line-height:1.2;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.mock-exam-facts strong span{font-size:16px;font-weight:500;letter-spacing:-.02em}
.mock-exam-facts small{color:var(--color-text-muted);font-size:12px}
.mock-exam-start-copy>p{max-width:430px;margin:20px 0 0;color:var(--color-text-muted);font-size:14px;line-height:1.6}
.mock-exam-start-copy>.mock-exam-resume{margin-top:6px;font-size:13px}
.mock-exam-start-action{min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px}
.mock-exam-start-action form{min-width:0;max-width:100%;margin:0}
.mock-exam-start-action .ai-action-button{min-height:52px;max-width:100%}
.mock-exam-start-action>p{margin:0;text-align:left;font-size:12px;color:var(--color-text-muted);line-height:1.8}
.mock-exam-start-action>p strong{font-weight:600}
.mock-exam-setup h2{letter-spacing:-.02em}
.mock-exam-history{min-width:0;padding:24px;border:1px solid var(--color-border);border-radius:20px;background:var(--color-surface);box-shadow:var(--shadow-card)}
.mock-exam-history>h2{margin:0 0 20px;font-size:20px;line-height:1.3}
.mock-exam-grading-note{margin:0;color:var(--color-text-muted);font-size:12px;line-height:1.7}
.mock-exam-history .exam-history-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 100px 20px;gap:20px;align-items:center;margin:0;padding:18px 0;border:0;border-bottom:1px solid var(--color-border);border-radius:0;background:transparent;font-size:14px}
.mock-exam-history .exam-history-row:last-child{border-bottom:0;padding-bottom:0}
.mock-exam-history .exam-history-row>span:first-child{min-width:0}
.mock-exam-history .exam-history-row:hover{background:var(--color-primary-wash)}
.mock-exam-history .exam-history-row small{font-size:12px}
.mock-exam-history .mock-exam-history-status{display:block;color:var(--color-text-muted);font-size:13px}
.mock-exam-history-score{font-variant-numeric:tabular-nums;white-space:nowrap}
.mock-exam-history .mock-exam-history-arrow{color:var(--color-primary);display:block;text-align:right}
.mock-exam-empty{margin:0;color:var(--color-text-muted);font-size:14px;line-height:1.7}
.mock-exam-help{padding:0 24px;border:1px solid var(--color-border);border-radius:16px;background:var(--color-surface);color:var(--color-text-muted);font-size:13px;line-height:1.7}
.mock-exam-help summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 0;cursor:pointer;list-style:none;color:var(--color-text);font-weight:500}
.mock-exam-help summary::-webkit-details-marker{display:none}
.mock-exam-help>div{max-width:760px;padding-bottom:12px}
.mock-exam-setup a:focus-visible,.mock-exam-setup button:focus-visible,.mock-exam-help summary:focus-visible{outline:3px solid var(--color-primary);outline-offset:4px}
