@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Source+Serif+4:wght@600;700&display=swap');
:root{--blue:#0e506a;--blue2:#083b50;--light:#edf6f8;--gold:#c88922;--text:#233640;--muted:#657680;--line:#d7e1e5;--ok:#207347;--warn:#9a650d;--danger:#a43a32;--shadow:0 16px 45px #173a4a18}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--text);background:#f6f9fa;line-height:1.55}a{text-decoration:none;color:var(--blue)}img{max-width:100%}.wrap{width:min(1180px,calc(100% - 36px));margin:auto}
.app-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.nav-wrap{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:20px}.app-brand{display:flex;align-items:center;gap:10px;color:var(--blue2)}.app-brand img{width:58px;height:58px;object-fit:contain}.app-brand span{display:flex;flex-direction:column}.app-brand b{font-size:1.15rem}.app-brand small{font-size:.68rem;color:var(--muted)}nav{display:flex;align-items:center;gap:16px;flex-wrap:wrap}nav>a{font-size:.78rem;font-weight:700;color:#4d606a}nav>a.active{color:var(--blue)}.user-chip{display:flex;flex-direction:column;font-size:.7rem;font-weight:800;color:var(--blue2);border-left:1px solid var(--line);padding-left:13px}.user-chip small{font-weight:500;color:var(--muted);text-transform:capitalize}
.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;background:var(--blue);color:#fff!important;padding:11px 16px;font-weight:800;font-size:.78rem;cursor:pointer}.button:hover{background:var(--blue2)}.button.small{padding:8px 12px}.button.outline{background:#fff;color:var(--blue)!important;border:1px solid var(--blue)}.button.gold{background:var(--gold)}.button.danger{background:var(--danger)}button:disabled,.disabled{opacity:.45;pointer-events:none}
.hero{background:linear-gradient(135deg,var(--blue2),var(--blue));color:#fff;padding:80px 0}.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:45px;align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;font-weight:900;color:var(--gold)}.hero h1,.page-title h1{font-family:"Source Serif 4",Georgia,serif;font-size:clamp(2.5rem,5vw,4.7rem);line-height:1.03;margin:12px 0}.hero p{font-size:1.08rem;color:#d6e9ef;max-width:700px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}.hero-card{background:#ffffff12;border:1px solid #ffffff2b;border-radius:20px;padding:28px;backdrop-filter:blur(8px)}.hero-card img{width:135px;display:block;margin:auto}.hero-card ul{padding-left:20px;color:#dcecf0}
.section{padding:65px 0}.section-head{max-width:760px;margin-bottom:28px}.section-head h2{font-family:"Source Serif 4",Georgia,serif;color:var(--blue2);font-size:2.25rem;margin:7px 0}.grid{display:grid;gap:18px}.grid.courses{grid-template-columns:repeat(3,1fr)}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:var(--shadow)}.card h3{color:var(--blue2);margin:10px 0}.course-icon{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;background:var(--light);color:var(--blue);font-weight:900}.meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:.72rem}.card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:18px;border-top:1px solid var(--line);padding-top:15px}
.page-title{background:var(--blue2);color:#fff;padding:45px 0}.page-title h1{font-size:2.8rem}.page-title p{color:#cfe4eb}.dashboard{padding:42px 0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:26px}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px}.stat strong{display:block;font-size:2rem;color:var(--blue2)}.stat span{font-size:.72rem;color:var(--muted)}.progress{height:8px;background:#dce7ea;border-radius:99px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--gold))}
.auth-shell{min-height:calc(100vh - 82px);display:grid;place-items:center;padding:45px 18px;background:linear-gradient(135deg,#eaf4f7,#fff)}.auth-card{width:min(520px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:32px;box-shadow:var(--shadow)}.auth-card>img{width:100px;display:block;margin:auto}.auth-card h1{text-align:center;color:var(--blue2)}.form-group{display:flex;flex-direction:column;gap:6px;margin:15px 0}.form-group label{font-size:.75rem;font-weight:800;color:var(--blue2)}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px;font:inherit;background:#fff}.form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:20px}.hint{background:var(--light);border-radius:10px;padding:12px;font-size:.72rem;color:var(--muted)}
.flash{width:min(900px,calc(100% - 36px));margin:14px auto 0;padding:12px 16px;border-radius:10px;font-size:.8rem}.flash.success{background:#e8f6ee;color:var(--ok);border:1px solid #b7dcc6}.flash.error{background:#fff0ef;color:var(--danger);border:1px solid #e6b5b1}.flash.info{background:#eef5ff;color:#265c96;border:1px solid #bed3e9}
.course-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:20px;padding:35px 0}.course-side,.lesson{background:#fff;border:1px solid var(--line);border-radius:16px}.course-side{padding:18px;height:max-content;position:sticky;top:105px}.module-link{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:10px;color:var(--text);font-size:.75rem}.module-link:hover,.module-link.active{background:var(--light)}.module-num{min-width:28px;height:28px;border-radius:50%;background:#e3edf0;display:grid;place-items:center;font-weight:900;color:var(--blue)}.module-num.done{background:#dff2e7;color:var(--ok)}.lesson{padding:30px}.lesson h1{font-family:"Source Serif 4",Georgia,serif;color:var(--blue2);font-size:2.3rem}.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{background:var(--light);border-radius:99px;padding:7px 10px;font-size:.7rem;font-weight:700;color:var(--blue)}.callout{background:#fff7e9;border-left:4px solid var(--gold);padding:16px;border-radius:8px;margin:20px 0}.numbered{counter-reset:item;list-style:none;padding:0}.numbered li{counter-increment:item;display:flex;gap:10px;margin:10px 0}.numbered li:before{content:counter(item);width:27px;height:27px;border-radius:50%;background:var(--light);display:grid;place-items:center;color:var(--blue);font-weight:900;flex:0 0 auto}.resource-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.resource{border:1px solid var(--line);border-radius:10px;padding:13px;display:flex;gap:10px;align-items:center}.resource b{font-size:.75rem}.resource span{font-size:.65rem;color:var(--muted)}.submission{border:1px solid var(--line);border-radius:12px;padding:18px;margin:20px 0}.status{display:inline-flex;border-radius:99px;padding:5px 9px;font-size:.66rem;font-weight:800;text-transform:uppercase}.status.pending{background:#fff2da;color:var(--warn)}.status.submitted{background:#edf5ff;color:#275e94}.status.approved,.status.active,.status.completed{background:#e5f5eb;color:var(--ok)}.status.rejected,.status.disabled{background:#ffe9e7;color:var(--danger)}
.quiz-q{border:1px solid var(--line);border-radius:12px;padding:15px;margin:13px 0}.quiz-q legend{font-weight:800;color:var(--blue2)}.quiz-q label{display:block;padding:7px;font-size:.8rem}.quiz-q label:hover{background:var(--light)}
.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{text-align:left;padding:12px;border-bottom:1px solid var(--line);font-size:.74rem;vertical-align:top}.data-table th{background:var(--light);color:var(--blue2)}.admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:15px;padding:22px;margin-bottom:18px}.panel h2{color:var(--blue2)}
.certificate-wrap{padding:35px 0}.certificate-card{background:#fff;border:1px solid var(--line);padding:22px;border-radius:15px;overflow:auto}.certificate-card svg{min-width:920px;width:100%;display:block}.cert-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.verify-box{max-width:750px;margin:45px auto;background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px;text-align:center}.verify-result{text-align:left;margin-top:20px;padding:18px;border-radius:12px}.verify-result.valid{background:#e8f6ee;border:1px solid #b7dcc6}.verify-result.invalid{background:#fff0ef;border:1px solid #e6b5b1}
.app-footer{background:var(--blue2);color:#c5dce3;padding:30px 0;margin-top:50px}.app-footer .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px}.app-footer div>div{display:flex;align-items:center;gap:8px;color:#fff}.app-footer img{width:48px}
@media(max-width:950px){nav>a:not(.button){display:none}.hero-grid,.course-layout,.admin-grid{grid-template-columns:1fr}.grid.courses{grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr 1fr}.course-side{position:static}.resource-list{grid-template-columns:1fr}}
@media(max-width:620px){.wrap{width:min(100% - 24px,1180px)}.grid.courses,.stats{grid-template-columns:1fr}.hero{padding:55px 0}.hero h1{font-size:2.8rem}.nav-wrap{min-height:70px}.app-brand img{width:48px;height:48px}.user-chip{display:none}.lesson{padding:20px}.lesson h1{font-size:1.9rem}.app-footer .wrap{flex-direction:column;text-align:center}}
@media print{.app-header,.app-footer,.cert-actions,.flash{display:none!important}.certificate-card{border:0;padding:0}.certificate-card svg{min-width:0}}
