@import url("/paper-scope.css");
@import url("/prototypes/v23/site/shared.css");
@import url("./progress.css");
/* v2.5 follow-up: retain the full question matrix alongside detailed cards. */
.focus-task h2,
.welcome h2 {
  font-family: "Noto Sans TC", sans-serif;
  font-weight: 600;
}
[tabindex]:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 4px;
}
.focus-task :focus-visible {
  outline-color: #ffcf91;
}
#greeting {
  margin-top: 8px;
}
.progress {
  flex-shrink: 0;
  text-align: right;
  font-size: 0.875rem;
  color: var(--muted);
  border-left: 1px solid var(--line);
  padding-left: 16px;
}
.progress strong {
  display: block;
  font-size: 1.625rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.progress strong small {
  font-size: 0.875rem;
  color: var(--muted);
}
.progress-track {
  display: block;
  width: 64px;
  height: 4px;
  background: var(--line);
  margin: 8px 0 0 auto;
}
.progress-track span {
  display: block;
  height: 100%;
  background: var(--accent);
}
.tabs {
  display: flex;
  gap: clamp(12px, 4vw, 32px);
  border-bottom: 1px solid var(--line);
  margin-bottom: 20px;
}
.tabs button {
  border: 0;
  border-bottom: 2px solid transparent;
  background: none;
  color: var(--muted);
  font-size: 0.875rem;
  min-height: 48px;
  padding: 8px 0 12px;
  white-space: normal;
  min-width: 0;
}
.tabs [aria-selected="true"] {
  color: var(--ink);
  border-bottom-color: var(--accent);
  font-weight: 600;
}
.week-caption {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
  color: var(--muted);
  font-size: 0.875rem;
}
.week-caption > span {
  display: none;
}
.week-layout {
  display: grid;
  gap: 32px;
  align-items: start;
}
.week-layout > * {
  min-width: 0;
}
.focus-task {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(circle at 95% 1%, #334b44 0, transparent 38%), var(--ink);
  color: var(--surface);
  padding: 24px;
  border-radius: 16px;
  border-top: 1px solid #d07458;
}
.focus-task::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 240px;
  height: 240px;
  right: -98px;
  top: -126px;
  border: 1px solid rgba(255, 253, 247, 0.14);
  border-radius: 50%;
  box-shadow:
    0 0 0 28px rgba(255, 253, 247, 0.025),
    0 0 0 56px rgba(255, 253, 247, 0.025);
}
.focus-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 0.875rem;
  color: #d6dfd3;
  letter-spacing: 0.06em;
}
.focus-top .kicker {
  display: flex;
  align-items: center;
  gap: 8px;
}
.kicker::before {
  content: "";
  width: 6px;
  height: 6px;
  background: #e09977;
  transform: rotate(45deg);
}
.focus-task h2 {
  font-size: 1.75rem;
  line-height: 1.42;
  margin: 20px 0 14px;
  overflow-wrap: anywhere;
}
.task-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 0.875rem;
  color: var(--muted);
}
.task-meta svg {
  width: 18px;
  height: 18px;
}
.focus-task .task-meta,
.focus-task .reason {
  color: #d5dfd6;
}
.reason {
  font-size: 0.875rem;
  margin-top: 8px;
}
.reason summary {
  font-size: 0.875rem;
  cursor: pointer;
}
.reason p {
  margin-top: 8px;
}
.focus-actions {
  margin-top: 28px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}
.focus-actions > .primary {
  width: 100%;
}
.focus-actions > .text-button {
  color: #d0d7cf;
}
.section-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin: 32px 0 4px;
  padding-left: 14px;
  border-left: 1px solid var(--accent);
}
.section-heading span {
  font-size: 0.875rem;
  color: var(--muted);
}
.task-row {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  column-gap: 14px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
  align-items: start;
}
.task-row > .task-icon {
  color: var(--muted);
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  background: #e9e9df;
  border-radius: 4px;
}
.task-row .task-meta {
  font-size: 0.875rem;
  margin-top: 5px;
}
.row-start {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  min-height: 44px;
  border: 1px solid #bfc2b8;
  border-radius: 4px;
  text-decoration: none;
  font-size: 1.125rem;
}
.row-start:hover {
  border-color: var(--accent);
  color: var(--accent);
}
.task-row .text-button {
  color: var(--muted);
  padding-block: 4px;
  min-height: 36px;
}
.completed {
  margin-top: 24px;
}
.completed > summary {
  cursor: pointer;
  font-size: 0.875rem;
  color: var(--muted);
  min-height: 44px;
  padding: 8px 0;
}
.completed .task-row {
  opacity: 0.85;
}
.completed .status-check {
  color: #366749;
}
.support {
  border-top: 3px solid var(--accent);
  padding: 20px 22px 22px;
  margin-top: 28px;
  background: #e9e9df;
}
.support h2 {
  margin: 8px 0 16px;
}
.priority-item {
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
}
.priority-item:last-child {
  border-bottom: 0;
}
.priority-title {
  display: flex;
  gap: 14px;
  align-items: baseline;
}
.priority-title span {
  font-size: 0.875rem;
  color: var(--accent);
  font-variant-numeric: tabular-nums;
}
.priority-title strong {
  font-weight: 500;
}
.settings-section {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}
.settings-section h2 {
  margin-top: 0;
}
.settings-section summary,
#preview summary {
  cursor: pointer;
  min-height: 44px;
  padding: 12px 0;
  font-size: 0.875rem;
}
#preview {
  margin-top: 24px;
}
.preview-task {
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  font-size: 0.875rem;
}
.date-editor {
  grid-column: 1/-1;
  margin-top: 12px;
  border-top: 1px solid var(--line);
  padding-top: 16px;
}
.date-editor label {
  display: block;
  font-size: 0.875rem;
}
.date-editor input {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  margin-top: 8px;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 8px;
  background: var(--surface);
  color: var(--ink);
}
.date-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
.date-actions button,
.notice button,
.preferences button {
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 14px;
  background: var(--surface);
  color: var(--ink);
}
.date-editor .field-status {
  margin-top: 8px;
  font-size: 0.875rem;
}
.focus-task .date-editor {
  border-color: #556158;
}
.focus-task .field-status {
  color: #ffe2b8;
}
.preferences {
  display: grid;
  gap: 12px;
  padding-top: 16px;
}
.preferences label,
.preferences legend {
  font-size: 0.875rem;
}
.preferences select {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  color: var(--ink);
  padding: 8px;
}
.preferences fieldset {
  border: 0;
  padding: 0;
  margin: 8px 0;
}
.topic-options {
  display: grid;
  gap: 8px;
  margin-top: 8px;
  max-height: 280px;
  overflow: auto;
}
.topic-options label {
  display: flex;
  align-items: start;
  gap: 8px;
  padding: 8px 0;
}
.topic-options input {
  margin-top: 6px;
  accent-color: var(--accent);
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.preferences .primary {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}
.welcome {
  padding: 24px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 6px;
}
.welcome h2 {
  font-size: 1.625rem;
  line-height: 1.5;
  margin: 12px 0;
}
.welcome p {
  color: var(--muted);
  margin-bottom: 16px;
}
.public-links {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 24px;
  font-size: 0.875rem;
}
.notice,
.v23-sync-note {
  border: 1px solid var(--line);
  padding: 16px;
  border-radius: 8px;
  background: var(--surface);
  margin: 16px 0;
  font-size: 0.875rem;
}
.notice p {
  margin-bottom: 12px;
}
.error {
  border-color: var(--accent);
}
.v23-sync-note button {
  margin-left: 8px;
  min-height: 44px;
  background: none;
  border: 0;
  text-decoration: underline;
  color: var(--accent);
  font: inherit;
}
.report-intro {
  font-size: 1rem;
  color: var(--muted);
  margin: 24px 0 12px;
  max-width: 68ch;
}
.report-card {
  padding: 28px 0;
  border-bottom: 1px solid var(--line);
}
.report-card h2 {
  margin-bottom: 20px;
  padding-left: 12px;
  border-left: 1px solid var(--accent);
  font-family: "Noto Sans TC", sans-serif;
  font-size: 1.25rem;
}
.report-card ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.report-card li {
  padding: 0 0 16px;
  margin: 0 0 16px;
  border-bottom: 1px solid var(--line);
}
.report-card li:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}
.report-card small {
  display: block;
  color: var(--muted);
  font-size: 0.875rem;
}
.report-card details {
  margin-top: 16px;
}
.report-card summary,
.history-week > summary {
  cursor: pointer;
  min-height: 44px;
}
.history-week {
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}
.history-week > summary {
  font-family: "Noto Sans TC", sans-serif;
  font-size: 1.125rem;
}
.history-week li {
  margin-bottom: 12px;
}
@media (min-width: 768px) {
  .week-caption > span {
    display: inline;
  }
  .week-caption {
    font-size: 0.875rem;
  }
  .focus-actions > .primary {
    width: auto;
    min-width: 190px;
  }
  .focus-actions {
    justify-content: space-between;
  }
}
@media (min-width: 1024px) {
  .progress strong {
    font-size: 2rem;
  }
  .progress-track {
    width: 96px;
  }
  .tabs {
    gap: 32px;
  }
  .tabs button {
    font-size: 1rem;
  }
  .week-layout {
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 32px;
  }
  .focus-task h2 {
    font-size: 2.125rem;
  }
  .support {
    margin-top: 0;
  }
  .support > .eyebrow {
    margin-top: 0;
  }
  .week-caption {
    margin-bottom: 24px;
  }
  .report-card {
    max-width: 900px;
  }
}
@media (max-width: 767px) {
  .tabs button {
    flex: 1;
    text-align: left;
  }
}
@container (max-width: 15rem) {
  .page-heading {
    flex-direction: column;
    align-items: stretch;
  }
  .progress {
    align-self: flex-start;
    border-left: 0;
    padding-left: 0;
    text-align: left;
  }
  .progress-track {
    margin-left: 0;
  }
  .tabs {
    overflow-x: auto;
  }
  .tabs button {
    flex: 0 0 auto;
    white-space: nowrap;
    margin-right: 12px;
  }
}

/* v2.5 learning rhythm */
.focus-task h2,.welcome h2,.progress-heading h2,#progressDetailTitle{font-family:"Noto Sans TC",sans-serif}.tabs{border:0;gap:32px;margin-bottom:24px}.tabs button{font-size:1rem;padding:12px 16px}.tabs [aria-selected=true]{color:var(--accent)}.page-heading{padding-left:32px}.page-heading h1{font-size:2.75rem}.progress{font-variant-numeric:tabular-nums}.focus-task{background:white;color:var(--ink);border:1px solid var(--line);padding:32px}.focus-task::after,.kicker::before{display:none}.focus-top,.focus-task .task-meta,.focus-task .reason,.focus-actions>.text-button{color:var(--muted)}.focus-task h2{font-weight:750;font-size:2rem}.focus-task :focus-visible{outline-color:var(--accent)}.focus-actions .primary{border-radius:28px}.support{background:white;border:1px solid var(--line);border-radius:16px;padding:24px}.section-heading{padding-left:0;border-left:0}.task-row{padding:22px 20px;background:white}.task-row>.task-icon{background:var(--soft);border-radius:10px;color:var(--accent)}.row-start{border-color:var(--line);border-radius:24px;color:var(--accent)}.welcome{background:white;border:1px solid var(--line);border-radius:16px;padding:32px}.report-card,.history-week{background:white;border:1px solid var(--line);border-radius:16px;padding:24px}.history-week{margin-top:16px}.preferences select{background:white;border-color:var(--line)}
#learningProgress ::selection,#progressDetail ::selection{background:#bedfff;color:var(--ink)}.progress-heading{margin:0 0 16px;padding-left:16px}.progress-heading h2{font-size:1.1rem}.progress-heading p{display:none}.coverage-overview{grid-template-columns:1.8fr 1fr 1fr;align-items:center;background:white;border-radius:16px;padding:24px;gap:24px}.coverage-main{background:white;color:var(--ink);padding:0}.coverage-main>span{font-weight:650}.coverage-main p{margin:8px 0 10px}.coverage-main strong{font-size:3rem;font-weight:750;color:var(--accent)}.coverage-main p>span{font-size:2rem;color:var(--ink);font-weight:600}.coverage-main small{color:var(--muted);font-size:.85rem}.coverage-meter{background:#e6edf4;height:8px}.coverage-meter>span{background:var(--accent)}.coverage-stat{padding:0;gap:2px;align-items:start}.coverage-stat:last-child{border:0}.coverage-stat>strong{font-size:1.625rem;font-weight:700}.coverage-stat button{color:var(--accent);font-weight:600}.coverage-section{padding-top:28px;margin-top:28px;border-color:var(--line)}.progress-section-heading h3,.coverage-section>h3{font-size:1.5rem;font-weight:750}.coverage-filters{display:flex;gap:16px;flex-wrap:wrap}.coverage-filters label{width:180px;font-size:.8rem;color:var(--muted)}.coverage-filters label:last-child{width:240px}.coverage-filters select{font-size:.95rem;background:white;border-radius:10px}.coverage-shortcuts{gap:0;display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:white}.coverage-shortcuts button{border:0;border-radius:0;padding:10px 20px;font-size:.95rem}.coverage-shortcuts [aria-pressed=true]{background:var(--accent)}.coverage-help{font-size:.8rem;color:var(--muted)}.coverage-year{grid-template-columns:144px minmax(0,1fr);gap:24px;border-top:0;margin-top:24px}.coverage-year summary{background:var(--soft);border-radius:12px;padding:14px 18px;pointer-events:auto}.coverage-year summary>strong{font-size:1.5rem;color:var(--accent)}.coverage-year summary>span{font-size:.8rem;margin-top:4px}.coverage-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:0}.coverage-card{position:relative;min-width:0;background:white;border:1px solid var(--line);border-radius:16px;overflow:hidden}.coverage-unit,.coverage-unit.status-review,.coverage-unit.status-qualified,.coverage-unit.status-submitted{display:flex;flex-direction:column;align-items:stretch;background:white;border:0;border-radius:0;padding:22px 24px;gap:12px;min-height:190px;height:auto}.coverage-unit:hover{background:#f8fbff}.unit-top{display:flex;justify-content:space-between;gap:12px;font-size:1rem;align-items:center}.coverage-unit .unit-state{font-size:.8rem;border-radius:18px;padding:3px 12px;background:#eff5fa;color:#536275}.coverage-unit .unit-state::before{display:none}.coverage-unit.status-review .unit-state{background:#fff0f1;color:#a53242}.coverage-unit.status-qualified .unit-state{background:#e7f5ef;color:#24664f}.unit-topic{font-size:1.5rem;font-weight:750;line-height:1.4}.coverage-unit small{font-size:1rem;color:var(--ink)}.unit-result{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:44px}.unit-result strong{font-size:1.125rem}.unit-feedback,.unit-practice{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:white;border-radius:24px;padding:8px 20px;font-size:.95rem;min-height:44px;text-decoration:none;font-weight:600}.unit-detail{color:var(--accent);font-size:.8rem}.unit-practice{margin:0 24px 20px;float:right}.coverage-topics{background:white;border:1px solid var(--line);border-radius:16px;padding:24px;gap:24px}.study-summaries{background:white;border:1px solid var(--line);border-radius:16px;padding:24px}.coverage-chart{padding:24px;background:white;border:1px solid var(--line);border-radius:16px}.report-evidence{margin-top:28px}.report-evidence>summary{color:var(--accent)}#progressDetail{border-radius:16px}
@media(min-width:1024px){.week-layout{grid-template-columns:minmax(0,1fr) 320px}.coverage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.week-caption{padding-left:16px}.coverage-year summary{position:sticky;top:20px}}
@media(max-width:767px){.page-heading{padding:0;align-items:start}.page-heading h1{font-size:2rem}.progress{display:none}.tabs{gap:4px;margin-bottom:18px}.tabs button{font-size:.875rem;padding:10px 4px;text-align:center}.progress-heading{padding:0;margin-bottom:12px}.progress-heading h2{font-size:1rem}.coverage-overview{grid-template-columns:1fr 1fr;padding:20px;gap:16px}.coverage-main{grid-column:1/-1;padding:0}.coverage-main strong{font-size:2.25rem}.coverage-main p>span{font-size:1.5rem}.coverage-main small{font-size:.75rem}.coverage-stat{padding:0;align-items:start}.coverage-stat>strong{font-size:1.375rem}.coverage-stat button{font-size:.85rem;min-height:44px;padding:8px 0}.coverage-stat>span{font-size:.8rem}.coverage-section{margin-top:24px;padding-top:20px}.progress-section-heading h3{font-size:1.3rem}.coverage-filters{display:grid;grid-template-columns:1fr 1fr;gap:10px}.coverage-filters label,.coverage-filters label:last-child{width:auto}.coverage-filters label:last-child{grid-column:1/-1}.coverage-shortcuts{display:flex}.coverage-shortcuts button{flex:1;padding:9px 7px;font-size:.8rem}.coverage-year{display:block;margin-top:16px}.coverage-year summary{margin-bottom:12px;padding:10px 14px;display:flex;align-items:center;min-height:48px}.coverage-year summary>strong{font-size:1.2rem}.coverage-year summary>span{margin:0}.coverage-grid{grid-template-columns:minmax(0,1fr);gap:14px}.coverage-card{border-radius:14px}.coverage-unit{padding:18px;min-height:0;gap:10px}.unit-topic{font-size:1.25rem}.coverage-unit small{font-size:.95rem}.unit-practice{margin:0 18px 18px}.coverage-topics{padding:20px;gap:24px 16px}.focus-task{padding:22px}.focus-task h2{font-size:1.6rem}.welcome{padding:24px}.support{padding:22px}.coverage-chart{padding:18px}.study-summaries{padding:20px}.task-row{padding-inline:0;background:none}.report-card,.history-week{padding:20px}}

.progress-heading{display:none}.coverage-help:first-of-type{font-size:.8rem}@media(max-width:767px){.coverage-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.coverage-filters label:last-child{grid-column:auto}.coverage-filters select{padding:6px;font-size:.8rem;min-height:44px}.coverage-filters label{font-size:.75rem}.profile-hero:has(~ #content #panel-report:not([hidden])) #greeting{display:none}.coverage-help{line-height:1.55}.coverage-main small{line-height:1.5}}
.progress-filter-drawer>summary{color:var(--accent);font-size:.875rem;cursor:pointer;min-height:44px;padding:10px 0}.progress-filter-drawer{margin-bottom:0}.coverage-section:first-of-type{padding-top:0}.coverage-section:has(#coverageTitle) .coverage-help:first-of-type{max-width:none}.coverage-section:has(#coverageTitle){position:relative}@media(min-width:768px){.progress-filter-drawer>summary{display:none}.progress-filter-drawer{display:inline-block;vertical-align:bottom;margin-right:16px}.coverage-filters{gap:12px}.coverage-filters label{width:150px}.coverage-filters label:last-child{width:190px}.coverage-shortcuts{vertical-align:bottom}.coverage-year{margin-top:18px}.coverage-section:has(#coverageTitle) .coverage-help:first-of-type{margin:12px 0}.coverage-section:has(#coverageTitle){padding-top:22px;margin-top:22px}}
@media(max-width:767px){.coverage-overview{padding:18px;gap:10px}.coverage-main p{margin:4px 0;line-height:1.2}.coverage-main>span{font-size:.9rem}.coverage-main strong{font-size:2.25rem}.coverage-main small{margin-top:6px}.coverage-stat{display:grid;grid-template-columns:auto 1fr;gap:0 8px;align-items:baseline}.coverage-stat>strong{font-size:1.125rem}.coverage-stat>span{font-size:.75rem}.coverage-stat button{grid-column:1/-1;padding:6px 0}.coverage-section:has(#coverageTitle){padding-top:0;margin-top:22px;border:0}.progress-section-heading{margin-bottom:4px}.progress-filter-drawer{margin-bottom:8px}.coverage-shortcuts{margin-top:0}.coverage-section:has(#coverageTitle) .coverage-help:first-of-type{margin:10px 0;font-size:.75rem}.coverage-year{margin-top:12px}.coverage-unit{padding:16px}.coverage-unit small{font-size:.9rem}}

.coverage-stat .coverage-primary{background:var(--accent);color:white;border:0;border-radius:24px;padding:8px 18px;min-height:44px;text-decoration:none;margin-top:6px}.coverage-stat>button:not(.coverage-primary){min-height:44px;padding:8px 0}.focus-actions svg,.row-start svg{width:20px;height:20px}.focus-top:empty{display:none}@media(max-width:767px){.coverage-stat .coverage-primary{font-size:.8rem;padding:8px 12px}.coverage-stat>button:not(.coverage-primary){font-size:.8rem;padding:6px 0}.coverage-overview{align-items:start}.coverage-stat:last-child{grid-template-columns:auto 1fr}.coverage-stat:last-child>button{grid-column:1/-1}}

.coverage-main{grid-row:1/3}.coverage-actions{grid-column:2/-1;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.coverage-actions button{border:0;background:none;color:var(--accent);min-height:44px;padding:8px 0;font-size:.875rem}.coverage-actions .coverage-primary{background:var(--accent);color:white;border-radius:24px;padding:8px 18px;font-weight:600}.coverage-overview{row-gap:8px}.coverage-stat{align-self:end}.coverage-stat>strong{font-family:"Segoe UI","Noto Sans TC",sans-serif}@media(max-width:767px){.page-heading{margin-bottom:10px}.tabs{margin-bottom:12px}.coverage-overview{padding:16px;gap:8px}.coverage-main{grid-column:1/-1;grid-row:auto}.coverage-actions{grid-column:1/-1;gap:8px;justify-content:space-between}.coverage-actions button{font-size:.8rem}.coverage-actions .coverage-primary{padding-inline:14px}.coverage-section:has(#coverageTitle){margin-top:16px}.coverage-section:has(#coverageTitle) .coverage-help:first-of-type{font-size:.7rem;line-height:1.5;margin:6px 0}.coverage-stat{display:flex;flex-direction:row;gap:6px;align-items:baseline}.progress-section-heading h3{margin:0}.coverage-main small{font-size:.7rem}}

@media(max-width:767px){.coverage-overview{grid-template-columns:1.15fr 1fr;column-gap:12px}.coverage-main{grid-column:1;grid-row:1/3}.coverage-main p{gap:2px}.coverage-main strong{font-size:2rem}.coverage-main p>span{font-size:1.25rem}.coverage-main small{font-size:.7rem;line-height:1.5}.coverage-stat{grid-column:2;align-self:center;justify-content:flex-start;flex-wrap:wrap}.coverage-section:has(#coverageTitle){display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}.progress-section-heading{grid-column:1;margin:0;min-height:44px;align-items:center}.progress-section-heading #coverageCount{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.progress-filter-drawer{grid-column:2;margin:0}.progress-filter-drawer[open]{grid-column:1/-1}.coverage-section:has(#coverageTitle)>:is(.coverage-shortcuts,#coverageYears,.coverage-help){grid-column:1/-1}.coverage-year{margin-top:0}.coverage-year summary{margin-bottom:10px}.coverage-reading-note{margin-top:16px!important}.coverage-section:has(#coverageTitle) .coverage-help{margin:0}.coverage-section:has(#coverageTitle)>.progress-filter-drawer>summary{padding-inline:8px}.coverage-actions{gap:6px}.coverage-unit{gap:8px}.unit-top{font-size:.95rem}.coverage-unit .unit-state{font-size:.75rem}.unit-result{min-height:44px}}

/* Full catalogue matrix: shared data, scores and detail dialog. */
.matrix-shortcut{color:var(--accent);font-size:.875rem;min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}
.coverage-view-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:12px 0;grid-column:1/-1}
.matrix-instruction{font-size:.8rem;color:var(--muted)}

/* Fixed coordinates keep split Q1 units separate from full Q1 units. */
#coverageYears{min-width:0;max-width:100%}
.matrix-layout{display:flex;align-items:flex-start;gap:28px;min-width:0}
.matrix-scroll{min-width:0;max-width:100%;flex:1;overflow:auto;max-height:720px;border:1px solid var(--line);border-radius:12px;background:white;scroll-padding:48px 0 0 64px;overscroll-behavior-x:contain}
.dot-matrix{width:100%;min-width:40rem;border-spacing:0;table-layout:fixed;font-size:.875rem;text-align:center}
.dot-matrix th,.dot-matrix td{padding:0;height:44px;border:0;border-right:1px solid #eaf0f6;border-bottom:1px solid #eaf0f6;text-align:center}
.dot-matrix th{font-weight:600;white-space:nowrap;color:var(--ink);background:#f3f8fd}
.dot-matrix thead th{position:sticky;top:0;z-index:2;height:48px}
.dot-matrix tr>:first-child{position:sticky;left:0;width:64px;z-index:1;background:#f3f8fd;border-right:1px solid #d8e5f0}
.dot-matrix thead tr>:first-child{z-index:3}
.dot-matrix tbody tr:last-child>*{border-bottom:0}
.matrix-unit{display:flex;align-items:center;justify-content:center;width:100%;min-width:44px;min-height:44px;height:100%;padding:0;border:0;border-radius:0;background:transparent;color:inherit;cursor:pointer}
.matrix-unit:not(:disabled):hover{background:#e8f3ff}
.matrix-unit:focus-visible{outline:2px solid var(--accent);outline-offset:-3px;background:#e8f3ff}
.matrix-unit:disabled{opacity:.18;cursor:default}
.matrix-dot{position:relative;display:inline-flex;flex:none;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:1px solid transparent;border-radius:3px;font:700 13px/1 "Segoe UI",sans-serif}
.matrix-dot.status-unsubmitted{background:#d5dce3;border-color:#b6c0ca}
.matrix-dot.status-pending{background:#f0b43c;color:#493005;border-color:#bd7d13}
.matrix-dot.status-qualified{background:#29745c;color:white;border-color:#23674f}
.matrix-dot.status-review{background:#bf4c51;color:white;border-color:#ac3b40}
.matrix-dot.status-submitted{background:white;border:2px solid var(--student-primary,#006dcc);color:var(--student-primary,#006dcc)}
.matrix-pending{position:absolute;top:-6px;right:-7px;display:flex;align-items:center;justify-content:center;width:13px;height:13px;border-radius:50%;background:#f0b43c;color:#493005;border:1px solid white;font-size:11px}
.matrix-missing{color:#8996a3}
.matrix-legend{display:flex;flex-direction:column;gap:16px;margin:0;padding:18px 0;list-style:none;max-width:170px;font-size:.8rem;color:var(--muted)}
.matrix-legend li{display:flex;gap:10px;align-items:center;line-height:1.5}
.matrix-legend li>span:first-child{flex:none;width:18px;text-align:center}
.matrix-pending-key{color:#805300;font-size:18px}
.matrix-tooltip{position:fixed;z-index:50;max-width:min(320px,calc(100vw - 16px));padding:10px 14px;background:#162a43;color:white;border-radius:8px;box-shadow:0 3px 14px #14294525;font-size:.875rem;line-height:1.6;overflow-wrap:anywhere}
.matrix-tooltip[hidden]{display:none}
.dot-matrix caption.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:1100px){.matrix-layout{flex-direction:column;gap:8px}.matrix-scroll{width:100%;flex:auto}.matrix-legend{flex-direction:row;flex-wrap:wrap;max-width:none;gap:12px 24px;padding:12px 0}}
@media(max-width:767px){.week-caption{gap:12px;align-items:start}.week-caption>p{font-size:.8rem}.coverage-view-controls{gap:8px;margin:0 0 6px}.coverage-view-switch button{padding:8px 12px}.matrix-instruction{width:100%;font-size:.75rem}.matrix-legend{gap:12px 18px}.matrix-scroll{max-height:70vh}.dot-matrix{min-width:40rem}.dot-matrix tr>:first-child{width:60px}}
@media(forced-colors:active){.matrix-dot{border-color:ButtonText}.matrix-unit:disabled{opacity:1;color:GrayText}.matrix-unit:disabled .matrix-dot{border-color:GrayText}.matrix-pending{border-color:ButtonText}}

/* v2.6 review keeps the result and next action together. */
.review-panel>summary{cursor:pointer;min-height:44px;font-size:1.3rem;font-weight:750;color:var(--ink);padding:10px 0}
.review-panel>summary>span{font-size:.875rem;color:var(--muted);font-weight:500;margin-left:12px}
.review-list{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.review-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:24px;align-items:center;padding:20px 24px;border-bottom:1px solid var(--line)}
.review-row:last-child{border:0}.review-row h4{font-size:1rem;margin:0 0 6px}.review-row p{margin:0 0 6px;font-size:.875rem}.review-row small{color:var(--muted);font-size:.8rem}.review-score{font-size:1.4rem;white-space:nowrap}.review-actions{display:flex;gap:12px;flex-wrap:wrap}.review-actions a,.review-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--line);border-radius:24px;background:white;color:var(--accent);padding:8px 16px;text-decoration:none;font-size:.875rem}.review-actions .review-practice{background:var(--accent);color:white;border-color:var(--accent)}.review-empty{line-height:1.7;color:var(--muted);padding:16px 0}.detail-topics{font-size:.9rem;color:var(--muted);line-height:1.6}
@media(max-width:767px){.review-row{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:18px}.review-actions{grid-column:1/-1}.review-row small{overflow-wrap:anywhere}}

/* Give side-by-side answer comparison a readable desktop measure. */
#progressDetail{width:min(64rem,calc(100% - 2.5rem))}
/* A direct homework entry alongside the existing weekly plan. */
.homework-shortcut { display:inline-flex; align-items:center; min-height:44px; color:var(--accent,var(--student-primary,#006dcc)); text-underline-offset:.2em; }
