:root{--paper:#f4f0e7;--surface:#fffdf8;--ink:#172536;--charcoal:#2b2d2f;--muted:#687078;--rule:#d7d0c4;--brick:#9f3e32;--gold:#a47b39;--forest:#315a49;--navy:#0d2233}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--charcoal);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55}
.skip-link{position:fixed;left:16px;top:-80px;z-index:20;background:#fff;color:#000;padding:10px 14px}.skip-link:focus{top:16px}
.course-header{position:sticky;top:0;z-index:30;height:74px;border-top:4px solid var(--navy);border-bottom:1px solid var(--rule);background:var(--surface);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1500px)/2))}
.portal-brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}.portal-brand span{display:grid;place-items:center;width:38px;height:38px;background:#08102b;color:#c7a259}.portal-brand span svg{width:20px;height:22px}.portal-brand strong{font-size:20px}.portal-brand small{padding-left:12px;border-left:1px solid var(--rule);text-transform:uppercase;letter-spacing:.13em;font-size:9px;color:var(--muted)}
.course-header nav{display:flex;align-items:center;gap:18px}.course-header nav a,.course-header nav button{border:0;background:none;color:var(--ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer;text-decoration:none}.course-header nav button{border:1px solid var(--brick);padding:8px 12px;color:var(--brick)}
.review-banner{background:#f1e4c9;border-bottom:1px solid #c9ad75;color:#4b3b20;padding:10px max(24px,calc((100vw - 1500px)/2));font-weight:750}
.course-message{max-width:900px;margin:70px auto;padding:26px;border:1px solid var(--rule);background:var(--surface);font-family:Georgia,serif;font-size:24px}.course-message.error{border-color:#b9635b;color:#6b251e}
.course-shell{display:block;max-width:1280px;margin:0 auto;padding:24px 38px 96px}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:850;color:var(--brick);margin:0 0 10px}
.course-context{position:sticky;top:74px;z-index:18;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;margin:0 0 42px;padding:15px 18px 17px;border-top:4px solid var(--ink);border-bottom:1px solid var(--rule);background:rgba(255,253,248,.97);box-shadow:0 5px 18px rgba(23,37,54,.06)}
.course-context-copy{min-width:0}.course-context .eyebrow{margin-bottom:3px}.course-context h1{overflow:hidden;margin:0;color:var(--ink);font-family:Georgia,"Times New Roman",serif;font-size:25px;line-height:1.16;text-overflow:ellipsis;white-space:nowrap}.course-context .course-meta,.course-context .progress-copy{display:inline;margin:0 14px 0 0;color:var(--muted);font-size:11px}.course-context .progress-copy{font-weight:700;color:#4f575e}
.course-tools{display:flex;gap:9px;align-items:stretch}.course-tool{min-width:150px;padding:10px 13px;border:1px solid var(--rule);background:var(--surface);color:var(--ink);cursor:pointer;text-align:left}.course-tool span,.course-tool strong{display:block}.course-tool span{margin-bottom:2px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.course-tool strong{font-family:Georgia,"Times New Roman",serif;font-size:15px}.course-tool:hover{border-color:var(--brick);color:var(--brick)}
.course-progress{position:absolute;right:0;bottom:-1px;left:0;height:4px;background:#ddd6ca}.course-progress span{display:block;height:100%;width:0;background:var(--gold)}.progress-copy{font-size:12px;color:var(--muted);margin:8px 0 20px}
.drawer-scrim{position:fixed;inset:0;z-index:50;background:rgba(13,34,51,.48);backdrop-filter:blur(1px)}
.course-drawer{position:fixed;z-index:60;top:0;bottom:0;width:min(390px,92vw);max-height:none;overflow:auto;background:var(--surface);box-shadow:0 0 34px rgba(13,34,51,.24)}
.assignment-rail{left:0;padding:28px 24px 36px;border-right:1px solid var(--rule)}
.status-panel{right:0;padding:28px 24px 36px;border-top:0;border-bottom:0;border-left:1px solid var(--rule)}
.drawer-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px;padding-bottom:14px;border-bottom:4px solid var(--ink)}.drawer-heading .eyebrow{margin-bottom:3px}.drawer-heading h2{margin:0!important;color:var(--ink);font-family:Georgia,"Times New Roman",serif;font-size:29px!important;line-height:1.1}.drawer-close{border:1px solid var(--rule);background:transparent;color:var(--ink);padding:7px 9px;font:inherit;font-size:11px;font-weight:800;cursor:pointer}.drawer-close:hover{border-color:var(--brick);color:var(--brick)}.drawer-course-title{margin:0 0 18px;color:var(--ink);font-family:Georgia,"Times New Roman",serif;font-size:20px;font-weight:700}
.assignment-rail ol{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}.assignment-rail li{border-bottom:1px solid var(--rule)}.assignment-link{display:grid;grid-template-columns:26px 1fr;gap:9px;width:100%;padding:12px 5px;border:0;background:none;text-align:left;color:var(--ink);cursor:pointer}.assignment-link:hover:not(:disabled),.assignment-link[aria-current=true]{background:#ebe4d7}.assignment-link:disabled{cursor:not-allowed;color:#989694}.assignment-link .number{font-family:Georgia,serif;color:var(--brick)}.assignment-link strong{display:block;font-size:12px;line-height:1.35}.assignment-link small{display:block;color:var(--muted);margin-top:3px;font-size:10px}.assignment-link .state{font-weight:800}.back-link{display:inline-block;margin-top:20px;color:var(--brick);font-weight:750;text-decoration:none;font-size:12px}
.lesson-column{width:100%;max-width:940px;min-width:0;margin:0 auto}.lesson-column:focus{outline:none}.lesson-folio{border-top:5px solid var(--ink);padding:34px 0 27px;border-bottom:1px solid var(--rule)}.lesson-folio h2{max-width:900px;margin:0;color:var(--ink);font-family:Georgia,"Times New Roman",serif;font-size:48px;line-height:1.07;letter-spacing:-.025em}.lesson-folio .deck{font-family:Georgia,serif;color:#555;font-size:18px}
.california-note{display:grid;grid-template-columns:160px 1fr;gap:24px;border-left:4px solid var(--gold);background:#ece5d8;padding:18px 20px;margin:24px 0}.california-note strong{color:var(--ink)}.california-note span{font-size:14px}
.textbook-body{color:#2d3031;font-family:Georgia,"Times New Roman",serif;font-size:19px;line-height:1.78}.textbook-body h1{display:none}.textbook-body h2{margin:58px 0 20px;padding-top:21px;border-top:1px solid var(--rule);color:var(--ink);font-size:32px;line-height:1.2}.textbook-body h3{margin:30px 0 11px;color:var(--ink);font-size:23px;line-height:1.3}.textbook-body p{margin:0 0 22px}.textbook-body h4{margin:26px 0 9px;color:var(--ink);font-size:19px;line-height:1.35}.textbook-body h5,.textbook-body h6{margin:22px 0 8px;color:var(--ink);font-family:Inter,ui-sans-serif,sans-serif;font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.textbook-body ul,.textbook-body ol{margin:0 0 26px;padding-left:31px}.textbook-body li{margin-bottom:9px}.textbook-body ol{list-style:decimal}.textbook-body ol li::marker{color:var(--brick);font-weight:700}
.textbook-body blockquote{margin:26px 0;padding:4px 0 4px 24px;border-left:3px solid var(--gold);color:#3a3d3f;font-style:italic}.textbook-body blockquote p{margin:0}
.textbook-body hr{height:0;margin:38px auto;border:0;border-top:1px solid var(--rule);width:120px}
.textbook-body code{padding:1px 5px;background:#ece5d8;border:1px solid var(--rule);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82em;font-style:normal}
.textbook-body strong{color:#172536}.lesson-metadata{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:20px 0 34px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);font-family:Inter,ui-sans-serif,sans-serif}.lesson-metadata div{padding:14px 16px;border-right:1px solid var(--rule)}.lesson-metadata div:last-child{border-right:0}.lesson-metadata dt{margin-bottom:5px;color:var(--muted);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.1em}.lesson-metadata dd{margin:0;color:var(--ink);font-size:12px;font-weight:700;line-height:1.45}.table-wrap{max-width:100%;overflow-x:auto;margin:22px 0 34px}.textbook-body table{width:100%;min-width:650px;border-collapse:collapse;font-family:Inter,ui-sans-serif,sans-serif;font-size:13px}.textbook-body th,.textbook-body td{padding:11px;border-bottom:1px solid var(--rule);text-align:left}.textbook-body th{background:#ece5d8;color:var(--ink)}.section-marker{scroll-margin-top:190px}.section-marker[data-recorded=true]::after{content:"Section viewed";display:inline-block;margin-left:12px;font-family:Inter,sans-serif;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--forest);vertical-align:middle}
.assessment-section{border-top:4px solid var(--ink);padding:30px 0 24px;margin-top:56px}.assessment-section h3{font-family:Georgia,serif;font-size:30px;color:var(--ink);margin:0 0 14px}.assessment-standard{margin:0 0 20px;font-family:Inter,ui-sans-serif,sans-serif;font-size:12px;font-weight:750;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.assessment-section fieldset{border:0;margin:18px 0;padding:0 0 18px;border-bottom:1px solid var(--rule)}.assessment-section fieldset:last-of-type{border-bottom:0}
.item-number{display:block;margin-bottom:7px;font-family:Inter,ui-sans-serif,sans-serif;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.12em;color:var(--brick)}
.item-result{margin:12px 0 0;padding:10px 13px;border-left:3px solid var(--rule);font-size:14px}.item-result.correct{border-left-color:var(--forest);background:#eef2ee}.item-result.incorrect{border-left-color:var(--brick);background:#f6eae8}.assessment-section legend{font-weight:750;margin-bottom:16px}.choice{display:flex;gap:10px;border-top:1px solid var(--rule);padding:12px 2px;font-size:14px}.choice input{margin-top:4px}.assessment-section button,.lesson-pagination button,.secondary-action{border:0;background:var(--brick);color:#fff;padding:12px 16px;font-weight:800;cursor:pointer}.assessment-section button:disabled,.lesson-pagination button:disabled{opacity:.45;cursor:not-allowed}.assessment-result{margin-top:14px;padding:12px;border-left:3px solid var(--gold);background:#eee7db}.remediation{background:#f3eadc;padding:26px}.remediation>button{margin-bottom:18px}
.lesson-pagination{display:flex;justify-content:space-between;border-top:1px solid var(--rule);margin-top:45px;padding-top:24px}.lesson-pagination button{background:var(--ink)}
.status-panel h2{font-family:Georgia,serif;color:var(--ink);font-size:26px;margin:0 0 16px}.timer-readout{padding:16px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.timer-readout strong{font-family:Georgia,serif;font-size:34px;color:var(--ink);display:block}.timer-readout span,.timer-state{font-size:11px;color:var(--muted)}.requirements{margin:18px 0}.requirements div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--rule);font-size:12px}.requirements dt{color:var(--muted)}.requirements dd{margin:0;text-align:right;font-weight:800;color:var(--ink)}.requirements dd.complete{color:var(--forest)}.requirements dd.pending{color:#8b4a21}.unlock-note{font-family:Georgia,serif;font-size:14px}.calendar-box{border:1px solid var(--rule);padding:13px;margin:16px 0}.calendar-box span,.calendar-box small{display:block;font-size:10px;color:var(--muted)}.calendar-box strong{display:block;font-family:Georgia,serif;color:var(--ink);margin:5px 0}.secondary-action{width:100%;background:transparent;border:1px solid var(--brick);color:var(--brick)}.action-message{font-size:12px;min-height:20px}.version-lock{font-size:10px;color:var(--muted);border-top:1px solid var(--rule);padding-top:12px}
:focus-visible{outline:3px solid #d6a342;outline-offset:3px}
@media(max-width:900px){.course-shell{padding:20px 24px 86px}.course-context{grid-template-columns:minmax(0,1fr);gap:11px}.course-tools{position:absolute;right:14px;bottom:13px}.course-context-copy{padding-right:335px}.course-context .course-meta,.course-context .progress-copy{display:block}.course-context .progress-copy{margin-top:2px}.lesson-column{max-width:820px}}
@media(max-width:760px){.course-header{height:auto;min-height:66px;padding:11px 16px}.portal-brand small{display:none}.course-header nav a{display:none}.course-shell{padding:12px 16px 78px}.course-context{top:66px;margin:0 -16px 28px;padding:12px 16px 16px;border-top-width:3px}.course-context-copy{padding-right:0}.course-context h1{font-size:19px}.course-context .course-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-context .progress-copy{display:none}.course-tools{position:static;display:grid;grid-template-columns:1fr 1fr}.course-tool{min-width:0;padding:8px 10px}.course-tool span{font-size:9px}.course-tool strong{font-size:13px}.course-drawer{width:100vw}.assignment-rail,.status-panel{padding:22px 18px 34px}.lesson-folio{padding-top:26px}.lesson-folio h2{font-size:36px}.textbook-body{font-size:17.5px;line-height:1.72}.textbook-body h2{font-size:27px}.textbook-body h3{font-size:21px}.lesson-metadata{grid-template-columns:1fr}.lesson-metadata div{border-right:0;border-bottom:1px solid var(--rule)}.lesson-metadata div:last-child{border-bottom:0}.california-note{grid-template-columns:1fr}.lesson-pagination{position:sticky;bottom:0;z-index:4;background:var(--paper);padding:12px 0}.lesson-pagination button{padding:11px 12px;font-size:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.link-action{display:block;text-align:center;text-decoration:none;padding:12px 16px}
.regulatory-notices{margin-top:18px;border-top:1px solid var(--rule);padding-top:14px}
.regulatory-notices h3{margin:0 0 6px;font-family:Inter,ui-sans-serif,sans-serif;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.regulatory-notices p{margin:0 0 12px;font-size:12px;line-height:1.5;color:#4f575e}
.regulatory-notices a{color:var(--brick);font-weight:750}

/* SB 1495 interactive participatory component. Both roles, side by side on a wide screen and
   stacked on a narrow one, so a student can see at a glance that there are two of them and
   which one is still outstanding. */
.participatory{background:#eef1f4;padding:26px}
.participatory-intro{margin:0 0 20px;font-size:15px;line-height:1.55}
#participatoryRoles{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.participatory-role{background:#fff;border:1px solid var(--rule);padding:18px}
.participatory-role h4{font-family:Georgia,serif;font-size:19px;margin:0 0 10px;color:var(--ink)}
.participatory-role.complete{border-left:4px solid var(--forest)}
.participatory-state{margin:0 0 12px;font-size:13px;font-weight:700}
.participatory-state.complete{color:var(--forest)}
.participatory-state.pending{color:var(--muted);font-weight:600}
.participatory-role textarea{width:100%;box-sizing:border-box;font-family:Georgia,serif;font-size:15px;line-height:1.5;padding:12px;border:1px solid var(--rule);resize:vertical}
.participatory-minimum{margin:8px 0 12px;font-size:12px;color:var(--muted)}
.participatory-result{margin:12px 0 0;padding:10px 12px;border-left:3px solid var(--gold);background:#eee7db;font-size:14px}
