:root{--ink:#101820;--muted:#5e6973;--line:#dce1e5;--paper:#f5f6f4;--white:#fff;--accent:#006b62;--accent2:#0b3c5d;--danger:#a52a2a;--radius:4px}*{box-sizing:border-box}html{font-family:"IBM Plex Sans",sans-serif;color:var(--ink);background:var(--paper)}body{margin:0;min-height:100vh}a{color:inherit;text-decoration:none}p{color:var(--muted);line-height:1.7}h1,h2,h3{line-height:1.12;margin:0 0 .65em}h1{font-size:clamp(2.25rem,5vw,4.5rem);letter-spacing:-.045em}h2{font-size:clamp(1.45rem,3vw,2.2rem)}button,input,textarea,select{font:inherit}.site-header{height:72px;background:var(--white);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1200px)/2));position:relative;z-index:2}.brand{display:flex;align-items:center;gap:12px;font-weight:600}.brand-mark,.cert-mark{background:var(--ink);color:#fff;font-family:"IBM Plex Mono";padding:8px}.site-header nav{display:flex;align-items:center;gap:24px;font-size:.92rem}.inline{display:inline}.link-button,.danger-link{background:none;border:0;padding:0;cursor:pointer;color:inherit}.danger-link{color:var(--danger)}main{min-height:calc(100vh - 150px)}footer{max-width:1200px;margin:auto;border-top:1px solid var(--line);padding:28px 0;display:flex;justify-content:space-between;color:var(--muted);font-size:.85rem}.eyebrow{font-family:"IBM Plex Mono";font-size:.75rem;letter-spacing:.12em;color:var(--accent);margin-bottom:18px}.hero{max-width:1200px;margin:auto;padding:120px 0 100px}.hero.compact{background:linear-gradient(90deg,transparent 70%,#e8ece9 70%);padding-left:0}.hero p,.landing-hero .lead{font-size:1.22rem}.section{max-width:1200px;margin:auto;padding:80px 0}.section-heading{margin-bottom:32px}.section-heading span,.module-admin header span{font-family:"IBM Plex Mono";font-size:.72rem;color:var(--accent);letter-spacing:.1em}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.course-card{background:var(--white);border:1px solid var(--line);padding:28px;display:flex;flex-direction:column;align-items:flex-start;min-height:310px}.course-card h3{font-size:1.45rem;margin-top:24px}.course-card p{flex:1}.card-code{font-family:"IBM Plex Mono";font-size:.76rem;border:1px solid var(--ink);padding:5px 8px}.meta{display:flex;gap:18px;color:var(--muted);font-size:.78rem;margin:12px 0 22px}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);border:1px solid var(--accent);color:#fff;padding:12px 20px;font-weight:600;cursor:pointer;border-radius:var(--radius)}.button:hover{background:#005950}.button.secondary{background:transparent;color:var(--ink);border-color:var(--line)}.button.small{padding:7px 12px;font-size:.85rem}.button.full{width:100%;margin-top:10px}.landing-hero{max-width:1200px;margin:auto;padding:90px 0;display:grid;grid-template-columns:1.4fr .75fr;gap:100px;align-items:center}.landing-hero h1{max-width:760px}.stat-row{display:flex;border-top:1px solid var(--line);margin-top:42px;padding-top:25px;gap:60px}.stat-row div{display:flex;flex-direction:column}.stat-row strong{font:500 1.7rem "IBM Plex Mono"}.stat-row span{font-size:.75rem;color:var(--muted);text-transform:uppercase}.registration-card,.panel{background:var(--white);padding:36px;border:1px solid var(--line);box-shadow:10px 10px 0 #e1e5e2}.status-dot{font:500 .7rem "IBM Plex Mono";color:var(--accent)}.status-dot:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#25a56a;margin-right:8px}.registration-card h2{margin-top:22px}label{display:flex;flex-direction:column;gap:7px;font-size:.83rem;font-weight:600;margin:16px 0}input,textarea,select{border:1px solid #bcc5cc;background:#fff;padding:11px;border-radius:2px;width:100%}input:focus,textarea:focus,select:focus{outline:2px solid #8bc7c1;border-color:var(--accent)}small{color:var(--muted)}.registration-card>small{display:block;text-align:center;margin-top:15px}.split{display:grid;grid-template-columns:1fr 1fr;gap:100px;border-top:1px solid var(--line)}.benefit-list{list-style:none;padding:0}.benefit-list li{padding:14px 0;border-bottom:1px solid var(--line)}.benefit-list li:before{content:"✓";color:var(--accent);margin-right:14px}.auth-wrap{min-height:70vh;display:grid;place-items:center;padding:60px 20px}.panel{width:min(440px,100%)}.panel.wide{width:min(680px,100%);text-align:center}.page-top{padding-top:65px}.back{display:inline-block;color:var(--muted);font-size:.85rem;margin-bottom:26px}.dashboard-head{display:flex;justify-content:space-between;align-items:center}.dashboard-head h1{font-size:3.2rem}.progress-ring{width:125px;height:125px;border:8px solid #dce6e2;border-top-color:var(--accent);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}.progress-ring strong{font:500 1.55rem "IBM Plex Mono"}.progress-ring span{font-size:.7rem;color:var(--muted)}.progress{height:6px;background:#dce2df;width:100%;overflow:hidden}.progress span{display:block;height:100%;background:var(--accent)}.progress.large{margin:25px 0 55px}.curriculum{display:grid;gap:24px}.module{background:#fff;border:1px solid var(--line)}.module header{display:flex;gap:20px;padding:25px}.module header>span{font:500 .75rem "IBM Plex Mono";color:var(--accent)}.module header h2{font-size:1.25rem}.module header p{margin:0}.lesson-row{border-top:1px solid var(--line);padding:17px 24px;display:grid;grid-template-columns:28px 1fr auto;align-items:center}.lesson-row:hover,.lesson-row.current{background:#f1f7f5}.lesson-state{color:var(--accent);font-family:"IBM Plex Mono"}.assessment-card{margin-top:24px;background:var(--ink);color:#fff;padding:32px;display:flex;justify-content:space-between;align-items:center}.assessment-card p{color:#bfc6ca;margin:0}.locked{font-size:.84rem;color:#bdc5c9}.lesson-page{max-width:1000px;margin:auto;padding:35px 0 80px}.lesson-top{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted)}.video-shell{aspect-ratio:16/9;background:#000}.video-shell iframe{width:100%;height:100%;border:0}.lesson-copy{background:#fff;padding:45px}.lesson-copy h1{font-size:2.5rem}.lesson-actions{display:flex;justify-content:space-between;align-items:center;margin-top:35px}.lesson-actions form{margin-left:auto}.exam-page{max-width:850px}.exam-page h1{font-size:3rem}.question{border:0;background:#fff;margin:25px 0;padding:30px}.question legend{font-size:1.12rem;font-weight:600;padding-top:30px}.question legend span{font:500 .7rem "IBM Plex Mono";color:var(--accent);margin-right:15px}.choice{margin:10px 0;font-weight:400}.choice input{position:absolute;opacity:0}.choice span{display:flex;gap:15px;border:1px solid var(--line);padding:14px;cursor:pointer}.choice input:checked+span{border-color:var(--accent);background:#eef7f5}.choice b{font-family:"IBM Plex Mono";color:var(--accent)}.result .score{width:120px;height:120px;border-radius:50%;display:grid;place-items:center;margin:0 auto 30px;font:600 1.8rem "IBM Plex Mono";background:#e7f3ed;color:var(--accent)}.result .score.fail{background:#f5e6e4;color:var(--danger)}.certificate{max-width:1100px;margin:50px auto;background:#fff;padding:18px;box-shadow:0 10px 35px #ccd1cf}.cert-border{border:2px solid var(--ink);outline:1px solid var(--ink);outline-offset:-8px;padding:80px;text-align:center;min-height:700px}.cert-mark{display:inline-block;margin-bottom:50px}.cert-border h1{font-size:3.5rem}.cert-border h2{font-size:3rem;border-bottom:1px solid var(--ink);display:inline-block;padding:0 50px 10px}.presented{margin-top:55px}.cert-data{display:grid;grid-template-columns:1fr 1fr 2fr;border-top:1px solid var(--line);margin-top:70px;padding-top:30px;text-align:left;gap:30px}.cert-data span{display:block;font:500 .65rem "IBM Plex Mono";color:var(--muted);margin-bottom:8px}.cert-data strong{font-size:.75rem;overflow-wrap:anywhere}.print-actions{text-align:center;margin-bottom:50px}.verify{text-align:center}.verify-icon{margin:auto auto 25px;width:75px;height:75px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:2rem}.verify-icon.revoked{background:var(--danger)}dl{display:grid;grid-template-columns:1fr 1.5fr;text-align:left;margin-top:35px}dt,dd{padding:12px;border-bottom:1px solid var(--line);margin:0}dt{color:var(--muted)}dd{font-weight:600}.flash-stack{position:fixed;z-index:5;top:82px;right:20px;max-width:600px}.flash{background:#fff;border-left:4px solid var(--accent);box-shadow:0 4px 20px #0002;padding:14px 20px;margin-bottom:10px}.flash.danger{border-color:var(--danger)}.flash.warning{border-color:#c98400}
.admin-layout{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 72px)}.admin-layout>aside{background:var(--ink);color:#fff;padding:35px 25px;display:flex;flex-direction:column;gap:40px}.admin-layout>aside nav{flex:1}.admin-brand{font-weight:600}.admin-main{padding:55px;max-width:1200px;width:100%}.admin-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px}.admin-head h1{font-size:3rem}.admin-list,.question-list{display:grid;gap:12px}.admin-list article,.question-list article{background:#fff;border:1px solid var(--line);padding:20px;display:grid;grid-template-columns:50px 1fr auto;gap:20px;align-items:center}.question-list article{grid-template-columns:1fr auto}.admin-list h3,.question-list h3{margin:0 0 8px}.status-pill{display:inline-block;font:500 .68rem "IBM Plex Mono";text-transform:uppercase;color:var(--accent);background:#e8f2ee;padding:5px 8px}.row-actions{display:flex;align-items:center;gap:16px;font-size:.85rem}.row-actions form{margin:0}.form-grid{background:#fff;border:1px solid var(--line);padding:30px;display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.form-grid label{margin:9px 0}.form-grid .span-2{grid-column:1/-1}.form-grid.narrow{max-width:800px}.check{flex-direction:row;align-items:center}.check input{width:auto}.subhead{margin-top:60px}.module-admin{display:grid;gap:18px;margin-bottom:30px}.module-admin section{background:#fff;border:1px solid var(--line)}.module-admin header{padding:20px;display:flex;justify-content:space-between;align-items:center}.module-admin h3{margin:5px 0 0}.admin-lesson{border-top:1px solid var(--line);display:grid;grid-template-columns:30px 1fr auto;padding:14px 20px;align-items:center}.admin-lesson small{display:block}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:30px 0}.stats-grid div{background:#fff;border:1px solid var(--line);padding:24px;display:flex;flex-direction:column}.stats-grid span{font-size:.76rem;color:var(--muted)}.stats-grid strong{font:500 1.8rem "IBM Plex Mono";margin-top:12px}
@media(max-width:800px){.site-header{padding:0 18px}.brand{font-size:.85rem}.site-header nav{gap:12px}.hero,.section,.landing-hero,.lesson-page{padding:55px 20px}.hero.compact{padding-left:20px}.landing-hero,.split{grid-template-columns:1fr;gap:40px}.landing-hero{padding-top:55px}.card-grid{grid-template-columns:1fr}.stat-row{gap:25px}.dashboard-head{align-items:flex-start}.progress-ring{width:90px;height:90px}.dashboard-head h1{font-size:2.3rem}.assessment-card{align-items:flex-start;gap:25px;flex-direction:column}.lesson-copy{padding:28px 20px}.lesson-actions{gap:10px}.cert-border{padding:40px 20px;min-height:auto}.cert-border h1{font-size:2.3rem}.cert-border h2{font-size:2rem;padding:0 10px}.cert-data{grid-template-columns:1fr;margin-top:35px}.admin-layout{grid-template-columns:1fr}.admin-layout>aside{display:none}.admin-main{padding:35px 18px}.admin-head{align-items:flex-start;gap:20px}.admin-head h1{font-size:2.2rem}.form-grid{grid-template-columns:1fr;padding:20px}.form-grid .span-2{grid-column:auto}.admin-list article{grid-template-columns:40px 1fr}.admin-list .row-actions{grid-column:1/-1}.stats-grid{grid-template-columns:1fr 1fr}footer{margin:0 20px}.flash-stack{left:15px;right:15px}}
@media print{.site-header,footer,.print-actions{display:none}.certificate{box-shadow:none;margin:0;max-width:none}.cert-border{min-height:95vh}}
