:root{--ink:#17352f;--muted:#6d7f7a;--cream:#f6f4ed;--paper:#fffdfa;--green:#1b594b;--green-2:#287b67;--mint:#c8eadc;--yellow:#f4d87a;--purple:#d9d0ec;--line:#dedfd9;--danger:#9c3b34;--shadow:0 18px 45px rgba(23,53,47,.1)}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif;min-height:100vh}button,input,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.ambient{position:fixed;border-radius:50%;filter:blur(2px);pointer-events:none;z-index:-1}.ambient-one{width:380px;height:380px;background:rgba(199,233,218,.45);top:-220px;right:-100px}.ambient-two{width:280px;height:280px;background:rgba(244,216,122,.2);bottom:-160px;left:-80px}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1160px)/2));background:rgba(255,253,250,.88);border-bottom:1px solid rgba(23,53,47,.08);backdrop-filter:blur(14px);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px;font:800 20px "Manrope",sans-serif}.brand-mark{width:34px;height:34px;border-radius:10px;background:var(--green);color:white;display:grid;place-items:center}.brand-large{font-size:24px}.brand-large .brand-mark{width:42px;height:42px}.topbar-actions,.user-chip{display:flex;align-items:center;gap:14px}.avatar{width:34px;height:34px;border-radius:50%;background:var(--mint);display:grid;place-items:center;font-weight:700}.topbar form{margin:0}.page{width:min(1160px,calc(100% - 40px));margin:0 auto;padding:52px 0 72px}.eyebrow{margin:0 0 10px;color:var(--green-2);font-size:12px;font-weight:800;letter-spacing:.15em}.eyebrow.light{color:#99d5c3}h1,h2,h3{font-family:"Manrope",sans-serif;margin:0;letter-spacing:-.035em}h1{font-size:clamp(36px,5vw,58px);line-height:1.08}h1 span{color:var(--green-2)}h2{font-size:30px}h3{font-size:20px}.lead{font-size:18px;line-height:1.65}.lead.dark{color:var(--muted)}.muted{color:var(--muted)}.button{border:0;border-radius:12px;padding:12px 18px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:700;cursor:pointer;transition:.18s transform,.18s background}.button:hover{transform:translateY(-1px)}.button:disabled{opacity:.55;cursor:not-allowed}.button-primary{background:var(--green);color:white;box-shadow:0 7px 18px rgba(27,89,75,.18)}.button-primary:hover{background:#124b3f}.button-secondary{background:var(--mint);color:var(--ink)}.button-ghost{background:transparent;border:1px solid var(--line)}.button-small{padding:8px 14px}.button-full{width:100%;padding:14px}.alert{padding:13px 16px;border-radius:10px;background:#f8dfdb;color:var(--danger);margin:18px 0;font-weight:600}
.login-page{width:100%;padding:0;margin:0;max-width:none}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}.login-story{background:var(--green);color:white;padding:54px clamp(40px,7vw,100px);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-story:after{content:"";position:absolute;width:450px;height:450px;border:1px solid rgba(255,255,255,.1);border-radius:50%;bottom:-240px;right:-160px;box-shadow:0 0 0 55px rgba(255,255,255,.03),0 0 0 110px rgba(255,255,255,.025)}.login-story h1{max-width:680px}.login-story h1 span{color:#abd9c9}.login-story .lead{max-width:600px;color:#d8e6e1}.feature-row{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;z-index:1}.feature-row div{border-top:1px solid rgba(255,255,255,.2);padding-top:18px}.feature-row strong,.feature-row span{display:block}.feature-row span{color:#b9ccc6;margin-top:5px;font-size:14px}.login-panel{display:grid;place-items:center;padding:40px;background:var(--paper)}.login-card{width:min(420px,100%)}.login-card h2{font-size:38px}.stack-form{display:grid;gap:18px;margin-top:30px}.stack-form label{display:grid;gap:8px;font-weight:700;font-size:14px}.stack-form input{height:50px;border:1px solid var(--line);background:white;border-radius:11px;padding:0 14px;outline:none}.stack-form input:focus{border-color:var(--green-2);box-shadow:0 0 0 3px rgba(40,123,103,.12)}.login-help{text-align:center;color:var(--muted);font-size:13px;margin-top:24px}
.hero{display:flex;align-items:center;justify-content:space-between;gap:40px;margin-bottom:34px}.dashboard-hero>div:first-child{max-width:750px}.progress-ring{width:138px;height:138px;border-radius:50%;background:conic-gradient(var(--green) var(--progress),#e1e3dd 0);display:grid;place-items:center;flex:0 0 auto}.progress-ring:before{content:"";position:absolute;width:108px;height:108px;background:var(--cream);border-radius:50%}.progress-ring div{z-index:1;text-align:center}.progress-ring strong,.progress-ring span{display:block}.progress-ring strong{font:800 27px "Manrope"}.progress-ring span{font-size:12px;color:var(--muted)}.metrics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:50px}.metric-card{background:var(--paper);border:1px solid rgba(23,53,47,.08);border-radius:17px;padding:22px;display:flex;align-items:center;gap:16px;box-shadow:0 8px 25px rgba(23,53,47,.035)}.metric-icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;font-size:20px;font-weight:800}.metric-icon.mint{background:var(--mint)}.metric-icon.yellow{background:var(--yellow)}.metric-icon.purple{background:var(--purple)}.metric-card div>span,.metric-card div>strong{display:block}.metric-card div>span{color:var(--muted);font-size:13px;margin-bottom:3px}.metric-card strong{font:800 24px "Manrope"}.metric-card small{font:600 12px "DM Sans";color:var(--muted)}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px}.section-heading>p{color:var(--muted);font-size:14px}.section-heading.compact{margin-bottom:18px}.lesson-list{display:grid;gap:13px}.lesson-card{background:var(--paper);border:1px solid rgba(23,53,47,.09);border-radius:17px;padding:22px;display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:20px}.lesson-card.active{border-color:var(--green-2);box-shadow:0 10px 30px rgba(27,89,75,.09)}.lesson-card.locked{opacity:.58}.lesson-number{width:48px;height:48px;border-radius:14px;background:#e9eae5;display:grid;place-items:center;font:800 15px "Manrope"}.lesson-card.active .lesson-number{background:var(--green);color:#fff}.lesson-card.complete .lesson-number{background:var(--mint)}.lesson-state{font-size:10px;letter-spacing:.12em;font-weight:800;color:var(--green-2)}.lesson-copy p{margin:5px 0 0;color:var(--muted);font-size:14px}.lesson-meta{display:flex;align-items:center;gap:18px}.lesson-meta>span{font-size:12px;color:var(--muted)}.lock{font-size:22px}.panel{background:var(--paper);border:1px solid rgba(23,53,47,.08);border-radius:18px;padding:24px;margin-top:44px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:700px}th,td{text-align:left;padding:15px 12px;border-bottom:1px solid #e8e8e3;font-size:14px}th{font-size:11px;color:var(--muted);letter-spacing:.09em;text-transform:uppercase}tbody tr:last-child td{border-bottom:0}.status{font-size:12px;font-weight:700;padding:5px 9px;border-radius:999px}.status.success{background:var(--mint)}.status.retry{background:#f5e3bd}.empty{text-align:center;color:var(--muted);padding:35px}
.back-link{display:inline-block;color:var(--muted);margin-bottom:34px;font-weight:600}.lesson-header{display:flex;justify-content:space-between;align-items:end;margin-bottom:28px}.lesson-header h1{font-size:44px}.lesson-header p:last-child{color:var(--muted)}.goal-chip{background:var(--mint);padding:14px 20px;border-radius:14px}.goal-chip span,.goal-chip strong{display:block}.goal-chip span{font-size:11px}.goal-chip strong{font:800 25px "Manrope"}.typing-card{background:var(--paper);border:1px solid rgba(23,53,47,.1);border-radius:20px;padding:clamp(22px,4vw,40px);box-shadow:var(--shadow)}.typing-topline{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;font-weight:600}.keyboard-hint{font-weight:400}.target-text{font:500 clamp(24px,3vw,34px)/1.7 "DM Sans";letter-spacing:.025em;margin:28px 0;padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:pre-wrap}.target-text span{border-radius:4px}.target-text .correct{color:var(--green-2);background:#dcf0e8}.target-text .incorrect{color:#a23731;background:#f5d7d3}.target-text .current{box-shadow:inset 2px 0 var(--green)}#typing-input{width:100%;resize:none;border:1px solid var(--line);background:#faf9f5;border-radius:14px;padding:18px;font-size:20px;line-height:1.6;outline:none}#typing-input:focus{border-color:var(--green-2);box-shadow:0 0 0 3px rgba(40,123,103,.1)}.live-metrics{display:grid;grid-template-columns:repeat(5,1fr);margin:24px 0}.live-metrics div{padding:5px 18px;border-right:1px solid var(--line)}.live-metrics div:first-child{padding-left:0}.live-metrics div:last-child{border:0}.live-metrics span,.live-metrics strong{display:block}.live-metrics span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.live-metrics strong{font:800 22px "Manrope"}.typing-actions{display:flex;justify-content:space-between}.modal-backdrop{position:fixed;inset:0;background:rgba(10,30,26,.65);backdrop-filter:blur(5px);z-index:50;display:grid;place-items:center;padding:20px}.modal-backdrop[hidden]{display:none}.result-card{background:var(--paper);width:min(520px,100%);border-radius:22px;padding:38px;text-align:center;box-shadow:var(--shadow);position:relative}.result-icon{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:var(--mint);font-size:28px;margin:0 auto 20px}.result-metrics{display:grid;grid-template-columns:repeat(3,1fr);margin:28px 0;background:#f0f1ec;border-radius:14px;padding:17px}.result-metrics div{border-right:1px solid var(--line)}.result-metrics div:last-child{border:0}.result-metrics strong,.result-metrics span{display:block}.result-metrics strong{font:800 24px "Manrope"}.result-metrics span{font-size:11px;color:var(--muted)}.result-actions{display:flex;gap:10px;justify-content:center}.form-modal{text-align:left}.form-modal h2{font-size:32px}.modal-close{position:absolute;right:18px;top:15px;border:0;background:transparent;font-size:28px;cursor:pointer}
.admin-hero h1{font-size:48px}.admin-metrics{margin-bottom:25px}.admin-table{margin-top:0}.employee{display:flex;align-items:center;gap:10px}.employee strong,.employee span{display:block}.employee span{font-size:12px;color:var(--muted)}.mini-progress{width:90px;height:4px;background:#e1e4de;border-radius:4px;margin-top:6px;overflow:hidden}.mini-progress i{display:block;height:100%;background:var(--green-2)}
@media(max-width:800px){.login-shell{grid-template-columns:1fr}.login-story{min-height:45vh;padding:35px 28px;gap:45px}.feature-row{display:none}.login-panel{padding:50px 24px}.hero,.lesson-header{align-items:flex-start}.metrics-grid{grid-template-columns:1fr}.lesson-card{grid-template-columns:50px 1fr}.lesson-meta{grid-column:2;justify-content:space-between}.live-metrics{grid-template-columns:repeat(3,1fr);gap:18px}.live-metrics div{border:0;padding:0}.user-chip{font-size:0}.page{width:min(100% - 28px,1160px);padding-top:32px}}@media(max-width:520px){.hero{display:block}.progress-ring{margin-top:25px}.lesson-card{padding:17px;gap:12px}.lesson-meta{display:block}.lesson-meta .button{margin-top:10px;width:100%}.typing-topline .keyboard-hint{display:none}.live-metrics{grid-template-columns:repeat(2,1fr)}.typing-actions,.result-actions{display:grid}.lesson-header{display:block}.goal-chip{display:inline-block;margin-top:15px}}
.topbar-link{font-size:13px;font-weight:700;color:var(--green-2)}.topbar-link:hover{text-decoration:underline}.challenge-hero{margin-bottom:12px}.challenge-intro,.championship-callout{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:24px}.challenge-intro>div,.championship-callout>div{max-width:760px}.challenge-intro p,.championship-callout p{line-height:1.6}.challenge-intro form{flex:0 0 auto}.rank-highlight{background:var(--mint);border-radius:10px;padding:10px 14px;display:inline-block}.ranking-panel{margin-top:28px}.my-ranking-row{background:#eaf5ee}@media(max-width:800px){.challenge-intro,.championship-callout{display:block}.challenge-intro form,.championship-callout>.button{margin-top:16px}.topbar-link{font-size:12px}}@media(max-width:520px){.topbar-actions{gap:7px}.topbar-link{font-size:11px}.topbar-actions .user-chip{display:none}.topbar-actions .button-small{padding:8px}}
