@font-face {
  font-family: "Instrument Sans";
  src: url('/assets/instrument-sans.woff2') format('woff2');
  font-weight: 400 700;
  font-display: swap;
}
@font-face {
  font-family: "Saira";
  src: url('/assets/saira-capa.ttf') format('truetype');
  font-weight: 300;
  font-display: swap;
}

:root {
  font-family: "Instrument Sans", "Segoe UI", system-ui, sans-serif;
  color: #18243a;
  background: #f3f5f8;
  line-height: 1.45;
  --navy: #111d32;
  --ink: #18243a;
  --muted: #526075;
  --line: #dce3ed;
  --white: #fff;
  --gold: #edbe69;
  --blue: #244c82;
  --radius: 14px;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; }
button, input, select { font: inherit; }
button { cursor: pointer; }
a { color: inherit; }
h1, h2, h3, p, dl, dd { margin: 0; }
:focus-visible { outline: 3px solid #8b5d19; outline-offset: 3px; }
.sr-only, .skip:not(:focus) {
  position: absolute; width: 1px; height: 1px; margin: -1px;
  padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
.skip:focus { position: absolute; z-index: 2; left: 1rem; top: .75rem; padding: .65rem; background: white; }
.shell { width: min(1240px, calc(100% - 72px)); margin-inline: auto; }
.topbar { background: #0d182a; color: white; border-bottom: 1px solid #27374d; }
.topbar-inner { min-height: 68px; display: flex; align-items: center; gap: 36px; }
.brand { display: inline-flex; align-items: center; gap: 11px; text-decoration: none; font-weight: 740; white-space: nowrap; }
.brand-mark {
  display: grid; place-items: center; width: 36px; height: 36px; flex: 0 0 36px;
  border: 1px solid #d4a85b; border-radius: 8px; color: #ffd892; background: #2d2a28;
  font-size: 13px; font-weight: 850; letter-spacing: .025em;
}
.topbar nav { display: flex; gap: 27px; align-self: stretch; }
.topbar nav a {
  display: flex; align-items: center; position: relative; text-decoration: none; white-space: nowrap;
  color: #c7d1e2; font-size: .86rem; font-weight: 640;
}
.topbar nav a:hover, .topbar nav a[aria-current] { color: white; }
.topbar nav a[aria-current]::after {
  content: ""; position: absolute; inset: auto 0 0; height: 3px; background: var(--gold);
}
.topbar :focus-visible { outline-color: #ffd892; }
.private {
  display: inline-flex; align-items: center; gap: 7px; margin-left: auto; padding: 6px 10px;
  border: 1px solid #46536a; border-radius: 20px; color: #dbe4f3; font-size: .73rem;
  white-space: nowrap;
}
.role-switch { cursor: pointer; background: transparent; font: inherit; }
.role-switch:hover { border-color: #c7a86b; color: #ffe0a1; }
.role-switch:focus-visible { outline: 2px solid #ffd892; outline-offset: 3px; }
.lock { position: relative; border: 1.5px solid currentColor; width: 9px; height: 7px; border-radius: 2px; margin-top: 3px; }
.lock::before { content: ""; position: absolute; width: 4px; height: 4px; border: 1.5px solid currentColor; border-bottom: 0; border-radius: 4px 4px 0 0; top: -5px; left: 1px; }
.main { padding-block: 31px 60px; }
.intro {
  display: flex; justify-content: space-between; align-items: center; gap: 24px; isolation: isolate;
  position: relative; overflow: hidden; border-radius: 17px; padding: 39px 37px; min-height: 170px;
  color: white; background: linear-gradient(110deg,#101f36 4%,#172d4c 66%,#254468 100%);
}
.intro::after {
  content: ""; position: absolute; z-index: -1; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(126deg, transparent 0 16px, #a7bcdb13 16px 17px);
  mask-image: linear-gradient(90deg,transparent 28%,#000 100%);
}
.intro h1 { font-size: clamp(2rem, 3.45vw, 3rem); line-height: 1.08; letter-spacing: -.045em; font-weight: 810; }
.intro p { color: #d4dfed; font-size: .98rem; margin-top: 11px; }
.metrics { display: flex; gap: clamp(17px, 2vw, 34px); flex-shrink: 0; }
.metrics div { display: flex; flex-direction: column-reverse; min-width: 73px; }
.metrics div + div { border-left: 1px solid #a6bbd850; padding-left: clamp(15px, 1.8vw, 28px); }
.metrics dt { font-size: .75rem; color: #d4dfed; font-weight: 560; white-space: nowrap; }
.metrics dd { color: #ffcf80; font-size: 2rem; font-weight: 800; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.metrics .bank-cohort-stat {
  position: relative; isolation: isolate; display: block; flex: 0 0 96px; width: 96px; min-width: 96px;
  height: 68px; overflow: hidden; padding: 0; border: 1px solid #8d7855; border-radius: 8px;
  background: #111; box-shadow: 0 5px 14px #0005;
}
.metrics .bank-cohort-stat + div { border-left: 0; padding-left: 0; }
.bank-cohort-image { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bank-cohort-vignette {
  position: absolute; z-index: -1; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at center, transparent 30%, #05060724 60%, #050607b8 100%),
    linear-gradient(0deg, #08090bb3, transparent 55%);
}
.bank-cohort-label {
  position: absolute; right: 6px; bottom: 5px; padding: 2px 5px; border: 1px solid #e7c67877;
  border-radius: 4px; background: #111b; color: #ffe0a1; font-size: .62rem; font-weight: 750; letter-spacing: .06em;
  text-shadow: 0 1px 3px #000; line-height: 1.25;
}
.search-box {
  display: flex; align-items: center; gap: 14px; background: white; border: 1px solid var(--line);
  border-radius: 12px; margin-block: 23px 24px; padding-left: 18px; min-height: 52px;
}
.search-box:focus-within { outline: 2px solid var(--blue); outline-offset: 2px; }
.search-box input { background: transparent; border: none; flex: 1; min-width: 0; outline: none; padding: 13px 16px 13px 0; color: var(--ink); }
.search-box input::placeholder { color: #5d6c81; opacity: 1; }
.search-icon { position: relative; width: 14px; height: 14px; flex: 0 0 14px; border: 2px solid #617087; border-radius: 100%; margin-right: 3px; }
.search-icon::after { content: ""; position: absolute; width: 6px; height: 2px; background: #617087; transform: rotate(45deg); right: -5px; bottom: -3px; border-radius: 1px; }
.work-area { display: grid; align-items: start; gap: 22px; grid-template-columns: minmax(205px, 246px) minmax(0,1fr); }
.filters { border: 1px solid var(--line); border-radius: var(--radius); background: white; padding: 17px; }
.filter-top, .result-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.filter-top h2 { font-size: 1rem; }
.text-button { border: 0; background: none; padding: 4px 0 4px 5px; color: #274d82; font-weight: 730; font-size: .79rem; }
.text-button:hover { text-decoration: underline; }
#filter-form { display: grid; }
#filter-form label { font-size: .78rem; font-weight: 700; color: #35435a; margin-block: 14px 6px; }
#filter-form select {
  width: 100%; min-width: 0; background: #f8fafc; color: var(--ink); border: 1px solid #cfd9e6;
  border-radius: 7px; padding: 9px 7px; font-size: .83rem;
}
.result-top { margin-block: 0 12px; min-height: 33px; }
.result-top h2 { font-size: 1.2rem; font-weight: 780; }
#result-count { color: var(--muted); font-size: .83rem; }
.result-list { display: grid; gap: 12px; }
.card {
  background: white; border: 1px solid var(--line); border-radius: var(--radius); padding: 17px 19px;
  transition: border-color .15s; min-width: 0;
}
.card:focus-within, .card:hover { border-color: #a5b7ce; }
.card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px 20px; }
.card-ref { color: var(--blue); font-size: .74rem; font-weight: 750; }
.card h3 { font-size: 1.08rem; line-height: 1.26; margin-top: 3px; font-weight: 760; }
.card-preview {
  color: var(--muted); margin-block: 9px 13px; font-size: .89rem; overflow: hidden;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
}
.card-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px 16px; }
.chips { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.chip {
  border: 1px solid transparent; display: inline-flex; align-items: center; border-radius: 6px;
  padding: 3px 7px; color: #44536a; background: #edf1f6; font-size: .72rem; font-weight: 700; line-height: 1.2;
}
.chip--format { color: #224d83; background: #eaf1fb; }
.chip--alta { color: #6b4308; background: #fff0d2; }
.chip--media { color: #624980; background: #f2ebfa; }
.chip--aprovada { color: #275c41; background: #e5f3eb; }
.chip--ressalva { color: #6b4308; background: #fff0d2; }
.chip--ajuste, .chip--reprovada { color: #852f38; background: #fbe9ec; }
.open-question, .topic-link { font-weight: 720; color: var(--blue); background: none; border: 0; text-align: left; }
.open-question { flex: 0 0 auto; padding: 5px 0 5px 5px; font-size: .83rem; }
.open-question:hover, .topic-link:hover { text-decoration: underline; }
.empty { padding: 32px 18px; text-align: center; background: white; border: 1px dashed #bac8da; border-radius: var(--radius); }
.empty p { color: var(--muted); margin-top: 5px; }
.pagination { display: flex; justify-content: flex-end; align-items: center; gap: 12px; margin-top: 18px; font-size: .82rem; color: var(--muted); }
.pagination button, .close-button {
  background: white; border: 1px solid #ccd7e4; color: var(--ink); border-radius: 8px; padding: 6px 12px;
}
.pagination button:disabled { color: #6c7889; background: #eef2f6; cursor: default; }
.coverage-summary {
  display: grid; grid-template-columns: minmax(0,1fr) minmax(190px,285px); gap: 18px; align-items: center;
  margin-block: 23px 16px; padding: 20px; border: 1px solid var(--line); background: white; border-radius: var(--radius);
}
.coverage-summary h2 { font-size: 1.13rem; margin-bottom: 4px; }
.coverage-summary p { font-size: .86rem; color: var(--muted); max-width: 66ch; }
.coverage-total { display: grid; gap: 6px; }
.coverage-total strong { color: var(--navy); font-size: .88rem; }
progress { width: 100%; height: 9px; accent-color: var(--blue); border: 0; border-radius: 10px; overflow: hidden; }
progress::-webkit-progress-bar { background: #e5ebf3; }
progress::-webkit-progress-value { background: #315e98; }
progress::-moz-progress-bar { background: #315e98; }
.coverage-groups { display: grid; gap: 9px; }
.coverage-group { background: white; border: 1px solid var(--line); border-radius: 11px; }
.coverage-group summary { cursor: pointer; padding: 14px 17px; color: var(--navy); font-weight: 730; }
.coverage-group summary span { float: right; color: var(--muted); font-size: .82rem; font-weight: 640; margin-left: 8px; }
.coverage-group summary:hover { color: var(--blue); }
.coverage-table { border-collapse: collapse; table-layout: fixed; width: 100%; font-size: .86rem; }
.coverage-table th, .coverage-table td { text-align: left; vertical-align: top; padding: 9px 13px; border-top: 1px solid #e7ecf3; }
.coverage-table th { color: var(--muted); font-size: .75rem; background: #f7f9fc; }
.coverage-table th:nth-child(2) { width: 112px; }
.coverage-table th:nth-child(3) { width: 92px; }
.coverage-table td:last-child { font-variant-numeric: tabular-nums; }
.topic-link { padding: 0; }
dialog {
  border: 1px solid #c9d5e4; border-radius: 16px; width: min(790px, calc(100% - 28px));
  max-height: min(90dvh, 920px); padding: 0; color: var(--ink); box-shadow: 0 18px 80px #09142665;
}
dialog::backdrop { background: #091426a6; }
body:has(dialog[open]) { overflow: hidden; }
.dialog-head {
  display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; position: sticky;
  top: 0; z-index: 1; padding: 17px 23px; border-bottom: 1px solid var(--line); background: #f9fbfe;
}
.dialog-head h2 { font-size: 1.24rem; line-height: 1.24; margin-top: 3px; }
.dialog-context { color: var(--blue); font-size: .78rem; font-weight: 710; }
.close-button { font-size: 1.25rem; line-height: 1; width: 35px; height: 35px; padding: 4px; flex: 0 0 auto; }
.dialog-body { padding: 20px 23px 25px; }
.question-prompt, .answer-text { white-space: pre-line; overflow-wrap: anywhere; }
.question-prompt { font-size: .97rem; }
.choices { padding: 0; border: 0; margin: 16px 0 19px; display: grid; gap: 7px; min-inline-size: 0; }
.choice {
  cursor: pointer; border: 1px solid #d7e0ec; border-radius: 8px; display: grid; gap: 8px;
  align-items: start; grid-template-columns: auto 1.6rem minmax(0,1fr); padding: 8px 9px;
  background: #f8fafd; font-size: .89rem; overflow-wrap: anywhere;
}
.choice:hover, .choice:has(input:checked) { background: #edf4ff; border-color: #7796bf; }
.choice input { margin: .33em 0 0; accent-color: var(--blue); }
.choice-letter { text-align: center; font-weight: 800; color: var(--blue); background: #e5edf8; border-radius: 5px; }
.choice.correct { background: #e9f6ee; border-color: #7dad91; }
.choice.incorrect { background: #fbebed; border-color: #d999a0; }
.primary-button { border: 1px solid #1e416e; border-radius: 8px; padding: 8px 12px; color: white; background: #244b7d; font-weight: 730; font-size: .85rem; }
.primary-button:hover { background: #193759; }
.answer { margin-top: 13px; border-left: 3px solid #498261; border-radius: 0 9px 9px 0; padding: 12px 14px; background: #f0f7f3; scroll-margin-top: 95px; }
.answer h3 { color: #225138; font-size: .99rem; margin-bottom: 8px; }
.answer-text { font-size: .88rem; }
.source { margin-top: 10px; color: var(--muted); font-size: .77rem; overflow-wrap: anywhere; }
@media (max-width: 800px) {
  .shell { width: calc(100% - 38px); }
  .topbar-inner { gap: 20px; }
  .topbar nav { gap: 17px; }
  .intro { padding: 27px 22px; }
  .work-area { grid-template-columns: minmax(190px, 31%) minmax(0,1fr); gap: 14px; }
}
@media (max-width: 620px) {
  .shell { width: calc(100% - 26px); }
  .topbar-inner { flex-wrap: wrap; gap: 0 12px; min-height: 0; padding-top: 11px; }
  .brand { font-size: .89rem; }
  .brand-mark { width: 30px; height: 30px; flex-basis: 30px; font-size: 11px; }
  .topbar nav { order: 3; width: 100%; min-height: 43px; gap: 22px; }
  .private { font-size: .66rem; padding: 4px 7px; }
  .main { padding-top: 16px; }
  .intro { display: grid; gap: 16px; padding: 22px 16px; }
  .intro p { font-size: .89rem; margin-top: 6px; }
  .metrics dd { font-size: 1.55rem; }
  .metrics dt { font-size: .69rem; }
  .metrics { gap: 12px; }
  .metrics div { min-width: 0; }
  .search-box { margin-block: 15px; }
  .work-area { grid-template-columns: minmax(0,1fr); gap: 14px; }
  .filters { padding: 12px; }
  #filter-form { grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: 6px 9px; margin-top: 5px; }
  #filter-form label { margin: 0; }
  #filter-form select { padding: 6px 4px; }
  .card { padding: 13px; }
  .card h3 { font-size: 1rem; }
  .card-foot { flex-wrap: wrap; }
  .open-question { padding-left: 0; }
  .coverage-summary { grid-template-columns: minmax(0,1fr); padding: 13px; }
  .coverage-table th, .coverage-table td { padding: 6px; }
  .coverage-table th:nth-child(2) { width: 78px; }
  .coverage-table th:nth-child(3) { width: 56px; }
  .coverage-group summary { padding: 11px 8px; font-size: .83rem; }
  .coverage-group summary span { font-size: .72rem; }
  .dialog-head, .dialog-body { padding-inline: 13px; }
}

/* Study and management screens */
.app-status { padding: 14px 16px; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--muted); }
.top-action { background: transparent; color: #ecf1f9; border: 1px solid #46536a; border-radius: 7px; padding: 5px 10px; font-size: .82rem; }
.private { text-decoration: none; }
.access-layout {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(270px, .83fr);
  min-height: 450px; border-radius: 17px; background: white; border: 1px solid var(--line); overflow: hidden;
}
.access-intro {
  display: flex; flex-direction: column; justify-content: center; padding: clamp(22px, 6vw, 76px);
  color: white; background: linear-gradient(135deg,#101f36,#23436a);
}
.access-intro h1 { font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1.05; letter-spacing: -.04em; }
.access-intro p { margin-top: 13px; color: #dce7f7; max-width: 28ch; }
.access-box { align-self: center; padding: clamp(20px, 4vw, 48px); }
.section-nav { display: flex; gap: 7px; flex-wrap: wrap; margin-bottom: 15px; }
.section-nav button {
  padding: 8px 12px; background: #edf1f6; border: 1px solid transparent; border-radius: 8px;
  color: #344661; font-weight: 740; font-size: .87rem;
}
.section-nav button.active { color: #183a69; border-color: #a9bcd8; background: #e7effa; }
.section-nav button:hover { border-color: #9fb3ce; }
.stack-form { display: grid; gap: 12px; }
.stack-form label, .admin-filters label { display: grid; gap: 5px; min-width: 0; font-weight: 690; font-size: .84rem; color: #35435a; }
.stack-form input, .stack-form select, .stack-form textarea, .admin-filters input, .admin-filters select {
  display: block; width: 100%; min-width: 0; font: inherit; font-weight: 480; color: var(--ink); background: #fbfcfe;
  border: 1px solid #cfd9e6; border-radius: 8px; padding: 8px 9px; line-height: 1.35;
}
.stack-form textarea { resize: vertical; }
.stack-form input[type="file"] { font-size: .79rem; }
.stack-form input::file-selector-button { margin-inline-end: 8px; cursor: pointer; }
.stack-form > .primary-button { justify-self: start; }
.quiet { color: var(--muted); font-size: .85rem; font-weight: 500; }
.form-status { margin-top: 12px; padding: 9px 11px; color: #254369; background: #edf3fb; border: 1px solid #d8e5f6; border-radius: 8px; font-size: .86rem; }
.form-error { color: #7d2f39; background: #fff2f3; border-color: #efcdd2; }
.secondary-button {
  padding: 7px 10px; color: #244c82; background: white; border: 1px solid #c7d5e7; border-radius: 8px;
  font-size: .82rem; font-weight: 710; text-align: center;
}
.secondary-button:hover { background: #eef4fc; }
button:disabled { opacity: .58; cursor: default; }
.question-card { padding: clamp(15px, 2vw, 22px); }
.question-card .card-head { align-items: flex-start; }
.question-inline-edit-button {
  display: grid; place-items: center; width: 34px; height: 34px; padding: 7px;
  color: #765622; background: #fff; border: 1px solid #cfc5b2; border-radius: 9px;
}
.question-inline-edit-button:hover { background: #f5ead8; border-color: #a98954; }
.question-inline-edit-button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.inline-question-editor { margin-block: 12px; padding: clamp(13px, 2vw, 19px); background: #f8f6f1; border: 1px solid #d8d0c1; border-radius: 12px; }
.inline-question-editor h4 { margin: 0 0 5px; font-size: 1.05rem; }
.inline-question-editor > .quiet { margin-bottom: 14px; }
.inline-edit-field { display: grid; gap: 6px; min-width: 0; }
.inline-edit-field > span { font-size: .85rem; font-weight: 730; }
.inline-edit-field textarea, .inline-edit-field select {
  width: 100%; min-width: 0; padding: 10px 11px; color: #18243a; background: #fff;
  border: 1px solid #cfc5b2; border-radius: 8px; font: inherit; resize: vertical;
}
.inline-edit-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; margin-block: 12px; }
.inline-format-toolbar { display: flex; gap: 7px; }
.inline-format-toolbar .secondary-button { padding: 5px 9px; font-size: .76rem; }
.inline-edit-actions { margin-top: 13px; }
.question-card .inline-question-editor .form-status { margin-top: 10px; }
.question-card .question-prompt { margin-top: 12px; }
.question-chips { margin-top: 7px; }
.question-card .choices { margin-block: 14px; }
.question-card .answer h4 { margin: 0 0 7px; color: #225138; font-size: .99rem; }
.admin-nav { margin-block: 18px 14px; }
.manager-preview { color: #f5d392; font-size: .84rem; font-weight: 720; white-space: nowrap; }
.admin-pane { background: white; border: 1px solid var(--line); border-radius: var(--radius); padding: 19px; }
.admin-head { display: flex; gap: 12px; align-items: flex-start; justify-content: space-between; margin-bottom: 14px; }
.admin-head h2 { font-size: 1.18rem; }
.admin-head .quiet { margin-top: 4px; }
.admin-filters, .form-grid { display: grid; gap: 10px 13px; grid-template-columns: repeat(3, minmax(0,1fr)); }
.admin-filters { margin-block: 12px; }
.admin-pane > .form-status + .stack-form { margin-top: 14px; }
.admin-list { display: grid; gap: 8px; margin-top: 12px; }
.admin-row {
  display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(70px, auto) auto; gap: 8px 12px; align-items: center;
  padding: 10px 12px; border: 1px solid var(--line); border-radius: 9px; overflow-wrap: anywhere;
}
.admin-row h3 { font-size: .93rem; font-weight: 740; }
.admin-row .quiet { font-size: .76rem; }
.admin-row input[type="checkbox"] { accent-color: var(--blue); }
.subscriber-row { grid-template-columns: minmax(0, 1fr) auto auto; }
.action-row, .bulk-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.bulk-actions { background: #f1f5fb; border-radius: 8px; padding: 8px; font-size: .82rem; color: var(--muted); }
.confirm-actions { margin-top: 15px; justify-content: flex-end; }
.ai-review { margin-top: 14px; }
.ai-review summary { color: var(--blue); cursor: pointer; font-weight: 700; font-size: .86rem; }
.ai-review form { margin-top: 10px; }
.ai-connection, .chatgpt-workflow { border: 1px solid var(--line); border-radius: 9px; padding: 12px; background: #f8fafd; }
.ai-connection { margin-bottom: 15px; }
.ai-connection summary { cursor: pointer; font-size: .88rem; color: #244c82; font-weight: 710; }
.setup-steps { margin: 10px 0; padding-left: 22px; font-size: .85rem; color: var(--muted); }
.setup-steps li + li { margin-top: 5px; }
.chatgpt-workflow h3 { font-size: 1rem; }
.chatgpt-workflow .secondary-button { text-decoration: none; }
.dialog-body > .form-status:first-child { margin-block: 0 12px; }
@media (max-width: 800px) {
  .form-grid, .admin-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .access-layout { grid-template-columns: minmax(0,1fr); min-height: 0; }
  .access-intro, .access-box { padding: 19px; }
  .access-intro p { max-width: none; }
  .topbar nav { gap: 13px; }
  .topbar nav a { font-size: .74rem; }
  .admin-pane { padding: 12px; }
  .admin-row { grid-template-columns: auto minmax(0,1fr) auto; }
  .admin-row .chips { grid-column: 2; grid-row: 2; }
  .admin-row > button { grid-column: 3; grid-row: 1 / span 2; }
  .subscriber-row { grid-template-columns: minmax(0,1fr) auto; }
  .subscriber-row .action-row { grid-column: 1 / -1; }
  .manager-preview { white-space: normal; }
}

.catalog-field { min-width: 0; display: grid; gap: 6px; align-content: start; }
#syllabus-note { grid-column: 1 / -1; margin-top: 4px; }

/* Operação Pertencer */
:root {
  background: #171717;
  color: #f2eee6;
  --ink: #201d18;
  --navy: #24211c;
  --muted: #595249;
  --line: #d7cec0;
  --gold: #c2a16a;
  --blue: #69491e;
}
.topbar { background: #101010; border-color: #3b3327; }
.topbar nav a, .top-action, .private { color: #ddd5c8; }
.top-action, .private { border-color: #5f5241; }
.brand-mark { background: #262018; border-color: var(--gold); color: #e4c38a; }
.intro, .access-intro {
  background: linear-gradient(90deg, #171613 0%, #171613f0 33%, #17161362 75%, #111110a8),
    url('/assets/pertencer-hero.webp') right 43% / cover no-repeat #191817;
  color: #fff9ee;
}
.intro { min-height: 216px; border: 1px solid #4c4030; }
.intro::after { display: none; }
.access-intro { background-position: right center; }
.intro p, .access-intro p, .metrics dt { color: #eee4d4; }
.metrics { background: #161513dc; border: 1px solid #7a6545; padding: 12px 16px; border-radius: 9px; }
.metrics div + div { border-color: #8d7855; }
.metrics dd { color: #eacb92; }
.search-box, .filters, .card, .empty, .coverage-summary, .coverage-group, .access-layout, .admin-pane, .app-status {
  background: #fbf8f2;
  color: var(--ink);
}
.card { border-top: 3px solid #b5945f; box-shadow: 0 6px 20px #0002; }
.card:hover, .card:focus-within { border-color: #b5945f; }
#result-count, .pagination { color: #ddd2c1; }
#filter-form label, .stack-form label, .admin-filters label { color: #463c31; }
#filter-form select, .stack-form input, .stack-form select, .stack-form textarea, .admin-filters input, .admin-filters select,
.choice, .dialog-head, .ai-connection, .chatgpt-workflow { background: #fffdf8; border-color: #c8beaf; }
.text-button, .secondary-button, .ai-connection summary { color: #68491f; }
.secondary-button { border-color: #c5b398; background: #fffdf8; }
.secondary-button:hover, .choice:hover, .choice:has(input:checked) { background: #f4ead9; border-color: #9b7546; }
.primary-button { background: #2a251d; border-color: #6e5431; color: #fff5e3; }
.primary-button:hover { background: #463820; }
.choice-letter, .chip--format { background: #efe3cf; color: #63451f; }
.choice.correct { background: #e6f1e8; border-color: #5c886c; }
.choice.incorrect { background: #fae8eb; border-color: #b1707a; }
.question-prompt, .choice, .answer-text { line-height: 1.62; font-size: .96rem; }
.answer { background: #eef5ee; border-left-color: #4f795b; color: #22291f; }
.answer-text mark { background: #f0dfaf; color: #402d13; border-radius: 3px; padding: 0 .12em; font-weight: 740; }
.section-nav button { background: #f2ece1; color: #45382a; }
.section-nav button.active { background: #e8d4ad; border-color: #a78450; color: #3b2a16; }
.discussion { margin-top: 20px; padding-top: 12px; border-top: 1px solid var(--line); }
.discussion summary { width: fit-content; color: #65451b; font-weight: 750; font-size: .93rem; cursor: pointer; }
.discussion-list { margin: 0; padding: 0; list-style: none; }
.discussion-item { margin-top: 9px; padding: 11px 13px; border: 1px solid #ded4c4; border-radius: 8px; background: #fffdf8; }
.discussion-meta { display: flex; flex-wrap: wrap; gap: 4px 9px; align-items: center; font-size: .84rem; overflow-wrap: anywhere; }
.discussion-meta time { color: #665d50; font-size: .75rem; }
.discussion-professor { background: #ead9b4; color: #4b3214; padding: 2px 6px; border-radius: 4px; font-size: .72rem; font-weight: 740; }
.discussion-message { margin-top: 5px; white-space: pre-wrap; overflow-wrap: anywhere; }
.discussion-form, .discussion > button { margin-top: 11px; }
.discussion-status { margin-top: 7px; font-size: .84rem; color: var(--muted); }
.discussion-status.form-error { color: #7d2f39; }
@media (max-width: 620px) {
  .intro { min-height: 180px; }
  .metrics { width: fit-content; }
}

/* Study dashboard */
:root {
  color-scheme: dark;
  background: #101112;
  color: #f1eee6;
  --ink: #f1eee6;
  --navy: #f1eee6;
  --muted: #bdb7aa;
  --line: #3b3934;
  --gold: #c3a56b;
  --blue: #dcc28b;
  --white: #232425;
  --display: "Instrument Sans", "Segoe UI", system-ui, sans-serif;
}
.topbar { background: #0d0e0f; }
.topbar-inner { gap: clamp(10px, 2vw, 30px); }
.topbar nav { flex-wrap: wrap; gap: 0 clamp(11px, 1.6vw, 25px); }
.brand { font-family: var(--display); font-size: clamp(.94rem, 1.45vw, 1.08rem); font-weight: 550; letter-spacing: .02em; }
.brand { margin-right: auto; }
.brand-logo { display: block; width: 38px; height: 46px; object-fit: contain; filter: drop-shadow(0 0 8px #ffffff27); }
[data-theme="light"] .brand-logo { filter: brightness(0) saturate(100%) invert(38%); }
#role-badge.role-switch {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  margin-left: 0; min-height: 30px; padding: 5px 10px; border: 1px solid #5f5241;
  border-radius: 7px; color: #ddd5c8; font-family: inherit; font-size: .82rem;
  font-weight: 400; line-height: 1.2; white-space: nowrap;
}
#role-badge.role-switch:hover { border-color: #c7a86b; color: #ffe0a1; }
[data-theme="light"] #role-badge.role-switch { color: var(--ink); border-color: #a9a299; }
@media (max-width: 800px) {
  .topbar-inner { gap: clamp(8px, 1.2vw, 14px); }
}
@media (max-width: 620px) {
  .brand-logo { width: 31px; height: 38px; }
}
.nav-strip {
  background: linear-gradient(180deg, #171819, #111213);
  border-bottom: 1px solid #493e2d;
  box-shadow: 0 5px 17px #0002;
}
#onboarding-tour { position: fixed; z-index: 10000; inset: 0; }
.onboarding-tour-shade { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.onboarding-tour-shade path { fill: #070b13d9; }
.onboarding-tour-focus { outline: 3px solid #edbe69 !important; outline-offset: 5px !important; filter: drop-shadow(0 0 13px #edbe6966); }
.onboarding-tour-card {
  position: fixed; z-index: 1; width: min(430px, calc(100vw - 32px)); max-height: min(460px, calc(100vh - 32px)); overflow: auto;
  color: #f8f6f1; background: linear-gradient(145deg, #16243a, #0d1728 78%); border: 1px solid #b49a69;
  border-radius: 17px; box-shadow: 0 22px 76px #0008, inset 0 1px #ffffff12;
}
.onboarding-tour-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 17px 20px; border-bottom: 1px solid #ffffff1c; }
.onboarding-tour-brand { display: flex; align-items: center; gap: 11px; color: #f2d49a; font-size: .72rem; font-weight: 750; letter-spacing: .09em; }
.onboarding-tour-brand img { width: 26px; height: 32px; object-fit: contain; }
.onboarding-tour-brand small { display: block; margin-top: 3px; color: #aeb8c7; font-size: .59rem; font-weight: 500; letter-spacing: .18em; }
.onboarding-tour-close { display: grid; place-items: center; width: 32px; height: 32px; flex: 0 0 auto; color: #ece5d8; background: #ffffff0c; border: 1px solid #ffffff25; border-radius: 50%; font-size: 1.35rem; line-height: 1; }
.onboarding-tour-close:hover { background: #ffffff1c; }
.onboarding-tour-body { padding: 23px 24px 25px; }
.onboarding-tour-count { margin-bottom: 8px; color: #edbe69; font-size: .68rem; font-weight: 760; letter-spacing: .13em; text-transform: uppercase; }
.onboarding-tour-body h2 { margin: 0 0 11px; color: #fff; font-family: "Saira", var(--display); font-size: clamp(1.35rem, 3vw, 1.72rem); font-weight: 400; letter-spacing: .035em; line-height: 1.15; }
.onboarding-tour-body > p:last-child { color: #d5dbe5; font-size: .97rem; line-height: 1.62; }
.onboarding-tour-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 20px 19px; border-top: 1px solid #ffffff1c; }
.onboarding-tour-skip { padding: 8px 0; color: #c2cad6; background: none; border: 0; font-size: .78rem; }
.onboarding-tour-skip:hover { color: #fff; text-decoration: underline; }
.onboarding-tour-controls { display: flex; align-items: center; gap: 9px; }
.onboarding-tour-controls .secondary-button, .onboarding-tour-controls .primary-button { min-height: 40px; padding: 8px 14px; }
.onboarding-tour-card :focus-visible { outline-color: #ffd892; }
@media (prefers-reduced-motion: no-preference) {
  .onboarding-tour-card { animation: onboarding-tour-in .25s ease-out both; }
  .onboarding-tour-focus { animation: onboarding-tour-pulse 1.65s ease-in-out infinite; }
  @keyframes onboarding-tour-in { from { opacity: 0; transform: translateY(9px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
  @keyframes onboarding-tour-pulse { 50% { outline-offset: 8px; } }
}
@media (max-width: 560px) {
  .onboarding-tour-card { width: calc(100vw - 24px); max-height: min(440px, calc(100vh - 24px)); }
  .onboarding-tour-head { padding: 14px 16px; }
  .onboarding-tour-body { padding: 20px 18px; }
  .onboarding-tour-footer { align-items: flex-start; padding: 13px 16px 16px; }
  .onboarding-tour-controls { gap: 6px; }
  .onboarding-tour-controls .secondary-button, .onboarding-tour-controls .primary-button { padding-inline: 10px; }
}
.nav-strip-inner { display: flex; align-items: center; min-height: 55px; }
#main-nav {
  display: flex; align-items: stretch; justify-content: space-between; gap: clamp(12px, 1.8vw, 27px);
  width: 100%; min-width: 0; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none;
}
#main-nav::-webkit-scrollbar { display: none; }
#main-nav a {
  display: flex; align-items: center; position: relative; flex: 0 0 auto; min-height: 55px; padding: 0 3px;
  color: #d7d1c6; text-decoration: none; white-space: nowrap;
  font-family: var(--display); font-size: .81rem; font-weight: 600; letter-spacing: .025em;
  transition: color .16s ease;
}
#main-nav a::after {
  content: ""; position: absolute; inset: auto 3px 0; height: 2px; border-radius: 2px 2px 0 0;
  background: transparent; transition: background .16s ease;
}
#main-nav a:hover, #main-nav a[aria-current] { color: #f2d49a; }
#main-nav a:hover::after, #main-nav a[aria-current]::after { background: #c3a56b; }
#main-nav #nav-manager { color: #efd39b; }
#page-title, #manager-title, #result-title, #coverage-view h2, #ranking-title, #simulations-title,
#simulation-title, #vertical-title, #plan-view > h2, #cards-view > h2, #summaries-title,
#admin-materials-title, #admin-questions-title, #subscribers-title, #import-title, #providers-title, #generate-title {
  font-family: "Saira", var(--display);
  font-weight: 300;
  letter-spacing: .055em;
  text-transform: uppercase;
  -webkit-text-stroke: 0;
  filter: url(#pertencer-thin-type);
}
#page-title, #manager-title { font-size: clamp(1.7rem, 3.1vw, 2.55rem); line-height: 1.12; }
#result-title, #coverage-view h2, #ranking-title, #simulations-title, #simulation-title, #vertical-title,
#plan-view > h2, #cards-view > h2, #summaries-title, #admin-materials-title, #admin-questions-title,
#subscribers-title, #import-title, #providers-title, #generate-title { font-size: clamp(1.18rem, 2vw, 1.55rem); line-height: 1.2; }
:root[data-theme="light"] .nav-strip { background: linear-gradient(180deg, #f8f6f1, #eeebe4); border-color: #cfc5b2; }
:root[data-theme="light"] #main-nav a { color: #4e4639; }
:root[data-theme="light"] #main-nav a:hover, :root[data-theme="light"] #main-nav a[aria-current],
:root[data-theme="light"] #main-nav #nav-manager { color: #765622; }
@media (max-width: 620px) {
  .nav-strip-inner { min-height: 48px; }
  #main-nav { justify-content: flex-start; gap: 21px; }
  #main-nav a { min-height: 48px; font-size: .78rem; }
}
.operation-banner {
  display: grid; align-items: center; position: relative; isolation: isolate; overflow: hidden;
  min-height: clamp(152px, 16vw, 204px); padding: clamp(18px, 3vw, 38px);
  margin-bottom: 20px; background: #131415; border: 1px solid #4c4434;
  border-bottom: 1px solid #62523a; border-radius: 8px;
}
.operation-banner::before {
  position: absolute; z-index: -2; inset: 0 0 0 24%; content: '';
  background: url('/assets/pertencer-hero.webp') 62% 40% / cover no-repeat;
  filter: grayscale(100%) brightness(.69) contrast(1.08);
}
.operation-banner::after {
  position: absolute; z-index: -1; inset: 0; content: '';
  background: linear-gradient(90deg,#131415 19%,#131415ee 34%,#13141556 74%,#1314153b);
}
.operation-lockup { width: min(100%, clamp(230px, 36vw, 460px)); }
.operation-lockup h1 {
  position: relative;
  --wordmark: url('/assets/pertencer-logo.webp');
  filter: brightness(0) invert(1) drop-shadow(0 4px 7px #000b) drop-shadow(0 0 14px #ab8b4d42);
}
.operation-logo {
  display: block;
  width: 100%;
  height: auto;
  clip-path: inset(38% 0 0);
}
.operation-lockup h1::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--wordmark) center / 100% 100% no-repeat;
  clip-path: inset(0 0 62%);
  transform: translateX(-18.78%);
  pointer-events: none;
}
.operation-banner p { margin-top: 12px; color: #ece0c8; font-size: clamp(.72rem, 1.4vw, .95rem); }
h2, .intro h1, .access-intro h1 { font-family: var(--display); }
.intro, .access-intro { background: #202123; }
.intro { min-height: 106px; padding-block: 19px; }
.intro h1 { font-size: clamp(1.4rem, 3vw, 2.3rem); letter-spacing: -.05em; }
.metrics { background: #191a1b; padding: 8px 12px; }
.metrics dd { font-family: var(--display); }
.search-box, .filters, .card, .empty, .coverage-summary, .coverage-group, .access-layout, .admin-pane, .app-status, dialog, .training-panel {
  background: #202123; color: var(--ink); border-color: var(--line);
}
.card { border-top-color: #9f8455; }
#filter-form label, .stack-form label, .admin-filters label { color: #e5dfd2; }
#filter-form select, .stack-form input, .stack-form select, .stack-form textarea, .admin-filters input, .admin-filters select,
.choice, .dialog-head, .ai-connection, .chatgpt-workflow, .pagination button, .close-button, .bulk-actions {
  background: #171819; color: var(--ink); border-color: #4d4940;
}
.search-box input::placeholder { color: #c5beb0; }
.text-button, .secondary-button, .ai-connection summary, .discussion summary { color: #e1c590; }
.secondary-button { background: #23211d; border-color: #6c5940; }
.secondary-button:hover, .choice:hover, .choice:has(input:checked) { background: #322b20; border-color: #a98e61; }
.primary-button { background: #b99a5e; color: #16120d; border-color: #dfc38c; }
.primary-button:hover { background: #d4b578; }
.choice-letter, .chip--format { background: #3c3223; color: #efcf96; }
.choice.correct { background: #203a2a; border-color: #78a485; }
.choice.incorrect { background: #48262b; border-color: #bc8289; }
.question-inline-edit-button { color: #e5c98e; background: #23211d; border-color: #6c5940; }
.question-inline-edit-button:hover { background: #322b20; border-color: #a98e61; }
.inline-question-editor { color: #f0ebe1; background: #191a1b; border-color: #514a3e; }
.inline-edit-field > span { color: #e5dfd2; }
.inline-edit-field textarea, .inline-edit-field select { color: #f2eee5; background: #171819; border-color: #4d4940; }
.answer { background: #223126; color: #f2f5ec; border-left-color: #7fa889; }
.question-card .answer h4 { color: #b6dcba; }
.answer-text mark { background: #604d28; color: #fff1cc; }
.section-nav button { background: #272827; color: #e5dfd2; }
.section-nav button.active { background: #4a3c26; color: #ffdda0; border-color: #b69a66; }
.discussion-item { background: #18191a; border-color: #464238; }
.discussion-meta time { color: #c3baaa; }
.discussion-status.form-error { color: #ffc6cd; }
.form-status { background: #282821; color: #e8dfc7; border-color: #4c4432; }
.form-error { background: #382225; color: #ffd1d6; border-color: #795157; }
.coverage-table th, .coverage-table td { border-color: #45413a; }
.coverage-table th { background: #18191a; }
progress::-webkit-progress-bar { background: #3a362d; }
progress::-webkit-progress-value { background: #c3a56b; }
progress::-moz-progress-bar { background: #c3a56b; }
.subscriber-import { border: 1px solid var(--line); border-radius: 8px; padding: 14px; }
.training-panel { border: 1px solid var(--line); border-radius: 8px; padding: clamp(13px, 2.5vw, 25px); }
.training-panel h2 { font-size: clamp(1.1rem, 2.4vw, 1.55rem); }
.training-panel .quiet { margin-top: 6px; }
.training-head { display: flex; align-items: start; justify-content: space-between; flex-wrap: wrap; gap: 13px; }
.training-head label { display: grid; gap: 4px; font-size: .84rem; }
.training-head select { padding: 7px 10px; background: #171819; color: var(--ink); border: 1px solid #60523b; border-radius: 6px; }
.ranking-stats, .training-cards { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(min(160px, 100%), 1fr)); margin-top: 16px; }
.ranking-metric, .training-cards article { display: grid; gap: 5px; align-content: start; padding: 11px; background: #18191a; border: 1px solid #484236; border-radius: 7px; }
.ranking-metric span, .training-cards p { color: var(--muted); font-size: .8rem; }
.ranking-metric strong { color: #e3c68c; font: 650 clamp(.98rem, 1.8vw, 1.4rem)/1.2 var(--display); overflow-wrap: anywhere; }
.ranking-table-wrap { overflow: auto; margin-top: 14px; }
.ranking-table { border-collapse: collapse; width: 100%; font-size: .87rem; min-width: 450px; }
.ranking-table th, .ranking-table td { text-align: left; padding: 9px; border-bottom: 1px solid #45413a; }
.ranking-table thead { background: #171819; }
.ranking-own { background: #383024; }
.ray-x-panel { display: grid; gap: 18px; }
.ray-x-head { align-items: end; }
.ray-x-head h2 { font-family: "Saira", var(--display); text-transform: uppercase; font-weight: 300; letter-spacing: .055em; }
.ray-x-content { display: grid; gap: 18px; }
.ray-x-periods { display: flex; gap: 8px; }
.ray-x-periods button { padding: 7px 13px; }
.ray-x-periods button.active { border-color: var(--gold); background: #493a24; color: #ffdda0; }
.ray-x-metrics { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(min(155px, 100%), 1fr)); }
.ray-x-metric { display: grid; gap: 5px; padding: 13px; background: #18191a; border: 1px solid #484236; border-radius: 8px; }
.ray-x-metric > span, .ray-x-metric small { color: var(--muted); font-size: .8rem; }
.ray-x-metric strong { color: #e3c68c; font: 650 clamp(1rem, 2.5vw, 1.45rem)/1.2 var(--display); }
.ray-x-block { display: grid; gap: 10px; padding: 15px; border: 1px solid var(--line); border-radius: 8px; background: color-mix(in srgb, var(--white) 45%, transparent); }
.ray-x-block-head { font: 300 1.15rem/1.3 "Saira", var(--display); letter-spacing: .045em; text-transform: uppercase; }
.ray-x-block > .quiet { margin: 0; }
.ray-x-chart { display: flex; align-items: end; gap: 2px; min-height: 130px; padding: 10px 4px 0; border-bottom: 1px solid var(--line); overflow: hidden; }
.ray-x-day { display: flex; align-items: end; gap: 1px; flex: 1 1 0; min-width: 2px; height: 115px; }
.ray-x-day i, .ray-x-day b { display: block; width: 50%; min-height: 1px; border-radius: 2px 2px 0 0; }
.ray-x-day i { background: var(--score-hit); }
.ray-x-day b { background: var(--score-error); }
.ray-x-legend { display: flex; gap: 15px; color: var(--muted); font-size: .78rem; }
.ray-x-legend span::before { content: ''; display: inline-block; width: 9px; height: 9px; margin-right: 5px; border-radius: 50%; background: var(--score-hit); }
.ray-x-legend .ray-x-legend-error::before { background: var(--score-error); }
.ray-x-row { display: grid; grid-template-columns: minmax(120px, .8fr) minmax(170px, 1fr); gap: 6px 15px; align-items: center; }
.ray-x-row > strong { overflow-wrap: anywhere; font-size: .9rem; }
.ray-x-row > span { justify-self: end; color: var(--muted); font-size: .8rem; text-align: right; }
.ray-x-track { grid-column: 1 / -1; height: 7px; background: var(--score-error); border-radius: 999px; overflow: hidden; }
.ray-x-track i { display: block; height: 100%; background: var(--score-hit); border-radius: inherit; }
.ray-x-heatmap { display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr)); }
.ray-x-heat { display: grid; gap: 5px; padding: 11px; border-radius: 7px; border: 1px solid var(--line); }
.ray-x-heat strong { font-size: .88rem; }
.ray-x-heat span { font-size: .78rem; color: var(--muted); }
.heat-strong { background: #24362b; border-color: #456c51; }
.heat-mid { background: #413827; border-color: #79633d; }
.heat-low { background: #432b2e; border-color: #81545b; }
.ray-x-weak { margin: 0; padding: 9px 11px; border-left: 3px solid var(--score-error); background: #302426; border-radius: 0 5px 5px 0; }
.ray-x-simulations { display: grid; gap: 9px; grid-template-columns: repeat(auto-fit, minmax(min(185px, 100%), 1fr)); }
[data-theme="light"] .ray-x-metric { background: #fbf8f1; }
[data-theme="light"] .ray-x-metric strong { color: #75541f; }
[data-theme="light"] .ray-x-periods button.active { background: #f4ead8; color: #62461d; }
[data-theme="light"] .ray-x-block { background: #fffdf8; }
[data-theme="light"] .heat-strong { background: #edf5ed; border-color: #a9c5aa; }
[data-theme="light"] .heat-mid { background: #f8f1e4; border-color: #d9c492; }
[data-theme="light"] .heat-low { background: #f8ebed; border-color: #d9afb5; }
[data-theme="light"] .ray-x-weak { background: #f8ebed; }
@media (max-width: 560px) {
  .ray-x-row { grid-template-columns: 1fr; }
  .ray-x-row > span { justify-self: start; text-align: left; }
}
@media (max-width: 620px) {
  .topbar nav { gap: 0 12px; }
  .operation-banner::before { left: 18%; background-position: 57% center; }
  .operation-banner::after { background: linear-gradient(90deg,#131415 5%,#131415d9 35%,#13141559); }
}
.ranking-distribution { display: flex; justify-content: space-between; gap: 8px; }
.ranking-distribution span { font-size: .74rem; }
.pagination button:disabled { background: #232425; color: #c5beb0; }
.topbar nav a { min-height: 38px; }

.activation-details { min-inline-size: 0; border: 1px solid var(--line); border-radius: 8px; padding: 12px; margin: 0; }
.activation-details legend { padding-inline: 5px; font-weight: 650; }

/* Lighter typography for navigation, reading and administration. */
.topbar nav a { font-weight: 500; }
.intro h1, .access-intro h1 { font-weight: 520; letter-spacing: -.025em; }
h2, h3, .card h3, .admin-row h3 { font-weight: 560; }
.card-ref, .discussion summary, .coverage-group summary, .activation-details legend { font-weight: 540; }
.stack-form label, .admin-filters label, #filter-form label { font-weight: 520; }
.primary-button, .secondary-button, .section-nav button, .manager-preview, .text-button { font-weight: 550; }
.admin-pane, .admin-row, .subscriber-import { border-color: #363534; }
.manager-intro { border-color: #42403b; }
.admin-nav { gap: 5px; }
.admin-nav button.active { background: #302a21; border-color: #6e5b3e; color: #e3c995; }
.admin-head h2 { letter-spacing: -.015em; }
.metrics dd, .ranking-metric strong { font-weight: 540; }
.chip { font-weight: 540; }

/* Geometric, lighter display type for platform headings. Body text in
   questions and comments keeps its existing typography. */
body :is(h1, h2):not(.operation-lockup h1):not(.question-card h1):not(.question-card h2):not(.discussion h1):not(.discussion h2) {
  font-family: "Saira", var(--display);
  font-weight: 300;
  letter-spacing: .055em;
  text-transform: uppercase;
  -webkit-text-stroke: 0;
  filter: url(#pertencer-thin-type);
}

.simulate-cta { margin-top: 15px; background: #e1bd69; border-color: #eacc85; color: #201707; }
.simulate-cta:hover { background: #edcf86; }
.filters .simulate-cta { width: 100%; }
.simulation-topics { min-inline-size: 0; border: 1px solid var(--line); border-radius: 8px; padding: 10px; margin: 0; }
.simulation-topics legend { padding-inline: 5px; }
#simulation-topics { max-height: 235px; overflow: auto; margin-top: 7px; }
.simulation-topic { display: grid; grid-template-columns: minmax(0, 1fr) 70px; align-items: center; gap: 10px; padding: 5px 3px; }
.simulation-topic label { display: flex; align-items: start; gap: 9px; }
.simulation-topic input[type="checkbox"] { width: auto; accent-color: var(--gold); margin-top: 3px; }
.simulation-topic input[type="number"] { padding: 5px; }
.simulation-topic input:disabled { opacity: .5; }
.simulation-preview { margin-top: 16px; }
.simulation-preview a { display: inline-block; margin-bottom: 10px; text-decoration: none; }
.simulation-pagination { display: flex; gap: 9px; align-items: center; margin-bottom: 10px; font-size: .85rem; }
.simulation-preview canvas { display: block; width: 100%; height: auto; border: 1px solid var(--line); border-radius: 7px; background: white; }

.simulation-progress { display: flex; align-items: center; gap: 15px; margin-top: 16px; }
.simulation-ring {
  --progress: 0%;
  position: relative;
  display: grid;
  place-items: center;
  flex: 0 0 72px;
  height: 72px;
  border-radius: 50%;
  background: conic-gradient(#6bab88 0 var(--progress), #965651 var(--progress) 100%);
  color: var(--ink);
}
.simulation-ring::before { content: ""; position: absolute; inset: 7px; border-radius: 50%; background: #23211d; }
.simulation-ring span { position: relative; font-weight: 650; font-variant-numeric: tabular-nums; }
.simulation-progress.is-running .simulation-ring::after {
  content: "";
  position: absolute;
  inset: -3px;
  border: 2px solid transparent;
  border-top-color: #e1bd69;
  border-radius: 50%;
  animation: simulation-spin 1.2s linear infinite;
}
@keyframes simulation-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .simulation-progress.is-running .simulation-ring::after { animation: none; }
}

.theme-toggle { white-space: nowrap; }
.posted-materials { margin-top: 23px; padding-top: 17px; border-top: 1px solid var(--line); }
.material-tabs { margin-block: 12px; }
.material-list { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.material-card { padding: 12px 14px; border: 1px solid var(--line); border-radius: 8px; min-width: 0; }
.material-card h4 { margin: 2px 0 8px; font-size: 1rem; }
.material-files { margin: 0; padding-inline-start: 18px; }
.material-download, .material-keep { overflow-wrap: anywhere; }
.simulation-cohorts { margin-top: 22px; }
.simulation-cohorts h3 { margin-bottom: 12px; font-size: 1.06rem; }
.cohort-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 220px)); gap: 12px; }
.cohort-card {
  position: relative; isolation: isolate; display: flex; align-items: end; overflow: hidden;
  width: 100%; aspect-ratio: 1; padding: 15px; text-align: left; color: #fff;
  border: 1px solid #4f4a3f; border-radius: 10px; background: #101112;
  box-shadow: 0 6px 18px #0003; transition: border-color .18s, transform .18s, box-shadow .18s;
}
.cohort-image { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cohort-pm .cohort-image { object-position: 70% center; }
.cohort-pc .cohort-image { object-position: center; }
.cohort-pp .cohort-image { object-position: 53% center; }
.cohort-card:hover { transform: translateY(-2px); border-color: #c4a462; box-shadow: 0 10px 24px #0005; }
.cohort-card:focus-visible { outline-color: #e6c37a; }
.cohort-card.is-selected { border-color: #e1bd69; box-shadow: 0 0 0 2px #e1bd6940, 0 10px 24px #0005; }
.cohort-shade {
  position: absolute; z-index: -1; inset: 0;
  background: radial-gradient(ellipse at center, transparent 30%, #05060728 60%, #050607b8 100%),
    linear-gradient(0deg,#101112f2 0%,#1011128c 43%,#1011120d 100%);
}
.cohort-copy { display: grid; justify-items: start; gap: 2px; }
.cohort-code { color: #f0cc7d; font-size: clamp(1.65rem, 2.2vw, 2.15rem); line-height: 1; letter-spacing: .06em; font-weight: 650; }
.cohort-name { margin-top: 3px; font-size: 1rem; font-weight: 620; }
.cohort-caption { color: #e5e0d5; font-size: .78rem; }
.material-online-row { flex-basis: 100%; margin-top: 3px; }
.material-online { width: 100%; text-align: center; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
#material-keep { display: grid; gap: 8px; margin-top: 8px; }
.stack-form .material-keep { display: flex; align-items: start; gap: 8px; }
.stack-form .material-keep input { width: auto; accent-color: var(--gold); }

:root[data-theme="light"] {
  color-scheme: light;
  color: #202326;
  background: #f6f5f2;
  --ink: #202326;
  --navy: #263039;
  --muted: #575a5c;
  --line: #d6d3ca;
  --gold: #8b672d;
  --blue: #6a4d1f;
  --white: #fff;
}
[data-theme="light"] :is(.topbar, .search-box, .filters, .card, .empty, .coverage-summary, .coverage-group, .access-layout, .admin-pane, .app-status, dialog, .training-panel) {
  background: #fff; color: var(--ink); border-color: var(--line);
}
[data-theme="light"] :is(.topbar a, .top-action, .private, #result-count, .pagination, .intro, .access-intro, .intro p, .access-intro p, .metrics dt) { color: var(--ink); }
[data-theme="light"] :is(.top-action, .private) { border-color: #a9a299; }
[data-theme="light"] .topbar :focus-visible { outline-color: #806128; }
[data-theme="light"] .operation-banner { background: #f7f4ee; border-color: #d4c6ae; }
[data-theme="light"] .operation-banner::before { filter: grayscale(100%) contrast(1.06); opacity: .68; }
[data-theme="light"] .operation-banner::after { background: linear-gradient(90deg,#f7f4ee 18%,#f7f4eef2 37%,#f7f4ee52 60%,#f7f4ee08 100%); }
[data-theme="light"] .operation-lockup h1 { filter: none; }
[data-theme="light"] .operation-banner p { color: #45413b; }
[data-theme="light"] :is(.intro, .access-intro, .metrics, .ranking-metric, .training-cards article, .discussion-item, .material-card) {
  color: var(--ink); background: #faf8f4; border-color: var(--line);
}
[data-theme="light"] :is(.metrics dd, .ranking-metric strong, .manager-preview, .text-button, .secondary-button, .ai-connection summary, .discussion summary) { color: #674a1e; }
[data-theme="light"] :is(#filter-form label, .stack-form label, .admin-filters label, .discussion-meta time) { color: #45413b; }
[data-theme="light"] .question-inline-edit-button { color: #765622; background: #fff; border-color: #cfc5b2; }
[data-theme="light"] .question-inline-edit-button:hover { background: #f5ead8; border-color: #a98954; }
[data-theme="light"] .inline-question-editor { color: #18243a; background: #f8f6f1; border-color: #d8d0c1; }
[data-theme="light"] .inline-edit-field > span { color: #45413b; }
[data-theme="light"] .inline-edit-field textarea, [data-theme="light"] .inline-edit-field select { color: #18243a; background: #fff; border-color: #cfc5b2; }
[data-theme="light"] .search-box input::placeholder { color: var(--muted); }
[data-theme="light"] :is(#filter-form select, .stack-form input, .stack-form select, .stack-form textarea, .admin-filters input, .admin-filters select, .training-head select,
.choice, .dialog-head, .ai-connection, .chatgpt-workflow, .pagination button, .close-button, .bulk-actions, .secondary-button, .ranking-table thead, .coverage-table th) {
  background: #f8f7f4; color: var(--ink); border-color: #c5beb0;
}
[data-theme="light"] :is(.secondary-button:hover, .choice:hover, .choice:has(input:checked), .ranking-own) { background: #f5ead8; border-color: #a98954; }
[data-theme="light"] :is(.choice-letter, .chip--format) { background: #f1e7d5; color: #60431b; }
[data-theme="light"] .choice.correct { background: #e9f5ec; border-color: #54805f; }
[data-theme="light"] .choice.incorrect { background: #faecec; border-color: #a7616b; }
[data-theme="light"] .answer { color: #1e3123; background: #edf5ed; border-left-color: #568564; }
[data-theme="light"] .question-card .answer h4 { color: #30583b; }
[data-theme="light"] .answer-text mark { color: #503815; background: #f5e3b7; }
[data-theme="light"] .section-nav button { color: #423d36; background: #f3f0eb; }
[data-theme="light"] .section-nav button.active { color: #5f4116; background: #f2e4ca; border-color: #a98954; }
[data-theme="light"] .form-status { background: #f8f1e4; color: #514022; border-color: #d9c9ac; }
[data-theme="light"] :is(.form-error, .discussion-status.form-error) { color: #84272e; background: #fbeff0; border-color: #e3b9be; }
[data-theme="light"] :is(.ranking-table th, .ranking-table td, .coverage-table th, .coverage-table td) { border-color: var(--line); }
[data-theme="light"] .pagination button:disabled { background: #f0ede8; color: #55514b; }
[data-theme="light"] .simulation-ring::before { background: #fff; }
[data-theme="light"] progress::-webkit-progress-bar { background: #e9e2d6; }
@media (max-width: 620px) {
  .inline-edit-choices { grid-template-columns: 1fr; }
  [data-theme="light"] .operation-banner::after { background: linear-gradient(90deg,#f7f4ee 8%,#f7f4eee8 42%,#f7f4ee47 75%,#f7f4ee1c); }
}

.question-highlight { font-weight: 750; text-decoration: underline; text-underline-offset: .18em; }
.question-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 3px; }
.question-actions .answer-key-button { color: #c1e5c9; background: #203328; border-color: #52765d; }
.question-actions .answer-key-button:hover { background: #2b4735; border-color: #75a080; }
.question-actions .athena-help-button { border-color: #716044; }
[data-theme="light"] .question-actions .answer-key-button { color: #315b3a; background: #edf5ee; border-color: #9bb9a0; }
[data-theme="light"] .question-actions .answer-key-button:hover { background: #e0efe2; border-color: #6e9977; }
[data-theme="light"] .question-actions .athena-help-button { color: #62491f; border-color: #c6b58e; }
@media (max-width: 520px) {
  .question-actions { align-items: stretch; }
  .question-actions > button { flex: 1 1 145px; }
}

.material-files { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 12px 0; }
.material-download { display: inline-block; text-decoration: none; }
.study-panel h2 { margin-bottom: 16px; }
.summary-saved { margin-top: 18px; padding: 14px; border: 1px solid var(--line); border-radius: 10px; background: #17181988; }
.summary-saved .training-head { margin-bottom: 10px; }
.summary-saved h3 { font-size: 1rem; }
.summary-saved-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 9px; }
.summary-saved-card {
  display: grid; gap: 4px; min-width: 0; padding: 11px 13px; text-align: left; color: var(--ink);
  background: var(--white); border: 1px solid var(--line); border-radius: 8px; transition: border-color .16s, transform .16s;
}
.summary-saved-card:hover { transform: translateY(-1px); border-color: var(--gold); }
.summary-saved-card strong { overflow-wrap: anywhere; }
.summary-saved-card span { color: var(--muted); font-size: .8rem; }
.summary-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: end; gap: 8px; }
.summary-actions button { margin: 0; }
[data-theme="light"] .summary-saved { background: #f5f1e9; }
.study-scope { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.study-box { min-width: 0; margin: 0; padding: 13px; border: 1px solid var(--line); border-radius: 9px; background: var(--white); }
.study-box legend { max-width: 100%; white-space: pre-wrap; padding-inline: 4px; }
.study-box summary { cursor: pointer; font-weight: 600; }
.study-box textarea { width: 100%; font: inherit; }
.study-box h4 { margin: 0 0 10px; }
.study-actions { margin-block: 14px; }
.study-output { display: grid; gap: 13px; margin-top: 16px; }
.study-day { display: grid; gap: 8px; border-top: 1px solid var(--line); padding-top: 12px; }
.study-count { display: flex; gap: 8px; align-items: center; color: var(--muted); font-size: .9rem; }
.study-count input { width: 65px; }
.study-check, .stack-form .study-check { display: flex; align-items: start; gap: 9px; padding: 4px 0; }
.study-check input, .stack-form .study-check input { width: auto; margin: .25em 0 0; accent-color: var(--gold); }
.plan-row .action-row { margin-top: 9px; }
.flashcard-deck { display: grid; justify-items: center; width: 100%; gap: 4px; }
.flashcard-deck > .study-print-only { width: 100%; }
.flashcard { display: block; margin-inline: auto; border: 0; background: transparent; color: var(--ink); width: min(100%, 650px); padding: 0; perspective: 1000px; }
.flashcard-inner { display: grid; transform-style: preserve-3d; transition: transform .38s ease; }
.flashcard.is-flipped .flashcard-inner { transform: rotateY(180deg); }
.flashcard-face { grid-area: 1/1; display: grid; place-items: center; min-height: 188px; padding: 24px; overflow-wrap: anywhere;
  position: relative; border: 1px solid var(--gold); border-radius: 12px; background: var(--white); backface-visibility: hidden; font-size: 1.1rem; text-align: center; }
.flashcard-front::before { position: absolute; top: 12px; left: 14px; color: #ead29e; font-size: .7rem; font-weight: 750; letter-spacing: .12em; }
.flashcard-deck[data-contest="PMPE"] .flashcard-front { color: #f3efdf; background: radial-gradient(ellipse at top, #34463a, #18241d 68%); border-color: #b9a270; }
.flashcard-deck[data-contest="PMPE"] .flashcard-front::before { content: "PMPE · REVISÃO TÁTICA"; }
.flashcard-deck[data-contest="PMPE"] .flashcard-back { background: #29392e; color: #f3efdf; }
.flashcard-deck[data-contest="PCPE"] .flashcard-front { color: #eef2fa; background: radial-gradient(ellipse at top, #30415b, #182234 68%); border-color: #aebed4; }
.flashcard-deck[data-contest="PCPE"] .flashcard-front::before { content: "PCPE · INVESTIGAÇÃO"; color: #d5e1f2; }
.flashcard-deck[data-contest="PCPE"] .flashcard-back { background: #27364d; color: #eef2fa; }
.flash-controls { justify-content: center; }
.flashcard-back { transform: rotateY(180deg); background: #353123; color: #fff0cf; }
.flashcard-deck[data-contest="PMPE"] .flashcard-back { background: #29392e; color: #f3efdf; }
.flashcard-deck[data-contest="PCPE"] .flashcard-back { background: #27364d; color: #eef2fa; }
[data-theme="light"] .flashcard-back { background: #f5ecd9; color: #352614; }
.flashcard-deck[data-contest="PMPE"] .flashcard-back { background: linear-gradient(145deg, #66512c, #46371f); color: #fff4d8; border-color: #c6a566; }
.flashcard-deck[data-contest="PCPE"] .flashcard-back { background: linear-gradient(145deg, #35556b, #263d50); color: #edf6fa; border-color: #92b5c5; }
.flashcard-deck[data-contest="PPPE"] .flashcard-back { background: linear-gradient(145deg, #653740, #44252d); color: #fff0ed; border-color: #c38b82; }
[data-theme="light"] .flashcard-deck[data-contest="PMPE"] .flashcard-back { background: linear-gradient(145deg, #e9d6a9, #d5bd82); color: #332714; border-color: #aa8548; }
[data-theme="light"] .flashcard-deck[data-contest="PCPE"] .flashcard-back { background: linear-gradient(145deg, #d7e7eb, #b9d0d8); color: #1e3440; border-color: #7295a2; }
[data-theme="light"] .flashcard-deck[data-contest="PPPE"] .flashcard-back { background: linear-gradient(145deg, #efd6d2, #d9b5b1); color: #42292a; border-color: #a86f70; }
.flash-controls { margin-top: 9px; }
.flashcard-focus-dialog {
  width: min(1120px, calc(100vw - 28px)); height: min(90dvh, 860px); max-width: none; max-height: none;
  padding: 0; overflow: auto; border: 1px solid #907346; border-radius: 18px; background: #141516; color: #f3efe7;
  opacity: 0; transform: translateY(12px) scale(.97); transition: opacity .24s ease, transform .24s ease;
}
.flashcard-focus-dialog[open] { display: block; }
.flashcard-focus-dialog.is-open { opacity: 1; transform: none; }
.flashcard-focus-dialog.is-closing { opacity: 0; transform: translateY(8px) scale(.97); }
.flashcard-focus-dialog::backdrop { background: rgb(4 5 6 / 76%); transition: background .24s ease; }
.flashcard-focus-dialog.is-closing::backdrop { background: transparent; }
.flashcard-focus-shell { display: grid; grid-template-rows: auto minmax(0,1fr) auto; gap: 18px; min-height: 100%; padding: clamp(16px, 3vw, 32px); }
.flashcard-focus-header { display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid #4a4031; padding-bottom: 14px; }
.flashcard-focus-kicker { margin-bottom: 4px; color: #d6b777; font-size: .72rem; font-weight: 800; letter-spacing: .15em; }
.flashcard-focus-header h2 { color: inherit; font-size: clamp(1.15rem, 3vw, 1.65rem); }
.flashcard-focus-header .close-button { min-width: 86px; min-height: 40px; }
.flashcard-focus-output { display: grid; align-content: center; gap: 12px; min-height: 0; margin: 0; }
.flashcard-focus-output .flashcard { width: min(920px, 100%); animation: card-arrive .28s ease both; }
.flashcard-focus-output .flashcard-face { min-height: clamp(300px, 57vh, 620px); padding: clamp(30px, 6vw, 72px); font-size: clamp(1.15rem, 3.2vw, 1.8rem); }
.flashcard-focus-output .flashcard-front::before { top: 20px; left: 22px; font-size: .78rem; }
.flashcard-focus-output .flash-controls { gap: 14px; margin-top: 8px; }
.flashcard-focus-output .flash-controls button { min-width: 120px; min-height: 44px; }
.flashcard-focus-finish { align-self: end; padding: 15px 18px; border: 1px solid #846d46; border-radius: 12px; background: #211e19; text-align: center; }
.flashcard-focus-finish h3 { margin-bottom: 4px; color: #f1d59c; }
.flashcard-focus-finish p { color: #ded6c8; }
.flashcard-focus-finish .action-row { justify-content: center; margin-top: 10px; }
[data-theme="light"] .flashcard-focus-dialog { background: #fbf9f4; color: #29251e; }
[data-theme="light"] .flashcard-focus-header { border-bottom-color: #d8c9ab; }
[data-theme="light"] .flashcard-focus-finish { background: #f2ecdf; }
[data-theme="light"] .flashcard-focus-finish h3 { color: #634a1e; }
[data-theme="light"] .flashcard-focus-finish p { color: #514a3e; }
@keyframes card-arrive { from { opacity: .55; transform: translateY(7px); } to { opacity: 1; transform: none; } }
@media (max-width: 620px) {
  .flashcard-focus-dialog { width: calc(100vw - 14px); height: calc(100dvh - 14px); border-radius: 14px; }
  .flashcard-focus-shell { gap: 12px; padding: 12px; }
  .flashcard-focus-output .flashcard-face { min-height: 54dvh; padding: 38px 17px; font-size: 1.15rem; }
  .flashcard-focus-output .flash-controls { gap: 8px; }
  .flashcard-focus-output .flash-controls button { min-width: 0; padding-inline: 12px; }
  .flashcard-focus-finish .action-row { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  .flashcard-focus-dialog, .flashcard-focus-dialog::backdrop, .flashcard-focus-output .flashcard { transition: none; animation: none; }
}
.summary-highlight { margin-top: 8px; padding: 9px; border-left: 3px solid var(--gold); color: var(--blue); background: var(--white); }
.study-map { display: flex; flex-wrap: wrap; list-style-position: inside; padding: 0; gap: 8px; }
.study-map li { border: 1px solid #638798; border-radius: 7px; padding: 7px; background: #25353a; color: #d5edf5; }
[data-theme="light"] .study-map li { background: #e9f3f7; color: #173b4a; }
.summary-table { width: 100%; border-collapse: collapse; overflow-wrap: anywhere; }
.summary-table :is(td,th) { text-align: left; padding: 7px; border-bottom: 1px solid var(--line); }
.summary-table th { color: var(--blue); }
#online-ranking-list { overflow: auto; }
.study-print-only, .print-identity { display: none; }
.flashcard-export-dialog { width: min(1420px, calc(100vw - 28px)); height: min(900px, calc(100dvh - 28px)); max-width: none; max-height: none; padding: 0; border: 1px solid #766547; border-radius: 18px; color: var(--ink); background: #171819; }
.flashcard-export-dialog::backdrop { background: rgb(0 0 0 / 78%); }
[data-theme="light"] .flashcard-export-dialog { background: #fbf9f4; }
[data-theme="light"] .flashcard-export-choice { background: #f0ece3; }
.flashcard-export-shell { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 15px; height: 100%; padding: clamp(14px, 2vw, 24px); }
.flashcard-export-shell .flashcard-focus-header { padding-bottom: 10px; }
.flashcard-export-shell h2 { margin: 0; }
.flashcard-export-layout { display: grid; grid-template-columns: minmax(270px, 360px) minmax(0, 1fr); gap: 17px; min-height: 0; }
.flashcard-export-selection { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; gap: 10px; min-height: 0; }
.flashcard-export-tools, .flashcard-export-preview-heading { display: flex; align-items: center; justify-content: space-between; gap: 9px; }
.flashcard-export-tools .action-row { gap: 12px; }
.flashcard-export-list { display: grid; align-content: start; gap: 7px; min-height: 0; overflow: auto; padding: 2px 5px 2px 2px; }
.flashcard-export-choice { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 9px; padding: 10px; border: 1px solid var(--line); border-radius: 9px; background: #202224; }
.flashcard-export-choice input { margin-top: 4px; }
.flashcard-export-choice span { overflow-wrap: anywhere; font-size: .82rem; line-height: 1.45; }
.flashcard-export-preview-wrap { display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 8px; min-width: 0; min-height: 0; }
.flashcard-export-preview-heading { padding-inline: 5px; }
.flashcard-export-preview-wrap iframe { width: 100%; height: 100%; min-height: 0; border: 1px solid #444; border-radius: 8px; background: #777; }
.flashcard-export-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid #494237; padding-top: 11px; }
.flashcard-export-footer p { max-width: 600px; margin: 0; }
.flashcard-export-footer .action-row { flex-wrap: nowrap; }
.official-flashcard-manager { margin-top: 28px; border-top: 1px solid var(--line); padding-top: 20px; }
.official-flashcard-bulk { justify-content: flex-start; margin-block: 12px; }
.official-flashcard-bulk label { display: inline-flex; align-items: center; gap: 7px; }
.official-flashcard-row { align-items: start; }
.official-flashcard-copy { min-width: 0; overflow-wrap: anywhere; }
.official-flashcard-copy h3 { margin: 4px 0 7px; font-size: .96rem; }
.official-flashcard-copy p:last-child { white-space: pre-wrap; }
.pdf-import-history { margin-top: 27px; border-top: 1px solid var(--line); padding-top: 20px; }
.pdf-import-search { display: grid; max-width: 440px; gap: 6px; margin-block: 10px; }
.pdf-import-history-row { align-items: center; }
.pdf-import-history-copy { min-width: 0; overflow-wrap: anywhere; }
.pdf-import-history-copy h3 { margin-bottom: 4px; font-size: .98rem; }
@media (max-width: 620px) {
  .flashcard-export-dialog { width: calc(100vw - 12px); height: calc(100dvh - 12px); border-radius: 12px; }
  .flashcard-export-shell { gap: 9px; padding: 10px; }
  .flashcard-export-layout { grid-template-columns: 1fr; grid-template-rows: minmax(180px, .8fr) minmax(200px, 1fr); }
  .flashcard-export-footer { align-items: stretch; flex-direction: column; }
  .flashcard-export-footer .action-row { flex-wrap: wrap; }
}
@media (max-width: 620px) { .study-scope { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .flashcard-inner { transition: none; } }
@media print {
  :root, :root[data-theme="light"] { color-scheme: light; background: white; color: black; --ink: black; --white: white; --blue: #573c12; --line: #ccc; --muted: #444; }
  body { padding-top: 32px; }
  .print-identity { display: flex; justify-content: space-between; position: fixed; top: 0; left: 0; right: 0; padding: 2mm 1mm; background: white; color: black; border-bottom: 1px solid #bbb; font-size: 9pt; }
  body::after { content: attr(data-print-email); display: block; position: fixed; z-index: 9999; top: 48%; left: 50%; max-width: 90vw; color: #65625b; font-size: 17pt; letter-spacing: .03em; opacity: .085; white-space: nowrap; transform: translate(-50%, -50%) rotate(-34deg); pointer-events: none; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .topbar, .nav-strip, .operation-banner, .skip, .study-panel form, .study-panel button, .flash-controls { display: none !important; }
  .summary-interactive { display: none !important; }
  .summary-print-questions { display: block !important; }
  #summary-output .summary-deck .study-print-only { display: none !important; }
  .study-panel, .study-panel .study-box { background: white !important; color: black !important; box-shadow: none; }
  .summary-block { break-inside: avoid; }
  .study-print-only { display: grid; gap: 6px; }
  .study-print-only .study-box { break-inside: avoid; }
  .study-map li { background: #f2f5f7 !important; color: black !important; }
  .summary-key > p { display: block; }
}

@media print {
  @page { margin-top: 20mm; }
  body { padding-top: 0; }
  .print-identity { top: -6mm; }
}
#online-review label { display: grid; gap: 5px; margin-top: 9px; }
#online-review select { width: fit-content; }
#online-review textarea { border-radius: 6px; padding: 7px; }
.plan-subject { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 14px; border-bottom: 1px solid var(--line); padding: 4px 0; }
.plan-subject:last-child { border-bottom: 0; }
.plan-subject input[type="number"] { width: 90px; }
.plan-progress { margin-top: 7px; }
.plan-note { flex: 1 1 195px; }
.plan-note input { width: 100%; min-width: 70px; }
.plan-links { margin-top: 8px; }

.study-planning-nav a { text-decoration: none; }
.study-planning-nav [aria-current="page"] { color: var(--ink); border-color: var(--gold); }
.vertical-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; }
.vertical-heading strong::before { content: '▸'; display: inline-block; margin-right: 7px; color: var(--gold); }
.vertical-discipline[open] .vertical-heading strong::before { transform: rotate(90deg); }
.vertical-badge { padding: 3px 8px; border: 1px solid var(--line); border-radius: 999px; font-weight: 500; color: var(--muted); font-size: .8rem; }
.vertical-table-wrap { margin-top: 9px; }
.vertical-table { table-layout: fixed; }
.vertical-table th:first-child { width: auto; }
.vertical-table :is(th,td):nth-child(2) { width: 100px; text-align: center; }
.vertical-table :is(th,td):nth-child(3) { width: 130px; text-align: center; }
.vertical-table th[scope="row"] { color: var(--ink); font-weight: 500; }
.vertical-topic > span { overflow-wrap: anywhere; }
.vertical-code { color: var(--muted); font-size: .8rem; margin-right: 7px; }
.vertical-subtopic .vertical-topic { padding-inline-start: 18px; }
.vertical-table input[type="checkbox"] { accent-color: var(--gold); width: 17px; height: 17px; }
.vertical-table input[type="number"] { width: min(100%, 85px); padding: 4px 5px; }
@media (max-width: 620px) {
  .vertical-table :is(th,td):nth-child(2) { width: 68px; }
  .vertical-table :is(th,td):nth-child(3) { width: 85px; }
  .vertical-table th { font-size: .82rem; }
  .vertical-subtopic .vertical-topic { padding-inline-start: 9px; }
}

.summary-prose { line-height: 1.65; overflow-wrap: anywhere; }
.summary-literal { margin: 9px 0 12px; padding: 12px 14px; border: 1px solid #647f8b; border-left: 4px solid #8bb2c2; border-radius: 8px; background: #25353a; color: #e0f0f3; line-height: 1.6; overflow-wrap: anywhere; }
.summary-literal strong { display: block; margin-bottom: 5px; color: #a9d3df; font-size: .88rem; letter-spacing: .02em; }
.summary-literal p { margin: 0; white-space: pre-wrap; }
[data-theme="light"] .summary-literal { background: #edf6f8; color: #203d48; border-color: #a4c2cc; border-left-color: #477f90; }
[data-theme="light"] .summary-literal strong { color: #315f6e; }
.summary-answer-feedback { margin-top: 10px; padding: 11px 13px; border-radius: 8px; line-height: 1.55; }
.summary-answer-feedback p { margin: 6px 0 0; }
.summary-answer-feedback.is-correct { background: #183b2e; border: 1px solid #53836a; color: #dcf4e6; }
.summary-answer-feedback.is-wrong { background: #43282c; border: 1px solid #9d5962; color: #ffe2e5; }
[data-theme="light"] .summary-answer-feedback.is-correct { background: #edf7ef; color: #244d30; }
[data-theme="light"] .summary-answer-feedback.is-wrong { background: #fff0f0; color: #722e39; }
.summary-interactive { margin-block: 8px; }
.summary-flash-group h3 { margin: 0 0 8px; }
.summary-print-questions { display: none; }
.summary-print-question, .summary-print-answer { break-inside: avoid; margin: 8px 0; }
.summary-print-question p { margin: 4px 0; }
.summary-print-answer { border-left: 3px solid var(--gold); padding-left: 9px; }
.summary-print-answer p { margin: 4px 0; }
.summary-callout { margin-top: 12px; border-radius: 8px; padding: 11px 13px; line-height: 1.55; overflow-wrap: anywhere; }
.summary-callout ul { margin: 5px 0 0; padding-inline-start: 18px; }
.summary-callout li + li { margin-top: 5px; }
.summary-examples { border: 1px solid #4c6e81; background: #25353a; color: #d9eef5; }
.summary-pitfalls { border: 1px solid #856153; background: #3c2c27; color: #fae2d7; }
[data-theme="light"] .summary-examples { background: #eaf5f9; color: #183d4d; }
[data-theme="light"] .summary-pitfalls { background: #fff1e9; color: #653428; }
@media print {
  body:has(#summaries-view:not([hidden])) .print-identity { position: static; padding-bottom: 5px; }
  .summary-block { break-inside: auto; }
  .summary-callout { background: white !important; color: black !important; }
}

.question-items { white-space: pre-line; }

:root { --score-hit: #c89d50; --score-error: #9d5560; --score-neutral: #4b4540; --score-hole: #211e1a; }
[data-theme="light"] { --score-hit: #a97729; --score-error: #a35160; --score-neutral: #d6cfc1; --score-hole: #fffaf1; }
.score-track { height: 8px; border-radius: 999px; overflow: hidden; background: var(--score-error); }
.score-fill { display: block; height: 100%; background: var(--score-hit); transition: width .25s ease; }
.score-meter { display: grid; gap: 5px; }
.score-legend { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 13px; font-size: .86rem; color: var(--muted); }
.score-legend strong { color: var(--ink); }
.score-ring { --score: 0%; position: relative; isolation: isolate; display: inline-grid; place-items: center; width: 56px; aspect-ratio: 1; border-radius: 50%; color: var(--ink); background: conic-gradient(var(--score-hit) 0 var(--score), var(--score-error) var(--score) 100%); flex: 0 0 auto; }
.score-ring-empty { background: var(--score-neutral); }
.score-ring::before { content: ''; position: absolute; z-index: -1; inset: 5px; border-radius: 50%; background: var(--score-hole); }
.score-ring strong { font-size: 1rem; font-variant-numeric: tabular-nums; }
.bank-performance { display: flex; align-items: center; gap: 8px; background: var(--white); border: 1px solid var(--line); border-radius: 10px; padding: 6px 10px; color: var(--ink); font: inherit; }
.bank-performance:hover { border-color: var(--gold); }
.bank-performance > span:last-child { font-size: .83rem; }
#bank-contest-status { grid-column: 1 / -1; margin: 5px 0; }
.plan-score-block { margin-top: 10px; }
.plan-score-overview { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 14px; }
.plan-score-overview .score-ring { width: 82px; }
.plan-score-overview .score-ring strong { font-size: 1.25rem; }
.plan-score-overview h4, .performance-subject h3, .performance-subject h4 { margin: 0 0 6px; }
@media (prefers-reduced-motion: reduce) { .score-fill { transition: none; } }

.exam-clock {
  position: sticky;
  top: 0;
  z-index: 1;
  margin: 0 0 1rem;
  padding: .65rem 1rem;
  border: 1px solid var(--line);
  border-radius: .55rem;
  background: var(--white);
  color: var(--ink);
  font-weight: 650;
  font-variant-numeric: tabular-nums;
}
.exam-result { margin-bottom: .5rem; }
.exam-answer { font-weight: 650; }
#unseen-count { margin-block: .5rem; }

#athena-launch {
  position: fixed;
  z-index: 9;
  inset: auto max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) auto;
  display: grid;
  place-items: center;
  width: 62px;
  height: 62px;
  padding: 2px;
  border: 2px solid #23b9ef;
  border-radius: 50%;
  background: #061527;
  box-shadow: 0 4px 25px #09a5e45c;
}
:is(#athena-launch,.athena-head) img { display: block; object-fit: cover; border-radius: 50%; }
#athena-panel {
  inset: auto 0 0 auto;
  margin: 0;
  width: min(100%, 470px);
  max-width: 100%;
  height: min(100dvh, 820px);
  max-height: 100dvh;
  border-radius: 16px 0 0 0;
  padding: 0;
  background: var(--white);
  color: var(--ink);
}
#athena-panel[open] { display: grid; grid-template-rows: auto auto minmax(0,1fr) auto; }
.athena-head { display: flex; align-items: center; gap: 12px; }
.athena-head .close-button { margin-inline-start: auto; }
.athena-shortcuts,.athena-tools { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.athena-shortcuts { padding: 12px 16px; border-bottom: 1px solid var(--line); }
#athena-log { overflow: auto; overscroll-behavior: contain; padding: 14px 16px; }
.athena-turn { margin-bottom: 12px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; overflow-wrap: anywhere; }
.athena-turn p { white-space: pre-wrap; margin: 4px 0; }
.athena-user { border-inline-start: 3px solid var(--gold); }
.athena-assistant { border-inline-start: 3px solid #249dd1; }
.athena-sources { margin-bottom: 0; }
#athena-form { padding: 12px 16px max(16px,env(safe-area-inset-bottom)); border-top: 1px solid var(--line); }
.athena-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 9px; width: 100%; }
.athena-options label {
  display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 6px;
  min-width: 0; margin: 0; padding: 8px 5px; border: 1px solid var(--line); border-radius: 8px;
  background: var(--white); color: var(--ink); text-align: center; font-size: .78rem; line-height: 1.25;
}
.athena-options label span { white-space: nowrap; }
.athena-options input { flex: 0 0 auto; width: 17px; height: 17px; margin: 0; accent-color: #b68e4d; }
#athena-form textarea { resize: none; min-height: 50px; max-height: 30dvh; width: 100%; overflow-y: auto; transition: height .14s ease; }
.athena-mic {
  display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; padding: 0;
  border: 1.5px solid #b64747; border-radius: 50%; color: #d83c3c; background: #251c1c;
  box-shadow: inset 0 0 0 3px #d83c3c0d; transition: color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
}
.athena-mic svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.athena-mic:hover { color: #ff6b6b; background: #332020; transform: translateY(-1px); }
.athena-mic.is-listening {
  color: white; background: #c62828; border-color: #ff6969;
  box-shadow: 0 0 0 4px #e5393530, 0 0 19px #e53935a0;
  animation: athena-mic-pulse 1.25s ease-in-out infinite;
}
@keyframes athena-mic-pulse { 50% { box-shadow: 0 0 0 7px #e5393520, 0 0 24px #e53935c0; } }
:root[data-theme="light"] .athena-mic { color: #c92f32; background: #fff; border-color: #ba4144; }
:root[data-theme="light"] .athena-mic:hover { background: #fff1f1; }
:root[data-theme="light"] .athena-mic.is-listening { color: #fff; background: #c62828; border-color: #f16868; }
.question-actions,.question-step { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.question-actions { margin-block: 12px; }
.question-step { margin-inline-start: auto; }
.question-position { display: none; }
:is(.question-card,.online-question) { scroll-margin-block-start: 72px; }
:is(.question-prompt,.choice,.question-items) { min-width: 0; overflow-wrap: anywhere; }
:is(.question-prompt,.question-items) img { max-width: 100%; height: auto; }
body:has(#athena-launch:not([hidden])) main { padding-bottom: max(88px,env(safe-area-inset-bottom)); }
@media (max-width: 680px) {
  #athena-panel { width: 100%; height: 100dvh; border-radius: 0; }
  #athena-launch { width: 54px; height: 54px; }
  #athena-launch img { width: 48px; height: 48px; }
  #results > .question-card:not(.question-current), #online-form > .online-question:not(.question-current) { display: none; }
  .question-actions > .primary-button { flex: 1 0 100%; }
  .question-actions :is(button,a), .athena-tools :is(button,a) { min-height: 44px; }
  .question-position { display: inline; }
  .question-step { flex: 1 0 100%; display: grid; grid-template-columns: 1fr 1fr; }
}
@media print {
  #athena-launch,#athena-panel,.question-actions { display: none !important; }
}

.import-drop {
  padding: 16px;
  border: 1px dashed var(--gold);
  border-radius: 10px;
  background: var(--white);
}
.import-drop p { margin-top: 8px; }
#import-files:empty { display: none; }
#import-files { overflow-wrap: anywhere; padding-inline-start: 20px; margin-bottom: 0; }
@media (max-width: 760px) {
  .cohort-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cohort-card { min-height: 0; }
}

#student-tools { display: grid; gap: 10px; margin-top: 18px; padding-top: 15px; border-top: 1px solid var(--line); }
#student-tools h3 { margin: 0; color: var(--ink); font-size: .88rem; font-weight: 680; }
.bank-shortcuts { display: grid; gap: 6px; }
.bank-shortcut {
  display: grid; grid-template-columns: 27px minmax(0,1fr) auto; align-items: center; gap: 9px;
  min-height: 42px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px;
  color: var(--ink); background: var(--white); font-size: .82rem; font-weight: 650; text-decoration: none;
  transition: border-color .16s, background .16s, transform .16s;
}
.bank-shortcut:hover { transform: translateX(2px); border-color: var(--gold); }
.bank-shortcut svg, .focus-mode-toggle svg, .focus-mode-exit svg {
  width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round;
}
.bank-shortcut svg { color: var(--gold); }
.shortcut-arrow { color: var(--gold); font-size: 1.3rem; line-height: 1; }
.overall-performance {
  display: grid; grid-template-columns: 48px minmax(0,1fr) auto; align-items: center; gap: 10px;
  width: 100%; margin-top: 3px; padding: 10px 9px; border: 1px solid #8d7855; border-radius: 9px;
  color: var(--ink); background: var(--white); text-align: left;
}
.overall-performance:hover { border-color: var(--gold); box-shadow: 0 5px 15px #0002; }
.overall-performance-ring {
  --score: 0%; position: relative; isolation: isolate; display: inline-grid; place-items: center; width: 44px; aspect-ratio: 1;
  border-radius: 50%; color: var(--ink); background: conic-gradient(var(--score-hit) 0 var(--score), var(--score-error) var(--score) 100%);
}
.overall-performance-ring::before { content: ''; position: absolute; z-index: -1; inset: 4px; border-radius: 50%; background: var(--white); }
.overall-performance-ring strong { font-size: .8rem; font-variant-numeric: tabular-nums; }
.overall-performance-copy { display: grid; gap: 2px; min-width: 0; }
.overall-performance-copy strong { font-size: .82rem; }
.overall-performance-copy small { color: var(--muted); font-size: .68rem; line-height: 1.25; }
.focus-mode-toggle {
  display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; margin-top: 16px; padding: 11px 12px;
  border: 1px solid #987c4e; border-radius: 9px; color: #fff9ec; background: linear-gradient(135deg,#66502c,#3b3020);
  box-shadow: 0 5px 14px #0002; font-weight: 730; transition: transform .16s, filter .16s;
}
.focus-mode-toggle:hover { transform: translateY(-1px); filter: brightness(1.12); }
.focus-mode-toggle svg { color: #f0d49d; }
.focus-mode-exit {
  position: fixed; z-index: 1000; top: 16px; right: 18px; display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 14px; border: 1px solid #c29c5a; border-radius: 10px; color: #fff8e9; background: #27231c;
  box-shadow: 0 8px 28px #0009; font-weight: 720;
}
.focus-mode-exit:hover { background: #3a3223; }
.focus-mode-exit svg { color: #e0bf7c; }
.question-actions .respond { color: #fff; background: #72501f; border-color: #5b3e16; }
.question-actions .respond:hover { color: #fff; background: #5b3e17; border-color: #4d3312; }
[data-theme="light"] .choice.correct { background: #edf5ed; border-color: #4f865b; box-shadow: inset 3px 0 #4f865b; }
[data-theme="light"] .choice.correct .choice-letter { color: #fff; background: #285d37; }
[data-theme="light"] .choice.correct input { accent-color: #1d4b2a; }
[data-theme="light"] .overall-performance { background: #f8f3e8; }

body.focus-mode { min-height: 100vh; overflow-x: hidden; color-scheme: dark; color: #f3f0e8; background: #08090a; }
body.focus-mode .topbar, body.focus-mode .nav-strip, body.focus-mode .main > :not(#bank-view):not(#focus-mode-exit) { display: none !important; }
body.focus-mode .main { width: min(1100px, calc(100% - 40px)); padding: 26px 0 70px; }
body.focus-mode #bank-view { display: block !important; }
body.focus-mode #bank-view > .search-box, body.focus-mode .work-area > .filters, body.focus-mode .result-top { display: none !important; }
body.focus-mode .work-area { display: block; }
body.focus-mode .result-area { width: min(100%, 980px); margin-inline: auto; }
body.focus-mode #results { gap: 16px; }
body.focus-mode .question-card { color: #f1eee6; background: #191a1b; border-color: #454139; border-top-color: #9f8455; box-shadow: 0 8px 26px #0005; }
body.focus-mode .question-card .question-prompt { color: #f1eee6; }
body.focus-mode .question-card .choice { color: #eee9df; background: #202122; border-color: #4c4942; }
body.focus-mode .question-card .choice:hover, body.focus-mode .question-card .choice:has(input:checked) { background: #2e2b25; border-color: #a98e61; }
body.focus-mode .question-card .choice.correct { background: #203a2a; border-color: #78a485; }
body.focus-mode .question-card .choice.incorrect { background: #48262b; border-color: #bc8289; }
body.focus-mode .question-card .choice-letter { color: #efcf96; background: #3c3223; }
:root[data-theme="light"] body.focus-mode .question-card .choice {
  color: #eee9df !important; background: #202122 !important; border-color: #4c4942 !important;
}
:root[data-theme="light"] body.focus-mode .question-card .choice:hover,
:root[data-theme="light"] body.focus-mode .question-card .choice:has(input:checked) {
  color: #f3f0e8 !important; background: #2e2b25 !important; border-color: #a98e61 !important;
}
:root[data-theme="light"] body.focus-mode .question-card .choice.correct {
  color: #eef6ed !important; background: #203a2a !important; border-color: #78a485 !important;
}
:root[data-theme="light"] body.focus-mode .question-card .choice.incorrect {
  color: #fff0f0 !important; background: #48262b !important; border-color: #bc8289 !important;
}
:root[data-theme="light"] body.focus-mode .question-card .choice-letter {
  color: #efcf96 !important; background: #3c3223 !important;
}
:root[data-theme="light"] body.focus-mode .question-card .choice.correct .choice-letter {
  color: #fff !important; background: #225c35 !important;
}
body.focus-mode .question-card .choice input[type="radio"] { accent-color: #c3a56b; }

/* Quick links and per-choice elimination control */
.bank-shortcut { grid-template-columns: 27px minmax(0,1fr) auto; }
.choice { grid-template-columns: auto 1.6rem minmax(0,1fr) 30px; }
.choice-cut-button {
  display: grid; place-items: center; align-self: stretch; width: 30px; min-height: 30px; padding: 5px;
  border: 1px solid transparent; border-radius: 6px; color: #c4a66b; background: transparent;
  opacity: 0; pointer-events: none; transition: opacity .14s ease, background .14s ease, border-color .14s ease;
}
.choice-cut-button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.choice:hover .choice-cut-button, .choice:focus-within .choice-cut-button { opacity: 1; pointer-events: auto; }
.choice-cut-button:hover, .choice-cut-button[aria-pressed="true"] { color: #f2d39a; background: #33302b; border-color: #766447; }
.choice.choice-cut { color: #f2f0e9; background: #464541; border-color: #353430; }
.choice.choice-cut .question-items { color: #f2f0e9; text-decoration: line-through; text-decoration-thickness: 1.5px; text-decoration-color: #d6cfc1; opacity: .78; }
.choice.choice-cut .choice-letter { color: #f1d59f; background: #292824; }
.choice.choice-cut input { accent-color: #292824; }
[data-theme="light"] .choice-cut-button { color: #755a2b; }
[data-theme="light"] .choice-cut-button:hover, [data-theme="light"] .choice-cut-button[aria-pressed="true"] { color: #f6e8cb; background: #514a3d; border-color: #3d382f; }
[data-theme="light"] .choice.choice-cut { color: #f7f5ef; background: #514f4a; border-color: #373632; }
[data-theme="light"] .choice.choice-cut .question-items { color: #f7f5ef; text-decoration-color: #e0d8c9; }
[data-theme="light"] .choice.choice-cut .choice-letter { color: #f5dfb6; background: #302e29; }
@media (hover: none) {
  .choice-cut-button { opacity: 1; pointer-events: auto; }
}
body.focus-mode .question-card .answer { color: #f2f5ec; background: #223126; border-left-color: #7fa889; }
body.focus-mode .question-card .answer h4 { color: #b6dcba; }
body.focus-mode #pagination { justify-content: center; margin-top: 22px; color: #d7d0c3; }
body.focus-mode #pagination button { color: #eee8dc; background: #1a1b1c; border-color: #4b463a; }
body.focus-mode #focus-mode-exit { display: inline-flex !important; }
body.focus-mode #athena-launch, body.focus-mode #athena-panel { display: none !important; }
body.focus-mode .question-actions .respond { color: #fff; background: #72501f; border-color: #5b3e16; }
@media (max-width: 620px) {
  .bank-shortcut { min-height: 46px; }
  .focus-mode-exit { top: 9px; right: 9px; padding: 9px 11px; }
  body.focus-mode .main { width: calc(100% - 18px); padding-top: 54px; }
}
