/* The existing Peiyu palette supplies both light and dark colors. */
.lw-page { max-width: 980px; margin: 0 auto; color: var(--fg); }
.lw-page h1 { font-size: clamp(27px, 4vw, 36px); margin: 0 0 12px; }
.lw-page h2 { font-size: 24px; margin: 0 0 18px; }
.lw-page h3 { font-size: 19px; margin: 0 0 8px; }
.lw-page :is(h1, h2, h3) { overflow-wrap: anywhere; }
.lw-page section { margin: 24px 0; padding: 24px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); min-width: 0; }
.lw-page section, .lw-tabs, .lw-records { scroll-margin-top: 10px; }
.lw-page .lw-today { background: linear-gradient(120deg, var(--card), var(--ok-soft)); border-inline-start: 5px solid var(--a); }
.lw-count { font-size: 23px; font-weight: 700; }
.lw-page p { margin: 10px 0; line-height: 1.8; overflow-wrap: anywhere; }
.lw-page .lw-note { color: var(--muted); font-size: 16px; }
.lw-alert { border-inline-start: 4px solid var(--b); padding: 8px 14px; background: var(--card); }
.lw-page rt { font-size: 14px; font-weight: 400; color: var(--muted); }
.lw-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.lw-item { padding: 20px; border: 1px solid var(--line); border-radius: 8px; min-width: 0; }
.lw-state { font-weight: 700; }
.lw-actions, .lw-filters { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0; }
.lw-page a, .lw-page button, .lw-page select, .lw-page summary { min-height: 44px; min-width: 44px; font: inherit; font-size: 16px; }
.lw-page button, .lw-page a { display: inline-flex; align-items: center; justify-content: center; padding: 9px 14px; border: 1px solid var(--a); border-radius: 7px; background: var(--card); color: var(--fg); text-decoration: none; cursor: pointer; white-space: normal; overflow-wrap: anywhere; }
.lw-page select { min-width: 0; max-width: 100%; padding: 8px; color: var(--fg); background: var(--card); border: 1px solid var(--line); border-radius: 7px; }
.lw-page :is(button, a, select, summary):focus-visible { outline: 3px solid var(--a); outline-offset: 3px; }
.lw-page summary { cursor: pointer; padding: 10px 0; font-weight: 650; }
.lw-page button:hover, .lw-page a:hover { background: var(--ok-soft); }
.lw-page [hidden] { display: none !important; }
.lw-today ol { padding-left: 22px; }
.lw-today li { padding: 8px 0; }
.lw-today li span { display: block; margin-bottom: 8px; overflow-wrap: anywhere; }
.lw-states { display: flex; flex-wrap: wrap; gap: 10px 20px; list-style: none; margin: 10px 0; padding: 0; }
.lw-group { border-top: 1px solid var(--line); padding: 10px 0; }
.lw-hint { padding: 12px; border-inline-start: 3px solid var(--a); background: var(--ok-soft); }
.lw-live:empty { margin: 0; }
.lw-records { max-width: 980px; margin: 32px auto 0; border-top: 1px solid var(--line); padding-top: 24px; }
.lw-records > h2 { margin: 0 0 12px; }
.lw-records :is(summary, a, button, select) { min-height: 44px; }
.lw-records :is(summary, a) { display: inline-flex; align-items: center; }
.lw-records summary { display: flex; }
.lw-records :is(dt, .lr-meta, .lr-question, .lr-pill) { font-size: 14px; }
.lw-records #learning-app > .lp-page > h1 { display: none; }
.lw-records[hidden] { display: none !important; }
.lw-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 12px; border-bottom: 1px solid var(--line); padding-bottom: 12px; }
.lw-tabs [aria-selected="true"] { background: var(--ok-soft); border-bottom: 3px solid var(--a); font-weight: 700; }
.lw-table-wrap { overflow-x: auto; }
.lw-mastery { width: 100%; border-collapse: collapse; font-size: 16px; table-layout: fixed; }
.lw-mastery caption { text-align: start; padding: 12px 0; font-weight: 650; }
.lw-mastery :is(th, td) { text-align: start; vertical-align: top; border-bottom: 1px solid var(--line); padding: 10px 8px; overflow-wrap: anywhere; }
.lw-mastery th[scope="row"] { font-weight: 500; }
.lw-mastery thead { background: var(--ok-soft); }
@media (max-width: 480px) {
  .lw-page section { padding: 16px; }
  .lw-item { padding: 14px; }
  .lw-filters select { flex: 1 1 130px; width: 100%; }
  .lw-actions > * { flex: 1 1 120px; }
  .lw-tabs > button { flex: 1 1 130px; }
  .lw-mastery :is(th, td) { padding: 8px 3px; font-size: 15px; }
}

@media print {
  @page { size: A4; margin: 12mm; }
  header, nav, footer, .skip-link, .lf-search, .lf-global-search, [data-learning-search], .lw-tabs, .lw-filters, .lw-actions button, .lw-live, #lw-live,
  .lw-records :is(button, select) { display: none !important; }
  .lw-page { max-width: none; }
  .lw-page section { border: 0; padding: 0; margin: 12px 0; background: none; }
  .lw-page .lw-today { background: none; border-inline-start: 0; }
  .lw-item, .lw-page li, .lw-group, .lw-mastery tr { break-inside: avoid; page-break-inside: avoid; }
  .lw-page :is(h1, h2, h3), .lw-mastery caption { break-after: avoid; }
  .lw-page a { border: 0; padding: 0; min-height: 0; text-decoration: underline; }
  .lw-page details > summary { list-style: none; }
  .lw-page details:not([open]) > *:not(summary) { display: block; }
  .lw-records { max-width: none; }
}
