/* snacode identity. app.css owns layout; this layer owns the visual system. */
:root{
  --bg:#f4f5ef;--surface:#fff;--ink:#22291f;--muted:#6d756b;--line:#e1e5da;
  --green:#486a2e;--mint:#eff7dc;--yellow:#d4f76b;--sidebar:244px;--radius:14px;
  --font:"Segoe UI Variable Text","Segoe UI",Arial,sans-serif;
  --heading:"Trebuchet MS","Segoe UI",Arial,sans-serif;
  --accent:#d4f76b;--coal:#1c241f;--code-bg:#1c241f;
}
body{color:var(--ink);font-size:14px;line-height:1.65;background:var(--bg)}
::selection{background:#d4f76b;color:#20271f}
h1,h2,h3{font-family:var(--heading);font-weight:700}
h1{font-size:35px;letter-spacing:-1.3px;line-height:1.2}
h2{letter-spacing:-.6px}h3{letter-spacing:-.3px}
button:focus-visible,a:focus-visible,summary:focus-visible{outline-color:#87aa40}
input:focus,textarea:focus,select:focus{outline:2px solid #88a94b;outline-offset:2px}
input,textarea,select{border-color:#d7ddcf;border-radius:9px;color:var(--ink)}
.sidebar{background:var(--coal);border-right:0;padding:30px 20px 20px;overflow-y:auto;overscroll-behavior:contain}
.sidebar>.brand,.sidebar>.workspace-label,.sidebar>.nav,.sidebar>.sidebar-bottom{flex-shrink:0}
.brand,.auth-story .brand{display:flex;align-items:center;gap:10px;color:#fff;font-size:28px;line-height:1;letter-spacing:-1.3px;font-family:var(--heading);font-weight:700}
.brand-mark{display:block;width:39px;height:39px;flex-shrink:0}
.brand-word{display:block;padding-bottom:3px}
.brand-period{color:var(--accent)}
.workspace-label{color:#7e8a80;font-size:9px;letter-spacing:1.8px;margin:42px 12px 15px}
.nav{gap:7px}
.nav>a{color:#b2bcb0;font-size:13px;font-weight:500;padding:13px 14px;border-radius:9px}
.nav>a .icon{width:19px;height:19px}
.nav>a:hover{background:#2a352b;color:#fff}
.nav>a.selected{background:var(--accent);color:#20271f;font-weight:650}
.nav-divider{border-color:#344033;margin:17px 12px}
.sidebar-bottom{padding-top:26px}
.study-note{padding:18px 16px;margin:0 0 20px;background:#273128;border-color:#3b4737;border-radius:12px;color:#ecf2e6}
.study-note .note-spark{color:var(--accent);margin-bottom:13px}
.study-note strong{font:700 17px/1.35 var(--heading);letter-spacing:-.3px}
.study-note p{color:#a4b09f;font-size:11px;line-height:1.8;margin-top:10px}
.mentor-signature{display:block;margin-top:15px;font:12px Consolas,monospace;color:#d4f76b}
.profile{border-top-color:#384333;padding:18px 4px 9px}
.profile strong{color:#f0f4ec;font-size:12px}
.profile small{color:#a3af9d;font-size:10px}
.avatar{background:#e8efdf;color:#37442d;border-radius:11px;font-weight:700}
.logout{color:#a2ae9c;font-size:11px;padding-top:10px}.logout:hover{color:var(--accent)}
.topbar{height:72px;background:#fcfdf8;border-bottom-color:#e3e7dc;padding:0 38px;color:#6d756b;font-size:12px}
.topbar-brand{font-family:var(--heading);font-weight:700;color:#303b28;font-size:15px;letter-spacing:-.5px}
.topbar-tag{background:#f1f4e9;border-color:#e1e7d7;color:#5a684d;font-size:10px;padding:5px 10px;border-radius:20px}
.status-dot{background:#709249}.status-dot.offline{background:#b58b40}
.main{padding:30px 38px 0;max-width:1500px}
.eyebrow{color:#64734e;font-size:10px;font-weight:700;letter-spacing:1.65px;margin-bottom:11px}
.page-heading{margin-bottom:27px}
.page-heading p,.lesson-heading p{font-size:13px;line-height:1.8;color:#727a6b;margin-top:10px}
.greeting-star{color:#748b45;font-size:26px}
.pill{color:#627052;background:#fcfdf8;border-color:#dce3d2;border-radius:7px;font-size:10px}
.pill.green{background:#e7f2cd;color:#426128}
.progress-pill{background:#eaf1dc;color:#48682d;border-color:#d9e6c1;padding:10px 14px;font-size:12px;border-radius:9px}
.demo-banner{background:#edf0e6;border:1px dashed #d5dccb;border-radius:8px;color:#7c836e;font-size:10px;padding:10px 13px;gap:14px}
.demo-banner button{font-size:10px;color:#586747;border-color:#aab89a;background:transparent}
.demo-banner button:hover{color:#26351d}
.btn{font-size:12px;font-weight:650;border-radius:8px;padding:12px 17px;transition:background .15s,border-color .15s,transform .15s}
.btn-primary{background:var(--accent);color:#27351c;border-color:#bddc60}
.btn-primary:hover{background:#c4ed52;border-color:#b0d446}
.btn-dark{background:var(--coal);color:#f7faef;border-color:var(--coal)}
.btn-dark:hover{background:#34432a;border-color:#34432a}
.btn-secondary{background:#fff;border-color:#dce2d2;color:#526444}
.btn-secondary:hover{background:#f1f5e8;border-color:#becda9}
.text-link{color:#607447;font-size:12px}.text-link:hover{color:#293f15}
.panel{border-color:#e0e5d9;border-radius:13px;box-shadow:0 2px 0 #252d1d03}

/* Dashboard */
.course-hero{background:var(--coal);border:0;border-radius:17px;min-height:328px;margin-bottom:22px;color:#f5f8ef}
.hero-content{padding:33px 34px;max-width:63%}
.hero-tag{background:#303b2c;border-color:#4c5b3c;color:#c8d8b3;font-size:9px;letter-spacing:1.35px;padding:5px 9px;border-radius:5px}
.hero-tag .status-dot{background:var(--accent)}
.hero-content h2{color:#f8fbf2;font-size:39px;line-height:1.16;letter-spacing:-1.4px;margin-top:18px}
.hero-content h2>span{color:var(--accent)}
.hero-content p{color:#afbaa5;font-size:12px;line-height:1.9;margin-top:14px;max-width:420px}
.hero-content .btn-dark{background:var(--accent);border-color:var(--accent);color:#26341a;padding:12px 17px;font-size:12px;margin-top:23px}
.hero-content .btn-dark:hover{background:#c3eb59}
.hero-meta{font:10px/1.7 Consolas,monospace;color:#adba9b;margin-top:20px;gap:10px}
.hero-meta>span{color:#69785c}
.snacode-art{position:absolute;right:25px;top:0;bottom:0;width:300px;pointer-events:none}
.hero-grid{position:absolute;inset:20px -30px 0 -15px;background-image:linear-gradient(#66765220 1px,transparent 1px),linear-gradient(90deg,#66765220 1px,transparent 1px);background-size:32px 32px;transform:perspective(600px) rotateY(-12deg);mask-image:linear-gradient(90deg,transparent,#000 22%,#000 70%,transparent)}
.hero-emblem{position:absolute;top:28px;right:25px;width:124px;height:124px;transform:rotate(9deg);filter:drop-shadow(0 12px 24px #0004);border-radius:35px}
.art-caption{position:absolute;top:67px;left:4px;writing-mode:vertical-rl;font:10px Consolas,monospace;color:#91a17c;letter-spacing:1px}
.hero-code-card{position:absolute;right:2px;bottom:42px;width:290px;background:#283229;border:1px solid #53633f;border-radius:10px;box-shadow:0 14px 35px #0004;transform:rotate(-3deg);overflow:hidden}
.hero-code-title{display:flex;align-items:center;gap:16px;padding:10px 13px;border-bottom:1px solid #405036;font:9px Consolas,monospace;color:#9dae8c}
.hero-code-title>span{display:flex;gap:4px}.hero-code-title i{width:5px;height:5px;border-radius:50%;background:#6a7d52}.hero-code-title i:first-child{background:#b6ce80}
.hero-code-card pre{margin:0;padding:17px 14px;font:11px/1.95 Consolas,"Courier New",monospace;color:#d9e3ce;overflow:hidden}
.hero-code-result{border-top:1px solid #405036;padding:9px 13px;color:#b0c193;font-size:9px}.hero-code-result>span{color:var(--accent);margin-right:6px}
.stats-grid{gap:17px;margin-bottom:28px}
.stat-card{padding:21px;min-height:104px;border-color:#e0e5d9;border-radius:12px;gap:15px}
.stat-label{font-size:11px;color:#6b765f;margin-bottom:5px}
.stat-card strong{font:700 29px/1.15 var(--heading);letter-spacing:-1px}
.stat-card strong small{font:12px var(--font);color:#9ba58e}
.stat-icon{border-radius:11px;width:43px;height:43px}
.mint{background:#eaf3d8;color:#6b883c}.lavender{background:#eae8f5;color:#8d7db3}.sand{background:#f5edda;color:#a7904e}
.mini-progress{background:linear-gradient(to right,#a9ce5b var(--progress),#edf0e5 var(--progress))}
.section-heading h2{font-size:20px}.section-heading>.muted{font-size:11px}
.module-grid{gap:17px}
.module-card{padding:23px 22px 18px;border-color:#e0e5d9;border-radius:12px;min-height:221px}
.module-card:hover{border-color:#a4bd7c;box-shadow:0 5px 15px #33422108}
.module-card h3{font-size:16px;color:#303d25}
.module-card>p{font-size:12px;color:#68755c;line-height:1.8;margin-top:8px;margin-bottom:21px}
.module-number{font:12px Consolas,monospace;color:#a2ad93}
.module-icon{background:#eaf3d8;color:#77944a;border-radius:10px;width:40px;height:40px}
.color-2,.color-6{background:#ece8f3;color:#9384b2}.color-3,.color-7{background:#f4eddb;color:#ac9258}.color-4,.color-8{background:#e6eeef;color:#6e8b8f}.color-5{background:#f4e8df;color:#ac8970}
.module-card-bottom{font-size:10px;color:#8c967d;margin-bottom:12px}
.progress-track{background:#eef1e8;height:5px}.progress-track>span{background:#9bc64f}
.next-panel{padding:24px 23px;background:#fcfdf8;border-color:#dbe2cf}
.next-panel h3{font-size:17px;color:#3a4e29}.next-panel p{font-size:12px;color:#697a58;line-height:1.8}
.next-panel .eyebrow{font-size:9px}.next-panel .lesson-meta{font-size:10px;color:#95a085}
.next-icon{background:#e9f1d6;color:#7b984f}.next-panel .btn{font-size:11px}
.tip-panel{background:#e9efdc;border-color:#d9e2c6;padding:24px 23px}
.tip-panel>span{font-size:9px;color:#637b48}.tip-panel h3{font-size:16px;color:#50653a}.tip-panel p{font-size:12px;color:#667b4e}

/* Course and study workspace */
.curriculum-heading{margin:0;padding:27px 30px;background:#fff;border:1px solid #e0e5d9;border-bottom:0;border-radius:14px 14px 0 0}
.curriculum-heading h1{font-size:36px}.curriculum-heading .eyebrow{font-size:9px}
.course-summary-strip{display:flex;align-items:center;flex-wrap:wrap;gap:15px 28px;padding:18px 30px 23px;border:1px solid #e0e5d9;border-top:0;background:#fff;border-radius:0 0 14px 14px;margin-bottom:20px;color:#7f8a71;font-size:12px}
.course-summary-strip strong{font:700 22px var(--heading);color:#3f522e;margin-right:5px;letter-spacing:-.5px}
.course-summary-signature{margin-left:auto;font-size:11px}.course-summary-signature b{color:#6d8b40;font-size:18px;margin-left:7px}
.course-legend{padding:13px 17px;background:transparent;border:0;border-bottom:1px solid #dce2d2;border-radius:0;font-size:11px;color:#879273;gap:9px 20px}
.curriculum-list{gap:21px}
.curriculum-module{border-color:#dde4d2;border-radius:13px}
.curriculum-module-heading{background:#f9fbf4;padding:24px 26px}
.curriculum-module-heading h2{font-size:20px;color:#35492a}
.curriculum-module-heading p{font-size:12px;color:#6b7b5e}
.curriculum-module-heading .eyebrow{font-size:9px;color:#99a686}
.module-completion{font:12px Consolas,monospace;border:1px solid #dce5cf;border-radius:7px;padding:7px 10px;color:#7e9066;background:#fff;white-space:nowrap}
.curriculum-lesson{padding:19px 26px;border-bottom-color:#edf0e5;gap:17px}
.curriculum-lesson:hover{background:#f6faed}.curriculum-lesson strong{font-size:14px;font-weight:600;color:#3d4d31}
.curriculum-lesson>div>span{font-size:12px;color:#66755c;line-height:1.75}
.curriculum-lesson small{font-size:11px;color:#69775d}
.lesson-check{border-radius:10px;width:35px;height:35px;border-color:#dce4d0;color:#95a580;font:10px Consolas,monospace}
.lesson-check.done{background:#eaf5d2;border-color:#d9e9be;color:#72903e}
.curriculum-lesson .step-kind{font-size:9px;background:#edf2e6;color:#87976f;padding:2px 7px;border-radius:4px}
.curriculum-lesson .step-kind.challenge{background:#f6efda;color:#a68c45}.curriculum-lesson .step-kind.debug{background:#f2e9ef;color:#aa8198}.curriculum-lesson .step-kind.assessment{background:#e6eee0;color:#7c9560}
.kind-assessment{background:#f7faef;border-left:3px solid #c4df8d}
.difficulty-stars{color:#af963c}
.lesson-heading h1{font-size:31px;color:#2d3d23}
.lesson-heading .eyebrow{font-size:10px}.lesson-tabs{border-bottom-color:#dce4d0;gap:25px}
.lesson-tabs button{font-size:13px;color:#6d7d5c}.lesson-tabs button[aria-selected=true]{color:#587b32;border-bottom-color:#7d9f4d}
.lesson-article{color:#606d55;font-size:14px;line-height:1.95}
.lesson-article h2{color:#344d24;font-size:21px}.lesson-outline summary{font-size:11px;color:#61764e}
.lesson-outline details{border-bottom-color:#edf0e6}.lesson-outline details a{font-size:11px;color:#657753}.lesson-outline details a.current{background:#edf5df;color:#4e6d2d}
.task-statement{font-size:14px;color:#617351}.task-statement h2{font-size:25px;color:#304b21}.task-statement h3{font-size:13px;color:#62804b}
.sample-grid pre{background:#f8faf3;border-color:#e2e9d6;color:#5e7350}
.task-limits,.test-policy span{color:#95a784}.test-policy{background:#f5f9ed;border-color:#dfe9d0;color:#7e9666}
.code-editor,.lesson-code-block{border-color:#394a30;border-radius:11px}
.editor-header,.lesson-code-header{background:#2b3727;border-bottom-color:#415534;color:#bccfa5}
.code-editor .cm-editor,.code-editor .cm-gutters,.lesson-article .lesson-code-block pre,.lesson-code-block .lesson-code-lines{background:#1c241f}
.code-editor .cm-activeLineGutter,.code-editor .cm-activeLine{background:#293729}
.code-editor .cm-gutters,.lesson-code-block .lesson-code-lines{border-right-color:#34462e;color:#7d966c}
.code-editor .cm-cursor,.code-editor .cm-dropCursor{border-left-color:#d4f76b}
.editor-status{background:#202c21;color:#91a87d;border-top-color:#34462e;font-size:9px}
.editor-status>span:last-child{color:#91a87d}
.lesson-code-copy{border-color:#5b7047;color:#c7dcb3}.lesson-code-copy:hover{background:#3c5030}
.debug-callout{background:#f5edf2;border-color:#eadbe5;color:#9b7a8f}
.assessment-status{background:#eff5e3;border-color:#dae6c9}.assessment-status strong,.assessment-clock{color:#69874d}
.assessment-task-nav a.current{border-color:#93b16c;box-shadow:0 0 0 1px #93b16c}
.assessment-rules strong{color:#668748}.assessment-rules span{color:#93a97d}
.teacher-tools .muted,.invite-panel>.muted,.materials-panel>.muted{font-size:12px;color:#657854}
.invite-form label{font-size:11px;color:#91a17c}.invite-form input{font-size:12px}.invite-form button{font-size:11px}
.table-panel th{background:#f6f9ef;color:#7f9468;font-size:10px}.table-panel td{font-size:12px;color:#6b8056}
.footer{border-top-color:#dde4d1;color:#96a288;font-size:10px;margin-top:38px}.footer strong{font-family:var(--heading);font-size:13px;color:#71865b;margin-right:7px;letter-spacing:-.4px}

/* Login and registration */
.auth-shell{background:#f7f9f0;grid-template-columns:1fr 1fr}
.auth-story{background:var(--coal);padding:42px 9% 32px;color:#f4f8ed}
.auth-story .brand{font-size:30px}.auth-story .brand-mark{width:43px;height:43px}
.auth-eyebrow{color:#99b17c;font-size:9px;letter-spacing:1.4px;margin-top:62px}
.auth-story h1{font-size:57px;font-weight:700;line-height:1.13;letter-spacing:-1.9px;margin-top:22px}
.auth-story h1>span{color:var(--accent)}
.auth-story>p{font-size:13px;line-height:1.95;color:#adbf9c;max-width:370px;margin-top:23px}
.auth-code{background:#253126;border-color:#4b603c;border-radius:12px;box-shadow:0 16px 35px #0002;margin-top:33px;transform:rotate(-2deg);max-width:440px}
.window-dots{border-bottom-color:#3d5130}.window-dots span{color:#8fa777;font-size:10px}.window-dots i{background:#758d58}.window-dots i:nth-child(2){background:#a6bc78}.window-dots i:nth-child(3){background:#cee791}
.auth-code pre{font-size:12px;color:#c3d4b2;padding:19px 20px}.code-output{border-top-color:#405534;color:#9eb888}.code-output>span{color:var(--accent)}
.code-purple{color:#c19bdd}.code-blue{color:#8abedc}.code-yellow{color:#e3cd8a}.code-green{color:#c0df8e}.code-comment{color:#819b6e}
.auth-benefits{gap:23px;font-size:11px;color:#abc090;margin-top:30px}.auth-benefits svg{color:#b8d08d}
.auth-story-footer{display:flex;gap:18px;justify-content:space-between;margin-top:auto;padding-top:38px;color:#80996b;font-size:10px}.auth-story-footer strong{font:12px Consolas,monospace;color:#c8df9c}
.auth-form-panel{padding:45px 55px 24px;background:#f7f9f0}
.auth-form-wrap{max-width:365px}.auth-form-wrap .eyebrow{font-size:10px;color:#8a9f72}.auth-form-wrap h2{font-size:33px;color:#304521;letter-spacing:-1px}
.auth-intro{font-size:13px;color:#6e7d5e}.auth-form{margin-top:30px}.auth-form label{font-size:12px;color:#5f744c;font-weight:600}.auth-form input{padding:14px;font-size:14px;background:#fff;border-color:#d9e3ca}
.auth-switch{font-size:12px;color:#6d7a59}.auth-switch a{color:#567633;font-weight:600}.auth-help{font-size:11px;color:#667351}.auth-panel-footer{color:#778661;font-size:10px}
.demo-logins{border-top-color:#dbe5cc}.demo-logins>span{font-size:8px;color:#a8b795}.demo-logins .btn{font-size:11px;background:transparent}

@media(min-width:1500px){.hero-content h2{font-size:44px}.hero-content{padding:37px 40px}.snacode-art{right:55px;width:340px}.hero-emblem{right:30px;width:132px;height:132px}.hero-code-card{width:315px;bottom:39px}.hero-code-card pre{font-size:12px}}
@media(max-width:1150px){
  :root{--sidebar:220px}.sidebar{padding-left:17px;padding-right:17px}.brand{font-size:26px}.brand-mark{width:36px;height:36px}
  .main{padding:28px 28px 0}.topbar{padding:0 28px}.hero-content{padding:30px;max-width:64%}.hero-content h2{font-size:35px}.snacode-art{width:250px;right:18px}.hero-code-card{width:245px;bottom:49px}.hero-code-card pre{font-size:10px}.hero-emblem{width:105px;height:105px;top:37px;right:8px}.art-caption{left:12px}
  .dashboard-grid{grid-template-columns:minmax(0,1fr) 235px;gap:18px}.module-card{padding:20px 17px}.module-card>p{font-size:11px}.stat-card{padding:18px 15px;gap:11px}.stat-label{font-size:10px}.stat-icon{width:36px;height:36px}
  .course-summary-signature{display:none}.auth-story h1{font-size:49px}.auth-story{padding:37px 9% 27px}.auth-form-panel{padding:40px}
}
@media(max-width:980px){
  :root{--sidebar:205px}.brand{font-size:25px;gap:8px}.brand-mark{width:34px;height:34px}.workspace-label{font-size:8px;letter-spacing:1.4px}.nav>a{font-size:12px;padding:12px}
  .main{padding:25px 24px 0}.topbar{padding:0 24px}.topbar-brand{font-size:14px}.topbar-tag{font-size:9px}
  h1{font-size:30px}.page-heading p{font-size:12px}.course-hero{min-height:300px}.hero-content{max-width:none;padding:29px 30px}.hero-content h2{font-size:36px}.hero-content p{font-size:12px;max-width:320px}.snacode-art{display:none}
  .dashboard-grid{display:block}.dashboard-aside{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:23px}.stats-grid{gap:12px}.stat-card{min-height:115px;align-items:flex-start;flex-direction:column;gap:9px;padding:17px}.stat-icon{width:30px;height:30px}.stat-icon svg{width:17px;height:17px}.stat-card strong{font-size:26px}.stat-label{font-size:10px}
  .curriculum-heading{padding:24px}.curriculum-heading h1{font-size:31px}.curriculum-heading p{font-size:12px;max-width:340px}.course-summary-strip{padding:14px 24px 22px;gap:12px 23px}.course-summary-strip strong{font-size:21px}.course-summary-strip>span{font-size:11px}
  .curriculum-module-heading{padding:22px}.curriculum-module-heading h2{font-size:18px}.curriculum-module-heading p{font-size:11px}.curriculum-lesson{padding:18px 22px}.curriculum-lesson strong{font-size:13px}.curriculum-lesson>div>span{font-size:11px}.curriculum-lesson small{font-size:10px}
  .lesson-heading h1{font-size:28px}.lesson-article{padding:26px;font-size:14px}.task-statement{font-size:13px}.task-statement h2{font-size:24px}.module-grid{gap:14px}
  .auth-shell{grid-template-columns:.95fr 1fr}.auth-story{padding:35px 32px 28px}.auth-story h1{font-size:43px}.auth-eyebrow{font-size:8px;line-height:1.8;margin-top:54px}.auth-story>p{font-size:12px}.auth-code pre{font-size:10px;padding:17px 14px}.auth-benefits{gap:13px;font-size:9px}.auth-form-panel{padding:35px}.auth-form-wrap h2{font-size:29px}.auth-story-footer{font-size:9px;gap:10px}
}
@media(max-width:700px){
  :root{--sidebar:0px}.sidebar{position:relative;width:100%;padding:20px 20px 14px;background:var(--coal);border:0;overflow:visible}.brand{font-size:27px;gap:9px}.brand-mark{width:36px;height:36px}.workspace-label{display:none}.sidebar-bottom{display:none}
  .mobile-account{top:20px;right:20px}.mobile-account .avatar{width:34px;height:34px}.mobile-account>div{color:#556c3e;background:#fff;border-color:#dce6cf}.mobile-account a,.mobile-account button{color:#7c9465}
  .nav{display:flex;flex-direction:row;gap:7px;margin-top:20px;overflow-x:auto;padding-bottom:2px}.nav>a{font-size:11px;min-height:39px;padding:9px 12px;gap:7px;white-space:nowrap;flex-shrink:0}.nav>a .icon{width:16px;height:16px}.nav-divider{display:none}
  .topbar{height:53px;padding:0 20px;font-size:11px}.topbar>div{gap:10px}.topbar-brand{font-size:13px}.topbar-tag{display:none}.main{padding:21px 20px 0}.demo-banner{font-size:9px;gap:10px;padding:9px 11px;margin-bottom:23px;flex-wrap:wrap}.demo-banner button{font-size:10px}.demo-banner form:first-of-type{margin-left:auto}
  h1{font-size:28px}.heading-row{gap:12px}.page-heading{margin-bottom:23px}.page-heading p,.lesson-heading p{font-size:12px}.page-heading .pill{font-size:9px;padding:5px 7px}.eyebrow{font-size:9px}.greeting-star{font-size:22px}
  .course-hero{min-height:0;border-radius:13px}.hero-content{padding:27px 25px}.hero-content h2{font-size:35px;margin-top:18px}.hero-content p{font-size:12px;max-width:100%}.hero-tag{font-size:8px}.hero-meta{font-size:10px;flex-wrap:wrap;gap:7px}.hero-content .btn{font-size:12px;padding:11px 15px}.hero-content p br{display:none}
  .stats-grid{gap:9px;margin-bottom:27px}.stat-card{padding:14px 11px;min-height:133px;border-radius:10px}.stat-label{font-size:10px;white-space:normal;line-height:1.5}.stat-card strong{font-size:26px}.stat-card strong small{font-size:10px}.stat-icon{width:29px;height:29px}.stat-icon svg{width:16px;height:16px}
  .section-heading h2{font-size:20px}.section-heading .text-link{font-size:10px}.module-grid{gap:11px}.module-card{padding:18px 14px;min-height:232px}.module-card h3{font-size:14px}.module-card>p{font-size:11px;line-height:1.8}.module-icon{width:35px;height:35px}.module-number{font-size:10px}.module-card-bottom{font-size:9px;flex-wrap:wrap;gap:5px}
  .dashboard-aside{grid-template-columns:1fr}.next-panel,.tip-panel{padding:23px}.next-panel h3{font-size:18px}.next-panel p,.tip-panel p{font-size:12px}.tip-panel h3{font-size:17px}.next-panel .eyebrow,.tip-panel>span{font-size:9px}
  .curriculum-heading{padding:23px 20px 16px;flex-direction:column;align-items:flex-start;gap:17px;margin-bottom:0}.curriculum-heading h1{font-size:30px}.curriculum-heading p{font-size:12px}.curriculum-heading .progress-pill{font-size:11px;padding:7px 10px}.course-summary-strip{padding:10px 20px 22px;gap:12px 20px}.course-summary-strip>span{font-size:10px}.course-summary-strip strong{font-size:21px;display:block;margin:0 0 2px}
  .course-legend{font-size:10px;gap:9px 15px;padding:13px 0}.curriculum-module-heading{padding:20px 17px;gap:12px}.curriculum-module-heading h2{font-size:17px}.curriculum-module-heading p{font-size:11px}.curriculum-module-heading .module-icon{width:34px;height:34px}.module-completion{font-size:10px;padding:6px 7px}.curriculum-lesson{padding:17px;gap:12px}.curriculum-lesson strong{font-size:13px}.curriculum-lesson>div>span{font-size:11px}.curriculum-lesson small{font-size:9px}.lesson-check{width:31px;height:31px;font-size:9px;border-radius:9px}
  .lesson-heading h1{font-size:26px}.lesson-heading .eyebrow{font-size:9px;line-height:1.8}.lesson-tabs button{font-size:12px}.lesson-article{padding:23px 21px;font-size:14px}.lesson-article h2{font-size:20px}.lesson-outline summary,.lesson-outline details a{font-size:11px}.task-statement{padding:23px 21px;font-size:13px}.task-statement h2{font-size:23px}.task-statement h3{font-size:13px}.test-policy{font-size:11px}.sample-grid pre{font-size:12px}.editor-actions>.btn{font-size:11px}.editor-status{font-size:8px}.lesson-pagination .btn{font-size:10px}.footer{font-size:9px}.footer strong{font-size:12px}
  .auth-shell{display:block}.auth-story{padding:27px 25px 32px}.auth-story .brand{font-size:29px}.auth-story .brand-mark{width:39px;height:39px}.auth-eyebrow{margin-top:39px;font-size:8px;line-height:1.8}.auth-story h1{font-size:43px;line-height:1.1;margin-top:17px}.auth-story h1 br:nth-child(2){display:initial}.auth-story>p{font-size:12px;max-width:310px;margin-top:17px}.auth-code,.auth-benefits,.auth-story-footer{display:none}.auth-form-panel{padding:31px 25px 23px}.auth-form-wrap{max-width:420px;padding:0}.auth-form-wrap h2{font-size:29px}.auth-form-wrap .eyebrow{font-size:9px}.auth-intro{font-size:12px}.auth-form label{font-size:12px}.auth-form input{font-size:14px}.auth-panel-footer{font-size:9px;margin-top:31px}.auth-switch{font-size:12px}.auth-help{font-size:11px}
}
@media(prefers-reduced-motion:reduce){.btn,.module-card,.curriculum-lesson{transition:none}.btn:hover{transform:none}}
@media(max-height:800px) and (min-width:701px){.is-staff .study-note{display:none}}

/* Personal module deadlines. */
.deadline-management{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:23px;align-items:start;margin-bottom:32px}
.deadline-form-panel,.deadline-help{padding:27px}.deadline-form-panel h2,.deadline-help h2{font-size:21px;margin-bottom:12px}
.deadline-form-panel>.muted{font-size:13px;margin-bottom:10px}.deadline-timezone{font-size:11px;line-height:1.8;color:#6e7a60;margin:10px 0 18px}
.deadline-form{margin-top:22px}.deadline-form>div{margin-bottom:18px}.deadline-form label:not(.deadline-all){display:block;font-size:12px;font-weight:600;color:#5f744c;margin-bottom:7px}
.deadline-form select,.deadline-form input{min-width:0;font-size:13px}.deadline-form select[multiple]{min-height:140px;padding:7px}.deadline-form option{padding:6px}
.deadline-form select:disabled{opacity:.5;background:#edf0e5}
.deadline-form small{display:block;margin-top:7px;color:#728161;font-size:10px;line-height:1.7}
.deadline-form .deadline-all{display:flex;align-items:center;gap:10px;margin:8px 0 23px;font-size:12px;color:#546e3e}
.deadline-all input{width:17px;height:17px;flex-shrink:0;accent-color:#5c773f}.deadline-form .errorlist{padding-left:19px;margin:8px 0;color:#a14f42;font-size:12px}
.deadline-help{background:#edf3e1;border-color:#dce7cc}.deadline-help .module-icon{margin-bottom:17px}.deadline-help p{font-size:12px;line-height:1.9;color:#64794e;margin:12px 0}
.deadline-badge{display:flex;flex-wrap:wrap;align-items:center;gap:4px 9px;width:fit-content;font-size:10px;line-height:1.7;color:#657b49;background:#f0f5e6;border:1px solid #dde7cc;border-radius:6px;padding:5px 8px;margin:9px 0}
.deadline-badge>span{font-weight:650}.deadline-badge time{font-variant-numeric:tabular-nums;white-space:nowrap}
.deadline-badge.soon{background:#faf3dd;border-color:#e9dcae;color:#89702b}.deadline-badge.overdue,.deadline-badge.late{background:#fbede7;border-color:#efd1c4;color:#99563e}
.deadline-badge.complete{background:#e8f3dd;border-color:#cee2b5;color:#567b38}.deadline-overdue-count{color:#99563e;font-size:12px}
.deadline-table th,.deadline-table td{white-space:normal}.deadline-table td{vertical-align:middle}.deadline-table .deadline-badge{margin:0}.deadline-username{display:block;font-size:10px;line-height:1.7;color:#78896a;margin-top:4px}
.deadline-row-actions{display:flex;flex-wrap:wrap;gap:8px 15px;align-items:center}.deadline-row-actions button{font-size:11px}.deadline-row-actions .text-link{font-size:11px}
.student-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.module-deadline-edit{font-size:11px;margin-top:10px}.student-module-progress>div{min-width:0}
.upcoming-deadlines{padding:22px 25px;margin-bottom:27px}.upcoming-deadlines h2{font-size:20px}.upcoming-deadlines .deadline-timezone{margin:14px 0 0}
.deadline-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.deadline-cards>a{padding:14px 15px;background:#f8faf2;border:1px solid #e1e8d5;border-radius:9px}.deadline-cards strong{font-size:13px;color:#496136}.deadline-cards .deadline-badge{margin-bottom:0}
.module-deadline-notice{padding:15px 19px;background:#f8faf2;border:1px solid #dce5cf;border-radius:9px;margin-bottom:23px}.module-deadline-notice>div{display:flex;align-items:center;flex-wrap:wrap;gap:7px 16px}.module-deadline-notice strong{font-size:12px;color:#5e7847}.module-deadline-notice .deadline-badge{margin:0}.module-deadline-notice p{font-size:11px;line-height:1.8;color:#758766;margin-top:7px}
.module-card>.deadline-badge{margin:0 0 15px}.curriculum-module-heading .deadline-badge{font-size:10px}
@media(max-width:980px){.deadline-management{grid-template-columns:1fr}.deadline-help{padding:22px}.deadline-help .module-icon{display:none}.student-heading{flex-wrap:wrap}.student-actions{justify-content:flex-start}.deadline-cards{grid-template-columns:1fr}.deadline-form-panel{padding:24px}}
@media(max-width:700px){.deadline-form-panel,.deadline-help{padding:22px 20px}.deadline-form-panel h2,.deadline-help h2{font-size:20px}.deadline-form select,.deadline-form input{font-size:14px}.deadline-timezone{font-size:10px}.upcoming-deadlines{padding:21px 20px}.deadline-badge{font-size:10px}.deadline-row-actions{gap:10px}.deadline-management{gap:16px}.module-deadline-notice{padding:14px 15px}.student-actions .btn{font-size:10px}}
