:root {
    --ink: #111827;
    --muted: #677386;
    --line: #e5e9ef;
    --soft: #f5f7f9;
    --paper: #ffffff;
    --navy: #0b1220;
    --navy-2: #111c30;
    --orange: #f36b2b;
    --orange-dark: #d95318;
    --orange-soft: #fff1e9;
    --green: #20875f;
    --blue: #3478c9;
    --purple: #7957b8;
    --shadow: 0 18px 50px rgba(16, 24, 40, .08);
    --radius: 16px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Inter, Aptos, "Segoe UI", Arial, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.container-wide { width: min(1500px, calc(100% - 80px)); margin-inline: auto; }
.icon { width: 20px; display: inline-grid; place-items: center; font-size: 19px; font-weight: 500; }
.brand { display: inline-flex; align-items: center; gap: 11px; white-space: nowrap; }
.brand-mark { width: 35px; height: 35px; display: grid; place-items: center; background: var(--orange); color: white; border-radius: 9px 3px 9px 3px; font-weight: 900; font-size: 19px; transform: skew(-4deg); box-shadow: inset -5px -5px 12px rgba(91, 25, 0, .12); }
.brand-copy { font-size: 21px; letter-spacing: -.8px; color: var(--navy); }
.brand-copy strong { font-weight: 850; }
.brand-copy span { font-weight: 420; }
.button { min-height: 44px; padding: 0 20px; border: 1px solid transparent; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; gap: 12px; font-weight: 700; font-size: 14px; cursor: pointer; transition: .2s ease; }
.button:hover { transform: translateY(-1px); }
.button-primary { color: white; background: var(--orange); box-shadow: 0 10px 25px rgba(243, 107, 43, .22); }
.button-primary:hover { background: var(--orange-dark); }
.button-dark { background: var(--navy); color: white; }
.button-dark:hover { background: #1c2b43; }
.button-ghost { color: var(--navy); background: white; border-color: var(--line); }
.button-light { background: white; color: var(--navy); }
.eyebrow { display: inline-flex; align-items: center; gap: 9px; color: var(--orange-dark); font-weight: 800; text-transform: uppercase; letter-spacing: 1.2px; font-size: 11px; }
.eyebrow i { width: 6px; height: 6px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 5px var(--orange-soft); }
.eyebrow.light { color: #ffac7f; }
.icon-button { border: 0; background: transparent; cursor: pointer; padding: 8px; color: inherit; }
.progress { height: 6px; border-radius: 10px; overflow: hidden; background: #e8ecf0; }
.progress i { display: block; height: 100%; background: var(--orange); border-radius: inherit; }

/* Marketing */
.marketing-page { overflow: hidden; }
.marketing-header { height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 32px; position: relative; z-index: 4; }
.marketing-header nav { display: flex; align-items: center; gap: 34px; margin-left: auto; }
.marketing-header nav a, .text-button { color: #495365; font-size: 14px; font-weight: 650; }
.marketing-header nav a:hover, .text-button:hover { color: var(--orange); }
.marketing-actions { display: flex; align-items: center; gap: 22px; }
.marketing-menu { display: none; }
.hero { min-height: 655px; display: grid; grid-template-columns: minmax(0, .88fr) minmax(540px, 1.12fr); align-items: center; gap: 55px; padding-top: 48px; padding-bottom: 70px; }
.hero-copy { padding-left: max(0px, calc((100vw - 1500px) / 10)); position: relative; z-index: 2; }
.hero h1 { max-width: 700px; font-size: clamp(48px, 4.7vw, 77px); line-height: .99; letter-spacing: -4.4px; margin: 23px 0 25px; font-weight: 770; }
.hero h1 em { color: var(--orange); font-family: Georgia, serif; font-weight: 500; }
.hero-copy > p { max-width: 650px; color: var(--muted); font-size: 18px; line-height: 1.65; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.hero-actions .button { min-height: 52px; padding-inline: 25px; }
.hero-proof { display: flex; align-items: center; gap: 18px; margin-top: 38px; }
.avatar-stack { display: flex; }
.avatar-stack span { width: 35px; height: 35px; margin-left: -8px; border: 2px solid white; border-radius: 50%; display: grid; place-items: center; background: #dce5ea; font-weight: 800; font-size: 10px; color: #425466; }
.avatar-stack span:first-child { margin-left: 0; background: #c9d7cf; }
.avatar-stack span:nth-child(2) { background: #ead7c8; }
.avatar-stack span:nth-child(3) { background: #d2d6e7; }
.avatar-stack span:last-child { background: var(--navy); color: white; }
.hero-proof p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.hero-proof strong { color: var(--ink); font-size: 13px; }
.hero-visual { min-height: 540px; position: relative; display: flex; align-items: center; padding: 48px 0 42px 18px; }
.hero-visual:before { content: ""; position: absolute; inset: 0 -12vw 0 6%; background: var(--navy); border-radius: 90px 0 0 10px; transform: skewX(-5deg); }
.industrial-grid { position: absolute; inset: 0 -12vw 0 6%; opacity: .14; background-image: linear-gradient(rgba(255,255,255,.18) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.18) 1px, transparent 1px); background-size: 42px 42px; mask-image: linear-gradient(to right, transparent, black 30%); }
.mock-dashboard { position: relative; z-index: 1; width: min(690px, 100%); background: #f8fafb; border: 7px solid #17243a; border-radius: 14px; box-shadow: 0 35px 80px rgba(0,0,0,.37); overflow: hidden; transform: perspective(1200px) rotateY(-2deg); }
.mock-top { height: 34px; display: flex; gap: 5px; align-items: center; padding: 0 12px; background: white; border-bottom: 1px solid #e9edf1; }
.mock-top span { width: 7px; height: 7px; background: #d4d9df; border-radius: 50%; }
.mock-top b { margin-left: auto; font-size: 8px; color: var(--navy); }
.mock-body { min-height: 345px; display: grid; grid-template-columns: 70px 1fr; }
.mock-side { background: #0e1828; padding-top: 35px; display: flex; align-items: center; flex-direction: column; gap: 24px; }
.mock-side i { width: 20px; height: 5px; background: #4a5667; border-radius: 3px; }
.mock-content { padding: 45px 46px; }
.mock-content > small { color: var(--orange); font-size: 8px; font-weight: 800; letter-spacing: 1px; }
.mock-content h3 { font-size: 22px; margin: 8px 0 22px; }
.mock-course { background: white; border: 1px solid #edf0f3; box-shadow: 0 7px 20px rgba(19,31,49,.06); border-radius: 8px; padding: 12px; display: grid; grid-template-columns: 130px 1fr; gap: 18px; align-items: center; }
.mock-photo { height: 90px; border-radius: 5px; background: linear-gradient(135deg, #6e7d82, #1d2e34); position: relative; overflow: hidden; }
.mock-photo:after { content: ""; position: absolute; width: 70px; height: 130px; left: 30px; top: -15px; background: var(--orange); transform: rotate(28deg); opacity: .75; }
.mock-photo span { position: absolute; z-index: 1; color: white; font-size: 31px; font-weight: 900; right: 15px; bottom: 7px; }
.mock-course strong { font-size: 9px; color: var(--orange); }
.mock-course p { font-size: 13px; font-weight: 700; margin: 7px 0 15px; }
.mock-course small { display: block; color: var(--muted); font-size: 8px; margin-top: 7px; }
.mock-stats { margin-top: 23px; display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.mock-stats span { padding: 12px; background: white; border: 1px solid #edf0f3; border-radius: 5px; }
.mock-stats strong { display: block; font-size: 15px; }
.mock-stats small { color: var(--muted); font-size: 7px; }
.hero-badge, .hero-note { position: absolute; z-index: 2; display: flex; align-items: center; gap: 11px; background: white; padding: 13px 17px; border-radius: 9px; box-shadow: 0 18px 40px rgba(0,0,0,.22); }
.hero-badge { top: 58px; left: -18px; }
.hero-badge > span { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--green); font-weight: 900; }
.hero-note { right: 4px; bottom: 25px; }
.hero-note > span { color: white; background: var(--orange); width: 30px; height: 30px; border-radius: 7px; display: grid; place-items: center; }
.hero-badge strong, .hero-note strong { display: block; font-size: 11px; }
.hero-badge small, .hero-note small { display: block; margin-top: 3px; font-size: 8px; color: var(--muted); }
.trust-strip { border-block: 1px solid var(--line); background: #fbfcfd; }
.trust-strip > div { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 25px; }
.trust-strip span { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: 1px; }
.trust-strip b { font-size: 17px; color: #9aa3ae; letter-spacing: -.5px; }
.course-section { padding-block: 100px 110px; }
.section-heading, .section-title { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; }
.section-heading h2 { font-size: clamp(32px, 3vw, 48px); letter-spacing: -2.2px; margin: 14px 0 0; }
.section-heading > a, .section-title > a { color: var(--orange-dark); font-weight: 750; font-size: 13px; }
.course-grid { margin-top: 44px; display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.course-card { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: white; transition: .25s; }
.course-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.course-cover { height: 245px; position: relative; display: grid; place-items: center; overflow: hidden; }
.course-cover:before, .mini-cover:before { content: ""; position: absolute; width: 38%; height: 150%; background: rgba(243,107,43,.78); transform: rotate(26deg); }
.course-cover:after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px); background-size: 30px 30px; }
.course-cover b { font-size: 88px; color: rgba(255,255,255,.92); z-index: 1; letter-spacing: -6px; }
.cover-height { background: linear-gradient(135deg,#738085,#1b2b30); }
.cover-electric { background: linear-gradient(135deg,#343a45,#101825); }
.cover-electric:before, .cover-space:before { background: rgba(54,120,201,.7); }
.cover-space { background: linear-gradient(135deg,#72765d,#263129); }
.course-tag { position: absolute; z-index: 2; left: 17px; top: 17px; padding: 7px 10px; border-radius: 4px; background: rgba(11,18,32,.82); color: white; font-weight: 800; font-size: 9px; letter-spacing: .7px; text-transform: uppercase; }
.course-info { padding: 24px; }
.course-info > span { font-size: 9px; letter-spacing: 1px; color: var(--orange-dark); font-weight: 800; }
.course-info h3 { font-size: 20px; letter-spacing: -.5px; margin: 10px 0; }
.course-info p { min-height: 63px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.course-info > div { display: flex; gap: 18px; padding-block: 14px; border-top: 1px solid var(--line); color: var(--muted); }
.course-info > a { display: flex; justify-content: space-between; padding-top: 15px; font-size: 13px; font-weight: 800; }
.company-promo { background: var(--navy); color: white; position: relative; overflow: hidden; }
.company-promo:after { content: ""; position: absolute; width: 700px; height: 700px; right: -280px; top: -360px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 80px rgba(255,255,255,.025), 0 0 0 160px rgba(255,255,255,.018); }
.company-promo > div { min-height: 510px; display: grid; grid-template-columns: 1fr .78fr; gap: 100px; align-items: center; position: relative; z-index: 1; }
.company-promo h2 { font-size: clamp(38px,4vw,58px); letter-spacing: -2.8px; line-height: 1.05; margin: 16px 0 22px; }
.company-promo h2 em { font-family: Georgia,serif; font-weight: 400; color: #ff9a65; }
.company-promo p { color: #aeb8c6; line-height: 1.7; max-width: 610px; }
.company-promo .button { margin-top: 18px; }
.promo-metrics { background: #131f33; border: 1px solid #27344a; border-radius: 13px; padding: 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; box-shadow: 0 30px 60px rgba(0,0,0,.25); }
.promo-metrics span { background: #18263b; padding: 23px; border-radius: 8px; }
.promo-metrics span:first-child { grid-column: 1/-1; }
.promo-metrics small { display: block; color: #8190a4; font-size: 9px; letter-spacing: .8px; }
.promo-metrics strong { display: block; font-size: 33px; margin-top: 8px; }
.promo-metrics i { display: block; height: 5px; background: #2c3a4e; border-radius: 9px; margin-top: 15px; }
.promo-metrics i b { display: block; height: 100%; background: var(--green); border-radius: inherit; }
.promo-metrics .warning { color: #ff9a65; }
.steps { padding-block: 105px; }
.steps > h2 { font-size: 44px; letter-spacing: -2px; margin: 14px 0 50px; }
.steps > div { display: grid; grid-template-columns: repeat(4,1fr); }
.steps article { padding: 0 30px; border-left: 1px solid var(--line); }
.steps article:first-child { padding-left: 0; border-left: 0; }
.steps article b { color: var(--orange); font-size: 12px; }
.steps h3 { margin: 24px 0 10px; }
.steps p { color: var(--muted); font-size: 13px; line-height: 1.7; }
.marketing-footer { border-top: 1px solid var(--line); background: #fafbfc; padding-block: 35px; }
.marketing-footer > div { display: flex; align-items: center; gap: 30px; }
.marketing-footer p { color: var(--muted); font-size: 13px; }
.marketing-footer > div > span { margin-left: auto; color: #8b95a3; font-size: 11px; }

/* Portal shell */
.portal-body { background: #f4f6f8; }
.portal-shell { min-height: 100vh; display: grid; grid-template-columns: 260px minmax(0,1fr); }
.sidebar { position: fixed; z-index: 20; inset: 0 auto 0 0; width: 260px; background: var(--navy); color: #dfe5ee; padding: 25px 18px 18px; display: flex; flex-direction: column; }
.sidebar .brand { margin-left: 7px; }
.sidebar .brand-copy { color: white; }
.sidebar-top { display: flex; align-items: center; justify-content: space-between; }
.sidebar-close { display: none; font-size: 24px; }
.workspace-switcher { display: flex; align-items: center; gap: 10px; margin-top: 32px; padding: 12px; background: #152137; border: 1px solid #223049; border-radius: 9px; }
.workspace-avatar { width: 33px; height: 33px; border-radius: 7px; background: var(--orange); color: white; display: grid; place-items: center; font-size: 11px; font-weight: 850; }
.workspace-switcher > span:nth-child(2) { min-width: 0; flex: 1; }
.workspace-switcher small, .workspace-switcher strong { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.workspace-switcher small { color: #8591a3; font-size: 8px; text-transform: uppercase; letter-spacing: .7px; }
.workspace-switcher strong { font-size: 11px; margin-top: 3px; }
.workspace-chevron { color: #77859a; }
.side-nav { display: flex; flex-direction: column; gap: 4px; margin-top: 26px; }
.nav-label { color: #637188; font-size: 8px; letter-spacing: 1.2px; font-weight: 850; padding: 16px 13px 7px; }
.side-nav a { min-height: 43px; padding: 0 13px; display: flex; align-items: center; gap: 11px; color: #99a6b9; font-size: 12px; border-radius: 7px; font-weight: 620; }
.side-nav a:hover { background: #121f34; color: white; }
.side-nav a.active { color: white; background: #1b2a42; box-shadow: inset 3px 0 var(--orange); }
.side-nav a.active .icon { color: var(--orange); }
.nav-count { margin-left: auto; min-width: 21px; height: 20px; padding-inline: 6px; border-radius: 10px; display: grid; place-items: center; background: #26344a; font-size: 8px; }
.sidebar-support { margin-top: auto; padding: 13px 8px; border-block: 1px solid #202d42; display: flex; align-items: center; gap: 10px; font-size: 10px; }
.support-icon { width: 28px; height: 28px; display: grid; place-items: center; background: #1c2b41; border-radius: 50%; color: var(--orange); font-weight: 900; }
.sidebar-support div { flex: 1; }
.sidebar-support strong, .sidebar-support small { display: block; }
.sidebar-support small { color: #748096; font-size: 8px; margin-top: 3px; }
.sidebar-user { display: flex; align-items: center; gap: 9px; padding: 16px 6px 2px; }
.sidebar-user > span:nth-child(2) { flex: 1; min-width: 0; }
.sidebar-user strong, .sidebar-user small { display: block; overflow: hidden; text-overflow: ellipsis; }
.sidebar-user strong { font-size: 10px; }
.sidebar-user small { color: #69778b; font-size: 8px; margin-top: 3px; }
.sidebar-user form { margin: 0; }
.sidebar-logout { border: 0; background: transparent; color: #7d899c; cursor: pointer; padding: 5px; font-size: 16px; }
.sidebar-logout:hover { color: white; }
.user-avatar, .header-avatar { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 50%; background: #e0d1c4; color: #5c4030; font-size: 9px; font-weight: 850; }
.portal-main { grid-column: 2; min-width: 0; }
.portal-header { height: 72px; padding: 0 clamp(25px,3.5vw,62px); background: white; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; }
.header-search { width: min(390px, 42vw); color: #98a2b0; display: flex; align-items: center; gap: 8px; }
.header-search input { width: 100%; border: 0; outline: 0; color: var(--ink); font-size: 12px; }
.header-actions { display: flex; align-items: center; gap: 14px; }
.notification-button { position: relative; }
.notification-button i { position: absolute; right: 6px; top: 6px; width: 6px; height: 6px; background: var(--orange); border: 2px solid white; border-radius: 50%; }
.header-divider { width: 1px; height: 23px; background: var(--line); }
.mobile-menu { display: none; }
.portal-content { width: min(1550px, 100%); margin: 0 auto; padding: 42px clamp(25px,3.5vw,62px) 70px; }
.page-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.page-kicker, .meta-label { color: var(--orange-dark); font-size: 9px; letter-spacing: 1.2px; font-weight: 850; }
.page-intro h1, .classroom-heading h1 { margin: 8px 0 5px; font-size: clamp(29px,2.5vw,39px); letter-spacing: -1.5px; }
.page-intro p, .classroom-heading p { color: var(--muted); font-size: 13px; margin: 0; }
.continue-card { margin-top: 30px; display: grid; grid-template-columns: minmax(260px, .75fr) minmax(380px,1.05fr) 220px; min-height: 265px; background: white; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; box-shadow: 0 10px 30px rgba(23,34,50,.045); }
.continue-cover { height: auto; min-height: 265px; }
.continue-cover b { font-size: 80px; }
.continue-cover button { width: 50px; height: 50px; border: 3px solid rgba(255,255,255,.65); border-radius: 50%; background: white; color: var(--orange); position: absolute; z-index: 3; box-shadow: 0 10px 30px rgba(0,0,0,.2); cursor: pointer; }
.continue-info { padding: 34px 38px; }
.continue-info > div:first-child { display: flex; justify-content: space-between; align-items: center; }
.time-chip { font-size: 9px; color: var(--muted); background: var(--soft); padding: 7px 9px; border-radius: 5px; }
.continue-info h2 { margin: 17px 0 7px; font-size: 23px; }
.continue-info > p { color: var(--muted); font-size: 11px; }
.progress-row { display: flex; align-items: center; gap: 12px; margin: 25px 0 20px; }
.progress-row .progress { flex: 1; }
.progress-row strong { font-size: 10px; }
.continue-actions { display: flex; gap: 9px; }
.bookmark-button { width: 44px; border: 1px solid var(--line); background: white; border-radius: 7px; cursor: pointer; }
.continue-next { padding: 36px 25px; border-left: 1px solid var(--line); background: #fbfcfd; display: flex; flex-direction: column; position: relative; }
.continue-next span { color: var(--muted); font-size: 8px; letter-spacing: 1px; }
.continue-next strong { margin-top: 18px; font-size: 13px; }
.continue-next small { margin-top: 6px; color: var(--muted); font-size: 9px; }
.continue-next i { margin-top: auto; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--orange-soft); color: var(--orange); font-style: normal; font-weight: 850; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(330px,.65fr); gap: 27px; margin-top: 43px; }
.section-title { align-items: flex-start; }
.section-title h2 { margin: 0 0 6px; font-size: 18px; letter-spacing: -.4px; }
.section-title p { margin: 0; color: var(--muted); font-size: 10px; }
.compact-course-list { margin-top: 17px; display: grid; gap: 10px; }
.compact-course-list article { display: grid; grid-template-columns: 115px minmax(0,1fr) 20px; align-items: center; gap: 20px; background: white; border: 1px solid var(--line); border-radius: 9px; padding: 10px 18px 10px 10px; }
.mini-cover { height: 77px; position: relative; overflow: hidden; display: grid; place-items: center; border-radius: 6px; color: white; font-weight: 850; font-size: 27px; }
.compact-course-list article > div:nth-child(2) > span { color: var(--orange-dark); font-size: 7px; font-weight: 850; letter-spacing: .7px; }
.compact-course-list h3 { font-size: 13px; margin: 5px 0 10px; }
.compact-course-list .progress { width: min(320px,90%); height: 4px; display: inline-block; vertical-align: middle; }
.compact-course-list small { margin-left: 7px; color: var(--muted); font-size: 8px; }
.schedule-card { margin-top: 17px; padding: 18px; display: grid; grid-template-columns: 55px 1fr; gap: 16px; background: white; border: 1px solid var(--line); border-radius: 9px; }
.date-block { height: 60px; border-radius: 7px; background: var(--navy); color: white; display: grid; place-items: center; align-content: center; }
.date-block strong { font-size: 20px; }
.date-block span { font-size: 8px; color: #8f9bae; }
.status-dot { font-size: 7px; letter-spacing: .7px; font-weight: 850; }
.status-dot:before { content:""; display:inline-block; width:5px; height:5px; border-radius:50%; background: currentColor; margin-right:5px; }
.orange { color: var(--orange-dark); }
.schedule-card h3 { font-size: 11px; margin: 7px 0 5px; }
.schedule-card p, .schedule-card a { font-size: 8px; color: var(--muted); }
.schedule-card a { display: inline-block; margin-top: 11px; color: var(--orange-dark); font-weight: 750; }
.certificate-callout { margin-top: 11px; padding: 15px 18px; background: #eaf5ef; border: 1px solid #d5eadf; border-radius: 9px; display: flex; align-items: center; gap: 13px; }
.certificate-callout > span { width: 32px; height: 32px; display: grid; place-items: center; color: var(--green); border: 1px solid #bcdcca; border-radius: 50%; }
.certificate-callout div { flex: 1; }
.certificate-callout small { color: var(--green); font-size: 7px; font-weight: 850; letter-spacing: .7px; }
.certificate-callout h3 { font-size: 10px; margin: 4px 0; }
.certificate-callout p { font-size: 8px; color: var(--muted); margin: 0; }
.certificate-callout button { border: 0; background: transparent; color: var(--green); cursor: pointer; }
.notes-preview { margin-top: 44px; }
.empty-learning-state { margin-top: 30px; min-height: 260px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: white; border: 1px dashed #d7dde4; border-radius: 12px; }
.empty-learning-state > span { font-size: 31px; color: var(--orange); }
.empty-learning-state h2 { margin: 13px 0 4px; font-size: 18px; }
.empty-learning-state p { color: var(--muted); font-size: 11px; margin-bottom: 18px; }
.note-grid { margin-top: 17px; display: grid; grid-template-columns: 1fr 1fr .65fr; gap: 12px; }
.note-grid article, .new-note { min-height: 135px; padding: 20px; border: 1px solid var(--line); background: white; border-radius: 9px; }
.note-course { font-size: 8px; font-weight: 850; color: var(--orange-dark); background: var(--orange-soft); border-radius: 3px; padding: 5px 7px; }
.note-course.blue { color: var(--blue); background: #edf4fc; }
.note-grid p { font-family: Georgia,serif; font-size: 13px; line-height: 1.55; margin: 15px 0; }
.note-grid small { color: var(--muted); font-size: 8px; }
.new-note { border-style: dashed; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--muted); }
.new-note span { font-size: 22px; color: var(--orange); }
.new-note strong { color: var(--ink); font-size: 11px; margin-top: 6px; }
.new-note small { margin-top: 4px; }

/* Classroom */
.classroom-heading { display: flex; justify-content: space-between; align-items: center; }
.course-progress-ring { width: 67px; height: 67px; border-radius: 50%; background: conic-gradient(var(--orange) 68%, #e6eaee 0); position: relative; display: grid; place-items: center; align-content: center; }
.course-progress-ring:before { content:""; position:absolute; inset:6px; border-radius:50%; background:#f4f6f8; }
.course-progress-ring span, .course-progress-ring small { position: relative; }
.course-progress-ring span { font-size: 14px; font-weight: 850; }
.course-progress-ring small { font-size: 6px; color: var(--muted); }
.classroom-grid { margin-top: 25px; display: grid; grid-template-columns: minmax(0,1fr) 350px; gap: 22px; align-items: start; }
.lesson-area { background: white; border: 1px solid var(--line); border-radius: 11px; overflow: hidden; }
.video-stage { aspect-ratio: 16/8.4; min-height: 360px; background: linear-gradient(145deg,#172329,#263a3e); position: relative; overflow: hidden; display: grid; place-items: center; color: white; }
.video-pattern { position:absolute; inset:0; opacity:.14; background-image: linear-gradient(120deg, transparent 30%, rgba(243,107,43,.9) 31%, rgba(243,107,43,.9) 42%, transparent 43%), linear-gradient(rgba(255,255,255,.1) 1px, transparent 1px), linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px); background-size:100% 100%,38px 38px,38px 38px; }
.video-nr { position:absolute; right:7%; top:8%; font-size:120px; font-weight:200; color:rgba(255,255,255,.08); }
.video-nr strong { font-weight:900; }
.video-play { position: relative; width: 70px; height: 70px; border: 0; border-radius: 50%; background: var(--orange); color: white; box-shadow: 0 0 0 10px rgba(243,107,43,.2); cursor: pointer; font-size: 20px; padding-left: 6px; }
.video-controls { position:absolute; left:0; right:0; bottom:0; padding:38px 22px 16px; display:flex; align-items:center; gap:14px; background:linear-gradient(transparent,rgba(0,0,0,.75)); font-size:10px; }
.video-controls div { flex:1; height:3px; background:rgba(255,255,255,.3); }
.video-controls div i { display:block; height:100%; background:var(--orange); }
.lesson-toolbar { min-height: 62px; padding: 9px 20px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; }
.lesson-toolbar > div { display:flex; gap:5px; }
.lesson-toolbar > div button { border:0; background:transparent; padding:12px; color:var(--muted); font-size:10px; cursor:pointer; }
.lesson-toolbar > div button.active { color:var(--ink); font-weight:750; border-bottom:2px solid var(--orange); }
.lesson-toolbar button span { background:var(--soft); padding:2px 5px; border-radius:5px; }
.lesson-copy { padding:25px 30px 32px; }
.lesson-copy h2 { font-size:18px; margin:0 0 12px; }
.lesson-copy h3 { font-size:13px; margin-top:24px; }
.lesson-copy p, .lesson-copy li { color:var(--muted); font-size:11px; line-height:1.75; }
.lesson-copy ul { padding-left:20px; }
.notes-panel { background:white; border:1px solid var(--line); border-radius:11px; overflow:hidden; box-shadow:0 10px 30px rgba(20,30,43,.04); }
.notes-panel-head { padding:18px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; }
.notes-panel-head > div { display:flex; gap:10px; align-items:center; }
.notes-panel-head > div > span { width:31px; height:31px; display:grid; place-items:center; border-radius:7px; color:var(--orange); background:var(--orange-soft); }
.notes-panel-head h2 { font-size:13px; margin:0; }
.notes-panel-head p { color:var(--muted); font-size:8px; margin:3px 0 0; }
.notes-panel-head button { border:0; background:transparent; color:#9aa3ae; cursor:pointer; }
.note-composer { margin:15px; border:1px solid #dce1e7; border-radius:7px; overflow:hidden; background:#fcfdfe; }
.note-composer:focus-within { border-color:#f4a37b; box-shadow:0 0 0 3px var(--orange-soft); }
.note-composer textarea { width:100%; height:90px; resize:vertical; border:0; outline:0; padding:12px; background:transparent; font-size:10px; line-height:1.55; }
.note-composer > div { padding:8px; border-top:1px solid var(--line); display:flex; align-items:center; gap:8px; }
.note-composer button { border:0; background:transparent; font-size:8px; cursor:pointer; color:var(--muted); }
.note-composer > div > span { margin-left:auto; color:#9aa3ae; font-size:7px; }
.note-composer .save-note { background:var(--navy); color:white; padding:7px 10px; border-radius:4px; font-weight:750; }
.note-list { max-height:340px; overflow:auto; padding:0 15px; }
.note-list article { padding:15px 2px; border-bottom:1px solid var(--line); }
.note-list article > div { display:flex; justify-content:space-between; align-items:center; }
.note-list button { opacity:0; border:0; background:transparent; cursor:pointer; color:#a5adb8; }
.note-list article:hover button { opacity:1; }
.note-time { color:var(--orange-dark); background:var(--orange-soft); border-radius:3px; padding:4px 6px; font-size:7px; font-weight:800; }
.note-list p { margin:10px 0; font-family:Georgia,serif; font-size:11px; line-height:1.55; }
.note-list small { color:var(--muted); font-size:7px; }
.notes-empty { display:none; padding:45px 25px; text-align:center; color:var(--muted); }
.notes-empty span { font-size:25px; color:var(--orange); }
.notes-empty strong { display:block; color:var(--ink); margin-top:7px; font-size:11px; }
.notes-empty p { font-size:8px; }
.export-notes { width:100%; min-height:46px; border:0; border-top:1px solid var(--line); background:#fafbfc; color:var(--muted); cursor:pointer; font-size:9px; font-weight:700; }
.lesson-navigation { margin-top:18px; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.lesson-navigation a { min-height:70px; padding:15px 20px; border:1px solid var(--line); border-radius:8px; background:white; display:flex; align-items:center; gap:15px; }
.lesson-navigation a:last-child { text-align:right; justify-content:flex-end; }
.lesson-navigation small, .lesson-navigation strong { display:block; }
.lesson-navigation small { color:var(--muted); font-size:7px; letter-spacing:.7px; }
.lesson-navigation strong { font-size:10px; margin-top:4px; }

/* Company */
.company-intro > div:last-child { display:flex; gap:9px; }
.metric-grid { margin-top:30px; display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.metric-grid article { min-height:165px; padding:21px; background:white; border:1px solid var(--line); border-radius:9px; }
.metric-grid article > div:first-child { display:flex; justify-content:space-between; align-items:center; }
.metric-grid article span { color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.7px; }
.metric-grid article b { color:#98a1ad; font-size:8px; font-weight:650; }
.positive { color:var(--green)!important; }
.warning-text { color:#c56d19!important; }
.danger-text { color:#cb3f3f!important; }
.metric-grid article > strong { display:block; font-size:34px; margin:18px 0 5px; letter-spacing:-1px; }
.metric-grid article p { color:var(--muted); font-size:9px; }
.metric-grid article .progress { margin-top:15px; height:5px; }
.metric-grid article a { display:inline-block; color:var(--orange-dark); font-size:9px; font-weight:750; margin-top:10px; }
.avatar-stack.small { margin-top:13px; }
.avatar-stack.small span { width:26px; height:26px; font-size:7px; }
.company-dashboard-grid { margin-top:28px; display:grid; grid-template-columns:minmax(0,1.5fr) minmax(300px,.5fr); gap:14px; align-items:start; }
.compliance-panel, .attention-panel, .activity-section { background:white; border:1px solid var(--line); border-radius:9px; }
.compliance-panel > .section-title, .attention-panel > .section-title, .activity-section > .section-title { padding:21px; border-bottom:1px solid var(--line); }
.filter-button { border:1px solid var(--line); background:white; border-radius:5px; color:var(--muted); padding:8px 10px; font-size:8px; }
.compliance-table > div { display:grid; grid-template-columns:minmax(260px,1.5fr) 80px 80px minmax(100px,.65fr) 20px; gap:10px; align-items:center; min-height:70px; padding:10px 20px; border-bottom:1px solid #edf0f3; font-size:10px; }
.compliance-table .table-head { min-height:36px; color:#929ca9; font-size:7px; letter-spacing:.7px; background:#fafbfc; }
.compliance-table div > span:first-child { display:flex; align-items:center; gap:10px; }
.nr-icon { min-width:34px; height:34px; border-radius:6px; display:grid; place-items:center; font-style:normal; font-weight:850; }
.orange-bg { background:var(--orange-soft)!important; color:var(--orange-dark)!important; }
.blue-bg { background:#edf4fc!important; color:var(--blue)!important; }
.green-bg { background:#eaf5ef!important; color:var(--green)!important; }
.purple-bg { background:#f1edfa!important; color:var(--purple)!important; }
.danger-bg { background:#fff0f0!important; color:#cc3f3f!important; }
.compliance-table b small { display:block; color:var(--muted); font-size:7px; margin-top:4px; font-weight:400; }
.compliance-table div > span:nth-child(4) { display:flex; align-items:center; gap:7px; }
.compliance-table div > span:nth-child(4) strong { font-size:8px; }
.compliance-table div > span:nth-child(4) i { flex:1; height:4px; background:#e9edf0; border-radius:5px; overflow:hidden; }
.compliance-table div > span:nth-child(4) i b { display:block; height:100%; background:var(--green); }
.panel-footer-link { min-height:47px; padding:0 21px; display:flex; align-items:center; color:var(--orange-dark); font-size:9px; font-weight:750; }
.attention-panel article { margin:0 18px; padding:18px 0; border-bottom:1px solid var(--line); display:flex; gap:12px; }
.attention-icon { min-width:31px; height:31px; display:grid; place-items:center; border-radius:6px; font-size:11px; font-weight:850; }
.attention-panel article strong { font-size:10px; }
.attention-panel article p { color:var(--muted); font-size:8px; line-height:1.55; }
.attention-panel article a { color:var(--orange-dark); font-size:8px; font-weight:750; }
.attention-panel .panel-footer-link { justify-content:center; }
.activity-section { margin-top:14px; }
.activity-list > div { min-height:60px; padding:10px 21px; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:12px; }
.activity-list > div:last-child { border-bottom:0; }
.activity-avatar { min-width:31px; height:31px; display:grid; place-items:center; border-radius:50%; background:#e8edf1; color:#596574; font-size:8px; font-weight:850; }
.activity-list p { flex:1; margin:0; font-size:9px; }
.activity-list p small { display:block; color:var(--muted); font-size:7px; margin-top:4px; }
.status-pill { padding:6px 8px; border-radius:12px; background:#f0f2f5; color:#687386; font-size:7px; }
.status-pill.success { background:#eaf5ef; color:var(--green); }
.sidebar-overlay { display:none; }

/* Authentication */
.auth-page { min-height: 100vh; display: grid; grid-template-columns: minmax(430px, .88fr) minmax(520px, 1.12fr); background: white; }
.auth-showcase { position: relative; overflow: hidden; padding: 42px clamp(35px, 5vw, 82px); background: var(--navy); color: white; display: flex; flex-direction: column; }
.auth-showcase:before { content: ""; position: absolute; width: 650px; height: 650px; left: -380px; bottom: -390px; border-radius: 50%; border: 1px solid rgba(255,255,255,.1); box-shadow: 0 0 0 85px rgba(255,255,255,.018), 0 0 0 170px rgba(255,255,255,.012); }
.auth-showcase-grid { position: absolute; inset: 0; opacity: .09; background-image: linear-gradient(rgba(255,255,255,.2) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.2) 1px, transparent 1px); background-size: 45px 45px; mask-image: linear-gradient(140deg, transparent 5%, black 70%); }
.auth-showcase .brand { position: relative; }
.auth-showcase .brand-copy { color: white; }
.auth-message { position: relative; margin: auto 0; max-width: 590px; }
.auth-message h1 { margin: 21px 0; font-size: clamp(43px, 4.3vw, 68px); line-height: 1.02; letter-spacing: -3.5px; }
.auth-message h1 em { color: #ff9b67; font-family: Georgia, serif; font-weight: 400; }
.auth-message > p { max-width: 520px; color: #9eabba; font-size: 16px; line-height: 1.7; }
.auth-proof { margin-top: 40px; padding: 16px; max-width: 400px; display: flex; align-items: center; gap: 13px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.1); border-radius: 9px; }
.auth-proof > span { min-width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--green); }
.auth-proof strong, .auth-proof small { display: block; }
.auth-proof strong { font-size: 11px; }
.auth-proof small { margin-top: 4px; color: #8391a4; font-size: 8px; }
.auth-showcase > small { position: relative; color: #637087; font-size: 9px; }
.auth-form-side { display: grid; place-items: center; padding: 45px; }
.auth-form-wrap { width: min(430px, 100%); }
.auth-mobile-brand { display: none; margin-bottom: 50px; }
.auth-form-wrap h2 { margin: 9px 0 7px; font-size: 36px; letter-spacing: -1.5px; }
.auth-form-wrap > p { color: var(--muted); font-size: 12px; }
.auth-form { display: grid; gap: 18px; margin-top: 35px; }
.auth-form > label { display: grid; gap: 8px; color: #344054; font-size: 10px; font-weight: 750; }
.auth-form input[type="email"], .password-field { width: 100%; height: 49px; border: 1px solid #d8dee6; border-radius: 7px; background: #fcfdfe; outline: 0; }
.auth-form input[type="email"] { padding: 0 14px; }
.auth-form input:focus, .password-field:focus-within { border-color: #f1996f; box-shadow: 0 0 0 3px var(--orange-soft); }
.password-field { display: flex; align-items: center; overflow: hidden; }
.password-field input { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: transparent; padding: 0 14px; }
.password-field button { width: 45px; height: 100%; border: 0; background: transparent; color: #8994a3; cursor: pointer; }
.form-error { padding: 10px 12px; border-radius: 6px; background: #fff0f0; color: #b83232; font-size: 10px; }
.form-success, .portal-flash { margin-top: 22px; padding: 12px 14px; border: 1px solid #cce5d8; border-radius: 7px; background: #eaf6ef; color: var(--green); font-size: 10px; font-weight: 700; }
.password-hint { margin: -5px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.back-login { display: inline-block; margin-top: 25px; color: var(--orange-dark); font-size: 10px; font-weight: 750; }
.change-password-logout { margin-top: 18px; text-align: center; }
.change-password-logout button { border: 0; background: transparent; color: var(--muted); font-size: 9px; cursor: pointer; }
.auth-form-options { display: flex; align-items: center; justify-content: space-between; font-size: 9px; color: var(--muted); }
.auth-form-options label { display: flex; align-items: center; gap: 6px; }
.auth-form-options input { accent-color: var(--orange); }
.auth-form-options a { color: var(--orange-dark); font-weight: 750; }
.auth-submit { width: 100%; min-height: 51px; }
.auth-help { margin-top: 32px; padding-top: 22px; border-top: 1px solid var(--line); display: flex; gap: 11px; align-items: flex-start; }
.auth-help > span { min-width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; background: var(--soft); color: var(--orange); font-size: 10px; font-weight: 850; }
.auth-help p { color: var(--muted); font-size: 9px; line-height: 1.55; margin: 0; }
.auth-help strong { color: var(--ink); }

/* Administration */
.admin-metrics { margin-bottom: 18px; }
.admin-panel { margin-top: 26px; overflow: hidden; background: white; border: 1px solid var(--line); border-radius: 10px; }
.admin-panel > .section-title { padding: 22px; border-bottom: 1px solid var(--line); }
.admin-table { overflow-x: auto; }
.admin-table > div { min-height: 68px; padding: 12px 22px; display: grid; grid-template-columns: 1.15fr 1.1fr 1fr .55fr .4fr; gap: 18px; align-items: center; border-bottom: 1px solid #edf0f3; font-size: 10px; }
.admin-table > div:last-child { border-bottom: 0; }
.admin-table .admin-table-head { min-height: 38px; color: #929ba8; background: #fafbfc; font-size: 7px; font-weight: 800; letter-spacing: .8px; }
.admin-table strong, .admin-table small { display: block; }
.admin-table small { margin-top: 4px; color: var(--muted); font-size: 8px; }
.admin-table .admin-empty, .admin-empty { display: block; padding: 40px; color: var(--muted); text-align: center; font-size: 10px; }
.admin-list-toolbar { min-height: 65px; padding: 12px 21px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.admin-list-toolbar > span { color: var(--muted); font-size: 9px; }
.admin-list-toolbar select { min-height: 36px; padding: 0 32px 0 10px; border: 1px solid var(--line); border-radius: 6px; background: white; color: var(--muted); font-size: 9px; }
.admin-search { width: 320px; height: 38px; padding: 0 11px; border: 1px solid var(--line); border-radius: 6px; }
.organization-table > div { grid-template-columns: 1.5fr .75fr .45fr .5fr .35fr; }
.course-admin-table > div { min-width: 1050px; grid-template-columns: 1.7fr .7fr .45fr .55fr .5fr .55fr .35fr; }
.enrollment-table > div { min-width: 980px; grid-template-columns: 1.15fr .9fr .8fr 1.6fr; }
.admin-course-name { display: flex; align-items: center; gap: 11px; }
.admin-course-name .nr-icon { min-width: 36px; }
.table-action { border: 0; background: transparent; color: var(--orange-dark); font-size: 9px; font-weight: 800; cursor: pointer; white-space: nowrap; }
.danger-link { border: 0; background: transparent; color: #c84141; font-size: 8px; cursor: pointer; }
.admin-pagination { min-height: 54px; padding: 0 21px; display: flex; align-items: center; justify-content: space-between; background: #fafbfc; color: var(--muted); font-size: 9px; }
.admin-pagination div { display: flex; gap: 18px; }
.admin-pagination a { color: var(--orange-dark); font-weight: 750; }
.admin-pagination div span { color: #b4bac2; }
.admin-breadcrumb { margin-bottom: 20px; }
.admin-breadcrumb a { color: var(--muted); font-size: 10px; font-weight: 700; }
.admin-form { margin-top: 28px; }
.form-card { margin-top: 15px; padding: 26px; background: white; border: 1px solid var(--line); border-radius: 10px; }
.form-card-title { display: flex; align-items: flex-start; gap: 13px; padding-bottom: 21px; border-bottom: 1px solid var(--line); }
.form-card-title > span { min-width: 31px; height: 31px; display: grid; place-items: center; border-radius: 7px; color: var(--orange-dark); background: var(--orange-soft); font-size: 9px; font-weight: 850; }
.form-card-title h2 { margin: 0; font-size: 15px; }
.form-card-title p { margin: 5px 0 0; color: var(--muted); font-size: 9px; }
.form-grid { margin-top: 23px; display: grid; grid-template-columns: 1fr 1fr; gap: 19px; }
.form-grid label, .inline-create-form label { display: grid; gap: 7px; color: #394456; font-size: 9px; font-weight: 750; }
.form-grid input, .form-grid select, .form-grid textarea, .inline-create-form input, .lesson-admin-row input, .enrollment-inline input, .enrollment-inline select { width: 100%; min-height: 43px; padding: 9px 11px; border: 1px solid #dbe0e6; border-radius: 6px; outline: 0; background: #fcfdfe; color: var(--ink); font-size: 10px; }
.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus, .inline-create-form input:focus { border-color: #f0a37c; box-shadow: 0 0 0 3px var(--orange-soft); }
.form-grid textarea { resize: vertical; }
.form-grid .span-2 { grid-column: 1 / -1; }
.form-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.form-grid-3 .span-2 { grid-column: span 2; }
.form-grid-3 .span-3 { grid-column: 1 / -1; }
.premium-form .form-card { padding:30px; }
.premium-form .form-card + .form-card { margin-top:18px; }
.premium-form .form-card-title { padding-bottom:23px; }
.check-label { display: flex!important; align-items: center; gap: 11px!important; min-height: 43px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 6px; }
.check-label input { width: auto; min-height: 0; accent-color: var(--orange); }
.check-label strong, .check-label small { display: block; }
.check-label small { margin-top: 3px; color: var(--muted); font-size: 7px; font-weight: 400; }
.form-wide { margin-top: 18px; }
.form-actions { padding-top: 18px; display: flex; justify-content: flex-end; gap: 9px; }
.lesson-builder { margin-top: 28px; }
.lesson-admin-list { margin-top: 20px; }
.lesson-module { margin-bottom: 16px; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.lesson-module > div:first-child { padding: 13px 16px; background: #f7f9fa; }
.lesson-module > div:first-child span, .lesson-module > div:first-child strong { display: block; }
.lesson-module > div:first-child span { color: var(--orange-dark); font-size: 7px; font-weight: 850; letter-spacing: .7px; }
.lesson-module > div:first-child strong { margin-top: 4px; font-size: 11px; }
.lesson-admin-row { padding: 10px 14px; display: grid; grid-template-columns: 28px 1fr 90px 48px 48px; gap: 8px; align-items: center; border-top: 1px solid var(--line); }
.lesson-position { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: var(--soft); color: var(--muted); font-size: 8px; }
.lesson-admin-row input { min-height: 34px; padding-block: 5px; }
.inline-create-form { margin-top: 18px; padding-top: 18px; border-top: 1px dashed #d9dee4; display: grid; grid-template-columns: 1fr 1fr 120px auto; gap: 10px; align-items: end; }
.enrollment-inline { display: grid; grid-template-columns: 1fr 65px 120px 45px; gap: 6px; align-items: center; }
.enrollment-inline input, .enrollment-inline select { min-height: 34px; padding: 4px 7px; }

/* People, invitations and imports */
.intro-actions { display:flex; gap:10px; align-items:center; }
.invitation-link-box { margin-top:16px; padding:14px 16px; display:grid; grid-template-columns:minmax(190px,.55fr) 1fr; gap:18px; align-items:center; border:1px solid #f3c9b4; border-radius:9px; background:#fff8f4; }
.invitation-link-box strong, .invitation-link-box small { display:block; }
.invitation-link-box small { margin-top:4px; color:var(--muted); font-size:8px; }
.invitation-link-box input { width:100%; min-height:38px; padding:8px 10px; border:1px solid #e8c1ad; border-radius:6px; background:white; color:#526071; font-size:9px; }
.admin-kpi-grid { margin-top:22px; display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.admin-kpi-grid article { min-height:125px; padding:20px; border:1px solid var(--line); border-radius:10px; background:white; }
.admin-kpi-grid article > span { color:#8c97a5; font-size:7px; font-weight:850; letter-spacing:.8px; }
.admin-kpi-grid article > strong { display:block; margin:13px 0 8px; font-size:27px; letter-spacing:-1px; }
.admin-kpi-grid article > small { color:var(--muted); font-size:8px; }
.people-filters { display:flex; gap:8px; align-items:center; }
.people-table > div { min-width:940px; grid-template-columns:1.25fr .55fr 1.15fr .45fr .35fr; }
.admin-split-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.compact-panel { margin-top:18px; }
.panel-heading { min-height:72px; padding:17px 20px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }
.panel-heading span { color:var(--orange-dark); font-size:7px; font-weight:850; letter-spacing:.8px; }
.panel-heading h2 { margin:5px 0 0; font-size:15px; }
.panel-heading > a { color:var(--orange-dark); font-size:9px; font-weight:750; }
.compact-list-row { min-height:69px; padding:12px 20px; display:flex; align-items:center; justify-content:space-between; gap:14px; border-bottom:1px solid var(--line); }
.compact-list-row:last-child { border-bottom:0; }
.compact-list-row strong, .compact-list-row small { display:block; }
.compact-list-row strong { font-size:10px; }
.compact-list-row small { margin-top:4px; color:var(--muted); font-size:8px; }
.row-actions { display:flex; gap:6px; align-items:center; }
.row-actions form { margin:0; }
.row-actions button { border:0; background:transparent; color:var(--orange-dark); font-size:8px; font-weight:750; cursor:pointer; }
.row-actions .danger-link { color:#c84141; }
.linked-organizations { padding:15px; border:1px dashed #d9dfe6; border-radius:7px; background:#fafbfc; }
.linked-organizations span { color:#8d97a4; font-size:7px; font-weight:850; letter-spacing:.8px; }
.linked-organizations p { margin:7px 0 0; color:#4d5968; font-size:9px; }
.one-column { grid-template-columns:1fr; }
.import-layout { align-items:start; }
.import-layout .admin-form, .import-layout .admin-panel { margin-top:18px; }
.upload-field input { padding:11px; background:#fff; }
.upload-field small { color:var(--muted); font-size:8px; font-weight:400; }
.csv-columns { margin-top:20px; padding:16px; display:grid; gap:8px; border:1px dashed #d8dee5; border-radius:7px; background:#fafbfc; }
.csv-columns span { color:var(--orange-dark); font-size:7px; font-weight:850; letter-spacing:.8px; }
.csv-columns code { color:#384455; font-size:11px; }
.csv-columns small { color:var(--muted); font-size:8px; }
.import-history-row { padding:16px 20px; display:grid; grid-template-columns:1fr auto; gap:12px; border-bottom:1px solid var(--line); }
.import-history-row strong, .import-history-row small { display:block; }
.import-history-row small { margin-top:4px; color:var(--muted); font-size:8px; }
.import-history-row details { grid-column:1/-1; color:#687484; font-size:8px; }
.import-history-row li { margin-top:5px; }
.import-numbers { display:flex; gap:15px; }
.import-numbers span { min-width:48px; text-align:right; }
.import-numbers strong { font-size:15px; }
.invitation-summary { margin:24px 0 2px; padding:15px; display:grid; gap:12px; border:1px solid var(--line); border-radius:8px; background:#fafbfc; }
.invitation-summary span { display:grid; gap:4px; }
.invitation-summary small { color:#919aa7; font-size:7px; font-weight:850; letter-spacing:.7px; }
.invitation-summary strong { color:#374252; font-size:10px; overflow-wrap:anywhere; }
.auth-info-box { padding:13px; border:1px solid #cfe2d8; border-radius:7px; background:#edf7f1; color:#306d50; font-size:9px; line-height:1.55; }
.auth-checkbox { display:flex!important; grid-template-columns:none!important; align-items:flex-start; gap:9px!important; color:#667281!important; font-size:9px!important; font-weight:500!important; line-height:1.5; }
.auth-checkbox input { margin-top:2px; accent-color:var(--orange); }

/* Assessments and approval engine */
.assessment-admin-table > div { min-width:1050px; grid-template-columns:1.35fr 1.15fr .55fr .45fr .55fr .45fr; }
.assessment-admin-table .status-dot { display:inline-block; margin-right:6px; }
.question-bank-select { margin-top:20px; border:1px solid var(--line); border-radius:9px; overflow:hidden; }
.question-select-row { min-height:78px; padding:14px 16px; display:grid; grid-template-columns:20px 80px 1fr 75px 45px; gap:12px; align-items:center; border-bottom:1px solid var(--line); background:#fff; }
.question-select-row:last-child { border-bottom:0; }
.question-select-row > input { width:16px; height:16px; accent-color:var(--orange); }
.question-select-row strong,.question-select-row small { display:block; }
.question-select-row strong { font-size:10px; line-height:1.5; }
.question-select-row small { margin-top:4px; color:var(--muted); font-size:8px; }
.question-select-row > a { color:var(--orange-dark); font-size:8px; font-weight:800; }
.question-code { color:var(--orange-dark); font-size:9px; font-weight:850; }
.question-code small { color:var(--muted); }
.question-version-note { min-height:70px; padding:12px 14px; display:grid; grid-template-columns:auto 1fr; gap:3px 10px; align-items:center; border:1px dashed #d7dde4; border-radius:7px; background:#fafbfc; }
.question-version-note span { color:var(--orange-dark); font-size:7px; font-weight:850; }
.question-version-note strong { font-size:20px; }
.question-version-note small { grid-column:1/-1; color:var(--muted); font-size:8px; }
.option-editor { margin-top:20px; display:grid; gap:10px; }
.option-edit-row { min-height:74px; padding:11px 13px; display:grid; grid-template-columns:20px 34px 1fr 90px; gap:10px; align-items:center; border:1px solid var(--line); border-radius:8px; background:#fcfdfe; }
.option-edit-row > input { accent-color:var(--orange); }
.option-edit-row > span { width:31px; height:31px; display:grid; place-items:center; border-radius:7px; background:var(--soft); color:var(--orange-dark); font-size:10px; font-weight:850; }
.option-edit-row textarea { width:100%; min-height:49px; padding:9px 11px; resize:vertical; border:1px solid #dbe0e6; border-radius:6px; font:inherit; }
.option-edit-row small { color:var(--muted); font-size:8px; }
.assessment-shell { max-width:1250px; margin:auto; }
.assessment-hero { min-height:220px; padding:38px 42px; display:flex; justify-content:space-between; align-items:center; gap:35px; border-radius:14px; color:white; background:linear-gradient(125deg,#0c1727,#152e40 68%,#174a50); box-shadow:0 20px 55px rgba(12,23,39,.16); }
.assessment-hero h1 { margin:10px 0 12px; max-width:760px; font-size:35px; letter-spacing:-1.4px; }
.assessment-hero p { max-width:740px; color:#bdcad3; font-size:11px; line-height:1.7; }
.assessment-score { min-width:145px; height:145px; display:grid; place-content:center; text-align:center; border:1px solid rgba(255,255,255,.2); border-radius:50%; background:rgba(255,255,255,.06); }
.assessment-score strong { font-size:34px; }
.assessment-score span { margin-top:5px; color:#aabcc7; font-size:7px; font-weight:850; letter-spacing:.8px; }
.assessment-alert { margin:16px 0; }
.assessment-rule-grid { margin:16px 0; display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.assessment-rule-grid article { padding:19px; display:grid; grid-template-columns:34px 1fr; gap:3px 10px; align-items:center; border:1px solid var(--line); border-radius:9px; background:white; }
.assessment-rule-grid article > span { grid-row:1/3; width:34px; height:34px; display:grid; place-items:center; border-radius:8px; background:var(--orange-soft); color:var(--orange-dark); font-size:14px; }
.assessment-rule-grid strong { font-size:10px; }
.assessment-rule-grid small { color:var(--muted); font-size:8px; }
.assessment-intro-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:16px; align-items:start; }
.assessment-intro-grid .form-card,.assessment-intro-grid .admin-panel { margin-top:0; }
.assessment-checklist { margin:22px 0; padding:0; display:grid; gap:13px; list-style:none; }
.assessment-checklist li { position:relative; padding-left:27px; color:#566271; font-size:10px; line-height:1.55; }
.assessment-checklist li:before { content:'✓'; position:absolute; left:0; top:-2px; width:18px; height:18px; display:grid; place-items:center; border-radius:50%; background:#eaf5ef; color:var(--green); font-size:8px; font-weight:900; }
.assessment-start { width:100%; justify-content:center; }
.approval-banner,.assessment-locked { padding:15px; display:flex; justify-content:space-between; gap:15px; border-radius:8px; font-size:9px; }
.approval-banner { border:1px solid #cce5d8; background:#eaf6ef; color:var(--green); }
.assessment-locked { flex-direction:column; border:1px solid #eadbc5; background:#fff8ee; color:#75552d; }
.attempt-history-row { min-height:67px; padding:12px 18px; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--line); }
.attempt-history-row strong,.attempt-history-row small { display:block; }
.attempt-history-row strong { color:var(--ink); font-size:10px; }
.attempt-history-row small { margin-top:4px; color:var(--muted); font-size:8px; }
.attempt-result { padding:6px 9px; border-radius:20px; background:#f0f2f4; color:#687382; font-size:8px; font-weight:850; }
.attempt-result.passed { background:#e7f4ed; color:var(--green); }
.attempt-result.failed,.attempt-result.expired { background:#fff0ef; color:#b33d3d; }
.question-nav-number { width:20px; height:20px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.15); border-radius:5px; font-size:7px; }
.attempt-form { max-width:1100px; margin:auto; }
.attempt-topbar { margin-bottom:17px; padding:25px 28px; display:flex; justify-content:space-between; align-items:center; gap:25px; border:1px solid var(--line); border-radius:11px; background:white; }
.attempt-topbar h1 { margin:7px 0 0; font-size:24px; }
.attempt-clock { min-width:180px; padding:12px 15px; display:flex; gap:11px; align-items:center; border:1px solid #f0c7b4; border-radius:8px; background:#fff8f4; }
.attempt-clock > span { color:var(--orange-dark); font-size:20px; }
.attempt-clock strong,.attempt-clock small { display:block; }
.attempt-clock strong { font-size:15px; font-variant-numeric:tabular-nums; }
.attempt-clock small { margin-top:3px; color:var(--muted); font-size:7px; font-weight:850; }
.attempt-questions { display:grid; gap:16px; }
.attempt-question { padding:28px 30px; scroll-margin-top:20px; border:1px solid var(--line); border-radius:11px; background:white; }
.attempt-question header { display:flex; justify-content:space-between; color:var(--orange-dark); font-size:7px; font-weight:850; letter-spacing:.8px; }
.attempt-question header small { color:var(--muted); letter-spacing:0; }
.attempt-question h2 { margin:18px 0 21px; max-width:900px; font-size:15px; line-height:1.55; }
.answer-options { display:grid; gap:9px; }
.answer-options label { min-height:58px; padding:10px 13px; display:grid; grid-template-columns:18px 34px 1fr; gap:10px; align-items:center; border:1px solid #dde2e7; border-radius:8px; color:#465261; font-size:10px; cursor:pointer; transition:.15s; }
.answer-options label:hover { border-color:#efad8d; background:#fffaf7; }
.answer-options label:has(input:checked) { border-color:var(--orange); background:var(--orange-soft); box-shadow:0 0 0 2px rgba(235,113,54,.08); }
.answer-options input { accent-color:var(--orange); }
.option-letter { width:31px; height:31px; display:grid; place-items:center; border-radius:6px; background:#f1f3f5; color:#596574; font-size:9px; font-weight:850; }
.attempt-submit { margin-top:18px; padding:20px 24px; display:flex; justify-content:space-between; align-items:center; gap:20px; border-radius:10px; color:white; background:#111d2b; }
.attempt-submit strong,.attempt-submit span { display:block; }
.attempt-submit strong { font-size:11px; }
.attempt-submit span { margin-top:4px; color:#9eabb7; font-size:8px; }
.result-hero { padding:36px 40px; display:flex; justify-content:space-between; align-items:center; gap:30px; border-radius:13px; }
.result-hero.passed { color:white; background:linear-gradient(120deg,#123329,#1c5b45); }
.result-hero.failed { color:white; background:linear-gradient(120deg,#3c2022,#7b3834); }
.result-symbol { width:39px; height:39px; margin-bottom:12px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.25); border-radius:50%; font-size:17px; }
.result-hero h1 { margin:8px 0; font-size:32px; }
.result-hero p { color:rgba(255,255,255,.7); font-size:10px; }
.result-score { min-width:155px; text-align:center; }
.result-score strong,.result-score span { display:block; }
.result-score strong { font-size:46px; letter-spacing:-2px; }
.result-score span { color:rgba(255,255,255,.65); font-size:8px; font-weight:850; }
.result-metrics { margin:15px 0; display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.result-metrics article { padding:18px 20px; border:1px solid var(--line); border-radius:9px; background:white; }
.result-metrics small { display:block; color:var(--muted); font-size:7px; font-weight:850; }
.result-metrics strong { display:block; margin-top:8px; font-size:14px; }
.result-review { padding:25px; border:1px solid var(--line); border-radius:11px; background:white; }
.review-row { padding:20px 0; display:grid; grid-template-columns:32px 1fr; gap:13px; border-bottom:1px solid var(--line); }
.review-row:last-child { border-bottom:0; }
.review-row > span { width:29px; height:29px; display:grid; place-items:center; border-radius:50%; font-weight:900; }
.review-row.correct > span { background:#e7f4ed; color:var(--green); }
.review-row.incorrect > span { background:#fff0ef; color:#b33d3d; }
.review-row small { color:var(--muted); font-size:7px; font-weight:850; }
.review-row h3 { margin:7px 0 11px; font-size:11px; line-height:1.5; }
.review-row p { margin:5px 0; color:#596575; font-size:9px; }
.answer-explanation { margin-top:12px; padding:11px 13px; border-left:3px solid var(--orange); background:#fff8f4; color:#665b55; font-size:9px; line-height:1.55; }
.study-time-summary { margin-left:auto; padding:10px 14px; min-width:195px; border:1px solid var(--line); border-radius:8px; background:white; }
.study-time-summary span,.study-time-summary strong,.study-time-summary small { display:block; }
.study-time-summary span { color:var(--green); font-size:7px; font-weight:850; letter-spacing:.5px; }
.study-time-summary strong { margin:5px 0 3px; font-size:13px; }
.study-time-summary small { color:var(--muted); font-size:8px; }
.weekday-selector { padding:15px; display:flex; flex-wrap:wrap; gap:8px; border:1px solid var(--line); border-radius:7px; background:#fafbfc; }
.weekday-selector > span { width:100%; color:var(--muted); font-size:7px; font-weight:850; letter-spacing:.8px; }
.weekday-selector label { display:block; }
.weekday-selector input { position:absolute; opacity:0; pointer-events:none; }
.weekday-selector label span { min-height:31px; padding:0 12px; display:flex; align-items:center; border:1px solid #d9dfe5; border-radius:6px; background:white; color:#687382; font-size:8px; cursor:pointer; }
.weekday-selector input:checked + span { border-color:var(--orange); background:var(--orange-soft); color:var(--orange-dark); font-weight:800; }
.policy-note { margin-top:18px; padding:14px 16px; border-left:3px solid #2d8060; background:#edf7f1; color:#476357; }
.policy-note strong { font-size:9px; }
.policy-note p { margin:5px 0 0; font-size:8px; line-height:1.55; }
.access-restricted-card { max-width:720px; margin:7vh auto; padding:52px; text-align:center; border:1px solid var(--line); border-radius:15px; background:white; box-shadow:0 22px 60px rgba(16,27,39,.08); }
.access-restricted-card > span { width:70px; height:70px; margin:0 auto 20px; display:grid; place-items:center; border-radius:50%; background:var(--orange-soft); color:var(--orange-dark); font-size:28px; }
.access-restricted-card > small { color:var(--orange-dark); font-size:8px; font-weight:850; letter-spacing:1px; }
.access-restricted-card h1 { margin:12px 0; font-size:31px; }
.access-restricted-card > p { max-width:520px; margin:0 auto; color:var(--muted); font-size:10px; line-height:1.7; }
.access-restricted-card > div { margin:24px 0; padding:16px; border:1px solid var(--line); border-radius:8px; background:#fafbfc; }
.access-restricted-card > div strong,.access-restricted-card > div small { display:block; }
.access-restricted-card > div strong { font-size:11px; }
.access-restricted-card > div small { margin-top:6px; color:var(--muted); font-size:8px; }
.training-hours-panel { margin-top:24px; }
.training-hours-table > div { min-width:900px; grid-template-columns:1.15fr 1.15fr .65fr .65fr .45fr; }

@media (max-width: 1200px) {
    .container-wide { width: min(100% - 48px, 1500px); }
    .hero { grid-template-columns: 1fr 1fr; gap: 20px; }
    .hero h1 { font-size: 58px; }
    .continue-card { grid-template-columns: 280px 1fr; }
    .continue-next { display:none; }
    .metric-grid { grid-template-columns:repeat(2,1fr); }
    .company-dashboard-grid { grid-template-columns:1fr; }
}

@media (max-width: 900px) {
    .marketing-header nav, .marketing-actions { display:none; }
    .marketing-menu { display:block; }
    .hero { grid-template-columns:1fr; padding-top:55px; }
    .hero-visual { min-height:480px; }
    .course-grid { grid-template-columns:1fr 1fr; }
    .course-grid article:last-child { display:none; }
    .company-promo > div { grid-template-columns:1fr; gap:45px; padding-block:70px; }
    .steps > div { grid-template-columns:1fr 1fr; gap:35px 0; }
    .portal-shell { display:block; }
    .sidebar { transform:translateX(-100%); transition:.25s; box-shadow:20px 0 50px rgba(0,0,0,.28); }
    body.sidebar-open .sidebar { transform:translateX(0); }
    .sidebar-close { display:block; }
    .sidebar-overlay { position:fixed; z-index:15; inset:0; background:rgba(5,10,18,.55); }
    body.sidebar-open .sidebar-overlay { display:block; }
    .portal-main { width:100%; }
    .mobile-menu { display:block; }
    .portal-header { padding-inline:20px; }
    .dashboard-grid, .classroom-grid { grid-template-columns:1fr; }
    .notes-panel { order:-1; }
    .note-grid { grid-template-columns:1fr 1fr; }
    .new-note { grid-column:1/-1; min-height:90px; }
    .auth-page { grid-template-columns: 1fr; }
    .auth-showcase { display: none; }
    .auth-mobile-brand { display: inline-flex; }
    .inline-create-form { grid-template-columns: 1fr 1fr; }
    .admin-kpi-grid { grid-template-columns:repeat(2,1fr); }
    .admin-split-grid { grid-template-columns:1fr; }
    .assessment-rule-grid { grid-template-columns:repeat(2,1fr); }
    .assessment-intro-grid { grid-template-columns:1fr; }
}

@media (max-width: 650px) {
    .container-wide { width: min(100% - 30px, 1500px); }
    .marketing-header { height:70px; }
    .hero { padding-top:35px; }
    .hero h1 { font-size:45px; letter-spacing:-2.7px; }
    .hero-copy > p { font-size:15px; }
    .hero-actions { flex-direction:column; align-items:stretch; }
    .hero-visual { min-height:380px; padding-left:0; }
    .mock-content { padding:25px 18px; }
    .mock-body { grid-template-columns:45px 1fr; min-height:290px; }
    .mock-course { grid-template-columns:90px 1fr; }
    .mock-stats { display:none; }
    .hero-badge { left:5px; top:20px; }
    .hero-note { bottom:5px; }
    .trust-strip > div { overflow:auto; justify-content:flex-start; }
    .trust-strip span { min-width:220px; }
    .course-section { padding-block:70px; }
    .section-heading { align-items:flex-start; flex-direction:column; }
    .course-grid { grid-template-columns:1fr; }
    .course-grid article:last-child { display:block; }
    .steps > div { grid-template-columns:1fr; }
    .steps article { padding:20px 0; border-left:0; border-top:1px solid var(--line); }
    .marketing-footer > div { flex-direction:column; align-items:flex-start; }
    .marketing-footer > div > span { margin-left:0; }
    .portal-content { padding:28px 15px 55px; }
    .header-search { display:none; }
    .portal-header { justify-content:flex-start; }
    .header-actions { margin-left:auto; }
    .page-intro, .company-intro { align-items:flex-start; flex-direction:column; }
    .company-intro > div:last-child { width:100%; }
    .company-intro .button { flex:1; padding-inline:10px; }
    .continue-card { grid-template-columns:1fr; }
    .continue-cover { min-height:200px; }
    .continue-info { padding:24px; }
    .dashboard-grid { margin-top:35px; }
    .compact-course-list article { grid-template-columns:80px 1fr; }
    .compact-course-list article > a { display:none; }
    .compact-course-list small { display:block; margin:5px 0 0; }
    .note-grid { grid-template-columns:1fr; }
    .new-note { grid-column:auto; }
    .classroom-heading { align-items:flex-start; }
    .course-progress-ring { display:none; }
    .video-stage { min-height:220px; }
    .video-nr { font-size:70px; }
    .lesson-toolbar { align-items:stretch; flex-direction:column; }
    .lesson-toolbar > div { overflow:auto; }
    .lesson-navigation { grid-template-columns:1fr; }
    .metric-grid { grid-template-columns:1fr; }
    .compliance-table { overflow:auto; }
    .compliance-table > div { min-width:700px; }
    .activity-list > div { align-items:flex-start; flex-wrap:wrap; }
    .status-pill { margin-left:43px; }
    .form-grid { grid-template-columns: 1fr; }
    .form-grid .span-2 { grid-column: auto; }
    .form-grid-3 { grid-template-columns:1fr; }
    .form-grid-3 .span-2, .form-grid-3 .span-3 { grid-column:auto; }
    .form-card { padding: 18px; }
    .admin-list-toolbar { align-items: stretch; flex-direction: column; gap: 10px; }
    .intro-actions, .people-filters { width:100%; align-items:stretch; flex-direction:column; }
    .intro-actions .button { justify-content:center; }
    .admin-kpi-grid { grid-template-columns:1fr 1fr; }
    .invitation-link-box { grid-template-columns:1fr; }
    .admin-search { width: 100%; }
    .inline-create-form { grid-template-columns: 1fr; }
    .lesson-admin-row { grid-template-columns: 25px 1fr 65px; }
    .lesson-admin-row .table-action, .lesson-admin-row .danger-link { grid-column: span 1; }
    .assessment-hero,.attempt-topbar,.result-hero,.attempt-submit { align-items:flex-start; flex-direction:column; }
    .assessment-score { min-width:110px; width:110px; height:110px; }
    .assessment-rule-grid,.result-metrics { grid-template-columns:1fr; }
    .question-select-row { grid-template-columns:20px 62px 1fr; }
    .question-select-row .status-pill,.question-select-row > a { grid-column:3; }
    .option-edit-row { grid-template-columns:18px 30px 1fr; }
    .option-edit-row small { grid-column:3; }
    .attempt-question { padding:21px 17px; }
    .attempt-clock { width:100%; }
    .study-time-summary { width:100%; margin:12px 0 0; }
    .access-restricted-card { padding:32px 20px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *:before, *:after { scroll-behavior:auto!important; transition:none!important; }
}
