@font-face {
    font-family: "Manrope";
    src: url('/assets/fonts/manrope-latin-v20.woff2') format('woff2');
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
}

:root {
    --ink: #101a32;
    --ink-2: #25304b;
    --muted: #667089;
    --line: #dfe4ee;
    --line-soft: #ebeff5;
    --paper: #ffffff;
    --wash: #f5f7fb;
    --navy: #08142d;
    --navy-2: #0d1d3c;
    --blue: #2d67d7;
    --blue-2: #2456bc;
    --purple: #6c56d9;
    --teal: #148879;
    --amber: #a65d09;
    --red: #b93d55;
    --radius: 16px;
    --shadow: 0 22px 60px rgba(6, 17, 41, .12);
    --content: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Manrope, "Helvetica Neue", Arial, ui-sans-serif, sans-serif; font-size: 16px; line-height: 1.5; text-rendering: optimizeLegibility; }
button, input, textarea, select { font: inherit; }
button, summary, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
img, svg { max-width: 100%; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { letter-spacing: -.04em; line-height: 1.05; }
h1 { font-size: clamp(3rem, 6vw, 6.4rem); }
h2 { font-size: clamp(2.2rem, 4.3vw, 4.6rem); }
h3 { font-size: clamp(1.2rem, 2vw, 1.7rem); }
.keep-together { white-space: nowrap; }
small { line-height: 1.35; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.skip-link { position: fixed; z-index: 9999; left: 1rem; top: 1rem; transform: translateY(-180%); background: #fff; color: #000; padding: .7rem 1rem; border-radius: 8px; box-shadow: var(--shadow); }
.skip-link:focus { transform: none; }
:focus-visible { outline: 3px solid #70a2ff; outline-offset: 3px; }

.eyebrow { margin: 0 0 .7rem; color: var(--blue); font-size: .73rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.eyebrow.light { color: #b8caff; }
.button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; gap: .65rem; border: 1px solid var(--blue); border-radius: 999px; background: var(--blue); color: #fff; padding: .72rem 1.25rem; font-weight: 760; text-decoration: none; cursor: pointer; transition: transform .2s ease, background .2s ease, box-shadow .2s ease; }
.button:hover { background: var(--blue-2); box-shadow: 0 10px 24px rgba(45, 103, 215, .18); transform: translateY(-1px); }
.button:disabled { opacity: .5; cursor: not-allowed; transform: none; box-shadow: none; }
.button-small { min-height: 42px; padding: .6rem 1.05rem; font-size: .88rem; }
.button-light { border-color: #fff; background: #fff; color: var(--navy); }
.button-light:hover { background: #eef3ff; color: var(--navy); }
.button-ghost, .button-secondary { border-color: var(--line); background: #fff; color: var(--ink); box-shadow: none; }
.button-ghost:hover, .button-secondary:hover { border-color: #bdc8da; background: #f7f9fc; color: var(--ink); }
.button-dark-ghost { border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.08); color: #fff; }
.button-dark-ghost:hover { background: rgba(255,255,255,.14); }
.text-link { display: inline-flex; gap: .5rem; align-items: center; color: var(--blue); font-weight: 760; text-decoration: none; }
.text-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.flash { width: min(calc(100% - 2rem), 1000px); margin: 1rem auto; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border: 1px solid; border-radius: 12px; padding: .8rem 1rem; font-weight: 680; position: relative; z-index: 20; }
.flash-success { border-color: #9bd8cb; background: #e9f8f4; color: #096b5f; }
.flash-error { border-color: #efb7c3; background: #fff0f3; color: #952d43; }
.flash button { border: 0; background: transparent; color: currentColor; font-size: 1.3rem; cursor: pointer; }

/* Marketing shell */
.marketing-body { overflow-x: hidden; }
.announcement { min-height: 38px; display: flex; align-items: center; justify-content: center; gap: 1.1rem; background: #060f25; color: #c7d3ef; padding: .5rem 1rem; font-size: .78rem; }
.announcement a { color: #fff; font-weight: 720; text-decoration: none; }
.site-header { height: 82px; position: sticky; top: 0; z-index: 70; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 2rem; padding: 0 max(2rem, calc((100vw - var(--content)) / 2)); background: rgba(8, 20, 45, .84); color: #fff; border: 0; backdrop-filter: blur(18px); transition: background .3s, color .3s; }
.site-header.is-light { background: rgba(255,255,255,.92); color: var(--ink); border: 0; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: inherit; font-size: 1rem; font-weight: 700; letter-spacing: -.035em; line-height: 1.5; text-decoration: none; white-space: nowrap; }
.brand b { font-weight: 520; opacity: .7; }
.brand__mark { width: 42px; height: 42px; flex: 0 0 42px; position: relative; overflow: hidden; background: transparent; }
.brand__mark::before { content: ""; position: absolute; inset: 5px; background: url('/assets/brand/ot-bestie-motion-mark-inverse.png') no-repeat 50% 50% / contain; filter: url('/assets/brand/ot-bestie-mark-brand.svg#brand-colors'); }
.site-header.is-light .brand__mark::before { filter: url('/assets/brand/ot-bestie-mark-brand.svg#brand-colors') drop-shadow(0 0 1px rgba(9,18,42,.9)); }
.brand__name { display: block; color: currentColor; font-size: 1.08rem; font-weight: 700; letter-spacing: -.035em; line-height: 1.5; }
.brand__product { display: block; margin-left: 1px; border-left: 1px solid currentColor; color: #64708a; padding-left: 11px; font-size: .72rem; font-weight: 600; letter-spacing: -.015em; line-height: 1.5; }
.site-header.is-light .brand__product { color: #64708a; }
.brand-lockup-light .brand__product, .auth-brand .brand__product { color: #aeb8d2; }
.site-brand .brand__product { color: #dce5ff; }
.site-header.is-light .site-brand .brand__product { color: #64708a; }
.site-header nav { display: flex; gap: 2rem; align-items: center; }
.site-header nav a { color: inherit; text-decoration: none; font-size: .9rem; font-weight: 650; }
.site-header nav a:hover { opacity: .72; }
.header-actions { display: flex; justify-content: flex-end; gap: .65rem; }
.site-header.is-light .button-ghost { color: var(--ink); }
.menu-button { display: none; border: 0; background: transparent; color: inherit; }

/* Original scroll-driven product hero using the cool reference palette */
.home-hero { height: 225vh; min-height: 1550px; background: var(--navy); color: #fff; position: relative; }
.home-hero-sticky { height: 100vh; min-height: 690px; position: sticky; top: 0; overflow: hidden; isolation: isolate; }
.hero-atmosphere { position: absolute; inset: 0; z-index: -2; background: radial-gradient(circle at 18% 40%, rgba(62,118,204,.34), transparent 33%), radial-gradient(circle at 76% 24%, rgba(90,74,165,.35), transparent 29%), linear-gradient(135deg, #13254a 0%, #08142d 54%, #0a1731 100%); }
.hero-atmosphere::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,11,27,.2), rgba(4,11,27,.58)), repeating-linear-gradient(110deg, transparent 0 110px, rgba(255,255,255,.015) 111px 112px); backdrop-filter: blur(1px); }
.hero-copy { position: absolute; z-index: 3; left: max(3.5vw, calc((100vw - var(--content)) / 2)); top: 19%; width: min(43vw, 610px); will-change: transform, opacity; }
.hero-copy h1 { margin: 0 0 1.5rem; font-size: clamp(3.4rem, 5.1vw, 5.6rem); font-weight: 520; }
.hero-copy > p:not(.eyebrow) { max-width: 570px; color: #c2cce2; font-size: clamp(1.05rem, 1.4vw, 1.28rem); }
.hero-copy > small { display: block; margin-top: 1.25rem; color: #8f9bb7; }
.home-hero[data-stage="tour"] .hero-copy, .home-hero[data-stage="exit"] .hero-copy { pointer-events: none; }
.hero-actions { display: flex; gap: .8rem; margin-top: 2rem; }
.hero-product { position: absolute; z-index: 2; left: 50%; top: 18%; width: min(59vw, 860px); transform: translateX(8%); transform-origin: 50% 50%; will-change: left, top, width, transform; }
.hero-product .product-frame { box-shadow: 0 45px 100px rgba(0,0,0,.42); }
.hero-proof { position: absolute; z-index: 4; left: 0; right: 0; bottom: 0; height: 90px; display: flex; align-items: center; justify-content: center; gap: clamp(1.2rem, 3vw, 3.5rem); color: #8694b5; background: linear-gradient(0deg, #09152e, rgba(9,21,46,.86)); border-top: 1px solid rgba(255,255,255,.06); font-size: .78rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.hero-proof i { width: 4px; height: 4px; border-radius: 50%; background: #5975b1; }
.demo-tour { position: absolute; z-index: 7; left: 50%; top: 50%; width: min(420px, 70%); transform: translate(-50%, -42%); border: 1px solid #c7d3ec; border-radius: 14px; background: rgba(255,255,255,.98); color: var(--ink); padding: 1.7rem; box-shadow: 0 25px 70px rgba(4,12,29,.32); opacity: 0; visibility: hidden; transition: opacity .35s ease, transform .35s ease; }
.home-hero[data-stage="tour"] .demo-tour, .demo-tour.is-open { opacity: 1; visibility: visible; transform: translate(-50%, -50%); }
.demo-tour .tour-progress { color: var(--blue); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }
.demo-tour h2 { margin: .6rem 0; font-size: 1.65rem; }
.demo-tour p { color: var(--muted); }
.demo-tour button { border: 0; border-radius: 9px; background: var(--blue); color: #fff; padding: .65rem .9rem; font-weight: 750; cursor: pointer; }

/* Shared product demo */
.product-frame { overflow: hidden; container-type: inline-size; border: 1px solid rgba(180,195,225,.5); border-radius: 18px; background: #fff; color: var(--ink); aspect-ratio: 1.52; min-height: 440px; }
.product-frame-bar { height: 34px; display: flex; gap: 6px; align-items: center; padding: 0 12px; border-bottom: 1px solid #e6eaf1; background: #f8f9fc; color: #7b859a; font-size: 10px; }
.product-frame-bar i { width: 7px; height: 7px; border-radius: 50%; background: #d4dae5; }
.product-frame-bar span { margin-left: 7px; }
.product-frame-bar b { margin-left: auto; border-radius: 999px; background: #eaf3ff; color: var(--blue); padding: 2px 6px; font-weight: 700; }
.demo-app { height: calc(100% - 34px); display: grid; grid-template-columns: 112px 1fr; background: #f5f7fb; }
.demo-sidebar { background: #101c39; padding: 13px 8px; color: #aab6d1; }
.demo-logo.brand__mark { display: block; width: 25px; height: 25px; min-width: 25px; margin: 0 7px 20px; border-radius: 3px; background-size: 19px; box-shadow: 0 3px 8px rgba(0,0,0,.2); }
.demo-sidebar button { width: 100%; display: flex; align-items: center; gap: 7px; border: 0; border-radius: 6px; background: transparent; color: inherit; padding: 8px 7px; font-size: 8px; text-align: left; cursor: pointer; }
.demo-sidebar button span { width: 12px; text-align: center; }
.demo-sidebar button.is-active { background: rgba(255,255,255,.11); color: #fff; }
.demo-workspace { min-width: 0; }
.demo-topbar { height: 47px; display: flex; align-items: center; gap: 12px; padding: 7px 13px; border-bottom: 1px solid #e6eaf1; background: #fff; }
.demo-topbar > div { display: flex; flex-direction: column; margin-right: auto; }
.demo-topbar small, .demo-topbar strong { font-size: 7px; line-height: 1.25; }
.demo-topbar strong { font-size: 10px; }
.demo-search { width: 150px; border: 1px solid #e0e5ee; border-radius: 6px; padding: 6px 8px; color: #9aa3b6; font-size: 7px; }
.demo-avatar { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; background: #dfe8ff; color: var(--blue); font-size: 7px; font-weight: 800; }
.demo-screen { display: none; height: calc(100% - 47px); position: relative; padding: 17px 17px 48px; overflow: hidden; }
.demo-screen.is-active { display: block; animation: paneIn .25s ease; }
@keyframes paneIn { from { opacity: 0; transform: translateY(4px); } }
.demo-heading { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 14px; }
.demo-heading small { color: #7c869c; font-size: 7px; }
.demo-screen-title { margin: 2px 0 0; font-size: 18px; font-weight: 760; line-height: 1.2; }
.demo-heading button, .workflow-pane button, .demo-heading .demo-button { min-height: 23px; display: inline-flex; align-items: center; border: 0; border-radius: 7px; background: var(--blue); color: #fff; padding: 6px 9px; font-size: 7px; font-weight: 750; }
.demo-heading button, .workflow-pane button { cursor: pointer; }
.demo-metrics { display: grid; grid-template-columns: repeat(3, 1fr); border-block: 1px solid #e3e7ef; margin-bottom: 15px; }
.demo-metrics > div { padding: 10px 12px; border-right: 1px solid #e3e7ef; }
.demo-metrics > div:first-child { padding-left: 0; }
.demo-metrics > div:last-child { border: 0; }
.demo-metrics span, .demo-metrics small { display: block; color: #758096; font-size: 6px; }
.demo-metrics strong { display: block; font-size: 18px; line-height: 1.2; }
.demo-split { display: grid; grid-template-columns: 1.45fr .75fr; gap: 16px; }
.demo-section-title { display: flex; justify-content: space-between; padding-bottom: 7px; border-bottom: 1px solid #e7eaf0; font-size: 8px; }
.demo-section-title span { color: #8c95a8; font-size: 7px; }
.attention-list { margin: 0; padding: 0; list-style: none; }
.attention-list li { display: grid; grid-template-columns: 7px 1fr auto; gap: 7px; align-items: center; padding: 8px 0; border-bottom: 1px solid #edf0f5; }
.attention-list li strong, .attention-list li small { display: block; font-size: 7px; }
.attention-list li small { color: #7c869a; font-size: 6px; }
.attention-list li b { color: var(--blue); font-size: 6px; }
.risk-dot { width: 5px; height: 5px; border-radius: 50%; }
.risk-red { background: var(--red); }.risk-amber { background: #d1902f; }.risk-blue { background: var(--blue); }
.mini-event { display: grid; grid-template-columns: 26px 3px 1fr; gap: 6px; align-items: stretch; padding: 7px 0; }
.mini-event time { font-size: 6px; color: #657088; }
.mini-event i { border-radius: 4px; background: var(--blue); }
.mini-event .tone-green { background: var(--teal); }.mini-event .tone-amber { background: #d1902f; }.mini-event .tone-purple { background: var(--purple); }
.mini-event strong, .mini-event small { display: block; font-size: 7px; }.mini-event small { color: #7c869c; font-size: 6px; }
.demo-footer { position: absolute; left: 0; right: 0; bottom: 0; min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border-top: 1px solid #dfe4ee; background: #fff; padding: 6px 12px; color: #667089; font-size: 7px; }
.demo-footer strong { color: #101a32; }
.demo-footer > div { display: flex; gap: 5px; }
.demo-footer button, .demo-footer .demo-button { min-height: 19px; display: inline-flex; align-items: center; border: 1px solid #cfd7e5; border-radius: 5px; background: #fff; color: #25304b; padding: 4px 7px; font-size: 6px; font-weight: 700; }
.demo-footer button { cursor: pointer; }
.demo-footer button:last-child, .demo-footer .demo-button.is-primary { border-color: #3559c7; background: #3559c7; color: #fff; }
.optimizer-note { display: grid; grid-template-columns: 21px 1fr auto; gap: 8px; align-items: center; border: 1px solid #a9ddd4; background: #f0fbf8; border-radius: 8px; padding: 9px; margin-bottom: 10px; }
.optimizer-note > span { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; background: #d0f2e9; color: var(--teal); font-size: 9px; }
.optimizer-note strong, .optimizer-note small { display: block; font-size: 7px; }.optimizer-note small { color: #637c77; font-size: 6px; }.optimizer-note b { color: var(--teal); font-size: 7px; }
.week-grid { height: 275px; display: grid; grid-template-columns: 38px repeat(5, 1fr); border: 1px solid #e0e5ed; border-radius: 8px; overflow: hidden; background: #fff; }
.week-times, .week-day { display: grid; grid-template-rows: 25px repeat(5, 1fr); position: relative; }
.week-times { color: #8b95a8; font-size: 6px; text-align: right; }.week-times span { padding: 4px; border-bottom: 1px solid #edf0f4; }
.week-day { border-left: 1px solid #e6eaf0; background: repeating-linear-gradient(180deg, transparent 0 49px, #edf0f4 50px); }
.week-day > strong { display: block; padding: 7px; font-size: 7px; text-align: center; }
.week-event { grid-row: var(--row) / span 1; margin: 2px; z-index: 2; border-left: 2px solid var(--blue); border-radius: 4px; background: #edf3ff; padding: 4px; overflow: hidden; }
.week-event.tone-green { border-color: var(--teal); background: #e9f8f4; }.week-event.tone-amber { border-color: #d1902f; background: #fff6e7; }.week-event.tone-purple { border-color: var(--purple); background: #f0edff; }
.week-event b, .week-event span, .week-event small { display: block; font-size: 6px; }.week-event span { font-weight: 800; }.week-event small { color: #667086; }
.demo-table { border-top: 1px solid #e4e8ef; }
.demo-row { display: grid; grid-template-columns: 1.3fr 1fr 1fr .7fr; align-items: center; gap: 10px; padding: 10px 5px; border-bottom: 1px solid #e7ebf1; font-size: 7px; }
.demo-row-head { padding-block: 7px; color: #7f899c; font-size: 6px; text-transform: uppercase; }
.demo-row > span { min-width: 0; }.demo-row > span:first-child { display: flex; align-items: center; gap: 7px; }
.demo-row > span:first-child > i { width: 23px; height: 23px; flex: none; display: grid; place-items: center; border-radius: 50%; background: #e7edff; color: var(--blue); font-style: normal; font-weight: 800; }
.demo-row b, .demo-row small { display: block; }.demo-row small { color: #7f899b; font-size: 6px; }
.demo-row em { display: inline-block; width: 65%; height: 4px; border-radius: 5px; background: #e3e7ee; overflow: hidden; }.demo-row em u { display: block; height: 100%; background: var(--blue); }
.demo-row mark, .review-meta mark { border-radius: 999px; padding: 3px 5px; font-size: 6px; text-transform: capitalize; }
.status-at_risk { background: #ffe8ed; color: #a92f47; }.status-on_track { background: #e5f7f2; color: #087164; }.status-watch { background: #fff2dc; color: #935605; }.status-complete { background: #e8eefb; color: #3b578e; }
.review-sheet { width: 82%; margin: 0 auto; border: 1px solid #dfe4ec; border-radius: 10px; background: #fff; box-shadow: 0 12px 30px rgba(18,29,53,.08); }
.review-meta { display: flex; gap: 9px; align-items: center; padding: 11px; border-bottom: 1px solid #e7eaf0; }.review-meta div { flex: 1; }.review-meta strong, .review-meta small { display: block; font-size: 7px; }.review-meta small { color: #7b8599; font-size: 6px; }.review-meta mark { background: #fff2dc; color: #935605; }
.review-note { padding: 16px; }.review-note > small { color: #7b8599; font-size: 6px; text-transform: uppercase; }.review-note p { margin: 5px 0 13px; font-size: 9px; line-height: 1.45; }
.review-note dl { display: grid; grid-template-columns: repeat(3,1fr); margin: 0; }.review-note dl div { border-right: 1px solid #e5e8ee; padding-right: 8px; }.review-note dl div + div { padding-left: 8px; }.review-note dl div:last-child { border: 0; }.review-note dt { color: #7a8499; font-size: 6px; }.review-note dd { margin: 2px 0 0; font-size: 7px; font-weight: 750; }
.review-actions { display: flex; justify-content: flex-end; gap: 6px; border-top: 1px solid #e5e9ef; padding: 9px 11px; }.review-actions button, .review-actions .demo-review-action { display: inline-flex; align-items: center; border: 1px solid #d4dbe7; border-radius: 6px; background: #fff; padding: 5px 8px; font-size: 7px; }.review-actions .approve { border-color: var(--blue); background: var(--blue); color: #fff; }

/* Marketing sections */
.numbers-section, .workflow-section, .feature-section, .compare-section, .faq-section, .pricing-section, .pricing-detail, .security-overview { width: min(calc(100% - 4rem), var(--content)); margin: 0 auto; padding: clamp(6rem, 10vw, 10rem) 0; }
.section-intro { max-width: 990px; }
.section-intro h2 { font-weight: 520; }
.section-intro h2 span { color: #9ca5b8; }
.number-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 4rem; border-block: 1px solid var(--line); }
.number-grid > div { min-height: 260px; padding: 2.5rem 1.7rem; border-right: 1px solid var(--line); }
.number-grid > div:first-child { padding-left: 0; }.number-grid > div:last-child { border: 0; }
.number-grid strong { display: block; color: var(--blue); font-size: clamp(3rem, 5vw, 5rem); font-weight: 500; letter-spacing: -.06em; }
.number-grid span { display: block; margin: .4rem 0 1.2rem; color: var(--muted); font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.number-grid p { color: var(--muted); }
.workflow-section { display: grid; grid-template-columns: .8fr 1fr; gap: 5rem; align-items: start; }
.workflow-copy { position: sticky; top: 130px; }
.workflow-copy h2 { font-size: clamp(2.6rem, 4vw, 4.3rem); font-weight: 520; }
.workflow-copy > p:not(.eyebrow) { color: var(--muted); font-size: 1.08rem; }
.workflow-tabs { display: flex; flex-direction: column; border-top: 1px solid var(--line); }
.workflow-tabs button { display: grid; grid-template-columns: 44px 1fr; gap: 1rem; align-items: start; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--muted); padding: 1.5rem 0; text-align: left; cursor: pointer; }
.workflow-tabs button > b { color: #a0a8b8; font-size: .73rem; }
.workflow-tabs strong, .workflow-tabs small { display: block; }.workflow-tabs strong { margin-bottom: .3rem; color: var(--ink); font-size: 1.12rem; }.workflow-tabs small { max-width: 470px; font-size: .9rem; }
.workflow-tabs button.is-active > b { color: var(--blue); }.workflow-tabs button.is-active strong { color: var(--blue); }
.workflow-visual { grid-column: 2; min-height: 430px; margin-top: -3rem; display: grid; place-items: center; border-radius: 30px; background: linear-gradient(145deg, #e9eefb, #f5f7fb 48%, #e9e6f8); padding: clamp(2rem, 5vw, 4rem); }
.workflow-pane { display: none; width: 100%; border: 1px solid #d8deeb; border-radius: 16px; background: #fff; padding: clamp(1.5rem, 3vw, 2.4rem); box-shadow: var(--shadow); }
.workflow-pane.is-active { display: block; animation: paneIn .3s ease; }
.visual-label { color: var(--blue); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.workflow-pane h3 { margin: .7rem 0 1.4rem; font-size: 2rem; }
.ledger-line { height: 10px; position: relative; overflow: hidden; border-radius: 999px; background: #e5e9f0; }.ledger-line i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--blue),#6f8ce8); }
.ledger-values { display: grid; grid-template-columns: 1fr 1fr auto; gap: 1rem; margin-top: .8rem; }.ledger-values span { color: var(--muted); font-size: .8rem; }.ledger-values span b { display: block; color: var(--ink); font-size: 1.3rem; }.ledger-values mark { align-self: center; border-radius: 999px; background: #ffe8ed; color: var(--red); padding: .4rem .6rem; font-size: .72rem; font-weight: 750; }
.workflow-pane > p { margin: 1.5rem 0 0; color: var(--muted); }
.workflow-pane ul { margin: 0; padding: 0; list-style: none; }.workflow-pane li { display: grid; grid-template-columns: 100px 1fr auto; gap: 1rem; align-items: center; padding: 1rem 0; border-bottom: 1px solid var(--line-soft); font-size: .84rem; }.workflow-pane li span { color: var(--muted); }.workflow-pane li mark { border-radius: 999px; padding: .35rem .55rem; background: #ebf2ff; color: var(--blue); }
.workflow-pane blockquote { margin: 1rem 0 1.5rem; border-left: 3px solid var(--purple); padding: 1rem 0 1rem 1.25rem; color: var(--ink-2); font-size: 1.05rem; line-height: 1.65; }
.inline-actions { display: flex; justify-content: flex-end; gap: .6rem; }.inline-actions button:first-child { border: 1px solid var(--line); background: #fff; color: var(--ink); }
.belief-section { min-height: 640px; display: grid; place-items: center; padding: clamp(6rem,9vw,8rem) 2rem; background: radial-gradient(circle at 72% 22%, rgba(90,83,180,.38), transparent 30%), linear-gradient(135deg,#0c1731,#08142d); color: #fff; }
.belief-section > div { width: min(100%, 1020px); text-align: center; }
.belief-section h2 { max-width: 940px; margin: 0 auto; font-size: clamp(2.7rem,5vw,4.7rem); font-weight: 500; line-height: 1.05; }.belief-section p:not(.eyebrow) { width: min(100%, 700px); margin: 1.5rem auto 0; color: #c6cfe1; font-size: 1.1rem; line-height: 1.65; }.belief-section .button { margin-top: 1.75rem; }
.feature-stage { display: grid; grid-template-columns: 1.15fr .85fr; gap: 5rem; align-items: center; margin-top: 4.5rem; }
.feature-image { min-height: 500px; display: grid; place-items: center; border-radius: 30px; background: linear-gradient(150deg,#eef3ff,#ece9fb); padding: 3rem; }
.review-flow { width: 100%; display: grid; gap: .8rem; }.review-flow > span { display: block; border: 1px solid #d8deeb; border-radius: 14px; background: #fff; padding: 1.2rem; box-shadow: 0 14px 36px rgba(29,42,74,.08); font-weight: 750; }.review-flow small { display: block; color: var(--muted); font-weight: 500; }.review-flow i { color: var(--blue); padding-left: 1.5rem; font-style: normal; transform: rotate(90deg); transform-origin: 0; }
.feature-list article { padding: 1.6rem 0; border-bottom: 1px solid var(--line); }.feature-list article:first-child { padding-top: 0; }.feature-list b { font-size: 1.15rem; }.feature-list p { margin: .55rem 0 0; color: var(--muted); }
.compare-section { display: grid; grid-template-columns: .75fr 1.25fr; gap: 5rem; }.compare-intro { position: sticky; top: 130px; align-self: start; }.compare-intro h2 { font-size: clamp(2.4rem, 3.5vw, 3.8rem); font-weight: 520; }.compare-intro p:not(.eyebrow) { color: var(--muted); }
.compare-table { border-top: 1px solid var(--line); }.compare-row { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 1rem; align-items: center; min-height: 78px; border-bottom: 1px solid var(--line); font-size: .9rem; }.compare-row > span { color: var(--muted); }.compare-row > span:last-child { color: var(--ink); font-weight: 650; }.compare-row i { display: inline-grid; width: 20px; height: 20px; place-items: center; margin-right: .5rem; border-radius: 50%; background: #e5f7f2; color: var(--teal); font-style: normal; font-size: .7rem; }.compare-head { min-height: 55px; color: var(--muted); font-size: .7rem; font-weight: 750; text-transform: uppercase; letter-spacing: .06em; }
.faq-section { display: grid; grid-template-columns: .65fr 1fr; gap: 7rem; }.faq-section h2 { font-size: clamp(2.5rem, 4vw, 4rem); font-weight: 520; }.faq-list { border-top: 1px solid var(--line); }.faq-list details { border-bottom: 1px solid var(--line); }.faq-list summary { position: relative; padding: 1.4rem 2.5rem 1.4rem 0; cursor: pointer; list-style: none; font-weight: 750; }.faq-list summary::after { content: "+"; position: absolute; right: .4rem; color: var(--blue); font-size: 1.4rem; font-weight: 400; }.faq-list details[open] summary::after { content: "−"; }.faq-list p { max-width: 700px; padding: 0 2rem 1.5rem 0; color: var(--muted); }
.final-cta { min-height: 580px; display: grid; place-content: center; justify-items: center; padding: 6rem 2rem; text-align: center; color: #fff; background: radial-gradient(circle at 30% 10%,rgba(50,110,215,.4),transparent 30%),linear-gradient(135deg,#0c1835,#070f22); }.final-cta h2 { max-width: 920px; font-weight: 500; }.final-cta > p:not(.eyebrow) { max-width: 650px; color: #bbc6dc; font-size: 1.1rem; }.final-cta > div { display: flex; gap: .8rem; margin-top: 1rem; }
.site-footer { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 4rem; padding: 5rem max(2rem, calc((100vw - var(--content)) / 2)) 2rem; background: #071025; color: #d3dbec; }.site-footer > div { display: flex; flex-direction: column; align-items: flex-start; gap: .65rem; }.site-footer .brand { color: #fff; }.site-footer p { max-width: 430px; color: #8896b5; }.site-footer a { text-decoration: none; }.site-footer a:hover { color: #fff; }.site-footer strong { margin-bottom: .5rem; color: #fff; }.footer-fine { grid-column: 1 / -1; padding-top: 2rem; border-top: 1px solid rgba(255,255,255,.1); font-size: .75rem; }

/* Pricing and security */
.page-hero { min-height: 620px; display: grid; align-content: center; padding: 8rem max(2rem, calc((100vw - var(--content)) / 2)); color: #fff; background: radial-gradient(circle at 78% 25%,rgba(98,80,205,.42),transparent 28%),linear-gradient(135deg,#12264d,#08142d 65%); }.page-hero h1 { max-width: 1150px; margin: .3rem 0 1.5rem; font-size: clamp(3.3rem, 6vw, 6rem); font-weight: 500; }.page-hero > p:not(.eyebrow) { max-width: 690px; color: #c2cce0; font-size: 1.15rem; }
.pricing-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: start; }.pricing-grid article { border-top: 4px solid var(--blue); padding: 2.5rem 0; }.pricing-grid article + article { padding: 2.5rem; border: 1px solid #cfd8ea; border-top: 4px solid var(--purple); border-radius: 0 0 22px 22px; background: linear-gradient(155deg,#fff,#f8f7ff); box-shadow: var(--shadow); }.pricing-grid h2 { min-height: 130px; font-size: clamp(2rem, 3vw, 3rem); font-weight: 520; }.price { display: flex; align-items: baseline; gap: .4rem; }.price strong { font-size: 4rem; letter-spacing: -.06em; }.price span, .annual { color: var(--muted); }.annual { margin-top: -.5rem; }.pricing-grid ul { min-height: 310px; margin: 2rem 0; padding: 1.5rem 0; border-block: 1px solid var(--line); list-style: none; }.pricing-grid li { position: relative; padding: .6rem 0 .6rem 1.7rem; }.pricing-grid li::before { content: "✓"; position: absolute; left: 0; color: var(--teal); font-weight: 900; }.pricing-grid article > small { display: block; margin-top: 1rem; color: var(--muted); }.pricing-note { margin: 3rem auto 0; color: var(--muted); text-align: center; }
.pricing-detail { display: grid; grid-template-columns: .7fr 1.3fr; gap: 6rem; border-top: 1px solid var(--line); }.pricing-detail h2 { font-size: 3.2rem; font-weight: 520; }.pricing-detail ul { margin: 0; padding: 0; list-style: none; }.pricing-detail li { display: grid; grid-template-columns: .6fr 1fr; gap: 1rem; padding: 1.4rem 0; border-bottom: 1px solid var(--line); }.pricing-detail li span { color: var(--muted); }
.security-hero { background: radial-gradient(circle at 78% 25%,rgba(35,136,119,.35),transparent 28%),linear-gradient(135deg,#102d3f,#08142d 65%); }.security-overview { display: grid; grid-template-columns: .75fr 1.25fr; gap: 6rem; }.security-overview h2 { font-size: clamp(2.5rem, 4vw, 4rem); font-weight: 520; }.security-list { border-top: 1px solid var(--line); }.security-list article { display: grid; grid-template-columns: 45px 1fr; gap: 1.2rem; padding: 2rem 0; border-bottom: 1px solid var(--line); }.security-list article > span { color: var(--blue); font-size: .73rem; font-weight: 800; }.security-list h3 { margin: 0 0 .7rem; font-size: 1.35rem; }.security-list p { margin: 0; color: var(--muted); }.release-gate { min-height: 650px; display: grid; place-items: center; padding: 6rem 2rem; background: linear-gradient(135deg,#0e203f,#071126); color: #fff; text-align: center; }.release-gate > div { max-width: 950px; }.release-gate h2 { font-weight: 500; }.release-gate p:not(.eyebrow) { max-width: 760px; margin: 1.5rem auto 2rem; color: #bcc7dc; font-size: 1.08rem; }

/* Authentication */
.auth-body { min-height: 100vh; display: grid; place-items: center; padding: 2rem; background: radial-gradient(circle at 70% 20%,rgba(93,76,190,.35),transparent 30%),linear-gradient(135deg,#0c1c3a,#08142d); }.auth-shell { width: min(100%, 470px); }.auth-brand { margin: 0 0 1.5rem; color: #fff; }.auth-panel { border: 1px solid rgba(255,255,255,.2); border-radius: 20px; background: #fff; padding: clamp(1.8rem, 5vw, 3rem); box-shadow: 0 35px 90px rgba(0,0,0,.28); }.auth-panel h1 { margin: .2rem 0 1rem; font-size: 2.5rem; font-weight: 560; }.auth-panel > p:not(.eyebrow) { color: var(--muted); }.stack-form { display: flex; flex-direction: column; gap: 1rem; margin-top: 1.5rem; }.stack-form label, .popover-form label, .settings-form label, .commit-import label { display: flex; flex-direction: column; gap: .4rem; }.stack-form label > span, .popover-form label > span, .settings-form label > span, .commit-import label > span { color: var(--ink-2); font-size: .8rem; font-weight: 760; }.stack-form input, .popover-form input, .popover-form select, .popover-form textarea, .settings-form input, .settings-form select, .review-form input, .inline-form select, .commit-import input { width: 100%; border: 1px solid #cfd6e2; border-radius: 9px; background: #fff; color: var(--ink); padding: .72rem .78rem; }.code-input { font-size: 1.6rem !important; letter-spacing: .28em; text-align: center; }.auth-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .35rem .65rem; margin: 1.2rem 0 0; color: #9eabc5; font-size: .78rem; line-height: 1.6; text-align: center; }.auth-foot a { color: #fff; }.auth-panel .text-link { margin-top: 1.2rem; }.compact-form { margin-top: 1.5rem; }.compact-form .button { width: 100%; }.local-mail-preview { margin-top: 1.25rem; }.local-mail-preview > span { display: block; color: var(--ink-2); font-size: .8rem; font-weight: 760; }.local-mail-preview p { margin: .25rem 0 1rem; color: var(--muted); }

/* Application shell */
.app-body { background: var(--wash); font-size: 14px; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 230px 1fr; }
.app-sidebar { min-height: 100vh; position: sticky; z-index: 50; top: 0; height: 100vh; display: flex; flex-direction: column; background: var(--navy); color: #aebbd4; padding: 20px 14px; overflow-y: auto; }.app-sidebar .brand { padding: 2px 8px 22px; color: #fff; }.app-sidebar .brand__mark { width: 34px; height: 34px; flex-basis: 34px; background-size: 25px; }.app-sidebar .brand__name { font-size: .96rem; }.app-sidebar .brand__product { font-size: .62rem; }.workspace-name { display: grid; grid-template-columns: 34px 1fr; gap: 9px; align-items: center; margin-bottom: 18px; border-block: 1px solid rgba(255,255,255,.1); padding: 14px 7px; }.workspace-name > span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; background: #253961; color: #dfe8fa; font-weight: 800; }.workspace-name strong, .workspace-name small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.workspace-name strong { color: #fff; font-size: .78rem; }.workspace-name small { color: #8090af; font-size: .68rem; text-transform: capitalize; }.app-sidebar nav { display: flex; flex-direction: column; gap: 3px; }.app-sidebar nav a { display: flex; align-items: center; gap: 10px; border-radius: 8px; padding: 9px 10px; color: inherit; font-size: .82rem; font-weight: 650; text-decoration: none; }.app-sidebar nav a span { width: 17px; color: #7f91b4; text-align: center; }.app-sidebar nav a:hover, .app-sidebar nav a.is-active { background: rgba(255,255,255,.09); color: #fff; }.app-sidebar nav a.is-active span { color: #9db9ff; }.sidebar-bottom { margin-top: auto; display: flex; flex-direction: column; padding: 12px 9px 0; border-top: 1px solid rgba(255,255,255,.1); }.sidebar-bottom a, .sidebar-bottom button { border: 0; background: transparent; color: #8493b0; padding: 7px 0; font: inherit; font-size: .75rem; text-align: left; text-decoration: none; cursor: pointer; }.sidebar-bottom a:hover, .sidebar-bottom button:hover { color: #fff; }
.app-sidebar .brand { gap: 7px; padding-inline: 5px; }
.app-sidebar .brand__mark { width: 32px; flex-basis: 32px; }
.app-sidebar .brand__name { font-size: .9rem; }
.app-sidebar .brand__product { padding-left: 8px; font-size: .58rem; }
.app-canvas { min-width: 0; }.app-topbar { height: 78px; display: flex; align-items: center; gap: 1rem; padding: 0 28px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.9); backdrop-filter: blur(14px); }.app-topbar > div:first-of-type { margin-right: auto; }.app-topbar p { margin: 0; color: var(--muted); font-size: .65rem; }.app-topbar h1 { margin: 0; font-size: 1.08rem; letter-spacing: -.02em; }.app-menu-button { display: none; border: 0; background: transparent; font-size: 1.3rem; }.topbar-actions { display: flex; align-items: center; gap: 10px; }.app-search input { width: 230px; border: 1px solid var(--line); border-radius: 9px; background: #f8f9fc; padding: .55rem .75rem; font-size: .76rem; }.notification-button { position: relative; width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 9px; background: #fff; cursor: pointer; }.notification-button i { position: absolute; right: 6px; top: 5px; width: 5px; height: 5px; border-radius: 50%; background: var(--red); }.user-avatar { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 50%; background: #e4ebff; color: var(--blue); font-size: .72rem; font-weight: 800; }.workspace-main { max-width: 1500px; margin: 0 auto; padding: 32px; }.app-page-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; margin-bottom: 28px; }.app-page-head > div:first-child { max-width: 780px; }.app-page-head h2 { margin: .2rem 0 .7rem; font-size: clamp(1.9rem, 3vw, 3rem); font-weight: 560; }.app-page-head > div > p:not(.eyebrow) { color: var(--muted); font-size: .9rem; }.page-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .6rem; }.inline-form { display: flex; gap: .5rem; }.inline-form select { min-height: 46px; }
.metric-strip { display: grid; grid-template-columns: repeat(4,1fr); margin-bottom: 26px; border-block: 1px solid var(--line); background: #fff; }.metric-strip > div { padding: 20px; border-right: 1px solid var(--line); }.metric-strip > div:last-child { border: 0; }.metric-strip span, .metric-strip small, .metric-strip strong { display: block; }.metric-strip span { color: var(--muted); font-size: .68rem; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }.metric-strip strong { margin: 3px 0; font-size: 1.75rem; letter-spacing: -.04em; }.metric-strip small { color: var(--muted); font-size: .68rem; }.metric-strip .metric-alert strong { color: var(--red); }
.dashboard-columns { display: grid; grid-template-columns: 1.55fr .7fr; gap: 22px; align-items: start; }.work-section, .deadline-section, .week-preview, .data-section, .record-section, .team-list-section, .settings-section, .report-figure, .validation-results, .upload-section, .import-rules { border: 1px solid var(--line); border-radius: var(--radius); background: #fff; padding: 22px; box-shadow: 0 7px 24px rgba(20,32,59,.04); }.section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 16px; }.section-heading h3 { margin: 0; font-size: 1.2rem; letter-spacing: -.025em; }.section-heading a { color: var(--blue); font-size: .76rem; font-weight: 700; text-decoration: none; }.attention-rows { border-top: 1px solid var(--line); }.attention-row { display: grid; grid-template-columns: 37px 1.3fr 1fr auto auto; gap: 12px; align-items: center; min-height: 72px; border-bottom: 1px solid var(--line-soft); color: inherit; text-decoration: none; }.attention-row:hover { background: #fafbfe; }.student-avatar { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: #e7edff; color: var(--blue); font-weight: 800; }.student-avatar.large { width: 58px; height: 58px; font-size: 1.2rem; }.attention-row strong, .attention-row small { display: block; }.attention-row small { color: var(--muted); font-size: .69rem; }.attention-progress > span { display: block; height: 5px; border-radius: 4px; background: #e4e8ef; overflow: hidden; }.attention-progress i { display: block; height: 100%; background: var(--blue); }.attention-progress small { margin-top: 4px; }.status { display: inline-flex; align-items: center; width: max-content; border-radius: 999px; padding: .32rem .55rem; font-size: .62rem; font-weight: 800; letter-spacing: .035em; text-transform: capitalize; white-space: nowrap; }.status-at_risk { background: #ffe7ed; color: #a92d47; }.status-watch { background: #fff1d9; color: #905304; }.status-on_track { background: #e1f6f0; color: #096e62; }.status-complete { background: #e7edfb; color: #3e5d98; }.status-neutral { background: #edf0f5; color: #5d6678; }.empty-state { display: grid; min-height: 190px; place-content: center; justify-items: center; padding: 2rem; text-align: center; color: var(--muted); }.empty-state strong { color: var(--ink); }.empty-state p { max-width: 470px; margin: .4rem 0 0; }.empty-state.compact { min-height: 120px; }.deadline-list { margin: 0; padding: 0; list-style: none; }.deadline-list li { display: grid; grid-template-columns: 45px 1fr; gap: 10px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line-soft); }.deadline-list time { width: 40px; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; text-align: center; }.deadline-list time b, .deadline-list time span { display: block; }.deadline-list time b { background: #edf3ff; color: var(--blue); font-size: .58rem; text-transform: uppercase; }.deadline-list time span { padding: 2px; font-weight: 800; }.deadline-list strong, .deadline-list small { display: block; }.deadline-list small { color: var(--muted); font-size: .68rem; }.week-preview { margin-top: 22px; }.week-preview-grid { display: grid; grid-template-columns: repeat(5,1fr); border-top: 1px solid var(--line); }.week-preview-grid > div { min-height: 170px; border-right: 1px solid var(--line); padding: 10px; }.week-preview-grid > div:last-child { border: 0; }.week-preview-grid > div > strong { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: .67rem; text-transform: uppercase; }.week-preview-grid > div > strong small { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; background: #eef2f8; color: var(--ink); }.open-day { display: block; padding-top: 1rem; color: #9aa3b3; font-size: .67rem; }.preview-event { display: block; margin-top: 8px; border-left: 3px solid var(--blue); border-radius: 5px; background: #edf3ff; padding: 7px; text-decoration: none; }.preview-event time, .preview-event b, .preview-event small { display: block; font-size: .65rem; }.preview-event small { color: var(--muted); }
.action-popover { position: relative; z-index: 12; }
.action-popover[open] { z-index: 1000; }
.action-popover[open]::before { content: ""; position: fixed; z-index: 1000; inset: 0; background: rgba(8, 20, 45, .48); backdrop-filter: blur(2px); cursor: default; }
.action-popover > summary { list-style: none; }
.action-popover > summary::-webkit-details-marker { display: none; }
.popover-form { width: min(420px, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); max-height: calc(100dvh - 2rem); position: fixed; z-index: 1001; left: 50%; top: 50%; right: auto; display: flex; flex-direction: column; gap: .9rem; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; transform: translate(-50%, -50%); border: 1px solid var(--line); border-radius: 16px; background: #fff; padding: 24px; box-shadow: 0 28px 90px rgba(6, 17, 41, .28); }
.popover-form.wide { width: min(720px, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); max-height: calc(100dvh - 2rem); }
.popover-form h3 { flex: 1; margin: 0; }
.popover-form > p { color: var(--muted); font-size: .78rem; }
.popover-form > .button:last-child { width: 100%; margin-top: .15rem; }
.popover-form .modal-header { position: sticky; z-index: 2; top: -24px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; background: #fff; }
.popover-form .modal-close { width: 40px; height: 40px; flex: 0 0 40px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--ink-2); padding: 0; font-size: 1.35rem; line-height: 1; cursor: pointer; }
.popover-form .modal-close:hover { border-color: #bdc8da; background: #f3f6fb; }
.has-open-modal { overflow: hidden; }
.form-grid { display: grid; gap: .8rem; }.form-grid.two { grid-template-columns: 1fr 1fr; }.form-grid.three { grid-template-columns: repeat(3,1fr); }.popover-form textarea { resize: vertical; }.data-section { padding: 0; overflow: hidden; }.table-toolbar { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-end; padding: 18px 22px; }.table-toolbar strong, .table-toolbar span { display: block; }.table-toolbar span { color: var(--muted); font-size: .68rem; }.table-toolbar label { display: flex; align-items: center; gap: .6rem; }.table-toolbar select { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: .5rem; font-size: .75rem; }.data-table-wrap { overflow-x: auto; }.data-table { width: 100%; border-collapse: collapse; min-width: 980px; }.data-table th { padding: 10px 14px; border-block: 1px solid var(--line); background: #f9fafc; color: var(--muted); font-size: .62rem; letter-spacing: .05em; text-align: left; text-transform: uppercase; }.data-table td { padding: 13px 14px; border-bottom: 1px solid var(--line-soft); vertical-align: middle; }.data-table tr:last-child td { border: 0; }.data-table td > strong, .data-table td > small { display: block; }.data-table td > small { color: var(--muted); font-size: .66rem; }.student-cell { display: flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; }.student-cell strong, .student-cell small { display: block; }.student-cell small { color: var(--muted); font-size: .66rem; }.table-progress { display: flex; align-items: center; gap: 8px; }.table-progress > span { width: 75px; height: 5px; border-radius: 4px; background: #e4e8ef; overflow: hidden; }.table-progress i { display: block; height: 100%; background: var(--blue); }.table-progress b { font-size: .68rem; }.row-link { color: var(--blue); font-size: 1.1rem; text-decoration: none; }
.student-header { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-bottom: 22px; }.student-identity { display: flex; gap: 14px; align-items: center; }.student-identity h2 { margin: 0; font-size: 2.2rem; }.student-identity p:not(.eyebrow) { margin: .3rem 0 0; color: var(--muted); }.record-tabs { display: flex; gap: 4px; overflow-x: auto; margin-bottom: 22px; border-bottom: 1px solid var(--line); }.record-tabs a { border-bottom: 2px solid transparent; color: var(--muted); padding: 10px 14px; font-weight: 700; text-decoration: none; white-space: nowrap; }.record-tabs a:hover, .record-tabs a.is-active { border-color: var(--blue); color: var(--blue); }.record-section { margin-bottom: 22px; }.plan-version { border-top: 1px solid var(--line); }.plan-version:last-child { border-bottom: 1px solid var(--line); }.plan-version summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 14px 0; cursor: pointer; list-style: none; }.plan-version summary div { display: grid; grid-template-columns: auto 1fr; gap: 3px 10px; align-items: center; }.plan-version summary small { grid-column: 2; color: var(--muted); }.plan-version summary > span { color: var(--blue); font-size: .72rem; }.requirement-list { padding: 6px 0 18px 33px; }.requirement-list article { border-left: 2px solid #dce5f7; padding: 3px 0 15px 18px; }.requirement-title { display: grid; grid-template-columns: 36px 1fr auto; gap: 10px; align-items: center; }.service-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; background: #e8efff; color: var(--blue); font-size: .65rem; font-weight: 900; }.requirement-title strong, .requirement-title small { display: block; }.requirement-title small { color: var(--muted); font-size: .68rem; }.ledger-summary { display: grid; grid-template-columns: repeat(4,1fr); margin: 17px 0 12px; border-block: 1px solid var(--line-soft); }.ledger-summary div { padding: 11px; border-right: 1px solid var(--line-soft); }.ledger-summary div:last-child { border: 0; }.ledger-summary span, .ledger-summary strong { display: block; }.ledger-summary span { color: var(--muted); font-size: .62rem; text-transform: uppercase; }.ledger-line.app { overflow: visible; }.ledger-line.app > span { position: absolute; top: -4px; width: 2px; height: 18px; background: var(--ink); }.requirement-list article > p { margin: 12px 0 0; color: var(--muted); }.record-grid { display: grid; grid-template-columns: 1fr .7fr; gap: 22px; }.simple-list { margin: 0; padding: 0; list-style: none; }.simple-list li { display: grid; grid-template-columns: auto 1fr; gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--line-soft); }.simple-list p { margin: 4px 0 0; color: var(--muted); }.timeline { position: relative; }.timeline::before { content: ""; position: absolute; top: 8px; bottom: 8px; left: 31px; width: 1px; background: var(--line); }.timeline article { position: relative; display: grid; grid-template-columns: 64px 1fr; gap: 15px; padding: 10px 0; }.timeline time { z-index: 1; align-self: start; border-radius: 999px; background: #e8efff; color: var(--blue); padding: 4px; font-size: .67rem; font-weight: 750; text-align: center; }.timeline p { margin: 4px 0; color: var(--muted); }.timeline small { color: var(--muted); text-transform: capitalize; }.availability-grid { display: flex; flex-wrap: wrap; gap: 8px; }.availability-grid > span { border: 1px solid var(--line); border-radius: 8px; background: #fafbfe; padding: 8px 10px; }.availability-grid b { margin-right: 6px; }.availability-grid small { display: block; color: var(--muted); text-transform: capitalize; }
.week-navigator { display: flex; align-items: center; justify-content: center; gap: 1.2rem; margin: -8px 0 18px; }.week-navigator a { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 8px; background: #fff; text-decoration: none; }.schedule-status { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border: 1px solid var(--line); border-radius: 12px; background: #fff; padding: 13px 16px; margin-bottom: 12px; }.schedule-status > div:first-child { display: flex; align-items: center; gap: 10px; }.schedule-status strong, .schedule-status small { display: block; }.schedule-status small { color: var(--muted); }.schedule-explanations { margin-bottom: 12px; border: 1px solid #ebc98f; border-radius: 10px; background: #fffaf1; padding: 11px 15px; }.schedule-explanations summary { color: var(--amber); font-weight: 750; cursor: pointer; }.schedule-explanations ul { margin: 10px 0 0; padding: 0; list-style: none; }.schedule-explanations li { display: flex; gap: 10px; border-top: 1px solid #f1dfbd; padding: 8px 0; }.schedule-explanations li span { color: var(--amber); font-weight: 750; }.schedule-explanations li p { margin: 0; }.empty-banner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-bottom: 18px; border: 1px dashed #b9c6db; border-radius: 12px; background: #fff; padding: 18px; }.empty-banner p { margin: .3rem 0 0; color: var(--muted); }.schedule-board { min-width: 1000px; height: 650px; display: grid; grid-template-columns: 55px repeat(5,1fr); border: 1px solid var(--line); border-radius: 14px; background: #fff; overflow: hidden; }.schedule-time-column { display: grid; grid-template-rows: 50px repeat(9,1fr); color: var(--muted); font-size: .58rem; text-align: right; }.schedule-time-column time { border-top: 1px solid var(--line-soft); padding: 4px; }.schedule-day { border-left: 1px solid var(--line); }.schedule-day > header { height: 50px; display: flex; align-items: center; justify-content: center; gap: 6px; border-bottom: 1px solid var(--line); }.schedule-day > header strong { text-transform: uppercase; font-size: .65rem; }.schedule-day > header span { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: #eef2f8; font-weight: 800; }.schedule-track { height: 600px; position: relative; background: repeating-linear-gradient(180deg, transparent 0 calc(11.111% - 1px), var(--line-soft) calc(11.111% - 1px) 11.111%); }.schedule-event { position: absolute; z-index: 2; top: var(--top); left: 4px; right: 4px; height: var(--height); min-height: 38px; overflow: hidden; border-left: 3px solid var(--blue); border-radius: 6px; background: #edf3ff; padding: 5px 7px; }.schedule-event.is-locked { border-color: var(--purple); background: #f1edff; }.schedule-event time, .schedule-event strong, .schedule-event small { display: block; font-size: .61rem; }.schedule-event time { color: var(--blue); font-weight: 750; }.schedule-event small { color: var(--muted); }.workspace-main:has(.schedule-board) { overflow-x: auto; }
.session-form fieldset { border: 0; padding: 0; margin: 0; }.session-form legend { margin-bottom: .5rem; font-size: .8rem; font-weight: 750; }.session-student-list { max-height: 230px; overflow-y: auto; border: 1px solid var(--line); border-radius: 9px; }.session-student-list > label { display: grid; grid-template-columns: auto 1fr 150px; gap: 10px; align-items: center; border-bottom: 1px solid var(--line-soft); padding: 8px; }.session-student-list > label:last-child { border: 0; }.session-student-list input { width: auto; }.session-student-list b, .session-student-list small { display: block; }.session-student-list small { color: var(--muted); font-size: .65rem; }.form-note { display: flex; gap: 8px; border-radius: 8px; background: #f1f5fb; padding: 8px; }.form-note span { color: var(--blue); font-weight: 750; }.form-note p { margin: 0; color: var(--muted); }.filter-tabs { display: flex; gap: 8px; overflow-x: auto; margin-bottom: 18px; }.filter-tabs :is(button,a) { display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--muted); padding: 7px 12px; font-size: .75rem; font-weight: 700; cursor: pointer; text-decoration: none; white-space: nowrap; }.filter-tabs :is(button,a) span { margin-left: 4px; border-radius: 999px; background: #eef1f6; padding: 2px 5px; }.filter-tabs :is(button,a).is-active { border-color: var(--ink); background: var(--ink); color: #fff; }.session-list { display: flex; flex-direction: column; gap: 12px; }.session-list > article { border: 1px solid var(--line); border-radius: 13px; background: #fff; overflow: hidden; }.session-list article > header { display: grid; grid-template-columns: 36px 1fr auto; gap: 10px; align-items: center; padding: 14px 16px; border-bottom: 1px solid var(--line-soft); }.session-list article > header strong, .session-list article > header small { display: block; }.session-list article > header small { color: var(--muted); }.session-body { padding: 15px 16px; }.session-body > div small, .session-body > div strong { display: block; }.session-body > div small { color: var(--muted); font-size: .62rem; text-transform: uppercase; }.session-body p { margin: 12px 0 0; color: var(--ink-2); line-height: 1.65; }.review-form { display: grid; grid-template-columns: 1fr auto auto; gap: 8px; align-items: center; border-top: 1px solid var(--line-soft); padding: 11px 16px; }.review-form input { min-height: 42px; }
.report-metrics { margin-top: 0; }.report-figure { padding-bottom: 16px; }.legend { display: flex; align-items: center; gap: 5px; color: var(--muted); font-size: .67rem; }.legend i { width: 18px; height: 5px; background: var(--blue); }.legend b { width: 2px; height: 13px; margin-left: 7px; background: var(--ink); }.report-bars { border-top: 1px solid var(--line); }.report-bars > a { display: grid; grid-template-columns: 180px 1fr 50px 80px; gap: 14px; align-items: center; min-height: 58px; border-bottom: 1px solid var(--line-soft); color: inherit; text-decoration: none; }.report-bars span strong, .report-bars span small { display: block; }.report-bars span small { color: var(--muted); }.report-bars > a > div { height: 9px; position: relative; border-radius: 6px; background: #e7eaf0; }.report-bars > a > div i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--blue),#7b8fe0); }.report-bars > a > div b { position: absolute; top: -4px; width: 2px; height: 17px; background: var(--ink); }.report-bars em { font-style: normal; font-weight: 750; }.figure-note { margin: 13px 0 0; color: var(--muted); font-size: .68rem; }
.import-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 22px; margin-bottom: 22px; }.upload-section h3, .import-rules h3 { margin: 0 0 .6rem; }.upload-section > p, .import-rules { color: var(--muted); }.upload-form { display: flex; flex-direction: column; gap: 12px; margin-top: 16px; }.file-drop { min-height: 160px; display: grid; place-content: center; justify-items: center; border: 1px dashed #aebbd0; border-radius: 12px; background: #fafbfe; cursor: pointer; }.file-drop input { position: absolute; opacity: 0; pointer-events: none; }.file-drop span { color: var(--blue); font-weight: 760; }.file-drop small { color: var(--muted); }.import-rules ol { padding-left: 1.2rem; }.import-rules li { padding: .4rem 0; }.validation-results .error-list, .validation-results .warning-list { border-radius: 9px; padding: 12px 12px 12px 32px; }.error-list { background: #fff0f3; color: #9c3047; }.warning-list { background: #fff7e8; color: #8c5409; }.preview-table { overflow-x: auto; }.preview-table table { width: 100%; border-collapse: collapse; }.preview-table th, .preview-table td { border-bottom: 1px solid var(--line); padding: 8px; text-align: left; white-space: nowrap; }.preview-table th { color: var(--muted); font-size: .63rem; text-transform: uppercase; }.commit-import { display: flex; align-items: end; justify-content: flex-end; gap: 12px; margin-top: 18px; }.commit-import label { min-width: 280px; }
.plan-badge { border-radius: 999px; background: #ece9ff; color: var(--purple); padding: .55rem .8rem; font-size: .73rem; font-weight: 750; }.team-list-section { margin-bottom: 22px; }.team-table { border-top: 1px solid var(--line); }.team-table > div { display: grid; grid-template-columns: 36px 1.2fr .8fr .6fr .5fr; gap: 12px; align-items: center; min-height: 64px; border-bottom: 1px solid var(--line-soft); }.team-table strong, .team-table small { display: block; }.team-table small { color: var(--muted); }.team-table mark { width: max-content; border-radius: 999px; background: #edf1f8; color: var(--ink-2); padding: .3rem .5rem; text-transform: capitalize; }.status-text { color: var(--teal); text-transform: capitalize; }.settings-section { display: grid; grid-template-columns: .8fr 1.2fr; gap: 3rem; margin-bottom: 22px; }.settings-section > div > p:not(.eyebrow) { color: var(--muted); }.settings-form { display: flex; flex-direction: column; gap: 15px; }.settings-form small { color: var(--muted); }.settings-section.safety { grid-template-columns: 1fr auto; align-items: center; border-color: #e6c98f; background: #fffaf1; }
.pending-invites { margin: -8px 0 28px; border-top: 1px solid var(--line); }.pending-invites .section-heading { padding: 18px 0 8px; }.pending-invites > div:not(.section-heading) { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 58px; border-bottom: 1px solid var(--line-soft); }.pending-invites strong,.pending-invites small { display: block; }.pending-invites small { color: var(--muted); text-transform: capitalize; }.pending-invites .text-link { border: 0; background: transparent; color: #a33a51; cursor: pointer; font-weight: 750; }
.error-page { min-height: 100vh; display: grid; place-items: center; padding: 2rem; background: var(--wash); }.error-page main { max-width: 650px; text-align: center; }.error-page h1 { font-size: 3rem; }.error-page p:not(.eyebrow) { color: var(--muted); }
.mfa-secret { margin: 1.2rem 0; border: 1px solid #cdd7ea; border-radius: 10px; background: #f3f6fc; padding: 1rem; text-align: center; word-break: break-all; }.mfa-secret code { color: var(--blue); font-size: 1.05rem; font-weight: 800; letter-spacing: .08em; }
.schedule-block-list { margin-top: 22px; border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 20px; }.schedule-block-list > details { border-top: 1px solid var(--line); }.schedule-block-list > details:last-child { border-bottom: 1px solid var(--line); }.schedule-block-list summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 12px 0; cursor: pointer; list-style: none; }.schedule-block-list summary strong, .schedule-block-list summary small { display: block; }.schedule-block-list summary small { color: var(--muted); }.block-actions { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; padding: 2px 0 14px; }.block-actions form:last-child { margin-left: auto; }.block-actions .text-link { border: 0; background: transparent; cursor: pointer; }.inline-edit { display: grid; grid-template-columns: repeat(4,minmax(120px,1fr)) auto; gap: 8px; align-items: end; flex: 1; }.inline-edit label { display: flex; flex-direction: column; gap: 4px; color: var(--muted); font-size: .67rem; }.inline-edit input { min-height: 40px; border: 1px solid var(--line); border-radius: 8px; padding: .45rem .55rem; }
.revision-form { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: end; border-top: 1px solid var(--line-soft); padding: 12px 16px; }.revision-form label { display: flex; flex-direction: column; gap: 5px; }.revision-form label > span { font-size: .7rem; font-weight: 750; }.revision-form textarea { width: 100%; border: 1px solid var(--line); border-radius: 8px; padding: .65rem; resize: vertical; }
.role-cota .student-header .action-popover,.role-cota #goals .action-popover,.role-cota #deadlines .action-popover,.role-cota #availability .action-popover { display: none; }.role-cota form[action="/app/schedule/optimize"],.role-otr form[action="/app/schedule/optimize"],.role-cota .schedule-status .page-actions,.role-otr .schedule-status .page-actions,.role-cota .schedule-block-list .block-actions,.role-otr .schedule-block-list .block-actions { display: none; }
.progress-goals { border-top: 1px solid var(--line); margin-bottom: 16px; }.progress-goals > article { padding: 16px 0; border-bottom: 1px solid var(--line-soft); }.progress-goals header { display: flex; justify-content: space-between; gap: 1.5rem; }.progress-goals header p { margin: .35rem 0 0; color: var(--muted); }.progress-goals header > span { color: var(--muted); white-space: nowrap; }.progress-goals ol { margin: 12px 0 0; padding: 0; list-style: none; }.progress-goals li,.consult-list article { display: grid; grid-template-columns: 78px 1fr; gap: 14px; padding: 10px 0; border-top: 1px solid var(--line-soft); }.progress-goals time,.consult-list time { color: var(--blue); font-weight: 750; }.progress-goals li strong,.progress-goals li small { display: block; }.progress-goals li small,.consult-list small { color: var(--muted); text-transform: capitalize; }.progress-goals li p,.consult-list p { margin: .35rem 0 0; color: var(--ink-2); }.consult-list { border-top: 1px solid var(--line); }.consult-list article { grid-template-columns: 100px 1fr; }
.role-cota a[href$="/progress.csv"] { display: none; }
.upkeep-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }.upkeep-actions form { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: end; border-top: 1px solid var(--line); padding-top: 14px; }.upkeep-actions label span,.upkeep-actions label strong { display: block; }.upkeep-actions label span { color: var(--muted); font-size: .68rem; text-transform: uppercase; }.upkeep-actions select { grid-column: 1; }.role-cota .record-upkeep { display: none; }

@media (max-width: 1100px) {
    .site-header { grid-template-columns: 1fr auto; padding-inline: 1.5rem; }.site-header nav { display: none; }.header-actions { grid-column: 2; }
    .hero-copy { width: 45vw; left: 3vw; }.hero-product { width: 64vw; left: 45%; }
    .workflow-section, .compare-section, .faq-section, .security-overview { gap: 3rem; }.feature-stage { gap: 3rem; }
    .app-shell { grid-template-columns: 205px 1fr; }.workspace-main { padding: 24px; }.dashboard-columns { grid-template-columns: 1fr; }.deadline-section { grid-row: auto; }.attention-row { grid-template-columns: 37px 1fr auto auto; }.attention-progress { display: none; }.record-grid { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
    h1 { font-size: clamp(2.7rem, 12vw, 4rem); }.site-header { height: 68px; }.header-actions { display: none; }.menu-button { display: grid; gap: 5px; padding: 8px; }.menu-button span { width: 22px; height: 2px; background: currentColor; }.site-header.is-menu-open { height: auto; min-height: 68px; grid-template-columns: 1fr auto; align-content: start; padding-block: 17px; }.site-header.is-menu-open .brand { grid-column: 1; grid-row: 1; }.site-header.is-menu-open .menu-button { grid-column: 2; grid-row: 1; }.site-header.is-menu-open nav { grid-column: 1/-1; grid-row: 2; display: flex; flex-direction: column; align-items: stretch; gap: 0; padding-top: 1rem; }.site-header.is-menu-open nav a { border-top: 1px solid rgba(255,255,255,.12); padding: .9rem 0; }.site-header.is-menu-open .header-actions { grid-column: 1/-1; grid-row: 3; display: flex; justify-content: stretch; }.site-header.is-menu-open .header-actions a { flex: 1; }
    .home-hero { height: auto; min-height: 0; padding: 5rem 1rem; }.home-hero-sticky { min-height: 1050px; height: auto; position: relative; overflow: visible; }.hero-copy { position: relative; left: auto; top: auto; width: 100%; max-width: 650px; margin: 0 auto 3rem; text-align: center; }.hero-copy h1 { font-size: 3.5rem; }.hero-copy > p:not(.eyebrow) { margin-inline: auto; }.hero-actions { justify-content: center; }.hero-product { position: relative; left: auto; top: auto; width: 100%; transform: none !important; }.hero-proof { height: auto; position: relative; flex-wrap: wrap; margin-top: 2rem; padding: 1rem; }.demo-tour { display: none; }
    .numbers-section, .workflow-section, .feature-section, .compare-section, .faq-section, .pricing-section, .pricing-detail, .security-overview { width: min(calc(100% - 2rem), var(--content)); padding: 5rem 0; }.number-grid { grid-template-columns: 1fr 1fr; }.number-grid > div:nth-child(2) { border-right: 0; }.number-grid > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }.workflow-section, .compare-section, .faq-section, .security-overview, .pricing-detail { grid-template-columns: 1fr; }.workflow-copy, .compare-intro { position: relative; top: auto; }.workflow-visual { grid-column: 1; margin: 0; }.feature-stage { grid-template-columns: 1fr; }.compare-row { grid-template-columns: 1.1fr .9fr .9fr; }.site-footer { grid-template-columns: 1fr 1fr; }.site-footer > div:first-child { grid-column: 1/-1; }
    .pricing-grid { grid-template-columns: 1fr; }.pricing-grid h2, .pricing-grid ul { min-height: 0; }.pricing-grid article + article { padding: 2rem; }.pricing-detail { gap: 2rem; }
    .app-shell { display: block; }.app-sidebar { width: 240px; position: fixed; left: 0; transform: translateX(-105%); transition: transform .25s ease; box-shadow: var(--shadow); }.app-sidebar.is-open { transform: none; }.app-topbar { padding: 0 16px; }.app-menu-button { display: block; }.app-search { display: none; }.workspace-main { padding: 20px 16px; }.app-page-head { flex-direction: column; }.page-actions { justify-content: flex-start; }.metric-strip { grid-template-columns: 1fr 1fr; }.metric-strip > div:nth-child(2) { border-right: 0; }.metric-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }.week-preview-grid { grid-template-columns: 1fr; }.week-preview-grid > div { min-height: auto; border-right: 0; border-bottom: 1px solid var(--line); }.record-grid, .import-grid, .settings-section { grid-template-columns: 1fr; }.report-bars > a { grid-template-columns: 120px 1fr 45px; }.report-bars mark { display: none; }.team-table > div { grid-template-columns: 36px 1fr auto; padding: 8px 0; }.team-table > div > span:nth-of-type(3), .team-table > div > .status-text { display: none; }.settings-section.safety { grid-template-columns: 1fr; }.form-grid.three { grid-template-columns: 1fr 1fr; }.review-form { grid-template-columns: 1fr 1fr; }.review-form label { grid-column: 1/-1; }
}

@media (max-width: 560px) {
    .announcement { display: none; }.site-header { top: 0; }.hero-copy h1 { font-size: 2.8rem; }.hero-actions, .final-cta > div { flex-direction: column; align-items: stretch; }.pricing-preview > div:last-child { flex-direction: column; align-items: stretch; }.pricing-preview > div:last-child .button { flex-basis: auto; width: 100%; }.product-frame { width: 100%; min-height: 0; height: 360px; aspect-ratio: auto; border-radius: 10px; }.demo-app { grid-template-columns: 48px 1fr; }.demo-sidebar { padding: 10px 4px; }.demo-sidebar button { justify-content: center; }.demo-sidebar button:not(.is-active) { display: none; }.demo-sidebar button span { width: auto; }.demo-sidebar button { font-size: 0; }.demo-logo { margin-inline: auto; }.demo-search { display: none; }.demo-screen { padding: 10px; }.demo-metrics { grid-template-columns: 1fr 1fr; }.demo-metrics > div:last-child { display: none; }.demo-split { grid-template-columns: 1fr; }.mini-week { display: none; }.week-grid { grid-template-columns: 28px repeat(3,1fr); }.week-day:nth-child(n+5) { display: none; }.demo-row { grid-template-columns: 1.3fr 1fr .7fr; }.demo-row > span:nth-child(2) { display: none; }.review-sheet { width: 100%; }.review-note { padding: 10px; }
    .number-grid { grid-template-columns: 1fr; }.number-grid > div { min-height: auto; padding: 2rem 0; border-right: 0; border-bottom: 1px solid var(--line); }.workflow-visual { padding: 1rem; border-radius: 18px; }.workflow-pane { padding: 1.2rem; }.ledger-values { grid-template-columns: 1fr 1fr; }.ledger-values mark { grid-column: 1/-1; }.workflow-pane li { grid-template-columns: 1fr; gap: .25rem; }.belief-section { min-height: 600px; }.feature-image { min-height: 380px; padding: 1.5rem; }.compare-row { grid-template-columns: 1fr 1fr; }.compare-row > *:nth-child(2) { display: none; }.site-footer { grid-template-columns: 1fr; gap: 2rem; }.site-footer > div:first-child { grid-column: auto; }
    .page-hero { min-height: 560px; padding: 6rem 1rem; }.page-hero h1 { font-size: 3rem; }.pricing-grid article + article { margin-inline: -1rem; border-radius: 0; }.pricing-detail li { grid-template-columns: 1fr; gap: .3rem; }
    .topbar-actions .notification-button { display: none; }.app-topbar h1 { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.workspace-main { padding-inline: 10px; }.app-page-head h2 { font-size: 2rem; }.metric-strip { grid-template-columns: 1fr 1fr; }.metric-strip > div { padding: 13px; }.metric-strip strong { font-size: 1.35rem; }.metric-strip small { display: none; }.work-section, .deadline-section, .week-preview, .record-section, .team-list-section, .settings-section, .report-figure, .validation-results, .upload-section, .import-rules { padding: 15px; border-radius: 12px; }.attention-row { grid-template-columns: 34px 1fr auto; }.attention-row > mark { display: none; }.student-header { align-items: flex-start; }.student-identity h2 { font-size: 1.6rem; }.student-header .action-popover { align-self: flex-start; }.record-tabs a { padding-inline: 10px; }.requirement-list { padding-left: 0; }.requirement-title { grid-template-columns: 34px 1fr; }.requirement-title mark { grid-column: 2; }.ledger-summary { grid-template-columns: 1fr 1fr; }.ledger-summary div:nth-child(2) { border-right: 0; }.form-grid.two, .form-grid.three { grid-template-columns: 1fr; }.session-student-list > label { grid-template-columns: auto 1fr; }.session-student-list select { grid-column: 2; }.report-bars > a { grid-template-columns: 90px 1fr 35px; gap: 8px; }.commit-import { align-items: stretch; flex-direction: column; }.commit-import label { min-width: 0; }.plan-badge { white-space: normal; }.schedule-status, .empty-banner,.progress-goals header { align-items: flex-start; flex-direction: column; }.progress-goals li,.consult-list article,.upkeep-actions { grid-template-columns: 1fr; gap: 4px; }
}

@media (max-width: 820px) {
    .inline-edit { grid-template-columns: 1fr 1fr; }.inline-edit .button { grid-column: 1/-1; }.block-actions { align-items: stretch; flex-direction: column; }.block-actions form:last-child { margin-left: 0; }.revision-form { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
    .hero-copy, .hero-product { transform: none !important; opacity: 1 !important; }
}

/* Security trust page */
.security-page-hero {
    min-height: 760px;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0,1.08fr) minmax(420px,.72fr);
    gap: clamp(3rem,7vw,8rem);
    align-items: center;
    padding: clamp(6rem,9vw,9rem) max(2rem,calc((100vw - var(--content))/2));
    background: #08142d;
    color: #fff;
}
.security-page-hero::before {
    content: "";
    position: absolute;
    z-index: -2;
    inset: 0;
    background:
        radial-gradient(circle at 76% 26%,rgba(20,136,121,.31),transparent 28%),
        radial-gradient(circle at 12% 88%,rgba(45,103,215,.24),transparent 32%),
        linear-gradient(135deg,#102f43 0%,#091a34 42%,#071127 100%);
}
.security-page-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    opacity: .35;
    background-image: linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
    background-size: 64px 64px;
    mask-image: linear-gradient(90deg,transparent 0%,#000 52%,#000 100%);
}
.security-page-hero__copy { max-width: 760px; }
.security-page-hero h1 { max-width: 750px; margin: .35rem 0 1.5rem; font-size: clamp(3.25rem,5.25vw,5.8rem); font-weight: 500; }
.security-page-hero__copy > p:not(.eyebrow):not(.security-claim-boundary) { max-width: 680px; color: #c6d2e5; font-size: clamp(1.05rem,1.35vw,1.22rem); line-height: 1.68; }
.security-page-hero .hero-actions .button { width: auto; padding-inline: 1.25rem; }
.security-claim-boundary { max-width: 670px; margin: 2.25rem 0 0; border-left: 2px solid #62baa9; padding-left: 1rem; color: #aebbd0; font-size: .86rem; line-height: 1.65; }
.security-claim-boundary strong { color: #fff; }
.security-posture-card { border: 1px solid rgba(185,213,222,.24); border-radius: 18px; background: rgba(8,20,45,.7); box-shadow: 0 38px 90px rgba(1,8,21,.34); backdrop-filter: blur(18px); }
.security-posture-card__header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; border-bottom: 1px solid rgba(185,213,222,.18); padding: 1.2rem 1.35rem; color: #b7c5d8; font-size: .76rem; font-weight: 760; letter-spacing: .06em; text-transform: uppercase; }
.security-posture-card__header b { border-radius: 999px; background: rgba(61,189,164,.15); color: #83d5c4; padding: .35rem .65rem; font-size: .68rem; }
.security-posture-card ul { margin: 0; padding: 0 1.35rem; list-style: none; }
.security-posture-card li { display: grid; grid-template-columns: 38px 1fr; gap: 1rem; align-items: start; border-bottom: 1px solid rgba(185,213,222,.14); padding: 1.25rem 0; }
.security-posture-card li i { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid rgba(131,213,196,.32); border-radius: 50%; color: #83d5c4; font-size: .67rem; font-style: normal; font-weight: 800; }
.security-posture-card li strong, .security-posture-card li span { display: block; }
.security-posture-card li strong { margin-bottom: .3rem; color: #fff; font-size: .98rem; }
.security-posture-card li span { color: #9facc1; font-size: .81rem; line-height: 1.5; }
.security-posture-card > p { margin: 0; padding: 1.15rem 1.35rem 1.35rem; color: #8f9db3; font-size: .73rem; line-height: 1.55; }

.security-jump-nav { min-height: 70px; display: flex; align-items: center; justify-content: center; gap: clamp(1rem,3vw,2.5rem); border-bottom: 1px solid var(--line); background: #fff; padding: 1rem 2rem; }
.security-jump-nav span { color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.security-jump-nav a { color: var(--ink-2); font-size: .86rem; font-weight: 720; text-decoration: none; }
.security-jump-nav a:hover { color: var(--blue); }
.marketing-path-security .site-header nav > a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 7px; }

.security-proof-section, .security-controls-section, .protected-records-section, .shared-responsibility-section, .security-faq-section {
    width: min(calc(100% - 4rem),var(--content));
    margin-inline: auto;
    padding-block: clamp(6rem,9vw,9rem);
}
.security-controls-section, .protected-records-section, .shared-responsibility-section, .security-faq-section { scroll-margin-top: 110px; }
.security-section-intro { max-width: 920px; }
.security-section-intro h2, .security-faq-intro h2 { max-width: 900px; margin: .35rem 0 1.3rem; font-weight: 500; }
.security-section-intro > p:not(.eyebrow), .security-faq-intro > p:not(.eyebrow) { max-width: 760px; color: var(--muted); font-size: 1.04rem; line-height: 1.7; }

.security-proof-section { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(3rem,7vw,8rem); align-items: end; }
.security-proof-grid { display: grid; grid-template-columns: 1fr 1fr; margin: 0; border-top: 1px solid var(--line); }
.security-proof-grid > div { min-height: 160px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 1.5rem; }
.security-proof-grid > div:nth-child(2n) { border-right: 0; }
.security-proof-grid dt { color: var(--teal); font-size: clamp(1.8rem,3vw,2.6rem); font-weight: 650; letter-spacing: -.05em; }
.security-proof-grid dd { margin: .65rem 0 0; color: var(--muted); font-size: .88rem; line-height: 1.5; }

.security-controls-section { border-top: 1px solid var(--line-soft); }
.security-control-list { margin-top: clamp(3.5rem,6vw,6rem); }
.security-control-list article { display: grid; grid-template-columns: minmax(280px,.75fr) minmax(0,1.25fr); gap: clamp(2.5rem,7vw,8rem); border-top: 1px solid var(--line); padding: clamp(2.75rem,5vw,4.5rem) 0; }
.security-control-list article:last-child { border-bottom: 1px solid var(--line); }
.security-control-heading > span { display: block; margin-bottom: 1.5rem; color: var(--teal); font-size: .74rem; font-weight: 800; letter-spacing: .1em; }
.security-control-heading > p { margin-bottom: .65rem; color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.security-control-heading h3 { max-width: 440px; margin: 0; font-size: clamp(1.8rem,2.8vw,2.85rem); font-weight: 520; line-height: 1.08; }
.security-control-detail > p { max-width: 700px; margin-bottom: 1.5rem; color: var(--ink-2); font-size: 1.03rem; line-height: 1.72; }
.security-control-detail ul, .security-release-boundary ul, .responsibility-grid ul { margin: 0; padding: 0; list-style: none; }
.security-control-detail li { position: relative; border-top: 1px solid var(--line-soft); padding: .85rem 0 .85rem 1.6rem; color: var(--muted); line-height: 1.58; }
.security-control-detail li::before { content: "✓"; position: absolute; left: 0; top: .85rem; color: var(--teal); font-weight: 900; }

.protected-records-section { padding-top: 0; }
.protected-records-table { margin-top: 3.5rem; overflow-x: auto; border-block: 1px solid var(--line); }
.protected-records-table:focus-visible { outline-offset: 6px; }
.protected-records-table table { width: 100%; min-width: 820px; border-collapse: collapse; text-align: left; }
.protected-records-table th, .protected-records-table td { border-bottom: 1px solid var(--line-soft); padding: 1.25rem 1rem; vertical-align: top; }
.protected-records-table thead th { color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.protected-records-table tbody th { width: 19%; padding-left: 0; color: var(--ink); font-size: .92rem; }
.protected-records-table td { width: 40.5%; color: var(--muted); font-size: .9rem; line-height: 1.58; }
.protected-records-table tr:last-child th, .protected-records-table tr:last-child td { border-bottom: 0; }

.security-release-boundary { scroll-margin-top: 110px; position: relative; isolation: isolate; overflow: hidden; padding: clamp(6rem,9vw,9rem) max(2rem,calc((100vw - var(--content))/2)); background: #09172e; color: #fff; }
.security-release-boundary::before { content: ""; position: absolute; z-index: -1; inset: 0; background: radial-gradient(circle at 88% 18%,rgba(20,136,121,.24),transparent 29%),radial-gradient(circle at 10% 88%,rgba(45,103,215,.2),transparent 32%); }
.security-release-boundary__intro { max-width: 880px; }
.security-release-boundary__intro h2 { margin: .35rem 0 1.3rem; font-weight: 500; }
.security-release-boundary__intro > p:not(.eyebrow) { max-width: 760px; color: #b8c5d9; font-size: 1.04rem; line-height: 1.7; }
.security-boundary-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-top: 4rem; background: #31405a; }
.security-boundary-grid article { background: #0e203b; padding: clamp(2rem,4vw,3.5rem); }
.security-boundary-grid h3 { margin: 1.4rem 0 1.7rem; font-size: clamp(1.7rem,2.6vw,2.5rem); font-weight: 520; }
.security-status { display: inline-flex; border-radius: 999px; padding: .42rem .7rem; font-size: .68rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.security-status--built { background: rgba(70,194,168,.15); color: #8ddbc9; }
.security-status--gate { background: rgba(241,183,91,.13); color: #f1c98b; }
.security-boundary-grid li { position: relative; border-top: 1px solid #2a3a56; padding: .8rem 0 .8rem 1.35rem; color: #b7c3d7; font-size: .9rem; line-height: 1.55; }
.security-boundary-grid li::before { content: ""; position: absolute; left: 0; top: 1.18rem; width: 5px; height: 5px; border-radius: 50%; background: #67c2b0; }
.security-boundary-grid article:last-child li::before { background: #e5b96e; }
.security-boundary-note { max-width: 960px; margin: 2rem 0 0; border: 1px solid #344560; background: rgba(255,255,255,.035); padding: 1rem 1.2rem; color: #adb9cd; font-size: .86rem; line-height: 1.65; }
.security-boundary-note strong { color: #fff; }

.responsibility-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-top: 3.5rem; background: var(--line); }
.responsibility-grid article { background: #fff; padding: clamp(2rem,4vw,3.5rem); }
.responsibility-grid article > span { color: var(--teal); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.responsibility-grid h3 { margin: .85rem 0 1.8rem; font-size: clamp(1.7rem,2.5vw,2.5rem); font-weight: 520; }
.responsibility-grid li { position: relative; border-top: 1px solid var(--line-soft); padding: .85rem 0 .85rem 1.35rem; color: var(--muted); line-height: 1.58; }
.responsibility-grid li::before { content: ""; position: absolute; left: 0; top: 1.22rem; width: 5px; height: 5px; border-radius: 50%; background: var(--teal); }

.security-faq-section { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(3rem,7vw,8rem); border-top: 1px solid var(--line); }
.security-faq-intro { align-self: start; position: sticky; top: 120px; }
.security-faq-intro > p:last-child { font-size: .82rem; }
.security-faq-list { border-top: 1px solid var(--line); }
.security-faq-list details { border-bottom: 1px solid var(--line); }
.security-faq-list summary { position: relative; cursor: pointer; list-style: none; padding: 1.5rem 3rem 1.5rem 0; color: var(--ink); font-size: 1.05rem; font-weight: 720; }
.security-faq-list summary::-webkit-details-marker { display: none; }
.security-faq-list summary::after { content: "+"; position: absolute; right: .2rem; top: 1.27rem; color: var(--teal); font-size: 1.5rem; font-weight: 400; }
.security-faq-list details[open] summary::after { content: "−"; }
.security-faq-list details p { max-width: 760px; margin: -.2rem 0 1.6rem; color: var(--muted); line-height: 1.7; }

.security-final-cta { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(300px,.7fr); gap: clamp(3rem,7vw,7rem); align-items: end; padding: clamp(5rem,8vw,8rem) max(2rem,calc((100vw - var(--content))/2)); background: linear-gradient(125deg,#0f3140,#09162e 65%); color: #fff; }
.security-final-cta h2 { max-width: 850px; margin: .35rem 0 1.2rem; font-weight: 500; }
.security-final-cta > div:first-child > p:not(.eyebrow) { max-width: 720px; margin: 0; color: #b9c8d8; line-height: 1.7; }
.security-final-cta > div:last-child { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .75rem; }

@media (max-width: 1000px) {
    .security-page-hero { grid-template-columns: 1fr; }
    .security-posture-card { width: min(100%,760px); }
    .security-proof-section { grid-template-columns: 1fr; align-items: start; }
    .security-control-list article { gap: 3rem; }
    .security-faq-section { grid-template-columns: 1fr; }
    .security-faq-intro { position: static; }
    .security-final-cta { grid-template-columns: 1fr; align-items: start; }
    .security-final-cta > div:last-child { justify-content: flex-start; }
}

@media (max-width: 760px) {
    .security-page-hero { min-height: 0; grid-template-columns: 1fr; padding: 5.5rem 1rem; }
    .security-page-hero h1 { font-size: clamp(2.8rem,12vw,4rem); }
    .security-page-hero::after { display: none; }
    .security-page-hero .hero-actions { flex-direction: column; align-items: stretch; }
    .security-jump-nav { justify-content: flex-start; overflow-x: auto; padding-inline: 1rem; }
    .security-jump-nav > * { flex: 0 0 auto; }
    .security-proof-section, .security-controls-section, .protected-records-section, .shared-responsibility-section, .security-faq-section { width: min(calc(100% - 2rem),var(--content)); }
    .security-control-list article, .security-boundary-grid, .responsibility-grid { grid-template-columns: 1fr; }
    .security-control-list article { gap: 1.7rem; }
    .security-control-heading h3 { max-width: 620px; }
    .security-release-boundary, .security-final-cta { padding-inline: 1rem; }
    .security-final-cta > div:last-child { flex-direction: column; align-items: stretch; }
}

@media (max-width: 460px) {
    .security-proof-grid { grid-template-columns: 1fr; }
    .security-proof-grid > div { min-height: auto; border-right: 0; }
    .security-posture-card__header { align-items: flex-start; flex-direction: column; }
}

/* Paid-launch workflow additions */
.flash-warning { border-color: #e8c68c; background: #fff7e8; color: #7a4706; }
.flash a { text-underline-offset: 3px; }
.record-command { display: flex; align-items: center; gap: .75rem; width: min(calc(100% - 2rem), 1180px); margin: 1rem auto 0; border: 1px solid #cfdaee; border-radius: 12px; background: #f5f8ff; padding: .75rem; }
.record-command span { color: var(--muted); font-size: .82rem; }
.form-note, .callout { border: 1px solid #cfd9ec; border-radius: 10px; background: #f4f7fd; padding: .85rem 1rem; }
.form-note strong, .form-note span { display: block; color: var(--blue-2); font-size: .78rem; font-weight: 800; }
.form-note p, .callout p { margin: .25rem 0 0; color: var(--muted); font-size: .82rem; }
.callout.warning { border-color: #e8c68c; background: #fff7e8; color: #7a4706; }
.field-help { color: var(--muted); font-size: .82rem; }
.form-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.filter-bar { display: flex; align-items: end; gap: .8rem; margin: 0 0 1.25rem; border: 1px solid var(--line); border-radius: 12px; background: #fff; padding: .9rem; }
.filter-bar label { display: flex; min-width: 150px; flex: 1; flex-direction: column; gap: .3rem; }
.filter-bar label span { color: var(--muted); font-size: .7rem; font-weight: 760; text-transform: uppercase; letter-spacing: .05em; }
.filter-bar input, .filter-bar select { min-height: 42px; border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: .55rem .65rem; }
.filter-bar > a { align-self: center; color: var(--blue); font-size: .82rem; font-weight: 750; }
.queue-list { display: flex; flex-direction: column; }
.queue-row { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto auto 20px; gap: .85rem; align-items: center; min-height: 72px; border-top: 1px solid var(--line-soft); color: inherit; padding: .8rem .25rem; text-decoration: none; }
.queue-row:hover { background: #f8faff; }
.queue-row strong, .queue-row small { display: block; }
.queue-row small { margin-top: .18rem; color: var(--muted); }
.queue-row time { color: var(--muted); font-size: .76rem; white-space: nowrap; }
.queue-priority { width: 7px; height: 36px; border-radius: 99px; background: #aeb7c8; }
.priority-high .queue-priority { background: #c88c27; }
.priority-urgent .queue-priority { background: var(--red); }
.category-pill { border-radius: 999px; background: #edf2fd; color: #315cae; padding: .3rem .55rem; font-size: .68rem; font-weight: 760; text-transform: capitalize; white-space: nowrap; }

.today-agenda { margin-bottom: 1.25rem; border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 1.15rem; }
.agenda-list { display: flex; flex-direction: column; }
.agenda-row { display: grid; grid-template-columns: 90px minmax(0, 1fr) auto; gap: 1rem; align-items: center; border-top: 1px solid var(--line-soft); color: inherit; padding: .85rem 0; text-decoration: none; }
.agenda-row time { color: var(--blue-2); font-weight: 800; }
.agenda-row strong, .agenda-row small { display: block; }
.agenda-row small { color: var(--muted); }
.agenda-row > span { color: var(--blue); font-size: .78rem; font-weight: 750; }

.app-search { margin: 0; }
.app-search label { display: block; }
.notification-button { position: relative; text-decoration: none; }
.notification-button i { min-width: 18px; height: 18px; display: grid; place-items: center; position: absolute; right: -7px; top: -6px; border: 2px solid #fff; border-radius: 50%; background: var(--red); color: #fff; padding: 0 3px; font-size: 9px; font-style: normal; font-weight: 800; }

.session-student-list.detailed { max-height: 54vh; gap: .75rem; padding-right: .25rem; }
.participant-composer { border: 1px solid var(--line); border-radius: 11px; background: #fbfcff; padding: .9rem; }
.participant-select { display: flex; align-items: center; gap: .7rem; margin-bottom: .75rem; }
.participant-select span, .participant-select b, .participant-select small { display: block; }
.participant-select small { color: var(--muted); }
.participant-composer > label:not(.participant-select) { display: flex; flex-direction: column; gap: .3rem; }
.participant-composer textarea, .participant-composer input, .participant-composer select { width: 100%; }
.goal-observation { margin-top: .65rem; }
.participant-review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin-top: 1rem; }
.participant-review-grid section { border: 1px solid var(--line-soft); border-radius: 9px; background: #f8faff; padding: .8rem; }
.participant-review-grid section > div { display: flex; justify-content: space-between; gap: 1rem; }
.participant-review-grid span, .participant-review-grid small { color: var(--muted); font-size: .72rem; }
.participant-review-grid p { margin: .55rem 0 0; font-size: .82rem; }
.evidence-review, .review-history, .ledger-impact { margin-top: .8rem; border-left: 3px solid #88a5e9; background: #f5f8ff; padding: .65rem .85rem; }
.evidence-review p, .review-history p { margin: .25rem 0; font-size: .8rem; }
.ledger-impact { display: flex; justify-content: space-between; }

.plan-builder { display: flex; flex-direction: column; gap: 1rem; }
.builder-step { border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 1.25rem; }
.builder-step > header { display: flex; gap: 1rem; align-items: flex-start; margin-bottom: 1rem; }
.builder-step > header > span { width: 34px; height: 34px; display: grid; flex: 0 0 34px; place-items: center; border-radius: 50%; background: var(--navy); color: #fff; font-size: .75rem; font-weight: 800; }
.builder-step h3, .builder-step header p { margin-bottom: .25rem; }
.builder-step header p { color: var(--muted); }
.requirement-builder { margin: .85rem 0; border: 1px solid #d9e0ed; border-radius: 11px; padding: 1rem; }
.requirement-builder legend { color: #345aa6; padding: 0 .45rem; font-size: .78rem; font-weight: 800; }
.iep-scope-note { margin-bottom: 1rem; border: 1px solid #cdd9ee; border-left: 4px solid var(--blue); border-radius: 12px; background: #f7faff; padding: 1rem 1.1rem; }
.iep-scope-note strong, .iep-scope-note p { display: block; margin: 0; }
.iep-scope-note p { margin-top: .3rem; color: var(--muted); }
.plan-builder .field-span { grid-column: 1 / -1; }
.special-factor-row { display: grid; grid-template-columns: minmax(220px,.7fr) minmax(0,1.3fr); gap: .8rem; align-items: start; padding: .85rem 0; border-bottom: 1px solid var(--line-soft); }
.special-factor-row:last-child { border-bottom: 0; }
.repeater-add { margin: .25rem 0 1rem; }
.repeater-remove { margin-top: .65rem; color: #a33b3b; }
.activation-checklist { margin: 0 0 1rem 1.25rem; color: var(--muted); }
.activation-checklist li + li { margin-top: .35rem; }
.reporting-dates { margin-top: 1rem; }
.iep-detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem 1.25rem; margin: 1rem 0; }
.iep-detail-grid > div { min-width: 0; }
.iep-detail-grid strong, .iep-detail-grid span { display: block; }
.iep-detail-grid span { margin-bottom: .2rem; color: var(--muted); font-size: .68rem; font-weight: 750; text-transform: uppercase; }
.iep-detail-grid p { margin: .25rem 0 0; white-space: pre-wrap; }
.iep-completeness { margin: .25rem 0 1rem; border-radius: 10px; background: #f6f8fc; padding: .85rem 1rem; }
.iep-completeness.is-complete { background: #eef8f1; }
.iep-completeness strong { display: block; }
.iep-completeness p { margin: .25rem 0 0; color: var(--muted); }
.iep-completeness ul { margin: .55rem 0 0 1.1rem; columns: 2; color: var(--muted); }
.iep-subsection { border-top: 1px solid var(--line-soft); }
.iep-subsection > summary { cursor: pointer; padding: .8rem 0; color: var(--blue); font-size: .78rem; font-weight: 800; }
.iep-card-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; padding-bottom: 1rem; }
.iep-card-list article { border: 1px solid var(--line-soft); border-radius: 10px; padding: .8rem; }
.iep-card-list strong, .iep-card-list small { display: block; }
.iep-card-list small { margin-top: .2rem; color: var(--muted); }
.iep-card-list p { margin: .45rem 0 0; white-space: pre-wrap; }
.iep-service-heading { margin: 1.1rem 0 .6rem; }
.goal-detail-list > details { border-bottom: 1px solid var(--line-soft); }
.goal-detail-list > details > summary { display: flex; align-items: center; gap: .6rem; cursor: pointer; padding: .75rem 0; }
.goal-detail-list .iep-detail-grid { padding-bottom: .85rem; }
.goal-detail-list ol { margin: .25rem 0 0 1.1rem; }
.activation-review { border-color: #9bb6ec; background: #f5f8ff; }
.profile-form { display: flex; flex-direction: column; gap: 1rem; }
.profile-form > section { border: 1px solid var(--line); border-radius: 12px; background: #fff; padding: 1.2rem; }

.mobile-agenda { display: none; }
.schedule-event span { display: block; overflow: hidden; color: #244a91; font-size: .58rem; white-space: nowrap; text-overflow: ellipsis; }
.schedule-explanations code { margin-left: .6rem; border-radius: 4px; background: #eef2fa; color: #4f5f7d; padding: .2rem .35rem; font-size: .62rem; }
.constraint-list { display: flex; flex-direction: column; margin-top: 1rem; }
.constraint-list > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .4rem 1rem; border-top: 1px solid var(--line-soft); padding: .75rem 0; }
.constraint-list strong, .constraint-list small { display: block; }
.constraint-list small { color: var(--muted); }
.constraint-list form { grid-column: 2; grid-row: 1 / span 2; }

.report-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.metric-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
.metric-list > div { border: 1px solid var(--line-soft); border-radius: 9px; padding: .75rem; }
.metric-list span, .metric-list strong, .metric-list small { display: block; }
.metric-list span, .metric-list small { color: var(--muted); font-size: .72rem; }
.metric-list strong { font-size: 1.4rem; }
.big-stat strong { margin-right: .5rem; font-size: 2.5rem; }
.report-version-list { margin-top: 1rem; }
.report-version-list > a { display: flex; align-items: center; gap: 1rem; border-top: 1px solid var(--line-soft); padding: .8rem 0; text-decoration: none; }
.report-version-list > a > div { flex: 1; }
.report-version-list strong, .report-version-list small { display: block; }
.report-version-list small { color: var(--muted); }
.report-metadata { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin-bottom: 1rem; border: 1px solid #cad6ed; border-radius: 10px; background: #f5f8ff; padding: .75rem; color: #4f5f7d; font-size: .75rem; }
.report-authoring label { display: flex; flex-direction: column; gap: .45rem; }
.report-authoring textarea { width: 100%; border: 1px solid var(--line); border-radius: 9px; padding: .8rem; }
.final-narrative { line-height: 1.75; }
.audit-list > div { display: grid; grid-template-columns: 160px minmax(180px, 1fr) 1fr 110px; gap: .75rem; border-top: 1px solid var(--line-soft); padding: .65rem 0; font-size: .75rem; }
.audit-list time, .audit-list span { color: var(--muted); }
.onboarding-progress { height: 8px; overflow: hidden; margin-bottom: 1rem; border-radius: 99px; background: #e6eaf2; }
.onboarding-progress i { display: block; height: 100%; background: var(--teal); }
.onboarding-steps .is-locked { opacity: .58; }

.pricing-grid.app-pricing { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.app-pricing .price-card { border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 1.5rem; }
.app-pricing .featured { border-color: #9eb5e5; box-shadow: inset 0 4px var(--blue); }
.app-pricing h2 { font-size: 2.2rem; }
.app-pricing h2 small { color: var(--muted); font-size: .9rem; }
.app-pricing form { display: flex; flex-wrap: wrap; gap: .6rem; }
.app-pricing form label { flex: 1 0 100%; display: flex; flex-direction: column; gap: .35rem; }
.app-pricing form label span { font-size: .76rem; font-weight: 760; }
.app-pricing form label small { color: var(--muted); }
.app-pricing form input { width: 100%; border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: .7rem; }
.status-grace, .status-restricted { background: #fff2d9; color: #774400; }

.search-page-form { display: flex; gap: .65rem; margin-bottom: 1.25rem; }
.search-page-form label { flex: 1; }
.search-page-form input { width: 100%; min-height: 48px; border: 1px solid var(--line); border-radius: 999px; padding: .7rem 1rem; }
.search-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.search-results section { border: 1px solid var(--line); border-radius: 12px; background: #fff; padding: 1rem; }
.search-results section > a { display: grid; grid-template-columns: 1fr auto; border-top: 1px solid var(--line-soft); padding: .7rem 0; text-decoration: none; }
.search-results small { color: var(--muted); }
.search-results b { grid-column: 2; grid-row: 1 / span 2; }

.print-body { background: #eef1f6; padding: 1rem; }
.print-actions { max-width: 800px; margin: 0 auto .8rem; text-align: right; }
.print-actions button { border: 0; border-radius: 999px; background: var(--blue); color: #fff; padding: .65rem 1rem; font-weight: 750; }
.print-report { max-width: 800px; margin: auto; box-shadow: var(--shadow); background: #fff; padding: 2.5rem; }
.print-report header, .print-report section, .print-report footer { border-bottom: 1px solid var(--line); padding: 1rem 0; }
.print-report h1 { font-size: 2rem; }
.print-report h2 { font-size: 1.25rem; }
.print-report h3 { margin: 1rem 0 .3rem; font-size: 1rem; }
.print-report footer { color: var(--muted); font-size: .7rem; }

@media (max-width: 900px) {
    .form-grid.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .report-grid, .search-results { grid-template-columns: 1fr; }
    .filter-bar { align-items: stretch; flex-wrap: wrap; }
    .filter-bar label { min-width: 42%; }
    .participant-review-grid { grid-template-columns: 1fr; }
    .audit-list > div { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
    .schedule-board { display: none; }
    .mobile-agenda { display: flex; flex-direction: column; gap: .75rem; }
    .mobile-agenda > section { border: 1px solid var(--line); border-radius: 12px; background: #fff; padding: .9rem; }
    .mobile-agenda header { display: flex; justify-content: space-between; }
    .mobile-agenda article { display: grid; grid-template-columns: 64px 1fr; gap: .7rem; border-top: 1px solid var(--line-soft); padding: .75rem 0; }
    .mobile-agenda article strong, .mobile-agenda article small, .mobile-agenda article span { display: block; }
    .mobile-agenda article small, .mobile-agenda article span { color: var(--muted); font-size: .72rem; }
    .queue-row { grid-template-columns: 7px 1fr 20px; }
    .queue-row .category-pill, .queue-row time { grid-column: 2; }
    .agenda-row { grid-template-columns: 70px 1fr; }
    .agenda-row > span { grid-column: 2; }
    .form-grid.four, .metric-list, .pricing-grid.app-pricing { grid-template-columns: 1fr; }
    .special-factor-row, .iep-detail-grid, .iep-card-list { grid-template-columns: 1fr; }
    .iep-completeness ul { columns: 1; }
    .app-pricing form, .record-command { align-items: stretch; flex-direction: column; }
    .record-command span { display: none; }
}

@media print {
    .app-sidebar, .app-topbar, .page-actions, .filter-tabs, .action-popover, .site-header, .announcement, .site-footer { display: none !important; }
    .app-shell { display: block; }.workspace-main { max-width: none; padding: 0; }.work-section, .record-section, .report-figure, .data-section { border: 0; box-shadow: none; }.status { border: 1px solid currentColor; }.data-table { min-width: 0; }
}
.schedule-event[draggable="true"] { cursor: grab; }.schedule-event.is-dragging { opacity: .45; cursor: grabbing; }.schedule-track.is-drop-target { background-color: #eef5ff; }

/* Production marketing system: The School OT by OT Bestie */
:root {
    --brand-black: #09122a;
    --brand-primary: #3559c7;
    --brand-primary-strong: #2949aa;
    --brand-cream: #f5f7fb;
    --brand-stone: #e6e7ea;
}

.marketing-body { background: #fff; color: #09122a; }
.marketing-body .eyebrow { color: #3559c7; }
.marketing-body .eyebrow.light { color: #b9c9ff; }
.marketing-body .button { border-color: var(--brand-primary); border-radius: 999px; background: var(--brand-primary); color: #fff; box-shadow: none; }
.marketing-body .button:hover { border-color: var(--brand-primary-strong); background: var(--brand-primary-strong); color: #fff; box-shadow: 0 12px 30px rgba(53,89,199,.2); }
.marketing-body .button-light { border-color: #fff; background: #fff; color: #09122a; }
.marketing-body .button-dark-ghost { border-color: rgba(255,255,255,.38); background: rgba(9,18,42,.34); color: #fff; backdrop-filter: blur(10px); }
.marketing-body .button-dark-ghost:hover { border-color: #fff; background: rgba(255,255,255,.12); color: #fff; }
.marketing-body .text-link { color: #3559c7; }

.announcement { min-height: 46px; position: relative; padding: .7rem clamp(3.25rem,6vw,7rem); background: #09122a; color: #fff; font-size: .94rem; font-weight: 400; line-height: 1.4; }
.announcement a { display: flex; align-items: center; gap: .72rem; color: inherit; font-weight: 400; letter-spacing: -.012em; text-decoration: none; }
.announcement a > i { width: 6px; height: 6px; flex: 0 0 6px; border-radius: 50%; background: #5c7ee8; box-shadow: 0 0 0 5px rgba(92,126,232,.1); }
.announcement__arrow { margin-left: .16rem; font-size: 1.08em; transition: transform .2s ease; }
.announcement a:hover .announcement__arrow { transform: translateX(3px); }
.announcement > button { position: absolute; right: max(1rem,calc((100vw - 1440px) / 2)); top: 50%; width: 36px; height: 36px; transform: translateY(-50%); border: 0; background: transparent; color: #fff; font-size: 1.35rem; font-weight: 400; line-height: 1; cursor: pointer; }
.site-header { height: 88px; grid-template-columns: minmax(220px,1fr) auto minmax(220px,1fr); gap: clamp(1.25rem,2.35vw,2.8rem); padding-inline: max(2.25rem,calc((100vw - 1440px) / 2)); background: rgba(9,18,42,.88); border: 0; box-shadow: none; backdrop-filter: blur(20px) saturate(125%); }
.marketing-path-home .site-header { height: 88px; padding-inline: max(2.25rem,calc((100vw - 1440px) / 2)); background: rgba(9,18,42,.08); border: 0; box-shadow: none; backdrop-filter: blur(12px) saturate(110%); }
.marketing-path-home .site-header nav { transform: none; }
.marketing-path-home .header-actions .button { width: auto; height: 40px; min-height: 40px; position: static; padding: 0 1.2rem; }
.marketing-path-home .site-brand { transform: none; }
.site-header.is-light { background: rgba(255,255,255,.96); color: #09122a; border: 0; box-shadow: none; }
.site-brand { color: #fff; }
.site-header.is-light .site-brand { color: #09122a; }
.site-header nav { gap: clamp(1.5rem,2.35vw,2.35rem); }
.site-header nav > a, .nav-cluster > summary { color: inherit; font-size: .94rem; font-weight: 500; letter-spacing: -.012em; }
.site-header nav > a { padding-block: 1.75rem; }
.nav-cluster { position: relative; }
.nav-cluster > summary { display: flex; align-items: center; gap: .35rem; padding-block: 1.75rem; cursor: pointer; list-style: none; }
.nav-cluster > summary::-webkit-details-marker { display: none; }
.nav-cluster > summary span { display: inline-block; font-size: .7rem; transition: transform .18s ease; }
.nav-cluster[open] > summary span { transform: rotate(180deg); }
.nav-panel { width: min(620px,calc(100vw - 3rem)); position: absolute; top: calc(100% - 7px); left: 50%; display: grid; grid-template-columns: 1fr 1fr; gap: 2px; transform: translateX(-50%); border: 1px solid #e6e7ea; border-radius: 8px; background: rgba(255,255,255,.98); color: #09122a; padding: 10px; box-shadow: 0 24px 65px rgba(9,18,42,.2); backdrop-filter: blur(18px); }
.nav-panel-compact { width: 430px; grid-template-columns: 1fr; }
.nav-panel a { display: flex; flex-direction: column; border-radius: 5px; padding: .9rem 1rem; text-decoration: none; }
.nav-panel a:hover, .nav-panel a:focus-visible { background: #f3f6fc; opacity: 1 !important; }
.nav-panel b { font-size: .86rem; }
.nav-panel small { margin-top: .25rem; color: #667089; font-weight: 480; }
.resource-menu { width: min(780px,calc(100vw - 3rem)); grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); gap: 0; padding: 0; overflow: hidden; }
.resource-menu__section { min-width: 0; padding: 1.25rem; }
.resource-menu__section + .resource-menu__section { border-left: 1px solid #e6e7ea; background: #f8f9fc; }
.resource-menu__label { margin: 0 1rem .45rem; color: #3559c7; font-size: .67rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.resource-menu__section > a { padding-block: .72rem; }
.resource-menu__planning { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; margin-top: .85rem; border-top: 1px solid #dfe4ee; padding-top: 1.05rem; }
.resource-menu__planning .resource-menu__label { grid-column: 1 / -1; margin-bottom: .35rem; }
.resource-menu__planning a { min-height: 40px; justify-content: center; padding: .58rem 1rem; color: #30405f; font-size: .78rem; font-weight: 680; }
.header-actions { align-items: center; gap: .75rem; }
.header-link { color: inherit; font-size: .88rem; font-weight: 400; text-decoration: none; }
.header-link:hover { opacity: .72; }
.header-sign-in { min-height: 40px; display: inline-flex; align-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; padding: 0 1.08rem; }
.header-actions .button { min-height: 40px; border-radius: 999px; font-size: .88rem; font-weight: 700; }
.site-header.is-light .header-sign-in { border-color: #dfe4ee; }
.site-header.is-light .header-actions .button { border-color: #09122a; background: #09122a; color: #fff; }

.home-hero { height: 235vh; min-height: 1650px; margin-top: -88px; background: #071126; }
.home-hero-sticky { height: calc(100vh - 46px); min-height: 0; }
.announcement-dismissed .home-hero-sticky { height: 100vh; }
.hero-atmosphere { background: #242b3d url('/assets/brand/school-ot-hero-canva-poster-v1.webp') center 56% / cover no-repeat; opacity: 1; filter: saturate(.72) contrast(1.03) brightness(.82) blur(6px); transform: scale(1.025); }
.hero-atmosphere__video { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 56%; opacity: 0; transition: opacity .65s ease; }
.hero-atmosphere__video.is-ready { opacity: 1; }
.hero-atmosphere::after { z-index: 1; background: linear-gradient(90deg,rgba(9,18,42,.34) 0%,rgba(9,18,42,.16) 46%,rgba(9,18,42,.2) 100%),linear-gradient(0deg,rgba(9,18,42,.38) 0%,rgba(9,18,42,.04) 55%,rgba(9,18,42,.14) 100%); backdrop-filter: none; }
.hero-copy { left: max(2.25rem,calc((100vw - 1440px) / 2)); top: 148px; width: min(45vw,820px); }
.hero-copy h1 { max-width: 820px; margin-bottom: calc(1.2rem + 4px); font-size: clamp(3.5rem,4vw,4.8rem); font-weight: 460; letter-spacing: -.052em; line-height: 1.15; }
.hero-copy > p:not(.eyebrow) { max-width: 580px; color: #d3d5da; font-size: clamp(1rem,1.3vw,1.22rem); line-height: 1.55; }
.hero-copy > small { color: #aeb9d0; }
.hero-product { top: 158px; left: 52.34%; width: min(41.46vw,839px); transform: none; isolation: isolate; }
.hero-product::before { content: ""; position: absolute; z-index: -1; inset: -2px -3px -14px; border: 1px solid rgba(255,255,255,.16); border-radius: 25px 25px 18px 18px; background: linear-gradient(145deg,#12151d 0%,#03050a 50%,#202633 100%); box-shadow: 0 55px 120px rgba(0,0,0,.58),0 3px 1px rgba(255,255,255,.18) inset; }
.hero-product::after { content: ""; position: absolute; z-index: -2; left: -8%; bottom: -14%; width: 116%; height: 12%; border-radius: 7px 7px 45% 45%; background: linear-gradient(180deg,#526083 0%,#202a43 18%,#0b1020 76%,#030711 100%); clip-path: polygon(8% 0,92% 0,100% 66%,98% 100%,2% 100%,0 66%); box-shadow: 0 18px 38px rgba(0,0,0,.5),0 2px 0 rgba(138,160,220,.36) inset; }
.hero-product .product-frame { width: calc(100% - 12px); min-height: 0; position: relative; z-index: 1; margin: 6px; border: 0; border-radius: 13px 13px 9px 9px; aspect-ratio: 1.54; box-shadow: none; }
.hero-product .product-frame::before { content: ""; position: absolute; z-index: 9; left: 50%; top: -6px; width: 78px; height: 13px; transform: translateX(-50%); border-radius: 0 0 8px 8px; background: #07090e; }
.hero-product .product-frame-bar { display: none; }
.hero-product .demo-app { height: 100%; grid-template-columns: 1fr; }
.hero-product .demo-sidebar { display: none; }
.hero-proof { z-index: 1; height: 76px; display: block; overflow: hidden; background: radial-gradient(ellipse at 58% 0%,#536bad 0%,#314a84 34%,#17284d 69%,#09122a 100%); color: #d4daea; border-top-color: rgba(123,151,231,.16); box-shadow: 0 -38px 90px rgba(45,70,137,.35); font-size: clamp(.92rem,1.05vw,1.08rem); font-weight: 600; letter-spacing: -.025em; text-transform: none; }
.hero-proof::before, .hero-proof::after { content: ""; position: absolute; z-index: 2; top: 0; bottom: 0; width: clamp(30px,6vw,110px); pointer-events: none; }
.hero-proof::before { left: 0; background: linear-gradient(90deg,#09122a,transparent); }
.hero-proof::after { right: 0; background: linear-gradient(-90deg,#09122a,transparent); }
.hero-proof__track { width: max-content; height: 100%; display: flex; align-items: center; animation: hero-proof-pan 28s linear infinite; will-change: transform; }
.hero-proof__group { flex: 0 0 auto; display: flex; align-items: center; gap: clamp(3.5rem,6vw,7rem); padding-right: clamp(3.5rem,6vw,7rem); }
.hero-proof__group span { display: inline-flex; align-items: center; gap: .7rem; white-space: nowrap; opacity: .64; }
.hero-proof__group i { width: 25px; height: 25px; display: inline-grid; place-items: center; border: 1px solid rgba(212,218,234,.44); border-radius: 50%; color: #dfe5f5; font-size: .58rem; font-style: normal; font-weight: 700; letter-spacing: .02em; }
@keyframes hero-proof-pan { to { transform: translateX(-50%); } }
.hero-actions { margin-top: calc(2rem + 6px); margin-left: 1.4px; }
.hero-actions .button { min-height: 50px; padding-inline: .65rem; font-size: .9rem; white-space: nowrap; }
.hero-actions .button:first-child { width: 162px; }
.hero-actions .button:last-child { width: 125px; }
.demo-tour { left: auto; right: clamp(18px,2vw,28px); top: auto; bottom: clamp(96px,8vw,120px); width: min(370px,calc(100% - 36px)); transform: translateY(12px); border-color: #dfe4ee; border-radius: 12px; padding: 1.35rem; box-shadow: 0 24px 64px rgba(9,18,42,.32); }
.home-hero[data-stage="tour"] .hero-product .demo-tour, .hero-product .demo-tour.is-open { transform: none; }
.demo-tour .tour-progress { color: #3559c7; }
.demo-tour h2 { margin: .5rem 0; font-size: 1.35rem; line-height: 1.12; }
.demo-tour p { margin-bottom: 1.1rem; font-size: .9rem; line-height: 1.5; }
.demo-tour button, .demo-tour .tour-close { min-height: 43px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; padding: .65rem 1rem; font-size: .82rem; text-decoration: none; }
.demo-tour button { background: #3559c7; color: #fff; }
.home-hero.tour-dismissed .demo-tour { opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(12px); }
.tour-controls { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: .65rem; }
.tour-controls .tour-close { background: transparent; color: #526078; font-weight: 700; }
.tour-controls .tour-close:hover { background: #f2f5fb; color: #24314b; }

/* Keep the expanded product tour readable enough to evaluate, not merely decorative. */
.hero-product .demo-topbar { height: clamp(50px,4.2cqw,64px); padding: clamp(9px,1cqw,14px) clamp(14px,1.35cqw,21px); }
.hero-product .demo-topbar small { font-size: clamp(9px,.72cqw,11px); }
.hero-product .demo-topbar strong { font-size: clamp(12px,.95cqw,15px); }
.hero-product .demo-search { width: clamp(160px,17cqw,250px); padding: clamp(6px,.65cqw,9px) clamp(9px,.8cqw,12px); font-size: clamp(9px,.72cqw,11px); }
.hero-product .demo-avatar { width: clamp(27px,2.6cqw,38px); height: clamp(27px,2.6cqw,38px); font-size: clamp(9px,.7cqw,11px); }
.hero-product .demo-screen { height: calc(100% - clamp(50px,4.2cqw,64px)); padding: clamp(18px,1.7cqw,28px) clamp(18px,1.8cqw,30px) clamp(48px,4.5cqw,66px); }
.hero-product .demo-heading { margin-bottom: clamp(12px,1.2cqw,18px); }
.hero-product .demo-heading small { font-size: clamp(9px,.7cqw,11px); }
.hero-product .demo-screen-title { margin-top: 4px; font-size: clamp(20px,1.75cqw,28px); }
.hero-product .demo-heading button, .hero-product .demo-heading .demo-button { padding: clamp(7px,.65cqw,10px) clamp(10px,.9cqw,14px); font-size: clamp(9px,.72cqw,11px); }
.hero-product .demo-metrics { margin-bottom: clamp(14px,1.35cqw,21px); }
.hero-product .demo-metrics > div { padding: clamp(10px,1.05cqw,16px); }
.hero-product .demo-metrics span, .hero-product .demo-metrics small { font-size: clamp(8px,.66cqw,10px); line-height: 1.45; }
.hero-product .demo-metrics strong { font-size: clamp(20px,1.7cqw,27px); }
.hero-product .demo-split { gap: clamp(16px,1.7cqw,26px); }
.hero-product .demo-section-title { padding-bottom: clamp(7px,.65cqw,10px); font-size: clamp(9px,.76cqw,12px); }
.hero-product .demo-section-title span { font-size: clamp(8px,.68cqw,10px); }
.hero-product .attention-list li { grid-template-columns: 8px 1fr auto; gap: clamp(7px,.7cqw,11px); padding: clamp(8px,.78cqw,12px) 0; }
.hero-product .attention-list li strong { font-size: clamp(9px,.78cqw,12px); }
.hero-product .attention-list li small { margin-top: 2px; font-size: clamp(8px,.66cqw,10px); }
.hero-product .attention-list li b { font-size: clamp(8px,.65cqw,10px); }
.hero-product .risk-dot { width: 6px; height: 6px; }
.hero-product .mini-event { grid-template-columns: clamp(28px,2.7cqw,40px) 4px 1fr; gap: clamp(6px,.65cqw,10px); padding: clamp(7px,.72cqw,11px) 0; }
.hero-product .mini-event time, .hero-product .mini-event strong { font-size: clamp(8px,.68cqw,10px); }
.hero-product .mini-event small { margin-top: 2px; font-size: clamp(8px,.62cqw,9px); }
.hero-product .demo-footer { min-height: clamp(38px,3.5cqw,52px); padding: clamp(7px,.7cqw,10px) clamp(13px,1.2cqw,18px); font-size: clamp(8px,.66cqw,10px); }
.hero-product .demo-footer button, .hero-product .demo-footer .demo-button { padding: clamp(5px,.5cqw,8px) clamp(8px,.7cqw,11px); font-size: clamp(8px,.63cqw,10px); }
.hero-product .optimizer-note { grid-template-columns: clamp(24px,2.3cqw,34px) 1fr auto; gap: clamp(8px,.8cqw,12px); padding: clamp(10px,.95cqw,14px); margin-bottom: clamp(10px,1cqw,15px); }
.hero-product .optimizer-note > span { width: clamp(22px,2cqw,30px); height: clamp(22px,2cqw,30px); font-size: clamp(10px,.8cqw,12px); }
.hero-product .optimizer-note strong, .hero-product .optimizer-note b { font-size: clamp(9px,.75cqw,12px); }
.hero-product .optimizer-note small { font-size: clamp(8px,.64cqw,10px); line-height: 1.45; }
.hero-product [data-demo-screen="schedule"].is-active { display: flex; flex-direction: column; }
.hero-product [data-demo-screen="schedule"] .week-grid { flex: 1; min-height: 300px; height: auto; }
.hero-product .week-times, .hero-product .week-day { grid-template-rows: clamp(28px,2.5cqw,38px) repeat(5,1fr); }
.hero-product .week-times { font-size: clamp(8px,.62cqw,9px); }
.hero-product .week-day > strong { padding: clamp(7px,.65cqw,10px); font-size: clamp(8px,.68cqw,10px); }
.hero-product .week-event { margin: 3px; padding: clamp(5px,.5cqw,8px); }
.hero-product .week-event b, .hero-product .week-event span { font-size: clamp(8px,.65cqw,10px); }
.hero-product .week-event small { font-size: clamp(7px,.58cqw,9px); }
.hero-product .demo-row { min-height: clamp(46px,4.4cqw,64px); padding: clamp(8px,.78cqw,12px) clamp(10px,1cqw,15px); font-size: clamp(8px,.7cqw,11px); }
.hero-product .demo-row small { font-size: clamp(7px,.61cqw,9px); }
.hero-product .review-sheet { width: min(100%,720px); }
.hero-product .review-meta, .hero-product .review-note, .hero-product .review-actions { padding: clamp(12px,1.2cqw,18px); }
.hero-product .review-meta strong, .hero-product .review-note p, .hero-product .review-note dd { font-size: clamp(10px,.82cqw,13px); }
.hero-product .review-meta small, .hero-product .review-note small, .hero-product .review-note dt { font-size: clamp(8px,.65cqw,10px); }
.hero-product .review-actions button, .hero-product .review-actions .demo-review-action { padding: clamp(7px,.65cqw,10px) clamp(10px,.9cqw,14px); font-size: clamp(9px,.7cqw,11px); }

.numbers-section, .workflow-section, .feature-section, .compare-section, .faq-section, .pricing-section, .pricing-detail, .security-overview,
.product-story, .capability-index, .constraint-section, .split-story, .role-bands, .measurement-bands, .day-sequence, .team-outcomes, .resource-index, .about-story, .legal-document {
    width: min(calc(100% - 4rem),var(--content)); margin-inline: auto;
}
.numbers-section, .workflow-section, .feature-section, .compare-section, .faq-section, .pricing-section, .pricing-detail, .security-overview,
.product-story, .capability-index, .constraint-section, .split-story, .role-bands, .measurement-bands, .day-sequence, .team-outcomes, .resource-index, .about-story { padding-block: clamp(6rem,9vw,9rem); }
.marketing-path-pricing .pricing-section { padding-top: clamp(3rem,5vw,5rem); }
.section-intro > p:not(.eyebrow), .workflow-copy > p:not(.eyebrow), .compare-intro > p:not(.eyebrow) { max-width: 720px; color: #667089; font-size: 1.06rem; }
.number-grid strong { color: #3559c7; }
.belief-section { background: #09122a; }
.belief-section::before { background: radial-gradient(circle at 80% 25%,rgba(91,123,221,.25),transparent 34%),linear-gradient(110deg,#09122a,#172651); }
.belief-light { background: var(--brand-cream); color: #09122a; }
.belief-light::before { background: radial-gradient(circle at 80% 25%,rgba(93,124,220,.2),transparent 34%),linear-gradient(110deg,#eef2fb,#fff); }
.belief-light p { color: #667089; }
.feature-image { background: linear-gradient(145deg,#e9eefb,#fafbff); }
.review-flow span { border-radius: 4px; }
.product-bands { background: #09122a; color: #fff; }
.product-bands a { min-height: clamp(220px,18vw,330px); display: grid; grid-template-columns: 58px minmax(0,1fr) 34px; gap: clamp(1.5rem,3vw,3.5rem); align-items: center; border-top: 1px solid #25345a; padding: clamp(3rem,5vw,5.5rem) max(2rem,calc((100vw - var(--content))/2)); color: #fff; text-decoration: none; }
.product-bands a:last-child { border-bottom: 1px solid #25345a; }
.product-bands a:hover, .product-bands a:focus-visible { background: #101d3e; }
.product-bands a > span, .product-bands a > b { color: #9bb0ef; font-size: .78rem; font-weight: 800; }
.product-bands a > b { font-size: 1.5rem; text-align: right; }
.product-bands a > div { max-width: 980px; }
.product-bands h2 { margin: 0 0 .8rem; color: #fff; font-size: clamp(2.25rem,4vw,4.4rem); font-weight: 500; line-height: 1.04; }
.product-bands p { max-width: 760px; margin: 0; color: #b8c3da; font-size: clamp(.98rem,1.2vw,1.12rem); line-height: 1.65; }
.numbers-section { scroll-margin-top: 100px; }
.compare-row i { color: #3559c7; }
.pricing-preview, .final-cta, .resource-checklist, .release-gate { background: #09122a; color: #fff; }
.pricing-preview::before, .final-cta::before, .resource-checklist::before, .release-gate::before { background: radial-gradient(circle at 85% 20%,rgba(91,123,221,.28),transparent 31%); }
.pricing-preview { position: relative; isolation: isolate; overflow: hidden; display: grid; grid-template-columns: minmax(0,1.35fr) minmax(320px,.65fr); gap: clamp(3rem,6vw,5rem); align-items: end; padding: clamp(4.5rem,6vw,6rem) max(2rem,calc((100vw - var(--content))/2)); }
.pricing-preview::before { content: ""; position: absolute; z-index: -1; inset: 0; pointer-events: none; }
.pricing-preview > div:first-child { max-width: 820px; }
.pricing-preview h2 { max-width: 800px; margin: .45rem 0 1rem; font-size: clamp(2.7rem,4vw,3.8rem); font-weight: 500; line-height: 1.06; letter-spacing: -.045em; }
.pricing-preview > div:first-child > p:not(.eyebrow) { max-width: 760px; margin: 0; color: #c4cde0; font-size: 1.02rem; line-height: 1.65; }
.pricing-preview > div:last-child { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; align-content: end; }
.pricing-preview > div:last-child .button { flex: 1 1 150px; min-width: 0; white-space: nowrap; }
.pricing-preview small { flex: 1 0 100%; display: block; margin-top: .25rem; color: #aeb9d0; font-size: .78rem; line-height: 1.5; }
.compare-section, .faq-section { padding-block: clamp(4.5rem,6vw,6rem); }
.faq-section h2 { max-width: 470px; margin-bottom: 0; }
.faq-list summary:hover { color: #3559c7; }

.page-hero, .feature-page-hero, .audience-hero, .content-page-hero, .legal-hero { color: #fff; background: #09122a; }
.page-hero, .audience-hero, .content-page-hero, .legal-hero { min-height: 560px; display: flex; flex-direction: column; justify-content: center; padding: clamp(7rem,12vw,11rem) max(2rem,calc((100vw - var(--content))/2)); }
.page-hero h1, .audience-hero h1, .content-page-hero h1, .legal-hero h1 { max-width: 980px; margin-bottom: 1.4rem; font-weight: 500; }
.page-hero > p:not(.eyebrow), .audience-hero > p:not(.eyebrow), .content-page-hero > p:not(.eyebrow), .legal-hero > p:not(.eyebrow) { max-width: 720px; color: #bac4dc; font-size: 1.14rem; }
.content-page-hero { min-height: 500px; background: linear-gradient(120deg,#f2f5fb 0%,#fff 72%); color: #09122a; }
.content-page-hero > p:not(.eyebrow), .legal-hero > p:not(.eyebrow) { color: #667089; }
.feature-page-hero { min-height: 720px; display: grid; grid-template-columns: minmax(0,.85fr) minmax(560px,1.15fr); gap: clamp(3rem,6vw,7rem); align-items: center; padding: clamp(6rem,9vw,9rem) max(2rem,calc((100vw - var(--content))/2)); }
.feature-page-hero > div:first-child { max-width: 620px; }
.feature-page-hero h1 { font-size: clamp(3.3rem,5vw,5.7rem); font-weight: 500; }
.feature-page-hero > div:first-child > p:not(.eyebrow) { color: #c8d2e8; font-size: 1.12rem; }
.page-demo-wrap { min-width: 0; }
.page-demo-wrap .product-frame { width: 100%; min-height: 0; }
.schedule-hero-visual, .note-hero-visual, .progress-hero-visual, .supervision-chain { border: 1px solid #31436f; border-radius: 18px; background: #101d3e; padding: clamp(2rem,4vw,4rem); box-shadow: 0 34px 90px rgba(0,0,0,.28); }
.schedule-hero-visual strong, .progress-hero-visual strong { display: block; color: #9bb0ef; font-size: clamp(3rem,6vw,6rem); letter-spacing: -.06em; }
.schedule-hero-visual span, .note-hero-visual > span, .progress-hero-visual > span { color: #aeb8d2; }
.schedule-hero-visual ul { margin: 2rem 0 0; padding: 0; list-style: none; }
.schedule-hero-visual li { border-top: 1px solid #31436f; padding: 1rem 0; }
.schedule-hero-visual b { color: #9bb0ef; }
.note-hero-visual p { margin: 2rem 0; color: #eff3ff; font-size: 1.3rem; line-height: 1.65; }
.note-hero-visual dl { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: #31436f; }
.note-hero-visual dl div { background: #101d3e; padding: 1rem; }
.note-hero-visual dt { color: #9fabc7; font-size: .72rem; text-transform: uppercase; }
.note-hero-visual dd { margin: .25rem 0 0; }
.progress-hero-visual > div { height: 190px; display: flex; align-items: end; gap: 8%; margin: 2rem 0 1rem; border-bottom: 1px solid #5d6d94; }
.progress-hero-visual i { width: 15%; display: block; background: #6686e5; }
.supervision-chain { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: center; gap: 1rem; }
.supervision-chain span, .supervision-chain small { display: block; }
.supervision-chain small { margin-top: .4rem; color: #9fabc7; }
.supervision-chain i { color: #9bb0ef; }

.product-story { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem,7vw,8rem); align-items: start; }
.product-story > div { position: sticky; top: 120px; }
.product-story > div > p:not(.eyebrow) { color: #667089; }
.process-list { margin: 0; padding: 0; list-style: none; }
.process-list li { display: grid; grid-template-columns: 54px 1fr; gap: 1.5rem; border-top: 1px solid #e0e5ee; padding: 1.6rem 0; }
.process-list li > span { color: #3559c7; font-size: .75rem; font-weight: 800; }
.process-list h3 { margin-bottom: .5rem; }
.process-list p { color: #667089; }
.capability-index, .role-bands, .measurement-bands, .team-outcomes { display: grid; grid-template-columns: repeat(3,1fr); }
.capability-index > div, .role-bands > div, .measurement-bands > div, .team-outcomes > div { grid-column: 1 / -1; max-width: 900px; margin-bottom: 3rem; }
.capability-index article, .role-bands article, .measurement-bands article, .team-outcomes article { min-height: 220px; border-top: 1px solid #dfe4ee; border-right: 1px solid #dfe4ee; padding: 2rem; }
.capability-index article:nth-of-type(3n), .role-bands article:nth-of-type(3n), .measurement-bands article:nth-of-type(3n), .team-outcomes article:nth-of-type(3n) { border-right: 0; }
.capability-index p, .role-bands p, .measurement-bands p, .team-outcomes p { color: #667089; }
.constraint-section { display: grid; grid-template-columns: .8fr 1fr; gap: clamp(3rem,7vw,8rem); }
.constraint-section ol { margin: 0; padding: 0; list-style: none; }
.constraint-section li { display: grid; grid-template-columns: 46px 1fr; border-top: 1px solid #dfe4ee; padding: 1rem 0; }
.constraint-section li span { color: #3559c7; font-size: .72rem; font-weight: 800; }
.split-story { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem,7vw,8rem); align-items: center; }
.split-story.reverse > :first-child { order: 2; }
.visual-surface { min-height: 380px; display: flex; flex-direction: column; justify-content: center; gap: 1rem; border: 1px solid #dce2ef; border-radius: 16px; background: #f4f6fb; padding: clamp(2rem,4vw,4rem); }
.schedule-lifecycle span { border-left: 4px solid var(--brand-primary-strong); background: #fff; padding: 1rem; box-shadow: 0 8px 24px rgba(9,18,42,.07); }
.schedule-lifecycle i { color: #667089; font-size: .75rem; }
.review-policy span { border: 1px solid #dfe4ee; border-radius: 4px; background: #fff; padding: 1rem; }
.review-policy span.is-selected { border-color: #3559c7; box-shadow: inset 4px 0 var(--brand-primary-strong); }
.consult-visual p { font-size: 1.25rem; }
.invite-visual i { align-self: flex-start; border-radius: 999px; background: var(--brand-primary); color: #fff; padding: .45rem .7rem; font-style: normal; }
.day-sequence ol { display: grid; grid-template-columns: repeat(4,1fr); margin: 3rem 0 0; padding: 0; list-style: none; border-top: 1px solid #dfe4ee; }
.day-sequence li { border-right: 1px solid #dfe4ee; padding: 2rem 1.5rem; }
.day-sequence time { color: #3559c7; font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.resource-index { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: #e6e7ea; padding-inline: 0; }
.resource-index a { min-height: 330px; display: flex; flex-direction: column; background: #fff; padding: clamp(2rem,4vw,4rem); text-decoration: none; }
.resource-index a:hover { background: #f5f7fb; }
.resource-index a > span { color: #3559c7; font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.resource-index a p { color: #667089; }
.resource-index a b { margin-top: auto; }

/* Resource guides */
.guide-jump-nav { min-height: 64px; position: sticky; z-index: 40; top: 88px; display: flex; align-items: center; justify-content: center; gap: clamp(1rem,2.6vw,2.4rem); overflow-x: auto; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); padding: .8rem 2rem; scrollbar-width: none; backdrop-filter: blur(14px); }
.guide-jump-nav::-webkit-scrollbar { display: none; }
.guide-jump-nav > * { flex: 0 0 auto; }
.guide-jump-nav span { color: #7b8497; font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.guide-jump-nav a { min-height: 40px; display: inline-flex; align-items: center; color: var(--ink-2); font-size: .82rem; font-weight: 720; text-decoration: none; }
.guide-jump-nav a:hover, .guide-jump-nav a:focus-visible { color: var(--blue); }

.guide-lede, .guide-section { width: min(calc(100% - 4rem),var(--content)); margin-inline: auto; padding-block: clamp(5.5rem,8vw,8rem); scroll-margin-top: 164px; }
.guide-lede { display: grid; grid-template-columns: minmax(280px,.78fr) minmax(0,1.22fr); gap: clamp(3rem,7vw,8rem); align-items: start; }
.guide-lede > div:first-child { position: sticky; top: 178px; }
.guide-lede h2, .guide-section__intro h2 { max-width: 900px; margin: .35rem 0 1.2rem; font-size: clamp(2.45rem,4vw,4.25rem); font-weight: 510; line-height: 1.07; letter-spacing: -.045em; }
.guide-prose { max-width: 790px; }
.guide-prose > p { margin: 0 0 1.35rem; color: #556179; font-size: clamp(1.02rem,1.3vw,1.14rem); line-height: 1.78; }
.guide-section__intro { max-width: 920px; margin-bottom: clamp(3rem,5vw,4.75rem); }
.guide-section__intro > p:not(.eyebrow) { max-width: 780px; margin-bottom: 0; color: #667089; font-size: 1.05rem; line-height: 1.72; }
.guide-section--tinted { width: 100%; max-width: none; padding-inline: max(2rem,calc((100vw - var(--content))/2)); background: #f3f5fa; }
.guide-section--split { display: grid; grid-template-columns: minmax(280px,.82fr) minmax(0,1.18fr); gap: clamp(3rem,7vw,8rem); align-items: start; }
.guide-section--split > .guide-section__intro { margin-bottom: 0; }

.guide-note { margin-top: 2.2rem; border-left: 3px solid #6686e5; background: #f1f4fb; padding: 1.25rem 1.4rem; }
.guide-note strong, .guide-note p { display: block; }
.guide-note strong { margin-bottom: .35rem; color: var(--ink); font-size: .9rem; }
.guide-note p { margin: 0; color: #5e687d; font-size: .91rem; line-height: 1.65; }
.guide-note--wide { max-width: 900px; margin-top: 3rem; }
.guide-caveat { max-width: 980px; margin: 2.25rem 0 0; border-top: 1px solid #d9dfeb; padding-top: 1.1rem; color: #667089; font-size: .86rem; line-height: 1.65; }

.guide-sequence { margin: 0; padding: 0; list-style: none; }
.guide-sequence li { display: grid; grid-template-columns: 52px minmax(0,1fr); gap: clamp(1.25rem,3vw,2.25rem); border-top: 1px solid #d9dfeb; padding: 1.75rem 0; }
.guide-sequence li:last-child { border-bottom: 1px solid #d9dfeb; }
.guide-sequence li > span, .guide-compact-steps li > span, .guide-review-steps li > span { color: #3559c7; font-size: .72rem; font-weight: 800; letter-spacing: .06em; }
.guide-sequence h3, .guide-compact-steps h3, .guide-review-steps h3 { margin: 0 0 .5rem; font-size: 1.22rem; }
.guide-sequence p, .guide-compact-steps p, .guide-review-steps p { max-width: 850px; margin: 0; color: #667089; line-height: 1.7; }
.guide-sequence--compact { width: min(100%,980px); }

.guide-decision-list { border-top: 1px solid #d9dfeb; }
.guide-decision-list article { border-bottom: 1px solid #d9dfeb; padding: 1.5rem 0; }
.guide-decision-list h3 { margin: 0 0 .55rem; font-size: 1.2rem; }
.guide-decision-list p { margin: 0; color: #667089; line-height: 1.7; }
.guide-decision-list--two { display: grid; grid-template-columns: 1fr 1fr; }
.guide-decision-list--two article { padding: 1.8rem; }
.guide-decision-list--two article:nth-child(odd) { border-right: 1px solid #d9dfeb; padding-left: 0; }

.guide-example { scroll-margin-top: 164px; position: relative; isolation: isolate; overflow: hidden; padding: clamp(5.5rem,8vw,8rem) max(2rem,calc((100vw - var(--content))/2)); background: #09172e; color: #fff; }
.guide-example::before { content: ""; position: absolute; z-index: -1; inset: 0; background: radial-gradient(circle at 84% 18%,rgba(72,105,204,.28),transparent 30%),radial-gradient(circle at 8% 90%,rgba(28,139,120,.14),transparent 30%); }
.guide-example > div:first-child { max-width: 900px; margin-bottom: clamp(3rem,5vw,4.5rem); }
.guide-example h2 { max-width: 880px; margin: .4rem 0 1.2rem; color: #fff; font-size: clamp(2.65rem,4.4vw,4.6rem); font-weight: 500; line-height: 1.06; letter-spacing: -.045em; }
.guide-example > div:first-child > p:not(.eyebrow) { max-width: 760px; margin-bottom: 0; color: #bcc7da; font-size: 1.05rem; line-height: 1.72; }
.guide-example__facts, .guide-participant-grid, .guide-comparison-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 0; background: #34435e; }
.guide-example__facts > div, .guide-participant-grid article, .guide-comparison-grid article { background: #0e203b; padding: clamp(1.5rem,3vw,2.5rem); }
.guide-example__facts dt, .guide-participant-grid article > span, .guide-comparison-grid article > span { color: #93aaf0; font-size: .7rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.guide-example__facts dd { margin: .75rem 0 0; color: #e7ecf6; line-height: 1.6; }
.guide-participant-grid h3, .guide-comparison-grid h3 { margin: .75rem 0 .65rem; color: #fff; font-size: 1.3rem; }
.guide-participant-grid p, .guide-comparison-grid p { margin: 0; color: #b9c5d9; line-height: 1.65; }
.guide-example__takeaway { max-width: 1000px; margin: 2rem 0 0; border-left: 2px solid #79c8b8; padding-left: 1rem; color: #d9e1ef; font-size: 1rem; line-height: 1.7; }
.guide-example__questions { max-width: 980px; margin: 0; padding: 0; list-style: none; }
.guide-example__questions li { position: relative; border-top: 1px solid #34435e; padding: 1rem 0 1rem 1.7rem; color: #d1d9e7; line-height: 1.6; }
.guide-example__questions li::before { content: "?"; position: absolute; left: 0; color: #8ba3e9; font-weight: 800; }
.guide-example__analysis { max-width: 1000px; margin-top: 2rem; }
.guide-example__analysis p { margin: 0; border-top: 1px solid #34435e; padding: 1rem 0; color: #c7d1e2; line-height: 1.68; }
.guide-example__analysis strong { display: block; margin-bottom: .25rem; color: #fff; }

.guide-readiness-grid, .guide-role-grid, .guide-anatomy, .guide-observation-frame, .resource-path-grid, .guide-boundary-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid #d9dfeb; }
.guide-readiness-grid article, .guide-role-grid article, .guide-anatomy article, .guide-observation-frame article, .resource-path-grid article, .guide-boundary-grid article { border-right: 1px solid #d9dfeb; border-bottom: 1px solid #d9dfeb; padding: clamp(1.75rem,3vw,2.6rem); }
.guide-readiness-grid article:nth-child(2n), .guide-role-grid article:nth-child(2n), .guide-anatomy article:nth-child(2n), .guide-observation-frame article:nth-child(2n), .resource-path-grid article:nth-child(2n), .guide-boundary-grid article:nth-child(2n) { border-right: 0; }
.guide-readiness-grid article > span, .guide-role-grid article > span, .guide-anatomy article > span, .guide-observation-frame article > span, .guide-boundary-grid article > span { color: #3559c7; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.guide-readiness-grid h3, .guide-role-grid h3, .guide-anatomy h3, .guide-observation-frame h3, .resource-path-grid article > span, .guide-boundary-grid h3 { margin: .8rem 0 .7rem; font-size: 1.35rem; }
.guide-readiness-grid p, .guide-role-grid p, .guide-observation-frame p, .resource-path-grid p, .guide-boundary-grid p { margin: 0; color: #667089; line-height: 1.68; }
.guide-readiness-grid ul, .guide-anatomy ul, .guide-boundary-grid ul, .guide-policy-grid ul { margin: 1rem 0 0; padding: 0; list-style: none; }
.guide-readiness-grid li, .guide-anatomy li, .guide-boundary-grid li, .guide-policy-grid li { position: relative; border-top: 1px solid #dde2ec; padding: .72rem 0 .72rem 1.2rem; color: #667089; font-size: .92rem; line-height: 1.55; }
.guide-readiness-grid li::before, .guide-anatomy li::before, .guide-boundary-grid li::before, .guide-policy-grid li::before { content: ""; position: absolute; left: 0; top: 1.05rem; width: 5px; height: 5px; border-radius: 50%; background: #6686e5; }

.guide-constraint-list { display: grid; grid-template-columns: 1fr 1fr; margin: 0; border-top: 1px solid #d9dfeb; padding: 0; list-style: none; }
.guide-constraint-list li { display: grid; grid-template-columns: 42px minmax(0,1fr); gap: 1rem; border-right: 1px solid #d9dfeb; border-bottom: 1px solid #d9dfeb; padding: 1.5rem; }
.guide-constraint-list li:nth-child(2n) { border-right: 0; }
.guide-constraint-list li > span { color: #3559c7; font-size: .7rem; font-weight: 800; }
.guide-constraint-list h3 { margin: 0 0 .4rem; font-size: 1.12rem; }
.guide-constraint-list p { margin: 0; color: #667089; font-size: .92rem; line-height: 1.62; }

.guide-reason-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: #34435e; }
.guide-reason-grid article { background: #0e203b; padding: clamp(1.6rem,3vw,2.5rem); }
.guide-reason-grid code { display: inline-block; color: #8ba3e9; font-size: .72rem; font-weight: 800; letter-spacing: .04em; }
.guide-reason-grid h3 { margin: 1rem 0 .6rem; color: #fff; font-size: 1.25rem; }
.guide-reason-grid p { margin: 0; color: #bcc7da; line-height: 1.65; }

.guide-review-grid, .guide-measure-grid, .guide-narrative-grid, .resource-truth-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid #d9dfeb; }
.guide-review-grid article, .guide-measure-grid article, .guide-narrative-grid article, .resource-truth-grid article { border-right: 1px solid #d9dfeb; border-bottom: 1px solid #d9dfeb; padding: clamp(1.6rem,3vw,2.4rem); }
.guide-review-grid article:nth-child(3n), .guide-measure-grid article:nth-child(3n), .guide-narrative-grid article:nth-child(3n), .resource-truth-grid article:nth-child(3n) { border-right: 0; }
.guide-review-grid span, .guide-measure-grid span, .guide-narrative-grid span, .resource-truth-grid span { color: #3559c7; font-size: .7rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.guide-review-grid p, .guide-measure-grid p, .guide-narrative-grid p, .resource-truth-grid p { margin: .8rem 0 0; color: #667089; line-height: 1.65; }
.guide-measure-grid h3, .resource-truth-grid h3 { margin: .8rem 0 .55rem; font-size: 1.22rem; }
.guide-measure-grid p { margin: 0; }
.guide-measure-grid small { display: block; margin-top: 1rem; border-top: 1px solid #d9dfeb; padding-top: .75rem; color: #59657d; font-size: .78rem; line-height: 1.55; }
.guide-narrative-grid p { font-size: .95rem; }

.guide-rhythm { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid #d9dfeb; }
.guide-rhythm article { min-height: 280px; border-right: 1px solid #d9dfeb; border-bottom: 1px solid #d9dfeb; padding: clamp(1.8rem,3vw,2.7rem); }
.guide-rhythm article:nth-child(2n) { border-right: 0; }
.guide-rhythm article > span { color: #3559c7; font-size: .7rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.guide-rhythm h3 { margin: 1rem 0 .7rem; font-size: 1.45rem; }
.guide-rhythm p { margin: 0; color: #667089; line-height: 1.7; }

.guide-checklist { max-width: 1040px; margin: 0; border-top: 1px solid #d9dfeb; padding: 0; list-style: none; }
.guide-checklist li { position: relative; border-bottom: 1px solid #d9dfeb; padding: 1.05rem 0 1.05rem 2.2rem; color: #556179; line-height: 1.65; }
.guide-checklist li::before { content: "✓"; position: absolute; left: .2rem; top: 1.02rem; color: #238877; font-weight: 900; }

.guide-compact-steps, .guide-review-steps { margin: 0; padding: 0; list-style: none; }
.guide-compact-steps li, .guide-review-steps li { display: grid; grid-template-columns: 36px minmax(0,1fr); gap: 1rem; border-top: 1px solid #d9dfeb; padding: 1.35rem 0; }
.guide-compact-steps li:last-child, .guide-review-steps li:last-child { border-bottom: 1px solid #d9dfeb; }
.guide-review-steps { max-width: 1040px; }

.guide-status-flow { display: grid; grid-template-columns: repeat(5,1fr); border-top: 1px solid #d9dfeb; }
.guide-status-flow article { border-right: 1px solid #d9dfeb; border-bottom: 1px solid #d9dfeb; padding: 1.5rem; }
.guide-status-flow article:last-child { border-right: 0; }
.guide-status-flow article > span { color: #3559c7; font-size: .7rem; font-weight: 800; }
.guide-status-flow h3 { margin: 1rem 0 .55rem; font-size: 1.15rem; }
.guide-status-flow p { margin: 0; color: #667089; font-size: .9rem; line-height: 1.6; }

.guide-policy-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: #d9dfeb; }
.guide-policy-grid article { background: #fff; padding: clamp(1.8rem,3vw,2.6rem); }
.guide-policy-grid article.is-emphasized { box-shadow: inset 0 4px #3559c7; }
.guide-policy-grid article > span { display: inline-flex; border-radius: 999px; background: #edf2ff; color: #3559c7; padding: .35rem .6rem; font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.guide-policy-grid h3 { margin: 1.15rem 0 .8rem; font-size: 1.4rem; }
.guide-policy-grid p { color: #667089; line-height: 1.66; }

.guide-feedback-example { border-top: 1px solid #d9dfeb; }
.guide-feedback-example > div { border-bottom: 1px solid #d9dfeb; padding: 1.5rem 0; }
.guide-feedback-example span { color: #3559c7; font-size: .68rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.guide-feedback-example blockquote { margin: .75rem 0 0; color: var(--ink-2); font-size: 1.05rem; line-height: 1.7; }
.guide-feedback-example > p { color: #667089; line-height: 1.7; }

.feature-page-hero .hero-actions .button:first-child, .feature-page-hero .hero-actions .button:last-child,
.resource-hub-hero .hero-actions .button:first-child, .resource-hub-hero .hero-actions .button:last-child { width: auto; padding-inline: 1.25rem; }
.resource-hub-hero .hero-actions { margin-top: 1.5rem; }
.resource-hub-hero .button-secondary { background: #fff; color: #3559c7; }
.resource-index { scroll-margin-top: 100px; padding-block: 0; }
.resource-index a h2 { margin: 1.1rem 0 .8rem; font-size: clamp(1.75rem,2.7vw,2.75rem); font-weight: 540; line-height: 1.1; }
.resource-index a p { line-height: 1.7; }
.resource-path-grid article > span { display: block; margin: 0 0 .75rem; color: var(--ink); }
.resource-path-grid article > div { display: flex; flex-wrap: wrap; gap: .55rem 1rem; margin-top: 1.25rem; }
.resource-path-grid article a { color: #3559c7; font-size: .8rem; font-weight: 750; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.resource-map .resource-truth-grid { border-color: #34435e; }
.resource-map .resource-truth-grid article { border-color: #34435e; background: #0e203b; }
.resource-map .resource-truth-grid span { color: #93aaf0; }
.resource-map .resource-truth-grid h3 { color: #fff; }
.resource-map .resource-truth-grid p { color: #b9c5d9; }
.guide-faq { width: min(calc(100% - 4rem),var(--content)); }
.guide-faq .faq-list p { line-height: 1.7; }
.about-story { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem,7vw,8rem); }
.legal-hero { min-height: 420px; background: #f5f7fb; color: #09122a; }
.legal-document { max-width: 860px; padding-block: 5rem 8rem; }
.legal-document section { padding: 2rem 0; border-top: 1px solid #dfe4ee; }
.legal-document h2 { font-size: 1.6rem; }
.legal-document p { color: #556179; line-height: 1.75; }

.demo-request-layout { min-height: calc(100vh - 110px); display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem,8vw,9rem); align-items: center; padding: clamp(6rem,10vw,10rem) max(2rem,calc((100vw - var(--content))/2)); background: #09122a; color: #fff; }
.demo-request-layout > div > p:not(.eyebrow) { color: #c8d2e8; }
.demo-request-layout > div li { margin: .6rem 0; }
.demo-request-form { display: flex; flex-direction: column; gap: 1rem; border-radius: 8px; background: #fff; color: #09122a; padding: clamp(1.5rem,4vw,3rem); }
.demo-request-form label { display: flex; flex-direction: column; gap: .4rem; }
.demo-request-form label > span { font-size: .78rem; font-weight: 750; }
.demo-request-form input, .demo-request-form select, .demo-request-form textarea { width: 100%; border: 1px solid #cdd5e3; border-radius: 4px; background: #fff; padding: .75rem; }
.demo-request-form .check-row { flex-direction: row; }
.demo-request-form .check-row input { width: auto; }

.site-footer { grid-template-columns: 2fr repeat(3,1fr); background: #071126; color: #d1d8e8; }
.site-footer .brand__product { color: #aeb8d2; }

.auth-body { background: radial-gradient(circle at 78% 20%,rgba(91,123,221,.28),transparent 28%),linear-gradient(135deg,#14244e,#071126); }
.auth-shell { width: min(100%,520px); }
.auth-panel-wide { width: min(820px,calc(100vw - 2rem)); margin-left: 50%; transform: translateX(-50%); }
.auth-panel { border-radius: 8px; }
.auth-panel .button { border-color: var(--brand-primary); border-radius: 999px; background: var(--brand-primary); color: #fff; }
.auth-panel .button.button-secondary { border-color: #cbd3e1; background: #fff; color: #26314b; }
.auth-panel .button.button-secondary:hover { border-color: #9da9bc; background: #f7f9fc; color: #18233e; box-shadow: none; }
.auth-panel .eyebrow { color: #3559c7; }
.plan-choice { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin: 0; border: 0; padding: 0; }
.plan-choice legend { margin-bottom: .45rem; color: #25251f; font-size: .8rem; font-weight: 760; }
.plan-choice label { display: flex; flex-direction: row; align-items: center; gap: .75rem; border: 1px solid #d1d1c9; border-radius: 5px; padding: .85rem; cursor: pointer; }
.plan-choice label:has(input:checked) { border-color: #8ba3e9; background: #eef2ff; box-shadow: inset 3px 0 var(--brand-primary-strong); }
.plan-choice span, .plan-choice b, .plan-choice small { display: block; }
.plan-choice small { color: #667089; }
.recovery-code-list { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; margin: 1rem 0 1.5rem; padding: 0; list-style: none; }
.recovery-code-list li { border: 1px solid #d7d7cf; border-radius: 4px; background: #f5f5ef; padding: .6rem; text-align: center; }
.recovery-code-list code { font-weight: 750; letter-spacing: .08em; }

.onboarding-steps { margin: 0; padding: 0; list-style: none; }
.onboarding-steps li { display: grid; grid-template-columns: 50px 1fr auto; gap: 1.2rem; align-items: center; border-top: 1px solid var(--line); background: #fff; padding: 1.5rem; }
.onboarding-steps li > span { color: var(--muted); font-weight: 800; }
.onboarding-steps li.is-complete > span { color: var(--teal); }
.onboarding-steps p { margin: .35rem 0 0; color: var(--muted); }
.onboarding-help { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: 2rem; border-radius: 14px; background: var(--navy); color: #fff; padding: 2rem; }
.onboarding-help p { color: #b5c0d8; }
.onboarding-help .text-link { color: #fff; }
.account-settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.app-section { border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 1.5rem; }
.account-security-section { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.settings-section > div > .settings-form { margin-top: 1.5rem; }
.settings-section h4 { margin: 0 0 .85rem; }
.settings-list { display: flex; flex-direction: column; align-self: stretch; }
.settings-list > div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--line); padding: .85rem 0; }
.settings-list strong, .settings-list small { display: block; }
.settings-list small { margin-top: .18rem; color: var(--muted); }
.settings-list form, .team-table form { margin: 0; }
.settings-list button, .team-table form button { border: 0; background: transparent; cursor: pointer; }
.dated-end-form { display: flex; align-items: end; gap: .55rem; }
.dated-end-form label span { display: block; margin-bottom: .2rem; color: var(--muted); font-size: .66rem; font-weight: 700; }
.dated-end-form input { width: 145px; min-height: 40px; border: 1px solid var(--line); border-radius: 7px; background: #fff; padding: .4rem .5rem; }
.student-management { display: flex; align-items: center; gap: 1rem; margin: 0 0 1rem; border: 1px solid var(--line); border-radius: 12px; background: #fff; padding: .85rem 1rem; }
.student-management > div { margin-right: auto; }
.student-management > div strong, .student-management > div span { display: block; }
.student-management > div span, .student-management > small { color: var(--muted); font-size: .72rem; }
.student-management > form { display: flex; align-items: center; gap: .5rem; }
.student-management > form select { border: 1px solid var(--line); border-radius: 7px; padding: .55rem; }
.student-management > form button { border: 0; background: transparent; cursor: pointer; }
.session-correction { border-top: 1px solid var(--line-soft); padding: .8rem 1rem; }
.session-correction summary { color: var(--muted); font-size: .76rem; cursor: pointer; }
.session-correction form { display: grid; grid-template-columns: 1fr auto; gap: .75rem; align-items: end; padding-top: .8rem; }
.session-correction label { display: flex; flex-direction: column; gap: .35rem; }
.session-correction label span { font-size: .72rem; font-weight: 750; }
.session-correction textarea { width: 100%; border: 1px solid var(--line); border-radius: 8px; padding: .65rem; }
.privacy-list { display: flex; flex-direction: column; }
.privacy-list article { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 1rem; align-items: center; border-top: 1px solid var(--line); padding: 1rem 0; }
.privacy-list article strong, .privacy-list article small { display: block; }
.privacy-list article small { margin-top: .25rem; color: var(--muted); }
.privacy-list article p { max-width: 760px; margin: .6rem 0 0; color: var(--muted); }
.privacy-list article form { display: flex; align-items: center; gap: .6rem; }
.privacy-list article select { border: 1px solid var(--line); border-radius: 7px; background: #fff; padding: .55rem; }
.privacy-list article button { border: 0; background: transparent; cursor: pointer; }

.motion-ready [data-reveal]:not(.is-visible) { opacity: 0; transform: translateY(34px); }
.motion-ready [data-reveal] { transition: opacity .7s cubic-bezier(.2,.75,.2,1),transform .7s cubic-bezier(.2,.75,.2,1); }
.motion-ready [data-reveal].is-visible { opacity: 1; transform: none; }
.motion-ready .product-bands [data-reveal]:nth-child(2), .motion-ready .number-grid [data-reveal]:nth-child(2) { transition-delay: .08s; }
.motion-ready .product-bands [data-reveal]:nth-child(3), .motion-ready .number-grid [data-reveal]:nth-child(3) { transition-delay: .16s; }
.motion-ready .number-grid [data-reveal]:nth-child(4) { transition-delay: .24s; }

@media (max-width: 1100px) {
    .site-header { grid-template-columns: 1fr auto auto; }
    .site-header nav { display: none; }
    .header-actions { grid-column: 2; }
    .site-header .menu-button { display: grid; grid-column: 3; grid-row: 1; justify-self: end; gap: 5px; padding: 8px; color: inherit; }
    .menu-button span { width: 22px; height: 2px; background: currentColor; }
    .site-header.is-menu-open { height: auto; min-height: 88px; align-content: start; padding-block: 17px; }
    .site-header.is-menu-open { background: rgba(9,18,42,.98); color: #fff; }
    .site-header.is-menu-open .brand { grid-column: 1; grid-row: 1; }
    .site-header.is-menu-open .menu-button { grid-column: 3; grid-row: 1; }
    .site-header.is-menu-open nav { grid-column: 1 / -1; grid-row: 2; display: flex; flex-direction: column; align-items: stretch; gap: 0; padding-top: 1rem; }
    .site-header.is-menu-open nav > a { border-top: 1px solid rgba(255,255,255,.14); padding: .9rem 0; }
    .site-header.is-menu-open .nav-cluster > summary { border-top: 1px solid rgba(255,255,255,.14); padding: .9rem 0; }
    .site-header.is-menu-open nav { max-height: calc(100vh - 150px); overflow-y: auto; }
    .nav-panel, .nav-panel-compact { width: 100%; position: static; grid-template-columns: 1fr; transform: none; border: 0; border-radius: 0; box-shadow: none; background: #101d3e; color: #fff; padding: 0 0 .6rem .7rem; }
    .nav-panel small { color: #aaa9a1; }
    .nav-panel a:hover, .nav-panel a:focus-visible { background: #142044; }
    .resource-menu { overflow: visible; }
    .resource-menu__section { padding: .55rem 0 .75rem .25rem; }
    .resource-menu__section + .resource-menu__section { border: 0; border-top: 1px solid rgba(255,255,255,.12); background: transparent; }
    .resource-menu__label { margin: .55rem 1rem .3rem; color: #9bb0ef; }
    .resource-menu__section > a { padding-block: .72rem; }
    .resource-menu__planning { border-color: rgba(255,255,255,.12); }
    .resource-menu__planning a { color: #fff; }
    .feature-page-hero { grid-template-columns: 1fr; }
    .feature-page-hero > div:first-child { max-width: 780px; }
    .page-demo-wrap, .schedule-hero-visual, .note-hero-visual, .progress-hero-visual, .supervision-chain { width: min(100%,900px); }
    .capability-index, .role-bands, .measurement-bands, .team-outcomes { grid-template-columns: 1fr 1fr; }
    .capability-index article:nth-of-type(3n), .role-bands article:nth-of-type(3n), .measurement-bands article:nth-of-type(3n), .team-outcomes article:nth-of-type(3n) { border-right: 1px solid #dfe4ee; }
    .capability-index article:nth-of-type(2n), .role-bands article:nth-of-type(2n), .measurement-bands article:nth-of-type(2n), .team-outcomes article:nth-of-type(2n) { border-right: 0; }
    .site-footer { grid-template-columns: 1.6fr 1fr 1fr; }
    .site-footer > div:nth-child(4) { grid-column: 2; }
}

@media (max-width: 820px) {
    .site-header { grid-template-columns: 1fr auto; }
    .marketing-path-home .site-header { height: 68px; padding-inline: 1.5rem; background: rgba(9,18,42,.88); }
    .marketing-path-home .site-header.is-menu-open { height: auto; min-height: 68px; align-content: start; padding-block: 17px; }
    .marketing-path-home .site-header nav { transform: none; }
    .site-header:not(.is-menu-open) nav { display: none; }
    .site-header .menu-button { display: grid; grid-column: 2; grid-row: 1; justify-self: end; color: inherit; }
    .site-header.is-menu-open { background: rgba(9,18,42,.98); color: #fff; }
    .home-hero { height: auto; min-height: 0; margin-top: 0; padding: 5rem 1rem; background: #071126; }
    .home-hero-sticky { height: auto; min-height: 1050px; position: relative; overflow: visible; }
    .hero-atmosphere { inset: 0; background-position: center 58%; background-size: cover; opacity: .72; filter: saturate(.62) contrast(1.05) blur(4px); }
    .hero-atmosphere__video { display: none; }
    .hero-atmosphere::after { background: linear-gradient(0deg,#071126 6%,rgba(7,17,38,.32) 60%,rgba(7,17,38,.74)); }
    .hero-copy { left: auto; top: auto; width: 100%; max-width: 650px; margin: 0 auto 3rem; text-align: left; }
    .hero-copy h1 { max-width: 100%; font-size: clamp(2.8rem,8vw,3.5rem); }
    .hero-product { left: auto; top: auto; width: 100%; transform: none !important; }
    .hero-product::before, .hero-product::after { display: none; }
    .hero-product .product-frame::before { display: none; }
    .hero-product .product-frame { width: 100%; height: 360px; margin: 0; aspect-ratio: auto; }
    .hero-actions { justify-content: flex-start; }
    .hero-actions .button:first-child, .hero-actions .button:last-child { width: 100%; }
    .hero-proof { height: 66px; position: absolute; bottom: -5rem; margin: 0 -1rem; padding: 0; }
    .hero-proof__track { animation-duration: 34s; }
    .hero-proof__group { gap: 3rem; padding-right: 3rem; }
    .pricing-preview { grid-template-columns: 1fr; gap: 2.25rem; padding: 4.5rem 1rem; }
    .pricing-preview h2 { max-width: 680px; font-size: clamp(2.45rem,8vw,3.35rem); }
    .pricing-preview > div:last-child { max-width: 520px; }
    .compare-section, .faq-section { padding-block: 4.5rem; }
    .product-bands a { min-height: 0; grid-template-columns: 32px minmax(0,1fr) 24px; gap: 1rem; padding: 3.25rem 1rem; }
    .product-bands h2 { font-size: clamp(2.1rem,8vw,3rem); }
    .product-bands a > b { font-size: 1.15rem; }
    .hero-product .demo-topbar { height: 46px; padding: 8px 11px; }
    .hero-product .demo-screen { height: calc(100% - 46px); padding: 12px 12px 40px; }
    .hero-product .demo-heading { margin-bottom: 9px; }
    .hero-product .demo-screen-title { font-size: 18px; }
    .hero-product .demo-metrics { margin-bottom: 10px; }
    .hero-product .optimizer-note { padding: 7px; margin-bottom: 7px; }
    .hero-product .optimizer-note small { display: none; }
    .hero-product [data-demo-screen="schedule"] .week-grid { min-height: 205px; }
    .numbers-section, .workflow-section, .feature-section, .compare-section, .faq-section, .pricing-section, .pricing-detail, .security-overview,
    .product-story, .capability-index, .constraint-section, .split-story, .role-bands, .measurement-bands, .day-sequence, .team-outcomes, .resource-index, .about-story, .legal-document { width: min(calc(100% - 2rem),var(--content)); }
    .product-story, .constraint-section, .split-story, .about-story, .demo-request-layout { grid-template-columns: 1fr; }
    .product-story > div { position: static; }
    .split-story.reverse > :first-child { order: 0; }
    .day-sequence ol { grid-template-columns: 1fr 1fr; }
    .day-sequence li:nth-child(2) { border-right: 0; }
    .resource-index { grid-template-columns: 1fr; }
    .resource-index a { min-height: 270px; }
    .site-footer { grid-template-columns: 1fr 1fr; }
    .site-footer > div:first-child, .site-footer > div:nth-child(4) { grid-column: 1 / -1; }
    .account-settings-grid { grid-template-columns: 1fr; }
    .account-security-section { grid-column: auto; grid-template-columns: 1fr; }
    .privacy-list article { grid-template-columns: 1fr auto; align-items: start; }
    .privacy-list article form { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
    .brand__mark { width: 36px; height: 36px; flex-basis: 36px; background-size: 27px; }
    .brand__name { font-size: .98rem; }
    .brand__product { font-size: .64rem; }
    .site-header { padding-inline: 1rem; }
    .pricing-preview > div:last-child { max-width: none; flex-direction: column; align-items: stretch; }
    .pricing-preview > div:last-child .button { flex: 0 0 auto; width: 100%; }
    .pricing-preview small { margin-top: .5rem; }
    .feature-page-hero, .page-hero, .audience-hero, .content-page-hero, .legal-hero, .demo-request-layout { padding-inline: 1rem; }
    .feature-page-hero { min-height: 620px; }
    .supervision-chain { grid-template-columns: 1fr; }
    .supervision-chain i { transform: rotate(90deg); }
    .note-hero-visual dl { grid-template-columns: 1fr; }
    .capability-index, .role-bands, .measurement-bands, .team-outcomes { grid-template-columns: 1fr; }
    .capability-index article, .role-bands article, .measurement-bands article, .team-outcomes article { min-height: auto; border-right: 0 !important; }
    .day-sequence ol { grid-template-columns: 1fr; }
    .day-sequence li { border-right: 0; }
    .site-footer { grid-template-columns: 1fr; }
    .site-footer > div:first-child, .site-footer > div:nth-child(4) { grid-column: auto; }
    .plan-choice { grid-template-columns: 1fr; }
    .onboarding-steps li { grid-template-columns: 38px 1fr; }
    .onboarding-steps .button { grid-column: 2; justify-self: start; }
    .onboarding-help { align-items: flex-start; flex-direction: column; }
    .privacy-list article { grid-template-columns: 1fr; }
    .privacy-list article form { grid-column: auto; align-items: stretch; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    .motion-ready [data-reveal]:not(.is-visible) { opacity: 1; transform: none; }
    .hero-atmosphere { transform: none !important; }
    .hero-atmosphere__video { display: none; }
    .hero-proof { overflow-x: auto; }
    .hero-proof__track { width: max-content; animation: none; transform: none; }
    .hero-proof__group[aria-hidden="true"] { display: none; }
}

/* Solo school-based OT page */
.solo-page { background: #fff; }
.solo-hero {
    min-height: 720px;
    display: grid;
    grid-template-columns: minmax(0,.92fr) minmax(520px,1.08fr);
    gap: clamp(3rem,6vw,7rem);
    align-items: center;
    padding: clamp(6rem,9vw,8rem) max(2rem,calc((100vw - var(--content))/2));
    background: radial-gradient(circle at 78% 22%,rgba(75,104,192,.28),transparent 29%),linear-gradient(135deg,#09122a 0%,#0d1b3a 68%,#142750 100%);
    color: #fff;
}
.solo-hero__copy { max-width: 670px; }
.solo-hero h1 { max-width: 720px; margin: .55rem 0 1.5rem; font-size: clamp(3.25rem,5.2vw,5.65rem); font-weight: 500; line-height: 1.02; }
.solo-hero__lead { max-width: 650px; margin-bottom: 1rem; color: #d1d9eb; font-size: clamp(1.05rem,1.35vw,1.22rem); line-height: 1.62; }
.solo-hero__support { max-width: 610px; margin-bottom: 0; color: #9eabc6; font-size: .96rem; line-height: 1.6; }
.solo-hero .hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 2rem 0 0; }
.solo-hero .hero-actions .button { width: auto; min-width: 172px; padding-inline: 1.25rem; }

.solo-snapshot { min-width: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.25); border-radius: 18px; background: #fff; color: #09122a; box-shadow: 0 34px 90px rgba(0,0,0,.3); }
.solo-snapshot > header { display: flex; justify-content: space-between; gap: 1rem; align-items: start; border-bottom: 1px solid #e1e6ef; padding: 1.35rem 1.5rem; }
.solo-snapshot > header div { display: flex; flex-direction: column; gap: .25rem; }
.solo-snapshot > header span { color: #667089; font-size: .7rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.solo-snapshot > header strong { font-size: 1.22rem; }
.solo-snapshot > header small { border: 1px solid #d6deeb; border-radius: 999px; color: #5b667e; padding: .35rem .6rem; font-size: .66rem; white-space: nowrap; }
.solo-snapshot__summary { display: grid; grid-template-columns: repeat(3,1fr); border-bottom: 1px solid #e1e6ef; background: #f5f7fb; }
.solo-snapshot__summary div { min-width: 0; border-right: 1px solid #e1e6ef; padding: 1.25rem; }
.solo-snapshot__summary div:last-child { border-right: 0; }
.solo-snapshot__summary strong { display: block; color: #3559c7; font-size: 1.8rem; line-height: 1; }
.solo-snapshot__summary span { display: block; margin-top: .45rem; color: #657087; font-size: .72rem; line-height: 1.35; }
.solo-snapshot__list { padding: .3rem 1.5rem 1rem; }
.solo-snapshot__list article { display: grid; grid-template-columns: 50px minmax(0,1fr) auto; gap: 1rem; align-items: center; border-bottom: 1px solid #e5e9f0; padding: 1.25rem 0; }
.solo-snapshot__list article:last-child { border-bottom: 0; }
.solo-snapshot__student { min-width: 45px; height: 45px; padding: 0 .45rem; display: grid; place-items: center; border-radius: 999px; background: #e9eefb; color: #3559c7; font-size: .68rem; font-weight: 800; }
.solo-snapshot__list article > div { min-width: 0; }
.solo-snapshot__list article > div > strong { display: block; margin-bottom: .25rem; font-size: .9rem; }
.solo-snapshot__list p { margin: 0; color: #667089; font-size: .76rem; line-height: 1.45; }
.solo-snapshot__list mark { border-radius: 999px; background: #fff0d9; color: #7a4709; padding: .38rem .6rem; font-size: .64rem; font-weight: 800; white-space: nowrap; }
.solo-snapshot__list article:nth-child(2) mark { background: #eaf0ff; color: #294ca9; }
.solo-snapshot__list article:nth-child(3) mark { background: #eef0f5; color: #4f5a70; }

.solo-platform, .solo-control {
    width: min(calc(100% - 4rem),var(--content));
    margin-inline: auto;
    padding-block: clamp(6rem,9vw,9rem);
}
.solo-section-intro { max-width: 930px; }
.solo-section-intro h2 { max-width: 900px; margin: .45rem 0 1.25rem; font-weight: 500; }
.solo-section-intro > p:not(.eyebrow) { max-width: 750px; margin-bottom: 0; color: #667089; font-size: 1.08rem; line-height: 1.7; }
.solo-outcome-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: clamp(3.5rem,6vw,5.5rem); border-top: 1px solid #dfe4ee; }
.solo-outcome-grid article { min-height: 390px; display: flex; flex-direction: column; align-items: flex-start; border-bottom: 1px solid #dfe4ee; padding: clamp(2rem,4vw,3.25rem); }
.solo-outcome-grid article:nth-child(odd) { border-right: 1px solid #dfe4ee; padding-left: 0; }
.solo-outcome-grid article:nth-child(even) { padding-right: 0; }
.solo-outcome-grid article > span { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid #b9c8eb; border-radius: 50%; color: #3559c7; font-size: .68rem; font-weight: 800; }
.solo-outcome-grid h3 { max-width: 500px; margin: 1.5rem 0 .9rem; font-size: clamp(1.65rem,2.4vw,2.35rem); font-weight: 580; }
.solo-outcome-grid p { max-width: 550px; margin-bottom: 1.5rem; color: #667089; line-height: 1.72; }
.solo-outcome-grid .text-link { margin-top: auto; }

.solo-scenario { background: #f3f6fb; }
.solo-scenario__inner { width: min(calc(100% - 4rem),var(--content)); display: grid; grid-template-columns: minmax(300px,.72fr) minmax(0,1.28fr); gap: clamp(3rem,8vw,8rem); align-items: start; margin-inline: auto; padding-block: clamp(6rem,9vw,9rem); }
.solo-scenario__copy { position: sticky; top: 120px; }
.solo-scenario__copy h2 { margin: .45rem 0 1.25rem; font-size: clamp(2.5rem,4vw,4.35rem); font-weight: 500; }
.solo-scenario__copy > p:not(.eyebrow) { color: #667089; font-size: 1.05rem; line-height: 1.7; }
.solo-scenario__steps { margin: 0; padding: 0; list-style: none; border-top: 1px solid #d6deeb; background: #fff; box-shadow: 0 18px 55px rgba(9,18,42,.07); }
.solo-scenario__steps li { display: grid; grid-template-columns: 46px minmax(0,1fr); gap: 1.25rem; border-bottom: 1px solid #dfe4ee; padding: clamp(1.6rem,3vw,2.25rem); }
.solo-scenario__steps li > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #e8eefc; color: #3559c7; font-size: .72rem; font-weight: 800; }
.solo-scenario__steps h3 { margin-bottom: .55rem; font-size: clamp(1.2rem,1.7vw,1.55rem); font-weight: 650; }
.solo-scenario__steps p { margin: 0; color: #667089; line-height: 1.66; }

.solo-control { padding-bottom: clamp(5rem,8vw,8rem); }
.solo-control__grid { display: grid; grid-template-columns: repeat(3,1fr); margin-top: clamp(3rem,5vw,4.5rem); border-top: 1px solid #dfe4ee; }
.solo-control__grid article { border-right: 1px solid #dfe4ee; padding: 2rem clamp(1.4rem,3vw,2.5rem); }
.solo-control__grid article:first-child { padding-left: 0; }
.solo-control__grid article:last-child { border-right: 0; padding-right: 0; }
.solo-control__grid h3 { margin-bottom: .75rem; font-size: 1.35rem; font-weight: 650; }
.solo-control__grid p { margin: 0; color: #667089; line-height: 1.65; }

.solo-faq { border-top: 1px solid #e1e6ef; }
.solo-faq .faq-list a { color: #3559c7; text-underline-offset: 3px; }

.solo-pricing { display: grid; grid-template-columns: minmax(0,1.18fr) minmax(330px,.82fr); gap: clamp(3rem,7vw,7rem); align-items: center; padding: clamp(5rem,8vw,7.5rem) max(2rem,calc((100vw - var(--content))/2)); background: radial-gradient(circle at 82% 18%,rgba(91,123,221,.28),transparent 30%),#09122a; color: #fff; }
.solo-pricing > div:first-child { max-width: 760px; }
.solo-pricing h2 { margin: .45rem 0 1.25rem; font-size: clamp(2.7rem,4.6vw,4.8rem); font-weight: 500; }
.solo-pricing > div:first-child > p:not(.eyebrow) { max-width: 700px; color: #c4cde0; font-size: 1.05rem; line-height: 1.7; }
.solo-pricing ul { display: grid; gap: .7rem; margin: 2rem 0 0; padding: 0; list-style: none; }
.solo-pricing li { position: relative; color: #dbe2f1; padding-left: 1.55rem; }
.solo-pricing li::before { content: "✓"; position: absolute; left: 0; color: #9bb0ef; font-weight: 800; }
.solo-plan-card { display: flex; flex-direction: column; align-items: stretch; border: 1px solid rgba(255,255,255,.2); border-radius: 18px; background: rgba(10,24,53,.7); padding: clamp(1.75rem,4vw,2.75rem); box-shadow: 0 24px 70px rgba(0,0,0,.24); }
.solo-plan-price { display: flex; align-items: end; gap: .8rem; }
.solo-plan-price strong { font-size: clamp(3.5rem,6vw,5.5rem); font-weight: 520; letter-spacing: -.065em; line-height: .9; }
.solo-plan-price span { color: #b9c4d9; padding-bottom: .45rem; font-size: .86rem; }
.solo-plan-card > p { margin: 1.25rem 0 1.6rem; color: #c4cde0; line-height: 1.6; }
.solo-plan-card .button + .button { margin-top: .7rem; }
.solo-plan-card small { margin-top: 1.2rem; color: #aab6cf; line-height: 1.55; }

@media (max-width: 1100px) {
    .solo-hero { grid-template-columns: 1fr; }
    .solo-hero__copy { max-width: 800px; }
    .solo-snapshot { width: min(100%,820px); }
    .solo-scenario__inner { grid-template-columns: minmax(280px,.8fr) minmax(0,1.2fr); gap: 3.5rem; }
}

@media (max-width: 820px) {
    .solo-hero { min-height: auto; padding: 5.5rem 1rem; }
    .solo-hero h1 { font-size: clamp(3rem,10vw,4.5rem); }
    .solo-platform, .solo-control, .solo-scenario__inner { width: min(calc(100% - 2rem),var(--content)); }
    .solo-outcome-grid { grid-template-columns: 1fr; }
    .solo-outcome-grid article { min-height: 0; padding: 2.5rem 0; }
    .solo-outcome-grid article:nth-child(odd) { border-right: 0; }
    .solo-scenario__inner, .solo-pricing { grid-template-columns: 1fr; }
    .solo-scenario__copy { position: static; }
    .solo-control__grid { grid-template-columns: 1fr; }
    .solo-control__grid article, .solo-control__grid article:first-child, .solo-control__grid article:last-child { border-right: 0; border-bottom: 1px solid #dfe4ee; padding: 1.75rem 0; }
    .solo-pricing { padding: 5rem 1rem; }
    .solo-plan-card { width: min(100%,580px); }
}

@media (max-width: 560px) {
    .solo-hero { padding-top: 4.75rem; }
    .solo-hero .hero-actions { flex-direction: column; align-items: stretch; }
    .solo-hero .hero-actions .button { width: 100%; }
    .solo-snapshot > header { align-items: center; padding: 1.1rem; }
    .solo-snapshot__summary { grid-template-columns: 1fr; }
    .solo-snapshot__summary div { display: grid; grid-template-columns: 40px 1fr; gap: .6rem; align-items: center; border-right: 0; border-bottom: 1px solid #e1e6ef; padding: .85rem 1.1rem; }
    .solo-snapshot__summary div:last-child { border-bottom: 0; }
    .solo-snapshot__summary strong { font-size: 1.45rem; }
    .solo-snapshot__summary span { margin-top: 0; }
    .solo-snapshot__list { padding-inline: 1.1rem; }
    .solo-snapshot__list article { grid-template-columns: 42px minmax(0,1fr); gap: .8rem; }
    .solo-snapshot__student { min-width: 40px; height: 40px; }
    .solo-snapshot__list mark { grid-column: 2; justify-self: start; }
    .solo-platform, .solo-control, .solo-scenario__inner { padding-block: 4.75rem; }
    .solo-scenario__steps li { grid-template-columns: 36px minmax(0,1fr); gap: .9rem; padding: 1.4rem 1.1rem; }
    .solo-scenario__steps li > span { width: 30px; height: 30px; }
    .solo-pricing { padding-block: 4.75rem; }
}

/* Account creation */
.auth-body:has(.registration-panel) {
    place-items: start center;
    padding: clamp(1.25rem, 3vw, 2.5rem);
}
.auth-shell:has(.registration-panel) {
    width: min(100%, 1080px);
}
.auth-shell:has(.registration-panel) > .flash {
    width: 100%;
    margin: 0 0 1rem;
}
.auth-shell:has(.registration-panel) .auth-brand {
    margin-bottom: 1.25rem;
}
.auth-panel-wide.registration-panel {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(270px, .72fr) minmax(0, 1.55fr);
    grid-template-areas: "summary main";
    margin-left: 0;
    transform: none;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 18px;
    padding: 0;
    box-shadow: 0 32px 90px rgba(0, 0, 0, .3);
}
.registration-summary {
    min-width: 0;
    grid-area: summary;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 2rem;
    background: linear-gradient(155deg, #142959 0%, #0b1938 68%, #071126 100%);
    color: #fff;
    padding: clamp(2rem, 4vw, 3rem);
}
.registration-summary .eyebrow {
    color: #b9c9ff;
}
.registration-summary h2 {
    max-width: 310px;
    margin: 0 0 1rem;
    font-size: clamp(1.8rem, 2.5vw, 2.45rem);
    font-weight: 560;
    letter-spacing: -.045em;
    line-height: 1.08;
}
.registration-summary p:not(.eyebrow) {
    margin: 0;
    color: #c9d3e8;
    font-size: .94rem;
    line-height: 1.65;
}
.registration-outcomes {
    display: grid;
    gap: .9rem;
    margin: 2rem 0 0;
    padding: 0;
    list-style: none;
}
.registration-outcomes li {
    display: grid;
    grid-template-columns: 24px 1fr;
    gap: .7rem;
    align-items: start;
    color: #e8edfa;
    font-size: .85rem;
    line-height: 1.45;
}
.registration-outcomes li > span {
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(185, 201, 255, .34);
    border-radius: 50%;
    background: rgba(185, 201, 255, .09);
    color: #b9c9ff;
    font-size: .7rem;
    font-weight: 800;
}
.registration-trial {
    border-top: 1px solid rgba(255, 255, 255, .16);
    padding-top: 1.3rem;
}
.registration-trial strong,
.registration-trial span {
    display: block;
}
.registration-trial strong {
    font-size: .92rem;
}
.registration-trial span {
    margin-top: .2rem;
    color: #aebbd4;
    font-size: .8rem;
}
.registration-main {
    min-width: 0;
    grid-area: main;
    background: #fff;
    padding: clamp(2rem, 4vw, 3.25rem);
}
.registration-progress {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.75rem;
    border-bottom: 1px solid #e5e9f1;
    padding-bottom: .8rem;
    color: #657089;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.registration-progress span:last-child {
    color: #3559c7;
}
.registration-main > .eyebrow {
    margin-bottom: .55rem;
}
.auth-panel .registration-main h1 {
    margin: 0 0 .75rem;
    font-size: clamp(2.15rem, 3.5vw, 3rem);
    font-weight: 560;
    letter-spacing: -.05em;
}
.registration-lead {
    max-width: 650px;
    margin: 0;
    color: #5d6982;
    font-size: .95rem;
    line-height: 1.6;
}
.stack-form.registration-form {
    gap: 0;
    margin-top: 1.75rem;
}
.registration-form-section {
    display: grid;
    gap: 1rem;
}
.registration-form-section + .registration-form-section {
    margin-top: 1.5rem;
    border-top: 1px solid #e7eaf1;
    padding-top: 1.5rem;
}
.registration-form-section > h2 {
    margin: 0;
    color: #18233e;
    font-size: .95rem;
    font-weight: 750;
    letter-spacing: -.015em;
    line-height: 1.3;
}
.registration-form label {
    gap: .42rem;
}
.registration-form .form-field {
    display: flex;
    flex-direction: column;
    gap: .42rem;
}
.registration-form label > span:first-child,
.registration-form .plan-choice legend {
    color: #26314b;
    font-size: .78rem;
    font-weight: 750;
}
.registration-form label > small,
.registration-form .field-status {
    color: #667089;
    font-size: .74rem;
    font-weight: 500;
    line-height: 1.45;
}
.registration-form input:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]),
.registration-form select {
    width: 100%;
    min-height: 50px;
    border: 1px solid #c8d0dd;
    border-radius: 8px;
    background-color: #fff;
    color: #101a32;
    padding: .76rem .85rem;
    font-size: 1rem;
    line-height: 1.3;
    transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}
.registration-form input::placeholder {
    color: #8790a3;
    opacity: 1;
}
.registration-form input:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]):hover,
.registration-form select:hover {
    border-color: #9da9bc;
}
.registration-form input:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]):focus,
.registration-form select:focus {
    border-color: #3559c7;
    box-shadow: 0 0 0 4px rgba(53, 89, 199, .12);
}
.registration-form :is(input, select, button):focus-visible {
    outline: 3px solid #7da1ff;
    outline-offset: 2px;
}
.registration-form .form-grid {
    gap: 1rem;
}
.registration-form .workspace-settings-grid {
    grid-template-columns: minmax(0, 1.45fr) minmax(180px, .75fr);
}
.registration-form .plan-choice {
    gap: .8rem;
}
.registration-form .plan-choice legend {
    margin-bottom: .55rem;
}
.registration-form .plan-choice label {
    min-height: 78px;
    display: grid;
    grid-template-columns: 20px 1fr;
    gap: .8rem;
    align-items: center;
    border: 1px solid #ccd3df;
    border-radius: 9px;
    background: #fff;
    padding: .9rem 1rem;
    cursor: pointer;
    transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease;
}
.registration-form .plan-choice label:hover {
    border-color: #9aa7bc;
    background: #fafbfe;
}
.registration-form .plan-choice label:has(input:checked) {
    border-color: #5877d6;
    background: #f2f5ff;
    box-shadow: inset 3px 0 #3559c7;
}
.registration-form .plan-choice label:focus-within {
    outline: 3px solid #7da1ff;
    outline-offset: 2px;
}
.registration-form .plan-choice input {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: #3559c7;
}
.registration-form .plan-choice input:focus-visible {
    outline: 0;
}
.registration-form .plan-choice b {
    margin-bottom: .18rem;
    color: #17213a;
    font-size: .86rem;
}
.registration-form .plan-choice small {
    color: #667089;
    font-size: .72rem;
    font-weight: 500;
    line-height: 1.4;
}
.registration-data-note {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: .85rem;
    align-items: start;
    border: 1px solid #d6dfee;
    border-radius: 9px;
    background: #f5f7fc;
    padding: .9rem 1rem;
}
.registration-data-icon {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: #e4eaff;
    color: #3559c7;
    font-size: .75rem;
    font-weight: 800;
}
.registration-data-note strong {
    display: block;
    color: #2949aa;
    font-size: .78rem;
}
.registration-data-note p {
    margin: .2rem 0 0;
    color: #5d6982;
    font-size: .75rem;
    line-height: 1.5;
}
.password-field {
    position: relative;
    display: block;
}
.registration-form .password-field input {
    padding-right: 4.6rem;
}
.password-toggle {
    min-width: 58px;
    min-height: 40px;
    position: absolute;
    right: 7px;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    border-radius: 6px;
    background: #eef2fa;
    color: #2949aa;
    padding: .35rem .55rem;
    font-size: .72rem;
    font-weight: 750;
    cursor: pointer;
}
.password-toggle:hover {
    background: #e2e8f5;
}
.password-requirements {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .35rem 1rem;
    margin: -.2rem 0 0;
    padding: 0;
    color: #667089;
    font-size: .72rem;
    list-style: none;
}
.password-requirements li {
    display: grid;
    grid-template-columns: 18px 1fr;
    align-items: center;
}
.password-requirements li::before {
    content: "\2022";
    color: #8893a8;
    font-size: 1.1rem;
    line-height: 1;
}
.password-requirements li.is-met {
    color: #087568;
}
.password-requirements li.is-met::before {
    content: "\2713";
    color: #087568;
    font-size: .76rem;
    font-weight: 900;
}
.registration-form .field-status.is-valid {
    color: #087568;
}
.registration-form .field-status.is-invalid {
    color: #a52f49;
}
.registration-consent.check-row {
    min-height: 48px;
    display: grid;
    grid-template-columns: 20px 1fr;
    gap: .75rem;
    align-items: start;
    margin-top: 1.5rem;
    border-top: 1px solid #e7eaf1;
    padding-top: 1.35rem;
}
.registration-form .registration-consent input {
    width: 18px;
    height: 18px;
    margin: .12rem 0 0;
    accent-color: #3559c7;
}
.registration-form .registration-consent-copy,
.registration-form .registration-consent-copy label {
    color: #3f4b65;
    font-size: .78rem;
    font-weight: 500;
    line-height: 1.55;
}
.registration-form .registration-consent-copy label {
    display: inline;
    cursor: pointer;
}
.registration-consent a,
.registration-main .auth-switch a {
    color: #2949aa;
    font-weight: 700;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}
.registration-submit {
    width: 100%;
    min-height: 50px;
    margin-top: 1rem;
}
.registration-submit:disabled {
    opacity: .72;
}
.registration-next-step {
    margin: .55rem 0 0;
    color: #68738a;
    font-size: .72rem;
    text-align: center;
}
.registration-main .auth-switch {
    margin: 1.1rem 0 0;
    color: #667089;
    font-size: .83rem;
    text-align: center;
}
.auth-shell:has(.registration-panel) .auth-foot {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .35rem .65rem;
}

@media (max-width: 900px) {
    .auth-shell:has(.registration-panel) {
        width: min(100%, 760px);
    }
    .auth-panel-wide.registration-panel {
        grid-template-columns: 1fr;
        grid-template-areas: "main" "summary";
    }
    .registration-main {
        order: 1;
    }
    .registration-summary {
        order: 2;
        display: grid;
        grid-template-columns: 1.5fr .7fr;
        align-items: end;
    }
    .registration-summary h2 {
        max-width: 520px;
    }
    .registration-outcomes {
        grid-template-columns: 1fr 1fr;
    }
}

/* End-to-end QA: preserve reachable history and comfortable controls. */
.app-body button,
.app-body select,
.app-body summary,
.app-body .filter-tabs a {
    min-height: 40px;
}
.app-body button.text-link,
.app-body summary.text-link {
    padding-block: .45rem;
}
.session-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    margin-top: 18px;
}
.session-pagination .button {
    width: 40px;
    min-width: 40px;
    padding-inline: 0;
}
.session-pagination .is-disabled {
    opacity: .35;
    pointer-events: none;
}
.page-demo-wrap .demo-sidebar button,
.page-demo-wrap .demo-heading button,
.page-demo-wrap .demo-heading .demo-button {
    min-height: 40px;
}

.hero-product .demo-heading button {
    min-height: 40px;
}

@media (max-width: 700px) {
    .page-demo-wrap .demo-sidebar button {
        min-height: 44px;
        display: flex !important;
    }
}

@media (max-width: 700px) {
    .auth-body:has(.registration-panel) {
        padding: 1rem;
    }
    .auth-panel-wide.registration-panel {
        border-radius: 13px;
    }
    .registration-main,
    .registration-summary {
        padding: 1.5rem;
    }
    .registration-form .form-grid.two {
        grid-template-columns: 1fr;
    }
    .registration-form .workspace-settings-grid {
        grid-template-columns: 1fr;
    }
    .registration-summary {
        grid-template-columns: 1fr;
        align-items: start;
    }
    .registration-trial {
        width: 100%;
    }
}

@media (max-width: 520px) {
    .auth-body:has(.registration-panel) {
        padding: .75rem;
    }
    .auth-shell:has(.registration-panel) .auth-brand {
        margin: .25rem .25rem 1rem;
    }
    .registration-main,
    .registration-summary {
        padding: 1.25rem;
    }
    .registration-progress {
        margin-bottom: 1.35rem;
    }
    .auth-panel .registration-main h1 {
        font-size: 2.15rem;
    }
    .registration-form .plan-choice {
        grid-template-columns: 1fr;
    }
    .password-requirements,
    .registration-outcomes {
        grid-template-columns: 1fr;
    }
    .auth-shell:has(.registration-panel) .auth-foot {
        padding-inline: .75rem;
        line-height: 1.8;
    }
}

/* Keep the longer security actions readable after shared hero sizing rules. */
.security-page-hero .hero-actions .button:first-child,
.security-page-hero .hero-actions .button:last-child { width: auto; padding-inline: 1.25rem; }

@media (max-width: 760px) {
    .security-page-hero .hero-actions .button:first-child,
    .security-page-hero .hero-actions .button:last-child { width: 100%; }
}

@media (max-width: 1000px) {
    .guide-lede, .guide-section--split { grid-template-columns: 1fr; }
    .guide-lede > div:first-child { position: static; }
    .guide-policy-grid { grid-template-columns: 1fr; }
    .guide-status-flow { grid-template-columns: 1fr 1fr; }
    .guide-status-flow article { border-right: 0; }
}

@media (max-width: 760px) {
    .guide-jump-nav { top: 88px; justify-content: flex-start; padding-inline: 1rem; }
    .guide-lede, .guide-section, .guide-faq { width: min(calc(100% - 2rem),var(--content)); }
    .guide-section--tinted { width: 100%; padding-inline: 1rem; }
    .guide-lede h2, .guide-section__intro h2 { font-size: clamp(2.25rem,10vw,3.5rem); }
    .guide-example { padding-inline: 1rem; }
    .guide-example h2 { font-size: clamp(2.35rem,10vw,3.7rem); }
    .guide-example__facts, .guide-participant-grid, .guide-comparison-grid,
    .guide-reason-grid, .guide-readiness-grid, .guide-role-grid, .guide-anatomy,
    .guide-observation-frame, .resource-path-grid, .guide-boundary-grid,
    .guide-review-grid, .guide-measure-grid, .guide-narrative-grid,
    .resource-truth-grid, .guide-rhythm, .guide-constraint-list,
    .guide-decision-list--two, .guide-status-flow { grid-template-columns: 1fr; }
    .guide-readiness-grid article, .guide-role-grid article, .guide-anatomy article,
    .guide-observation-frame article, .resource-path-grid article, .guide-boundary-grid article,
    .guide-review-grid article, .guide-measure-grid article, .guide-narrative-grid article,
    .resource-truth-grid article, .guide-rhythm article, .guide-constraint-list li,
    .guide-decision-list--two article { min-height: 0; border-right: 0; padding-inline: 0; }
    .guide-rhythm article { padding-block: 2rem; }
    .guide-decision-list--two article:nth-child(odd) { border-right: 0; }
    .guide-sequence li { grid-template-columns: 38px minmax(0,1fr); gap: 1rem; }
    .guide-faq { gap: 2.5rem; }
}

@media (max-width: 520px) {
    .guide-jump-nav span { display: none; }
    .guide-jump-nav a { min-height: 44px; }
    .guide-section__intro { margin-bottom: 2.5rem; }
    .guide-example__facts > div, .guide-participant-grid article, .guide-comparison-grid article,
    .guide-reason-grid article { padding: 1.35rem; }
    .resource-hub-hero .hero-actions { align-items: stretch; flex-direction: column; }
}

/* Caseload analytics */
.analytics-page-head { margin-bottom: 18px; }
.analytics-page-head h2 { max-width: 820px; }
.analytics-toolbar { display: grid; grid-template-columns: minmax(140px,.65fr) minmax(210px,1fr) minmax(180px,.9fr) auto; gap: 12px; align-items: end; margin-bottom: 18px; border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 14px; box-shadow: 0 8px 28px rgba(16,26,50,.04); }
.analytics-toolbar label { display: flex; min-width: 0; flex-direction: column; gap: 5px; }
.analytics-toolbar label > span { color: var(--muted); font-size: .65rem; font-weight: 780; letter-spacing: .055em; text-transform: uppercase; }
.analytics-toolbar select { width: 100%; min-height: 44px; border: 1px solid var(--line); border-radius: 9px; background: #f8f9fc; color: var(--ink); padding: 0 34px 0 11px; }
.analytics-toolbar .button { min-height: 44px; }
.analytics-scope-note { grid-column: 1/-1; display: flex; align-items: center; gap: 8px; border-top: 1px solid var(--line-soft); padding-top: 10px; color: var(--muted); font-size: .7rem; }
.analytics-scope-note > span + span::before { content: "·"; margin-right: 8px; color: #a4adbd; }
.analytics-scope-note mark { margin-left: auto; border-radius: 999px; background: #f0edff; color: #644fc8; padding: 4px 8px; font-size: .63rem; font-weight: 780; letter-spacing: .025em; }
.analytics-insight { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 16px; align-items: center; margin-bottom: 18px; border: 1px solid #21345a; border-left: 4px solid #8fabff; border-radius: 16px; background: var(--navy); color: #fff; padding: 18px 20px; box-shadow: 0 16px 38px rgba(8,20,45,.15); }
.analytics-insight-review { border-left-color: #a995ff; }.analytics-insight-documentation { border-left-color: #efb34c; }.analytics-insight-steady { border-left-color: #53b8a7; }
.analytics-insight-mark { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 12px; background: rgba(255,255,255,.08); color: #c9d7ff; font-size: 1.25rem; }
.analytics-insight .eyebrow { margin-bottom: 3px; color: #8fa5ce; }
.analytics-insight h3 { margin: 0; color: #fff; font-size: 1.15rem; letter-spacing: -.02em; }
.analytics-insight p:last-child { margin: 5px 0 0; color: #aebbd4; font-size: .78rem; }
.analytics-insight > a { color: #dce6ff; font-size: .75rem; font-weight: 760; text-decoration: none; white-space: nowrap; }
.analytics-kpis { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 10px; margin-bottom: 18px; }
.analytics-kpis article { min-width: 0; min-height: 146px; display: flex; flex-direction: column; justify-content: space-between; gap: 14px; border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 15px; box-shadow: 0 7px 24px rgba(20,32,59,.035); }
.analytics-kpis article > div { min-width: 0; }
.analytics-kpis p, .analytics-kpis strong, .analytics-kpis small { display: block; }
.analytics-kpis p { margin: 0; color: var(--muted); font-size: .66rem; font-weight: 780; letter-spacing: .04em; text-transform: uppercase; }
.analytics-kpis strong { margin: 3px 0 4px; font-size: 1.62rem; letter-spacing: -.05em; }
.analytics-kpis small { color: var(--muted); font-size: .65rem; line-height: 1.45; }
.kpi-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; font-size: .82rem; font-weight: 800; }
.kpi-icon-pace { background: #e5edff; color: #315fc3; }.kpi-icon-schedule { background: #e5f4ef; color: #137564; }.kpi-icon-docs { background: #fff1d9; color: #945507; }.kpi-icon-review { background: #efeaff; color: #664acb; }.kpi-icon-goals { background: #f4eaf1; color: #8c476c; }.kpi-icon-recovery { background: #ffe8ed; color: #a9344e; }
.analytics-grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 16px; align-items: start; }
.analytics-card { min-width: 0; border: 1px solid var(--line); border-radius: 18px; background: #fff; padding: 20px; box-shadow: 0 8px 28px rgba(20,32,59,.045); }
.analytics-card[id] { scroll-margin-top: 82px; }
.analytics-card-wide { grid-column: span 8; }.analytics-card-side { grid-column: span 4; }.analytics-card-half { grid-column: span 6; }.analytics-card-full { grid-column: 1/-1; overflow: hidden; }
.analytics-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.analytics-card-head .eyebrow { margin-bottom: 5px; }
.analytics-card-head h3 { margin: 0; font-size: 1.12rem; letter-spacing: -.025em; }
.analytics-card-head p:not(.eyebrow) { max-width: 650px; margin: 6px 0 0; color: var(--muted); font-size: .72rem; line-height: 1.55; }
.analytics-card-head > a { color: var(--blue); font-size: .7rem; font-weight: 760; text-decoration: none; white-space: nowrap; }
.analytics-legend { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 10px; color: var(--muted); font-size: .65rem; white-space: nowrap; }
.analytics-legend span { display: flex; align-items: center; gap: 5px; }.analytics-legend i { width: 10px; height: 10px; display: block; border-radius: 3px; }.legend-delivered { background: #336bd2; }.legend-target { background: #d7dfee; border: 1px solid #8796b1; }
.weekly-chart { min-height: 270px; position: relative; border-top: 1px solid var(--line-soft); padding: 18px 4px 0; }
.weekly-chart-grid { position: absolute; inset: 18px 4px 46px; display: flex; flex-direction: column; justify-content: space-between; pointer-events: none; }
.weekly-chart-grid i { width: 100%; border-top: 1px solid #edf0f5; }
.weekly-chart-columns { min-height: 250px; position: relative; z-index: 1; display: grid; grid-template-columns: repeat(var(--week-count),minmax(0,1fr)); gap: clamp(5px,1.2vw,15px); align-items: end; }
.weekly-chart-column { min-width: 0; display: grid; grid-template-rows: 190px auto auto; justify-items: center; gap: 4px; }
.weekly-bar-stage { width: 100%; height: 190px; display: flex; align-items: flex-end; justify-content: center; gap: 4px; }
.weekly-bar { width: min(18px,38%); min-height: 0; display: block; border-radius: 5px 5px 2px 2px; }.weekly-bar-delivered { background: #336bd2; }.weekly-bar-target { border: 1px solid #8796b1; background: #e5eaf3; }
.weekly-chart-column strong { font-size: .67rem; font-variant-numeric: tabular-nums; }.weekly-chart-column > span { color: var(--muted); font-size: .58rem; white-space: nowrap; }
.analytics-footnote { margin: 11px 0 0; color: var(--muted); font-size: .64rem; }
.pace-total { display: grid; grid-template-columns: auto 1fr; gap: 0 8px; align-items: end; margin-top: 8px; }
.pace-total strong { grid-row: span 2; font-size: 3.5rem; font-weight: 620; line-height: .85; letter-spacing: -.08em; }.pace-total span { font-size: .8rem; font-weight: 750; }.pace-total small { color: var(--muted); font-size: .66rem; }
.pace-stack { height: 14px; display: flex; gap: 2px; overflow: hidden; margin: 22px 0 14px; border-radius: 999px; background: #edf0f5; }.pace-segment { display: block; min-width: 0; }.pace-segment-at_risk { background: #b93d55; }.pace-segment-watch { background: #d69531; }.pace-segment-on_track { background: #2b8d7f; }.pace-segment-complete { background: #6279b4; }
.pace-legend { display: grid; grid-template-columns: 1fr 1fr; gap: 9px 14px; }.pace-legend > div { display: grid; grid-template-columns: auto 1fr auto; gap: 7px; align-items: center; font-size: .68rem; }.pace-legend span { color: var(--muted); }.pace-dot { width: 7px; height: 7px; border-radius: 50%; }.pace-dot-at_risk { background: #b93d55; }.pace-dot-watch { background: #d69531; }.pace-dot-on_track { background: #2b8d7f; }.pace-dot-complete { background: #6279b4; }
.analytics-mini-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 20px; border-top: 1px solid var(--line-soft); padding-top: 14px; }.analytics-mini-actions div { border-radius: 10px; background: #f7f8fb; padding: 10px; }.analytics-mini-actions span,.analytics-mini-actions strong { display: block; }.analytics-mini-actions span { color: var(--muted); font-size: .62rem; }.analytics-mini-actions strong { margin-top: 2px; font-size: 1.15rem; }
.coverage-summary { display: flex; align-items: baseline; gap: 8px; }.coverage-summary strong { font-size: 2.8rem; letter-spacing: -.07em; }.coverage-summary span { color: var(--muted); font-size: .72rem; }
.coverage-progress { height: 8px; overflow: hidden; margin: 3px 0 22px; border-radius: 999px; background: #e8ecf3; }.coverage-progress i { height: 100%; display: block; border-radius: inherit; background: #2b8d7f; }
.coverage-weeks { height: 145px; display: grid; grid-template-columns: repeat(var(--week-count),minmax(0,1fr)); gap: 7px; align-items: end; border-bottom: 1px solid var(--line); padding: 0 2px; }.coverage-weeks > div { height: 100%; min-width: 0; display: grid; grid-template-rows: 1fr auto auto; justify-items: center; gap: 3px; }.coverage-weeks i { width: min(24px,75%); align-self: end; display: block; border-radius: 4px 4px 0 0; background: #2b8d7f; }.coverage-weeks strong { font-size: .6rem; }.coverage-weeks span { color: var(--muted); font-size: .55rem; white-space: nowrap; }
.documentation-summary { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: center; margin-bottom: 16px; border-radius: 12px; background: #f6f8fc; padding: 12px; }.documentation-summary > div { min-width: 86px; border-right: 1px solid var(--line); }.documentation-summary strong,.documentation-summary span { display: block; }.documentation-summary strong { font-size: 1.75rem; letter-spacing: -.05em; }.documentation-summary span { color: var(--muted); font-size: .64rem; }.documentation-summary p { margin: 0; color: var(--muted); font-size: .7rem; }
.metric-bars { display: flex; flex-direction: column; gap: 9px; }.metric-bars > div { display: grid; grid-template-columns: 104px 1fr 24px; gap: 9px; align-items: center; font-size: .66rem; }.metric-bars > div > span { color: var(--muted); }.metric-bars > div > i { height: 7px; overflow: hidden; border-radius: 999px; background: #edf0f5; }.metric-bars b { height: 100%; display: block; border-radius: inherit; background: #336bd2; }.metric-bars .metric-bar-pending_review { background: #8069d8; }.metric-bars .metric-bar-draft { background: #d69531; }.metric-bars .metric-bar-changes_requested { background: #b45b3c; }.metric-bars .metric-bar-void { background: #9ba4b4; }
.attendance-row { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; border-top: 1px solid var(--line-soft); padding-top: 13px; }.attendance-row span { position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 999px; background: #fff; padding: 5px 8px; color: var(--muted); font-size: .59rem; }.attendance-row strong { color: var(--ink); }.attendance-row i { position: absolute; inset: auto 0 0; height: 2px; background: #7c8baa; }
.attendance-row > small { color: var(--muted); font-size: .63rem; }
.review-callout { min-width: 90px; border-left: 1px solid var(--line); padding-left: 16px; text-align: right; }.review-callout strong,.review-callout span { display: block; }.review-callout strong { font-size: 1.65rem; }.review-callout span { color: var(--muted); font-size: .62rem; }
.analytics-table-wrap { width: 100%; overflow-x: auto; border-top: 1px solid var(--line); }
.analytics-table { width: 100%; min-width: 720px; border-collapse: collapse; }
.analytics-table th,.analytics-table td { border-bottom: 1px solid var(--line-soft); padding: 11px 9px; text-align: left; vertical-align: middle; font-size: .69rem; }
.analytics-table thead th { color: var(--muted); font-size: .59rem; letter-spacing: .04em; text-transform: uppercase; }
.analytics-table tbody th { display: flex; align-items: center; gap: 9px; }.analytics-table tbody th > span:last-child { min-width: 0; }.analytics-table tbody th strong,.analytics-table tbody th small,.analytics-table td small { display: block; }.analytics-table tbody th small,.analytics-table td small { color: var(--muted); font-weight: 500; }.analytics-table tbody tr:hover { background: #fafbfe; }
.clinician-avatar { width: 32px; height: 32px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 9px; background: #e8edfa; color: #46629c; font-size: .65rem; font-weight: 800; }
.table-progress { width: 74px; height: 5px; display: inline-block; overflow: hidden; margin-right: 7px; border-radius: 999px; background: #e8ecf3; vertical-align: middle; }.table-progress i { height: 100%; display: block; border-radius: inherit; background: #336bd2; }
.attention-table th:first-child { min-width: 190px; }.attention-table td:nth-child(3) { min-width: 175px; }.analytics-student-avatar { flex: 0 0 auto; border-radius: 10px; font-size: .62rem; }.table-action { width: 31px; height: 31px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 9px; color: var(--blue); font-size: .95rem; text-decoration: none; }.muted { color: var(--muted); }
.analytics-empty { min-height: 260px; display: grid; place-content: center; justify-items: center; color: var(--muted); text-align: center; }.analytics-empty strong { color: var(--ink); }.analytics-empty p { margin: 5px 0 0; }.analytics-empty.compact { min-height: 120px; }
.analytics-method { grid-column: 1/-1; margin-top: 16px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }.analytics-method summary { padding: 13px 16px; cursor: pointer; color: var(--ink-2); font-size: .72rem; font-weight: 760; }.analytics-method > div { border-top: 1px solid var(--line-soft); padding: 14px 16px; color: var(--muted); font-size: .7rem; line-height: 1.65; }.analytics-method p { margin: 0; }.analytics-method p + p { margin-top: 8px; }
.analytics-dialog { width: min(560px,calc(100% - 24px)); border: 0; border-radius: 20px; padding: 0; color: var(--ink); box-shadow: 0 32px 90px rgba(6,17,41,.28); }.analytics-dialog::backdrop { background: rgba(8,20,45,.62); backdrop-filter: blur(3px); }.analytics-dialog form { padding: 22px; }.analytics-dialog header { display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: start; border-bottom: 1px solid var(--line); padding-bottom: 16px; }.analytics-dialog h2 { margin: 0; font-size: 1.5rem; }.analytics-dialog header p:last-child { margin: 7px 0 0; color: var(--muted); font-size: .72rem; }.analytics-dialog header > button { width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 9px; background: #fff; cursor: pointer; font-size: 1.1rem; }.analytics-dialog fieldset { display: grid; gap: 8px; margin: 17px 0 20px; border: 0; padding: 0; }.analytics-dialog legend { margin-bottom: 8px; color: var(--muted); font-size: .65rem; font-weight: 780; letter-spacing: .05em; text-transform: uppercase; }.analytics-dialog label { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: center; border: 1px solid var(--line); border-radius: 11px; padding: 10px 12px; cursor: pointer; }.analytics-dialog label:has(input:checked) { border-color: #9fb7e8; background: #f5f8ff; }.analytics-dialog input { width: 17px; height: 17px; accent-color: var(--blue); }.analytics-dialog label strong,.analytics-dialog label small { display: block; }.analytics-dialog label strong { font-size: .76rem; }.analytics-dialog label small { color: var(--muted); font-size: .63rem; }.analytics-dialog footer { display: flex; justify-content: flex-end; gap: 8px; }
.analytics-dialog-validation { margin: -10px 0 16px; color: #a9344e; font-size: .7rem; font-weight: 720; }
.analytics-dialog [data-apply-analytics-config]:disabled { cursor: not-allowed; opacity: .52; box-shadow: none; }

@media (max-width: 1280px) {
    .analytics-kpis { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .analytics-kpis article { min-height: 126px; }
}

@media (max-width: 1000px) {
    .analytics-toolbar { grid-template-columns: 1fr 1fr; }
    .analytics-toolbar .button { width: max-content; }
    .analytics-card-wide,.analytics-card-side,.analytics-card-half { grid-column: 1/-1; }
    .analytics-card-side { display: grid; grid-template-columns: 1.25fr 1fr; gap: 0 22px; }.analytics-card-side .analytics-card-head { grid-column: 1/-1; }.analytics-card-side .pace-total { align-self: start; }.analytics-card-side .analytics-mini-actions { grid-column: 1/-1; }
}

@media (max-width: 700px) {
    .analytics-page-head { gap: 1rem; }.analytics-page-head .page-actions { width: 100%; }.analytics-page-head .page-actions > * { flex: 1; text-align: center; }
    .analytics-toolbar { grid-template-columns: 1fr; }.analytics-toolbar .button { width: 100%; }.analytics-scope-note { flex-wrap: wrap; }.analytics-scope-note mark { margin-left: 0; }
    .analytics-insight { grid-template-columns: auto 1fr; padding: 16px; }.analytics-insight > a { grid-column: 2; }
    .analytics-kpis { grid-template-columns: 1fr 1fr; }.analytics-kpis article { min-height: 128px; padding: 13px; }.analytics-kpis strong { font-size: 1.45rem; }
    .analytics-grid { gap: 12px; }.analytics-card { padding: 16px; border-radius: 15px; }.analytics-card-head { flex-direction: column; gap: 9px; }.analytics-legend { justify-content: flex-start; }
    .weekly-chart { min-height: 230px; overflow-x: auto; overscroll-behavior-inline: contain; padding-inline: 0; scrollbar-width: thin; }.weekly-chart-grid { inset-inline: 0; }.weekly-chart-columns { min-width: max(100%,calc(var(--week-count) * 46px)); min-height: 215px; gap: 3px; }.weekly-chart-column { grid-template-rows: 158px auto auto; }.weekly-bar-stage { height: 158px; gap: 2px; }.weekly-bar { width: min(14px,42%); border-radius: 4px 4px 1px 1px; }.weekly-chart-column strong { font-size: .64rem; }.weekly-chart-column > span { font-size: .58rem; }
    .analytics-card-side { display: block; }.pace-total strong { font-size: 3rem; }
    .coverage-weeks { gap: 3px; }.coverage-weeks strong { font-size: .54rem; }.coverage-weeks span { font-size: .48rem; }
    .review-callout { border-left: 0; padding-left: 0; text-align: left; }
    .analytics-table-wrap { margin-inline: -16px; width: calc(100% + 32px); padding-inline: 16px; }
    .analytics-method { margin-top: 12px; }
}

@media (max-width: 420px) {
    .analytics-page-head .page-actions { flex-direction: column; }.analytics-page-head .page-actions > * { width: 100%; }
    .analytics-kpis small { font-size: .6rem; }.analytics-insight-mark { width: 36px; height: 36px; }.analytics-insight { gap: 11px; }
    .metric-bars > div { grid-template-columns: 92px 1fr 20px; gap: 6px; }.pace-legend { grid-template-columns: 1fr; }.analytics-dialog form { padding: 17px; }.analytics-dialog footer { flex-direction: column-reverse; }.analytics-dialog footer .button { width: 100%; }
}

@media (max-width: 1000px) {
    .analytics-table-wrap { width: 100%; margin-inline: 0; overflow: visible; border-top: 0; padding-inline: 0; }
    .analytics-table { min-width: 0; display: block; }
    .analytics-table thead { display: none; }
    .analytics-table tbody { display: grid; gap: 10px; }
    .analytics-table tbody tr { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
    .analytics-table tbody tr:hover { background: #fff; }
    .analytics-table tbody th { grid-column: 1/-1; min-width: 0 !important; border-bottom: 1px solid var(--line-soft); padding: 11px 12px; }
    .analytics-table tbody td { min-width: 0 !important; display: flex; align-items: center; justify-content: space-between; gap: 8px; border: 0; padding: 9px 12px; }
    .analytics-table tbody td::before { content: attr(data-label); color: var(--muted); font-size: .57rem; font-weight: 760; letter-spacing: .035em; text-transform: uppercase; }
    .analytics-table tbody td:nth-child(even) { border-right: 1px solid var(--line-soft); }
    .analytics-table tbody td:nth-child(n+4) { border-top: 1px solid var(--line-soft); }
    .analytics-table .table-progress { width: 52px; }
    .attention-table tbody tr { grid-template-columns: 1fr 1fr; }
    .attention-table tbody th { padding-right: 52px; }
    .attention-table tbody td:nth-child(2)::before { content: "Pace"; }
    .attention-table tbody td:nth-child(3) { grid-column: 1/-1; min-width: 0; border-right: 0; border-top: 1px solid var(--line-soft); }
    .attention-table tbody td:nth-child(3)::before { content: "Delivered / expected"; }
    .attention-table tbody td:nth-child(4)::before { content: "Gap"; }
    .attention-table tbody td:nth-child(5)::before { content: "Next deadline"; }
    .attention-table tbody td:nth-child(4),.attention-table tbody td:nth-child(5) { border-top: 1px solid var(--line-soft); }
    .attention-table tbody td:last-child { position: absolute; top: 10px; right: 10px; padding: 0; }
    .attention-table tbody td:last-child::before { display: none; }
}

/* Authenticated workspace quality pass */
.app-body { overflow-x: hidden; background: #f5f7fb; color: var(--ink); }
.app-body .app-shell { grid-template-columns: 230px minmax(0,1fr); }
.app-body .app-sidebar { overflow-x: hidden; }
.app-body .app-canvas,
.app-body .workspace-main,
.app-body .data-section,
.app-body .data-table-wrap,
.app-body .student-management,
.app-body .student-record-main { min-width: 0; max-width: 100%; }
.app-body .app-topbar { position: sticky; top: 0; z-index: 40; height: 68px; padding: 0 24px; }
.app-body .workspace-main { width: 100%; max-width: 1320px; padding: 24px clamp(20px,3vw,36px) 48px; overflow-x: clip; }
.app-body .app-page-head { align-items: center; gap: 1.5rem; margin-bottom: 20px; }
.app-body .app-page-head > div:first-child { min-width: 0; }
.app-body .app-page-head h2 { margin: .15rem 0 .55rem; font-size: clamp(1.8rem,2.5vw,2.65rem); font-weight: 620; line-height: 1.08; }
.app-body .app-page-head > div > p:not(.eyebrow) { line-height: 1.55; }
.app-body .eyebrow { margin-bottom: .45rem; }
.app-body .button { min-height: 40px; border-radius: 10px; padding: .58rem .95rem; font-size: .78rem; line-height: 1.2; white-space: normal; box-shadow: none; }
.app-body .button:hover { transform: none; box-shadow: 0 4px 12px rgba(31,70,148,.14); }
.app-body .button:focus-visible,
.app-body button:focus-visible,
.app-body a:focus-visible,
.app-body input:focus-visible,
.app-body select:focus-visible,
.app-body textarea:focus-visible,
.app-body summary:focus-visible,
.app-body .weekly-chart:focus-visible { outline: 3px solid rgba(45,103,215,.32); outline-offset: 2px; }
.app-body .page-actions { align-items: center; gap: .5rem; }
.app-body .inline-form { align-items: end; flex-wrap: wrap; }
.app-body .inline-form select { min-height: 40px; height: 40px; }
.app-body .record-command { width: auto; max-width: none; margin: 0 0 20px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; padding: 0 0 14px; flex-wrap: wrap; }
.app-body .work-section,
.app-body .deadline-section,
.app-body .week-preview,
.app-body .record-section,
.app-body .team-list-section,
.app-body .settings-section,
.app-body .report-figure,
.app-body .validation-results,
.app-body .upload-section,
.app-body .import-rules,
.app-body .today-agenda,
.app-body .data-section,
.app-body .schedule-board { border-radius: 12px; padding: 18px; box-shadow: none; }
.app-body .analytics-card,
.app-body .analytics-kpis article { box-shadow: none; }
.app-body .today-agenda,
.app-body .week-preview,
.app-body .record-section,
.app-body .settings-section,
.app-body .report-figure { margin-bottom: 18px; }
.app-body .empty-state { min-height: 110px; padding: 1.4rem; }
.app-body .empty-state.compact { min-height: 72px; padding: 1rem; }
.app-body .section-heading { margin-bottom: 12px; }
.app-body .metric-strip { margin-bottom: 18px; }
.app-body .filter-bar { display: grid; grid-template-columns: repeat(2,minmax(180px,1fr)) auto auto; gap: .7rem; align-items: end; padding: .8rem; }
.app-body .filter-bar[aria-label="Filter tasks"] { grid-template-columns: repeat(3,minmax(150px,1fr)) auto auto; }
.app-body .filter-bar > * { min-width: 0; }
.app-body .plan-builder label,
.app-body .plan-builder fieldset,
.app-body .settings-form label,
.app-body .revision-form label,
.app-body .upload-form label,
.app-body .profile-form label,
.app-body .activation-review label { min-width: 0; }
.app-body .plan-builder input,
.app-body .plan-builder select,
.app-body .plan-builder textarea,
.app-body .settings-form input,
.app-body .settings-form select,
.app-body .settings-form textarea,
.app-body .revision-form input,
.app-body .revision-form textarea,
.app-body .profile-form input,
.app-body .profile-form select,
.app-body .profile-form textarea,
.app-body .activation-review input,
.app-body .activation-review select,
.app-body .activation-review textarea,
.app-body .upload-form input,
.app-body .upload-form select { width: 100%; min-height: 42px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--ink); padding: .62rem .72rem; font: inherit; }
.app-body .plan-builder textarea,
.app-body .settings-form textarea,
.app-body .revision-form textarea,
.app-body .profile-form textarea,
.app-body .activation-review textarea { min-height: 96px; resize: vertical; }
.app-body .plan-builder label > span,
.app-body .settings-form label > span,
.app-body .revision-form label > span,
.app-body .profile-form label > span,
.app-body .activation-review label > span,
.app-body .upload-form label > span { display: block; margin-bottom: .35rem; color: var(--ink-2); font-size: .68rem; font-weight: 720; }
.app-body .settings-form > .button,
.app-body .profile-form > .button,
.app-body .activation-review > .button,
.app-body .upload-form > .button,
.app-body .plan-builder > .button { align-self: flex-start; width: auto; }
.app-body .data-table-wrap,
.app-body .preview-table,
.app-body .record-tabs,
.app-body .filter-tabs { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; }
.app-body .filter-tabs { padding-bottom: 4px; }
.app-body .filter-tabs :is(button,a) { flex: 0 0 auto; }
.app-body .record-tabs,
.app-body .filter-tabs { scrollbar-width: none; }
.app-body .record-tabs::-webkit-scrollbar,
.app-body .filter-tabs::-webkit-scrollbar { display: none; }
.app-body .schedule-board { overflow-x: auto; }
.app-body .action-popover > summary.button { list-style: none; }
.app-body .action-popover > summary.button::-webkit-details-marker { display: none; }
.app-body .session-list { display: grid; gap: 10px; }
.app-body .session-list > article { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.app-body .session-record > summary { display: grid; grid-template-columns: auto minmax(0,1fr) auto auto; gap: 12px; align-items: center; padding: 14px 16px; cursor: pointer; list-style: none; }
.app-body .session-record > summary::-webkit-details-marker { display: none; }
.app-body .session-record > summary small { display: block; margin-top: 2px; color: var(--muted); }
.app-body .session-record[open] > summary { border-bottom: 1px solid var(--line); background: #fbfcfe; }
.app-body .session-expand { color: var(--muted); font-size: 1rem; transition: transform .18s ease; }
.app-body .session-record[open] .session-expand { transform: rotate(180deg); }
.app-body .session-record > .session-body,
.app-body .session-record > form,
.app-body .session-record > .ledger-impact,
.app-body .session-record > .session-correction { margin-inline: 16px; }
.app-body .session-record > .session-correction { margin-bottom: 16px; }
.app-body .report-disclosure { overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: #fbfcfe; }
.app-body .report-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 12px 14px; cursor: pointer; color: var(--ink-2); font-size: .75rem; font-weight: 720; }
.app-body .report-disclosure > summary strong { min-width: 28px; border-radius: 8px; background: #e8edfa; padding: 4px 7px; color: #385a9f; text-align: center; font-size: .68rem; }
.app-body .report-disclosure[open] > summary { border-bottom: 1px solid var(--line); }
.app-body .report-disclosure .audit-list { padding: 0 14px 12px; }
.app-body .report-disclosure .preview-table { background: #fff; }

@media (max-width: 900px) {
    .app-body .app-shell { display: block; }
    .app-body .app-sidebar { width: 240px; position: fixed; left: 0; top: 0; transform: translateX(-105%); transition: transform .25s ease; box-shadow: var(--shadow); }
    .app-body .app-sidebar.is-open { transform: none; }
    .app-body .app-menu-button { display: block; }
    .app-body .app-search { display: none; }
    .app-body .workspace-main { padding: 20px 16px 42px; }
    .app-body .filter-bar { grid-template-columns: 1fr 1fr; }
    .app-body .filter-bar .button { justify-self: start; }
}

@media (max-width: 700px) {
    .app-body .workspace-main { padding-inline: 12px; }
    .app-body .app-page-head { align-items: flex-start; gap: 1rem; margin-bottom: 16px; }
    .app-body .app-page-head h2 { font-size: 1.9rem; }
    .app-body .page-actions { width: 100%; justify-content: flex-start; }
    .app-body .record-command { display: grid; grid-template-columns: 1fr; align-items: stretch; }
    .app-body .record-command .button,
    .app-body .record-command .inline-form { width: 100%; }
    .app-body .record-command .inline-form { display: grid; grid-template-columns: minmax(0,1fr) auto; }
    .app-body .filter-bar { grid-template-columns: 1fr 1fr; }
    .app-body .filter-bar > .button,
    .app-body .filter-bar > a { width: 100%; text-align: center; }
    .app-body .data-section { overflow: hidden; padding: 14px; }
    .app-body .data-table-wrap { overflow: visible; }
    .app-body .data-table { min-width: 0; }
    .app-body .data-table thead { display: none; }
    .app-body .data-table tbody,
    .app-body .data-table tr,
    .app-body .data-table td { display: block; width: 100%; }
    .app-body .data-table tr { position: relative; padding: 12px 42px 12px 0; border-bottom: 1px solid var(--line); }
    .app-body .data-table tr:last-child { border-bottom: 0; }
    .app-body .data-table td { border: 0; padding: 4px 0; }
    .app-body .data-table td:nth-child(2),
    .app-body .data-table td:nth-child(5) { color: var(--muted); font-size: .7rem; }
    .app-body .data-table td:last-child { position: absolute; top: 14px; right: 0; width: auto; }
    .app-body .data-table .table-progress { max-width: 240px; }
    .app-body .session-record > summary { grid-template-columns: auto minmax(0,1fr) auto; padding: 12px; }
    .app-body .session-record > summary .status { grid-column: 2; justify-self: start; }
    .app-body .session-expand { grid-column: 3; grid-row: 1 / span 2; }
    .app-body .session-record > .session-body,
    .app-body .session-record > form,
    .app-body .session-record > .ledger-impact,
    .app-body .session-record > .session-correction { margin-inline: 12px; }
    .app-body .schedule-board { overflow-x: auto; padding: 14px; }
    .app-body .analytics-toolbar .button { border-radius: 10px; }
}

@media (max-width: 480px) {
    .app-body .workspace-main { padding-inline: 10px; }
    .app-body .app-page-head .page-actions { display: grid; grid-template-columns: 1fr; }
    .app-body .app-page-head .page-actions > *,
    .app-body .app-page-head > .button,
    .app-body .app-page-head > .action-popover { width: 100%; text-align: center; }
    .app-body .action-popover > summary.button { width: 100%; }
    .app-body .app-page-head .inline-form { display: grid; grid-template-columns: 1fr; width: 100%; }
    .app-body .app-page-head .inline-form .button { width: 100%; }
    .app-body .filter-bar { grid-template-columns: 1fr; }
    .app-body .metric-strip > div { padding: 11px; }
    .app-body .session-record > summary { grid-template-columns: minmax(0,1fr) auto; }
    .app-body .session-record > summary .student-avatar { display: none; }
    .app-body .session-record > summary .status { grid-column: 1; }
    .app-body .session-expand { grid-column: 2; }
}

/* Role-scoped schedule actions stay out of treating-clinician views. */
.app-body.role-otr .schedule-status .page-actions,
.app-body.role-cota .schedule-status .page-actions,
.app-body.role-otr .schedule-block-list,
.app-body.role-cota .schedule-block-list,
.app-body.role-otr .empty-banner form[action="/app/schedule/optimize"],
.app-body.role-cota .empty-banner form[action="/app/schedule/optimize"] {
    display: none;
}

/* Guided spreadsheet migration */
.import-page-head { align-items: center; }
.import-page-head > div:first-child { max-width: 830px; }
.import-page-head h2 { max-width: 780px; }
.import-stepper { margin: 0 0 24px; border-block: 1px solid var(--line); background: rgba(255,255,255,.72); }
.import-stepper ol { display: grid; grid-template-columns: repeat(3,1fr); max-width: 880px; margin: 0; padding: 0; list-style: none; }
.import-stepper li { position: relative; display: flex; align-items: center; gap: 10px; min-height: 76px; color: #8992a5; }
.import-stepper li:not(:last-child)::after { content: ""; width: min(64px, 5vw); height: 1px; position: absolute; right: 18px; top: 50%; background: var(--line); }
.import-stepper li > span { width: 30px; height: 30px; flex: 0 0 30px; display: grid; place-items: center; border: 1px solid #cfd6e3; border-radius: 50%; background: #fff; font-size: .72rem; font-weight: 800; }
.import-stepper strong, .import-stepper small { display: block; }
.import-stepper strong { color: #657086; font-size: .78rem; }
.import-stepper small { margin-top: 1px; font-size: .65rem; }
.import-stepper li.is-current > span { border-color: var(--blue); background: var(--blue); color: #fff; box-shadow: 0 0 0 5px #e8efff; }
.import-stepper li.is-current strong { color: var(--ink); }
.import-stepper li.is-complete > span { border-color: #83c7b8; background: #e2f6f0; color: #087465; }
.import-stepper li.is-complete:not(:last-child)::after { background: #9bcfc3; }

.import-workbench { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(260px,.55fr); gap: 24px; align-items: start; }
.import-builder { min-width: 0; display: grid; grid-template-columns: minmax(0,1fr); gap: 18px; }
.import-card { border: 1px solid var(--line); border-radius: 18px; background: #fff; padding: clamp(20px,3vw,30px); box-shadow: 0 8px 28px rgba(20,32,59,.055); }
.import-card-heading { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 22px; }
.import-card-number { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; border-radius: 10px; background: #e9efff; color: var(--blue); font-size: .78rem; font-weight: 850; }
.import-card-heading h3 { margin: 0 0 4px; font-size: 1.28rem; }
.import-card-heading p { margin: 0; color: var(--muted); font-size: .78rem; }
.import-source-options, .import-scope-options { display: grid; gap: 10px; margin: 0 0 18px; border: 0; padding: 0; }
.import-source-options { grid-template-columns: 1fr 1fr; }
.source-choice, .scope-choice { position: relative; display: grid; align-items: center; border: 1px solid #d9dfeb; background: #fbfcfe; cursor: pointer; transition: border-color .18s ease, background .18s ease, box-shadow .18s ease; }
.source-choice { grid-template-columns: 38px 1fr auto; gap: 10px; min-height: 86px; border-radius: 13px; padding: 13px; }
.source-choice:hover, .scope-choice:hover { border-color: #a8b9da; }
.source-choice:focus-within, .scope-choice:focus-within { outline: 3px solid #70a2ff; outline-offset: 2px; }
.source-choice.is-selected, .scope-choice.is-selected { border-color: #6d93e5; background: #f3f6ff; box-shadow: inset 0 0 0 1px #6d93e5; }
.source-choice input, .scope-choice input { position: absolute; opacity: 0; }
.source-choice-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; background: #fff; color: var(--blue); font-size: 1.05rem; font-weight: 850; box-shadow: 0 2px 8px rgba(29,60,120,.08); }
.source-choice strong, .source-choice small, .scope-choice strong, .scope-choice small { display: block; }
.source-choice strong, .scope-choice strong { color: var(--ink); font-size: .78rem; }
.source-choice small, .scope-choice small { margin-top: 3px; color: var(--muted); font-size: .66rem; line-height: 1.4; }
.source-choice > b { align-self: start; border-radius: 999px; background: #e1f5ef; color: #0b7467; padding: 3px 7px; font-size: .56rem; letter-spacing: .02em; text-transform: uppercase; }
.import-source-panel { border-radius: 14px; background: #f7f9fd; padding: 18px; }
.paste-directions { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0 0 14px; padding-left: 20px; color: #56627a; font-size: .7rem; }
.paste-sheet { display: grid; gap: 7px; }
.paste-sheet > span { color: var(--ink-2); font-size: .7rem; font-weight: 780; }
.paste-sheet textarea { width: 100%; min-height: 150px; resize: vertical; border: 1px solid #cdd6e5; border-radius: 10px; background: #fff; padding: 12px; color: var(--ink); font-family: Manrope, sans-serif; font-size: .75rem; line-height: 1.5; }
.paste-sheet textarea::placeholder { color: #9aa4b8; }
.import-source-panel .file-drop { min-height: 178px; border: 1.5px dashed #9fb0cb; background: #fff; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.import-source-panel .file-drop:hover, .import-source-panel .file-drop.is-dragging { border-color: var(--blue); background: #f1f5ff; transform: translateY(-1px); }
.file-drop-icon { width: 42px; height: 42px; display: grid; place-items: center; margin-bottom: 7px; border-radius: 50%; background: #e9efff; color: var(--blue); font-size: 1.2rem; font-weight: 850; }
.import-source-panel .file-drop strong { color: var(--blue); font-size: .82rem; }
.import-source-panel .file-drop small { margin-top: 4px; font-size: .67rem; }
.download-hint { margin: 12px 0 0; color: var(--muted); font-size: .68rem; }
.download-hint strong { color: var(--ink-2); }
.import-read-status { min-height: 20px; margin: 12px 0 -6px; color: #52617c; font-size: .7rem; font-weight: 650; }
.import-read-status.has-error { color: #9b3047; }

.import-scope-options { grid-template-columns: 1fr 1fr; }
.scope-choice { grid-template-columns: 1fr; min-height: 84px; border-radius: 12px; padding: 15px 16px 15px 44px; }
.scope-choice::before { content: ""; width: 17px; height: 17px; position: absolute; left: 16px; top: 18px; border: 1.5px solid #abb5c7; border-radius: 50%; background: #fff; }
.scope-choice.is-selected::after { content: ""; width: 9px; height: 9px; position: absolute; left: 20px; top: 22px; border-radius: 50%; background: var(--blue); }
.mapping-overview { display: grid; grid-template-columns: 125px 125px 1fr; align-items: center; gap: 0; margin: 22px 0 16px; border-block: 1px solid var(--line); padding: 15px 0; }
.mapping-overview > div { border-right: 1px solid var(--line); }
.mapping-overview > div + div { padding-left: 18px; }
.mapping-overview strong, .mapping-overview span { display: block; }
.mapping-overview strong { font-size: 1.45rem; line-height: 1; letter-spacing: -.04em; }
.mapping-overview span { margin-top: 4px; color: var(--muted); font-size: .62rem; }
.mapping-overview p { margin: 0; padding-left: 18px; color: var(--muted); font-size: .7rem; }
.mapping-groups { min-width: 0; display: grid; grid-template-columns: minmax(0,1fr); gap: 10px; }
.mapping-group { border: 1px solid var(--line); border-radius: 12px; background: #fff; overflow: clip; }
.mapping-group > summary, .matched-columns > summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; list-style: none; cursor: pointer; }
.mapping-group > summary { min-height: 72px; padding: 14px 17px; background: #fafbfe; }
.mapping-group > summary::-webkit-details-marker, .matched-columns > summary::-webkit-details-marker { display: none; }
.mapping-group > summary strong, .mapping-group > summary small, .matched-columns > summary strong, .matched-columns > summary small { display: block; }
.mapping-group > summary strong { font-size: .82rem; }
.mapping-group > summary small { max-width: 700px; margin-top: 3px; color: var(--muted); font-size: .65rem; }
.mapping-group > summary i, .matched-columns > summary i { width: 9px; height: 9px; border-right: 2px solid #758096; border-bottom: 2px solid #758096; transform: rotate(45deg); transition: transform .18s ease; }
.mapping-group[open] > summary i, .matched-columns[open] > summary i { transform: rotate(225deg); }
.mapping-list { border-top: 1px solid var(--line); }
.mapping-row { display: grid; grid-template-columns: minmax(180px,1.25fr) minmax(150px,.9fr) minmax(130px,.75fr); gap: 14px; align-items: center; min-height: 88px; border-bottom: 1px solid var(--line-soft); padding: 12px 16px; }
.mapping-row > *, .mapping-control { min-width: 0; }
.mapping-row:last-child { border-bottom: 0; }
.mapping-row.is-matched { background: linear-gradient(90deg,rgba(232,246,241,.48),transparent 30%); }
.mapping-label > label { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; color: var(--ink-2); font-size: .74rem; font-weight: 780; }
.mapping-label > label b { border-radius: 999px; background: #e9efff; color: #315da8; padding: 2px 6px; font-size: .52rem; letter-spacing: .02em; text-transform: uppercase; }
.mapping-label > small { display: block; max-width: 390px; margin-top: 4px; color: var(--muted); font-size: .62rem; line-height: 1.4; }
.mapping-control { display: grid; gap: 4px; }
.mapping-control > span { color: #6f798d; font-size: .58rem; font-weight: 750; letter-spacing: .035em; text-transform: uppercase; }
.mapping-control select, .mapping-control input { width: 100%; min-height: 40px; border: 1px solid #ced6e3; border-radius: 8px; background: #fff; color: var(--ink); padding: 8px 9px; font-size: .7rem; }
.mapping-fallback { position: relative; padding-left: 14px; }
.mapping-fallback::before { content: "or"; position: absolute; left: -6px; top: 28px; color: #929bad; font-size: .58rem; }
.local-sheet-preview { margin-top: 18px; border-radius: 12px; background: #f7f9fd; padding: 16px; }
.local-sheet-preview > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.local-sheet-preview h4, .review-preview h4, .import-issues h4 { margin: 0; font-size: .82rem; letter-spacing: -.01em; }
.local-sheet-preview p, .review-preview .section-heading p { margin: 0; color: var(--muted); font-size: .64rem; }
.local-sheet-preview .preview-table { margin-top: 10px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.import-submit-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 22px; }
.import-safety-note { display: flex; align-items: flex-start; gap: 9px; max-width: 510px; color: var(--muted); }
.import-safety-note > span { width: 22px; height: 22px; flex: 0 0 22px; display: grid; place-items: center; border-radius: 50%; background: #def3ed; color: #087365; font-size: .68rem; font-weight: 900; }
.import-safety-note p { margin: 0; font-size: .65rem; }
.import-safety-note strong { display: block; color: var(--ink-2); }
.import-submit-row .button { flex: 0 0 auto; }

.import-guide { display: grid; gap: 16px; }
.import-guide > section { border: 1px solid var(--line); border-radius: 16px; background: #fff; padding: 22px; }
.import-guide h3 { margin: 0 0 10px; font-size: 1.12rem; line-height: 1.2; }
.import-guide p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: .72rem; }
.import-check-list { display: grid; gap: 9px; margin: 16px 0 0; padding: 0; list-style: none; }
.import-check-list li { position: relative; padding-left: 22px; color: #4d5a73; font-size: .69rem; }
.import-check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--teal); font-weight: 900; }
.import-guide > .import-boundary { border-color: #d9d4ee; background: linear-gradient(145deg,#fbfaff,#f7f5fd); }
.import-privacy-card { display: grid; grid-template-columns: 34px 1fr; gap: 11px; background: var(--navy) !important; color: #fff; }
.import-privacy-card > span { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 10px; color: #a9bfff; }
.import-privacy-card strong { font-size: .72rem; line-height: 1.35; }
.import-privacy-card p { margin-top: 6px !important; color: #aeb9d0 !important; font-size: .63rem !important; }

.import-review { padding: clamp(20px,3vw,32px); }
.import-review-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 28px; margin-bottom: 24px; }
.import-review-head h3 { margin: 0 0 7px; font-size: clamp(1.45rem,2.5vw,2.1rem); }
.import-review-head p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: .78rem; }
.review-head-actions { display: grid; justify-items: end; gap: 9px; flex: 0 0 auto; }
.review-head-actions > a { color: var(--blue); font-size: .67rem; font-weight: 760; }
.review-state { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; border-radius: 999px; padding: 8px 12px; font-size: .66rem; font-weight: 800; }
.review-state i { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; font-style: normal; }
.review-state.is-ready { background: #e4f6f1; color: #087164; }
.review-state.is-ready i { background: #fff; }
.review-state.has-errors { background: #fff0f3; color: #9b3047; }
.review-state.has-errors i { background: #fff; }
.import-summary-strip { display: grid; grid-template-columns: repeat(4,1fr); margin-bottom: 20px; border-block: 1px solid var(--line); }
.import-summary-strip > div { padding: 17px 18px; border-right: 1px solid var(--line); }
.import-summary-strip > div:first-child { padding-left: 0; }
.import-summary-strip > div:last-child { border: 0; }
.import-summary-strip span, .import-summary-strip strong, .import-summary-strip small { display: block; }
.import-summary-strip span { color: var(--muted); font-size: .58rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.import-summary-strip strong { margin: 3px 0; font-size: 1.75rem; line-height: 1; letter-spacing: -.05em; }
.import-summary-strip small { color: var(--muted); font-size: .62rem; }
.import-issues { margin: 14px 0; border-radius: 12px; padding: 16px; }
.import-issues.has-errors { border: 1px solid #efc9d2; background: #fff7f8; }
.import-issues.has-errors > div { display: flex; gap: 10px; }
.import-issues.has-errors > div > span, .import-issues > summary > span { width: 26px; height: 26px; flex: 0 0 26px; display: grid; place-items: center; border-radius: 50%; font-size: .68rem; font-weight: 900; }
.import-issues.has-errors > div > span { background: #f8dce2; color: #9e3048; }
.import-issues h4 + p { margin: 3px 0 0; color: var(--muted); font-size: .65rem; }
.import-issues ol, .import-issues ul { display: grid; gap: 7px; margin: 13px 0 0; padding: 13px 13px 0 38px; border-top: 1px solid rgba(152,49,72,.14); color: #743345; font-size: .69rem; }
.import-issues.has-notes { border: 1px solid #eadab9; background: #fffaf0; }
.import-issues > summary { display: flex; gap: 10px; align-items: center; list-style: none; cursor: pointer; }
.import-issues > summary::-webkit-details-marker { display: none; }
.import-issues > summary > span { background: #f7e8c7; color: #80520d; font-style: normal; }
.import-issues > summary strong, .import-issues > summary small { display: block; }
.import-issues > summary strong { color: #684610; font-size: .74rem; }
.import-issues > summary small { color: #8a724d; font-size: .62rem; }
.import-issues.has-notes ul { border-color: rgba(132,91,21,.14); color: #6e5429; }
.matched-columns { margin: 14px 0; border: 1px solid var(--line); border-radius: 12px; background: #fafbfe; }
.matched-columns > summary { min-height: 64px; padding: 12px 16px; }
.matched-columns > summary strong { font-size: .76rem; }
.matched-columns > summary small { margin-top: 2px; color: var(--muted); font-size: .62rem; }
.matched-columns > div { display: flex; flex-wrap: wrap; gap: 7px; border-top: 1px solid var(--line); padding: 14px 16px; }
.matched-columns > div span { display: inline-flex; align-items: center; gap: 6px; border: 1px solid #d9e0ec; border-radius: 999px; background: #fff; padding: 5px 9px; color: #556079; font-size: .61rem; }
.matched-columns > div b { color: var(--ink-2); }
.matched-columns > div i { color: var(--blue); font-style: normal; }
.review-preview { margin-top: 16px; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.review-preview .section-heading { align-items: center; margin: 0; background: #fafbfe; padding: 13px 15px; }
.review-preview .section-heading > span { color: var(--muted); font-size: .62rem; }
.review-preview .preview-table td { font-size: .68rem; }
.empty-cell { color: #9aa3b3; font-style: italic; }
.review-actions { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 22px; }
.app-body .review-actions .button { border-color: var(--blue); background: var(--blue); color: #fff; }
.app-body .review-actions .button.button-secondary { border-color: var(--line); background: #fff; color: var(--ink); }
.review-actions .commit-import { flex: 1; margin: 0; }
.commit-import > div { margin-right: auto; }
.commit-import > div strong, .commit-import > div span { display: block; }
.commit-import > div strong { color: var(--ink-2); font-size: .68rem; }
.commit-import > div span { color: var(--muted); font-size: .61rem; }

@media (max-width: 1050px) {
    .import-workbench { grid-template-columns: 1fr; }
    .import-guide { grid-template-columns: repeat(3,1fr); }
    .import-guide > section { padding: 18px; }
}

@media (max-width: 760px) {
    .import-page-head { align-items: stretch; }
    .import-page-head > .button { width: 100%; }
    .import-stepper li:not(:last-child)::after { display: none; }
    .import-stepper li { min-height: 68px; }
    .import-stepper li > div small { display: none; }
    .import-source-options, .import-scope-options, .import-guide { grid-template-columns: 1fr; }
    .mapping-overview { grid-template-columns: 1fr 1fr; }
    .mapping-overview p { grid-column: 1/-1; margin-top: 12px; border-top: 1px solid var(--line); padding: 12px 0 0; }
    .mapping-row { grid-template-columns: 1fr 1fr; }
    .mapping-label { grid-column: 1/-1; }
    .mapping-fallback { padding-left: 0; }
    .mapping-fallback::before { display: none; }
    .import-submit-row, .import-review-head, .review-actions { align-items: stretch; flex-direction: column; }
    .import-submit-row .button, .review-actions > .button { width: 100%; }
    .review-state { align-self: flex-start; }
    .review-head-actions { justify-items: start; }
    .import-summary-strip { grid-template-columns: 1fr 1fr; }
    .import-summary-strip > div { padding-left: 14px; }
    .import-summary-strip > div:nth-child(2) { border-right: 0; }
    .import-summary-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .review-actions .commit-import { align-items: stretch; width: 100%; }
    .commit-import > div { margin: 0; }
}

@media (max-width: 520px) {
    .import-stepper strong { font-size: .66rem; }
    .import-stepper li { gap: 7px; }
    .import-stepper li > span { width: 27px; height: 27px; flex-basis: 27px; }
    .import-card, .import-review { border-radius: 13px; padding: 15px; }
    .source-choice { grid-template-columns: 34px 1fr; }
    .source-choice > b { grid-column: 2; justify-self: start; }
    .source-choice-icon { width: 34px; height: 34px; }
    .import-source-panel { padding: 12px; }
    .paste-directions { display: grid; gap: 4px; }
    .mapping-row { grid-template-columns: 1fr; padding: 13px; }
    .mapping-label { grid-column: auto; }
    .local-sheet-preview { padding: 12px; }
    .local-sheet-preview > div:first-child { display: block; }
    .import-summary-strip strong { font-size: 1.45rem; }
    .commit-import .button { width: 100%; }
}

.onboarding-start { margin: 0 0 26px; border: 1px solid #cdd9f0; border-radius: 18px; background: linear-gradient(135deg,#f8faff 0%,#eef3ff 58%,#f8f6ff 100%); padding: clamp(20px,3vw,30px); box-shadow: 0 12px 34px rgba(34,72,144,.08); }
.onboarding-start-heading { max-width: 700px; margin-bottom: 20px; }
.onboarding-start-heading h3 { margin: 0 0 8px; font-size: clamp(1.35rem,2.2vw,1.9rem); }
.onboarding-start-heading > p:not(.eyebrow) { margin: 0; color: #596680; font-size: .8rem; }
.onboarding-choice-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.onboarding-choice { min-width: 0; display: flex; flex-direction: column; gap: 16px; border: 1px solid #d4def1; border-radius: 14px; background: rgba(255,255,255,.82); padding: 18px; }
.onboarding-choice.is-primary { border-color: #9eb9ed; background: #fff; box-shadow: inset 0 3px var(--blue); }
.onboarding-choice-number { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: #e9effd; color: var(--blue); font-size: .8rem; font-weight: 800; }
.onboarding-choice strong { display: block; margin-bottom: 6px; color: var(--ink); font-size: .88rem; }
.onboarding-choice p { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.55; }
.onboarding-choice .button { align-self: flex-start; margin-top: auto; }
.activation-form { display: flex; flex-direction: column; gap: 18px; }
.activation-section { display: grid; grid-template-columns: minmax(220px,.72fr) minmax(0,1.28fr); gap: clamp(24px,4vw,58px); border: 1px solid var(--line); border-radius: 18px; background: #fff; padding: clamp(20px,3vw,30px); box-shadow: 0 8px 28px rgba(20,32,59,.04); }
.activation-section-copy h3 { margin: 4px 0 9px; font-size: 1.35rem; }
.activation-section-copy > p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.65; }
.activation-fields { min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.activation-fields label:not(.activation-check) { display: flex; flex-direction: column; gap: 6px; color: var(--ink-2); font-size: .72rem; font-weight: 760; }
.activation-fields input[type="text"], .activation-fields input:not([type]) { width: 100%; border: 1px solid #cfd6e2; border-radius: 9px; background: #fff; color: var(--ink); padding: .75rem .8rem; font: inherit; }
.activation-options { min-width: 0; margin: 0; border: 0; padding: 0; }
.activation-options legend { margin-bottom: 7px; color: var(--ink-2); font-size: .72rem; font-weight: 760; }
.activation-options > label { display: grid !important; grid-template-columns: auto 1fr; gap: 10px !important; align-items: start; margin-top: 8px; border: 1px solid var(--line); border-radius: 11px; padding: 12px; cursor: pointer; }
.activation-options input { margin-top: 3px; }
.activation-options strong, .activation-options small { display: block; }
.activation-options strong { color: var(--ink); font-size: .78rem; }
.activation-options small { margin-top: 3px; color: var(--muted); font-size: .68rem; font-weight: 500; line-height: 1.5; }
.activation-email { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; margin: 0; border-radius: 9px; background: #f6f8fc; padding: 10px 12px; font-size: .72rem; }
.activation-email span { color: var(--muted); }
.activation-check { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; color: var(--ink-2); font-size: .73rem; line-height: 1.55; cursor: pointer; }
.activation-check input { margin-top: 3px; }
.activation-agreement-card { border: 1px solid var(--line); border-radius: 12px; padding: 15px; }
.activation-agreement-card > p { margin: 6px 0 11px; color: var(--muted); font-size: .7rem; line-height: 1.55; }
.activation-agreement-card > small { display: block; margin: -3px 0 11px; overflow-wrap: anywhere; color: var(--muted); font-size: .61rem; }
.activation-agreement-title { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 7px 16px; }
.activation-agreement-title a { color: var(--blue); font-size: .7rem; font-weight: 700; }
.activation-signature { border-top: 1px solid var(--line); padding-top: 14px; font-weight: 700; }
.activation-submit { align-self: flex-start; }
.activation-lock-note { margin: 0; color: var(--muted); font-size: .66rem; }
.onboarding-help-actions { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; }
.caseload-empty-state .empty-state { min-height: 300px; }
.empty-state-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 18px; }

@media (max-width: 760px) {
    .onboarding-choice-grid { grid-template-columns: 1fr; }
    .onboarding-choice .button { width: 100%; }
    .activation-section { grid-template-columns: 1fr; gap: 18px; }
    .activation-submit { width: 100%; }
}

@media (max-width: 520px) {
    .onboarding-start { padding: 16px; }
    .empty-state-actions { width: 100%; }
    .empty-state-actions .button { width: 100%; }
}

/* Responsive layout remediation */
.feature-page-hero {
    min-height: 760px;
    grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr);
    gap: clamp(3rem,5vw,6rem);
    padding-inline: max(2rem,calc((100vw - 1440px)/2));
}
.feature-page-hero > div:first-child {
    min-width: 0;
    max-width: 680px;
}
.feature-page-hero h1 {
    max-width: 680px;
    font-size: clamp(3.15rem,4.4vw,5.1rem);
    line-height: 1.03;
    overflow-wrap: normal;
}
.page-demo-wrap {
    width: 100%;
    min-width: 0;
    align-self: center;
}
.page-demo-wrap .product-frame {
    min-height: 450px;
    aspect-ratio: 1.48;
}
.guide-lede h2 {
    font-size: clamp(2.45rem,3.6vw,4rem);
}

.app-body .app-pricing .price-card + .price-card {
    margin-inline: 0;
    border-radius: 14px;
}
.app-body .schedule-board {
    padding: 0;
    overflow: auto;
}

.simple-confirmation {
    width: min(calc(100% - 4rem),var(--content));
    min-height: 560px;
    display: grid;
    align-content: center;
    margin-inline: auto;
    padding-block: clamp(5rem,9vw,8rem);
}
.simple-confirmation h1 {
    max-width: 1050px;
    margin: .35rem 0 1.4rem;
    font-size: clamp(3.4rem,5.6vw,5.7rem);
    font-weight: 520;
    line-height: 1.03;
}
.simple-confirmation > p:not(.eyebrow) {
    max-width: 760px;
    margin-bottom: 2rem;
    color: var(--muted);
    font-size: 1.05rem;
    line-height: 1.7;
}
.simple-confirmation > div {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.form-between {
    display: flex;
    justify-content: flex-end;
    margin-top: -.2rem;
}
.form-between a {
    color: var(--blue);
    font-size: .8rem;
    font-weight: 720;
    text-underline-offset: 3px;
}
.auth-callout {
    margin: 1rem 0;
    border: 1px solid #cad6eb;
    border-radius: 12px;
    background: #f5f8ff;
    padding: 1rem;
}
.auth-callout strong,
.auth-callout p {
    display: block;
}
.auth-callout p {
    margin: .35rem 0 0;
    color: var(--muted);
    font-size: .84rem;
    line-height: 1.55;
}
.auth-shell,
.auth-panel {
    min-width: 0;
    max-width: 100%;
}
.auth-panel > p,
.auth-callout p,
.local-mail-preview p,
.auth-foot {
    overflow-wrap: anywhere;
}
.registration-summary h2 {
    font-size: clamp(1.8rem,2.35vw,2.2rem);
}
.workspace-switcher {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: .4rem;
    margin: 0 0 1rem;
}
.workspace-switcher label { min-width: 0; }
.workspace-switcher select {
    width: 100%;
    min-height: 40px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 9px;
    background: #152344;
    color: #fff;
    padding: .55rem .65rem;
}
.workspace-switcher button { border: 1px solid rgba(255,255,255,.2); border-radius: 9px; background: #24365d; color: #fff; padding: 0 .65rem; cursor: pointer; font-size: .7rem; font-weight: 760; }

.team-overview {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 1px;
    margin: 0 0 18px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--line);
}
.team-overview article { min-width: 0; background: #fff; padding: 1rem 1.1rem; }
.team-overview small,.team-overview strong,.team-overview span { display: block; }
.team-overview small { color: var(--muted); font-size: .68rem; font-weight: 760; letter-spacing: .045em; text-transform: uppercase; }
.team-overview strong { margin: .3rem 0 .15rem; font-size: 1.45rem; letter-spacing: -.04em; }
.team-overview span { color: var(--muted); font-size: .72rem; line-height: 1.4; }
.team-overview article.needs-attention { background: #fff8ea; box-shadow: inset 0 3px #c77d10; }
.team-readiness-alert { display: grid; grid-template-columns: auto 1fr auto; gap: .7rem 1rem; align-items: center; margin: 0 0 18px; border: 1px solid #e8c77c; border-radius: 11px; background: #fff9ec; padding: .8rem 1rem; color: #70450b; font-size: .78rem; }
.team-readiness-alert a { color: #70450b; font-weight: 800; }
.team-member-row { position: relative; display: grid; grid-template-columns: 36px minmax(170px,1.4fr) minmax(100px,.7fr) minmax(100px,.65fr) auto auto; gap: 12px; align-items: center; min-height: 70px; border-bottom: 1px solid var(--line-soft); }
.team-member-row strong,.team-member-row small { display: block; }
.team-member-row small { color: var(--muted); }
.team-member-row mark { width: max-content; border-radius: 999px; background: #edf1f8; color: var(--ink-2); padding: .3rem .5rem; }
.team-member-row.is-suspended { background: #fafbfc; color: var(--muted); }
.membership-status { border-radius: 999px; padding: .3rem .5rem; font-size: .68rem; font-weight: 780; }
.membership-status.status-active { background: #e1f6f0; color: #096e62; }
.membership-status.status-suspended { background: #edf0f5; color: #5d6678; }
.member-actions > summary { cursor: pointer; list-style: none; }
.member-actions > summary::-webkit-details-marker { display: none; }
.member-actions-panel { position: absolute; z-index: 6; right: 0; width: min(330px,calc(100vw - 3rem)); margin-top: .5rem; border: 1px solid var(--line); border-radius: 12px; background: #fff; padding: 1rem; box-shadow: var(--shadow); }
.member-actions-panel .stack-form { gap: .75rem; }
.member-actions-panel > form + form { margin-top: .85rem; border-top: 1px solid var(--line-soft); padding-top: .75rem; }
.danger-link { color: #a12b43 !important; }
.button.button-danger { border-color: #a12b43; background: #a12b43; color: #fff; }
.role-guide { margin-top: 1rem; }
.role-guide > summary { width: max-content; cursor: pointer; color: var(--blue); font-size: .78rem; font-weight: 760; }
.role-guide > summary,.settings-list button,.team-member-row .text-link { display: inline-flex; min-height: 28px; align-items: center; }
.role-guide-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; margin-top: .8rem; border: 1px solid var(--line); background: var(--line); }
.role-guide-grid > div { background: #fafbfe; padding: .8rem; }
.role-guide-grid strong,.role-guide-grid span { display: block; }
.role-guide-grid span { margin-top: .2rem; color: var(--muted); font-size: .74rem; line-height: 1.45; }
.settings-list > div.is-ended { opacity: .62; }
.settings-list .empty-state { min-height: 90px; }
.review-assignment { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: .75rem 0; border: 1px solid #d9e2f2; border-radius: 10px; background: #f6f8fd; padding: .7rem .85rem; }
.review-assignment strong,.review-assignment small { display: block; }
.review-assignment small { margin-top: .15rem; color: var(--muted); }
.review-assignment form { display: flex; align-items: center; gap: .55rem; }
.review-assignment select { max-width: 240px; border: 1px solid var(--line); border-radius: 7px; background: #fff; padding: .5rem; }

@media (max-width: 1050px) {
    .team-overview { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .team-member-row { grid-template-columns: 36px minmax(150px,1fr) auto auto; padding: .55rem 0; }
    .team-member-row > span:nth-of-type(3) { display: none; }
}

@media (max-width: 650px) {
    .team-overview { grid-template-columns: 1fr 1fr; }
    .team-overview article { padding: .85rem; }
    .team-readiness-alert { grid-template-columns: 1fr; }
    .team-member-row { grid-template-columns: 34px minmax(0,1fr) auto; }
    .team-member-row > mark,.team-member-row > span:nth-of-type(3),.team-member-row > .membership-status { display: none; }
    .member-actions-panel { right: .25rem; }
    .role-guide-grid { grid-template-columns: 1fr; }
    .review-assignment,.review-assignment form { align-items: stretch; flex-direction: column; }
    .review-assignment select { width: 100%; max-width: none; }
    .settings-list > div { align-items: flex-start; flex-direction: column; }
    .dated-end-form { width: 100%; justify-content: space-between; }
}

@media (max-width: 1100px) {
    .feature-page-hero {
        min-height: 0;
        grid-template-columns: minmax(0,1fr);
        gap: 3rem;
        padding: clamp(4.5rem,8vw,6rem) max(1.5rem,calc((100vw - 900px)/2));
    }
    .feature-page-hero > div:first-child {
        max-width: 800px;
    }
    .feature-page-hero h1 {
        max-width: 800px;
        font-size: clamp(3rem,7vw,4.6rem);
    }
    .page-demo-wrap {
        width: min(100%,900px);
    }
}

@media (max-width: 900px) {
    .app-body .filter-bar[aria-label="Filter tasks"] {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
    .app-body .app-topbar {
        height: 72px;
        gap: .75rem;
        padding-inline: 14px;
    }
    .app-body .app-topbar > div:first-of-type {
        min-width: 0;
        display: grid;
        gap: 2px;
    }
    .app-body .app-topbar p {
        line-height: 1.1;
        white-space: nowrap;
    }
    .app-body .app-topbar h1 {
        max-width: calc(100vw - 142px);
        line-height: 1.18;
    }
}

@media (max-width: 820px) {
    .marketing-path-home .hero-product .product-frame {
        height: 430px;
        min-height: 430px;
        aspect-ratio: auto;
    }
}

@media (max-width: 560px) {
    .auth-body {
        padding: 1rem;
    }
    .auth-panel {
        padding: 1.5rem;
    }
    .simple-confirmation {
        width: calc(100% - 2rem);
        min-height: 480px;
        padding-block: 4.5rem;
    }
    .simple-confirmation h1 {
        font-size: clamp(2.55rem,12vw,3.1rem);
    }
    .simple-confirmation > div {
        display: grid;
        grid-template-columns: 1fr;
    }
    .simple-confirmation .button {
        width: 100%;
    }
    .feature-page-hero {
        gap: 2.5rem;
        padding: 4rem 1rem;
    }
    .feature-page-hero > div:first-child,
    .feature-page-hero h1 {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }
    .feature-page-hero h1 {
        font-size: clamp(2.55rem,11.5vw,3.05rem);
        line-height: 1.04;
    }
    .marketing-body .product-frame,
    .page-demo-wrap .product-frame,
    .hero-product .product-frame {
        height: 430px;
        min-height: 430px;
        aspect-ratio: auto;
    }
    .security-jump-nav {
        display: grid;
        grid-template-columns: repeat(2,minmax(0,1fr));
        gap: 0 .8rem;
        overflow: visible;
        padding: .85rem 1rem;
    }
    .security-jump-nav > span {
        grid-column: 1 / -1;
        padding-bottom: .45rem;
    }
    .security-jump-nav a {
        min-height: 40px;
        display: flex;
        align-items: center;
        border-top: 1px solid var(--line-soft);
    }
}

@media (max-width: 480px) {
    .app-body .filter-bar[aria-label="Filter tasks"] {
        grid-template-columns: minmax(0,1fr);
    }
    .app-body .filter-tabs {
        display: grid;
        grid-template-columns: repeat(2,minmax(0,1fr));
        overflow: visible;
        padding-bottom: 0;
    }
    .app-body .filter-tabs :is(button,a) {
        width: 100%;
    }
}

/* QA pass: comfortable pointer targets for recurring navigation and row actions. */
.menu-button,
.announcement > button,
.app-menu-button,
.notification-button,
.week-navigator a,
.row-link,
.table-action,
.flash [data-dismiss-flash] {
    min-width: 44px;
    min-height: 44px;
}
.menu-button,
.app-menu-button {
    width: 44px;
    height: 44px;
    padding: 0;
}
.announcement > button,
.notification-button,
.week-navigator a,
.row-link,
.table-action {
    width: 44px;
    height: 44px;
}
.row-link { display: grid; place-items: center; }
.app-menu-button { line-height: 44px; }
.settings-list button,
.team-member-row .text-link {
    min-height: 40px;
    padding-block: 8px;
}

/* The caseload switches to scan-friendly cards before the tablet table clips. */
@media (max-width: 900px) {
    .app-body .data-section { overflow: hidden; padding: 14px; }
    .app-body .table-toolbar { padding: 0 0 12px; }
    .app-body .data-table-wrap { overflow: visible; }
    .app-body .data-table { min-width: 0; }
    .app-body .data-table thead { display: none; }
    .app-body .data-table tbody,
    .app-body .data-table tr,
    .app-body .data-table td { display: block; width: 100%; }
    .app-body .data-table tr { position: relative; padding: 12px 52px 12px 0; border-bottom: 1px solid var(--line); }
    .app-body .data-table tr:last-child { border-bottom: 0; }
    .app-body .data-table td { border: 0; padding: 4px 0; }
    .app-body .data-table td:nth-child(2),
    .app-body .data-table td:nth-child(5) { color: var(--muted); font-size: .7rem; }
    .app-body .data-table td:last-child { position: absolute; top: 8px; right: 0; width: 44px; }
    .app-body .data-table .table-progress { max-width: 240px; }
}

/* Signed-in workspace interaction feedback. */
.app-body {
    --app-interaction-duration: .16s;
    --app-interaction-ease: cubic-bezier(.2,.8,.2,1);
}
.app-body :where(
    a[href],
    button:not(:disabled),
    summary,
    select:not(:disabled),
    input[type="checkbox"]:not(:disabled),
    input[type="radio"]:not(:disabled),
    input[type="file"]:not(:disabled),
    label:has(input[type="checkbox"]:not(:disabled)),
    label:has(input[type="radio"]:not(:disabled)),
    label.file-drop,
    label.source-choice,
    label.scope-choice
) { cursor: pointer; }
.app-body :where(a[href],button:not(:disabled),summary) {
    transition:
        color var(--app-interaction-duration) var(--app-interaction-ease),
        background-color var(--app-interaction-duration) var(--app-interaction-ease),
        border-color var(--app-interaction-duration) var(--app-interaction-ease),
        box-shadow var(--app-interaction-duration) var(--app-interaction-ease),
        opacity var(--app-interaction-duration) var(--app-interaction-ease),
        transform var(--app-interaction-duration) var(--app-interaction-ease);
}
.app-body :where(input:not([type="hidden"]),textarea,select) {
    transition:
        border-color var(--app-interaction-duration) var(--app-interaction-ease),
        background-color var(--app-interaction-duration) var(--app-interaction-ease),
        box-shadow var(--app-interaction-duration) var(--app-interaction-ease);
}
.app-body :where(button:disabled,.button[aria-disabled="true"],select:disabled,input:disabled) {
    cursor: not-allowed;
}

@media (hover: hover) and (pointer: fine) {
    .app-body .button:not(:disabled):not([aria-disabled="true"]):hover {
        transform: translateY(-2px);
        box-shadow: 0 7px 18px rgba(31,70,148,.2);
    }
    .app-body :where(.button-secondary,.button-ghost):hover {
        border-color: #aebbd0;
        background: #f5f8fc;
        box-shadow: 0 6px 16px rgba(25,39,70,.1);
    }
    .app-body .button.button-danger:hover {
        border-color: #872137;
        background: #872137;
        box-shadow: 0 7px 18px rgba(135,33,55,.2);
    }
    .app-body :where(.text-link,button.text-link,.section-heading a,.filter-bar > a):hover {
        color: var(--blue-2);
        text-decoration: underline;
        text-underline-offset: 4px;
        transform: translateX(2px);
    }
    .app-body .danger-link:hover { color: #91273d; }
    .app-body :where(.app-sidebar nav a,.sidebar-bottom a,.sidebar-bottom button):hover {
        transform: translateX(2px);
    }
    .app-body :where(
        .notification-button,
        .row-link,
        .table-action,
        .week-navigator a,
        .modal-close,
        .app-menu-button,
        .workspace-switcher button,
        .analytics-dialog header > button,
        .flash [data-dismiss-flash]
    ):hover {
        border-color: #aebbd0;
        background-color: #eef3fc;
        color: var(--blue-2);
        box-shadow: 0 5px 13px rgba(25,39,70,.12);
        transform: translateY(-1px);
    }
    .app-body :where(
        .attention-row,
        .queue-row,
        .agenda-row,
        .report-bars > a,
        .report-version-list > a
    ):hover {
        background-color: #f5f8ff;
        box-shadow: inset 3px 0 var(--blue);
        transform: translateX(2px);
    }
    .app-body :where(.student-cell,.preview-event):hover {
        color: var(--blue-2);
        transform: translateY(-1px);
    }
    .app-body .preview-event:hover {
        border-left-color: var(--blue-2);
        background-color: #dfe9ff;
        box-shadow: 0 5px 12px rgba(45,103,215,.12);
    }
    .app-body :where(.record-tabs a,.filter-tabs button,.filter-tabs a):hover {
        background-color: #eef3fc;
        color: var(--blue-2);
    }
    .app-body summary:not(.button):hover { color: var(--blue-2); }
    .app-body :where(
        .session-record > summary,
        .report-disclosure > summary,
        .plan-version > summary,
        .mapping-group > summary,
        .matched-columns > summary,
        .import-issues > summary,
        .analytics-method > summary,
        .schedule-block-list summary
    ):hover {
        background-color: #f5f8fc;
    }
    .app-body :where(input:not([type="hidden"]):not(:disabled),textarea:not(:disabled),select:not(:disabled)):hover {
        border-color: #aebbd0;
        background-color: #fcfdff;
    }
    .app-body :where(.analytics-dialog label,.source-choice,.scope-choice,label.file-drop):hover {
        border-color: #9fb3d8;
        background-color: #f5f8ff;
        box-shadow: 0 4px 12px rgba(31,70,148,.08);
    }
    .app-body :where(
        label:has(input[type="checkbox"]:not(:disabled)),
        label:has(input[type="radio"]:not(:disabled))
    ):hover {
        background-color: #f5f8ff;
    }
}

.app-body .button:not(:disabled):not([aria-disabled="true"]):active {
    transform: translateY(0) scale(.98);
    box-shadow: none;
}
.app-body :where(.notification-button,.row-link,.table-action,.week-navigator a,.modal-close,.app-menu-button):active {
    transform: scale(.96);
}
.app-body :where(.attention-row,.queue-row,.agenda-row,.report-bars > a,.report-version-list > a):active {
    transform: translateX(1px) scale(.995);
}

@media (prefers-reduced-motion: reduce) {
    .app-body :where(a[href],button,summary,input,textarea,select) {
        transition-duration: .001ms !important;
    }
    .app-body :where(a[href],button,summary):hover,
    .app-body :where(a[href],button,summary):active {
        transform: none !important;
    }
}
.claim-summary{margin-bottom:1rem}.claim-config-form{margin-top:1rem}.claim-config-form h4{margin:1.25rem 0 .5rem}.claim-table .team-member-row{grid-template-columns:auto minmax(14rem,2fr) auto minmax(12rem,1fr) minmax(12rem,1fr)}details.record-section>summary{cursor:pointer;list-style:none;font-size:1.02rem}details.record-section>summary::-webkit-details-marker{display:none}details.record-section>summary strong{display:flex;align-items:center;gap:.6rem}details.record-section>summary strong:before{content:'›';transition:transform .2s}details.record-section[open]>summary strong:before{transform:rotate(90deg)}.record-section.safety code{overflow-wrap:anywhere}
@media(max-width:900px){.claim-table .team-member-row{grid-template-columns:auto 1fr}.claim-table .team-member-row>*:nth-child(n+3){grid-column:2}}

/* Production QA: keep illustrative actions noninteractive and the mobile preview navigable. */
.inline-actions > span {
    min-height: 23px;
    display: flex;
    align-items: center;
    border: 0;
    border-radius: 7px;
    background: var(--blue);
    color: #fff;
    padding: 6px 9px;
    font-size: 7px;
    font-weight: 750;
    line-height: 1.5;
}
.inline-actions > span:first-child {
    border: 1px solid var(--line);
    background: #fff;
    color: var(--ink);
}

@media (max-width: 700px) {
    .hero-product .demo-app {
        grid-template-columns: 1fr;
        grid-template-rows: 44px minmax(0, 1fr);
    }
    .hero-product .demo-sidebar {
        display: flex;
        align-items: stretch;
        gap: 2px;
        overflow-x: auto;
        padding: 0 4px;
    }
    .hero-product .demo-sidebar .demo-logo {
        display: none;
    }
    .hero-product .demo-sidebar button {
        width: auto;
        min-width: 0;
        min-height: 44px;
        flex: 1 1 25%;
        display: flex !important;
        justify-content: center;
        padding: 6px 5px;
        font-size: 7px;
        white-space: nowrap;
    }
    .hero-product .demo-workspace {
        min-height: 0;
    }
}
