:root { --ink:#17212b; --muted:#697682; --cream:#fbf7ef; --paper:#fffdf8; --orange:#f2643c; --blue:#dfeaf1; --line:#e7e1d7; --green:#3d8b68; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font:15px/1.6 'DM Sans',Arial,sans-serif; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
.shell { width:min(1120px, calc(100% - 48px)); margin:0 auto; }
.narrow { width:min(760px, calc(100% - 48px)); }
.site-header { padding:21px 0; background:var(--cream); border-bottom:1px solid rgba(23,33,43,.07); }
.nav-wrap,.footer-wrap,.admin-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:inline-flex; align-items:center; gap:12px; color:var(--ink); font:700 18px/1 'Space Grotesk',sans-serif; letter-spacing:-.03em; }
.brand-logo { display:block; width:44px; height:44px; object-fit:cover; border-radius:50%; }
.main-nav { display:flex; align-items:center; gap:28px; color:var(--muted); font-weight:600; }
.main-nav a { transition:color .18s ease,background .18s ease; }
.main-nav a:hover,.text-link:hover,.back-link:hover { color:var(--orange); }
.hero { overflow:hidden; background:var(--blue); }
.hero-grid { min-height:500px; display:grid; grid-template-columns:1fr .88fr; align-items:center; gap:40px; }
.eyebrow { margin:0 0 12px; color:var(--orange); text-transform:uppercase; letter-spacing:.14em; font-size:11px; font-weight:700; }
h1,h2,h3 { margin:0; font-family:'Space Grotesk',sans-serif; letter-spacing:-.05em; line-height:1.04; }
.hero h1 { max-width:620px; font-size:clamp(48px,7vw,84px); }
.hero h1 em { color:var(--orange); font-style:normal; }
.hero-copy { max-width:495px; margin:25px 0 29px; color:#50616d; font-size:17px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:46px; border:0; border-radius:8px; padding:11px 18px; font-weight:700; cursor:pointer; transition:transform .18s ease,opacity .18s ease,box-shadow .18s ease; }
.button:hover { transform:translateY(-2px); opacity:.94; box-shadow:0 10px 22px rgba(23,33,43,.14); }
.button:active { transform:translateY(0) scale(.97); box-shadow:0 3px 8px rgba(23,33,43,.12); }
.button-dark { background:var(--ink); color:#fff; }
.button-orange { background:var(--orange); color:#fff; }
.button-orange:hover { box-shadow:0 10px 24px rgba(242,100,60,.32); }
.button-light { background:#f3eee5; color:var(--ink); }
.hero-art { position:relative; min-height:380px; }
.sun { position:absolute; width:300px; height:300px; top:27px; right:45px; border-radius:50%; background:#f8c88d; opacity:.72; }
.book { position:absolute; width:260px; height:190px; border-radius:7px 15px 15px 7px; transform:rotate(-16deg); box-shadow:18px 22px 0 rgba(23,33,43,.08); }
.book-back { right:120px; top:125px; background:#fbf5df; border:3px solid var(--ink); }
.book-front { right:72px; top:100px; background:var(--orange); border:3px solid var(--ink); transform:rotate(12deg); }
.book-front:before,.book-front:after { content:''; position:absolute; height:3px; left:28px; right:28px; background:rgba(255,255,255,.55); }
.book-front:before { top:58px; }.book-front:after { top:76px; }
.book-front span { position:absolute; right:29px; bottom:18px; color:#fff; font:700 66px/1 'Space Grotesk',sans-serif; }
.spark { position:absolute; color:var(--orange); font-size:27px; }.spark-one { top:53px; right:55px; }.spark-two { bottom:63px; left:37px; font-size:20px; }
.section { padding:88px 0 105px; }
.section-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:29px; gap:20px; }
.section h1,.section h2 { font-size:clamp(32px,4vw,48px); }.result-count,.muted { color:var(--muted); }
.filter-bar { display:grid; grid-template-columns:1.55fr .7fr .85fr .95fr .85fr 1.05fr auto; gap:10px; margin-bottom:38px; }
.search-field { position:relative; display:block; }.search-field span { position:absolute; top:9px; left:14px; color:var(--muted); font-size:23px; }.search-field input { padding-left:42px; }
input,select,textarea { width:100%; border:1px solid var(--line); border-radius:7px; padding:11px 13px; color:var(--ink); background:var(--paper); outline:none; transition:border-color .18s ease,box-shadow .18s ease; }
input:focus,select:focus,textarea:focus { border-color:var(--orange); box-shadow:0 0 0 3px rgba(242,100,60,.12); }
textarea { resize:vertical; }.resource-groups { display:grid; gap:22px; }
.resource-group { padding:16px 16px 14px; border:1px solid var(--line); border-radius:14px; background:linear-gradient(180deg,rgba(255,253,248,.5),rgba(255,253,248,0)); }
.resource-group-heading { display:flex; align-items:center; flex-wrap:wrap; gap:9px; margin-bottom:12px; }
.resource-group-class { padding:4px 11px; border-radius:999px; background:var(--app-navy); color:#fff; font:700 10.5px/1.6 'Space Grotesk',sans-serif; letter-spacing:.05em; text-transform:uppercase; }
.resource-group-subject { font:700 17px/1.15 'Space Grotesk',sans-serif; color:var(--ink); }
.resource-group-count { margin-left:auto; padding:3px 10px; border-radius:999px; background:rgba(23,33,43,.06); color:var(--muted); font-size:11px; font-weight:700; }
.class-resource-box { padding:16px; border:1px solid var(--line); border-radius:18px; background:linear-gradient(180deg,rgba(255,253,248,.88),rgba(255,253,248,.48)); box-shadow:0 5px 18px rgba(32,42,52,.04); }
.class-resource-heading { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.class-resource-label { color:var(--ink); font:700 19px/1.15 'Space Grotesk',sans-serif; }
.class-resource-subjects,.class-resource-count { padding:4px 10px; border-radius:999px; background:rgba(23,33,43,.06); color:var(--muted); font-size:11px; font-weight:700; }
.class-resource-count { margin-left:auto; }
.class-resource-content { display:grid; gap:12px; margin-top:14px; }
.class-resource-box.is-open { grid-column:1 / -1; }
.class-subject-group { padding:13px 14px 12px; border-radius:14px; background:rgba(255,255,255,.42); }
.class-subject-group .resource-group-heading { margin-bottom:10px; }
.class-resource-toggle { width:100%; border:0; background:transparent; color:inherit; text-align:left; padding:0; font:inherit; cursor:pointer; }
.class-resource-toggle:focus-visible { outline:3px solid var(--orange,#f45d3e); outline-offset:5px; border-radius:10px; }
.class-resource-chevron { margin-left:auto; color:var(--orange,#f45d3e); font-size:24px; line-height:1; min-width:1.25rem; text-align:center; }
.class-resource-box.is-open > .class-resource-toggle { margin-bottom:0; }
.class-resource-content[hidden] { display:none; }
.resource-grid { display:flex; flex-wrap:wrap; gap:8px; }
.resource-card { display:inline-flex; align-items:center; gap:8px; background:var(--paper); border:1px solid var(--line); border-radius:999px; padding:7px 14px 7px 7px; box-shadow:0 2px 6px rgba(32,42,52,.03); text-decoration:none; color:var(--ink); transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease; }
.resource-card:hover { border-color:var(--orange); box-shadow:0 10px 22px rgba(242,100,60,.16); transform:translateY(-2px); background:#fff; }
.resource-card:active { transform:translateY(0) scale(.97); box-shadow:0 3px 8px rgba(242,100,60,.14); }
.resource-card-num { display:grid; flex:0 0 auto; place-items:center; width:22px; height:22px; border-radius:50%; background:rgba(242,100,60,.12); color:var(--orange); font:700 11px/1 'Space Grotesk',sans-serif; transition:background .18s ease,color .18s ease; }
.resource-card:hover .resource-card-num { background:var(--orange); color:#fff; }
.resource-card-name { font-weight:700; font-size:13.5px; line-height:1.3; }
.resource-card-arrow { flex:0 0 auto; color:var(--orange); font-size:14px; transition:transform .18s ease; }
.resource-card:hover .resource-card-arrow { transform:translateX(2px); }
.resource-card-premium { border-color:rgba(242,100,60,.32); background:linear-gradient(135deg,rgba(242,100,60,.06),rgba(255,253,248,0)); }
.card-meta,.detail-topline { display:flex; flex-wrap:wrap; gap:9px; color:var(--orange); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }.card-meta span+span:before,.detail-topline span+span:before { content:'·'; margin-right:9px; color:#adb8bd; }
.text-link { color:var(--orange); font-weight:700; }.text-link span { margin-left:4px; }
.notice { margin:18px 0; border-radius:8px; padding:13px 16px; }.notice-warning { background:#fff1d5; color:#755a23; }.notice-error { background:#fde3df; color:#943728; }.notice-success { background:#dff2e8; color:#246d4c; }
.empty-state { margin-top:24px; padding:62px 20px; background:var(--paper); border:1px dashed #d5cec3; border-radius:12px; text-align:center; }.empty-state h1,.empty-state h2,.empty-state h3 { margin:11px 0 9px; font-size:32px; }.empty-state p { max-width:440px; margin:0 auto 22px; color:var(--muted); }.empty-icon { display:inline-grid; place-items:center; width:50px; height:50px; border-radius:50%; background:var(--blue); font:700 25px/1 'Space Grotesk',sans-serif; }
.detail-section { min-height:calc(100vh - 140px); padding:60px 0 100px; }.back-link { display:inline-block; margin-bottom:25px; color:var(--muted); font-weight:700; }.detail-topline { margin-bottom:17px; }.detail-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:18px; color:var(--orange); font-size:12px; font-weight:700; }.detail-breadcrumb a:hover { text-decoration:underline; }.detail-breadcrumb span { color:#adb8bd; }.detail-section h1 { font-size:clamp(42px,6vw,70px); }.detail-summary { margin:22px 0 32px; color:var(--muted); font-size:18px; }.detail-image { display:block; width:100%; max-height:420px; object-fit:cover; border-radius:12px; margin:0 0 32px; }.prose { padding:30px 0; border-top:1px solid var(--line); color:#3b4852; font-size:17px; }.resource-actions { display:flex; flex-wrap:wrap; gap:10px; margin:15px 0 20px; }.tag-line { color:var(--muted); font-size:13px; }
.site-footer { padding:25px 0; border-top:1px solid var(--line); color:var(--muted); font-size:13px; }.footer-wrap { flex-wrap:wrap; }
.footer-wrap > div { display:grid; gap:3px; }.footer-note { display:block; }.footer-nav { display:flex; flex-wrap:wrap; gap:16px; }.footer-nav a:hover { color:var(--orange); }
.section-intro { max-width:610px; margin:10px 0 0; color:var(--muted); }
.path-section { padding:43px 0; border-bottom:1px solid var(--line); }.path-grid { display:grid; grid-template-columns:.72fr 1.28fr; align-items:center; gap:30px; }.path-grid h2 { font-size:clamp(30px,4vw,45px); }.path-links { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }.path-card { display:grid; gap:5px; padding:18px; background:var(--paper); border:1px solid var(--line); border-radius:9px; }.path-card:hover { border-color:var(--orange); transform:translateY(-2px); }.path-card strong { font:700 20px/1.1 'Space Grotesk',sans-serif; }.path-card span { color:var(--muted); font-size:12px; }
.trust-strip { padding:16px 0; border-top:1px solid var(--line); }.trust-strip-row { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 26px; color:var(--muted); font-size:13px; }.trust-strip-row strong { color:var(--ink); }
.page-section h1 { max-width:720px; font-size:clamp(44px,6vw,72px); }.page-section .prose h2 { margin:28px 0 8px; font-size:28px; }.clean-list { margin:12px 0 25px; padding-left:20px; }.clean-list li { margin:8px 0; }
.source-list { display:grid; gap:12px; margin:28px 0; }.source-card { display:grid; gap:6px; padding:20px; background:var(--paper); border:1px solid var(--line); border-radius:9px; }.source-card:hover { border-color:var(--orange); }.source-card strong { font:700 19px/1.2 'Space Grotesk',sans-serif; }.source-card span { color:var(--muted); }
.step-list { display:grid; gap:0; margin-top:42px; }.step-list article { display:grid; grid-template-columns:70px 1fr; gap:22px; padding:23px 0; border-top:1px solid var(--line); }.step-list article > span { color:var(--orange); font:700 18px/1 'Space Grotesk',sans-serif; }.step-list h2 { margin-bottom:7px; font-size:27px; }.step-list p { margin:0; color:var(--muted); }
.stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:22px; }.stat-grid > div { display:grid; gap:4px; padding:18px; background:var(--paper); border:1px solid var(--line); border-radius:9px; }.stat-grid strong { font:700 32px/1 'Space Grotesk',sans-serif; }.stat-grid span { color:var(--muted); font-size:12px; }.editorial-note { display:grid; gap:5px; margin-bottom:28px; padding:17px 19px; background:var(--blue); border-radius:9px; }.editorial-note strong { font:700 18px/1.2 'Space Grotesk',sans-serif; }.editorial-note span { color:#50616d; }.editorial-note a { color:var(--orange); font-weight:700; font-size:13px; }
.analytics-panel { margin:0 0 28px; padding:22px; border:1px solid var(--line); border-radius:12px; background:var(--paper); box-shadow:0 8px 25px rgba(32,42,52,.045); }.analytics-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:20px; }.analytics-heading h2 { margin:0; font-size:30px; }.analytics-heading .muted { margin:7px 0 0; }.analytics-stat-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin-bottom:18px; }.analytics-stat { display:grid; gap:5px; padding:15px; border:1px solid var(--line); border-radius:9px; background:rgba(223,234,241,.28); }.analytics-stat strong { font:700 29px/1 'Space Grotesk',sans-serif; }.analytics-stat span { font-weight:700; }.analytics-stat small { color:var(--muted); font-size:11px; line-height:1.35; }.analytics-stat-live { border-color:rgba(61,139,104,.32); }.analytics-stat-live strong { color:var(--green); }.analytics-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:12px; }.analytics-card { min-width:0; padding:17px; border:1px solid var(--line); border-radius:9px; background:rgba(255,253,248,.58); }.analytics-card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:12px; }.analytics-card h3 { margin:0 0 4px; font-size:20px; }.analytics-card-heading p { margin:0; color:var(--muted); font-size:12px; }.analytics-live-label { display:inline-flex; align-items:center; flex:0 0 auto; gap:6px; color:var(--muted); font-size:10px; white-space:nowrap; }.analytics-live-label i { width:7px; height:7px; border-radius:50%; background:var(--green); box-shadow:0 0 0 4px rgba(61,139,104,.12); }.analytics-table-wrap { overflow:auto; }.analytics-table { width:100%; min-width:440px; border-collapse:collapse; font-size:12px; }.analytics-table th,.analytics-table td { padding:9px 8px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }.analytics-table th { color:var(--muted); font-size:10px; letter-spacing:.06em; text-transform:uppercase; }.analytics-table tr:last-child td { border-bottom:0; }.analytics-table td:first-child { color:var(--ink); font-weight:700; }.analytics-top-pages { min-width:300px; }.analytics-empty { margin:0; padding:16px 0 4px; color:var(--muted); font-size:13px; }.analytics-note { margin:15px 0 0; color:var(--muted); font-size:11px; }
.auth-section { display:grid; place-items:center; min-height:calc(100vh - 153px); padding:50px 20px; }.auth-card { width:min(420px,100%); padding:34px; background:var(--paper); border:1px solid var(--line); border-radius:12px; }.auth-card h1 { font-size:40px; }.stack-form { display:grid; gap:17px; margin-top:25px; }.stack-form label,.resource-form label { display:grid; gap:6px; color:#4a5963; font-weight:700; font-size:13px; }
.auth-divider { display:flex; align-items:center; gap:12px; margin:20px 0 16px; color:var(--muted); font-size:12px; }.auth-divider::before,.auth-divider::after { content:""; flex:1; height:1px; background:var(--line); }.auth-divider span { text-transform:uppercase; letter-spacing:.08em; }.auth-help { margin:18px 0 0; color:var(--muted); font-size:12px; line-height:1.5; }
.admin-section { padding-top:64px; }.admin-heading { align-items:end; margin-bottom:32px; }.admin-heading h1 { font-size:clamp(42px,5vw,66px); }.admin-heading .muted { margin:12px 0 0; }.admin-actions { display:flex; align-items:center; gap:18px; }.admin-table-wrap { overflow:auto; background:var(--paper); border:1px solid var(--line); border-radius:10px; }.admin-table { width:100%; min-width:900px; border-collapse:collapse; }.admin-table th,.admin-table td { padding:16px 17px; border-bottom:1px solid var(--line); text-align:left; }.admin-table th { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.09em; }.admin-table tr:last-child td { border-bottom:0; }.table-actions { display:flex; gap:13px; align-items:center; }.table-actions a { color:var(--orange); font-weight:700; }.link-button { padding:0; background:none; border:0; color:var(--orange); font-weight:700; cursor:pointer; }.link-button.danger { color:#a44637; }.status { display:inline-block; padding:3px 8px; border-radius:30px; font-size:11px; font-weight:700; }.status-live { color:#246d4c; background:#dff2e8; }.status-draft { color:#755a23; background:#fff1d5; }
.narrow-form { max-width:780px; }.narrow-form h1 { margin-bottom:30px; font-size:clamp(40px,5vw,62px); }.resource-form { display:grid; gap:20px; padding:25px; background:var(--paper); border:1px solid var(--line); border-radius:12px; }.form-grid,.upload-grid { display:grid; grid-template-columns:1fr 1fr; gap:17px; }.resource-form small { display:block; margin-top:7px; color:var(--muted); font-weight:400; }.check { display:inline-flex !important; grid-template-columns:auto 1fr !important; align-items:center; gap:7px !important; font-size:12px !important; font-weight:400 !important; }.check input { width:auto; }.publish-check { padding-top:4px; }.form-actions { display:flex; gap:10px; padding-top:4px; }
code { padding:2px 5px; border-radius:4px; background:rgba(23,33,43,.07); }
.skip-link { position:absolute; left:12px; top:-60px; z-index:10; padding:9px 13px; border-radius:6px; background:var(--ink); color:#fff; font-weight:700; }.skip-link:focus { top:12px; }
.hidden-field { display:none !important; }
.nav-wrap { position:relative; }.theme-toggle { display:inline-grid; place-items:center; width:38px; height:38px; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--paper); color:var(--ink); cursor:pointer; font-size:18px; }.theme-toggle:hover { border-color:var(--orange); }
.section-heading-tools { display:flex; align-items:center; gap:18px; }.saved-link { color:var(--muted); font-size:13px; }.saved-link strong { color:var(--orange); }.card-links { display:flex; align-items:center; flex-wrap:wrap; gap:14px; }.availability { padding:3px 7px; border-radius:4px; background:var(--blue); color:var(--ink); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.detail-facts { display:flex; flex-wrap:wrap; gap:9px 17px; margin:0 0 27px; color:var(--muted); font-size:12px; }.detail-facts span+span:before { content:'·'; margin-right:17px; color:#adb8bd; }.next-step { display:grid; gap:5px; margin-top:25px; padding:18px 20px; border-radius:9px; background:var(--blue); }.next-step strong { font:700 18px/1.2 'Space Grotesk',sans-serif; }.next-step span { color:var(--muted); }.next-step .text-link { margin-top:3px; }
.qa-toolbar { display:flex; align-items:end; justify-content:space-between; gap:15px; margin:22px 0 13px; padding:14px 16px; border-radius:9px; background:var(--blue); }.qa-toolbar label { display:grid; gap:5px; color:var(--ink); font-size:12px; font-weight:700; }.qa-toolbar select { min-width:260px; background:var(--paper); }.qa-toolbar > span { color:var(--muted); font-size:12px; font-weight:700; }.paper-guidance { display:grid; gap:5px; margin:22px 0 13px; padding:15px 17px; border-left:4px solid var(--orange); border-radius:8px; background:var(--blue); }.paper-guidance span { color:var(--muted); font-size:13px; }.qa-list { display:grid; gap:15px; padding-top:5px; }.qa-paper-section { padding:20px 2px 5px; border-top:2px solid var(--orange); }.qa-paper-section:first-child { border-top:0; padding-top:5px; }.qa-paper-section h2 { margin:6px 0 4px; font-size:27px; letter-spacing:-.04em; }.qa-paper-section p { margin:0; color:var(--muted); font-size:13px; }.qa-paper-section .qa-assertion-options { margin-top:9px; font-size:12px; line-height:1.55; }.qa-extract-heading { padding:18px 2px 2px; border-top:1px solid var(--line); }.qa-extract-heading:first-child { border-top:0; padding-top:4px; }.qa-extract-kicker { color:var(--orange); font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }.qa-extract-heading h3 { margin:6px 0 8px; font:700 21px/1.2 'Space Grotesk',sans-serif; letter-spacing:-.035em; }.qa-extract-heading p { margin:0; color:var(--muted); font-size:13px; }.qa-extract-heading blockquote { margin:10px 0 0; padding:14px 16px; border-left:3px solid var(--orange); border-radius:5px; background:rgba(223,234,241,.45); color:var(--ink); font:400 16px/1.6 'Space Grotesk',sans-serif; white-space:normal; }.qa-card { padding:22px; background:var(--paper); border:1px solid var(--line); border-radius:10px; }.qa-label { display:flex; align-items:center; flex-wrap:wrap; gap:9px; margin:0 0 8px; color:var(--orange); font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }.qa-marks,.qa-section-label { padding:4px 8px; border-radius:30px; background:var(--blue); color:var(--ink); font-size:10px; letter-spacing:.02em; text-transform:none; }.qa-section-label { background:rgba(230,111,61,.14); color:var(--orange); }.qa-card h2 { font-size:24px; letter-spacing:-.035em; }.qa-card details { margin-top:17px; border-top:1px solid var(--line); padding-top:13px; }.qa-card summary { color:var(--orange); cursor:pointer; font-weight:700; }.qa-answer { margin-top:12px; color:var(--muted); }.qa-answer::first-line { color:var(--ink); }.qa-empty { margin:18px 0; padding:22px; border:1px dashed var(--line); border-radius:9px; color:var(--muted); text-align:center; }
.tools-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:40px; }.tool-card { padding:25px; background:var(--paper); border:1px solid var(--line); border-radius:12px; }.tool-card h2 { margin-bottom:16px; font-size:29px; }.timer-display { margin:15px 0 4px; font:700 clamp(58px,9vw,92px)/1 'Space Grotesk',sans-serif; letter-spacing:-.08em; }.timer-status { margin:0 0 20px; color:var(--muted); }.tool-actions { display:flex; flex-wrap:wrap; gap:10px; }.tool-card small { display:block; margin-top:16px; color:var(--muted); }.checklist { display:grid; gap:13px; margin:10px 0 23px; }.checklist label { display:flex; align-items:flex-start; gap:10px; color:var(--muted); font-size:14px; }.checklist input { width:auto; margin-top:4px; accent-color:var(--orange); }.saved-card { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:18px; }.saved-card h2 { margin:0 0 5px; }.saved-card p { margin:0; }
.admin-filter-bar { display:grid; grid-template-columns:1.4fr .65fr .85fr 1fr 1.05fr .8fr auto auto; gap:10px; margin:0 0 22px; }.admin-filter-bar .button-light { border:1px solid var(--line); }.admin-toolbar { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:12px; }.admin-toolbar small { color:var(--muted); }.table-actions { flex-wrap:wrap; }.table-actions form { margin:0; }.form-help { margin:-7px 0 2px; padding:12px 14px; border-radius:7px; background:var(--blue); color:#50616d; font-size:13px; }.field-counter { float:right; color:var(--muted); font-weight:400; }.preview-link { color:var(--orange); font-size:13px; font-weight:700; }
.hierarchy-panel { display:grid; gap:15px; padding:18px; border:1px solid var(--line); border-radius:9px; background:rgba(223,234,241,.32); }.hierarchy-panel-heading { display:flex; align-items:baseline; justify-content:space-between; gap:15px; }.hierarchy-panel-heading strong { font:700 18px/1.2 'Space Grotesk',sans-serif; }.hierarchy-panel-heading span { color:var(--muted); font-size:12px; }.hierarchy-grid { gap:15px; }.hierarchy-panel select:disabled,.filter-bar select:disabled,.admin-filter-bar select:disabled { cursor:not-allowed; opacity:.58; }
html[data-theme="dark"] { --ink:#f4f1ea; --muted:#aab3b7; --cream:#15191d; --paper:#1d2429; --blue:#263943; --line:#354149; --green:#77c49c; color-scheme:dark; } html[data-theme="dark"] .hero-copy,html[data-theme="dark"] .editorial-note span { color:#b8c3c7; } html[data-theme="dark"] .button-light { background:#2a3339; color:var(--ink); } html[data-theme="dark"] .type-pill { background:rgba(29,36,41,.9); color:var(--ink); } html[data-theme="dark"] .status-live { color:#a8e2c2; background:#1d4937; } html[data-theme="dark"] .status-draft { color:#f2d28d; background:#55431e; } html[data-theme="dark"] .notice-warning { background:#55431e; color:#f2d28d; } html[data-theme="dark"] .notice-success { background:#1d4937; color:#a8e2c2; } html[data-theme="dark"] .notice-error { background:#542b29; color:#ffb4aa; }
@media print { .site-header,.site-footer,.back-link,.resource-actions,.next-step { display:none !important; } .detail-section { padding:0; }.prose { border-top:0; } body { background:#fff; color:#000; } }
@media (max-width: 800px) { .hero-grid { grid-template-columns:1fr; min-height:auto; padding:75px 0 25px; }.hero-art { min-height:300px; transform:scale(.82); transform-origin:top center; margin-bottom:-35px; }.filter-bar,.admin-filter-bar { grid-template-columns:1fr 1fr; }.search-field,.admin-filter-bar input[type="search"] { grid-column:1/-1; }.path-grid { grid-template-columns:1fr; gap:25px; }.admin-heading { align-items:start; flex-direction:column; }.admin-actions { flex-wrap:wrap; } }
@media (max-width: 560px) { .shell,.narrow { width:min(100% - 30px,1120px); }.site-header { padding:16px 0; }.brand-logo { width:38px; height:38px; }.brand { font-size:16px; gap:9px; }.nav-wrap { flex-wrap:wrap; }.main-nav { order:3; width:100%; justify-content:space-between; gap:8px; font-size:12px; }.main-nav a:first-child { display:none; }.hero h1 { font-size:48px; }.section { padding:61px 0 75px; }.filter-bar,.form-grid,.upload-grid,.admin-filter-bar { grid-template-columns:1fr; }.filter-bar .button,.admin-filter-bar .button { width:100%; }.section-heading { align-items:start; flex-direction:column; }.section-heading-tools { width:100%; justify-content:space-between; }.path-links { grid-template-columns:1fr; }.path-section { padding:35px 0; }.trust-section { padding:59px 0; }.detail-section { padding-top:39px; }.auth-card { padding:25px; }.resource-form { padding:18px; }.form-actions { flex-direction:column; }.form-actions .button { width:100%; }.stat-grid { grid-template-columns:1fr; }.step-list article { grid-template-columns:45px 1fr; gap:12px; }.footer-nav { gap:10px 15px; }.tools-grid { grid-template-columns:1fr; margin-top:29px; }.saved-card { align-items:flex-start; flex-direction:column; }.saved-card .button { width:100%; }.admin-toolbar { align-items:flex-start; flex-direction:column; }.hierarchy-panel-heading,.qa-toolbar { align-items:flex-start; flex-direction:column; }.qa-toolbar select { min-width:0; } }

/* Literature pages: keep every chapter quiet, consistent, and easy to scan. */
body, button, input, select, textarea { font-family:"Segoe UI", Arial, sans-serif; }
h1, h2, h3, .brand, .book-front span, .card-letter, .empty-icon { font-family:"Segoe UI", Arial, sans-serif; }

.detail-section { padding-top:48px; }
.detail-section h1 { font-size:clamp(34px,5vw,56px); letter-spacing:-.035em; line-height:1.1; }
.detail-summary { margin:14px 0 24px; font-size:16px; line-height:1.65; }

.qa-toolbar { align-items:flex-end; gap:12px; margin:18px 0 18px; padding:13px 14px; border:1px solid var(--line); background:#f1f6f8; }
.qa-toolbar label { gap:4px; font-size:11px; letter-spacing:.02em; }
.qa-toolbar select { min-width:220px; padding:9px 11px; border:1px solid #d3dde1; border-radius:6px; }
.qa-toolbar > span { white-space:nowrap; }

.qa-list { gap:12px; padding-top:0; }
.qa-paper-section { padding:24px 0 8px; border-top:2px solid var(--orange); }
.qa-paper-section:first-child { padding-top:8px; }
.qa-paper-section h2 { margin:3px 0 5px; font-size:23px; letter-spacing:-.02em; }
.qa-paper-section p { font-size:14px; line-height:1.55; }
.paper-guidance span { font-size:14px; }

.qa-extract-heading { margin-top:5px; padding:18px 0 5px; border-top:1px solid var(--line); scroll-margin-top:20px; }
.qa-extract-heading:first-child { padding-top:5px; }
.qa-extract-kicker { font-size:10px; letter-spacing:.08em; }
.qa-extract-heading h3 { margin:5px 0 8px; font:600 18px/1.3 "Segoe UI", Arial, sans-serif; letter-spacing:0; }
.qa-extract-heading p { font-size:14px; }
.qa-extract-heading blockquote { margin:9px 0 3px; padding:15px 17px; border:1px solid #d8e1e4; border-left:4px solid var(--orange); border-radius:7px; background:#f5f8f8; font:400 14px/1.65 "Segoe UI", Arial, sans-serif; }

.qa-card { padding:18px 19px; border-radius:8px; box-shadow:0 1px 0 rgba(23,33,43,.02); }
.qa-label { gap:7px; margin-bottom:8px; font-size:10px; letter-spacing:.08em; }
.qa-marks, .qa-section-label { padding:3px 7px; font-size:10px; }
.qa-card h2 { margin:0; font:600 14px/1.55 "Segoe UI", Arial, sans-serif; letter-spacing:0; }
.qa-number { color:var(--orange); font-weight:700; }
.qa-card details { margin-top:14px; padding-top:11px; }
.qa-card summary { font-size:14px; }
.qa-answer { margin-top:10px; color:var(--ink); font:400 14px/1.55 "Segoe UI", Arial, sans-serif; }
.qa-answer::first-line { color:var(--ink); }

@media (max-width: 560px) {
  .detail-section { padding-top:32px; }
  .qa-toolbar { gap:10px; }
  .qa-toolbar label, .qa-toolbar select { width:100%; }
  .qa-toolbar > span { align-self:flex-start; }
  .qa-extract-heading blockquote { padding:13px 14px; font-size:14px; }
  .qa-card { padding:16px; }
}

/* Storefront and commerce modules — additive 2026-09-20 */
.cart-link{display:inline-flex;align-items:center;gap:6px;color:inherit;text-decoration:none;font-weight:800;font-size:13px;padding:8px 10px;border:1px solid rgba(255,255,255,.35);border-radius:999px}.cart-link span{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:99px;background:#f2643c;color:#fff;font-size:11px}.home-shortcuts{padding:18px 0 4px;background:#fbf7ef}.home-shortcuts .shell{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.home-shortcuts a{display:flex;flex-direction:column;gap:3px;padding:15px 17px;border:1px solid rgba(20,37,49,.12);border-radius:14px;background:#fff;text-decoration:none;color:#162632;box-shadow:0 6px 18px rgba(30,45,55,.04)}.home-shortcuts a:hover{border-color:#ef7a54;transform:translateY(-1px)}.home-shortcuts span{font-size:12px;color:#66727a}
.store-hero{padding:70px 0;background:linear-gradient(135deg,#173e32,#245f4d);color:#fff}.store-hero-small{padding:48px 0}.store-hero h1{max-width:780px;margin:8px 0 12px;font-size:clamp(36px,6vw,64px);line-height:1.02}.store-hero-small h1{font-size:clamp(32px,5vw,52px)}.store-hero p{max-width:700px;color:#dcece5}.store-hero .eyebrow{color:#ffd4b8}.store-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.store-section{background:#f6f7f2}.store-filter{display:grid;grid-template-columns:minmax(260px,2fr) repeat(3,minmax(130px,1fr)) auto auto;align-items:end;gap:10px;margin:22px 0 30px;padding:13px;border:1px solid #dce1d9;border-radius:16px;background:#fff}.store-filter label,.checkout-form label,.variant-admin label,.offer-admin label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800;color:#35464c}.store-filter input,.store-filter select{width:100%;min-height:44px;border:1px solid #cfd7d2;border-radius:9px;background:#fff;padding:9px 11px}.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.product-card{overflow:hidden;border:1px solid #dce1d9;border-radius:18px;background:#fff;box-shadow:0 12px 30px rgba(26,43,52,.06)}.product-cover{display:grid;place-items:center;aspect-ratio:4/3;background:#e7eee8;color:#275849;text-decoration:none;font-size:32px;font-weight:900;overflow:hidden}.product-cover img{width:100%;height:100%;object-fit:cover}.product-card-body{display:flex;flex-direction:column;gap:9px;padding:17px}.product-card h3{margin:0;font-size:18px;line-height:1.22}.product-card h3 a{color:#152a32;text-decoration:none}.product-card p{margin:0;color:#647076;font-size:13px}.product-badges{display:flex;flex-wrap:wrap;gap:5px}.product-badges span{padding:4px 7px;border-radius:99px;background:#edf3ef;color:#32624f;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.product-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:5px}.product-card-foot strong{color:#dc5635}.store-empty{padding:48px 24px;border:1px dashed #bdc8c1;border-radius:18px;text-align:center;background:#fff}.store-narrow{max-width:1050px}.product-layout{display:grid;grid-template-columns:minmax(260px,390px) minmax(0,1fr);gap:55px;align-items:start}.product-media{position:sticky;top:105px}.product-media img,.product-cover-placeholder{width:100%;border-radius:20px;box-shadow:0 18px 45px rgba(24,41,50,.12)}.product-cover-placeholder{display:grid;place-items:center;aspect-ratio:4/5;background:#dfece4;color:#295747;font-size:28px;font-weight:900}.product-info h1{margin:12px 0 5px;font-size:clamp(34px,5vw,58px);line-height:1.04}.product-byline{font-weight:700;color:#5a6a70}.variant-list{display:grid;gap:9px;margin:26px 0}.variant-row{display:grid;grid-template-columns:minmax(150px,1fr) auto auto;align-items:center;gap:16px;padding:15px;border:1px solid #dbe1dc;border-radius:14px;background:#fff}.variant-row small,.variant-price{display:block;color:#6a777b}.variant-price{display:flex;gap:7px;align-items:center}.variant-price strong{color:#d95535;font-size:19px}.product-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid #dce1dd}.product-meta div{padding:13px 0;border-bottom:1px solid #dce1dd}.product-meta dt{font-size:11px;text-transform:uppercase;color:#74817f;font-weight:800}.product-meta dd{margin:4px 0 0}.compact-section{padding-top:20px}.prose-panel{padding:24px;border:1px solid #dce1dd;border-radius:16px;background:#fff;line-height:1.7}.marketplace-section{background:#f2f5f1}.offer-list{display:grid;gap:8px}.offer-list article{display:grid;grid-template-columns:minmax(160px,1fr) auto auto;align-items:center;gap:18px;padding:13px 15px;border:1px solid #dbe1dc;border-radius:13px;background:#fff}.offer-list small,.comparison-table small{display:block;color:#6d7a7d}.affiliate-note{font-size:12px;color:#647173}.cart-layout,.checkout-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:28px;align-items:start}.cart-items{display:grid;gap:9px}.cart-item{display:grid;grid-template-columns:65px minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:13px;border:1px solid #dbe1dd;border-radius:14px;background:#fff}.cart-item img{width:65px;height:75px;object-fit:cover;border-radius:8px}.cart-item small{display:block;color:#6a777b}.cart-item label{display:flex;align-items:center;gap:7px;font-size:12px}.cart-item input{width:55px}.cart-summary{position:sticky;top:105px;padding:22px;border:1px solid #d9e0db;border-radius:16px;background:#fff;box-shadow:0 12px 30px rgba(26,43,52,.06)}.cart-summary h2{margin-top:0}.cart-summary p{display:flex;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid #e4e8e5;font-size:13px}.cart-summary small{display:block;margin-top:12px;color:#66747a}.button-wide{width:100%;justify-content:center}.comparison-card{margin-bottom:22px;border:1px solid #dbe1dd;border-radius:18px;background:#fff;overflow:hidden}.comparison-card header{padding:20px}.comparison-card h2{margin:0 0 4px}.comparison-card p{margin:0;color:#66747a}.comparison-table-wrap{overflow:auto}.comparison-table{width:100%;border-collapse:collapse}.comparison-table th,.comparison-table td{padding:13px 16px;border-top:1px solid #e3e8e4;text-align:left;white-space:nowrap}.comparison-table th{font-size:11px;text-transform:uppercase;color:#60706e}.account-tabs,.admin-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 25px}.account-tabs a,.admin-tabs a{padding:9px 12px;border-radius:99px;background:#edf2ee;color:#23493c;text-decoration:none;font-weight:800;font-size:12px}.order-list,.download-list{display:grid;gap:8px}.order-list article,.download-list article,.campaign-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:14px;padding:13px;border:1px solid #e0e5e1;border-radius:12px}.order-list small,.download-list small,.campaign-list small{display:block;color:#6b787b}.checkout-form{margin-top:20px}.shipping-options{margin:15px 0;padding:16px;border:1px solid #d9e0da;border-radius:13px}.shipping-options legend{font-weight:900}.shipping-options [data-shipping-options]{display:grid;gap:7px}.shipping-options [data-shipping-options] label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:11px;border:1px solid #dbe2dd;border-radius:10px;cursor:pointer}.shipping-options small{display:block;font-weight:400}.admin-module-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0 28px}.admin-module-grid a{display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid rgba(255,255,255,.14);border-radius:13px;background:#fff;color:#1f4438;text-decoration:none;box-shadow:0 7px 20px rgba(20,40,48,.05)}.admin-module-grid span{font-size:12px;color:#66736f}.variant-admin,.offer-admin{margin:12px 0;padding:18px;border:1px solid #d7ded9;border-radius:14px}.variant-admin legend,.offer-admin legend{padding:0 8px;font-weight:900}.integration-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;margin-top:22px}.marketing-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,1fr);gap:25px;align-items:start}.campaign-list{display:grid;gap:9px}.campaign-list article{grid-template-columns:minmax(0,1fr) auto auto}.order-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.order-admin-grid .account-panel p{display:flex;justify-content:space-between;gap:14px}.admin-table td small,.admin-table td strong{display:block}
@media(max-width:1000px){.home-shortcuts .shell,.product-grid,.admin-module-grid{grid-template-columns:repeat(2,1fr)}.store-filter{grid-template-columns:repeat(2,1fr)}.store-search{grid-column:1/-1}.product-layout{gap:30px}.marketing-layout{grid-template-columns:1fr}}
@media(max-width:700px){.cart-link{padding:6px 8px;font-size:11px}.home-shortcuts{padding-top:9px}.home-shortcuts .shell{grid-template-columns:repeat(2,1fr);gap:7px}.home-shortcuts a{padding:11px}.store-hero{padding:42px 0}.store-hero-actions .button{flex:1 1 auto}.store-filter,.product-grid,.product-layout,.cart-layout,.checkout-shell,.integration-grid,.order-admin-grid{grid-template-columns:1fr}.product-grid{gap:11px}.product-card{display:grid;grid-template-columns:110px minmax(0,1fr)}.product-cover{aspect-ratio:auto;min-height:150px}.product-card-body{padding:13px}.product-media{position:static;max-width:250px;margin:auto}.variant-row{grid-template-columns:1fr auto}.variant-row form,.variant-row>a,.variant-row>.status{grid-column:1/-1}.variant-row .button{width:100%;justify-content:center}.cart-summary{position:static}.cart-item{grid-template-columns:55px minmax(0,1fr) auto}.cart-item img{width:55px;height:65px}.cart-item form{grid-column:2}.offer-list article{grid-template-columns:1fr auto}.offer-list .button{grid-column:1/-1}.order-list article,.download-list article,.campaign-list article{grid-template-columns:1fr auto}.order-list .button,.download-list .button,.campaign-list form,.campaign-list>a{grid-column:1/-1}.comparison-table th,.comparison-table td{padding:10px}.admin-module-grid{grid-template-columns:1fr 1fr}}

/* Final literature typography lock: question content stays readable and uniform. */
.qa-paper-section p,
.paper-guidance span,
.qa-extract-heading p,
.qa-extract-heading blockquote,
.qa-card h2,
.qa-card summary,
.qa-answer { font-size:14px !important; }
.qa-extract-heading blockquote,
.qa-card h2,
.qa-answer { line-height:1.55 !important; }

/* Premium compact layout: clear hierarchy, useful whitespace, no empty gaps. */
.site-header { padding:14px 0; }
.brand { gap:10px; font-size:17px; }
.brand-logo { width:40px; height:40px; }
.main-nav { gap:22px; font-size:14px; }
.section { padding:44px 0 54px; }
.section-heading { margin-bottom:16px; gap:14px; }
.filter-bar { gap:8px; margin-bottom:18px; }
.resource-grid { gap:7px; }
.resource-card { padding:6px 13px 6px 6px; }
.path-section { padding:24px 0; }
.trust-strip { padding:16px 0; }

.detail-section { padding-top:34px; padding-bottom:68px; }
.back-link { margin-bottom:14px; }
.detail-breadcrumb { gap:6px; margin-bottom:12px; }
.detail-topline { margin-bottom:12px; }
.detail-summary { margin:10px 0 18px; line-height:1.5; }
.detail-facts { gap:6px 13px; margin-bottom:18px; }
.detail-facts span+span:before { margin-right:13px; }
.detail-image { margin-bottom:20px; }
.paper-guidance { gap:4px; margin:16px 0 10px; padding:10px 13px; border-left-width:3px; }
.qa-toolbar { gap:10px; margin:14px 0 10px; padding:10px 12px; }
.qa-toolbar label { gap:3px; }
.qa-toolbar select { min-width:190px; padding:8px 10px; }
.qa-list { gap:8px; }
.qa-paper-section { padding:18px 0 5px; }
.qa-paper-section:first-child { padding-top:4px; }
.qa-paper-section h2 { margin:3px 0 4px; font-size:22px; }
.qa-paper-section p { line-height:1.45; }
.qa-extract-heading { margin-top:2px; padding:14px 0 3px; }
.qa-extract-heading:first-child { padding-top:3px; }
.qa-extract-heading h3 { margin:4px 0 6px; font-size:18px; }
.qa-extract-heading blockquote { margin:7px 0 2px; padding:11px 14px; line-height:1.5; }
.qa-card { padding:13px 15px; }
.qa-card details { margin-top:9px; padding-top:8px; }
.qa-answer { margin-top:8px; }
.resource-actions { gap:8px; margin:14px 0 16px; }
.next-step { gap:4px; margin-top:18px; padding:13px 15px; }

@media (max-width: 560px) {
  .site-header { padding:12px 0; }
  .brand-logo { width:36px; height:36px; }
  .main-nav { gap:6px; font-size:12px; }
  .section { padding:46px 0 58px; }
  .resource-grid { gap:6px; }
  .resource-card { padding:6px 12px 6px 6px; }
  .detail-section { padding-top:24px; padding-bottom:52px; }
  .qa-toolbar { margin-top:10px; padding:9px 10px; }
  .qa-extract-heading blockquote { padding:10px 12px; }
  .qa-card { padding:12px 13px; }
}

.type-pill-premium { background:var(--orange); color:#fff; }
.resource-card-premium { border-color:rgba(242,100,60,.28); }
.premium-label { color:var(--orange); }
.premium-panel { display:grid; gap:12px; padding:15px 17px; border:1px solid rgba(242,100,60,.28); border-left:3px solid var(--orange); border-radius:8px; background:rgba(242,100,60,.06); }
.premium-panel > div:first-child { display:grid; gap:3px; }
.premium-panel strong { font:700 17px/1.2 "Segoe UI",Arial,sans-serif; }
.premium-panel span,.premium-panel small { color:var(--muted); }
.premium-panel .form-grid { gap:12px; }
.premium-panel label { color:var(--ink); }
.status-premium { color:#a94b2d; background:#ffe4d7; }
.premium-gate { display:grid; gap:11px; margin:20px 0 10px; padding:22px 24px; border:1px solid rgba(242,100,60,.35); border-left:4px solid var(--orange); border-radius:10px; background:linear-gradient(135deg,rgba(242,100,60,.10),rgba(223,234,241,.38)); }
.premium-gate h2 { font-size:25px; letter-spacing:-.025em; }
.premium-gate p { margin:0; color:var(--muted); }
.premium-gate ul { margin:0; padding-left:19px; color:var(--muted); }
.premium-gate li { margin:3px 0; }
.premium-gate form { margin:0; }
.premium-gate small { color:var(--muted); font-size:12px; }
.premium-kicker { color:var(--orange); font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }

/* App-shell presentation: a focused learning workspace instead of a traditional brochure page. */
:root { --app-coral:#fb5b5f; --app-navy:#17212b; --app-sand:#f7f0e6; --app-shadow:0 18px 48px rgba(32,42,52,.08); }
body { background:linear-gradient(180deg,#fbf7ef 0%,#f8f3eb 58%,#fbf7ef 100%); }
.site-header { position:sticky; top:0; z-index:20; padding:12px 0; background:rgba(251,247,239,.9); border-bottom:1px solid rgba(23,33,43,.08); backdrop-filter:blur(18px); }
.nav-wrap { min-height:48px; }
.brand { font-size:16px; letter-spacing:-.02em; }
.brand-logo { width:38px; height:38px; box-shadow:0 5px 14px rgba(242,100,60,.18); }
.main-nav { gap:6px; padding:4px; border:1px solid rgba(23,33,43,.08); border-radius:999px; background:rgba(255,253,248,.7); }
.main-nav a { padding:8px 13px; border-radius:999px; font-size:13px; }
.main-nav a:hover { color:var(--ink); background:var(--blue); }
.top-search { padding:18px 0 6px; }
.top-search .filter-bar { margin-bottom:0; }
.path-section { padding:18px 0 30px; border:0; }
.path-grid { padding:18px 20px; border:1px solid #eadfd2; border-radius:20px; background:rgba(255,253,248,.65); box-shadow:0 8px 24px rgba(32,42,52,.035); }
.path-grid h2 { font-size:30px; }
.path-links { gap:8px; }.path-card { padding:14px 15px; border-radius:13px; background:#fffdf8; }.path-card strong { font-size:16px; }.path-card span { font-size:11px; }
#resources.section { padding-top:34px; }
#resources .section-heading { align-items:end; margin-bottom:19px; }
#resources .section-intro { max-width:680px; font-size:14px; line-height:1.55; }
.section-heading-tools { align-items:center; }
.saved-link { padding:8px 11px; border:1px solid var(--line); border-radius:999px; background:rgba(255,253,248,.7); transition:border-color .18s ease,transform .18s ease; }
.saved-link:hover { border-color:var(--orange); transform:translateY(-1px); }
.filter-bar { grid-template-columns:1.7fr .8fr .95fr 1.05fr .9fr auto; gap:8px; margin-bottom:18px; padding:10px; border:1px solid #eadfd2; border-radius:16px; background:rgba(255,253,248,.84); box-shadow:0 8px 22px rgba(32,42,52,.035); }
.filter-bar .search-field { grid-column:span 2; }.filter-bar select { min-height:42px; padding:9px 11px; border-color:#e8ded3; background:#fffdf8; font-size:13px; }.filter-bar .button { min-height:42px; padding:9px 16px; border-radius:10px; }
.advanced-filters { grid-column:1/-1; margin-top:2px; }
.advanced-filters summary { cursor:pointer; color:var(--orange); font-size:12px; font-weight:700; list-style:none; transition:opacity .18s ease; }
.advanced-filters summary:hover { opacity:.75; }
.advanced-filters summary::-webkit-details-marker { display:none; }
.advanced-filters summary:before { content:'+ '; }
.advanced-filters[open] summary:before { content:'– '; }
.advanced-filters-row { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:8px; }
.advanced-filters-row select { min-height:42px; padding:9px 11px; border-color:#e8ded3; background:#fffdf8; font-size:13px; }
.resource-groups { gap:16px; }
.resource-group { padding:14px 14px 12px; border-radius:16px; box-shadow:0 4px 14px rgba(32,42,52,.03); }
.class-resource-box { padding:14px; border-radius:16px; }
.class-resource-label { font-size:17px; }
.class-resource-content { gap:10px; margin-top:12px; }
.class-subject-group { padding:12px; border-radius:13px; }
.resource-grid { gap:8px; }.resource-card { padding:6px 14px 6px 6px; box-shadow:0 3px 9px rgba(32,42,52,.04); }
.trust-strip { margin-top:10px; padding:16px 0; }
.site-footer { padding:22px 0 28px; background:#f7f0e6; }
.app-bottom-nav { display:none; }
body.admin-page .app-bottom-nav { display:none; }

@media (max-width:800px) {
  .filter-bar { grid-template-columns:repeat(2,1fr); }.filter-bar .search-field { grid-column:1/-1; }.advanced-filters-row { grid-template-columns:1fr; }.analytics-stat-grid { grid-template-columns:repeat(3,1fr); }.analytics-grid { grid-template-columns:1fr; }
}

@media (max-width:560px) {
  body { padding-bottom:72px; }.site-header { padding:9px 0; }.nav-wrap { min-height:42px; }.brand { font-size:15px; }.brand-logo { width:34px; height:34px; }.main-nav { display:none; }.top-search { padding:14px 0 4px; }.section-heading { gap:11px !important; }.section-heading-tools { width:100%; }.filter-bar { grid-template-columns:1fr; padding:8px; border-radius:14px; }.filter-bar .search-field { grid-column:auto; }.filter-bar .button { width:100%; }.advanced-filters-row { grid-template-columns:1fr; }.resource-groups { gap:12px; }.resource-group { padding:12px 12px 10px; border-radius:14px; }.resource-group-heading { gap:7px; margin-bottom:9px; }.resource-group-subject { font-size:15px; }.class-resource-box { padding:12px; border-radius:14px; }.class-resource-heading { gap:7px; }.class-resource-label { font-size:15px; }.class-resource-subjects,.class-resource-count { padding:3px 8px; font-size:10px; }.class-resource-count { margin-left:auto; }.class-resource-content { gap:8px; margin-top:10px; }.class-subject-group { padding:10px; border-radius:12px; }.resource-grid { gap:6px; }.resource-card { flex:1 1 100%; border-radius:12px; padding:9px 13px 9px 7px; }.trust-strip { margin-top:6px; padding:12px 0; }.trust-strip-row { gap:6px 16px; font-size:12px; }
  .site-footer { padding-bottom:18px; }.app-bottom-nav { position:fixed; right:12px; bottom:12px; left:12px; z-index:30; display:grid; grid-template-columns:repeat(4,1fr); gap:4px; padding:7px; border:1px solid rgba(23,33,43,.1); border-radius:18px; background:rgba(255,253,248,.93); box-shadow:0 14px 36px rgba(23,33,43,.16); backdrop-filter:blur(18px); }.app-bottom-link { display:grid; justify-items:center; gap:2px; padding:6px 2px; border-radius:12px; color:var(--muted); font-size:10px; font-weight:700; }.app-bottom-link:first-child { color:var(--orange); background:rgba(242,100,60,.09); }.app-bottom-link:hover { color:var(--orange); }.app-bottom-link svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; }.analytics-panel { padding:16px; }.analytics-heading { align-items:flex-start; flex-direction:column; }.analytics-heading .button { width:100%; }.analytics-stat-grid { grid-template-columns:repeat(2,1fr); }.analytics-card-heading { flex-direction:column; }.analytics-live-label { white-space:normal; }
}

/* Low-click class navigation: class → subject → chapter. */
.path-grid { grid-template-areas:"intro classes" "branch branch"; }
.path-intro { grid-area:intro; }
.path-intro > p:last-child { max-width:280px; margin:10px 0 0; color:var(--muted); font-size:13px; line-height:1.45; }
.class-links { grid-area:classes; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
.class-card { display:flex; align-items:center; justify-content:center; min-height:0; padding:11px 6px; border-color:#e8ded3; text-align:center; transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.class-card:hover,.class-card.is-selected { border-color:var(--orange); box-shadow:0 8px 18px rgba(242,100,60,.10); }
.class-card-copy { font:700 14px/1 'Space Grotesk',sans-serif; }
.quick-branch { grid-area:branch; display:grid; gap:10px; margin-top:4px; padding-top:14px; border-top:1px solid #eadfd2; }
.quick-branch-heading { display:flex; align-items:baseline; gap:10px; }
.quick-branch-heading strong { font:700 16px/1.1 'Space Grotesk',sans-serif; }
.quick-branch-heading span { color:var(--muted); font-size:12px; }
.quick-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
.quick-link { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:43px; padding:10px 12px; border:1px solid #eadfd2; border-radius:11px; background:rgba(255,253,248,.86); color:var(--ink); font-size:13px; font-weight:700; }
.quick-link:hover,.quick-link.is-selected { border-color:var(--orange); color:var(--orange); background:#fff; }
.quick-link > span:first-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.quick-link > span:last-child { flex:0 0 auto; color:var(--orange); font-size:17px; font-weight:400; }
.chapter-links { grid-template-columns:repeat(4,minmax(0,1fr)); }

@media (max-width:800px) {
  .path-grid { grid-template-areas:"intro" "classes" "branch"; }
  .path-intro > p:last-child { max-width:none; }
  .class-links { margin-top:4px; }
  .quick-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .chapter-links { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width:560px) {
  .class-links { grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; }
  .class-card { padding:9px 4px; border-radius:10px; }
  .class-card-copy { font-size:12px; }
  .quick-branch { margin-top:3px; padding-top:12px; }
  .quick-branch-heading { justify-content:space-between; }
  .quick-links,.chapter-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
  .quick-link { min-height:41px; padding:9px 10px; font-size:12px; }
}

/* Authorised private syllabus area. */
.private-section { background:linear-gradient(180deg,rgba(223,234,241,.33),rgba(251,247,239,0) 430px); }
.private-shell { width:min(1120px,calc(100% - 48px)); }
.private-hero { display:flex; align-items:flex-end; justify-content:space-between; gap:28px; padding-bottom:28px; border-bottom:1px solid var(--line); }
.private-hero h1 { max-width:760px; margin:0; font-size:clamp(38px,5vw,64px); letter-spacing:-.045em; line-height:1.04; }
.private-account { display:grid; gap:5px; flex:0 0 auto; min-width:220px; padding:14px 16px; border:1px solid rgba(242,100,60,.27); border-radius:10px; background:rgba(255,253,248,.75); color:var(--muted); font-size:12px; }
.private-account strong { color:var(--ink); font-size:13px; overflow-wrap:anywhere; }
.private-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:18px 0 20px; }
.private-stats div { display:grid; gap:4px; padding:15px 16px; border:1px solid var(--line); border-radius:10px; background:rgba(255,253,248,.77); }
.private-stats strong { color:var(--orange); font:700 24px/1.05 'Space Grotesk',sans-serif; }
.private-stats span { color:var(--muted); font-size:12px; font-weight:700; }
.private-contents { display:grid; gap:10px; margin:0 0 22px; padding:15px 16px; border:1px solid var(--line); border-radius:10px; background:var(--paper); }
.private-contents strong { font:700 14px/1.2 'Space Grotesk',sans-serif; }
.private-contents div { display:flex; flex-wrap:wrap; gap:7px; }
.private-contents a { padding:7px 10px; border:1px solid var(--line); border-radius:999px; color:var(--muted); font-size:12px; font-weight:700; }
.private-contents a:hover { border-color:var(--orange); color:var(--orange); }
.private-source-note { margin:0 0 26px; color:var(--muted); font-size:13px; line-height:1.55; }
.private-unit { scroll-margin-top:84px; margin-top:42px; }
.private-unit-heading { display:flex; align-items:center; gap:14px; margin-bottom:14px; padding-bottom:12px; border-bottom:2px solid var(--orange); }
.private-unit-number { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:var(--orange); color:#fff; font:700 14px/1 'Space Grotesk',sans-serif; }
.private-unit-heading .eyebrow { margin:0 0 4px; }
.private-unit-heading h2 { margin:0; font-size:clamp(25px,3vw,36px); letter-spacing:-.04em; }
.private-work-list { display:grid; gap:10px; }
.private-work { border:1px solid var(--line); border-radius:10px; background:rgba(255,253,248,.76); overflow:hidden; }
.private-work summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 18px; cursor:pointer; list-style:none; }
.private-work summary::-webkit-details-marker { display:none; }
.private-work summary::after { flex:0 0 auto; color:var(--orange); content:'+'; font-size:21px; font-weight:400; }
.private-work[open] summary { border-bottom:1px solid var(--line); }
.private-work[open] summary::after { content:'−'; }
.private-work-title { display:grid; gap:4px; min-width:0; }
.private-work-title strong { font:700 16px/1.25 'Space Grotesk',sans-serif; }
.private-work-title small { color:var(--muted); font-size:12px; }
.private-question-count { flex:0 0 auto; padding:5px 8px; border-radius:999px; background:var(--blue); color:var(--muted); font-size:11px; font-weight:700; }
.private-work-body { padding:17px; }
.private-year + .private-year { margin-top:23px; }
.private-year h3 { margin:0 0 9px; color:var(--orange); font:700 13px/1.2 'Space Grotesk',sans-serif; letter-spacing:.05em; text-transform:uppercase; }
.private-question-list { display:grid; gap:9px; }
.private-question { padding:15px 16px; border:1px solid var(--line); border-radius:8px; background:var(--paper); }
.private-question-meta { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:8px; color:var(--orange); font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.private-question-meta span + span::before { margin-right:8px; color:var(--line); content:'·'; }
.private-question-text { margin:0; color:var(--ink); font:600 14px/1.55 'Segoe UI',Arial,sans-serif; }
.private-options { display:grid; gap:5px; margin:12px 0 0; padding:11px 13px 11px 36px; border-top:1px solid var(--line); color:var(--muted); font:400 13px/1.5 'Segoe UI',Arial,sans-serif; }
.private-options li { padding-left:4px; }
.private-blank { display:flex; align-items:center; gap:12px; min-height:64px; padding:13px 15px; border:1px dashed var(--line); border-radius:8px; color:var(--muted); font-size:12px; }
.private-blank em { flex:1; min-height:30px; border-bottom:1px dashed #c8d1d5; }

@media (max-width:760px) {
  .private-hero { align-items:stretch; flex-direction:column; gap:18px; }
  .private-account { min-width:0; }
  .private-stats { grid-template-columns:1fr; }
}

@media (max-width:560px) {
  .private-shell { width:min(100% - 30px,1120px); }
  .private-hero h1 { font-size:40px; }
  .private-work summary { align-items:flex-start; padding:14px; }
  .private-question-count { margin-left:auto; }
  .private-work-body { padding:11px; }
  .private-question { padding:13px; }
}

/* Private STPGT chapter index and question pages. */
.private-index-hero { align-items:flex-end; }
.private-chapter-guide { display:flex; align-items:end; justify-content:space-between; gap:28px; margin:34px 0 18px; padding:20px 22px; border:1px solid rgba(242,100,60,.22); border-radius:14px; background:linear-gradient(110deg,rgba(242,100,60,.11),rgba(223,234,241,.45)); }
.private-chapter-guide .eyebrow { margin:0 0 5px; }
.private-chapter-guide h2 { margin:0; font-size:clamp(25px,3vw,36px); letter-spacing:-.04em; }
.private-chapter-guide > p { max-width:520px; margin:0; color:var(--muted); font-size:13px; line-height:1.55; }
.private-chapter-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.private-chapter-button { display:grid; grid-template-columns:44px minmax(0,1fr) auto; align-items:center; gap:14px; min-height:98px; padding:15px 16px; border:1px solid var(--line); border-radius:12px; background:rgba(255,253,248,.88); color:var(--ink); text-decoration:none; box-shadow:0 4px 14px rgba(17,42,64,.04); transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.private-chapter-button:hover { border-color:var(--orange); box-shadow:0 10px 22px rgba(17,42,64,.09); transform:translateY(-2px); }
.private-chapter-number { display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:var(--blue); color:var(--orange); font:700 12px/1 'Space Grotesk',sans-serif; }
.private-chapter-info { display:grid; gap:4px; min-width:0; }
.private-chapter-info strong { overflow-wrap:anywhere; font:700 15px/1.28 'Space Grotesk',sans-serif; }
.private-chapter-info small { overflow-wrap:anywhere; color:var(--muted); font-size:12px; }
.private-chapter-info em { color:var(--orange); font-size:11px; font-style:normal; font-weight:700; }
.private-chapter-arrow { padding:7px 9px; border-radius:999px; background:var(--orange); color:#fff; font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.private-chapter-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.private-back-link { color:var(--orange); font-size:13px; font-weight:700; text-decoration:none; }
.private-back-link:hover { text-decoration:underline; }
.private-chapter-unit { padding:7px 10px; border-radius:999px; background:var(--blue); color:var(--muted); font:700 11px/1 'Space Grotesk',sans-serif; letter-spacing:.06em; text-transform:uppercase; }
.private-chapter-hero { display:flex; align-items:end; justify-content:space-between; gap:28px; padding:30px 0 28px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.private-chapter-hero .eyebrow { margin:0 0 8px; }
.private-chapter-hero h1 { max-width:820px; margin:0; font-size:clamp(38px,5.5vw,70px); letter-spacing:-.05em; line-height:1.04; }
.private-chapter-author { margin:12px 0 0; color:var(--muted); font-size:15px; }
.private-chapter-stat { display:grid; place-items:center; flex:0 0 auto; width:104px; height:104px; border:1px solid rgba(242,100,60,.25); border-radius:50%; background:rgba(242,100,60,.09); }
.private-chapter-stat strong { color:var(--orange); font:700 30px/1 'Space Grotesk',sans-serif; }
.private-chapter-stat span { margin-top:-28px; color:var(--muted); font-size:11px; font-weight:700; text-transform:uppercase; }
.private-answer-note { display:grid; gap:5px; margin:22px 0 28px; padding:15px 17px; border-left:3px solid var(--orange); background:rgba(223,234,241,.42); color:var(--muted); font-size:13px; line-height:1.55; }
.private-answer-note strong { color:var(--ink); font:700 13px/1.2 'Space Grotesk',sans-serif; }
.private-question-sections { display:grid; gap:28px; }
.private-year-heading { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:10px; padding-bottom:9px; border-bottom:2px solid var(--orange); }
.private-year-heading .eyebrow { margin:0; }
.private-year-heading h2 { margin:0; color:var(--ink); font:700 21px/1.1 'Space Grotesk',sans-serif; }
.private-question-list { gap:12px; }
.private-question { padding:18px; border-radius:11px; box-shadow:0 3px 12px rgba(17,42,64,.035); }
.private-question-text { font-size:15px; }
.private-answer-options { margin-top:14px; padding-top:12px; border-top:1px solid var(--line); }
.private-answer-options > strong { color:var(--muted); font-size:11px; letter-spacing:.06em; text-transform:uppercase; }
.private-answer-options .private-options { margin-top:8px; border-top:0; }
.private-chapter-blank { display:grid; align-items:start; gap:5px; min-height:120px; margin-top:26px; padding:22px; border-style:solid; background:rgba(255,253,248,.8); }
.private-chapter-blank strong { color:var(--ink); font:700 17px/1.2 'Space Grotesk',sans-serif; }
.private-chapter-blank span { color:var(--muted); }
.private-chapter-pagination { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:38px; }
.private-chapter-pagination a { display:grid; gap:5px; min-height:70px; padding:14px 16px; border:1px solid var(--line); border-radius:10px; background:rgba(255,253,248,.78); color:var(--ink); text-decoration:none; }
.private-chapter-pagination a:hover { border-color:var(--orange); }
.private-chapter-pagination a.next { text-align:right; }
.private-chapter-pagination small { color:var(--orange); font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.private-chapter-pagination strong { font:700 13px/1.3 'Space Grotesk',sans-serif; }
.private-quiz-form { display:grid; gap:18px; }
.private-quiz-submitbar { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:15px 17px; border:1px solid rgba(242,100,60,.25); border-radius:12px; background:linear-gradient(110deg,rgba(242,100,60,.1),rgba(223,234,241,.46)); }
.private-quiz-submitbar > div { display:grid; gap:4px; }
.private-quiz-submitbar strong { color:var(--ink); font:700 15px/1.2 'Space Grotesk',sans-serif; }
.private-quiz-submitbar span { color:var(--muted); font-size:12px; }
.private-quiz-submitbar-bottom { margin-top:2px; }
.private-quiz-submitbar-bottom > span { color:var(--muted); font-weight:600; }
.private-quiz-result { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:24px; padding:20px 22px; border:1px solid rgba(48,143,96,.28); border-radius:14px; background:linear-gradient(110deg,rgba(48,143,96,.11),rgba(223,234,241,.44)); }
.private-quiz-result .eyebrow { margin:0 0 5px; }
.private-quiz-result h2 { margin:0; color:#23784d; font:700 34px/1 'Space Grotesk',sans-serif; }
.private-quiz-result h2 span { color:var(--muted); font-size:20px; }
.private-quiz-result-stats { display:flex; flex-wrap:wrap; gap:10px 18px; }
.private-quiz-result-stats span { display:grid; gap:2px; color:var(--muted); font-size:11px; }
.private-quiz-result-stats strong { color:var(--ink); font:700 16px/1 'Space Grotesk',sans-serif; }
.private-option-set { display:grid; gap:8px; margin-top:10px; padding:0; border:0; }
.private-option { display:grid; grid-template-columns:18px 24px minmax(0,1fr); align-items:start; gap:9px; padding:11px 12px; border:1px solid var(--line); border-radius:9px; background:rgba(255,253,248,.86); color:var(--ink); cursor:pointer; font:400 13px/1.45 'Segoe UI',Arial,sans-serif; transition:border-color .16s ease,background .16s ease,box-shadow .16s ease; }
.private-option:hover { border-color:var(--orange); box-shadow:0 4px 12px rgba(17,42,64,.07); }
.private-option input { width:16px; height:16px; margin:1px 0 0; accent-color:var(--orange); }
.private-option-label { color:var(--orange); font-weight:800; }
.private-option-text { min-width:0; overflow-wrap:anywhere; }
.private-option.is-selected { border-color:rgba(242,100,60,.7); background:rgba(242,100,60,.07); }
.private-option.is-correct { border-color:rgba(48,143,96,.72); background:rgba(48,143,96,.1); }
.private-option.is-wrong { border-color:rgba(195,70,62,.62); background:rgba(195,70,62,.08); }
.private-question-feedback { margin:10px 0 0; padding:9px 11px; border-radius:8px; font-size:12px; font-weight:600; }
.private-question-feedback.is-correct { background:rgba(48,143,96,.1); color:#23784d; }
.private-question-feedback.is-wrong { background:rgba(195,70,62,.08); color:#9d3933; }
.private-question-feedback strong { font-weight:800; }

@media (max-width:760px) {
  .private-chapter-guide { align-items:flex-start; flex-direction:column; gap:12px; }
  .private-chapter-grid { grid-template-columns:1fr; }
  .private-chapter-hero { align-items:flex-start; }
  .private-quiz-result { grid-template-columns:1fr; gap:14px; }
}

@media (max-width:560px) {
  .private-chapter-toolbar { align-items:flex-start; flex-direction:column; }
  .private-chapter-hero { gap:20px; flex-direction:column; }
  .private-chapter-stat { width:82px; height:82px; }
  .private-chapter-stat strong { font-size:24px; }
  .private-chapter-stat span { margin-top:-21px; }
  .private-chapter-button { grid-template-columns:38px minmax(0,1fr); gap:11px; }
  .private-chapter-number { width:36px; height:36px; }
  .private-chapter-arrow { grid-column:2; justify-self:start; }
  .private-chapter-pagination { grid-template-columns:1fr; }
  .private-chapter-pagination a.next { text-align:left; }
  .private-quiz-submitbar { align-items:stretch; flex-direction:column; }
  .private-quiz-submitbar .button { width:100%; }
}


/* Rounded chapter pills — reference pattern */
.private-syllabus { display:grid; gap:38px; margin-top:34px; }
.private-unit { scroll-margin-top:24px; }
.private-unit-heading { display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.private-unit-number { display:grid; place-items:center; width:44px; height:44px; flex:0 0 44px; border-radius:50%; background:#fde9e1; color:var(--orange); font-weight:800; }
.private-unit-heading .eyebrow { margin:0 0 3px; }
.private-unit-heading h2 { font-size:clamp(22px,3vw,30px); }
.private-chapter-grid { display:flex; flex-wrap:wrap; gap:14px 16px; align-items:stretch; }
.private-chapter-button { display:inline-flex; align-items:center; gap:14px; width:auto; max-width:100%; min-height:66px; padding:9px 18px 9px 10px; border:2px solid #e7e0d6; border-radius:999px; background:#fffdf9; color:var(--ink); box-shadow:0 7px 18px rgba(23,33,43,.045); transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease; }
.private-chapter-button:hover { transform:translateY(-2px); border-color:#f3b29e; background:#fffaf6; box-shadow:0 12px 24px rgba(23,33,43,.09); }
.private-chapter-button:focus-visible { outline:3px solid rgba(242,100,60,.25); outline-offset:3px; }
.private-chapter-number { display:grid; place-items:center; width:46px; height:46px; flex:0 0 46px; border-radius:50%; background:#fde7df; color:var(--orange); font-size:18px; font-weight:800; }
.private-chapter-info { display:block; min-width:0; }
.private-chapter-info strong { display:block; font:700 clamp(16px,1.7vw,20px)/1.18 'Space Grotesk',sans-serif; letter-spacing:-.025em; white-space:normal; }
.private-chapter-info small,.private-chapter-info em { display:none; }
.private-chapter-arrow { flex:0 0 auto; color:var(--orange); font-size:0; line-height:1; }
.private-chapter-arrow::after { content:'→'; font-size:21px; font-weight:700; }
@media (max-width:640px) {
  .private-syllabus { gap:30px; }
  .private-chapter-grid { display:grid; grid-template-columns:1fr; gap:11px; }
  .private-chapter-button { width:100%; min-height:62px; padding-right:16px; }
  .private-chapter-info { flex:1; }
  .private-chapter-info strong { font-size:16px; }
}

.private-chapter-arrow { width:auto!important; height:auto!important; min-width:0!important; padding:0!important; background:transparent!important; border:0!important; border-radius:0!important; box-shadow:none!important; color:var(--orange)!important; display:inline-block!important; }

/* Compact chapter pill height */
.private-chapter-button { min-height:52px; padding:6px 14px 6px 8px; gap:10px; }
.private-chapter-number { width:38px; height:38px; flex-basis:38px; font-size:16px; }
@media (max-width:640px) { .private-chapter-button { min-height:50px; padding:5px 13px 5px 7px; } }

/* Hide summary and guide blocks on the private chapter page */
.private-stats, .private-chapter-guide { display:none!important; }


/* 40% shorter chapter pills */
.private-chapter-button { min-height:31px; padding:3px 9px 3px 5px; gap:6px; }
.private-chapter-number { width:23px; height:23px; flex-basis:23px; font-size:10px; }
@media (max-width:640px) {
  .private-chapter-button { min-height:31px; padding:3px 8px 3px 5px; }
}


/* Chapter reading tabs and stanza guide */
.private-chapter-tabs {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 24px;
  padding: 10px 0;
  background: var(--cream);
  border-bottom: 1px solid var(--line);
}
.private-chapter-tabs a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 7px 16px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  color: var(--ink);
  font-weight: 700;
  transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease;
}
.private-chapter-tabs a:hover,
.private-chapter-tabs a:focus-visible {
  color: #fff;
  background: var(--orange);
  border-color: var(--orange);
  transform: translateY(-1px);
}
#poet, #summary, #poem, #quiz, #questions { scroll-margin-top: 72px; }
.private-reading-card,
.private-poem-card {
  margin: 28px 0;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--paper);
  box-shadow: 0 12px 28px rgba(23,33,43,.06);
}
.private-reading-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}
.private-reading-heading h2 { font-size: clamp(26px, 3vw, 38px); }
.private-reading-author {
  display: inline-flex;
  flex: 0 0 auto;
  padding: 7px 12px;
  border-radius: 999px;
  background: #f3eee5;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}
.private-reading-card > p,
.private-poet-note { max-width: 78ch; color: #50616d; font-size: 17px; }
.private-poet-note {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.private-stanza-list { display: grid; gap: 16px; }
.private-stanza {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}
.private-stanza > h3 {
  padding: 11px 16px;
  border-bottom: 1px solid var(--line);
  background: #fff7f1;
  color: var(--orange);
  font-size: 15px;
  letter-spacing: .02em;
}
.private-stanza-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.private-stanza-grid > div {
  min-width: 0;
  padding: 16px;
  border-right: 1px solid var(--line);
}
.private-stanza-grid > div:last-child { border-right: 0; }
.private-stanza-grid > div:nth-child(2) { background: #fffaf3; }
.private-stanza-grid > div:nth-child(3) { background: #f7fbfd; }
.private-stanza-grid small {
  display: block;
  margin-bottom: 8px;
  color: var(--orange);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.private-stanza-grid p {
  margin: 0;
  color: var(--ink);
  line-height: 1.7;
}
.private-stanza-grid > div:first-child p {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 16px;
}
.private-poem-empty { color: var(--muted); }
@media (max-width: 760px) {
  .private-chapter-tabs { top: 0; margin-bottom: 18px; }
  .private-chapter-tabs a { min-height: 35px; padding: 6px 12px; font-size: 14px; }
  .private-reading-card, .private-poem-card { padding: 18px; border-radius: 14px; }
  .private-reading-heading { flex-direction: column; gap: 10px; }
  .private-stanza-grid { grid-template-columns: 1fr; }
  .private-stanza-grid > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .private-stanza-grid > div:last-child { border-bottom: 0; }
}


/* Stanza vocabulary landscape panels */
.private-word-meanings {
  margin: 0;
  padding: 22px 26px 26px;
  border-top: 1px solid rgba(23, 33, 43, .10);
  background: linear-gradient(120deg, #fffaf5 0%, #f7fbfd 100%);
}
.private-word-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 13px;
}
.private-word-heading span {
  color: var(--orange);
  font: 800 17px/1.1 'Space Grotesk', sans-serif;
  letter-spacing: .02em;
}
.private-word-heading small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}
.private-word-table {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 8px 20px rgba(23, 33, 43, .05);
}
.private-word-row {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) minmax(240px, 2fr) minmax(180px, 1.4fr);
}
.private-word-row > span {
  padding: 12px 15px;
  border-right: 1px solid var(--line);
}
.private-word-row > span:last-child { border-right: 0; }
.private-word-row-head {
  background: rgba(242, 100, 60, .09);
  color: var(--orange);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: 11px;
  font-weight: 800;
}
.private-word-row:not(.private-word-row-head) {
  background: rgba(255, 255, 255, .76);
  color: var(--ink);
  font-size: 14px;
  line-height: 1.45;
}
.private-word-row:not(.private-word-row-head):nth-child(odd) { background: rgba(255, 255, 255, .98); }
.private-word-row:not(.private-word-row-head) > span:first-child { font-weight: 800; color: #315a72; }
@media (max-width: 760px) {
  .private-word-meanings { padding: 18px; }
  .private-word-heading { align-items: flex-start; flex-direction: column; gap: 3px; }
  .private-word-table { border-radius: 12px; }
  .private-word-row { grid-template-columns: 1fr; padding: 8px 0; border-bottom: 1px solid var(--line); }
  .private-word-row:last-child { border-bottom: 0; }
  .private-word-row-head { display: none; }
  .private-word-row > span { padding: 4px 13px; border-right: 0; }
  .private-word-row:not(.private-word-row-head) > span:first-child { padding-bottom: 1px; color: var(--orange); font-size: 15px; }
}


#previous-year { scroll-margin-top: 72px; }


/* Interactive multiple-choice quizzes */
.qa-quiz-controls { display:flex; align-items:center; flex-wrap:wrap; gap:10px 16px; margin:0 0 4px; padding:14px 16px; border:1px solid var(--line); border-radius:9px; background:var(--blue); }
.qa-quiz-controls > div { display:grid; gap:3px; margin-right:auto; }
.qa-quiz-controls > div strong { color:var(--ink); font-size:15px; }
.qa-quiz-controls > div span, .qa-quiz-result { color:var(--muted); font-size:12px; font-weight:600; }
.qa-quiz-controls .button { min-height:40px; padding:9px 14px; }
.qa-quiz-result { flex-basis:100%; }
.qa-mcq-card.is-correct { border-color:var(--green); }
.qa-mcq-card.is-incorrect { border-color:#d88375; }
.mcq-options { display:grid; gap:7px; margin:13px 0 0; padding:0; border:0; }
.mcq-options legend { margin-bottom:3px; color:var(--muted); font-size:12px; font-weight:700; }
.mcq-option { display:flex; align-items:flex-start; gap:9px; padding:9px 11px; border:1px solid var(--line); border-radius:7px; background:var(--cream); cursor:pointer; }
.mcq-option:hover { border-color:var(--orange); }
.mcq-option input { flex:0 0 auto; width:auto; margin:4px 0 0; accent-color:var(--orange); }
.mcq-option span { color:var(--ink); font:400 14px/1.5 "Segoe UI", Arial, sans-serif; }
.mcq-option span strong { color:var(--orange); }
.mcq-feedback { min-height:0; margin:8px 0 0; color:var(--muted); font-size:13px; font-weight:700; }
.mcq-feedback:empty { display:none; }
.qa-mcq-card.is-correct .mcq-feedback { color:var(--green); }
.qa-mcq-card.is-incorrect .mcq-feedback { color:#a94737; }
@media (max-width:560px) { .qa-quiz-controls { align-items:stretch; flex-direction:column; padding:12px; } .qa-quiz-controls .button { width:100%; } .qa-quiz-result { flex-basis:auto; } .mcq-option { padding:9px; } }


/* Site-wide mobile refinement and dark-green chrome */
:root {
  --forest: #123f2c;
  --forest-deep: #0b2c1f;
  --forest-mid: #1d6043;
  --forest-soft: #e5f0e9;
}
.site-header {
  background: linear-gradient(135deg, var(--forest-deep), var(--forest));
  border-bottom: 1px solid rgba(255,255,255,.16);
  color: #f7fff9;
  box-shadow: 0 5px 18px rgba(7,35,23,.18);
}
.site-header .brand,
.site-header .main-nav,
.site-header .main-nav a { color: #f7fff9; }
.site-header .main-nav a:hover,
.site-header .main-nav a:focus-visible,
.site-header .text-link:hover { color: #b9e5c9; }
.site-header .theme-toggle {
  border-color: rgba(255,255,255,.3);
  background: rgba(255,255,255,.12);
  color: #fff;
}
.site-header .theme-toggle:hover { border-color: #b9e5c9; background: rgba(255,255,255,.2); }
.site-footer {
  background: linear-gradient(135deg, var(--forest-deep), var(--forest));
  border-top-color: rgba(255,255,255,.14);
  color: #d7e9dd;
}
.site-footer .footer-nav a,
.site-footer .footer-note { color: #d7e9dd; }
.site-footer .footer-nav a:hover { color: #fff; }
.app-bottom-nav {
  background: rgba(11,44,31,.96);
  border-color: rgba(255,255,255,.2);
}
.app-bottom-link { color: #d7e9dd; }
.app-bottom-link:first-child { color: #fff; background: rgba(255,255,255,.16); }
.app-bottom-link:hover { color: #fff; }
body { overflow-x: hidden; }
img, video, iframe { max-width: 100%; }
.shell, .narrow { width: min(100% - 36px, 1120px); }
.button { min-height: 44px; }
.detail-section, .page-section { overflow-wrap: anywhere; }

@media (max-width: 760px) {
  .shell, .narrow { width: min(100% - 28px, 1120px); }
  .site-header { padding: 12px 0; }
  .nav-wrap { gap: 12px; }
  .brand { min-width: 0; gap: 9px; font-size: 16px; }
  .brand-logo { width: 36px; height: 36px; }
  .main-nav { gap: 10px 14px; font-size: 12px; }
  .section { padding: 46px 0 60px; }
  .detail-section { padding: 40px 0 68px; }
  .detail-section h1, .page-section h1 { font-size: clamp(36px, 8.5vw, 58px); }
  .detail-summary { margin: 16px 0 24px; font-size: 16px; }
  .detail-facts { gap: 7px 12px; margin-bottom: 20px; }
  .prose { padding: 23px 0; font-size: 16px; line-height: 1.65; }
  .prose h2, .page-section .prose h2 { margin-top: 22px; font-size: 24px; }
  .resource-actions { gap: 8px; margin: 12px 0 17px; }
  .resource-actions .button { flex: 1 1 180px; }
  .qa-toolbar { align-items: stretch; flex-direction: column; gap: 9px; margin: 16px 0 11px; padding: 12px; }
  .qa-toolbar select { min-width: 0; width: 100%; }
  .qa-list { gap: 11px; }
  .qa-paper-section { padding: 16px 0 4px; }
  .qa-paper-section h2 { font-size: 23px; }
  .qa-card { padding: 16px; border-radius: 9px; }
  .qa-card h2 { font-size: 21px; }
  .qa-card details { margin-top: 13px; padding-top: 11px; }
  .qa-answer { margin-top: 10px; font-size: 15px; line-height: 1.6; }
  .private-question { padding: 13px 14px; }
  .private-question-text { font-size: 14px; line-height: 1.5; }
  .private-options { padding: 10px 11px 10px 29px; font-size: 13px; }
  .premium-gate, .premium-panel { padding: 18px; }
  .auth-section { min-height: calc(100vh - 120px); padding: 34px 14px; }
  .auth-card { padding: 23px; }
  .admin-section { padding-top: 38px; }
  .admin-heading { margin-bottom: 21px; }
  .admin-table-wrap { margin-inline: -2px; }
  .admin-table { font-size: 13px; }
  .tool-card, .source-card { padding: 18px; }
  .stat-grid > div { padding: 14px; }
}

@media (max-width: 560px) {
  body { font-size: 14px; }
  .shell, .narrow { width: min(100% - 24px, 1120px); }
  .site-header { padding: 9px 0; }
  .nav-wrap { min-height: 40px; gap: 8px; }
  .brand { max-width: calc(100% - 46px); gap: 8px; font-size: 14px; }
  .brand-logo { width: 32px; height: 32px; }
  .section { padding: 37px 0 52px; }
  .detail-section { padding: 31px 0 58px; }
  .detail-section h1, .page-section h1 { font-size: clamp(31px, 10vw, 46px); line-height: 1.06; }
  .detail-breadcrumb { gap: 5px; margin-bottom: 13px; font-size: 11px; }
  .detail-summary { margin: 13px 0 19px; font-size: 15px; line-height: 1.55; }
  .detail-facts { font-size: 11px; }
  .prose { padding: 19px 0; font-size: 15px; }
  .prose h2, .page-section .prose h2 { font-size: 21px; }
  .button { min-height: 41px; padding: 9px 12px; font-size: 13px; }
  .resource-actions { display: grid; grid-template-columns: 1fr; }
  .resource-actions .button { width: 100%; }
  .qa-toolbar { border-radius: 10px; }
  .qa-card { padding: 13px; }
  .qa-card h2 { font-size: 19px; }
  .qa-label { gap: 6px; margin-bottom: 6px; font-size: 11px; }
  .qa-answer { font-size: 14px; line-height: 1.55; }
  .qa-extract-heading h3 { font-size: 18px; }
  .qa-extract-heading blockquote { padding: 11px 12px; font-size: 14px; line-height: 1.5; }
  .private-question { padding: 11px 12px; }
  .private-question-meta { gap: 5px; margin-bottom: 6px; font-size: 9px; }
  .private-options { font-size: 12px; }
  .premium-gate, .premium-panel { padding: 15px; border-radius: 12px; }
  .auth-card { padding: 19px; }
  .auth-card h1 { font-size: 32px; }
  .stack-form { gap: 13px; margin-top: 19px; }
  .footer-wrap { align-items: flex-start; gap: 14px; }
  .footer-nav { gap: 8px 13px; }
}


/* Keep the full navigation reachable on narrow screens */
@media (max-width: 760px) {
  .site-header .nav-wrap { flex-wrap: wrap; }
  .site-header .main-nav {
    order: 3;
    flex: 0 0 100%;
    width: 100%;
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 3px;
    overflow-x: auto;
    padding: 5px;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 999px;
    background: rgba(255,255,255,.1);
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .site-header .main-nav::-webkit-scrollbar { display: none; }
  .site-header .main-nav a,
  .site-header .main-nav a:first-child {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    min-height: 31px;
    padding: 6px 11px;
    border-radius: 999px;
    white-space: nowrap;
    color: #eaf7ee;
    font-size: 12px;
    line-height: 1.2;
  }
  .site-header .main-nav a:hover,
  .site-header .main-nav a:focus-visible {
    background: rgba(255,255,255,.17);
    color: #fff;
  }
}
@media (max-width: 560px) {
  .site-header .main-nav { gap: 2px; padding: 4px; }
  .site-header .main-nav a,
  .site-header .main-nav a:first-child { min-height: 30px; padding: 6px 10px; font-size: 11.5px; }
  .site-footer .footer-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    gap: 5px 14px;
  }
  .site-footer .footer-nav a { min-width: 0; padding: 4px 0; font-size: 12px; line-height: 1.35; }
}


/* The full navigation is now available in the top header; remove the floating mobile bar. */
.app-bottom-nav { display: none !important; }


/* Compact mobile header menu */
.site-header .nav-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 38px;
  padding: 7px 11px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 10px;
  background: rgba(255,255,255,.09);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}
.site-header .nav-toggle-icon { display: grid; gap: 3px; width: 19px; }
.site-header .nav-toggle-icon span { display: block; height: 2px; border-radius: 99px; background: currentColor; }
.site-header .nav-toggle:hover,
.site-header .nav-toggle:focus-visible,
.site-header.nav-open .nav-toggle { background: rgba(255,255,255,.18); outline: none; }
@media (max-width: 760px) {
  .site-header .nav-wrap { flex-wrap: wrap; gap: 10px 12px; }
  .site-header .nav-toggle { display: inline-flex; margin-left: auto; }
  .site-header .main-nav {
    display: none !important;
    order: 3;
    flex: 0 0 100%;
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 4px 6px;
    overflow: visible;
    padding: 8px;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 14px;
    background: rgba(255,255,255,.1);
  }
  .site-header.nav-open .main-nav { display: flex !important; }
  .site-header .main-nav a,
  .site-header .main-nav a:first-child {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    min-height: 31px;
    padding: 6px 10px;
    border-radius: 999px;
    white-space: nowrap;
    color: #eaf7ee;
    font-size: 12px;
    line-height: 1.2;
  }
  .site-header .main-nav a:hover,
  .site-header .main-nav a:focus-visible {
    background: rgba(255,255,255,.17);
    color: #fff;
  }
}
@media (max-width: 560px) {
  .site-header .nav-toggle { min-height: 36px; padding: 6px 9px; }
  .site-header .nav-toggle-label { font-size: 11px; }
  .site-header .main-nav { gap: 4px; padding: 7px; }
  .site-header .main-nav a,
  .site-header .main-nav a:first-child { min-height: 30px; padding: 6px 9px; font-size: 11.5px; }
}


/* Account icon beside the mobile menu */
.site-header .header-actions { display: none; }
.site-header .account-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 50%;
  background: rgba(255,255,255,.09);
  color: #fff;
  transition: background .18s ease, transform .18s ease;
}
.site-header .account-link svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.site-header .account-link-label { display: none; }
.site-header .account-link:hover,
.site-header .account-link:focus-visible { background: rgba(255,255,255,.18); transform: translateY(-1px); outline: none; }
@media (max-width: 760px) {
  .site-header .header-actions { display: inline-flex; align-items: center; gap: 8px; margin-left: auto; }
  .site-header .header-actions .nav-toggle { margin-left: 0; }
}
@media (max-width: 560px) {
  .site-header .account-link { width: 36px; height: 36px; }
  .site-header .account-link svg { width: 19px; height: 19px; }
}


/* Account dashboard */
.account-heading, .account-panel-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.account-heading { margin-bottom: 26px; }
.account-heading h1 { font-size: clamp(34px, 5vw, 56px); }
.account-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 24px; }
.account-card, .account-panel { border: 1px solid var(--line); border-radius: 16px; background: var(--paper); box-shadow: 0 3px 12px rgba(23,33,43,.04); }
.account-card { padding: 22px; }
.account-card h2 { margin: 0 0 9px; font-size: 26px; }
.account-card p { margin: 0 0 14px; }
.account-quick-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.account-quick-links a { padding: 9px 10px; border-radius: 9px; background: #f3eee5; color: var(--ink); font-size: 13px; font-weight: 700; }
.account-quick-links a:hover { background: var(--orange); color: #fff; }
.account-panel { padding: 24px; margin-top: 18px; }
.account-panel-heading { align-items: center; margin-bottom: 16px; }
.account-panel-heading h2 { font-size: 30px; }
.account-count { display: inline-grid; place-items: center; min-width: 32px; height: 32px; padding: 0 8px; border-radius: 999px; background: rgba(242,100,60,.12); color: var(--orange); font-weight: 800; }
.account-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.account-list li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 0; border-top: 1px solid var(--line); }
.account-list li > div { min-width: 0; }
.account-list li a { display: block; color: var(--ink); font-weight: 800; }
.account-list li a:hover { color: var(--orange); }
.account-list li small { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; }
.account-list li > span { flex: 0 0 auto; color: var(--muted); font-size: 12px; white-space: nowrap; }
.account-empty { padding: 18px 0 2px; color: var(--muted); }
.account-empty p { margin: 0 0 14px; }
@media (max-width: 900px) {
  .account-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .account-links-card { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .account-heading { align-items: flex-start; flex-direction: column; }
  .account-heading .button { width: 100%; }
  .account-summary-grid { grid-template-columns: 1fr; }
  .account-links-card { grid-column: auto; }
  .account-card, .account-panel { padding: 17px; border-radius: 13px; }
  .account-panel-heading h2 { font-size: 24px; }
  .account-list li { align-items: flex-start; }
  .account-list li > span { font-size: 11px; }
}
/* Keep header text clear against the forest-green background */
.site-header,
.site-header .brand,
.site-header .main-nav,
.site-header .main-nav a,
.site-header .main-nav a:first-child {
  color: #eaf7ee;
}
.site-header .main-nav a:hover,
.site-header .main-nav a:focus-visible {
  color: #fff;
}

/* Master answer control sits above the question list. */
.qa-answer-controls { display:flex; justify-content:flex-end; margin:-4px 0 12px; }
.qa-answer-controls .button { min-height:38px; padding:8px 14px; }
@media (max-width:560px) {
  .qa-answer-controls { margin:-3px 0 10px; }
  .qa-answer-controls .button { width:100%; }
}

/* Saved questions and answer folders */
.qa-answer-row { display:flex; align-items:center; gap:12px; }
.qa-answer-row details { flex:1; min-width:0; }
.qa-save-question { flex:0 0 auto; min-height:38px; padding:8px 12px; font-size:12px; white-space:nowrap; }
.saved-question-folders { display:grid; gap:18px; }
.saved-question-folder { padding:14px 16px; border:1px solid var(--line); border-radius:12px; background:rgba(255,253,248,.45); }
.saved-question-folder-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:4px; }
.saved-question-folder-heading h3 { font-size:20px; }
.saved-question-folder-heading span { color:var(--muted); font-size:12px; font-weight:700; white-space:nowrap; }
.saved-question-item { align-items:flex-start !important; gap:16px; }
.saved-question-copy { min-width:0; flex:1; }
.saved-question-copy > strong { display:block; color:var(--ink); font-weight:700; line-height:1.45; }
.saved-question-copy details { margin-top:8px; }
.saved-question-answer { margin-top:7px; padding:10px 12px; border-left:3px solid var(--orange); background:rgba(242,100,60,.06); color:var(--ink); line-height:1.55; }
.saved-question-actions { display:flex; align-items:center; flex:0 0 auto; gap:7px; }
.saved-question-actions select { width:auto; min-width:150px; padding:8px 10px; font-size:12px; }
.saved-question-actions .button { min-height:36px; padding:8px 10px; font-size:12px; white-space:nowrap; }
.visually-hidden { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
@media (max-width:760px) {
  .qa-answer-row { align-items:flex-start; gap:8px; }
  .qa-save-question { padding:7px 8px; font-size:11px; }
  .saved-question-item { flex-direction:column; }
  .saved-question-actions { width:100%; flex-wrap:wrap; }
  .saved-question-actions select { flex:1 1 100%; width:100%; }
  .saved-question-actions .button { flex:1 1 120px; }
}

/* Study shelf icon beside the account icon */
.site-header .shelf-link {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:50%;
  background:rgba(255,255,255,.09);
  color:#fff;
  transition:background .18s ease,transform .18s ease;
}
.site-header .shelf-link svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.site-header .shelf-link-label { display:none; }
.site-header .shelf-link:hover,
.site-header .shelf-link:focus-visible { background:rgba(255,255,255,.18); transform:translateY(-1px); outline:none; }
@media (max-width:560px) {
  .site-header .shelf-link { width:36px; height:36px; }
  .site-header .shelf-link svg { width:19px; height:19px; }
}

/* Dedicated study shelf heading actions */
.account-panel-heading-actions { display:flex; align-items:center; gap:10px; }
.account-panel-heading-actions .button { min-height:36px; padding:8px 12px; font-size:12px; white-space:nowrap; }
.shelf-summary-grid { margin-bottom:24px; }
@media (max-width:560px) {
  .account-panel-heading-actions { align-items:flex-end; flex-direction:column; gap:7px; }
  .account-panel-heading-actions .button { width:100%; }
}


/* Seven-day restore history on the study shelf */
.shelf-history-panel { border-color: rgba(242, 100, 60, .28); }
.shelf-link-inline { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.saved-history-list .saved-history-item { align-items: flex-start; gap: 16px; }
.saved-history-copy { min-width: 0; flex: 1; }
.saved-history-copy > strong { display: block; line-height: 1.45; }
.saved-history-copy > small { display: block; margin-top: 6px; }
.saved-history-copy details { margin-top: 8px; }
.saved-history-item .button { flex: 0 0 auto; min-height: 36px; padding: 8px 12px; font-size: 12px; }
@media (max-width: 560px) {
    .saved-history-list .saved-history-item { flex-direction: column; }
    .saved-history-item .button { width: 100%; }
}


/* Accessibility and responsive audit fixes — 17 September 2026 */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline: 3px solid #0b2c1f;
  outline-offset: 3px;
}
.site-header .main-nav a { color: #0b2c1f !important; }
.site-header .main-nav a:hover,
.site-header .main-nav a:focus-visible { color: #0b2c1f; background: #dcefe3; }
.button-orange { background: #f2643c; border-color: #f2643c; color: #17212b; }
.button-orange:hover,
.button-orange:focus-visible { background: #8f2b1c; border-color: #8f2b1c; color: #fff; }
.qa-save-question,
.topic-test-card .button,
.resource-actions .button { min-height: 44px; }
summary { min-height: 44px; display: inline-flex; align-items: center; }
input::placeholder, textarea::placeholder { color: #4b5563; opacity: 1; }
@media (max-width: 760px) {
  .site-header .main-nav a { color: #eaf7ee !important; }
  .site-header .main-nav a:hover,
  .site-header .main-nav a:focus-visible { color: #fff !important; background: rgba(255,255,255,.14); }
  .qa-save-question { font-size: 13px; padding: 10px 12px; }
  .topic-test-card .button { font-size: 13px; padding: 10px 12px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Keep generated topic test actions touch friendly. */
.topic-test-card .button, .topic-test-card button { min-height: 44px !important; }
@media (max-width: 760px) { .topic-test-card .button, .topic-test-card button { min-height: 44px !important; font-size: 13px !important; } }


/* Accessible visual references for imported picture and map questions. */
.qa-reference-figure { margin: 12px 0 14px; padding: 12px 14px; border: 1px solid rgba(11,44,31,.18); border-left: 4px solid #f2643c; border-radius: 12px; background: #f4f8f6; }
.qa-reference-figure figcaption { margin: 0 0 8px; font-weight: 700; color: #0b2c1f; }
.qa-reference-diagram { min-height: 54px; display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; padding: 10px; border-radius: 9px; background: #e5f0e9; color: #0b2c1f; font-size: 13px; font-weight: 650; text-align: center; }
.qa-reference-map .qa-reference-diagram { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); }
.qa-map-region { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 6px 8px; border-radius: 7px; background: #c9e3d2; }
.qa-map-south { grid-column: 1 / -1; background: #dce6df; }
.qa-reference-picture .qa-reference-diagram { flex-direction: column; }
.qa-picture-icon { display: block; font-size: 25px; line-height: 1; }
.qa-reference-note, .qa-content-notice { margin: 8px 0 0; color: #334155; font-size: 12px; line-height: 1.45; }
.qa-content-notice { padding: 8px 10px; border-radius: 8px; background: #fff4df; border: 1px solid rgba(180,55,34,.24); }
@media (max-width: 560px) {
  .qa-reference-figure { padding: 10px; }
  .qa-reference-map .qa-reference-diagram { grid-template-columns: 1fr; }
  .qa-map-south { grid-column: auto; }
  .qa-reference-diagram { font-size: 12px; }
}


/* Focused reading mode */
body.reading-mode { background: #fffdf8; }
body.reading-mode .site-header,
body.reading-mode > footer,
body.reading-mode .topic-test-hub,
body.reading-mode .qa-toolbar { display: none !important; }
body.reading-mode #main-content { max-width: 920px; margin-inline: auto; }
body.reading-mode .detail-hero { max-width: 920px; margin-inline: auto; }
body.reading-mode .resource-actions-top { position: sticky; top: 0; z-index: 20; display: flex; gap: 8px; flex-wrap: wrap; padding: 10px 0; background: rgba(255,253,248,.96); border-bottom: 1px solid rgba(11,44,31,.15); }
body.reading-mode .detail-section { max-width: 880px; margin-inline: auto; }
body.reading-mode .qa-card { box-shadow: none; }
body.reading-mode .qa-answer-row { max-width: 820px; }
body.reading-mode .reading-mode-toggle { margin-left: auto; }
/* Keep reading mode instant on very large question banks. The answer text is
   shown without opening every details element, so mode changes never block the
   main thread with hundreds of layout updates. */
body.reading-answers .qa-card details:not([open]) > .qa-answer { display: block; }
body.reading-answers .qa-card details > summary { display: none; }
body.practice-mode .qa-card details > summary { display: block; }
@media (max-width: 560px) {
  body.reading-mode #main-content, body.reading-mode .detail-hero, body.reading-mode .detail-section { width: min(100% - 24px, 920px); }
  body.reading-mode .resource-actions-top { gap: 6px; }
  body.reading-mode .resource-actions-top .button { flex: 1 1 140px; }
}


/* Four-destination navigation and no floating bottom bar. */
.app-bottom-nav { display: none !important; }
.site-header .main-nav { gap: 12px; align-items: center; flex-wrap: wrap; }
.site-header .main-nav-primary, .site-header .main-nav-secondary { display: flex; align-items: center; gap: 4px; }
.site-header .main-nav-primary a { font-weight: 750; }
.site-header .main-nav-secondary { opacity: .9; }
.site-header .main-nav-secondary a { font-size: 12px; }
@media (max-width: 760px) {
  .site-header .main-nav { display: block; padding: 10px; }
  .site-header .main-nav-primary, .site-header .main-nav-secondary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .site-header .main-nav-secondary { margin-top: 6px; padding-top: 6px; border-top: 1px solid rgba(255,255,255,.16); }
  .site-header .main-nav-primary a, .site-header .main-nav-secondary a { width: 100%; }
}


/* Clean study flow: continuation, section jumps, and one-tap save actions. */
.continue-studying { margin: 0 auto 22px; max-width: 1120px; padding: 18px 20px; border: 1px solid rgba(11,44,31,.16); border-left: 4px solid #f2643c; border-radius: 14px; background: #f4f8f6; }
.continue-studying h2 { margin: 2px 0 4px; font-size: clamp(20px, 3vw, 28px); }
.continue-studying .button { margin-top: 8px; }
.qa-section-nav { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 14px 0; padding: 10px; border: 1px solid rgba(11,44,31,.14); border-radius: 12px; background: #f4f8f6; position: sticky; top: 8px; z-index: 5; }
.qa-section-nav .button { min-height: 38px; padding: 8px 12px; font-size: 12px; }
.qa-section-nav .button.is-active { background: #0b2c1f; color: #fff; }
.qa-save-actions { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-left: 6px; }
.qa-save-actions .button { min-height: 38px; padding: 8px 10px; font-size: 12px; }
.qa-save-folder, .saved-folder-new { min-height: 38px; max-width: 180px; padding: 7px 9px; border: 1px solid rgba(11,44,31,.22); border-radius: 8px; background: #fffdf8; color: #17212b; }
@media (max-width: 560px) {
  .continue-studying { margin: 0 12px 16px; padding: 14px; }
  .continue-studying .button { width: 100%; }
  .qa-section-nav { top: 4px; gap: 5px; padding: 7px; }
  .qa-section-nav .button { flex: 1 1 42%; min-height: 40px; }
  .qa-save-actions { width: 100%; margin: 7px 0 0; }
  .qa-save-actions .button, .qa-save-folder { flex: 1 1 120px; min-height: 40px; }
}

/* Study modes stay visible and easy to find on every chapter. */
.resource-actions-top { position: sticky; top: 0; z-index: 25; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 10px 0; background: rgba(255,253,248,.97); border-bottom: 1px solid rgba(11,44,31,.15); }
.resource-actions-top .reading-mode-toggle, .resource-actions-top .practice-mode-toggle { min-height: 44px; padding: 10px 14px; border: 2px solid #f2643c; border-radius: 10px; font-size: 14px; font-weight: 800; }
.resource-actions-top .reading-mode-toggle { margin-left: auto; background: #f2643c; color: #fff; }
.resource-actions-top .practice-mode-toggle { background: #fff3ec; color: #0b2c1f; }
.resource-actions-top .reading-mode-toggle:focus-visible, .resource-actions-top .practice-mode-toggle:focus-visible { outline: 3px solid #0b2c1f; outline-offset: 2px; }
@media (max-width: 560px) {
  .resource-actions-top { top: 0; gap: 7px; padding: 9px 0; }
  .resource-actions-top > .button { flex: 1 1 140px; width: auto; }
  .resource-actions-top .reading-mode-toggle { margin-left: 0; }
}

/* Premium plan selector */
.premium-plan-options { margin: 22px 0; padding: 0; border: 0; }
.premium-plan-options legend { margin-bottom: 8px; color: #0b2c1f; font-size: 18px; font-weight: 800; }
.premium-plan-option { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; margin: 9px 0; padding: 14px 16px; border: 1px solid rgba(11,44,31,.18); border-radius: 12px; background: #fffdf8; cursor: pointer; transition: border-color .18s, background .18s, box-shadow .18s; }
.premium-plan-option:hover, .premium-plan-option:focus-within { border-color: #f2643c; }
.premium-plan-option.is-selected { border: 2px solid #f2643c; padding: 13px 15px; background: #fff3ec; box-shadow: 0 2px 0 rgba(242,100,60,.12); }
.premium-plan-option input { width: 20px; height: 20px; margin: 0; accent-color: #f2643c; }
.premium-plan-option-copy { display: grid; gap: 3px; min-width: 0; }
.premium-plan-option-copy strong { color: #0b2c1f; font-size: 15px; }
.premium-plan-option-copy small { color: #5f6b70; font-size: 12px; line-height: 1.4; }
.premium-plan-option-price { color: #0b2c1f; font-size: 17px; font-weight: 850; white-space: nowrap; }
.premium-plan-badge { position: absolute; top: -9px; right: 12px; padding: 3px 8px; border-radius: 999px; background: #f2643c; color: #fff; font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
@media (max-width: 560px) {
  .premium-plan-option { grid-template-columns: auto minmax(0, 1fr); padding: 13px; }
  .premium-plan-option.is-selected { padding: 12px; }
  .premium-plan-option-price { grid-column: 2; justify-self: start; font-size: 15px; }
  .premium-plan-option-copy strong { font-size: 14px; }
}


/* Paperlike reading surface: warm paper tone, softer edges, readable contrast. */
body.paperlike-mode { background: #f3ead8; color: #2b241b; }
body.paperlike-mode main, body.paperlike-mode .main-content { background: #f3ead8; }
body.paperlike-mode .detail-hero,
body.paperlike-mode .detail-section,
body.paperlike-mode .qa-card,
body.paperlike-mode .extract-card,
body.paperlike-mode .qa-toolbar,
body.paperlike-mode .qa-section-nav,
body.paperlike-mode .resource-actions-top { background-color: #fbf5e8; border-color: rgba(77,59,34,.18); }
body.paperlike-mode .resource-actions-top { box-shadow: 0 1px 0 rgba(77,59,34,.08); }
body.paperlike-mode .qa-card h2,
body.paperlike-mode .qa-card h3,
body.paperlike-mode .qa-answer,
body.paperlike-mode .detail-section p { color: #332b20; }
body.paperlike-mode .paperlike-toggle[aria-pressed="true"] { background: #0b2c1f; border-color: #0b2c1f; color: #fff; }
.paperlike-toggle { border-color: rgba(11,44,31,.28); }
@media (max-width: 560px) {
  .resource-actions-top .paperlike-toggle { flex: 1 1 140px; min-height: 44px; }
}


/* Navigation polish v26: compact desktop bar and aligned mobile menu. */
.site-header .main-nav {
  min-width: 0;
  flex: 1 1 auto;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
  padding: 6px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 18px;
  background: rgba(255,255,255,.09);
  color: #eaf7ee;
}
.site-header .main-nav-primary,
.site-header .main-nav-secondary {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 2px;
  flex-wrap: nowrap;
}
.site-header .main-nav-secondary { margin-left: auto; }
.site-header .main-nav a,
.site-header .main-nav a:first-child {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 7px 10px;
  border-radius: 10px;
  color: #eaf7ee !important;
  font-size: 12px;
  line-height: 1.1;
  white-space: nowrap;
}
.site-header .main-nav a:hover,
.site-header .main-nav a:focus-visible {
  color: #fff !important;
  background: rgba(255,255,255,.16);
}
@media (max-width: 900px) and (min-width: 761px) {
  .site-header .main-nav { gap: 4px; padding: 5px; }
  .site-header .main-nav a,
  .site-header .main-nav a:first-child { padding-inline: 7px; font-size: 11px; }
}
@media (max-width: 760px) {
  .site-header .main-nav {
    display: none !important;
    order: 3;
    flex: 0 0 100%;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 7px;
    overflow: visible;
    padding: 8px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 14px;
    background: #0b2c1f;
    box-shadow: 0 10px 22px rgba(3,18,12,.2);
  }
  .site-header.nav-open .main-nav { display: flex !important; }
  .site-header .main-nav-primary,
  .site-header .main-nav-secondary {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 5px;
  }
  .site-header .main-nav-secondary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
    padding-top: 7px;
    border-top: 1px solid rgba(255,255,255,.18);
  }
  .site-header .main-nav a,
  .site-header .main-nav a:first-child {
    width: auto;
    min-width: 0;
    min-height: 38px;
    padding: 8px 6px;
    border-radius: 9px;
    font-size: 12px;
    line-height: 1.15;
    text-align: center;
    white-space: normal;
  }
}
@media (max-width: 560px) {
  .site-header .main-nav { gap: 6px; padding: 7px; }
  .site-header .main-nav-primary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-header .main-nav-secondary { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-top: 6px; }
  .site-header .main-nav a,
  .site-header .main-nav a:first-child { min-height: 40px; padding: 8px 5px; font-size: 12px; }
}


/* Keep Save question actions from narrowing the reading column. */
@media (max-width: 760px) {
  .qa-answer-row {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  .qa-answer-row details {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  .qa-answer-row .qa-save-question {
    display: flex;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 10px 0 0;
    justify-content: center;
    white-space: normal;
  }
}


/* Admin-only advertising controls remain visibly disabled until launch approval. */
.admin-ad-panel {
  margin: 24px 0;
  padding: 22px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(23,33,43,.04);
}
.admin-ad-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}
.admin-ad-heading h2 { margin: 2px 0 6px; }
.admin-ad-status {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  min-height: 30px;
  padding: 5px 11px;
  border: 1px solid rgba(242,100,60,.35);
  border-radius: 999px;
  color: var(--orange);
  background: rgba(242,100,60,.08);
  font-weight: 700;
  font-size: 12px;
}
.admin-ad-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
}
.admin-ad-grid label { display: grid; gap: 6px; color: var(--ink); font-size: 13px; font-weight: 700; }
.admin-ad-grid input, .admin-ad-grid select { width: 100%; }
.admin-ad-panel :disabled { cursor: not-allowed; opacity: .68; }
.admin-ad-placements {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px 14px;
  margin: 18px 0 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
}
.admin-ad-placements legend { padding: 0 6px; color: var(--muted); font-size: 12px; font-weight: 700; }
.admin-ad-placements label { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 13px; }
.admin-ad-placements input { margin: 0; }
.admin-ad-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 16px; }
.admin-ad-actions span { color: var(--muted); font-size: 12px; }
@media (max-width: 760px) {
  .admin-ad-panel { padding: 17px; }
  .admin-ad-heading { display: block; }
  .admin-ad-status { margin-top: 12px; }
  .admin-ad-grid, .admin-ad-placements { grid-template-columns: 1fr; }
}

/* Premium plans remain ad-free when advertising is eventually enabled. */
.admin-ad-exclusion { margin: 16px 0 0; padding: 12px 14px; border: 1px solid rgba(23, 74, 58, .18); border-radius: 10px; color: var(--ink); background: rgba(23, 74, 58, .06); font-size: 13px; line-height: 1.55; }
.admin-ad-exclusion strong { color: var(--green, #174a3a); }

/* Make the premium ad-free promise visible during checkout. */
.premium-ad-free-note { margin: 14px 0 0; padding: 12px 14px; border: 1px solid rgba(23, 74, 58, .18); border-radius: 10px; color: var(--ink); background: rgba(23, 74, 58, .06); font-size: 14px; line-height: 1.5; }
.premium-ad-free-note strong { color: var(--green, #174a3a); }


/* Keep the expanded desktop header compact and aligned with long navigation labels. */
@media (min-width: 761px) {
  .site-header .brand { flex: 0 0 auto; white-space: nowrap; }
  .site-header .brand span { white-space: nowrap; }
  .site-header .main-nav { gap: 8px; }
  .site-header .main-nav-primary,
  .site-header .main-nav-secondary { gap: 2px; }
  .site-header .main-nav-secondary { margin-left: 8px; }
  .site-header .main-nav a { padding-inline: 7px; white-space: nowrap; font-size: 11px; }
  .site-header .main-nav-secondary a { font-size: 11px; }
}


/* Shared page frame: keep header and footer consistent without trailing blank space. */
html, body { min-height: 100%; }
body { min-height: 100vh; display: flex; flex-direction: column; }
body > .site-header { flex: 0 0 auto; }
body > main { flex: 1 0 auto; width: 100%; }
body > .site-footer { flex: 0 0 auto; margin-top: 0; margin-bottom: 0; }


/* Homepage library: show several class and subject dropdowns per row on larger screens. */
.resource-groups { grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr)); align-items:start; }
.resource-group { min-width:0; }
@media (max-width:720px) { .resource-groups { grid-template-columns:1fr; } }


/* Keep each class together on its own desktop grid row. */
@media (min-width:1000px) {
  .resource-groups { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .resource-group:nth-child(4),
  .resource-group:nth-child(6),
  .resource-group:nth-child(8),
  .resource-group:nth-child(11),
  .resource-group:nth-child(13),
  .resource-group:nth-child(18) { grid-column:1; }
  .resource-group.writing-resource-group, .writing-resource-box { grid-column:1 / -1; }
}

/* Chapter-aware library controls: sorting stays visible beside the filters. */
.filter-reset { text-decoration: none; white-space: nowrap; }
.filter-bar .filter-reset { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; }
@media (max-width: 1100px) and (min-width: 761px) {
  .filter-bar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .filter-bar .search-field { grid-column: 1 / -1; }
  .filter-bar .button, .filter-bar .filter-reset { width: 100%; }
}
@media (max-width: 760px) {
  .filter-bar .filter-reset { width: 100%; }
}

/* Compact homepage top region: keep every control visible while fitting the
   search, filters, and continue card into roughly the first 40% of the view. */
@media (min-width: 1101px) {
  .top-search { padding: 9px 0 2px; }
  .top-search .filter-bar { gap: 7px; padding: 8px; margin-bottom: 0; }
  .top-search .filter-bar select,
  .top-search .filter-bar .button,
  .top-search .filter-bar .filter-reset { min-height: 38px; padding-top: 7px; padding-bottom: 7px; }
  .top-search .filter-bar .advanced-filters {
    grid-column: 3 / -1;
    align-self: stretch;
    min-height: 38px;
    margin: 0;
  }
  .top-search .filter-bar .advanced-filters > summary {
    height: 100%;
    display: flex;
    align-items: center;
    padding: 0 2px;
  }
  .continue-studying { margin: 7px auto 12px; padding: 12px 16px; border-radius: 12px; }
  .continue-studying .eyebrow { margin-bottom: 3px; font-size: 10px; line-height: 1.2; }
  .continue-studying h2 { margin: 0 0 2px; font-size: clamp(19px, 2.2vw, 25px); line-height: 1.12; }
  .continue-studying p.muted { margin: 0; font-size: 13px; line-height: 1.35; }
  .continue-studying .button { margin-top: 6px; min-height: 34px; padding: 7px 12px; }
  #resources.section { padding-top: 18px; }
  #resources .section-heading { margin-bottom: 12px; }
}

@media (max-width: 1100px) and (min-width: 761px) {
  .top-search { padding: 10px 0 3px; }
  .continue-studying { margin-bottom: 14px; padding: 14px 16px; }
  .continue-studying h2 { font-size: 24px; }
}

@media (max-width: 760px) {
  .top-search { padding: 8px 0 2px; }
  .top-search .filter-bar { gap: 6px; padding: 7px; margin-bottom: 0; }
  .top-search .filter-bar select,
  .top-search .filter-bar .button,
  .top-search .filter-bar .filter-reset { min-height: 38px; }
  .continue-studying { margin: 6px 8px 10px; padding: 11px 12px; }
  .continue-studying h2 { margin-bottom: 2px; font-size: 21px; line-height: 1.15; }
  .continue-studying p.muted { margin: 0; font-size: 13px; line-height: 1.35; }
  .continue-studying .button { width: auto; min-height: 36px; margin-top: 6px; padding: 7px 12px; }
  #resources.section { padding-top: 18px; }
}

/* Keep large question banks paintable and responsive while scrolling. */
.qa-card { content-visibility: auto; contain-intrinsic-size: 260px 220px; }

.site-header .cart-link{color:#f7fff9}.site-header .cart-link:hover,.site-header .cart-link:focus-visible{color:#fff;border-color:#b9e5c9;background:rgba(255,255,255,.14)}
.mobile-bottom-nav{display:none}.global-search{display:grid;grid-template-columns:1fr auto;gap:9px;margin:22px 0}.global-search input{min-height:48px}.search-results{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:30px}.search-results .section-heading{margin-bottom:12px}.search-result-list{display:grid;gap:8px}.search-result-list>a{display:flex;flex-direction:column;gap:5px;padding:14px;border:1px solid #dce2dd;border-radius:12px;background:#fff}.search-result-list small{color:#687579}
@media(max-width:760px){.site-header .header-actions{display:flex;align-items:center;gap:7px}.site-header .cart-link{min-height:34px}.site-header .cart-link span{height:18px;min-width:18px}.home-shortcuts .shell{width:min(1120px,calc(100% - 20px))}.mobile-bottom-nav{position:fixed;z-index:40;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);padding:7px 5px calc(7px + env(safe-area-inset-bottom));border-top:1px solid rgba(20,40,48,.14);background:rgba(255,255,255,.96);backdrop-filter:blur(14px)}.mobile-bottom-nav a{padding:7px 2px;color:#26493e;text-align:center;font-size:10px;font-weight:900}.search-results{grid-template-columns:1fr}.global-search{grid-template-columns:1fr}.global-search .button{width:100%}}

/* Compact, equal quick-destination cards. */
.home-shortcuts { padding: 12px 0 2px; }
.home-shortcuts .shell { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.home-shortcuts a {
  min-height: 88px;
  box-sizing: border-box;
  justify-content: center;
  gap: 5px;
  padding: 12px 16px;
  border: 1px solid transparent;
  border-radius: 16px;
  color: #17313a;
  box-shadow: 0 8px 20px rgba(30,45,55,.08);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.home-shortcuts a:nth-child(1) { background: linear-gradient(135deg, #e6f5ee, #c9e9dc); border-color: #a8d6c2; }
.home-shortcuts a:nth-child(2) { background: linear-gradient(135deg, #fff0dc, #ffd4aa); border-color: #f2ba7c; }
.home-shortcuts a:nth-child(3) { background: linear-gradient(135deg, #eee8ff, #d9ceff); border-color: #b9a7f2; }
.home-shortcuts a:nth-child(4) { background: linear-gradient(135deg, #e2f0ff, #c7e0ff); border-color: #9fc3ed; }
.home-shortcuts a:hover,
.home-shortcuts a:focus-visible { transform: translateY(-3px); box-shadow: 0 13px 26px rgba(30,45,55,.14); filter: saturate(1.08); }
.home-shortcuts a:focus-visible { outline: 3px solid #f2643c; outline-offset: 3px; }
.home-shortcuts strong { font-size: 16px; line-height: 1.15; }
.home-shortcuts span { font-size: 12px; line-height: 1.25; color: #4c6871; }
.ai-home-callout { padding: 7px 0 3px; background: #fbf7ef; }
.ai-home-callout .shell { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:11px 15px; border:1px solid #b9a7f2; border-radius:14px; background:linear-gradient(135deg,#f2efff,#e5dcff); box-shadow:0 6px 16px rgba(60,46,120,.08); }
.ai-home-callout h2 { margin:2px 0 2px; color:#112336; font-size:16px; line-height:1.15; }
.ai-home-callout p { margin:0; color:#526b7c; font-size:12px; line-height:1.35; }
.ai-home-callout .button { flex:0 0 auto; min-height:34px; padding:8px 12px; font-size:12px; }
@media (max-width: 900px) {
  .home-shortcuts .shell { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Keep free and paid access visible without adding extra navigation steps. */
.resource-access-label {
  flex: 0 0 auto;
  padding: 3px 7px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .02em;
}
.resource-access-free { color: #1f6b51; background: #e1f4e9; }
.resource-access-paid { color: #9b4929; background: #ffe4d5; }
@media (max-width: 560px) {
  .home-shortcuts .shell { grid-template-columns: 1fr; }
  .home-shortcuts a { min-height: 76px; }
  .ai-home-callout .shell { align-items:stretch; flex-direction:column; }
  .ai-home-callout .button { width:100%; justify-content:center; }
}

/* AI study assistant. */
.ai-study-panel {
  margin: 18px 0 22px;
  border: 1px solid rgba(17, 35, 54, .14);
  border-left: 4px solid #f15b3a;
  border-radius: 16px;
  background: linear-gradient(135deg, #fffaf2, #f2f8f8);
  box-shadow: 0 10px 28px rgba(17, 35, 54, .08);
  overflow: hidden;
}
.ai-study-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 15px;
}
.ai-study-bar h2 { margin: 2px 0 0; font-size: 1rem; color: #112336; }
.ai-study-kicker { display: block; color: #f15b3a; font-size: .67rem; font-weight: 800; letter-spacing: .14em; }
.ai-study-badge { margin-left: auto; color: #476778; font-size: .76rem; font-weight: 700; white-space: nowrap; }
.ai-study-toggle { border: 0; border-radius: 999px; padding: 8px 12px; background: #112336; color: #fff; font: inherit; font-size: .78rem; font-weight: 800; cursor: pointer; }
.ai-study-toggle:hover, .ai-study-toggle:focus-visible { background: #f15b3a; }
.ai-study-body { padding: 0 15px 15px; }
.ai-study-note { margin: 0 0 12px; color: #526b7c; font-size: .82rem; line-height: 1.45; }
.ai-study-presets { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 12px; }
.ai-study-preset { border: 1px solid rgba(17, 35, 54, .16); border-radius: 999px; padding: 7px 10px; background: #fff; color: #112336; font: inherit; font-size: .76rem; font-weight: 700; cursor: pointer; }
.ai-study-preset:hover, .ai-study-preset:focus-visible { border-color: #f15b3a; color: #f15b3a; }
.ai-study-label { display: block; margin: 0 0 5px; color: #112336; font-size: .78rem; font-weight: 800; }
.ai-study-input { display: block; width: 100%; min-height: 72px; box-sizing: border-box; resize: vertical; border: 1px solid rgba(17, 35, 54, .18); border-radius: 10px; padding: 10px; background: #fff; color: #112336; font: inherit; font-size: .9rem; }
.ai-study-input:focus { outline: 3px solid rgba(241, 91, 58, .2); border-color: #f15b3a; }
.ai-study-submit-row { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.ai-study-submit-row .button { min-height: 38px; }
.ai-study-status { color: #526b7c; font-size: .75rem; line-height: 1.35; }
.ai-study-output { max-height: 360px; overflow: auto; margin: 12px 0 0; border-radius: 10px; padding: 12px; background: #112336; color: #f7fbfb; white-space: pre-wrap; font: inherit; font-size: .88rem; line-height: 1.55; }
.ai-study-panel button:disabled { opacity: .55; cursor: wait; }
@media (max-width: 640px) {
  .ai-study-bar { align-items: flex-start; flex-wrap: wrap; }
  .ai-study-badge { order: 3; width: 100%; margin-left: 0; }
  .ai-study-toggle { margin-left: auto; }
}

/* Compact resume prompt: floating on the library and inline in reading mode. */
.continue-studying-popup {
  position: fixed;
  right: 18px;
  bottom: 24px;
  z-index: 45;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  width: min(360px, calc(100vw - 32px));
  margin: 0;
  padding: 9px 11px;
  border: 1px solid rgba(242,100,60,.35);
  border-left: 3px solid #f2643c;
  border-radius: 12px;
  background: rgba(255,253,248,.97);
  box-shadow: 0 12px 30px rgba(23,33,43,.16);
  backdrop-filter: blur(12px);
}
.continue-studying-label { color: #f2643c; font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.continue-studying-link { min-width: 0; overflow: hidden; color: var(--ink); font-size: 12px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; text-decoration: none; }
.continue-studying-link:hover { color: #f2643c; text-decoration: underline; }
.continue-studying-dismiss { width: 24px; height: 24px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--muted); font-size: 18px; line-height: 1; cursor: pointer; }
.continue-studying-dismiss:hover, .continue-studying-dismiss:focus-visible { background: rgba(242,100,60,.12); color: #f2643c; }
.continue-reading-chip { display: inline-flex; align-items: center; gap: 7px; margin-left: auto; padding: 5px 7px 5px 9px; border: 1px solid rgba(242,100,60,.28); border-radius: 999px; background: #fff4ed; color: #9b3d2a; font-size: 11px; font-weight: 800; }
.continue-reading-chip button { min-height: 28px; padding: 5px 9px; border: 0; border-radius: 999px; background: #f2643c; color: #fff; font-size: 11px; font-weight: 800; cursor: pointer; }
.continue-reading-chip button:hover, .continue-reading-chip button:focus-visible { background: #bd4229; }
@media (max-width: 760px) {
  .continue-studying-popup { right: 12px; bottom: 82px; width: min(340px, calc(100vw - 24px)); }
  .continue-reading-chip { width: 100%; justify-content: space-between; margin-left: 0; }
}

/* Header layout fix: keep brand, cart, and menu aligned on narrow screens. */
@media (max-width:760px){
  .site-header .nav-wrap{align-items:center;min-width:0;}
  .site-header .brand{min-width:0;flex:1 1 auto;max-width:calc(100% - 150px);}
  .site-header .brand span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .site-header .header-actions{flex:0 0 auto;min-width:0;}
  .site-header .cart-link,.site-header .nav-toggle{flex:0 0 auto;white-space:nowrap;}
}
@media (max-width:420px){
  .site-header .brand{max-width:calc(100% - 128px);gap:8px;font-size:14px;}
  .site-header .brand-logo{width:34px;height:34px;}
  .site-header .cart-link{padding-inline:7px;font-size:10px;}
  .site-header .nav-toggle{gap:6px;padding-inline:8px;}
}


/* Universal safe-area mobile header: preserve the brand/actions row on every phone width. */
.site-header { padding-block-start: max(9px, env(safe-area-inset-top)); }
@media (max-width: 760px) {
  .site-header { padding-inline: 0; }
  .site-header .nav-wrap {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "brand actions" "nav nav";
    align-items: center;
    gap: 8px;
    width: 100%;
    min-width: 0;
    padding-inline: max(12px, env(safe-area-inset-left)) max(12px, env(safe-area-inset-right));
    box-sizing: border-box;
  }
  .site-header .brand {
    grid-area: brand;
    display: flex;
    min-width: 0;
    max-width: none;
    flex: initial;
    overflow: hidden;
    gap: 8px;
    font-size: clamp(13px, 4vw, 16px);
    line-height: 1;
    white-space: nowrap;
  }
  .site-header .brand-logo {
    flex: 0 0 auto;
    width: clamp(30px, 9vw, 38px);
    height: clamp(30px, 9vw, 38px);
  }
  .site-header .brand span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .site-header .header-actions {
    grid-area: actions;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-width: 0;
    margin: 0;
    gap: 6px;
  }
  .site-header .cart-link,
  .site-header .nav-toggle {
    flex: 0 0 auto;
    min-width: 0;
    min-height: 36px;
    padding: 6px 8px;
    white-space: nowrap;
    font-size: clamp(10px, 2.8vw, 13px);
  }
  .site-header .cart-link { max-width: 80px; overflow: hidden; text-overflow: ellipsis; }
  .site-header .nav-toggle { max-width: 74px; }
  .site-header .main-nav {
    grid-area: nav;
    display: none;
    width: 100%;
    min-width: 0;
    margin: 0;
    box-sizing: border-box;
  }
  .site-header.nav-open .main-nav { display: block !important; }
  .site-header .main-nav-primary,
  .site-header .main-nav-secondary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    min-width: 0;
  }
  .site-header .main-nav-secondary { margin-top: 6px; }
  .site-header .main-nav a,
  .site-header .main-nav a:first-child {
    min-width: 0;
    width: 100%;
    min-height: 40px;
    padding: 8px 5px;
    box-sizing: border-box;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: clamp(10px, 3vw, 12px);
    text-align: center;
  }
}
@media (max-width: 360px) {
  .site-header .nav-wrap { padding-inline: max(8px, env(safe-area-inset-left)) max(8px, env(safe-area-inset-right)); gap: 6px; }
  .site-header .header-actions { gap: 4px; }
  .site-header .cart-link { max-width: 64px; padding-inline: 6px; }
  .site-header .nav-toggle { max-width: 66px; padding-inline: 6px; }
}


/* Compact floating AI access and lively touch feedback. */
.ai-floating-launcher {
  position: fixed;
  right: 18px;
  bottom: max(18px, calc(18px + env(safe-area-inset-bottom)));
  z-index: 120;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 84px;
  min-height: 44px;
  padding: 8px 13px;
  border: 1px solid rgba(255,255,255,.6);
  border-radius: 999px;
  background: linear-gradient(135deg, #ff7048, #ed3d72 62%, #8157de);
  color: #fff;
  font: inherit;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .01em;
  box-shadow: 0 10px 24px rgba(110,45,105,.28), 0 0 0 4px rgba(242,100,60,.10);
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
  animation: ai-float-pulse 3.2s ease-in-out infinite;
}
.ai-floating-spark { font-size: 18px; line-height: 1; }
.ai-floating-launcher:hover,
.ai-floating-launcher:focus-visible { transform: translateY(-3px) scale(1.03); filter: saturate(1.12) brightness(1.04); box-shadow: 0 14px 30px rgba(110,45,105,.34), 0 0 0 5px rgba(242,100,60,.16); outline: 3px solid rgba(242,100,60,.28); outline-offset: 2px; }
.ai-floating-launcher:active { transform: translateY(0) scale(.96); }
.ai-study-floating-panel { position: fixed; right: 18px; bottom: 78px; z-index: 119; width: min(420px, calc(100vw - 28px)); max-height: min(72vh, 680px); margin: 0; overflow: auto; border: 1px solid rgba(129,87,222,.28); border-left: 4px solid #f15b3a; border-radius: 18px; background: rgba(255,253,248,.98); box-shadow: 0 22px 55px rgba(17,35,54,.25), 0 0 0 1px rgba(255,255,255,.5) inset; backdrop-filter: blur(18px); animation: ai-panel-in .2s ease-out; }
.ai-study-floating-panel[hidden] { display: none; }
.ai-study-floating-panel .ai-study-bar { justify-content: space-between; padding: 13px 14px 11px; background: linear-gradient(135deg, rgba(242,239,255,.96), rgba(255,248,237,.96)); border-bottom: 1px solid rgba(17,35,54,.10); }
.ai-study-subtitle { margin: 2px 0 0; color: #526b7c; font-size: .73rem; line-height: 1.25; }
.ai-study-floating-panel .ai-study-toggle { flex: 0 0 auto; width: 38px; min-height: 38px; padding: 0; border: 1px solid rgba(17,35,54,.12); border-radius: 50%; background: #112336; color: #fff; font-size: 21px; line-height: 1; }
.ai-study-floating-panel .ai-study-toggle:hover,
.ai-study-floating-panel .ai-study-toggle:focus-visible { background: #f15b3a; transform: rotate(8deg); }
.ai-study-floating-panel .ai-study-body { padding: 12px 14px 14px; }
.ai-study-modes { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-bottom: 11px; }
.ai-study-mode, .ai-study-select { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 7px 11px; border: 1px solid rgba(17,35,54,.14); border-radius: 999px; background: #fff; color: #112336; font: inherit; font-size: .73rem; font-weight: 850; text-decoration: none; cursor: pointer; transition: transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease; }
.ai-study-mode.is-active, .ai-study-mode:hover, .ai-study-mode:focus-visible { border-color: #f15b3a; background: #fff0e8; color: #9b3d2a; box-shadow: 0 4px 10px rgba(242,100,60,.14); }
.ai-study-select { margin-left: auto; border-color: rgba(129,87,222,.35); background: #f3efff; color: #5b3fa5; }
.ai-study-select:hover, .ai-study-select:focus-visible { background: #e7ddff; border-color: #8157de; transform: translateY(-1px); }
.ai-study-floating-panel .ai-study-presets { gap: 6px; margin-bottom: 10px; }
.ai-study-floating-panel .ai-study-preset { min-height: 36px; padding: 7px 10px; border-radius: 999px; transition: transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease; }
.ai-study-floating-panel .ai-study-preset:hover, .ai-study-floating-panel .ai-study-preset:focus-visible { transform: translateY(-1px); background: #fff0e8; box-shadow: 0 5px 12px rgba(242,100,60,.12); }
.ai-study-floating-panel .ai-study-submit { min-height: 42px; padding-inline: 14px; }
.ai-study-floating-panel .ai-study-submit span { font-size: 16px; }
.ai-study-floating-panel .ai-study-output { max-height: 260px; margin-top: 11px; }
.ai-study-floating-panel button:disabled { transform: none; filter: grayscale(.25); }

/* Consistent, tactile button treatment across desktop, mobile, and app webviews. */
.button, .home-secondary-link, .nav-toggle, .cart-link, .account-link, .ai-study-preset, .ai-study-toggle, .ai-study-mode, .ai-study-select { transition: transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease, filter .18s ease; }
.button { min-height: 44px; border: 1px solid transparent; border-radius: 12px; box-shadow: 0 5px 13px rgba(23,33,43,.10); font-weight: 850; }
.button:hover, .button:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(23,33,43,.16); filter: saturate(1.08); }
.button:active { transform: translateY(0) scale(.97); box-shadow: 0 3px 8px rgba(23,33,43,.14); }
.button-orange { background: linear-gradient(135deg, #ff7048, #f04d55); border-color: #f2643c; color: #fff; }
.button-dark { background: linear-gradient(135deg, #172b3d, #0b4433); border-color: #172b3d; color: #fff; }
.button-light { background: linear-gradient(135deg, #fffdf8, #f3ecff); border-color: rgba(129,87,222,.22); color: #17313a; }
.home-secondary-link { min-height: 42px; }
.nav-toggle, .cart-link, .account-link { box-shadow: 0 4px 12px rgba(0,0,0,.12); }
@keyframes ai-float-pulse { 0%,100% { box-shadow: 0 10px 24px rgba(110,45,105,.28), 0 0 0 4px rgba(242,100,60,.10); } 50% { box-shadow: 0 13px 28px rgba(110,45,105,.34), 0 0 0 7px rgba(242,100,60,.05); } }
@keyframes ai-panel-in { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
body.has-continue-study .ai-floating-launcher { bottom: max(82px, calc(82px + env(safe-area-inset-bottom))); }
body.has-continue-study .ai-study-floating-panel { bottom: max(142px, calc(142px + env(safe-area-inset-bottom))); }
@media (max-width: 640px) {
  .ai-floating-launcher { right: 12px; min-width: 74px; min-height: 42px; padding: 7px 11px; font-size: 11px; }
  .ai-study-floating-panel { right: 12px; bottom: 70px; width: calc(100vw - 24px); max-height: 74vh; border-radius: 16px; }
  .ai-study-floating-panel .ai-study-body { padding: 10px 11px 12px; }
  .ai-study-select { margin-left: 0; }
  body.has-continue-study .ai-floating-launcher { bottom: max(132px, calc(132px + env(safe-area-inset-bottom))); }
  body.has-continue-study .ai-study-floating-panel { bottom: max(192px, calc(192px + env(safe-area-inset-bottom))); }
}
@media (prefers-reduced-motion: reduce) {
  .ai-floating-launcher, .ai-study-floating-panel { animation: none; }
  .button, .home-secondary-link, .nav-toggle, .cart-link, .account-link, .ai-study-preset, .ai-study-toggle, .ai-study-mode, .ai-study-select { transition: none; }
}

/* Mobile website shell: keep navigation in the page menu instead of a fixed bottom bar. */
.mobile-bottom-nav { display: none !important; }
.ai-home-callout { display: none !important; }
