:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#172026;background:#f5f7f8;font-synthesis:none;text-rendering:optimizeLegibility;--surface: #ffffff;--surface-soft: #f7faf9;--line: #dce5e2;--text: #172026;--muted: #66746f;--green: #1f8a5b;--green-soft: #e4f4ec;--teal: #237f8d;--amber: #b56d18;--amber-soft: #fff2d9;--red: #b94034;--red-soft: #fde8e5;--blue: #3768b5;--blue-soft: #e8f0ff;--shadow: 0 18px 45px rgba(25, 36, 33, .08)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,textarea,select{font:inherit}button,a.secondary-button,a.primary-button{min-height:40px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.65}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);padding:10px 12px;outline:none}textarea{min-height:92px;resize:vertical}label{display:grid;gap:7px;color:var(--muted);font-size:.9rem}table{width:100%;border-collapse:collapse;min-width:640px}th,td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{color:var(--muted);font-size:.78rem;text-transform:uppercase}td{color:#23312d;font-size:.92rem}.boot-screen,.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-page{background:linear-gradient(135deg,#1f8a5b24,#3768b51a),#eef3f1}.login-hero{width:min(1050px,100%);display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:stretch}.login-copy,.login-card,.panel,.stat-card,.training-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.login-copy{min-height:520px;padding:38px;display:grid;align-content:space-between;background:linear-gradient(#1720268c,#17202694),url(https://images.unsplash.com/photo-1521737711867-e3b97375f902?auto=format&fit=crop&w=1400&q=80);background-size:cover;background-position:center;color:#fff}.login-copy h1{max-width:680px;margin:0;font-size:clamp(2rem,5vw,4rem);line-height:1.05;letter-spacing:0}.login-copy p{max-width:620px;color:#ffffffdb;font-size:1.05rem}.brand{display:flex;gap:12px;align-items:center}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:8px;background:#1f8a5b;color:#fff;font-weight:800}.brand strong,.brand span{display:block}.brand span{color:inherit;opacity:.74;font-size:.86rem}.login-card{padding:34px;display:grid;align-content:center;gap:18px}.login-card h2{margin:0}.auth-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.auth-tabs button{min-height:38px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-weight:750}.auth-tabs button.active{background:#fff;color:var(--green);box-shadow:0 1px 4px #19242114}.login-icon{width:48px;height:48px;border-radius:8px;display:grid;place-items:center;background:var(--green-soft);color:var(--green)}.form-error,.notice{padding:12px 14px;border-radius:8px;background:var(--amber-soft);color:#6d420f;border:1px solid #f1c982}.field-hint{color:var(--red);font-size:.82rem}.primary-button,.secondary-button,.row-actions button,.module-row{border:0;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}.primary-button{background:var(--green);color:#fff;padding:11px 16px;font-weight:750}.secondary-button{background:#edf4f1;color:#1d6146;padding:10px 14px;font-weight:700;border:1px solid #cfe1d9}.app-shell{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:20px;background:#17342b;color:#fff;display:flex;flex-direction:column;gap:24px}.sidebar nav{display:grid;gap:8px}.sidebar nav button,.logout-button{width:100%;border:0;border-radius:8px;background:transparent;color:#ffffffd1;display:flex;align-items:center;gap:10px;padding:12px;text-align:left}.sidebar nav button.nav-active,.sidebar nav button:hover,.logout-button:hover{background:#ffffff1f;color:#fff}.logout-button{margin-top:auto}.shell-main{min-width:0}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#ffffffe6;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar div{display:grid;gap:2px;text-align:right}.topbar span{color:var(--muted);font-size:.84rem}.topbar strong{color:var(--text)}.icon-button{width:40px;height:40px;border:1px solid var(--line);background:#fff;color:var(--text);border-radius:8px;display:grid;place-items:center}.mobile-only{display:none}main{padding:28px}.page-grid{display:grid;gap:22px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}.section-heading span{color:var(--green);font-weight:800;font-size:.78rem;text-transform:uppercase}.section-heading h1{margin:4px 0 0;font-size:clamp(1.65rem,3vw,2.5rem);letter-spacing:0}.stats-grid{display:grid;grid-template-columns:repeat(5,minmax(160px,1fr));gap:14px}.stat-card{padding:18px;display:flex;gap:14px;align-items:center}.stat-icon{width:42px;height:42px;border-radius:8px;display:grid;place-items:center;background:var(--green-soft);color:var(--green)}.stat-card span,.stat-card small{display:block;color:var(--muted);font-size:.83rem}.stat-card strong{display:block;font-size:1.55rem;line-height:1.1}.panel{padding:20px;min-width:0}.panel h2,.panel h3{margin:0 0 14px}.two-column,.editor-layout,.student-module-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:18px;align-items:start}.editor-layout{grid-template-columns:360px minmax(0,1fr)}.table-wrap{overflow-x:auto}.form-grid,.compact-form{display:grid;gap:13px}.inline-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.check-row{display:flex;align-items:center;gap:8px}.check-row input{width:auto}.picker{border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:grid;gap:8px}.picker legend{padding:0 6px;color:var(--muted);font-size:.82rem}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.row-actions button{background:#eef4f2;color:#23423a;padding:8px 10px}.badge{display:inline-flex;align-items:center;min-height:24px;border-radius:8px;padding:3px 8px;font-size:.78rem;font-weight:750;width:fit-content}.badge-green{background:var(--green-soft);color:var(--green)}.badge-amber{background:var(--amber-soft);color:var(--amber)}.badge-red{background:var(--red-soft);color:var(--red)}.badge-blue{background:var(--blue-soft);color:var(--blue)}.badge-neutral{background:#edf1f0;color:#5b6965}.empty-state{min-height:110px;border:1px dashed #c7d5d0;border-radius:8px;display:grid;place-items:center;text-align:center;gap:6px;padding:20px;color:var(--muted)}.empty-state strong{color:var(--text)}.module-admin-grid{display:grid;grid-template-columns:380px minmax(0,1fr);gap:18px;align-items:start}.module-list{display:grid;gap:18px}.list-stack,.stack-box{display:grid;gap:10px}.editor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px}.editor-toolbar h2,.editor-toolbar h3{margin:0}.editor-box{border:1px solid var(--line);border-radius:8px;padding:14px;background:var(--surface-soft)}.form-actions{display:flex;gap:10px;flex-wrap:wrap}.form-actions .primary-button,.form-actions .secondary-button{flex:1 1 160px}.module-detail-tabs{display:inline-flex;gap:6px;padding:4px;margin-bottom:18px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.module-detail-tabs button{min-height:36px;border:0;border-radius:6px;background:transparent;color:var(--muted);padding:8px 14px;font-weight:750}.module-detail-tabs button.active{background:#fff;color:var(--green);box-shadow:0 1px 4px #19242114}.plain-select{width:100%;min-height:0;border:0;border-radius:0;padding:0;background:transparent;color:var(--text);text-align:left}.selected-mini-card{border-color:var(--green);box-shadow:0 0 0 3px #1f8a5b1f}.module-row{width:100%;background:#fff;border:1px solid var(--line);color:var(--text);padding:12px;justify-content:space-between;text-align:left}.module-row.selected,.training-card.selected{border-color:var(--green);box-shadow:0 0 0 3px #1f8a5b1f}.module-row div,.mini-card div{min-width:0}.module-row strong,.module-row span,.mini-card strong,.mini-card span{display:block}.module-row span,.mini-card span{color:var(--muted);font-size:.84rem;overflow-wrap:anywhere}.detail-title{display:flex;align-items:start;justify-content:space-between;gap:14px;margin-bottom:18px}.detail-title h2{margin:0 0 4px}.detail-title p{margin:0;color:var(--muted)}.split-panels{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(280px,1.1fr);gap:16px;border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.mini-card{border:1px solid var(--line);border-radius:8px;padding:12px;display:flex;gap:12px;align-items:start;justify-content:space-between}.mini-card.vertical{display:grid}.module-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.training-card{min-height:180px;text-align:left;border:1px solid var(--line);padding:18px;position:relative;display:grid;align-content:space-between;gap:12px;color:var(--text)}.training-card h2{margin:16px 0 0;font-size:1.25rem}.training-card p{margin:0;color:var(--muted)}.card-ribbon{position:absolute;top:0;left:0;right:0;height:8px;border-radius:8px 8px 0 0;background:linear-gradient(90deg,#1f8a5b,#237f8d,#d3982c)}.progress-track{height:8px;background:#e6edeb;border-radius:8px;overflow:hidden}.progress-track span{display:block;height:100%;background:var(--green)}.content-timeline{display:grid;gap:14px}.content-item{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px}.content-check{width:40px;height:40px;border-radius:8px;display:grid;place-items:center;color:var(--green);background:var(--green-soft)}.content-item.locked .content-check{color:var(--muted);background:#edf2f1}.content-body{border:1px solid var(--line);border-radius:8px;padding:14px;display:grid;gap:12px}.content-item.locked .content-body{background:#f8faf9}.content-header{display:flex;justify-content:space-between;gap:10px}.locked-content{min-height:78px;border:1px dashed #b9c9c4;border-radius:8px;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;text-align:center}.content-text p{white-space:pre-wrap;margin:0 0 10px;color:#33423e}.content-text a,.content-body a{color:var(--blue);font-weight:700;overflow-wrap:anywhere}.content-media,.question-image{width:100%;max-height:360px;object-fit:contain;border-radius:8px;border:1px solid var(--line);background:#f8faf9}.assessment-form,.question-box{display:grid;gap:12px}.assessment-form{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}.assessment-overlay{position:fixed;inset:0;z-index:100;overflow:auto;background:#f5f7f8;padding:24px}.assessment-shell{width:min(980px,100%);min-height:calc(100vh - 48px);margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:grid;grid-template-rows:auto 1fr auto}.assessment-header,.assessment-submit-bar{background:var(--surface);padding:20px 24px}.assessment-header{border-bottom:1px solid var(--line);display:flex;align-items:start;justify-content:space-between;gap:16px}.assessment-header span{color:var(--green);font-size:.78rem;font-weight:850;letter-spacing:0;text-transform:uppercase}.assessment-header h1{margin:4px 0 0;font-size:clamp(1.55rem,2vw,2.25rem)}.assessment-question-list{display:grid;align-content:start;gap:16px;padding:24px}.assessment-submit-bar{border-top:1px solid var(--line);display:flex;justify-content:flex-end;position:sticky;bottom:0}.question-box{border:1px solid var(--line);border-radius:8px;padding:12px}.question-box legend{display:grid;gap:2px;padding:0 6px;font-weight:750}.question-box legend span{color:var(--muted);font-weight:500;font-size:.8rem}@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-column,.editor-layout,.student-module-layout,.module-admin-grid,.split-panels{grid-template-columns:1fr}}@media(max-width:760px){.login-hero{grid-template-columns:1fr}.login-copy{min-height:380px;padding:24px}.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);transform:translate(-100%);transition:transform .16s ease;z-index:20}.sidebar.sidebar-open{transform:translate(0)}.mobile-only{display:grid}.topbar{padding:0 16px}.topbar div{text-align:right}main{padding:18px}.section-heading,.detail-title,.content-header{align-items:stretch;flex-direction:column}.stats-grid,.inline-fields{grid-template-columns:1fr}.login-card{padding:24px}}
