/* Shared visual theme. Layout and component behavior live in their own stylesheets. */
:root{--blue:#0964c5;--button:#0964c5;--nav-blue:#0863c4;--blue-hover:#034c9c;--blue-soft:#f0f7ff;--blue-border:#d0e4fa;--ink:#174b82;--muted:#486f98;--panel:#fff;--planner:#fff;font-family:Inter,'Segoe UI',Arial,sans-serif}
body, .teacher-view #main-content{background:#fff}button{color:inherit}h1,h2,h3{color:var(--blue);letter-spacing:-.025em}p{line-height:1.65}input,textarea,select{accent-color:var(--blue)}
.primary-button,.secondary-button,.small-button{border-radius:8px;line-height:1.4;font-weight:600;transition:background .15s,border-color .15s}.primary-button{font-size:14px;padding:10px 16px}.secondary-button{background:white;color:var(--blue);padding:9px 14px}.secondary-button:hover{background:var(--blue-soft);border-color:#7bb7ef}.small-button{font-size:12px;padding:7px 10px}
input:not([type=checkbox]):not([type=range]),textarea,select{border-radius:8px;background:white;line-height:1.5}input::placeholder,textarea::placeholder{color:#6082a7}
.panel,.planner{box-shadow:none;border:1px solid var(--blue-border);border-radius:12px;background:white}.panel{padding:20px}.panel h2{font-size:20px}.portal-dialog{border:1px solid var(--blue-border);border-radius:16px;color:var(--ink)}.portal-dialog>header{padding:18px 22px;background:white;border-bottom:1px solid var(--blue-border)}.dialog-body{padding:24px}.portal-dialog::backdrop{background:#0755a33d;backdrop-filter:blur(3px)}
.sidebar{box-shadow:none;border-right:1px solid #ffffff25}.sidebar-top{min-height:76px}.brand{gap:10px}.brand .brand-symbol{margin-left:14px;width:22px;height:22px}.brand .brand-wordmark{width:166px;height:auto;margin:0}.pin-button{top:29px;right:9px}.menu-toggle{min-height:46px}.menu-children{background:#0759b1}.sidebar-account{background:#075bb6}.account-avatar{background:white;color:var(--blue)}
.course-banner{background-color:white;border-bottom:1px solid var(--blue-border);padding:94px 32px 0;min-height:254px}.course-banner:not(.school-banner){background-image:none!important}.course-banner h1{font-size:36px;line-height:1.2;font-weight:650;text-shadow:none;max-width:850px;margin-bottom:28px}.school-banner{background-position:right center}.school-banner h1{max-width:65%;font-size:34px}.school-wordmark{position:absolute;left:32px;top:20px;display:flex;align-items:center;background:var(--blue);border-radius:8px;padding:10px 13px;height:43px}.school-wordmark img{width:157px;height:auto}.banner-actions{top:20px;right:32px}.logbook-button{background:white;color:var(--blue);border:1px solid var(--blue-border);box-shadow:none;border-radius:8px}.logbook-button:hover,.logbook-button.active{background:var(--blue-soft);box-shadow:none;color:var(--blue)}
.home-tab{display:none}.header-tabs{gap:8px;align-items:stretch}.header-tabs>a{background:transparent;color:var(--muted);box-shadow:none;padding:13px 12px;border-bottom:3px solid transparent;font-size:13px;font-weight:600;line-height:1.3}.header-tabs>a.active{background:transparent;color:var(--blue);border-color:var(--blue)}.header-tabs>a:hover{background:var(--blue-soft);color:var(--blue)}.step-blocks{gap:10px;margin-bottom:20px}.block-title{font-size:11px;margin-bottom:6px}.step-block>div{gap:3px;flex-wrap:wrap}.step-button{box-shadow:none;border:1px solid var(--blue-border);border-radius:5px;min-width:28px;padding:5px;font-size:11px}
.portal-columns{padding:28px 32px;gap:28px}.content-toolbar{gap:7px;margin-bottom:24px}.content-toolbar .small-button{background:white;border:1px solid var(--blue-border);color:var(--blue);font-weight:500}.content-toolbar .small-button:hover{background:var(--blue-soft)}.content-toolbar [data-action="listen"][aria-pressed=true]{color:white;background:var(--blue)}.content-title{font-size:30px;font-weight:650;margin:26px 0}.breadcrumbs{font-style:normal;font-size:12px;margin-bottom:16px}.task-section{background:white;border:1px solid var(--blue-border);border-radius:12px}.task summary{padding:8px 0;line-height:1.6}.course-card{border:1px solid var(--blue-border);background:white;box-shadow:none;border-radius:12px;overflow:hidden}.course-card:hover{border-color:#79b3ee;box-shadow:0 5px 18px #0863c40d}.course-card img{height:120px;object-fit:cover}.course-card h3{font-size:16px;line-height:1.5;margin:16px}
.planner-label{background:white;color:var(--blue);font-size:17px;font-weight:650;padding:0 0 12px}.planner{padding:18px}.planner hr{border-top:1px solid var(--blue-border);margin:18px 0}.period-tabs{gap:4px;border:0;background:var(--blue-soft);border-radius:8px;padding:4px}.period-tabs button{border:0;border-radius:6px;flex:1;color:var(--muted);padding:8px}.period-tabs button[aria-selected=true]{margin:0;background:white;color:var(--blue);box-shadow:0 1px 4px #075cb319}.goal-heading{color:var(--blue);font-size:14px;border-radius:7px}.strategy summary{font-size:14px;padding:12px;background:var(--blue-soft)}.add-goal{margin:8px 0;width:100%;font-size:13px}.week-controls{gap:4px;justify-content:space-between}.week-controls .small-button{padding:5px 7px}.progress{background:var(--blue-soft)}.progress>span{background:#bedfff}.progress>b{color:var(--blue)}
.notebook.panel{background:white;border-color:var(--blue-border);padding:20px}.editor-toolbar{background:var(--blue-soft);box-shadow:none;border-color:var(--blue-border)}.note-editor{border-color:var(--blue-border);padding:14px}.editor-toolbar button{box-shadow:none}.editor-toolbar button[aria-pressed=true]{box-shadow:none}.resources{border:1px solid var(--blue-border);padding:20px}.resources a{margin:12px 0;color:var(--blue);text-underline-offset:4px}.logbook-schedule{background:white;border-color:var(--blue-border)}.schedule-column-heading{background:var(--blue-soft)}.schedule-lesson{color:var(--ink)}
.teacher-topbar{padding:20px 32px}.teacher-brand img{background:var(--blue);border-radius:8px;width:181px;padding:10px 13px}.teacher-brand>span{font-size:14px;color:var(--muted);margin-left:8px}.teacher-heading h1{color:var(--blue)}.teacher-nav a{border-radius:8px}.teacher-form-card,.publish-card,.teacher-empty{box-shadow:none;border-color:var(--blue-border)}.teacher-intro{line-height:1.7}.teacher-task-row{box-shadow:none}.eyebrow{color:var(--blue)}
.auth-layout{background:white}.auth-intro{background:var(--blue);padding:48px clamp(28px,5vw,88px)}.auth-intro h1{color:white}.auth-brand{align-items:flex-start;flex-direction:column;gap:20px}.auth-brand img{width:225px;height:auto}.auth-brand span{font-size:13px;font-weight:500;letter-spacing:.06em;color:#dceeff}.auth-card{box-shadow:none;border:0;padding:38px;max-width:calc(100% - 32px)}.auth-card h2{color:var(--blue)}.auth-submit{padding:14px 18px}.auth-footer{color:white}
.timer-panel{border-color:var(--blue-border);box-shadow:0 10px 35px #0964c51a}.timer-panel header{background:var(--blue-soft)}
@media(max-width:1100px){.school-banner h1{font-size:30px;max-width:70%}.portal-columns{padding:24px 20px;gap:20px}.logbook-columns{grid-template-columns:minmax(0,1fr) 300px}.week-controls{gap:3px}}
@media(max-width:800px){.logbook-columns{grid-template-columns:minmax(0,1fr)}}
@media(max-width:758px){.course-banner{padding:96px 18px 0}.school-wordmark{left:54px;top:16px;height:36px;padding:8px}.school-wordmark img{width:126px}.banner-actions{top:16px;right:14px}.logbook-button{padding:8px;min-height:36px;gap:6px;font-size:11px}.logbook-button>.fa-arrow-right{display:none}.mobile-menu{top:17px;border-radius:7px}.school-banner{background-size:auto 100%;background-position:72% center}.school-banner h1,.course-banner h1{font-size:27px;max-width:100%;background:#ffffffeb;border-radius:8px;padding:6px 0}.header-tabs{gap:0}.header-tabs>a{font-size:12px;padding:12px 8px}.portal-columns{padding:22px 16px}.teacher-topbar{padding:16px}.teacher-brand img{width:155px}.teacher-brand>span{margin:0;font-size:12px}.auth-intro{padding:28px;gap:28px}.auth-brand{gap:12px}.auth-brand img{width:195px}.auth-card{padding:20px;margin:16px 0}.auth-intro h1{font-size:36px}.auth-intro .eyebrow{color:#dceeff}}
@media(max-width:380px){.school-wordmark img{width:104px}.logbook-button{font-size:10px;gap:4px}.teacher-brand{gap:6px}}
@media print{.school-wordmark{display:none}.course-banner{min-height:0;padding:12px}.portal-columns{display:block}}
/* Keep the accessibility contrast option within the blue-and-white palette. */
.high-contrast{--ink:#073b75;--button:#004fa8;--muted:#21588e;--blue-border:#8bb5df}.high-contrast .empty-state{color:#073b75}.task-state.draft{background:var(--blue-soft);color:var(--muted)}
@media(max-width:758px){.school-banner .banner-navigation{background:white;margin-left:-18px;margin-right:-18px;padding:0 18px}.school-banner h1{background:white}.sidebar .mobile-close{top:24px}}
.sidebar:is(.open,.pinned,:focus-within) .brand-symbol{display:none}.sidebar:is(.open,.pinned,:focus-within) .brand-wordmark{display:block;margin-left:16px}.brand-wordmark{display:none}
:root{--ink:#1255a0;--muted:#2964a4;--blue-soft:#edf6ff;--blue-border:#c2dcfa;color-scheme:light}
button,input,select,textarea,option{color:var(--ink)}.primary-button,.small-button{color:white}.text-button{color:var(--blue);background:transparent}.danger-button{background:var(--blue);color:white}.danger-button:hover{background:var(--blue-hover)}.form-error{background:white;color:#064790;border:2px solid #0964c5}.course-delete-zone{border-color:var(--blue-border)}.schedule-lesson small,.schedule-date,.schedule-time-label,.person-copy small{color:var(--muted)}.schedule-empty,.upload-control,.course-image-editor,.publish-note{background:white}.task-state.draft{background:white;color:var(--blue);border:1px solid var(--blue-border)}.source-document table,.source-document th,.source-document td{border-color:var(--blue-border);color:var(--ink);background:white}.source-document a{color:var(--blue)}
.account-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 24px}.account-overview>div{border:1px solid var(--blue-border);border-radius:12px;padding:20px;background:white;display:flex;flex-direction:column;gap:8px}.account-overview strong{font-size:30px;color:var(--blue)}.account-overview span{font-size:12px;color:var(--muted)}.person-school{font-weight:600}.person-row{align-items:start}.person-copy{min-width:0;overflow-wrap:anywhere}.person-copy .edit-account{padding:8px 0;text-decoration:underline;text-underline-offset:3px}#people-filter{margin:10px 0 16px;width:100%}#invite-school{width:100%;margin-bottom:18px}@media(max-width:650px){.account-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.account-overview>div{padding:16px}}
html,:root{color-scheme:only light;background:#fff}body,main{background-color:#fff;color:var(--ink)}
.course-outline{border:1px solid var(--blue-border);border-radius:12px;background:#fff;padding:16px 20px;margin-bottom:24px}.course-outline>summary{font-size:18px;font-weight:650;color:var(--blue);cursor:pointer}.course-outline summary span{font-size:12px;font-weight:400;margin-left:10px;color:var(--muted)}.course-outline>p{margin:16px 0;font-size:13px}.outline-groups{display:grid;gap:8px}.outline-group{border-top:1px solid var(--blue-border);padding:12px 0}.outline-group summary{color:var(--blue);font-weight:600;line-height:1.6}.outline-group ul{list-style:none;padding:0!important;margin:10px 0}.outline-group li a{display:block;padding:9px 12px;border-radius:6px;color:var(--blue);text-decoration:none}.outline-group li a:hover{background:var(--blue-soft);text-decoration:underline}.outline-step-link{display:inline-block;margin:12px 0;color:var(--blue);font-weight:600}.outline-group>p{margin:12px 0 0;font-size:13px}
.markdown-toolbar{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.markdown-toolbar button{padding:6px 9px;font-size:12px}.task-body h2,.task-body h3,.task-body h4{margin:20px 0 10px}.task-body pre{white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid var(--blue-border);padding:14px;border-radius:8px;background:white;color:var(--blue)}.task-body blockquote{border-left:3px solid var(--blue);margin:14px 0;padding-left:16px}.submission-setting{display:flex!important;align-items:center;gap:10px;margin-top:18px}.submission-items{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.submission-record{padding:16px 0;border-bottom:1px solid var(--blue-border)}.submission-record time{display:block;font-size:12px;margin-top:6px;color:var(--muted)}.submission-drop{display:flex;flex-direction:column;gap:8px;text-align:center;padding:28px 16px;border:2px dashed var(--blue-border);border-radius:10px;color:var(--blue);cursor:pointer;background:white}.submission-drop.drag-over{border-color:var(--blue);background:var(--blue-soft)}.submission-file-list{padding-left:20px}.submission-file-list li{padding:7px 0;overflow-wrap:anywhere}.document-dialog{width:1000px}.submissions-dialog{width:760px}.document-viewer iframe{width:100%;height:65vh;border:1px solid var(--blue-border);background:white}.document-viewer img{display:block;max-width:100%;max-height:65vh;margin:auto}.document-text{white-space:pre-wrap;overflow-wrap:anywhere;max-height:65vh;overflow:auto;color:var(--ink)}.document-viewer{margin-bottom:18px}.school-summary{margin:20px 0}.admin-school-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--blue-border)}.admin-school-row strong{margin-right:auto}.school-lesson-row{border-top:1px solid var(--blue-border);padding:16px 0}.school-lesson-row p{margin:6px 0}.school-admin-form fieldset{border:1px solid var(--blue-border);border-radius:8px;margin:16px 0;color:var(--ink)}.school-admin-form fieldset label{margin:8px 0}.schedule-gap-reminder{border:1px solid var(--blue-border);border-left:3px solid var(--blue);border-radius:8px;padding:14px;margin-bottom:20px}.schedule-gap-reminder summary{color:var(--blue);font-weight:600}.schedule-gap-reminder button{margin:12px 8px 0 0}.teacher-nav{flex-wrap:wrap}.person-copy .delete-account{margin-left:12px;color:var(--blue)}
.school-lesson-row>.text-button{padding:8px 12px 8px 0;margin-right:10px}.school-contact{margin-top:28px;padding-top:20px;border-top:1px solid var(--blue-border)}.school-contact p{margin:6px 0}.document-text{font-family:inherit;line-height:1.7}.submission-items button{max-width:100%;overflow-wrap:anywhere}
/* School records and focused parent portal */
.campus-page{max-width:1100px;margin:0 auto;padding:32px 24px;background:#fff;color:var(--ink)}
.campus-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 24px}.campus-nav a{padding:10px 16px;border:1px solid var(--blue-border);border-radius:8px;text-decoration:none;background:#fff;color:var(--blue)}.campus-nav a:hover,.campus-nav a.active{background:var(--blue);color:#fff}
.record-card{border:1px solid var(--blue-border);border-radius:12px;padding:18px;margin:14px 0;background:#fff}.record-card header{display:flex;align-items:center;justify-content:space-between;gap:16px}.record-card header strong{font-size:18px}.record-card small{display:block;margin-top:5px}.record-actions{display:flex;gap:10px;flex-wrap:wrap}.plain-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}.assessment-meta{font-size:12px;color:var(--muted);margin-top:10px}.grade-chip{min-width:42px;text-align:center;border:1px solid var(--blue-border);border-radius:8px;padding:10px;font-weight:bold;background:#fff;color:var(--blue)}.record-filters{display:flex;gap:18px;flex-wrap:wrap}.record-filters label{display:flex;flex-direction:column;gap:8px;flex:1}.eds-compact{padding:12px 0}.eds-compact h2{font-size:20px}.eds-compact .record-card{padding:12px}.eds-compact .instruction-heading{gap:8px;flex-wrap:wrap}
.message-row{display:grid;grid-template-columns:2fr 1fr auto;gap:12px;align-items:center;text-align:left;width:100%;padding:18px;border:1px solid var(--blue-border);border-radius:8px;background:#fff;color:var(--ink);margin:10px 0}.message-row.unread{border-left:5px solid var(--blue)}.message-row:hover{background:var(--blue-soft)}
.parent-view #main-content{margin-left:0}.parent-portal{background:#fff;min-height:100vh}.parent-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 28px;border-bottom:1px solid var(--blue-border);background:#fff}.parent-header>div{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.parent-brand{display:flex;align-items:center;gap:14px;color:var(--blue);font-size:18px;text-decoration:none}.parent-brand img{width:165px;background:var(--blue);padding:12px;border-radius:8px}.parent-workspace{max-width:1100px;margin:0 auto;padding:28px 24px}.parent-workspace>label{display:block;margin-bottom:8px}.parent-workspace>select{margin-bottom:24px;min-width:260px}.parent-workspace .campus-page{padding:0}
@media(max-width:700px){.campus-page{padding:22px 14px}.message-row{grid-template-columns:1fr}.parent-header{align-items:flex-start;flex-direction:column;padding:18px}.parent-header>div{gap:10px}.parent-workspace{padding:20px 14px}.parent-workspace>select{min-width:0;width:100%}.record-filters{flex-direction:column}.record-card header{align-items:flex-start}.auth-card .campus-nav a{flex:1;text-align:center}}
