:root {
  --font-display: "Outfit", system-ui, sans-serif;
  --amber: #f59e0b;
  --radius-md: 18px;
  --white: #ffffff;
  --font-body: "Hanken Grotesk", Calibri, "Segoe UI", system-ui, sans-serif;
  --st-teal-bright: #1fa6a2;
  --st-serif: "Fraunces", Georgia, "Iowan Old Style", serif;
  --ink: #19262f;
  --teal: #0b7a75;
  --teal-ink: #0a6a66;
  --navy: #15487f;
  --teal-light: #e1f5f3;
  --success-bg: #e6f7ef;
  --success: #0f7c4a;
  --fp-rule: #e4dece;
  --fp-ink: #1b2a49;
  --fp-unit-ink: #705137;
  --fp-unit-tint: #f4f1ee;
  --fp-serif: "Fraunces", Georgia, "Iowan Old Style", serif;
  --fp-unit: #8a6444;
  --muted: #475663;
  --coral: #d9795d;
}
.welcome-title-en,
.welcome-title-es {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(26px, 5vw, 34px);
  font-weight: 800;
  line-height: 1.15;
}
.welcome-title-es {
  color: var(--amber);
  font-size: clamp(22px, 4.5vw, 30px);
  margin-top: 2px;
}
body.lang-mode-en .welcome-title-es {
  display: none !important;
}
body.lang-mode-es .welcome-title-en {
  display: none !important;
}
.welcome-title-en {
  font-size: clamp(24px, 4.5vw, 32px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.2 !important;
}
.welcome-title-es {
  color: #cbd5e1 !important;
  font-weight: 600 !important;
  font-size: clamp(18px, 3.5vw, 22px) !important;
}
.hw-tools-menu > summary {
  cursor: pointer;
  min-height: 44px;
  padding: 10px 0;
  font-size: 16px;
  font-weight: 750;
}
.hw-utility-controls {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.hw-utility-controls .hw-stuck-fab {
  position: static;
  margin: 0;
  box-shadow: none;
  min-height: 44px;
}
.hw-utility-controls #nsr-root {
  position: static !important;
  inset: auto !important;
  margin: 0 !important;
}
.hw-utility-controls #nsr-launcher,
.hw-utility-controls #nsr-workbench {
  min-height: 44px;
  font-size: 14px;
}
.hw-utility-controls #nsr-panel {
  position: fixed;
  top: 16px;
  bottom: auto;
  right: 16px;
  max-height: calc(100dvh - 32px);
}
.hw-session-banner {
  background: #ffffff !important;
  border-color: #dbe3ee !important;
}
.hw-skip {
  position: absolute;
  left: 8px;
  top: 8px;
  z-index: 10060;
  padding: 12px 18px;
  border-radius: 12px;
  background: var(--navy, #12355b);
  color: #fff;
  font-weight: 800;
  text-decoration: none;
  transform: translateY(calc(-100% - 16px));
}
.hw-skip .lang-en,
.hw-skip .lang-es {
  color: inherit;
}
.hw-skip:focus {
  transform: none;
  outline: 3px solid var(--amber, #f2c15b);
  outline-offset: 2px;
}
.hw-utility-controls .ls-launcher {
  position: static !important;
  inset: auto !important;
  width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  justify-content: center;
  margin: 0 !important;
}

@media print {
  body.print-problems-only [data-tab-panel]:not([data-tab-panel="check"]),
  body.print-problems-only .hw-hero,
  body.print-problems-only .homework-tab-chrome,
  body.print-problems-only .hw-stuck-fab,
  body.print-problems-only .workbench-drawer,
  body.print-problems-only .more-practice,
  body.print-problems-only .tab-flow-nav,
  body.print-problems-only .problem-check-row {
    display: none !important;
  }
  body.print-problems-only [data-tab-panel="check"] {
    display: block !important;
  }
}
.hw-answer-sheet {
  display: none;
}
@media print {
  body.print-answer-sheet > *:not(.hw-answer-sheet) {
    display: none !important;
  }
  body.print-answer-sheet .hw-answer-sheet {
    display: block !important;
    font-size: 12pt;
    color: #000;
  }
  body.print-answer-sheet .hw-answer-sheet h2 {
    font-size: 16pt;
    margin: 0 0 6pt;
  }
  body.print-answer-sheet .hw-answer-sheet ol > li {
    margin: 0 0 8pt;
    break-inside: avoid;
  }
  body.print-answer-sheet .hw-answer-sheet ul {
    margin: 2pt 0 0;
    padding-left: 16pt;
  }
}
@media print {
  .hw-answer-key {
    display: none !important;
  }
}
@media print {
  .hw-graph-reset,
  .hw-graph-controls {
    display: none;
  }
}
@media print {
  .hw-step-guide {
    break-inside: avoid;
    border-color: #888;
    background: #fff;
  }
  .hw-step-guide > summary {
    background: #f0f0f0;
  }
  .hw-step-guide[open] > summary::after,
  .hw-step-guide > summary::after {
    content: "";
  }

  .hw-step-guide > * {
    display: block !important;
  }

  .vocab-card-inner {
    transform: none !important;
  }
  .vocab-card-front,
  .vocab-card-back {
    position: static !important;
    transform: none !important;
    -webkit-backface-visibility: visible !important;
    backface-visibility: visible !important;
  }
  .hw-workspace {
    break-inside: avoid;
  }
  .hw-work-input {
    min-height: 130px;
    border: 1px solid #888;
  }
  .hw-visual-frame {
    border-color: #888;
  }
}
@media print {
  .concept-quick-path {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .step-detail > summary {
    display: none;
  }
  .step-detail[open] > summary ~ *,
  .step-detail > * {
    display: block;
  }
}
.print-only-certificate {
  display: none;
}
@media print {
  .homework-tab-chrome,
  .homework-tab-bar,
  .bottom-status-bar,
  .help-modal-overlay,
  .print-all-btn,
  .parent-signoff-container {
    display: none !important;
  }
  .tab-panel-inner[hidden] {
    display: block !important;
    page-break-inside: avoid;
  }

  [data-tab-panel="play"],
  .workbench-drawer,
  .hw-stuck-fab,
  .hw-help-drawer {
    display: none !important;
  }
  body {
    padding-bottom: 0;
  }

  .bilingual-col,
  .worked-step,
  .worked-step.highlighted,
  .stuck-say,
  .stuck-dont,
  .watch-for-list,
  .watch-for,
  .practice-tier-head,
  .key-idea-banner {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .print-only-certificate.is-signed {
    display: block !important;
    margin-top: 40px;
    padding: 24px;
    border: 4px double var(--navy) !important;
    background: #ffffff !important;
    color: #000000 !important;
    text-align: center;
    page-break-inside: avoid;
  }
  .print-cert-header h2 {
    font-family: var(--font-display);
    font-size: 15px;
    letter-spacing: 0.1em;
    color: var(--muted) !important;
    margin: 0 0 6px;
  }
  .print-cert-header h3 {
    font-family: var(--font-display);
    font-size: 22px;
    color: var(--navy) !important;
    margin: 0 0 20px;
  }
  .print-cert-body p {
    font-size: 15px;
    color: var(--ink) !important;
    margin-bottom: 30px;
  }
  .print-cert-signatures {
    display: flex;
    justify-content: space-around;
    margin-bottom: 30px;
  }
  .print-sig-block {
    width: 40%;
    text-align: center;
  }
  .sig-line {
    font-family: "Outfit", sans-serif;
    font-size: 18px;
    font-weight: 700;
    color: var(--navy) !important;
    border-bottom: 1.5px solid var(--ink);
    padding-bottom: 6px;
    margin-bottom: 6px;
    min-height: 28px;
  }
  .sig-label {
    font-size: 11px;
    color: var(--muted) !important;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }
  .print-cert-note {
    text-align: left;
    background: #f9f9f9;
    padding: 12px 16px;
    border-left: 4px solid var(--coral);
    border-radius: 4px;
  }
  .print-cert-note .note-heading {
    font-size: 12px;
    color: var(--coral) !important;
    margin: 0 0 4px;
  }
  .print-cert-note .note-body {
    font-size: 13.5px;
    font-style: italic;
    margin: 0;
  }
}
@media print {
  .hw-quickplan {
    display: none;
  }
  .fam-act-card {
    break-inside: avoid;
  }

  .fam-game-break {
    display: none;
  }
}
@media print {
  .hw-route-chooser,
  .hw-pair-note {
    display: none !important;
  }
}
@media print {
  .family-talk-lang {
    display: none;
  }
  .family-talk-pane[hidden] {
    display: block;
  }
  .family-talk-pane {
    padding-right: 0;
  }
}
@media print {
  .family-visual-lab {
    box-shadow: none;
    break-inside: avoid;
  }
  .visual-lab-controls,
  .visual-lab-actions {
    display: none;
  }
  .visual-lab-layout {
    grid-template-columns: 1fr;
  }
  .visual-representation-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media print {
  .worked-step {
    break-inside: avoid;
    box-shadow: none;
  }
  .card {
    box-shadow: none;
  }
}
@media print {
  body {
    background-image: none;
  }
  .homework-tab-chrome,
  .hw-rail {
    display: none;
  }
}
@media print {
  body {
    background: #fff !important;
  }
}
@media print {
  .big-idea .concept-svg {
    max-width: 620px;
    margin: 0 auto;
  }
  .big-idea .guided-step,
  .big-idea .concept-visual-wrap {
    break-inside: avoid;
  }
}
@media print {
  .hw-hero::before,
  .hw-hero::after {
    content: none;
  }
  .btn,
  .btn-primary {
    box-shadow: none !important;
  }
  .bottom-status-bar {
    display: none !important;
  }
}
.refrigerator-sheet-print-container {
  display: none;
}
@media print {
  body.print-refrigerator-sheet * {
    visibility: hidden !important;
  }
  body.print-refrigerator-sheet .refrigerator-sheet-print-container,
  body.print-refrigerator-sheet .refrigerator-sheet-print-container * {
    visibility: visible !important;
  }
  body.print-refrigerator-sheet .refrigerator-sheet-print-container {
    display: block !important;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    margin: 0;
    padding: 0;
    background: #ffffff !important;
    color: #0f172a !important;
  }
  body.print-refrigerator-sheet .rf-sheet-page {
    border: 2px dashed #0284c7;
    border-radius: 12px;
    padding: 16px 20px;
    box-sizing: border-box;
    page-break-inside: avoid;
    break-inside: avoid;
  }
  body.print-refrigerator-sheet .rf-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 2px solid #e2e8f0;
    padding-bottom: 10px;
    margin-bottom: 12px;
  }
  body.print-refrigerator-sheet .rf-title-area h2 {
    font-size: 18px;
    margin: 0;
    color: #0f172a;
  }
  body.print-refrigerator-sheet .rf-title-area p {
    font-size: 13px;
    margin: 2px 0 0;
    color: #475569;
  }
  body.print-refrigerator-sheet .rf-qr-area {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  body.print-refrigerator-sheet .rf-qr-box svg {
    width: 96px;
    height: 96px;
  }
  body.print-refrigerator-sheet .rf-qr-label {
    font-size: 9px;
    font-weight: 700;
    color: #475569;
    margin-top: 2px;
  }
  body.print-refrigerator-sheet .rf-big-idea-box {
    background: #f0f9ff;
    border: 1px solid #bae6fd;
    border-radius: 8px;
    padding: 8px 12px;
    margin-bottom: 12px;
  }
  body.print-refrigerator-sheet .rf-section-badge {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.05em;
    color: #0369a1;
    margin-bottom: 4px;
  }
  body.print-refrigerator-sheet .rf-big-idea-text {
    font-size: 12px;
    line-height: 1.4;
    margin: 0;
    color: #0c4a6e;
  }
  body.print-refrigerator-sheet .rf-table-talk-box,
  body.print-refrigerator-sheet .rf-card-dinner {
    background: #f0fdfa;
    border: 1px solid #99f6e4;
    border-radius: 8px;
    padding: 8px 12px;
    margin-bottom: 10px;
  }
  body.print-refrigerator-sheet .rf-talk-prompts,
  body.print-refrigerator-sheet .rf-dinner-list {
    margin: 4px 0 0;
    padding-left: 18px;
    font-size: 11px;
    line-height: 1.35;
    color: #0f172a;
  }
  body.print-refrigerator-sheet .rf-grid {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 12px;
    margin-bottom: 10px;
  }
  body.print-refrigerator-sheet .rf-card {
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    padding: 8px 10px;
    margin-bottom: 8px;
    background: #ffffff;
  }
  body.print-refrigerator-sheet .rf-card h3 {
    margin: 0 0 4px;
    font-size: 13px;
    color: #12355b;
  }
  body.print-refrigerator-sheet .rf-visual-summary svg {
    max-width: 100%;
    height: auto;
    max-height: 76px;
    margin-top: 4px;
  }
  body.print-refrigerator-sheet .rf-workspace {
    min-height: 54px;
    border: 1px dashed #94a3b8;
    border-radius: 6px;
    padding: 4px 6px;
    margin-top: 4px;
    font-size: 10px;
    color: #475569;
  }
  body.print-refrigerator-sheet .rf-slip {
    border-top: 2px dashed #0f172a;
    padding-top: 8px;
    margin-top: 6px;
    font-size: 11px;
  }
  body.print-refrigerator-sheet .rf-slip-head,
  body.print-refrigerator-sheet .rf-slip-fields,
  body.print-refrigerator-sheet .rf-slip-mood {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 6px;
  }
  body.print-refrigerator-sheet .rf-sketch-box {
    min-height: 34px;
    border: 1px dashed #64748b;
    border-radius: 6px;
    padding: 4px 8px;
    margin: 4px 0 6px;
    font-size: 10.5px;
    color: #334155;
  }
  body.print-refrigerator-sheet .rf-practice-section {
    margin-bottom: 12px;
  }
  body.print-refrigerator-sheet .rf-practice-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 6px;
  }
  body.print-refrigerator-sheet .rf-prob-card {
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    padding: 8px 10px;
    background: #ffffff;
  }
  body.print-refrigerator-sheet .rf-prob-head {
    font-size: 11px;
    font-weight: 700;
    color: #334155;
    margin-bottom: 4px;
  }
  body.print-refrigerator-sheet .rf-prob-stem {
    font-size: 11.5px;
    line-height: 1.35;
    margin: 0 0 6px;
    color: #0f172a;
  }
  body.print-refrigerator-sheet .rf-work-box {
    height: 70px;
    border: 1px dashed #94a3b8;
    border-radius: 6px;
    background: #fafafa;
    position: relative;
  }
  body.print-refrigerator-sheet .rf-work-box-label {
    position: absolute;
    top: 3px;
    left: 6px;
    font-size: 9px;
    color: #94a3b8;
  }
  body.print-refrigerator-sheet .rf-signoff-strip {
    border-top: 2px dashed #cbd5e1;
    padding-top: 8px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 11px;
  }
  body.print-refrigerator-sheet .rf-sig-lines {
    display: flex;
    gap: 16px;
  }
  body.print-refrigerator-sheet .rf-sig-line {
    border-bottom: 1px solid #0f172a;
    width: 140px;
    height: 16px;
    display: inline-block;
  }
}
@media print {

  body.print-photobooth-only > * {
    display: none !important;
  }
  body.print-photobooth-only .pb-print-portal {
    display: block !important;
  }
  body.print-photobooth-only .pb-print-inner {
    border: 3px solid #0f172a;
    border-radius: 16px;
    padding: 24px;
    text-align: center;
    background: #ffffff;
    color: #0f172a;
  }
  body.print-photobooth-only .pb-print-title {
    font-size: 22px;
    margin: 0 0 6px;
  }
  body.print-photobooth-only .pb-print-meta {
    font-size: 14px;
    color: #475569;
    margin: 0 0 16px;
  }
  body.print-photobooth-only .pb-print-img {
    max-width: 80%;
    max-height: 520px;
    border-radius: 12px;
    border: 1px solid #cbd5e1;
  }
  body.print-photobooth-only .pb-print-caption {
    font-size: 16px;
    font-weight: 700;
    margin: 14px 0;
  }
  body.print-photobooth-only .pb-print-footer {
    display: flex;
    justify-content: space-between;
    border-top: 1px solid #e2e8f0;
    padding-top: 12px;
    font-size: 12px;
    color: #64748b;
  }
}
@media print {
  body.print-problems-only .hw-answer-key,
  body.print-problems-only .feedback,
  body.print-problems-only .problem-check-result,
  body.print-problems-only .solution-explanation,
  body.print-problems-only .problem-feedback {
    display: none !important;
  }
}
@media print {
  .hw-tools-menu,
  .hw-utility-controls,
  .homework-message-action,
  .homework-optional-extras {
    display: none !important;
  }
}
@media print {

  body.print-problems-only .problem-header-row,
  body.print-problems-only .problem-stem {
    break-after: avoid;
    break-inside: avoid;
  }
  body.print-problems-only .problem-section::after {
    content: "";
    display: block;
    min-height: 26mm;
  }
}
@media print {
  .concept-zoom-btn,
  .concept-zoom-dialog {
    display: none !important;
  }
}
@media print {
  .mathpad,
  .mathpad-fab {
    display: none !important;
  }
}
@media print {
  .hw-stepper-bar {
    display: none !important;
  }
  .problems-container.hw-stepped .problem-section:not(.is-step-current) {
    display: block;
  }
}
@media print {
  .hw-lightbox-dialog,
  .concept-zoom-btn {
    display: none !important;
  }
}
@media print {
  .bridge-card:not([open]) > *:not(summary) {
    display: none;
  }
}
@media print {
  .cga-card {
    display: none;
  }
}
@media print {
  .interactive-scratchpad {
    display: none !important;
  }
}
@media print {
  .fw-tools,
  .fw-guide,
  .fw-saved {
    display: none !important;
  }
  .fw-stage {
    border-color: #888;
  }
}
@media print {
  .hw-session-banner {
    display: none !important;
  }
}
@media print {
  .hw-huddle {
    display: none;
  }
}
@media print {
  .hw-skip {
    display: none;
  }
}
@media print {
  .hw-nights,
  .hw-tonight,
  .hw-mystery,
  .hw-confidence,
  .hw-grownup,
  .hw-teach,
  .hw-share,
  .hw-toast,
  dialog.hw-dialog,
  .hw-goal-card,
  .hw-dinner-talk,
  .hw-pathway-bar,
  .hw-voice-chips {
    display: none !important;
  }
}
@media print {
  .cf {
    display: none !important;
  }
}
@media screen {
  .hw-print-socratic-footer {
    display: none;
  }
}
@media print {
  .hw-print-socratic-footer {
    display: block;
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid #000;
    font-size: 12pt;
    break-inside: avoid;
  }
}
@media print {
  body.print-domino-sheet > *:not(.hw-domino-sheet) {
    display: none !important;
  }
  body.print-domino-sheet .hw-domino-sheet {
    display: block !important;
    color: #000;
    font-size: 12pt;
  }
  .hw-domino-sheet h2 {
    margin: 0 0 4pt;
    font-size: 18pt;
  }
  .hw-domino-sheet ol {
    margin: 6pt 0 10pt;
    padding-left: 18pt;
  }
  .hw-domino-sheet li {
    margin: 0 0 4pt;
  }
  .hw-domino-sheet .dsheet-note {
    margin: 0 0 8pt;
    font-style: italic;
  }
  .hw-domino-sheet .dsheet-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8mm 6mm;
    margin: 6pt 0 10pt;
  }
  .hw-domino-sheet .dsheet-tile {
    position: relative;
    display: flex;
    min-height: 26mm;
    border: 2pt dashed #000;
    break-inside: avoid;
  }
  .hw-domino-sheet .dsheet-half {
    flex: 1 1 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3mm;
    text-align: center;
    font-size: 15pt;
    font-weight: 700;
    overflow-wrap: anywhere;
  }
  .hw-domino-sheet .dsheet-half + .dsheet-half {
    border-left: 2pt solid #000;
  }
  .hw-domino-sheet .dsheet-start {
    position: absolute;
    top: -4.5mm;
    left: 3mm;
    padding: 0 2mm;
    background: #fff;
    font-size: 9pt;
    font-weight: 800;
  }
  .hw-domino-sheet .dsheet-key {
    font-size: 10pt;
    break-inside: avoid;
  }
}
@media print {
  .hw-listen-bar {
    display: none;
  }
}
.hw-print-head,
.hw-print-choices {
  display: none;
}
@media print {
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) {
    background: #fff !important;
    color: #000 !important;
    padding: 0 !important;
    font-size: 12pt !important;
    line-height: 1.4 !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) .container {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) * {
    box-shadow: none !important;
    text-shadow: none !important;
    animation: none !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) a {
    color: #000 !important;
    text-decoration: none !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) .card,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) .card-ish,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .problem-section,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .practice-tier-head,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .learn-summary-block,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .learn-big-idea-block,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .parent-quick-card,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .bilingual-col {
    background: #fff !important;
    color: #000 !important;
    border-color: #777 !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .container
    p,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .container
    li,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .container
    label,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .container
    td,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .container
    th,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .choice-text,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .problem-stem,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .learning-big,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .learning-sub {
    font-size: 12pt !important;
    line-height: 1.4 !important;
    color: #000 !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .container
    small,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) .lang-label,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-print-kicker {
    font-size: 12pt !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) h1,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) h2,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) h3 {
    color: #000 !important;
    break-after: avoid;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .section-title {
    font-size: 15pt !important;
    margin: 4mm 0 2mm !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .practice-tier-title {
    font-size: 14pt !important;
  }


  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-print-head {
    display: block;
    margin: 0 0 5mm;
    padding-bottom: 3mm;
    border-bottom: 1.5pt solid #000;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-print-kicker {
    margin: 0 0 1mm;
    font-weight: 700;
    letter-spacing: 0.02em;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-print-title {
    margin: 0 0 4mm;
    font-size: 20pt !important;
    font-weight: 800;
    line-height: 1.2 !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-print-name {
    display: flex;
    gap: 10mm;
    margin: 0 0 3mm;
    align-items: flex-end;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-print-field {
    flex: 1 1 70%;
    display: flex;
    align-items: flex-end;
    gap: 2mm;
    font-weight: 700;
    white-space: nowrap;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-print-field-short {
    flex: 1 1 30%;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-print-field
    i {
    flex: 1;
    border-bottom: 1pt solid #000;
    height: 7mm;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-print-note {
    margin: 0;
    font-style: italic;
  }


  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .tab-panel-inner {
    break-inside: auto !important;
    page-break-inside: auto !important;
  }


  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) .hw-hero,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .homework-tab-chrome,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) .hw-rail,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-listen-bar,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .btn-read-aloud,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .btn-listen-prob,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) .hw-listen,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .bridge-listen,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .lang-selector-card,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .live-streak-banner,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .goal-reached-banner,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .scratchpad-inline-toggle,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .interactive-scratchpad,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-stepper-bar,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .problem-hint-row,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .problem-coach-ladder,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .problem-check-row,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .problem-check-result,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) .feedback,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .problem-feedback,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .solution-explanation,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-answer-key,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .family-problem-tip,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .family-hint-box,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .tab-flow-nav,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) .fw-tools,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) .fw-guide,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) .fw-saved,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .drag-controls,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .mobile-cat-select,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .drag-handle,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .learn-jump-row,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .learn-extended-block,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) .hw-huddle,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .tab-help-row,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .help-pop-btn,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .bridge-card,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    details:not([open]):not(.hw-workspace-toggle),
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-quick-optional,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .more-practice:not([open]),
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-help-drawer,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .help-modal-overlay,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .bottom-status-bar,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .ls-launcher,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) .ls-panel,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) .mathpad,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .mathpad-fab,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-stuck-fab,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .workbench-drawer,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-tools-menu,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .parent-signoff-container,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-session-banner,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) .cga-card,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    #hw_panel_check
    > p.bilingual-block:not(.quick-check-time),
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    [data-tab-panel="words"],
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    [data-tab-panel="play"],
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    [data-tab-panel="photobooth"],
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    #hw_panel_done
    > *:not(.print-only-certificate) {
    display: none !important;
  }


  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) .obj-term {
    border: 0 !important;
    background: none !important;
    color: inherit !important;
    font: inherit !important;
    padding: 0 !important;
    text-decoration: underline;
    text-decoration-style: dotted;
  }


  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .problem-section {
    break-inside: avoid;
    margin: 0 0 6mm !important;
    padding: 3mm 4mm !important;
    border: 1pt solid #777 !important;
    border-radius: 2mm !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .problem-header-row {
    display: flex;
    gap: 3mm;
    align-items: center;
    break-after: avoid;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .problem-number-badge {
    background: #fff !important;
    color: #000 !important;
    border: 1.5pt solid #000 !important;
    min-width: 8mm;
    text-align: center;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .problem-type-badge,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .practice-tier-badge {
    background: #fff !important;
    color: #000 !important;
    border: 1pt solid #777 !important;
    font-size: 11pt !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .problem-stem {
    font-weight: 700;
    break-after: avoid;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .practice-tier {
    margin-bottom: 5mm;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .practice-tier-head {
    padding: 2mm 3mm !important;
    border: 1pt solid #777;
    break-after: avoid;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .mc-options {
    display: block !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .mc-option-label {
    display: flex !important;
    align-items: center;
    gap: 3mm;
    margin: 0 0 2mm !important;
    padding: 1.5mm 3mm !important;
    background: #fff !important;
    border: 1pt solid #777 !important;
    border-radius: 2mm !important;
    min-height: 9mm;
    break-inside: avoid;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .custom-radio {
    border: 1.5pt solid #000 !important;
    background: #fff !important;
    flex: none;
  }


  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    input[type="text"],
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    input[type="number"],
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    input:not([type]),
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .table-input,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .custom-input {
    border: 0 !important;
    border-bottom: 1pt solid #000 !important;
    border-radius: 0 !important;
    background: transparent !important;
    min-width: 30mm;
    height: 9mm;
    font-size: 12pt !important;
    color: #000 !important;
    box-shadow: none !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) select,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .matching-select {
    appearance: none;
    -webkit-appearance: none;
    border: 0 !important;
    border-bottom: 1pt solid #000 !important;
    border-radius: 0 !important;
    background: transparent !important;
    min-width: 40mm;
    height: 9mm;
    font-size: 12pt !important;
    color: #000 !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) textarea {
    appearance: none;
    -webkit-appearance: none;
    resize: none;
    overflow: visible;
    border: 0 !important;
    border-radius: 0 !important;
    min-height: 36mm;
    width: 100% !important;
    font-size: 12pt !important;
    line-height: 8mm !important;
    color: #000 !important;
    padding: 0 !important;
    background: repeating-linear-gradient(
      to bottom,
      transparent 0,
      transparent calc(8mm - 1pt),
      #777 calc(8mm - 1pt),
      #777 8mm
    ) !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .fill-table {
    border-collapse: collapse;
    width: 100%;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .fill-table
    th,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .fill-table
    td {
    border: 1pt solid #000 !important;
    padding: 2mm !important;
    background: #fff !important;
    color: #000 !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) .drag-card {
    border: 1pt solid #000 !important;
    background: #fff !important;
    display: inline-block;
    margin: 0 2mm 2mm 0;
    padding: 1mm 3mm;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .drag-column {
    border: 1pt solid #000 !important;
    background: #fff !important;
    min-height: 28mm;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .matching-row {
    break-inside: avoid;
  }


  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-workspace-toggle {
    border: 0 !important;
    background: none !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-workspace-toggle
    > summary {
    list-style: none;
    font-weight: 700;
    font-size: 12pt !important;
    border: 0 !important;
    background: none !important;
    padding: 0 !important;
    margin: 0 0 1mm;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    textarea::placeholder,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    input::placeholder {
    color: transparent !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    select:has(option:checked[value=""]) {
    color: transparent !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .drag-source-header {
    display: none !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .more-practice {
    border: 0 !important;
    padding: 0 !important;
    background: none !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .more-practice
    > summary {
    list-style: none;
    font-weight: 700;
    font-size: 14pt !important;
    border: 0 !important;
    background: none !important;
    padding: 0 !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .more-practice
    > summary::-webkit-details-marker {
    display: none;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-print-choices {
    display: block;
    list-style: upper-alpha;
    margin: 3mm 0 0;
    padding-left: 9mm;
    font-size: 12pt !important;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-print-choices
    li {
    margin: 0 0 1mm;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-workspace-toggle
    > summary::-webkit-details-marker {
    display: none;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-workspace {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 4mm;
    align-items: start;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-visual-frame {
    border: 1pt dashed #777 !important;
    background: #fff !important;
    min-height: 36mm;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-visual-frame
    svg,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .concept-svg,
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .family-big-idea-visual
    svg {
    max-width: 100%;
    height: auto;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet) .hw-work {
    margin: 0;
  }
  body:not(.print-answer-sheet):not(.print-domino-sheet):not(.print-refrigerator-sheet)
    .hw-work-label {
    font-weight: 700;
    font-size: 12pt !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.hw-motion-ready [data-tab-panel]:not([hidden]) > * {
    animation: none !important;
  }
}
@media print {
  .hw-hero {
    display: none;
  }
}


.fp-sets-nav {
  margin: 1rem 0 1.25rem;
  padding: 0.75rem 1rem;
  background: var(--fm-raised);
  border: 1px solid var(--fm-border-strong);
  border-radius: var(--fm-radius-md);
}
.fp-step-indicator {
  font-weight: 700;
  color: var(--fm-text);
}
.fp-step-indicator strong {
  color: var(--fm-primary);
}
.fp-paginated-view .problem-section:not(.is-active-problem) {
  display: none !important;
}
.fp-paginated-view .problem-section.is-active-problem {
  display: block !important;
}
.fp-problem-dock {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 1rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--fm-border);
}
.fp-practice-more-box {
  margin: 1.25rem 0;
  text-align: center;
}
.btn-practice-more {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.7rem 1.4rem;
  font-weight: 700;
  border-radius: var(--fm-radius-pill);
  background: var(--fm-primary);
  color: var(--fm-on-primary) !important;
  border: 1px solid var(--fm-primary);
  cursor: pointer;
  min-height: 48px;
}
.btn-practice-more:hover {
  background: var(--fm-primary-hover);
}
@media print {
  .fp-paginated-view .problem-section {
    display: block !important;
  }
  .fp-sets-nav,
  .fp-problem-dock,
  .fp-practice-more-box {
    display: none !important;
  }
}
.fp-paginated-view .hw-stepper-bar,
.fp-paginated-view .practice-tier-head,
.fp-paginated-view .hw-goal-card.fp-progress {
  display: none !important;
}
.fp-paginated-view .practice-tier,
.fp-paginated-view .problems-container {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
}
.fp-paginated-view .fp-sets-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin: 0 0 0.5rem;
  padding: 0;
  background: none;
  border: 0;
}
.fp-nav-arrow {
  display: inline-grid;
  place-items: center;
  padding: 0;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  flex: 0 0 44px;
  border-radius: 50%;
  border: 1px solid var(--fm-border-strong);
  background: var(--fm-raised);
  color: var(--fm-primary);
  font-size: var(--fm-fs-xl);
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}
.fp-nav-arrow:hover {
  border-color: var(--fm-primary);
}
body:not([data-goal-met="1"]) .fp-paginated-view .fp-practice-more-box,
body:not([data-goal-met="1"]) .fp-paginated-view .hw-quick-optional {
  display: none !important;
}
.fp-paginated-view .fp-step-indicator {
  font-size: var(--fm-fs-md);
  color: var(--fm-text);
}
.hw-next-cta {
  margin: 0.75rem 0;
  display: grid;
}
.fp-paginated-view .problem-section.correct .problem-check-row,
.fp-paginated-view .problem-section.correct .hw-intelligence-card,
.fp-paginated-view .problem-section.correct .hw-copilot-card {
  display: none !important;
}

/* ===== Accessibility states (scripts/lib/homework-a11y.mjs) ===== */
/* Controls that act through the delegated listener must be "clickable" for iOS Safari. */
[data-act]:not(:disabled):not(input):not(select):not(textarea) { cursor: pointer; }

/* A flashcard prompt is a real button now; it keeps the look of the text it replaced. */
button.flip-prompt, button.flip-back-prompt {
  background: none; border: 0; padding: 0; margin: 0; font: inherit; color: inherit;
  text-align: inherit; width: 100%;
}

/* Targets: a thumb needs 44px; WCAG 2.5.8 floors it at 24px. Inline words (.obj-term) and
   flashcard faces keep their line; every other control is at least 44 by 44. */
:where(button, summary, select, input[type="range"], [role="button"]:not(svg *), .btn, .lang-toggle-btn):not(.obj-term):not(.obj-term-glue) {
  min-block-size: 44px;
  min-inline-size: 44px;
}

/* Spanish text inherits the colour of the surface it sits on, like the English beside it; a fixed
   ink colour went dark-on-navy in the hero and the case-file kicker (2.1:1 and 1.2:1). */
.lang-es { color: inherit; }
/* A vocabulary word inside a dark table header keeps the header's colour. */
thead .obj-term, th .obj-term { color: inherit !important; background: transparent !important; }
/* Small print stays readable: nothing a family must read sits under 13px. */
.hw-route-copy small { font-size: max(13px, 0.83em); }
.checkbox-label { min-block-size: 44px; display: flex; align-items: center; gap: 8px; }

/* WCAG 2.4.11: a focused control is never hidden under the fixed top or bottom bars. */
html { scroll-padding-block: 80px 96px; }

/* Visible focus on every control, on light and dark surfaces: the design system's ring (dark with a light halo, light on dark mode). */
:where(a[href], button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: var(--fm-focus-width, 3px) solid var(--fm-focus, #17324d) !important;
  outline-offset: var(--fm-focus-offset, 2px) !important;
  box-shadow: 0 0 0 var(--fm-focus-offset, 2px) var(--fm-focus-halo, #ffffff) !important;
  transition: none !important;
}

@media (forced-colors: active) {
  /* Backgrounds are removed in forced colors, so an edge-less control disappears. The id-sized
     :not() lifts this above any single class or id rule that set border: none. */
  :is(button, summary, select, textarea, [role="button"], .btn,
    input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"])):not(.obj-term):not(#a11y-forced) {
    border: 1px solid ButtonText !important;
  }
  :where(a[href], button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid Highlight !important;
    box-shadow: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    animation-delay: 0s !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0s !important;
    scroll-behavior: auto !important;
  }
}


/* ===== Family Take-Home Sheet on the web (scripts/lib/family-takehome-css.mjs) ===== */
.fm-th-web { display: none; }
.fm-print-cta { margin: 16px 0; text-align: center; }
.fm-print-btn { min-height: 44px; padding: 8px 18px; border: 2px solid currentColor; border-radius: 8px; background: transparent; color: inherit; font: inherit; font-weight: 700; cursor: pointer; }
@media print {
  .fm-print-cta { display: none !important; }
  body.fm-print-plan > *:not(.fm-th-web) { display: none !important; }
  body.fm-print-plan > .fm-th-web { display: block !important; }
  body.fm-print-plan { background: #fff !important; color: #14181d !important; margin: 0 !important; padding: 0 !important; }
  body.fm-print-plan.lang-mode-es > .fm-th-web .fm-th.lang-en,
  body.fm-print-plan:not(.lang-mode-es) > .fm-th-web .fm-th.lang-es { display: none !important; }

.fm-th, .fm-gd { --ink: #14181d; --soft: #f3f3f1; --rule: #14181d; --ds-font-text: "Atkinson Hyperlegible", "Helvetica Neue", Arial, sans-serif;
  font: 400 12pt/1.38 "Atkinson Hyperlegible", "Helvetica Neue", Arial, sans-serif; color: var(--ink); background: #fff; }
.fm-th *, .fm-gd * { box-sizing: border-box; }
.fm-th .fi, .fm-gd .fi { width: 20pt; height: 20pt; flex: none; }
.fm-th .fi-d, .fm-gd .fi-d { fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.fm-th .fi-f, .fm-gd .fi-f { fill: currentColor; stroke: currentColor; }
.fm-th a, .fm-gd a { color: inherit; text-decoration: none; }

.fm-th-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12pt;
  border-bottom: 3pt solid var(--accent); padding-bottom: 4pt; }
.fm-th-mark { margin: 0; font-weight: 700; font-size: 12pt; color: var(--accent); }
.fm-th-where { margin: 0; font-size: 12pt; text-align: right; }
.fm-th-std { display: inline-block; margin-left: 6pt; padding: 0 5pt; border: 1.25pt solid var(--ink); border-radius: 4pt; font-weight: 700; }
.fm-th h1, .fm-th .fm-th-h1, .fm-gd h1 { margin: 6pt 0 1pt; font-size: 21pt; line-height: 1.15; font-weight: 700; break-after: avoid; }
.fm-th-plain { margin: 0 0 4pt; font-size: 12pt; }
.fm-th-name { display: flex; gap: 20pt; margin: 6pt 0 2pt; align-items: flex-end; }
.fm-th-field { display: flex; gap: 5pt; align-items: flex-end; font-weight: 700; flex: 1 1 62%; }
.fm-th-field.short { flex-basis: 30%; }
.fm-th-field i { flex: 1; border-bottom: 1pt solid var(--ink); height: 0.3in; }

.fm-th h2, .fm-th .fm-th-h2, .fm-gd h2 { margin: 0 0 3pt; font-size: 14pt; line-height: 1.2; font-weight: 700; display: flex; align-items: center; gap: 6pt; break-after: avoid; }
.fm-th-box { border: 1.25pt solid var(--ink); border-radius: 6pt; padding: 7pt 10pt 8pt; margin: 8pt 0; break-inside: avoid; }
.fm-th-box p, .fm-gd p { margin: 0; }
.fm-th-hook { background: var(--soft); }
.fm-th-hook .style { display: inline-block; margin-bottom: 2pt; font-weight: 700; letter-spacing: .02em; }
.fm-th-hook .fm-th-guess { margin-top: 4pt; font-weight: 700; }
.fm-th-fig { margin: 6pt 0; padding: 0; text-align: center; break-inside: avoid; }
.fm-th-fig [role="img"] { display: block; }
/* 4.1in keeps the model's 14-unit labels at >= 11pt (14 x 4.1in/360 x 0.75); never cap its height */
.fm-th-fig svg { width: 4.1in; max-width: 100%; height: auto; }
.fm-th-fig figcaption { font-size: 12pt; font-weight: 700; margin-top: 2pt; }

.fm-th-top { display: grid; grid-template-columns: 1fr 4.1in; gap: 10pt; align-items: start; }
.fm-th-top .fm-th-box { margin-right: 0; }
.fm-th-note { margin: 0 0 5pt; }
.fm-th ol.fm-th-items { margin: 0; padding: 0; list-style: none; counter-reset: item; }
.fm-th-items > li { counter-increment: item; position: relative; padding-left: 24pt; margin: 0 0 7pt; break-inside: avoid; }
.fm-th-items > li::before { content: counter(item); position: absolute; left: 0; top: 0; width: 18pt; height: 18pt; border: 1.5pt solid var(--ink);
  border-radius: 50%; text-align: center; font-weight: 700; font-size: 12pt; line-height: 15pt; }
.fm-th-stem { font-weight: 700; }
.fm-th-choices { display: flex; flex-wrap: wrap; gap: 3pt 18pt; margin: 2pt 0 0; padding: 0; list-style: none; }
.fm-th-choices li { white-space: nowrap; }
.fm-th .b, .fm-gd .b { font-weight: 700; }
.fm-th-choices .b { display: inline-block; min-width: 14pt; }
.fm-th-qr .d { display: block; }
.fm-th-ans { display: flex; align-items: flex-end; gap: 6pt; margin-top: 3pt; }
.fm-th-ans span { font-size: 11pt; font-weight: 700; }
.fm-th-ans i { flex: 1; border-bottom: 1pt solid var(--ink); height: 0.4in; }

.fm-th-split > .fm-th-pair { break-before: page; }
.fm-th-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10pt; }
.fm-th-pair .fm-th-box { margin: 6pt 0; }
.fm-th-stuck ul { margin: 0; padding-left: 16pt; }
.fm-th-stuck li { margin: 0 0 1pt; }
.fm-th-stuck .sub { font-weight: 400; }

.fm-th-foot { display: grid; grid-template-columns: auto 1fr auto; gap: 14pt; align-items: center; margin-top: 4pt; break-inside: avoid; }
.fm-th-qr { display: flex; gap: 8pt; align-items: center; }
.fm-th-qr svg { width: 0.85in; height: 0.85in; }
.fm-th-qr p { font-size: 12pt; }
.fm-th-link { display: block; font-weight: 700; font-size: 11pt; margin-top: 2pt; }
.fm-th-feel { text-align: center; }
.fm-th-feel .b { display: block; margin-bottom: 2pt; font-size: 11pt; }
.fm-th-faces { display: flex; gap: 10pt; justify-content: center; }
.fm-th-faces span { display: flex; flex-direction: column; align-items: center; font-size: 11pt; }
.fm-th-faces svg { width: 26pt; height: 26pt; }
.fm-th-faces .face { fill: none; stroke: var(--ink); stroke-width: 1.6; stroke-linecap: round; }
.fm-th-small { font-size: 11pt; }

.fm-gd { font-size: 11pt; line-height: 1.3; }
.fm-gd h2 { margin-top: 8pt; font-size: 13pt; }
.fm-gd .fm-th-plain { font-size: 11pt; }
.fm-gd-ans { margin: 0; padding: 0; list-style: none; counter-reset: ans; }
.fm-gd-ans > li { counter-increment: ans; margin: 0 0 5pt; padding-left: 24pt; position: relative; break-inside: avoid; }
.fm-gd-ans > li::before { content: counter(ans); position: absolute; left: 0; top: 0; width: 18pt; height: 18pt; border: 1.5pt solid var(--ink);
  border-radius: 50%; text-align: center; font-weight: 700; line-height: 15pt; }
.fm-gd ul { margin: 0; padding-left: 16pt; }
.fm-gd li { margin: 0 0 2pt; }
.fm-gd .fm-th-box { margin: 6pt 0; }

}
