:root {
  --ink: #171716;
  --muted: #6d6d67;
  --line: #d8d8d0;
  --paper: #f7f7f3;
  --white: #ffffff;
  --mint: #78dcc0;
  --mint-soft: #e7f8f2;
  --coral: #ff756d;
  --yellow: #f5ce63;
  --sidebar: #181817;
}

.consent-field { display: flex; gap: 10px; align-items: flex-start; color: var(--muted); font-size: 12px; line-height: 1.5; }
.consent-field input { margin-top: 3px; }
.consent-field a { color: var(--ink); font-weight: 700; }
.legal-body { min-height: 100vh; background: #f7f7f3; color: var(--ink); }
.legal-header, .legal-footer { display: flex; width: min(100% - 40px, 1120px); margin: 0 auto; align-items: center; justify-content: space-between; }
.legal-header { min-height: 84px; border-bottom: 1px solid var(--line); }
.legal-header nav { display: flex; gap: 22px; }
.legal-header nav a, .legal-footer { color: var(--muted); font-size: 12px; font-weight: 700; }
.legal-main { width: min(100% - 40px, 860px); margin: 0 auto; padding: 72px 0 96px; }
.legal-main h1 { max-width: 780px; margin: 14px 0 22px; font-family: Georgia, serif; font-size: 54px; font-weight: 500; line-height: 1.02; }
.legal-lead { max-width: 720px; color: var(--muted); font-size: 19px; line-height: 1.55; }
.legal-main section { padding: 30px 0; border-top: 1px solid var(--line); }
.legal-main section:first-of-type { margin-top: 54px; }
.legal-main h2 { margin: 0 0 10px; font-size: 20px; }
.legal-main section p { margin: 0; color: #555550; line-height: 1.75; }
.legal-main a { color: inherit; font-weight: 700; }
.legal-footer { min-height: 72px; border-top: 1px solid var(--line); }

* { box-sizing: border-box; }
html { background: var(--paper); color: var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; letter-spacing: 0; }
body { margin: 0; min-width: 320px; }
button, input, select { font: inherit; letter-spacing: 0; }
button, select { cursor: pointer; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 244px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 24px 18px; background: var(--sidebar); color: #fff; }
.brand { display: flex; align-items: center; gap: 12px; padding: 0 8px 24px; color: #fff; font-size: 21px; font-weight: 800; text-decoration: none; }
.brand-mark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 6px; background: var(--mint); color: var(--ink); font-size: 17px; }
.mobile-nav-toggle { display: none; }
.primary-nav { display: grid; gap: 4px; }
.primary-nav p { margin: 24px 12px 8px; color: #8d8d86; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.primary-nav a { display: flex; align-items: center; gap: 11px; min-height: 42px; padding: 0 12px; border-radius: 6px; color: #c7c7c1; font-size: 14px; font-weight: 650; text-decoration: none; }
.primary-nav a:hover { color: #fff; background: #292927; }
.primary-nav a.active { background: var(--mint); color: var(--ink); }
.nav-dot { width: 8px; height: 8px; border: 2px solid currentColor; border-radius: 50%; }
.workspace-switcher { margin-top: auto; display: grid; gap: 4px; padding: 15px; border: 1px solid #383835; border-radius: 6px; }
.workspace-switcher span, .workspace-switcher small { color: #92928c; font-size: 11px; }
.workspace-switcher strong { font-size: 13px; }
.workspace-switcher form { margin: 0; }
.workspace-switcher select { width: 100%; min-height: 32px; border: 1px solid #484844; border-radius: 4px; background: #242423; color: white; font-size: 12px; }
.logout-button { margin-top: 7px; padding: 0; border: 0; background: transparent; color: #aaa9a2; font-size: 11px; text-decoration: underline; }

.main { min-width: 0; }
.topbar { min-height: 100px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 18px clamp(24px, 4vw, 58px); border-bottom: 1px solid var(--line); background: rgba(247, 247, 243, .96); }
.breadcrumb { color: var(--muted); font-size: 12px; font-weight: 700; }
.topbar h1 { margin: 5px 0 0; font-size: clamp(24px, 3vw, 36px); line-height: 1; }
.environment { padding: 7px 9px; border: 1px solid var(--ink); border-radius: 4px; font-size: 10px; font-weight: 850; }
.flash { margin: 20px clamp(24px, 4vw, 58px) 0; padding: 13px 15px; border: 1px solid; border-radius: 5px; font-size: 14px; font-weight: 700; }
.flash.success { border-color: #2d8169; background: var(--mint-soft); }
.flash.error { border-color: #c74038; background: #fff0ef; }

.policy-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; align-items: start; border-bottom: 1px solid var(--line); }
.policy-main { padding: 40px clamp(24px, 4vw, 58px) 64px; }
.intro-row { display: flex; align-items: end; justify-content: space-between; gap: 32px; padding-bottom: 38px; }
.eyebrow { color: var(--coral); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.eyebrow.mint { color: var(--mint); }
.intro-row h2, .impact-panel h2, .history-heading h2 { margin: 8px 0 0; max-width: 680px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(32px, 4vw, 54px); font-weight: 500; line-height: 1.02; }
.status-block { flex: 0 0 auto; display: grid; gap: 7px; text-align: right; }
.status-block span { color: var(--muted); font-size: 11px; }
.status-block strong { font-size: 13px; }
.status-block i { display: inline-block; width: 8px; height: 8px; margin-right: 5px; border-radius: 50%; background: var(--mint); }

.section-block { padding: 30px 0 36px; border-top: 1px solid var(--line); }
.section-heading { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 12px; margin-bottom: 22px; }
.step { color: var(--coral); font-family: Georgia, serif; font-size: 20px; }
.section-heading h3 { margin: 0; font-size: 18px; }
.section-heading p { margin: 5px 0 0; color: var(--muted); font-size: 13px; }
.template-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-left: 50px; }
.template-option { position: relative; min-height: 112px; display: grid; grid-template-columns: 22px 1fr; grid-template-rows: auto auto; gap: 5px 10px; padding: 18px; border: 1px solid var(--line); border-radius: 6px; background: var(--white); color: var(--ink); text-align: left; }
.template-option:hover { border-color: #8f8f88; }
.template-option.selected { border: 2px solid var(--ink); background: var(--mint-soft); padding: 17px; }
.radio-mark { grid-row: 1 / 3; width: 18px; height: 18px; border: 1.5px solid var(--ink); border-radius: 50%; }
.template-option.selected .radio-mark { box-shadow: inset 0 0 0 4px var(--mint-soft); background: var(--ink); }
.template-option strong { font-size: 15px; }
.template-option small { color: var(--muted); font-size: 12px; line-height: 1.4; }

.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 16px; margin-left: 50px; }
.field { display: grid; gap: 8px; min-width: 0; }
.field > span, .toggle-field > span > strong { font-size: 12px; font-weight: 800; }
.field input, .field select { width: 100%; min-height: 44px; padding: 0 12px; border: 1px solid #bfbfb8; border-radius: 5px; background: var(--white); color: var(--ink); }
.wide-field { margin-left: 50px; max-width: 560px; }
.number-input { position: relative; }
.number-input input { padding-right: 82px; }
.number-input em { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); color: var(--muted); font-size: 11px; font-style: normal; }
.scope-note { margin: 10px 0 0 50px; color: var(--muted); font-size: 12px; }
.toggle-field { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 10px 12px; border: 1px solid #bfbfb8; border-radius: 5px; background: var(--white); }
.toggle-field > span { display: grid; gap: 3px; }
.toggle-field small { color: var(--muted); font-size: 11px; line-height: 1.3; }
.toggle-field input { appearance: none; width: 40px; height: 22px; flex: 0 0 auto; margin: 0; border-radius: 999px; background: #b8b8b1; position: relative; }
.toggle-field input::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: white; transition: transform .18s ease; }
.toggle-field input:checked { background: var(--ink); }
.toggle-field input:checked::after { transform: translateX(18px); }
.field-disabled { opacity: .38; }
.activation-block { padding-bottom: 0; }
.form-actions { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 24px 0 0 50px; }
.form-actions > span { color: var(--muted); font-size: 11px; }
.primary-button, .activate-button { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 24px; padding: 0 18px; border: 0; border-radius: 5px; background: var(--ink); color: white; font-weight: 800; }
.primary-button:hover { background: #353532; }

.impact-panel { position: sticky; top: 0; min-height: 100vh; padding: 42px 30px; background: var(--ink); color: white; }
.impact-panel h2 { margin-top: 14px; font-size: 38px; }
.impact-list { margin-top: 34px; border-top: 1px solid #464642; }
.impact-list article { display: grid; grid-template-columns: 32px 1fr; gap: 12px; padding: 19px 0; border-bottom: 1px solid #464642; }
.impact-list article > span { color: var(--coral); font-family: Georgia, serif; }
.impact-list article div { display: grid; gap: 7px; }
.impact-list strong { font-size: 13px; }
.impact-list p, .impact-list b { margin: 0; font-size: 12px; line-height: 1.45; }
.impact-list p { color: #aaa9a2; }
.impact-list b { color: var(--mint); font-weight: 650; }
.change-count, .current-summary div { display: flex; justify-content: space-between; gap: 16px; padding: 15px 0; border-bottom: 1px solid #464642; font-size: 12px; }
.change-count { margin-top: 22px; }
.activate-button { width: 100%; margin-top: 22px; background: var(--mint); color: var(--ink); }
.activate-button:hover { background: #9be8d2; }
.empty-impact { min-height: 260px; display: grid; align-content: center; gap: 18px; margin-top: 34px; border-top: 1px solid #464642; border-bottom: 1px solid #464642; }
.preview-glyph { color: var(--yellow); font-family: Georgia, serif; font-size: 72px; line-height: 1; }
.empty-impact p { max-width: 260px; margin: 0; color: #aaa9a2; font-size: 14px; line-height: 1.55; }
.current-summary { margin: 22px 0 0; }
.current-summary dt { color: #aaa9a2; }
.current-summary dd { margin: 0; font-weight: 750; }

.history-section { padding: 46px clamp(24px, 4vw, 58px) 70px; }
.history-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.history-heading h2 { font-size: 38px; }
.history-heading > span { color: var(--muted); font-size: 12px; }
.history-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 6px; background: white; }
table { width: 100%; border-collapse: collapse; font-size: 12px; }
th, td { padding: 14px 16px; border-bottom: 1px solid var(--line); text-align: left; white-space: nowrap; }
th { color: var(--muted); font-size: 10px; text-transform: uppercase; }
tbody tr:last-child td { border-bottom: 0; }
.status-pill { padding: 4px 7px; border-radius: 4px; background: #ecece7; font-size: 10px; font-weight: 850; text-transform: uppercase; }
.status-pill.active { background: var(--mint-soft); color: #17664f; }
.status-pill.scheduled { background: #fff4ce; color: #7b5a00; }

.control-center { padding: 42px clamp(24px, 4vw, 58px) 70px; }
.control-intro { display: flex; align-items: end; justify-content: space-between; gap: 32px; padding-bottom: 30px; border-bottom: 1px solid var(--ink); }
.control-intro h2 { max-width: 720px; margin: 8px 0 12px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(36px, 5vw, 64px); font-weight: 500; line-height: 1; }
.control-intro p { max-width: 680px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.environment-key { display: flex; gap: 16px; padding-bottom: 4px; white-space: nowrap; }
.environment-key span { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.environment-key i { width: 8px; height: 8px; border-radius: 50%; background: var(--line); }
.environment-key i.live { background: #23a77e; }
.environment-key i.local { background: #efbb32; }
.environment-key i.planned { background: #8b8b85; }
.link-groups { display: grid; grid-template-columns: 1fr 1fr; border-left: 1px solid var(--line); }
.link-group { min-width: 0; padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.link-group.featured { background: var(--mint-soft); }
.link-group > header { display: grid; grid-template-columns: 32px 1fr; gap: 12px; margin-bottom: 20px; }
.link-group > header > span { color: var(--coral); font-family: Georgia, serif; font-size: 20px; }
.link-group h3 { margin: 0 0 4px; font-size: 17px; }
.link-group header p { margin: 0; color: var(--muted); font-size: 10px; }
.link-list { display: grid; gap: 8px; }
.directory-link { min-width: 0; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 13px; padding: 15px; border: 1px solid var(--line); border-radius: 6px; background: var(--paper); color: var(--ink); text-decoration: none; transition: border-color .15s ease, transform .15s ease, background .15s ease; }
.directory-link:hover { transform: translateY(-1px); border-color: var(--ink); background: white; }
.directory-link > span:nth-child(2), .directory-link > span:first-child:not(.link-icon) { min-width: 0; display: grid; gap: 4px; }
.directory-link strong { font-size: 12px; }
.directory-link small { color: var(--muted); font-size: 9px; line-height: 1.4; }
.directory-link code { overflow: hidden; color: #23745e; font-size: 8px; text-overflow: ellipsis; }
.link-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 5px; background: var(--ink); color: var(--mint); font-size: 11px; font-weight: 900; }
.link-arrow { font-size: 16px; }
.environment-badge { padding: 5px 7px; border: 1px solid var(--line); border-radius: 4px; font-size: 8px; font-weight: 900; }
.environment-badge.live { border-color: #58af96; background: #e2f6ef; color: #17664f; }
.environment-badge.local { border-color: #d7ad35; background: #fff4ce; color: #745600; }
.environment-badge.planned { background: #ecece7; color: #65655f; }
.link-list.compact { grid-template-columns: 1fr 1fr; }
.link-list.compact .directory-link { grid-template-columns: minmax(0, 1fr) auto; }
.planned-group { grid-column: 1 / -1; }
.planned-address { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px; border: 1px dashed #9b9b95; background: var(--paper); }
.planned-address div { display: grid; gap: 5px; }
.planned-address code { color: var(--ink); font-size: 13px; font-weight: 800; }
.planned-address small { color: var(--muted); font-size: 9px; }
.empty-row { color: var(--muted); text-align: center; }

.auth-body { min-height: 100vh; background: var(--paper); }
.auth-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(340px, .85fr) minmax(460px, 1.15fr); }
.auth-brand-panel { display: flex; flex-direction: column; justify-content: space-between; min-height: 100vh; padding: 38px clamp(28px, 5vw, 72px); background: var(--sidebar); color: white; }
.auth-brand-panel .brand { padding: 0; }
.auth-brand-panel h1 { max-width: 620px; margin: 16px 0 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(44px, 6vw, 78px); font-weight: 500; line-height: .98; }
.auth-brand-panel > p { max-width: 520px; color: #aaa9a2; font-size: 14px; line-height: 1.6; }
.register-panel { background: #1d4037; }
.auth-form-panel { display: grid; place-items: center; padding: 48px 24px; }
.auth-form { width: min(420px, 100%); display: grid; gap: 18px; }
.auth-form h2 { margin: -4px 0 10px; font-size: 30px; }
.auth-form .field input { min-height: 48px; }
.auth-submit { width: 100%; margin-top: 4px; }
.auth-flash { margin: 0; }
.auth-link { margin: 0; color: var(--muted); font-size: 12px; text-align: center; }
.auth-link a { color: var(--ink); font-weight: 800; }
.registration-plan { display: grid; gap: 10px; padding: 14px; border: 1px solid #79bba5; border-radius: 5px; background: var(--mint-soft); }
.registration-plan.compact { gap: 6px; }
.registration-plan-head { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; }
.registration-plan-head strong { font-size: 12px; }
.registration-plan-head span { font-size: 12px; font-weight: 900; white-space: nowrap; }
.registration-plan ul { display: grid; gap: 5px; margin: 0; padding: 9px 0; border-top: 1px solid #b7ddcf; border-bottom: 1px solid #b7ddcf; list-style: none; }
.registration-plan li { display: flex; justify-content: space-between; gap: 12px; font-size: 10px; font-weight: 700; }
.registration-plan li span { color: var(--muted); white-space: nowrap; }
.registration-plan small { color: #36594d; font-size: 9px; line-height: 1.45; }
.demo-access { display: grid; gap: 7px; padding: 10px; border: 1px solid var(--line); border-radius: 5px; background: white; }
.demo-access button { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 4px; background: var(--paper); color: var(--ink); text-align: left; }
.demo-access button:hover { border-color: var(--ink); background: var(--mint-soft); }
.demo-access button > span:first-child { display: grid; gap: 3px; }
.demo-access strong { font-size: 10px; text-transform: uppercase; }
.demo-access small { color: var(--muted); font-size: 9px; }
.demo-access button > span:last-child { color: var(--muted); font-size: 9px; font-weight: 800; white-space: nowrap; }
.account-type-fieldset { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 0; padding: 0; border: 0; }
.account-type-fieldset legend { grid-column: 1 / -1; margin-bottom: 7px; font-size: 12px; font-weight: 800; }
.account-type-option { position: relative; min-height: 86px; display: flex; gap: 9px; padding: 13px; border: 1px solid var(--line); border-radius: 5px; background: white; }
.account-type-option:has(input:checked) { border: 2px solid var(--ink); padding: 12px; background: var(--mint-soft); }
.account-type-option input { margin: 3px 0 0; accent-color: var(--ink); }
.account-type-option span { display: grid; align-content: start; gap: 5px; }
.account-type-option strong { font-size: 12px; }
.account-type-option small { color: var(--muted); font-size: 10px; line-height: 1.35; }

.onboarding-body { min-height: 100vh; background: var(--paper); }
.onboarding-header { min-height: 74px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; padding: 0 clamp(20px, 4vw, 54px); border-bottom: 1px solid var(--line); }
.onboarding-header .brand { padding: 0; color: var(--ink); }
.onboarding-header > span { color: var(--muted); font-size: 12px; font-weight: 700; }
.onboarding-header form { justify-self: end; }
.onboarding-header button { border: 0; background: transparent; color: var(--muted); font-size: 11px; text-decoration: underline; }
.onboarding-progress { display: grid; grid-template-columns: repeat(4, 1fr); padding: 0 clamp(20px, 4vw, 54px); border-bottom: 1px solid var(--line); background: white; }
.onboarding-progress div { min-height: 64px; display: flex; align-items: center; gap: 10px; padding: 0 16px; border-right: 1px solid var(--line); color: #9a9a94; }
.onboarding-progress div:first-child { border-left: 1px solid var(--line); }
.onboarding-progress span { display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid currentColor; border-radius: 50%; font-size: 11px; }
.onboarding-progress strong { font-size: 12px; }
.onboarding-progress .current { background: var(--mint); color: var(--ink); }
.onboarding-progress .complete { color: var(--ink); }
.onboarding-progress .complete span { background: var(--ink); color: white; }
.onboarding-flash { max-width: 1080px; margin: 20px auto 0; }
.onboarding-main { width: min(1080px, calc(100% - 40px)); margin: 0 auto; padding: 46px 0 70px; }
.onboarding-form { width: min(720px, 100%); margin: 0 auto; }
.wide-onboarding, .review-onboarding { width: 100%; }
.onboarding-copy { max-width: 760px; margin-bottom: 34px; }
.onboarding-copy h1 { margin: 12px 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(42px, 6vw, 72px); font-weight: 500; line-height: .98; }
.onboarding-copy p { max-width: 700px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.onboarding-fields { display: grid; gap: 22px; padding: 28px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.onboarding-two { margin-left: 0; }
.check-fieldset { display: grid; grid-template-columns: repeat(2, 1fr); gap: 9px; margin: 0; padding: 0; border: 0; }
.check-fieldset legend { margin-bottom: 8px; font-size: 12px; font-weight: 800; }
.check-fieldset label { min-height: 44px; display: flex; align-items: center; gap: 9px; padding: 0 12px; border: 1px solid var(--line); border-radius: 5px; background: white; font-size: 12px; }
.check-fieldset input { accent-color: var(--ink); }
.inline-choice { grid-template-columns: repeat(2, 1fr); }
.onboarding-actions { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 28px; }
.onboarding-actions > span { color: var(--muted); font-size: 11px; }
.onboarding-actions > a { color: var(--ink); font-size: 12px; font-weight: 800; }
.foundation-strip { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; padding: 16px 18px; border: 1px solid var(--ink); border-radius: 5px; background: var(--yellow); font-size: 12px; }
.foundation-strip strong { margin-right: auto; }
.module-choice-grid { display: grid; grid-template-columns: 1fr 1fr; margin-top: 18px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.module-choice { position: relative; min-height: 176px; display: grid; grid-template-columns: 24px 1fr; grid-template-rows: auto 1fr auto auto; gap: 7px 10px; padding: 20px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.module-choice:has(input:checked) { background: var(--mint-soft); }
.module-choice input { position: absolute; opacity: 0; }
.module-check { grid-row: 1 / 5; width: 20px; height: 20px; border: 1.5px solid var(--ink); border-radius: 4px; }
.module-choice:has(input:checked) .module-check { background: var(--ink); box-shadow: inset 0 0 0 4px var(--mint-soft); }
.module-choice strong { font-size: 14px; }
.module-choice p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.module-choice b { font-size: 11px; }
.module-choice small { color: var(--coral); font-size: 10px; font-weight: 850; text-transform: uppercase; }
.module-choice.planned { opacity: .55; }
.onboarding-template-grid { margin: 0 0 26px; }
.onboarding-policy-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; padding: 26px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.review-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.review-grid article { min-height: 160px; display: grid; align-content: start; gap: 9px; padding: 20px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.review-grid span { color: var(--coral); font-size: 10px; font-weight: 850; text-transform: uppercase; }
.review-grid strong { font-size: 18px; }
.review-grid p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.growth-promise { margin-top: 18px; padding: 20px; border: 1px solid var(--ink); border-radius: 5px; background: var(--yellow); }
.growth-promise span { font-size: 10px; font-weight: 850; }
.growth-promise strong { display: block; margin: 7px 0; font-family: Georgia, serif; font-size: 24px; font-weight: 500; }
.growth-promise p { margin: 0; font-size: 12px; }

.growth-page { padding: 48px clamp(24px, 5vw, 72px) 72px; }
.growth-hero { max-width: 920px; }
.growth-hero h2 { margin: 12px 0; font-family: Georgia, serif; font-size: clamp(42px, 6vw, 72px); font-weight: 500; line-height: .98; }
.growth-hero p { max-width: 700px; color: var(--muted); line-height: 1.55; }
.preserved-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 42px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.preserved-grid article { min-height: 120px; display: grid; align-content: center; gap: 6px; padding: 18px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.preserved-grid strong { font-family: Georgia, serif; font-size: 38px; font-weight: 500; }
.preserved-grid span { color: var(--muted); font-size: 11px; }
.conversion-flow { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 34px; }
.conversion-flow div { min-height: 180px; padding: 20px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.conversion-flow div + div { border-left: 1px solid var(--line); }
.conversion-flow span { color: var(--coral); font-family: Georgia, serif; font-size: 20px; }
.conversion-flow strong { display: block; margin: 22px 0 7px; }
.conversion-flow p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.growth-confirm { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 30px; padding: 22px; background: var(--ink); color: white; }
.growth-confirm p { margin: 5px 0 0; color: #aaa9a2; font-size: 11px; }
.growth-confirm .primary-button { background: var(--mint); color: var(--ink); }

.page-intro { padding-bottom: 34px; }
.page-intro h2 { margin: 8px 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(34px, 4vw, 54px); font-weight: 500; line-height: 1.02; }
.page-intro p { max-width: 720px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.team-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; border-bottom: 1px solid var(--line); }
.team-main { min-width: 0; padding: 42px clamp(24px, 4vw, 58px) 60px; }
.team-side { min-height: calc(100vh - 100px); padding: 42px 30px; background: var(--ink); color: white; }
.team-side h2 { margin: 12px 0 26px; font-family: Georgia, serif; font-size: 36px; font-weight: 500; }
.connections-page { padding: 42px clamp(24px, 4vw, 58px) 72px; }
.connections-intro { display: flex; align-items: end; justify-content: space-between; gap: 36px; padding-bottom: 38px; }
.connections-intro h2 { max-width: 760px; margin: 9px 0; font-family: Georgia, serif; font-size: clamp(36px, 4.8vw, 64px); font-weight: 500; line-height: 1; }
.connections-intro p { max-width: 720px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.join-public-link { flex: 0 0 310px; display: grid; gap: 6px; padding: 16px; border: 1px solid var(--ink); border-radius: 5px; background: var(--yellow); color: var(--ink); text-decoration: none; }
.join-public-link span, .code-card-top span, .request-person > span, .request-teacher > span { color: var(--muted); font-size: 9px; font-weight: 850; text-transform: uppercase; }
.join-public-link strong { overflow-wrap: anywhere; font-size: 11px; }
.connection-notice { display: flex; justify-content: space-between; gap: 20px; padding: 16px 18px; border: 1px solid var(--ink); background: var(--yellow); font-size: 11px; }
.student-activation-notice { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 14px; padding: 18px; border: 1px solid var(--ink); background: var(--mint-soft); }
.student-activation-notice > div { display: grid; gap: 4px; }
.student-activation-notice span { color: var(--muted); font-size: 9px; font-weight: 850; }
.student-activation-notice strong { font-size: 12px; }
.student-activation-notice small { color: var(--muted); font-size: 9px; }
.student-activation-notice a { color: var(--ink); font-size: 10px; font-weight: 850; white-space: nowrap; }
.teacher-code-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.teacher-code-card { min-width: 0; display: grid; gap: 18px; padding: 22px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.teacher-code-card.disabled { background: #efefea; }
.code-card-top { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.code-card-top > div { display: grid; gap: 5px; }
.code-card-top strong { font-size: 15px; }
.teacher-code-card code { color: var(--ink); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: clamp(22px, 3vw, 34px); font-weight: 800; letter-spacing: 0; }
.no-code { margin: 0; color: var(--muted); font-size: 12px; }
.code-card-meta { display: flex; justify-content: space-between; gap: 14px; color: var(--muted); font-size: 10px; }
.code-card-meta span:last-child { overflow-wrap: anywhere; text-align: right; }
.code-card-actions, .connection-review-actions { display: flex; gap: 8px; }
.code-card-actions button { min-height: 36px; padding: 0 12px; border: 1px solid var(--line); border-radius: 4px; background: var(--paper); color: var(--ink); font-size: 10px; font-weight: 800; }
.connection-request-section { margin-top: 48px; }
.connection-request-list { border-top: 1px solid var(--line); }
.connection-request-list article { min-height: 90px; display: grid; grid-template-columns: minmax(240px, 1fr) minmax(150px, .65fr) 92px auto auto; align-items: center; gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.request-person, .request-teacher { display: grid; gap: 4px; }
.request-person small, .connection-request-list time { color: var(--muted); font-size: 10px; }
.request-teacher strong { font-size: 12px; }
.connection-review-actions .primary-button, .connection-review-actions .secondary-button { min-height: 38px; padding: 0 12px; font-size: 10px; }

.join-body { min-height: 100vh; margin: 0; background: var(--paper); color: var(--ink); }
.join-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(340px, .9fr) minmax(480px, 1.1fr); }
.join-copy { min-height: 100vh; display: flex; flex-direction: column; justify-content: space-between; padding: 38px clamp(28px, 5vw, 72px); background: var(--sidebar); color: white; }
.join-copy .brand { padding: 0; }
.join-copy h1 { max-width: 650px; margin: 16px 0; font-family: Georgia, serif; font-size: clamp(46px, 6vw, 78px); font-weight: 500; line-height: .98; }
.join-copy p { max-width: 580px; color: #c0c0b9; font-size: 14px; line-height: 1.6; }
.join-copy > small { max-width: 500px; color: #9c9c96; font-size: 11px; }
.join-panel { display: grid; place-items: center; padding: 48px 24px; }
.join-form { width: min(460px, 100%); display: grid; gap: 18px; }
.join-form h2 { margin: 0; font-size: 32px; }
.join-form > p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.join-form form { display: grid; gap: 15px; }
.join-form .field small { color: var(--muted); font-size: 9px; font-weight: 500; line-height: 1.4; }
.join-step { color: var(--coral); font-size: 10px; font-weight: 850; }
.join-step.complete { color: #17715a; }
.code-field input { min-height: 62px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 22px; font-weight: 800; letter-spacing: 0; text-transform: uppercase; }
.matched-teacher { display: grid; gap: 7px; padding: 20px; border: 1px solid var(--ink); border-radius: 5px; background: var(--mint-soft); }
.matched-teacher span { font-size: 10px; font-weight: 850; text-transform: uppercase; }
.matched-teacher strong { font-family: Georgia, serif; font-size: 30px; font-weight: 500; }
.matched-teacher small { color: var(--muted); font-size: 10px; }
.join-back { color: var(--ink); font-size: 11px; font-weight: 800; text-align: center; }
.side-form { display: grid; gap: 16px; }
.side-form .field > span { color: #d7d7d0; }
.member-table-wrap { overflow-x: auto; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.role-band { padding: 42px clamp(24px, 4vw, 58px) 70px; }
.role-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 18px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.role-grid article { min-height: 130px; padding: 18px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.role-grid p { color: var(--muted); font-size: 11px; line-height: 1.5; }

.schedule-page { padding: 42px clamp(24px, 4vw, 58px) 70px; }
.calendar-overview-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; padding-bottom: 28px; }
.calendar-overview-head h2 { max-width: 760px; margin: 8px 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(34px, 4vw, 54px); font-weight: 500; line-height: 1.02; }
.calendar-overview-head p { max-width: 720px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.calendar-summary { flex: 0 0 auto; display: flex; border: 1px solid var(--line); border-radius: 6px; background: white; }
.calendar-summary div { min-width: 82px; display: grid; gap: 3px; padding: 13px 15px; border-right: 1px solid var(--line); }
.calendar-summary div:last-child { border-right: 0; }
.calendar-summary strong { font-family: Georgia, serif; font-size: 24px; font-weight: 500; }
.calendar-summary span { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.calendar-summary .attention { background: #fff0ef; color: #a22f29; }
.calendar-toolbar { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 10px 12px; border: 1px solid var(--line); border-bottom: 0; background: white; }
.calendar-date-nav { display: flex; align-items: center; gap: 7px; }
.calendar-date-nav a { min-width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 4px; color: var(--ink); font-size: 12px; font-weight: 800; text-decoration: none; }
.calendar-date-nav .today-link { min-width: auto; padding: 0 11px; }
.calendar-date-nav strong { margin-left: 7px; font-size: 13px; }
.calendar-teacher-filter { display: flex; align-items: center; gap: 8px; }
.calendar-teacher-filter label, .calendar-private-view { color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.calendar-teacher-filter select { min-height: 34px; padding: 0 30px 0 10px; border: 1px solid var(--line); border-radius: 4px; background: var(--paper); color: var(--ink); font-size: 11px; }
.week-calendar-wrap { overflow-x: auto; border: 1px solid var(--line); background: white; }
.week-calendar { min-width: 980px; display: grid; grid-template-columns: var(--calendar-columns); grid-template-rows: 70px 720px; }
.calendar-corner, .calendar-day-head { position: sticky; top: 0; z-index: 4; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.calendar-corner { display: flex; align-items: end; justify-content: center; padding-bottom: 8px; color: var(--muted); font-size: 8px; text-transform: uppercase; }
.calendar-day-head { display: flex; flex-direction: column; align-items: center; justify-content: center; }
.calendar-day-head span { color: var(--muted); font-size: 9px; font-weight: 800; }
.calendar-day-head strong { margin: 2px 0; font-size: 18px; }
.calendar-day-head small { color: var(--muted); font-size: 8px; }
.calendar-day-head.today strong { width: 28px; height: 28px; display: grid; place-items: center; margin: 0; border-radius: 50%; background: var(--ink); color: white; }
.calendar-hours { position: relative; height: 720px; border-right: 1px solid var(--line); background: repeating-linear-gradient(to bottom, transparent 0, transparent 47px, var(--line) 47px, var(--line) 48px); }
.calendar-hours span { position: absolute; right: 7px; transform: translateY(-6px); color: var(--muted); font-size: 8px; }
.calendar-day-column { position: relative; height: 720px; border-right: 1px solid var(--line); background: repeating-linear-gradient(to bottom, transparent 0, transparent 47px, var(--line) 47px, var(--line) 48px); }
.calendar-day-column.today { background-color: #f2fbf8; }
.calendar-event { position: absolute; z-index: 1; min-height: 34px; overflow: hidden; padding: 6px 7px 5px; border-left: 3px solid; border-radius: 4px; color: var(--ink); }
.calendar-event:hover, .calendar-event:focus-within { z-index: 3; box-shadow: 0 8px 18px rgba(20, 20, 18, .16); }
.calendar-event time, .calendar-event strong, .calendar-event span, .calendar-event small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event time { color: var(--muted); font-size: 8px; font-weight: 700; }
.calendar-event strong { margin: 3px 0 2px; font-size: 10px; }
.calendar-event span, .calendar-event small { font-size: 8px; }
.calendar-event small { margin-top: 2px; color: var(--muted); }
.calendar-event b { position: absolute; top: 5px; right: 5px; color: #b83a33; font-size: 7px; text-transform: uppercase; }
.calendar-event.tone-0 { border-color: #2f9f83; background: #dff7f0; }
.calendar-event.tone-1 { border-color: #478fc9; background: #dceeff; }
.calendar-event.tone-2 { border-color: #d09a10; background: #fff0bd; }
.calendar-event.tone-3 { border-color: #dc655c; background: #ffe0dc; }
.calendar-event.cancelled { opacity: .55; filter: grayscale(.6); }
.calendar-event.cancelled strong, .calendar-event.cancelled span { text-decoration: line-through; }
.calendar-event.conflict { border-color: #d54840; background: #fff0ef; }
.calendar-legend { min-height: 42px; display: flex; align-items: center; gap: 18px; padding: 0 12px; border: 1px solid var(--line); border-top: 0; background: white; color: var(--muted); font-size: 9px; }
.calendar-legend span { display: flex; align-items: center; gap: 6px; }
.calendar-legend span:last-child { margin-left: auto; }
.calendar-legend i { width: 8px; height: 8px; border-radius: 2px; }
.calendar-legend i.tone-0 { background: #2f9f83; }
.calendar-legend i.cancelled { background: #9a9a94; }
.calendar-legend i.conflict { background: #d54840; }
.operations-intro { margin-top: 58px; padding-top: 38px; border-top: 1px solid var(--ink); }
.schedule-intro { display: flex; align-items: end; justify-content: space-between; gap: 30px; }
.policy-link { flex: 0 0 250px; display: grid; gap: 5px; padding: 15px; border: 1px solid var(--line); border-radius: 5px; background: white; }
.policy-link span { color: var(--muted); font-size: 10px; text-transform: uppercase; }
.policy-link strong { font-size: 12px; }
.policy-link a { color: var(--ink); font-size: 11px; font-weight: 800; }
.section-title { display: grid; grid-template-columns: 38px 1fr; gap: 12px; margin: 34px 0 16px; }
.section-title > span { color: var(--coral); font-family: Georgia, serif; font-size: 20px; }
.section-title h3 { margin: 0; font-size: 18px; }
.section-title p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.lesson-list { border-top: 1px solid var(--line); }
.lesson-row { min-height: 86px; display: grid; grid-template-columns: 140px minmax(180px, 1fr) auto minmax(190px, auto); align-items: center; gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.lesson-time, .lesson-name { display: grid; gap: 4px; }
.lesson-time strong, .lesson-name strong { font-size: 13px; }
.lesson-time span, .lesson-name span { color: var(--muted); font-size: 11px; }
.status-pill.scheduled { background: var(--mint-soft); color: #17664f; }
.status-pill.cancelled { background: #f0efeb; color: #6d6d67; }
.lesson-actions { display: flex; justify-content: end; gap: 8px; }
details { position: relative; }
summary { cursor: pointer; list-style: none; padding: 8px 10px; border: 1px solid var(--line); border-radius: 4px; background: white; font-size: 11px; font-weight: 800; }
summary::-webkit-details-marker { display: none; }
.lesson-actions details form, .compact-list details form { position: absolute; right: 0; z-index: 5; width: 270px; display: grid; gap: 10px; padding: 14px; border: 1px solid var(--ink); border-radius: 5px; background: white; box-shadow: 0 14px 34px rgba(20, 20, 18, .16); }
.lesson-actions label { display: grid; gap: 5px; font-size: 10px; font-weight: 800; }
.lesson-actions input, .lesson-actions select, .compact-list input { width: 100%; min-height: 36px; border: 1px solid var(--line); border-radius: 4px; }
.lesson-actions button, .compact-list button { min-height: 34px; border: 0; border-radius: 4px; background: var(--ink); color: white; font-size: 11px; font-weight: 800; }
.operations-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; }
.compact-list { border-top: 1px solid var(--line); }
.compact-list article { min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.compact-list article > div { display: grid; gap: 4px; }
.compact-list strong { font-size: 12px; }
.compact-list span { color: var(--muted); font-size: 10px; }
.compact-list form { margin: 0; }
.quiet-empty { margin: 0; padding: 22px 0; color: var(--muted); font-size: 12px; border-bottom: 1px solid var(--line); }
.audit-title { margin-top: 48px; }
code { color: #5d5d58; font-size: 10px; }

.launch-page, .people-page, .import-review-page { padding: 42px clamp(24px, 4vw, 58px) 72px; }
.launch-intro, .people-intro, .import-review-intro { display: flex; align-items: end; justify-content: space-between; gap: 36px; padding-bottom: 38px; }
.launch-intro h2, .people-intro h2, .import-review-intro h2 { max-width: 760px; margin: 9px 0; font-family: Georgia, serif; font-size: clamp(36px, 4.8vw, 64px); font-weight: 500; line-height: 1; }
.launch-intro p, .people-intro p, .import-review-intro p { max-width: 700px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.launch-score { flex: 0 0 180px; display: grid; gap: 5px; }
.launch-score strong, .people-count strong { font-family: Georgia, serif; font-size: 42px; font-weight: 500; }
.launch-score > span, .people-count span { color: var(--muted); font-size: 11px; text-transform: uppercase; }
.launch-score > div { height: 5px; margin-top: 8px; overflow: hidden; background: #ddddd6; }
.launch-score i { height: 100%; display: block; background: var(--mint); }
.launch-layout { display: grid; grid-template-columns: minmax(0, 1fr) 330px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.checklist-row { min-height: 88px; display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 14px 18px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.checklist-status { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); font-family: Georgia, serif; font-size: 12px; }
.checklist-row.done .checklist-status { border-color: var(--ink); background: var(--ink); color: white; }
.checklist-row strong { font-size: 13px; }
.checklist-row p { margin: 5px 0 0; color: var(--muted); font-size: 11px; }
.checklist-row a { color: var(--ink); font-size: 11px; font-weight: 850; }
.checklist-row small { color: var(--coral); font-size: 9px; font-weight: 850; }
.checklist-row.planned { background: #f0f0eb; }
.launch-next { min-height: 100%; padding: 28px; background: var(--ink); color: white; }
.launch-next h3 { margin: 16px 0 10px; font-family: Georgia, serif; font-size: 30px; font-weight: 500; line-height: 1.05; }
.launch-next > p { color: #aaa9a2; font-size: 12px; line-height: 1.55; }
.launch-next .primary-button { width: 100%; margin: 18px 0 22px; background: var(--mint); color: var(--ink); text-decoration: none; }
.launch-next dl { margin: 0; border-top: 1px solid #464642; }
.launch-next dl div { display: flex; justify-content: space-between; padding: 13px 0; border-bottom: 1px solid #464642; font-size: 11px; }
.launch-next dd { margin: 0; font-weight: 850; }
.people-count { flex: 0 0 auto; display: grid; text-align: right; }
.people-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; border-top: 1px solid var(--line); }
.people-main { min-width: 0; padding: 28px 32px 60px 0; }
.people-side { min-height: calc(100vh - 220px); padding: 28px; background: var(--ink); color: white; }
.people-side h2 { margin: 12px 0 24px; font-family: Georgia, serif; font-size: 34px; font-weight: 500; }
.people-side .field > span { color: #d7d7d0; }
.section-bar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 14px; }
.section-bar > div { display: flex; align-items: center; gap: 14px; }
.section-bar span { color: var(--coral); font-family: Georgia, serif; font-size: 20px; }
.section-bar h3 { margin: 0; font-size: 18px; }
.section-bar small { color: var(--muted); font-size: 9px; }
.section-bar > a { color: var(--ink); font-size: 11px; font-weight: 800; }
.student-table-wrap, .preview-table-wrap { overflow-x: auto; border: 1px solid var(--line); background: white; }
.student-table td strong { font-size: 13px; }
.student-table td small, .preview-table td small { display: block; margin-top: 4px; color: var(--muted); }
.import-heading { margin-top: 40px; }
.import-drop { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 14px; padding: 18px; border: 1px dashed #aaa9a2; background: white; }
.import-drop label { display: grid; gap: 7px; font-size: 11px; font-weight: 800; }
.import-drop input { font-size: 11px; }
.import-history article { min-height: 62px; display: grid; grid-template-columns: minmax(0, 1fr) auto 90px; align-items: center; gap: 14px; border-bottom: 1px solid var(--line); }
.import-history article > div:first-child { display: grid; gap: 4px; }
.import-history article span { color: var(--muted); font-size: 10px; }
.batch-actions { text-align: right; }
.batch-actions a, .batch-actions button, .text-button { padding: 0; border: 0; background: transparent; color: var(--ink); font-size: 10px; font-weight: 850; text-decoration: underline; }
.status-pill.previewed, .status-pill.ready, .status-pill.committed { background: var(--mint-soft); color: #17664f; }
.status-pill.error { background: #fff0ef; color: #a3342e; }
.status-pill.duplicate { background: #fff4ce; color: #7b5a00; }
.status-pill.reverted, .status-pill.discarded { background: #ecece7; color: var(--muted); }
.import-review-intro { align-items: center; }
.preview-totals { display: grid; grid-template-columns: repeat(3, 100px); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.preview-totals div { min-height: 90px; display: grid; align-content: center; gap: 4px; padding: 14px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.preview-totals strong { font-family: Georgia, serif; font-size: 28px; font-weight: 500; }
.preview-totals span { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.preview-table .row-error { background: #fff7f6; }
.preview-table .row-duplicate { background: #fffbef; }
.import-review-actions { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 22px; }
.primary-button:disabled { cursor: not-allowed; opacity: .4; }

.catalog-page { padding: 42px clamp(24px, 4vw, 58px) 72px; }
.catalog-intro { display: flex; align-items: end; justify-content: space-between; gap: 36px; padding-bottom: 38px; }
.catalog-intro h2 { max-width: 760px; margin: 9px 0; font-family: Georgia, serif; font-size: clamp(36px, 4.8vw, 64px); font-weight: 500; line-height: 1; }
.catalog-intro p { max-width: 700px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.catalog-stats { flex: 0 0 auto; display: grid; grid-template-columns: repeat(3, 105px); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.catalog-stats div { min-height: 86px; display: grid; align-content: center; gap: 4px; padding: 12px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.catalog-stats strong { font-family: Georgia, serif; font-size: 27px; font-weight: 500; }
.catalog-stats span { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.catalog-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; border-top: 1px solid var(--line); }
.catalog-main { min-width: 0; padding: 28px 32px 42px 0; }
.catalog-side { background: var(--ink); color: white; }
.catalog-side section { padding: 26px; border-bottom: 1px solid #464642; }
.catalog-side form { display: grid; gap: 14px; margin-top: 18px; }
.catalog-side .field > span { color: #d7d7d0; }
.side-two { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.program-list { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.program-list article { min-height: 76px; display: grid; align-content: center; gap: 5px; padding: 16px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.program-list strong { font-size: 13px; }
.program-list span { color: var(--muted); font-size: 10px; }
.catalog-section { margin-top: 36px; }
.lesson-type-list { border-top: 1px solid var(--line); }
.lesson-type-list article { min-height: 88px; display: grid; grid-template-columns: minmax(180px, 1fr) auto; align-items: center; gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.lesson-type-list article > div { display: grid; gap: 4px; }
.lesson-type-list article > div span { color: var(--coral); font-size: 9px; font-weight: 850; text-transform: uppercase; }
.lesson-type-list article > div strong { font-size: 14px; }
.lesson-type-list dl { display: grid; grid-template-columns: repeat(3, 90px); margin: 0; }
.lesson-type-list dl div { display: grid; gap: 4px; }
.lesson-type-list dt { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.lesson-type-list dd { margin: 0; font-size: 11px; font-weight: 750; }
.recurrence-section, .series-section { padding-top: 38px; border-top: 1px solid var(--line); }
.recurrence-form { border: 1px solid var(--line); background: white; }
.recurrence-fields { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; padding: 22px; }
.student-enrollment { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 0; padding: 22px; border: 0; border-top: 1px solid var(--line); }
.student-enrollment legend { padding-top: 22px; font-size: 11px; font-weight: 850; }
.student-enrollment label { min-height: 42px; display: flex; align-items: center; gap: 8px; padding: 0 11px; border: 1px solid var(--line); border-radius: 4px; font-size: 11px; }
.student-enrollment input { accent-color: var(--ink); }
.recurrence-form footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 22px; border-top: 1px solid var(--line); }
.recurrence-form footer > span { color: var(--muted); font-size: 10px; }
.series-section { margin-top: 42px; }
.series-list { border-top: 1px solid var(--line); }
.series-list article { min-height: 102px; display: grid; grid-template-columns: minmax(240px, 1fr) auto 100px; align-items: center; gap: 22px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.series-list article > div:first-child { display: grid; gap: 5px; }
.series-list article > div:first-child > span { color: var(--coral); font-size: 9px; font-weight: 850; text-transform: uppercase; }
.series-list article p { margin: 0; color: var(--muted); font-size: 10px; }
.series-list dl { display: grid; grid-template-columns: repeat(2, 110px); margin: 0; }
.series-list dl div { display: grid; gap: 4px; }
.series-list dt { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.series-list dd { margin: 0; font-size: 11px; font-weight: 750; }
.series-actions { display: grid; justify-items: end; gap: 7px; }
.series-list form { margin: 0; text-align: right; }
.series-list button { min-height: 34px; padding: 0 10px; border: 1px solid var(--ink); border-radius: 4px; background: white; font-size: 10px; font-weight: 850; }

.billing-page { padding: 42px clamp(24px, 4vw, 58px) 72px; }
.billing-intro { display: flex; align-items: end; justify-content: space-between; gap: 36px; padding-bottom: 38px; }
.billing-intro h2 { max-width: 760px; margin: 9px 0; font-family: Georgia, serif; font-size: clamp(36px, 4.8vw, 64px); font-weight: 500; line-height: 1; }
.billing-intro p { max-width: 690px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.billing-stats { flex: 0 0 auto; display: grid; grid-template-columns: repeat(3, minmax(100px, auto)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.billing-stats div { min-height: 86px; display: grid; align-content: center; gap: 4px; padding: 12px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.billing-stats strong { font-family: Georgia, serif; font-size: 25px; font-weight: 500; }
.billing-stats span { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.billing-layout { display: grid; grid-template-columns: minmax(0, 1fr) 350px; border-top: 1px solid var(--line); }
.billing-main { min-width: 0; padding: 28px 32px 50px 0; }
.billing-side { background: var(--ink); color: white; }
.billing-side section { padding: 26px; border-bottom: 1px solid #464642; }
.billing-side form { display: grid; gap: 14px; margin-top: 18px; }
.billing-side .field > span { color: #d7d7d0; }
.money-input { display: grid; grid-template-columns: 32px 1fr; align-items: center; border: 1px solid var(--line); border-radius: 4px; background: white; }
.money-input em { color: var(--ink); font-style: normal; text-align: center; }
.money-input input { border: 0; }
.invoice-list, .assignment-list, .reminder-list { border-top: 1px solid var(--line); }
.invoice-list article { min-height: 88px; display: grid; grid-template-columns: minmax(180px, 1fr) 110px 70px 118px; align-items: center; gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.invoice-identity, .invoice-money, .assignment-list article > div, .reminder-list article > div { display: grid; gap: 4px; }
.invoice-identity > span, .assignment-list article > div > span, .reminder-list article > div > span { color: var(--coral); font-size: 9px; font-weight: 850; text-transform: uppercase; }
.invoice-identity strong, .assignment-list strong, .reminder-list strong { font-size: 13px; }
.invoice-identity small, .invoice-money small, .assignment-list small, .reminder-list small { color: var(--muted); font-size: 10px; }
.invoice-money strong { font-family: Georgia, serif; font-size: 20px; font-weight: 500; }
.invoice-action { text-align: right; }
.invoice-action details form { position: absolute; right: 0; z-index: 5; width: 250px; display: grid; gap: 10px; padding: 14px; border: 1px solid var(--ink); border-radius: 5px; background: white; box-shadow: 0 14px 34px rgba(20, 20, 18, .16); text-align: left; }
.invoice-action button, .assignment-list button, .reminder-list button { min-height: 34px; padding: 0 11px; border: 1px solid var(--ink); border-radius: 4px; background: white; color: var(--ink); font-size: 10px; font-weight: 850; }
.invoice-action form button { background: var(--ink); color: white; }
.paid-mark { color: #17664f; font-size: 10px; font-weight: 850; }
.status-pill.sent, .status-pill.partial { background: #fff4ce; color: #7b5a00; }
.status-pill.overdue { background: #fff0ef; color: #a3342e; }
.status-pill.paid { background: var(--mint-soft); color: #17664f; }
.billing-section { margin-top: 42px; }
.subscription-page { padding: 42px clamp(24px, 4vw, 58px) 72px; }
.subscription-intro { display: flex; align-items: end; justify-content: space-between; gap: 32px; padding-bottom: 34px; border-bottom: 1px solid var(--line); }
.subscription-intro h2 { max-width: 760px; margin: 8px 0 12px; font-family: Georgia, serif; font-size: clamp(36px, 4.8vw, 64px); font-weight: 500; line-height: 1; }
.subscription-intro p { max-width: 680px; margin: 0; color: var(--muted); line-height: 1.55; }
.subscription-total { flex: 0 0 220px; display: grid; gap: 5px; padding: 20px; color: white; background: var(--ink); }
.subscription-total span, .subscription-total small { color: #bfc0b9; font-size: 11px; text-transform: uppercase; }
.subscription-total strong { font-family: Georgia, serif; font-size: 42px; font-weight: 500; }
.subscription-notice { display: flex; gap: 16px; margin-top: 24px; padding: 14px 16px; border-left: 4px solid var(--sun); background: white; }
.subscription-notice span { color: var(--muted); }
.subscription-form { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 28px; margin-top: 28px; align-items: start; }
.subscription-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.subscription-module { position: relative; display: flex; min-height: 190px; padding: 22px; border: 1px solid var(--line); background: white; cursor: pointer; }
.subscription-module.selected { border: 2px solid var(--ink); padding: 21px; background: #e7f8f1; }
.subscription-module input { position: absolute; opacity: 0; pointer-events: none; }
.subscription-module .module-check { position: absolute; top: 18px; right: 18px; width: 22px; height: 22px; border: 1px solid var(--ink); background: white; }
.subscription-module.selected .module-check::after { content: "\2713"; display: grid; height: 100%; place-items: center; font-weight: 800; }
.subscription-module-copy { display: grid; align-content: start; gap: 9px; padding-right: 30px; }
.subscription-module-copy > small { color: var(--coral); font-family: Georgia, serif; font-size: 18px; }
.subscription-module-copy strong { font-size: 18px; }
.subscription-module-copy p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.subscription-module-copy b { margin-top: 5px; font-size: 12px; }
.subscription-summary { position: sticky; top: 24px; display: grid; gap: 0; padding: 24px; color: white; background: var(--ink); }
.subscription-summary > div { display: flex; justify-content: space-between; gap: 18px; padding: 13px 0; border-bottom: 1px solid #454540; }
.subscription-summary > div span { color: #c6c6c0; }
.subscription-summary .subscription-due { display: grid; gap: 8px; padding-top: 24px; }
.subscription-summary .subscription-due strong { font-family: Georgia, serif; font-size: 38px; font-weight: 500; }
.subscription-summary p { color: #bfc0b9; font-size: 11px; line-height: 1.5; }
.subscription-summary .primary-button { width: 100%; border: 0; }
.subscription-summary .primary-button:disabled { cursor: not-allowed; opacity: .45; }
.portal-form { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 28px; padding: 20px; border: 1px solid var(--line); background: white; }
.portal-form div { display: grid; gap: 4px; }
.portal-form span { color: var(--muted); }
.portal-form button { padding: 11px 15px; border: 1px solid var(--ink); background: transparent; font-weight: 700; }
.assignment-list article, .reminder-list article { min-height: 78px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px; border-bottom: 1px solid var(--line); }
.package-register div { display: grid; gap: 4px; padding: 12px 0; border-bottom: 1px solid #464642; }
.package-register strong { font-size: 11px; }
.package-register span, .package-register p { color: #aaa9a2; font-size: 9px; }
.text-link { color: var(--ink); font-size: 11px; font-weight: 850; }

.family-access-page { padding: 42px clamp(24px, 4vw, 58px) 72px; }
.family-access-intro { display: flex; align-items: end; justify-content: space-between; gap: 36px; padding-bottom: 38px; }
.family-access-intro h2 { max-width: 760px; margin: 9px 0; font-family: Georgia, serif; font-size: clamp(36px, 4.8vw, 64px); font-weight: 500; line-height: 1; }
.family-access-intro p { max-width: 690px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.family-access-count { flex: 0 0 150px; display: grid; gap: 4px; padding: 18px; border: 1px solid var(--line); background: white; }
.family-access-count strong { font-family: Georgia, serif; font-size: 34px; font-weight: 500; }
.family-access-count span { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.invite-delivery { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 26px; align-items: center; margin-bottom: 34px; padding: 24px; background: var(--ink); color: white; }
.invite-delivery h3 { margin: 7px 0 4px; font-size: 18px; }
.invite-delivery p { margin: 0; color: #aaa9a2; font-size: 10px; }
.invite-url { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
.invite-url input { min-width: 0; height: 44px; padding: 0 12px; border: 0; background: white; color: var(--ink); }
.invite-url button { border: 0; padding: 0 18px; background: var(--mint); color: var(--ink); font-size: 11px; font-weight: 850; }
.family-register { border-top: 1px solid var(--line); padding-top: 26px; }
.family-access-list { border-top: 1px solid var(--line); }
.family-access-list article { min-height: 88px; display: grid; grid-template-columns: minmax(220px, 1fr) 150px 120px; align-items: center; gap: 20px; border-bottom: 1px solid var(--line); }
.family-person, .family-access-state { display: grid; gap: 4px; }
.family-person > span { color: var(--coral); font-size: 9px; font-weight: 850; text-transform: uppercase; }
.family-person strong { font-size: 13px; }
.family-person small, .family-access-state small { color: var(--muted); font-size: 10px; }
.family-access-state { justify-items: start; }
.family-access-action { text-align: right; }
.family-access-action button { min-height: 34px; padding: 0 11px; border: 1px solid var(--ink); border-radius: 4px; background: white; font-size: 10px; font-weight: 850; }
.family-access-action a, .family-access-action > span { color: var(--ink); font-size: 10px; font-weight: 850; }
.status-pill.pending { background: #fff4ce; color: #7b5a00; }
.status-pill.expired, .status-pill.superseded { background: #ecece7; color: var(--muted); }
.family-boundary { display: grid; grid-template-columns: 40px 1fr 40px 1fr 40px 1fr; gap: 16px; margin-top: 48px; padding-top: 26px; border-top: 1px solid var(--line); }
.family-boundary > span { color: var(--coral); font-family: Georgia, serif; font-size: 20px; }
.family-boundary div { display: grid; align-content: start; gap: 6px; }
.family-boundary strong { font-size: 12px; }
.family-boundary p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }

.parent-auth-body, .parent-portal-body { margin: 0; background: var(--paper); color: var(--ink); }
.parent-invite-shell { width: min(100% - 36px, 920px); min-height: 100vh; margin: auto; display: grid; grid-template-columns: 1fr 360px; align-content: center; gap: 70px; position: relative; }
.parent-brand { position: absolute; top: 30px; left: 0; color: var(--ink); }
.parent-invite-copy h1 { margin: 14px 0; font-family: Georgia, serif; font-size: clamp(42px, 5vw, 68px); font-weight: 500; line-height: .98; }
.parent-invite-copy p { max-width: 550px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.parent-invite-form { display: grid; gap: 16px; padding: 28px; border: 1px solid var(--line); background: white; }
.parent-invite-form small { color: var(--muted); font-size: 9px; line-height: 1.5; }
.parent-topbar { min-height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 clamp(20px, 5vw, 70px); border-bottom: 1px solid var(--line); background: var(--ink); color: white; }
.parent-topbar .brand { padding: 0; }
.parent-topbar > div { display: flex; align-items: center; gap: 18px; font-size: 10px; font-weight: 800; }
.parent-topbar form { margin: 0; }
.parent-topbar button { border: 0; background: transparent; color: white; font-size: 10px; text-decoration: underline; }
.parent-main { width: min(100% - 40px, 1180px); margin: auto; padding: 48px 0 80px; }
.parent-hero { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 50px; align-items: end; padding-bottom: 42px; }
.parent-hero h1 { max-width: 760px; margin: 10px 0; font-family: Georgia, serif; font-size: clamp(42px, 6vw, 72px); font-weight: 500; line-height: .98; }
.parent-hero p { margin: 0; color: var(--muted); font-size: 13px; }
.parent-balance { display: grid; gap: 6px; padding: 22px; border: 1px solid var(--ink); background: var(--mint-soft); }
.parent-balance > span, .parent-balance small { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.parent-balance strong { font-family: Georgia, serif; font-size: 38px; font-weight: 500; }
.parent-students { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.parent-students article { min-height: 82px; display: grid; align-content: center; gap: 4px; padding: 16px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.parent-students span { color: var(--coral); font-size: 9px; font-weight: 850; text-transform: uppercase; }
.parent-students strong { font-size: 14px; }
.parent-students small { color: var(--muted); font-size: 10px; }
.parent-dashboard-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 46px; margin-top: 50px; }
.parent-section-heading { display: grid; grid-template-columns: 38px 1fr; gap: 12px; margin-bottom: 18px; }
.parent-section-heading > span { color: var(--coral); font-family: Georgia, serif; font-size: 20px; }
.parent-section-heading h2 { margin: 0; font-size: 18px; }
.parent-section-heading p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.parent-lesson-list, .parent-invoice-list { border-top: 1px solid var(--line); }
.parent-lesson-list article { min-height: 76px; display: grid; grid-template-columns: 90px minmax(0, 1fr) auto; align-items: center; gap: 14px; border-bottom: 1px solid var(--line); }
.parent-lesson-list time, .parent-lesson-list article > div, .parent-invoice-list article > div { display: grid; gap: 4px; }
.parent-lesson-list strong, .parent-invoice-list strong { font-size: 11px; }
.parent-lesson-list span, .parent-invoice-list span, .parent-invoice-list small { color: var(--muted); font-size: 9px; }
.parent-lesson-actions { grid-column: 2 / -1; display: flex; gap: 8px; padding-bottom: 12px; }
.parent-lesson-actions details, .parent-credit-list details { position: relative; }
.parent-lesson-actions details form, .parent-credit-list details form { position: absolute; z-index: 6; width: 270px; display: grid; gap: 10px; padding: 14px; border: 1px solid var(--ink); border-radius: 4px; background: white; box-shadow: 0 14px 34px rgba(20, 20, 18, .16); }
.parent-lesson-actions details:last-child form { right: 0; }
.parent-lesson-actions form p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
.parent-lesson-actions button, .parent-credit-list button { min-height: 34px; border: 0; border-radius: 4px; background: var(--ink); color: white; font-size: 10px; font-weight: 850; }
.parent-invoice-list article { min-height: 76px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; border-bottom: 1px solid var(--line); }
.parent-self-service { display: grid; grid-template-columns: 1fr 1fr; gap: 46px; margin-top: 50px; padding-top: 34px; border-top: 1px solid var(--line); }
.parent-credit-list, .parent-request-list { border-top: 1px solid var(--line); }
.parent-credit-list article, .parent-request-list article { min-height: 70px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; border-bottom: 1px solid var(--line); }
.parent-credit-list article > div, .parent-request-list article > div { display: grid; gap: 4px; }
.parent-credit-list strong, .parent-request-list strong { font-size: 11px; }
.parent-credit-list span, .parent-request-list span { color: var(--muted); font-size: 9px; }
.parent-credit-list details form { right: 0; }
.parent-payments { margin-top: 50px; padding-top: 32px; border-top: 1px solid var(--line); }
.parent-payment-table { border: 1px solid var(--line); background: white; }
.parent-payment-table > div { min-height: 48px; display: grid; grid-template-columns: repeat(4, 1fr); align-items: center; gap: 16px; padding: 0 16px; border-bottom: 1px solid var(--line); font-size: 10px; }
.parent-payment-table > div:last-child { border-bottom: 0; }
.parent-payment-head { color: var(--muted); font-size: 9px !important; font-weight: 850; text-transform: uppercase; }
.parent-unlinked { max-width: 760px; padding: 10vh 0; }
.parent-unlinked h1 { margin: 12px 0 18px; font-family: Georgia, serif; font-size: clamp(42px, 6vw, 72px); font-weight: 500; line-height: .98; }
.parent-unlinked p { max-width: 620px; color: var(--muted); font-size: 13px; line-height: 1.6; }

/* Student activation and portal */
.student-auth-body, .student-portal-body { margin: 0; background: var(--paper); color: var(--ink); }
.student-activation-shell { width: min(100% - 40px, 1080px); min-height: 100vh; margin: auto; display: grid; grid-template-columns: minmax(0, 1fr) 390px; align-content: center; gap: 80px; position: relative; }
.student-brand { position: absolute; top: 30px; left: 0; color: var(--ink); }
.student-activation-copy h1 { max-width: 650px; margin: 14px 0; font-family: Georgia, serif; font-size: clamp(46px, 6vw, 76px); font-weight: 500; line-height: .98; }
.student-activation-copy > p { max-width: 570px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.activation-teacher { width: min(100%, 390px); display: grid; gap: 5px; margin-top: 34px; padding: 18px; border-left: 4px solid var(--mint); background: white; }
.activation-teacher span { color: var(--muted); font-size: 9px; font-weight: 850; }
.activation-teacher strong { font-size: 14px; }
.student-activation-form { display: grid; gap: 16px; padding: 28px; border: 1px solid var(--ink); background: white; }
.student-activation-form h2 { margin: 0 0 4px; font-size: 26px; }
.student-activation-form > small { color: var(--muted); font-size: 9px; line-height: 1.5; }
.student-topbar { min-height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 clamp(20px, 5vw, 70px); border-bottom: 1px solid #30302e; background: var(--sidebar); color: white; }
.student-topbar .brand { padding: 0; }
.student-topbar > div { display: flex; align-items: center; gap: 16px; font-size: 10px; font-weight: 800; }
.student-topbar form { margin: 0; }
.student-topbar button { border: 0; background: transparent; color: white; font-size: 10px; text-decoration: underline; }
.student-access-label { padding: 6px 8px; border: 1px solid var(--mint); border-radius: 3px; color: var(--mint); font-size: 8px; }
.student-main { width: min(100% - 40px, 1180px); margin: auto; padding: 48px 0 80px; }
.student-hero { display: grid; grid-template-columns: minmax(0, 1fr) 280px; align-items: end; gap: 58px; padding-bottom: 46px; }
.student-hero h1 { margin: 10px 0; font-family: Georgia, serif; font-size: clamp(46px, 7vw, 80px); font-weight: 500; line-height: .95; }
.student-hero p { max-width: 700px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.student-profile { display: grid; gap: 7px; padding: 22px; border: 1px solid var(--ink); background: var(--yellow); }
.student-profile span { color: var(--muted); font-size: 9px; font-weight: 850; }
.student-profile strong { font-size: 15px; }
.student-profile small { color: var(--muted); font-size: 10px; }
.student-next { padding-top: 34px; border-top: 1px solid var(--line); }
.student-section-heading { display: grid; grid-template-columns: 40px 1fr; gap: 10px; margin-bottom: 18px; }
.student-section-heading > span { color: var(--coral); font-family: Georgia, serif; font-size: 21px; }
.student-section-heading h2 { margin: 0; font-size: 18px; }
.student-section-heading p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.student-lesson-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.student-lesson-grid article { min-height: 120px; display: grid; grid-template-columns: 105px 1fr auto; align-items: center; gap: 18px; padding: 18px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.student-lesson-grid time, .student-lesson-grid article > div { display: grid; gap: 5px; }
.student-lesson-grid time span, .student-lesson-grid small, .student-lesson-grid article > div > span { color: var(--muted); font-size: 9px; }
.student-lesson-grid time strong { font-family: Georgia, serif; font-size: 19px; font-weight: 500; }
.student-lesson-grid article > div > strong { font-size: 12px; }
.student-learning-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 52px; margin-top: 58px; }
.student-note-list, .student-assignment-list { border-top: 1px solid var(--line); }
.student-note-list article { display: grid; gap: 9px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.student-note-top { display: flex; justify-content: space-between; color: var(--muted); font-size: 9px; }
.student-note-list article > strong { font-size: 13px; }
.student-note-list article p { display: grid; grid-template-columns: 58px 1fr; gap: 9px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.student-note-list b { color: var(--ink); font-size: 8px; text-transform: uppercase; }
.student-assignment-list article { min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--line); }
.student-assignment-list article > div { display: grid; gap: 5px; }
.student-assignment-list span, .student-assignment-list small { color: var(--muted); font-size: 9px; }
.student-assignment-list strong { font-size: 12px; }
.student-assignment-list a { color: var(--ink); font-size: 10px; font-weight: 850; white-space: nowrap; }
.student-unlinked { max-width: 760px; padding: 10vh 0; }
.student-unlinked h1 { margin: 12px 0 18px; font-family: Georgia, serif; font-size: clamp(42px, 6vw, 72px); font-weight: 500; line-height: .98; }
.student-unlinked p { max-width: 620px; color: var(--muted); font-size: 13px; line-height: 1.6; }

.messages-page { padding: 42px clamp(24px, 4vw, 58px) 72px; }
.messages-intro { display: flex; align-items: end; justify-content: space-between; gap: 36px; padding-bottom: 38px; }
.messages-intro h2 { max-width: 760px; margin: 9px 0; font-family: Georgia, serif; font-size: clamp(36px, 4.8vw, 64px); font-weight: 500; line-height: 1; }
.messages-intro p { max-width: 690px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.message-stats { flex: 0 0 auto; display: grid; grid-template-columns: repeat(3, 105px); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.message-stats div { min-height: 84px; display: grid; align-content: center; gap: 4px; padding: 12px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.message-stats strong { font-family: Georgia, serif; font-size: 28px; font-weight: 500; }
.message-stats span { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.provider-strip { display: grid; grid-template-columns: 1fr 1fr 1.4fr auto; align-items: center; gap: 20px; margin-bottom: 34px; padding: 16px 18px; border: 1px solid var(--line); background: white; }
.provider-strip > div { display: grid; grid-template-columns: 12px 1fr; align-items: center; gap: 2px 8px; }
.provider-strip strong { font-size: 10px; }
.provider-strip small { grid-column: 2; color: var(--muted); font-size: 8px; }
.provider-light { width: 8px; height: 8px; border-radius: 50%; background: #aaa9a2; }
.provider-light.local { background: var(--mint); }
.provider-light.connected { background: #38a878; box-shadow: 0 0 0 3px #daf4e9; }
.provider-strip button { min-height: 36px; padding: 0 12px; border: 0; border-radius: 4px; background: var(--ink); color: white; font-size: 10px; font-weight: 850; }
.assistant-result { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 28px; margin-bottom: 34px; padding: 24px; background: var(--ink); color: white; }
.assistant-result h3 { margin: 8px 0 5px; }
.assistant-result p { color: #aaa9a2; font-size: 10px; }
.assistant-result pre { margin: 0; padding: 16px; overflow-x: auto; white-space: pre-wrap; background: #242423; color: #e6e6df; font: 10px/1.55 inherit; }
.messages-layout { display: grid; grid-template-columns: minmax(0, 1fr) 350px; border-top: 1px solid var(--line); }
.messages-main { min-width: 0; padding: 28px 32px 50px 0; }
.messages-side { background: var(--ink); color: white; }
.messages-side section { padding: 26px; border-bottom: 1px solid #464642; }
.messages-side form { display: grid; gap: 14px; margin-top: 18px; }
.messages-side .field > span { color: #d7d7d0; }
.messages-side textarea { width: 100%; resize: vertical; border: 1px solid var(--line); border-radius: 4px; padding: 10px; font: inherit; }
.side-toggle { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.side-toggle > span { display: grid; gap: 3px; }
.side-toggle strong { font-size: 10px; }
.side-toggle small { color: #aaa9a2; font-size: 8px; }
.side-toggle input { accent-color: var(--mint); }
.message-list { border-top: 1px solid var(--line); }
.message-list article { min-height: 112px; display: grid; grid-template-columns: minmax(240px, 1fr) 110px 70px 118px; align-items: center; gap: 16px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.message-meta { min-width: 0; display: grid; gap: 4px; }
.message-meta > span { color: var(--coral); font-size: 9px; font-weight: 850; text-transform: uppercase; }
.message-meta strong { font-size: 13px; }
.message-meta small, .message-source small { color: var(--muted); font-size: 9px; }
.message-meta p { max-width: 620px; max-height: 36px; overflow: hidden; margin: 4px 0 0; color: #575752; font-size: 9px; line-height: 1.5; white-space: pre-line; }
.message-meta .delivery-error { color: #a3342e; }
.message-source { display: grid; gap: 5px; }
.message-source > span { font-size: 9px; font-weight: 800; text-transform: uppercase; }
.message-actions { text-align: right; }
.message-actions button { min-height: 34px; padding: 0 10px; border: 1px solid var(--ink); border-radius: 4px; background: white; font-size: 9px; font-weight: 850; }
.message-actions > span { color: var(--muted); font-size: 9px; }
.status-pill.draft { background: #ecece7; color: #5d5d58; }
.status-pill.queued { background: #fff4ce; color: #7b5a00; }
.status-pill.sent { background: var(--mint-soft); color: #17664f; }
.assist-compose { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: 50px; margin-top: 48px; padding-top: 34px; border-top: 1px solid var(--line); }
.assist-compose h2 { margin: 10px 0; font-family: Georgia, serif; font-size: 36px; font-weight: 500; line-height: 1.05; }
.assist-compose header p { color: var(--muted); font-size: 10px; line-height: 1.55; }
.assist-compose form { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; padding: 22px; border: 1px solid var(--line); background: white; }
.assist-compose textarea { width: 100%; resize: vertical; border: 1px solid var(--line); border-radius: 4px; padding: 10px; font: inherit; }
.assist-goal { grid-column: 1 / -1; }
.assist-compose .primary-button { grid-column: 1 / -1; justify-self: end; }

.teaching-page, .lesson-record-page { padding: 42px clamp(24px, 4vw, 58px) 72px; }
.teaching-intro, .record-intro { display: flex; align-items: end; justify-content: space-between; gap: 36px; padding-bottom: 38px; }
.teaching-intro h2, .record-intro h2 { max-width: 760px; margin: 9px 0; font-family: Georgia, serif; font-size: clamp(36px, 4.8vw, 64px); font-weight: 500; line-height: 1; }
.teaching-intro p, .record-intro p { max-width: 690px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.teaching-stats { flex: 0 0 auto; display: grid; grid-template-columns: repeat(3, 105px); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.teaching-stats div { min-height: 84px; display: grid; align-content: center; gap: 4px; padding: 12px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.teaching-stats strong { font-family: Georgia, serif; font-size: 28px; font-weight: 500; }
.teaching-stats span { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.teaching-list { border-top: 1px solid var(--line); }
.teaching-list article { min-height: 82px; display: grid; grid-template-columns: 120px minmax(220px, 1fr) 100px 110px; align-items: center; gap: 18px; border-bottom: 1px solid var(--line); }
.teaching-date, .teaching-lesson { display: grid; gap: 4px; }
.teaching-date strong, .teaching-lesson strong { font-size: 12px; }
.teaching-date span, .teaching-lesson span { color: var(--muted); font-size: 9px; }
.teaching-list article > a { color: var(--ink); font-size: 10px; font-weight: 850; text-align: right; text-decoration: none; }
.status-pill.not-started { background: #ecece7; color: #5d5d58; }
.status-pill.completed { background: var(--mint-soft); color: #17664f; }
.record-intro > div:first-child { display: grid; gap: 8px; }
.record-intro > div:first-child > a { width: max-content; color: var(--muted); font-size: 10px; font-weight: 800; text-decoration: none; }
.record-state { min-width: 210px; display: grid; gap: 6px; padding: 20px; border: 1px solid var(--line); background: white; }
.record-state span, .record-state small { color: var(--muted); font-size: 9px; }
.record-state strong { font-size: 14px; }
.record-form { border-top: 1px solid var(--ink); }
.record-stage { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 48px; padding: 38px 0; border-bottom: 1px solid var(--line); }
.record-stage > div:first-child > span { color: var(--coral); font-family: Georgia, serif; font-size: 24px; }
.record-stage > div:first-child > p { margin: 8px 0; font-size: 9px; font-weight: 850; }
.record-stage h3 { max-width: 260px; margin: 0; font-family: Georgia, serif; font-size: 30px; font-weight: 500; line-height: 1.05; }
.record-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.record-fields .field:first-child, .record-fields .field:last-of-type { grid-column: 1 / -1; }
.record-fields textarea { width: 100%; resize: vertical; border: 1px solid var(--line); border-radius: 4px; padding: 12px; background: white; font: inherit; line-height: 1.5; }
.summary-mode { grid-column: 1 / -1; display: grid; grid-template-columns: 12px 1fr; align-items: center; gap: 2px 8px; padding: 12px 14px; border: 1px solid var(--line); background: white; }
.summary-mode strong { font-size: 10px; }
.summary-mode small { grid-column: 2; color: var(--muted); font-size: 8px; }
.record-actions { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 10px; }
.record-actions button { width: auto; min-height: 42px; }
.record-actions .secondary-button { padding: 0 16px; border: 1px solid var(--ink); border-radius: 4px; background: white; color: var(--ink); font-size: 10px; font-weight: 850; }
.record-history { margin-top: 48px; }
.record-history article { min-height: 52px; display: grid; grid-template-columns: minmax(0, 1fr) 180px 150px; align-items: center; gap: 16px; border-bottom: 1px solid var(--line); text-transform: capitalize; }
.record-history strong { font-size: 11px; }
.record-history span, .record-history small { color: var(--muted); font-size: 9px; }
.attached-resources { grid-column: 1 / -1; border-top: 1px solid var(--line); }
.attached-resources > header { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.attached-resources > header strong { font-size: 11px; }
.attached-resources > header a, .attached-resource-actions a { color: var(--ink); font-size: 9px; font-weight: 850; text-decoration: none; }
.attached-resources article { min-height: 64px; display: grid; grid-template-columns: 1fr 1fr auto; align-items: center; gap: 16px; border-top: 1px solid var(--line); }
.attached-resources article div { display: grid; gap: 4px; }
.attached-resources article div strong { font-size: 10px; }
.attached-resources article span, .attached-resources article p, .attached-resources > p { color: var(--muted); font-size: 9px; }
.attached-resource-actions { display: flex !important; grid-auto-flow: column; gap: 12px !important; }

.library-page { padding: 42px clamp(24px, 4vw, 58px) 72px; }
.library-intro { display: flex; align-items: end; justify-content: space-between; gap: 36px; padding-bottom: 38px; }
.library-intro h2 { max-width: 760px; margin: 9px 0; font-family: Georgia, serif; font-size: clamp(36px, 4.8vw, 64px); font-weight: 500; line-height: 1; }
.library-intro p { max-width: 720px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.rights-legend { flex: 0 0 250px; display: grid; gap: 6px; padding: 20px; border: 1px solid var(--ink); background: var(--yellow); }
.rights-legend span, .rights-legend small { font-size: 9px; }
.rights-legend strong { font-family: Georgia, serif; font-size: 21px; }
.import-status { display: grid; grid-template-columns: repeat(3, 1fr); margin-bottom: 28px; border: 1px solid var(--ink); background: var(--mint); }
.import-status div { display: grid; gap: 5px; padding: 14px 18px; border-right: 1px solid var(--ink); }
.import-status div:last-child { border-right: 0; }
.import-status span { font-size: 8px; font-weight: 850; }
.import-status strong { font-size: 11px; }
.import-status a { color: var(--ink); font-size: 9px; font-weight: 800; }

.queue-page { padding: 42px clamp(24px, 4vw, 58px) 72px; }
.queue-intro { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 48px; align-items: end; padding-bottom: 34px; }
.queue-intro h2 { margin: 8px 0 12px; max-width: 720px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(34px, 4.5vw, 60px); font-weight: 500; line-height: 1; }
.queue-intro p { max-width: 700px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.queue-launch { display: grid; gap: 10px; padding: 18px; border: 1px solid var(--ink); background: var(--white); }
.queue-launch button { min-height: 44px; border: 1px solid var(--ink); border-radius: 5px; background: var(--ink); color: white; font-weight: 800; }
.queue-launch small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.queue-metrics { display: grid; grid-template-columns: repeat(5, 1fr); margin-bottom: 38px; border: 1px solid var(--ink); background: var(--white); }
.queue-metrics article { display: grid; gap: 4px; padding: 16px 18px; border-right: 1px solid var(--ink); }
.queue-metrics article:last-child { border-right: 0; }
.queue-metrics span { color: var(--muted); font-size: 8px; font-weight: 850; text-transform: uppercase; }
.queue-metrics strong { font-family: Georgia, serif; font-size: 28px; font-weight: 500; }
.queue-metrics small { color: var(--muted); font-size: 9px; }
.queue-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 30px; align-items: start; }
.batch-list { display: grid; gap: 12px; }
.batch-list > article { padding: 18px; border: 1px solid var(--line); background: var(--white); }
.batch-list article > header { display: flex; justify-content: space-between; gap: 20px; align-items: start; }
.batch-list header div { display: grid; gap: 5px; }
.batch-list header strong { font-size: 13px; }
.batch-list header small { color: var(--muted); font-size: 9px; }
.queue-status { display: inline-flex; width: fit-content; padding: 5px 7px; border: 1px solid var(--line); border-radius: 4px; background: var(--paper); font-size: 8px; font-weight: 900; text-transform: uppercase; white-space: nowrap; }
.queue-status.completed, .queue-status.idle { border-color: #62b89f; background: var(--mint-soft); }
.queue-status.running, .queue-status.working { border-color: #d3a92d; background: #fff5d2; }
.queue-status.failed, .queue-status.completed_with_errors { border-color: var(--coral); background: #fff0ef; }
.queue-status.paused, .queue-status.stopped { background: #eeeeea; }
.batch-progress { height: 7px; margin: 16px 0; overflow: hidden; border: 1px solid var(--ink); background: var(--paper); }
.batch-progress i { display: block; height: 100%; background: var(--mint); }
.batch-list dl { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; }
.batch-list dl div { display: grid; gap: 4px; border-right: 1px solid var(--line); text-align: center; }
.batch-list dl div:last-child { border-right: 0; }
.batch-list dt { color: var(--muted); font-size: 8px; text-transform: uppercase; }
.batch-list dd { margin: 0; font-size: 14px; font-weight: 800; }
.batch-list footer { display: flex; gap: 8px; min-height: 28px; margin-top: 14px; }
.batch-list footer form { margin: 0; }
.batch-list footer button { min-height: 28px; padding: 0 10px; border: 1px solid var(--ink); border-radius: 4px; background: white; font-size: 9px; font-weight: 800; }
.worker-panel { position: sticky; top: 20px; padding: 22px; background: var(--ink); color: white; }
.worker-panel h3 { margin: 7px 0 18px; font-family: Georgia, serif; font-size: 26px; font-weight: 500; }
.worker-panel > p { color: #bdbdb7; font-size: 10px; line-height: 1.6; }
.worker-panel code { color: var(--mint); }
.worker-panel article { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 13px 0; border-top: 1px solid #3c3c39; }
.worker-panel article div { display: grid; gap: 4px; min-width: 0; }
.worker-panel article strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; }
.worker-panel article small { color: #999992; font-size: 8px; }
.worker-panel article p { grid-column: 1 / -1; margin: 0; color: #bdbdb7; font-size: 9px; }
.worker-note { margin-top: 18px; padding: 14px; border: 1px solid #494945; }
.worker-note strong { font-size: 10px; }
.worker-note p { margin: 6px 0 0; color: #bdbdb7; font-size: 9px; line-height: 1.55; }
.recent-jobs { margin-top: 42px; }
.job-table { border-top: 1px solid var(--ink); }
.job-table-head, .job-table article { display: grid; grid-template-columns: minmax(220px, 1fr) 100px 80px 135px; gap: 16px; align-items: center; }
.job-table-head { padding: 9px 12px; color: var(--muted); font-size: 8px; font-weight: 850; text-transform: uppercase; }
.job-table article { padding: 12px; border-top: 1px solid var(--line); background: var(--white); font-size: 10px; }
.job-table article div { display: grid; gap: 4px; }
.job-table article strong { font-size: 11px; }
.job-table article small, .job-table time { color: var(--muted); font-size: 9px; }
.job-table article p { grid-column: 1 / -1; margin: 0; padding: 8px; background: #fff0ef; color: #8b332e; font-size: 9px; }
.provider-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.provider-grid article { min-height: 190px; display: grid; grid-template-rows: auto 1fr auto; gap: 14px; padding: 18px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.provider-grid article > span { color: var(--coral); font-family: Georgia, serif; font-size: 20px; }
.provider-grid article div { display: grid; align-content: start; gap: 5px; }
.provider-grid strong { font-size: 13px; }
.provider-grid small { color: #17664f; font-size: 8px; font-weight: 850; text-transform: uppercase; }
.provider-grid p { margin: 6px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.provider-grid a { color: var(--ink); font-size: 9px; font-weight: 850; text-decoration: none; }
.library-search { display: grid; grid-template-columns: 1fr 240px auto; align-items: end; gap: 14px; margin: 32px 0 44px; padding: 18px; background: var(--ink); }
.library-search .field > span { color: #d7d7d0; }
.library-search button { min-height: 42px; padding: 0 18px; border: 0; border-radius: 4px; background: var(--mint); color: var(--ink); font-weight: 850; }
.resource-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.resource-grid > article { min-width: 0; display: grid; align-content: start; gap: 14px; padding: 20px; border: 1px solid var(--line); background: white; }
.resource-grid article > header { display: flex; justify-content: space-between; gap: 10px; }
.resource-grid article > header span, .resource-grid article > header strong { font-size: 8px; font-weight: 850; text-transform: uppercase; }
.resource-grid article > header span { color: var(--coral); }
.resource-grid h3 { margin: 0; font-family: Georgia, serif; font-size: 25px; font-weight: 500; line-height: 1.05; }
.resource-grid p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.resource-composer { color: var(--ink) !important; font-weight: 800; }
.resource-collection { color: #17664f !important; font-weight: 800; }
.resource-grid dl { display: grid; gap: 8px; margin: 0; padding: 12px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.resource-grid dl div { display: grid; grid-template-columns: 72px 1fr; gap: 10px; }
.resource-grid dt { color: var(--muted); font-size: 8px; text-transform: uppercase; }
.resource-grid dd { margin: 0; font-size: 9px; }
.resource-primary-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.resource-primary-actions a, .resource-grid summary { color: var(--ink); font-size: 9px; font-weight: 850; }
.resource-primary-actions .button-link { padding: 9px 11px; border-radius: 4px; background: var(--ink); color: white; text-decoration: none; }
.resource-grid details form { display: grid; gap: 12px; margin-top: 12px; padding: 14px; background: #f5f5f1; }
.resource-grid details textarea { width: 100%; resize: vertical; border: 1px solid var(--line); border-radius: 4px; padding: 10px; font: inherit; }
.resource-grid details button { min-height: 38px; border: 0; border-radius: 4px; background: var(--ink); color: white; font-weight: 850; }
.resource-grid article > footer { color: var(--muted); font-size: 8px; line-height: 1.4; }
.catalog-pagination { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--line); }
.catalog-pagination a { color: var(--ink); font-size: 10px; font-weight: 850; text-decoration: none; }
.catalog-pagination a:last-child { justify-self: end; }
.catalog-pagination strong { font-size: 9px; }

.resource-detail-page { padding: 36px clamp(24px, 4vw, 58px) 72px; }
.text-back { color: var(--ink); font-size: 9px; font-weight: 850; text-decoration: none; }
.score-identity { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 44px; align-items: end; padding: 34px 0 42px; }
.score-identity h2 { max-width: 800px; margin: 10px 0; font-family: Georgia, serif; font-size: clamp(38px, 5vw, 68px); font-weight: 500; line-height: .98; }
.score-identity p, .score-identity small { color: var(--muted); font-size: 12px; }
.score-identity aside { display: grid; gap: 8px; padding: 20px; border: 1px solid var(--ink); background: var(--yellow); }
.score-identity aside span { font-size: 8px; font-weight: 850; }
.score-identity aside strong { font-family: Georgia, serif; font-size: 19px; }
.score-identity aside a { color: var(--ink); font-size: 9px; font-weight: 850; }
.score-analysis-panel { margin-bottom: 28px; padding: 26px 30px; border: 1px solid var(--ink); background: #dff5ee; }
.score-analysis-panel > header { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.score-analysis-panel h3 { margin: 5px 0 0; font-family: Georgia, serif; font-size: 27px; font-weight: 500; }
.analysis-status { padding: 6px 8px; border: 1px solid var(--ink); font-size: 8px; font-weight: 850; }
.analysis-stats { display: grid; grid-template-columns: repeat(4, 1fr); margin: 24px 0 18px; border-top: 1px solid var(--ink); border-left: 1px solid var(--ink); }
.analysis-stats div { display: grid; gap: 4px; padding: 13px; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); background: white; }
.analysis-stats span { font-size: 8px; text-transform: uppercase; }
.analysis-stats strong { font-family: Georgia, serif; font-size: 22px; font-weight: 500; }
.score-analysis-panel > p, .analysis-empty > p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.analysis-details { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; margin: 18px 0; }
.analysis-details div { display: grid; grid-template-columns: 78px 1fr; gap: 10px; padding: 9px 0; border-top: 1px solid rgba(24, 24, 22, .25); }
.analysis-details dt { font-size: 8px; font-weight: 850; text-transform: uppercase; }
.analysis-details dd { margin: 0; font-size: 9px; line-height: 1.45; }
.analysis-empty { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--ink); }
.analysis-empty p { max-width: 720px; }
.analysis-empty button { min-height: 42px; padding: 0 18px; border: 0; border-radius: 4px; background: var(--ink); color: white; font-weight: 850; }
.score-analysis-panel .text-button { padding: 0; border: 0; background: transparent; color: var(--ink); font-size: 9px; font-weight: 850; text-decoration: underline; }
.preparation-layout { display: grid; grid-template-columns: minmax(300px, .75fr) minmax(0, 1.35fr); border: 1px solid var(--ink); }
.preparation-form { display: grid; align-content: start; gap: 18px; padding: 30px; border-right: 1px solid var(--ink); background: #f5f5f1; }
.preparation-form h3, .guide-output h3 { margin: 0; font-family: Georgia, serif; font-size: 28px; font-weight: 500; }
.preparation-form textarea { width: 100%; resize: vertical; }
.preparation-form > button { min-height: 44px; border: 0; border-radius: 4px; background: var(--ink); color: white; font-weight: 850; }
.compact-fields { display: grid; grid-template-columns: 1fr 130px; gap: 12px; }
.provider-note { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.5; }
.guide-output { min-width: 0; padding: 30px; background: white; }
.guide-output > header { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 24px; }
.guide-output > header strong { align-self: start; padding: 5px 8px; border: 1px solid var(--line); font-size: 8px; text-transform: uppercase; }
.guide-output article { display: grid; grid-template-columns: 42px 1fr; gap: 14px; padding: 18px 0; border-top: 1px solid var(--line); }
.guide-output article > span { color: var(--coral); font-family: Georgia, serif; font-size: 18px; }
.guide-output h4 { margin: 0 0 7px; font-size: 11px; }
.guide-output article p, .guide-output aside p, .guide-empty p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.6; white-space: pre-line; }
.guide-output aside { margin-top: 18px; padding: 16px; border: 1px solid var(--ink); background: var(--yellow); }
.guide-output aside strong { display: block; margin-bottom: 5px; font-size: 9px; }
.guide-empty { min-height: 330px; display: grid; place-items: center; padding: 40px; border-top: 1px solid var(--line); }

@media (max-width: 1050px) {
  .link-groups { grid-template-columns: 1fr; }
  .planned-group { grid-column: auto; }
  .policy-layout { grid-template-columns: 1fr; }
  .impact-panel { position: relative; min-height: auto; }
  .team-layout { grid-template-columns: 1fr; }
  .team-side { min-height: auto; }
  .role-grid { grid-template-columns: 1fr 1fr; }
  .lesson-row { grid-template-columns: 120px minmax(180px, 1fr) auto; }
  .lesson-actions { grid-column: 1 / -1; justify-content: start; }
  .preserved-grid { grid-template-columns: 1fr 1fr; }
  .launch-layout, .people-layout { grid-template-columns: 1fr; }
  .catalog-layout { grid-template-columns: 1fr; }
  .billing-layout { grid-template-columns: 1fr; }
  .subscription-form { grid-template-columns: 1fr; }
  .subscription-summary { position: static; }
  .family-boundary { grid-template-columns: 40px 1fr; }
  .parent-dashboard-grid { grid-template-columns: 1fr; }
  .parent-self-service { grid-template-columns: 1fr; }
  .messages-layout { grid-template-columns: 1fr; }
  .messages-main { padding-right: 0; }
  .provider-strip { grid-template-columns: 1fr 1fr; }
  .assist-compose { grid-template-columns: 1fr; }
  .record-stage { grid-template-columns: 1fr; gap: 24px; }
  .provider-grid { grid-template-columns: 1fr 1fr; }
  .resource-grid { grid-template-columns: 1fr 1fr; }
  .queue-grid { grid-template-columns: 1fr; }
  .worker-panel { position: relative; top: auto; }
  .catalog-main { padding-right: 0; }
  .people-main { padding-right: 0; }
  .people-side { min-height: auto; }
}

@media (max-width: 760px) {
  .app-shell { display: block; }
  .sidebar { position: relative; width: 100%; height: auto; display: grid; grid-template-columns: 1fr auto; align-items: center; padding: 14px 16px; }
  .brand { padding: 0; }
  .mobile-nav-toggle { width: 42px; height: 42px; display: grid; place-content: center; gap: 5px; padding: 0; border: 1px solid #484844; border-radius: 5px; background: #242423; }
  .mobile-nav-toggle span { width: 18px; height: 2px; display: block; background: white; transition: transform .18s ease, opacity .18s ease; }
  .sidebar.nav-open .mobile-nav-toggle span:first-child { transform: translateY(7px) rotate(45deg); }
  .sidebar.nav-open .mobile-nav-toggle span:nth-child(2) { opacity: 0; }
  .sidebar.nav-open .mobile-nav-toggle span:last-child { transform: translateY(-7px) rotate(-45deg); }
  .primary-nav, .workspace-switcher { display: none; }
  .sidebar.nav-open .primary-nav { grid-column: 1 / -1; display: grid; margin-top: 16px; padding-top: 12px; border-top: 1px solid #383835; }
  .sidebar.nav-open .workspace-switcher { grid-column: 1 / -1; display: grid; margin-top: 16px; }
  .topbar { min-height: 84px; padding: 16px 18px; }
  .environment { display: none; }
  .control-center { padding: 30px 18px 60px; }
  .control-intro { align-items: start; flex-direction: column; }
  .control-intro h2 { font-size: 40px; }
  .environment-key { flex-wrap: wrap; }
  .link-group { padding: 22px 16px; }
  .link-list.compact { grid-template-columns: 1fr; }
  .directory-link { grid-template-columns: 36px minmax(0, 1fr); }
  .directory-link .environment-badge, .directory-link .link-arrow { grid-column: 2; justify-self: start; }
  .planned-address { align-items: start; flex-direction: column; }
  .policy-main, .impact-panel, .history-section { padding-left: 18px; padding-right: 18px; }
  .intro-row { align-items: start; }
  .status-block { display: none; }
  .template-grid, .form-grid { grid-template-columns: 1fr; margin-left: 0; }
  .wide-field, .scope-note, .form-actions { margin-left: 0; }
  .form-actions { align-items: stretch; flex-direction: column; }
  .primary-button { width: 100%; }
  .history-heading { align-items: start; }
  .auth-shell { display: block; }
  .auth-brand-panel { min-height: 290px; padding: 24px 20px; }
  .auth-brand-panel h1 { font-size: 40px; }
  .auth-form-panel { padding: 40px 20px; }
  .role-grid, .operations-grid { grid-template-columns: 1fr; }
  .schedule-page { padding: 30px 18px 60px; }
  .calendar-overview-head { align-items: start; flex-direction: column; }
  .calendar-summary { width: 100%; }
  .calendar-summary div { min-width: 0; flex: 1; }
  .calendar-toolbar { align-items: stretch; flex-direction: column; }
  .calendar-date-nav { flex-wrap: wrap; }
  .calendar-date-nav strong { width: 100%; margin: 4px 0 0; }
  .calendar-teacher-filter { justify-content: space-between; }
  .calendar-teacher-filter select { flex: 1; }
  .week-calendar { min-width: 900px; }
  .calendar-legend { flex-wrap: wrap; padding-top: 10px; padding-bottom: 10px; }
  .calendar-legend span:last-child { width: 100%; margin-left: 0; }
  .operations-intro { margin-top: 42px; }
  .schedule-intro { align-items: start; flex-direction: column; }
  .policy-link { width: 100%; flex-basis: auto; }
  .lesson-row { grid-template-columns: 1fr auto; }
  .lesson-time { grid-column: 1 / -1; }
  .lesson-actions { flex-wrap: wrap; }
  .account-type-fieldset, .check-fieldset, .module-choice-grid, .onboarding-policy-grid, .review-grid, .conversion-flow { grid-template-columns: 1fr; }
  .onboarding-header { grid-template-columns: 1fr auto; }
  .onboarding-header > span { display: none; }
  .onboarding-progress { padding: 0; }
  .onboarding-progress div { min-height: 54px; justify-content: center; padding: 0 6px; }
  .onboarding-progress strong { display: none; }
  .onboarding-main { width: min(100% - 32px, 1080px); padding-top: 34px; }
  .onboarding-actions { align-items: stretch; flex-direction: column-reverse; }
  .onboarding-actions .primary-button { width: 100%; }
  .preserved-grid { grid-template-columns: 1fr 1fr; }
  .growth-confirm { align-items: stretch; flex-direction: column; }
  .launch-page, .people-page, .import-review-page { padding: 30px 18px 60px; }
  .launch-intro, .people-intro, .import-review-intro { align-items: start; flex-direction: column; }
  .launch-score, .people-count { width: 100%; text-align: left; }
  .checklist-row { grid-template-columns: 38px minmax(0, 1fr); }
  .checklist-row > a, .checklist-row > small { grid-column: 2; }
  .import-drop { grid-template-columns: 1fr; }
  .import-history article { grid-template-columns: minmax(0, 1fr) auto; padding: 12px 0; }
  .batch-actions { grid-column: 1 / -1; text-align: left; }
  .preview-totals { width: 100%; grid-template-columns: repeat(3, 1fr); }
  .import-review-actions { align-items: stretch; flex-direction: column-reverse; }
  .import-review-actions form, .import-review-actions .primary-button { width: 100%; }
  .catalog-page { padding: 30px 18px 60px; }
  .billing-page { padding: 30px 18px 60px; }
  .billing-intro { align-items: start; flex-direction: column; }
  .billing-stats { width: 100%; grid-template-columns: repeat(3, 1fr); }
  .billing-main { padding-right: 0; }
  .subscription-page { padding: 30px 18px 60px; }
  .subscription-intro { align-items: start; flex-direction: column; }
  .subscription-total { width: 100%; }
  .subscription-grid { grid-template-columns: 1fr; }
  .portal-form { align-items: stretch; flex-direction: column; }
  .invoice-list article { grid-template-columns: minmax(0, 1fr) auto; }
  .invoice-money { text-align: right; }
  .invoice-action { grid-column: 1 / -1; text-align: left; }
  .invoice-action details form { right: auto; left: 0; }
  .billing-side .side-two { grid-template-columns: 1fr; }
  .family-access-page { padding: 30px 18px 60px; }
  .connections-page { padding: 30px 18px 60px; }
  .connections-intro { align-items: stretch; flex-direction: column; }
  .join-public-link { flex-basis: auto; width: 100%; }
  .teacher-code-grid { grid-template-columns: 1fr; }
  .connection-request-list article { grid-template-columns: minmax(0, 1fr) auto; }
  .request-teacher, .connection-request-list time { grid-column: 1; }
  .connection-review-actions { grid-column: 1 / -1; }
  .join-shell { grid-template-columns: 1fr; }
  .join-copy { min-height: 390px; gap: 48px; padding: 28px 24px; }
  .join-copy h1 { font-size: 44px; }
  .join-panel { padding: 38px 20px 60px; }
  .family-access-intro { align-items: start; flex-direction: column; }
  .family-access-count { width: 100%; }
  .invite-delivery { grid-template-columns: 1fr; }
  .invite-url { grid-template-columns: 1fr; gap: 8px; }
  .invite-url button { min-height: 42px; }
  .family-access-list article { grid-template-columns: minmax(0, 1fr) auto; padding: 14px 0; }
  .family-access-action { grid-column: 1 / -1; text-align: left; }
  .parent-invite-shell { grid-template-columns: 1fr; align-content: start; gap: 28px; padding: 100px 0 50px; }
  .parent-invite-copy h1 { font-size: 42px; }
  .parent-invite-form { padding: 20px; }
  .parent-topbar { padding: 0 16px; }
  .parent-topbar > div > span { display: none; }
  .parent-main { width: min(100% - 32px, 1180px); padding-top: 34px; }
  .parent-hero { grid-template-columns: 1fr; gap: 24px; }
  .parent-balance { width: 100%; }
  .parent-students { grid-template-columns: 1fr; }
  .parent-lesson-list article { grid-template-columns: 76px minmax(0, 1fr); padding: 12px 0; }
  .parent-lesson-list .status-pill { grid-column: 2; justify-self: start; }
  .parent-lesson-actions { grid-column: 1 / -1; }
  .parent-lesson-actions details form { left: 0; right: auto; }
  .parent-payment-table { overflow-x: auto; }
  .parent-payment-table > div { min-width: 520px; }
  .student-activation-notice { align-items: stretch; flex-direction: column; }
  .student-activation-notice a { align-self: flex-start; }
  .student-activation-shell { grid-template-columns: 1fr; align-content: start; gap: 28px; padding: 100px 0 50px; }
  .student-activation-copy h1 { font-size: 44px; }
  .student-activation-form { padding: 20px; }
  .student-topbar { padding: 0 16px; }
  .student-topbar > div > span:first-child { display: none; }
  .student-main { width: min(100% - 30px, 1180px); padding-top: 34px; }
  .student-hero { grid-template-columns: 1fr; gap: 24px; }
  .student-profile { width: 100%; }
  .student-lesson-grid, .student-learning-grid { grid-template-columns: 1fr; }
  .student-learning-grid { gap: 44px; }
  .student-lesson-grid article { grid-template-columns: 92px minmax(0, 1fr); }
  .student-lesson-grid .status-pill { grid-column: 2; justify-self: start; }
  .messages-page { padding: 30px 18px 60px; }
  .messages-intro { align-items: start; flex-direction: column; }
  .message-stats { width: 100%; grid-template-columns: repeat(3, 1fr); }
  .provider-strip { grid-template-columns: 1fr; }
  .provider-strip form, .provider-strip button { width: 100%; }
  .assistant-result { grid-template-columns: 1fr; }
  .message-list article { grid-template-columns: minmax(0, 1fr) auto; }
  .message-source { grid-column: 1; }
  .message-actions { grid-column: 1 / -1; text-align: left; }
  .assist-compose form { grid-template-columns: 1fr; }
  .assist-goal, .assist-compose .primary-button { grid-column: 1; }
  .assist-compose .primary-button { width: 100%; }
  .teaching-page, .lesson-record-page { padding: 30px 18px 60px; }
  .teaching-intro, .record-intro { align-items: start; flex-direction: column; }
  .teaching-stats { width: 100%; grid-template-columns: repeat(3, 1fr); }
  .teaching-list article { grid-template-columns: 84px minmax(0, 1fr); padding: 14px 0; }
  .teaching-list .status-pill { grid-column: 2; justify-self: start; }
  .teaching-list article > a { grid-column: 1 / -1; text-align: left; }
  .record-state { width: 100%; }
  .record-fields { grid-template-columns: 1fr; }
  .record-fields .field:first-child, .record-fields .field:last-of-type, .summary-mode, .record-actions { grid-column: 1; }
  .record-actions { align-items: stretch; flex-direction: column; }
  .record-actions button { width: 100%; }
  .record-history article { grid-template-columns: minmax(0, 1fr) auto; padding: 10px 0; }
  .record-history small { grid-column: 1 / -1; }
  .attached-resources article { grid-template-columns: 1fr; padding: 12px 0; }
  .library-page { padding: 30px 18px 60px; }
  .queue-page { padding: 30px 18px 60px; }
  .queue-intro { grid-template-columns: 1fr; gap: 24px; align-items: start; }
  .queue-metrics { grid-template-columns: 1fr 1fr; }
  .queue-metrics article { border-bottom: 1px solid var(--ink); }
  .queue-metrics article:nth-child(even) { border-right: 0; }
  .queue-metrics article:last-child { grid-column: 1 / -1; border-bottom: 0; }
  .job-table-head { display: none; }
  .job-table article { grid-template-columns: minmax(0, 1fr) auto; }
  .job-table article > span:not(.queue-status), .job-table article time { grid-column: 1; }
  .library-intro { align-items: start; flex-direction: column; }
  .rights-legend { width: 100%; flex-basis: auto; }
  .provider-grid, .resource-grid { grid-template-columns: 1fr; }
  .library-search { grid-template-columns: 1fr; }
  .import-status, .score-identity, .preparation-layout { grid-template-columns: 1fr; }
  .import-status div { border-right: 0; border-bottom: 1px solid var(--ink); }
  .import-status div:last-child { border-bottom: 0; }
  .resource-detail-page { padding: 30px 18px 60px; }
  .score-identity { gap: 22px; }
  .score-analysis-panel { padding: 22px 18px; }
  .score-analysis-panel > header, .analysis-empty { align-items: stretch; flex-direction: column; }
  .analysis-status { align-self: start; }
  .analysis-stats { grid-template-columns: 1fr 1fr; }
  .analysis-details { grid-template-columns: 1fr; }
  .analysis-empty button { width: 100%; }
  .preparation-form { border-right: 0; border-bottom: 1px solid var(--ink); }
  .compact-fields { grid-template-columns: 1fr; }
  .catalog-intro { align-items: start; flex-direction: column; }
  .catalog-stats { width: 100%; grid-template-columns: repeat(3, 1fr); }
  .program-list, .recurrence-fields { grid-template-columns: 1fr; }
  .lesson-type-list article { grid-template-columns: 1fr; }
  .lesson-type-list dl { grid-template-columns: repeat(3, 1fr); }
  .student-enrollment { grid-template-columns: 1fr 1fr; }
  .recurrence-form footer { align-items: stretch; flex-direction: column; }
  .series-list article { grid-template-columns: 1fr; }
  .series-actions { justify-items: start; }
  .series-list form { text-align: left; }
}

/* Family calendar: schedule first, finance secondary. */
.parent-hero h1 {font-size:clamp(2rem,4vw,3.25rem);max-width:800px}
.parent-hero {padding-bottom:24px;gap:24px}
.family-calendar {background:#fff;border:1px solid #dddeda;margin:28px 0 40px;border-radius:16px;overflow:hidden}
.family-calendar-header {display:flex;justify-content:space-between;align-items:center;gap:16px;padding:24px}
.family-calendar-header h2 {font-size:1.6rem;margin:8px 0}.family-calendar-header p,.family-calendar-help{font-size:.85rem;color:#626762}
.family-calendar-header nav {display:flex;gap:8px}.family-calendar-header a {padding:10px 14px;border:1px solid #d7ded9;border-radius:8px;color:#182c24;text-decoration:none}
.family-calendar-header a:hover{background:#dff8ef}.family-calendar-scroll{overflow-x:auto}
.family-calendar-grid{min-width:640px}.family-calendar-weekdays,.family-calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.family-calendar-weekdays{background:#f2f6f3}.family-calendar-weekdays>div{padding:12px;font-size:.8rem;font-weight:700;text-align:center}
.family-calendar-day{min-height:115px;border-top:1px solid #e1e6e2;border-right:1px solid #e1e6e2;padding:8px;min-width:0}.family-calendar-day:last-child{border-right:0}
.family-calendar-day>time{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:.85rem}.outside-month{background:#fafbf9}.outside-month>time{color:#929992}.is-today>time{background:#161b18;color:white;border-radius:50%}
.family-calendar-event{background:#ddf7ed;border-left:3px solid #399c7e;border-radius:5px;margin-top:6px;padding:6px;font-size:.75rem;overflow-wrap:anywhere}.family-calendar-event summary{cursor:pointer}.family-calendar-event summary strong,.family-calendar-event summary span{display:block}.family-calendar-event.cancelled{background:#f1efec;border-color:#999;color:#747474}.family-calendar-event.completed{background:#e8edf5;border-color:#7e95b4}.family-calendar-event p{margin:6px 0}.family-calendar-event a{color:#17553f}.family-calendar-help{padding:0 24px 14px}
@media(max-width:640px){.parent-main{padding:20px 14px}.parent-hero{display:block}.parent-balance{margin-top:18px}.family-calendar-header{padding:16px;align-items:flex-start;flex-direction:column}.family-calendar-grid{min-width:560px}.family-calendar-day{min-height:95px;padding:4px}.family-calendar-help{padding:0 16px 12px}}
@media(max-width:640px){.family-calendar-grid{min-width:0}.family-calendar-weekdays>div{padding:10px 0;font-size:.7rem}.family-calendar-event{padding:3px;font-size:.65rem;border-left-width:2px}.family-calendar-event summary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.family-calendar-day>time{width:24px;height:24px}}
/* Touch-first family home. Desktop retains the full calendar event view. */
.calendar-date{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;border:0;background:transparent;color:inherit;border-radius:50%;font:inherit;cursor:pointer}
.calendar-date[aria-current=date]{background:#172d25;color:white}.calendar-date[aria-pressed=true]{outline:2px solid #409c7e;outline-offset:2px}.calendar-dot{position:absolute;bottom:2px;width:4px;height:4px;background:#278367;border-radius:50%}.calendar-date[aria-current=date] .calendar-dot{background:#b5f1da}
.mobile-day-agenda,.family-mobile-nav{display:none}.parent-main section[id]{scroll-margin-top:80px}.calendar-date:focus-visible,.family-mobile-nav a:focus-visible{outline:3px solid #339275;outline-offset:3px}
@media(max-width:640px){
.parent-portal-body{background:#f4f7f4;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#172d25}
.parent-topbar{position:sticky;top:0;z-index:20;min-height:64px;padding:env(safe-area-inset-top) 20px 0;background:#fff;color:#172d25;border-bottom:1px solid #e6ece7}.parent-topbar .brand{font-size:20px;color:#172d25}.parent-topbar button{color:#53665b;min-height:44px;font-size:12px}.parent-topbar .brand-mark{width:32px;height:32px}
.parent-main{width:auto;margin:0;padding:24px 18px calc(100px + env(safe-area-inset-bottom))}.parent-hero{display:flex;flex-direction:column;align-items:stretch;gap:16px;padding:0;margin-bottom:16px}.parent-hero h1{font-family:inherit;font-size:28px;font-weight:750;line-height:1.15;letter-spacing:-.8px;margin:8px 0}.parent-hero p{font-size:13px;line-height:1.5}.parent-hero .eyebrow{font-size:10px;color:#398267;letter-spacing:1.4px}
.parent-balance{order:2;display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:12px 16px;margin:0;border:1px solid #d9e8de;border-radius:12px;background:#eaf4ed}.parent-balance>span{font-size:11px;text-transform:none;color:#496351}.parent-balance strong{font-family:inherit;font-size:20px;font-weight:750;margin-left:auto}.parent-balance small{width:100%;font-size:10px;text-transform:none}
.parent-students{display:flex;gap:10px;overflow-x:auto;border:0;padding:0 0 2px}.parent-students article{min-width:210px;min-height:72px;border:1px solid #e1e9e2;border-radius:12px;padding:12px 16px}.parent-students strong{font-size:14px}.parent-students span{color:#398267;font-size:9px}.parent-students small{font-size:11px}
.family-calendar{margin:20px 0 24px;border:1px solid #e0e8e1;border-radius:18px;box-shadow:0 4px 18px #17372605}.family-calendar-header{flex-direction:row;align-items:center;padding:18px 14px;gap:6px}.family-calendar-header .eyebrow{display:none}.family-calendar-header h2{font-size:18px;letter-spacing:-.4px;margin:0}.family-calendar-header p{font-size:10px;margin:6px 0 0;max-width:165px}.family-calendar-header nav{gap:3px}.family-calendar-header a{min-height:44px;min-width:36px;padding:12px 8px;font-size:12px;text-align:center;border:0;background:#f2f6f2;border-radius:10px}
.family-calendar-weekdays{background:#fff;color:#78877c}.family-calendar-weekdays>div{font-size:10px;font-weight:600;padding:8px 0}.family-calendar-day{min-height:48px;padding:5px 0;text-align:center;border:0}.outside-month{background:transparent;color:#a8b3aa}.calendar-date{min-width:36px;min-height:36px;font-size:13px}.calendar-interactive .family-calendar-day>.family-calendar-event{display:none}.family-calendar-help{font-size:11px;line-height:1.5;margin:12px 0 0;padding:0 16px 16px}
.calendar-interactive .mobile-day-agenda{display:block;border-top:1px solid #e5ebe5;background:#fbfcfa;padding:18px 16px}.mobile-day-agenda h3{font-size:16px;margin:6px 0 14px}.mobile-day-agenda .eyebrow{font-size:9px;color:#668170;letter-spacing:1.2px}.mobile-day-agenda .family-calendar-event{padding:14px;border-radius:10px;font-size:13px;text-align:left}.mobile-day-agenda .family-calendar-event summary{display:flex;gap:12px;flex-wrap:wrap;list-style:none}.mobile-day-agenda .family-calendar-event summary span{white-space:normal}.mobile-day-agenda .family-calendar-event a{display:inline-flex;align-items:center;min-height:44px;font-size:12px}.day-empty{font-size:13px;color:#6b7d70;line-height:1.6;margin:0}
.parent-dashboard-grid,.parent-self-service{display:flex;flex-direction:column;gap:24px;margin-top:24px;padding-top:0;border:0}.parent-dashboard-grid>section,.parent-self-service>section,.parent-payments{background:#fff;border:1px solid #e0e8e1;border-radius:16px;padding:18px 16px}.parent-section-heading{display:block;margin-bottom:14px}.parent-section-heading>span{display:none}.parent-section-heading h2{font-size:18px;letter-spacing:-.4px}.parent-section-heading p{font-size:12px;line-height:1.5}.quiet-empty{font-size:13px;line-height:1.6;padding:16px 0}.parent-lesson-list article{grid-template-columns:1fr auto;padding:14px 0;gap:12px}.parent-lesson-list time{grid-column:1/-1}.parent-lesson-list strong,.parent-invoice-list strong,.parent-credit-list strong,.parent-request-list strong{font-size:14px}.parent-lesson-list span,.parent-invoice-list span,.parent-invoice-list small,.parent-credit-list span,.parent-request-list span{font-size:12px;line-height:1.5}.parent-lesson-actions{grid-column:1/-1;flex-wrap:wrap}.parent-lesson-actions summary,.parent-credit-list summary{min-height:44px;display:flex;align-items:center;padding:0 12px;background:#edf5ef;border-radius:9px;font-size:12px}.parent-lesson-actions details form,.parent-credit-list details form{position:static;width:100%;max-width:100%;box-shadow:none;margin-top:10px;border-color:#dbe6dc}.parent-lesson-actions details{max-width:100%}.parent-lesson-actions form p{font-size:12px}.parent-lesson-actions button,.parent-credit-list button{min-height:44px;font-size:13px}.parent-payments{margin-top:24px}.parent-payment-table>div{font-size:11px;gap:8px;padding:10px 8px;overflow-wrap:anywhere}
.family-mobile-nav{display:flex;position:fixed;z-index:30;bottom:0;left:0;right:0;justify-content:space-around;background:#ffffffee;backdrop-filter:blur(16px);border-top:1px solid #e0e7e1;padding:8px 10px calc(8px + env(safe-area-inset-bottom))}.family-mobile-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:48px;min-width:64px;text-decoration:none;color:#7b887f;font-size:10px;font-weight:600;border-radius:12px}.family-mobile-nav a>span{font-size:22px;line-height:24px}.family-mobile-nav a[aria-current]{color:#276e51;background:#eaf5ee}
}
