:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#28263e;background:#f7f7fb;font-synthesis:none;--primary:#514298;--ink:#28263e;--muted:#797589;--border:#e9e6f0;--pink:#cc568c}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer;border:0}button:disabled{opacity:.55;cursor:wait}a{color:var(--primary);text-underline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:-.8px;font-weight:650;line-height:1.25}h2{font-size:20px;font-weight:650}h3{font-size:16px;line-height:1.4}p{line-height:1.65}small,.muted{color:var(--muted);font-size:13px;line-height:1.6}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:1.6px;font-weight:700;color:var(--muted)}.loading{text-align:center;padding:100px 20px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border-radius:10px;padding:11px 17px;background:var(--primary);color:white;font-size:13px;font-weight:600;text-decoration:none}.btn.secondary{background:#f0edf8;color:var(--primary)}.btn.ghost{background:white;border:1px solid var(--border);color:#645d78}.btn.danger{background:#fcf0f5;color:#ab3e6c}.btn.small{min-height:38px;padding:8px 12px;font-size:12px}.actions{display:flex;flex-wrap:wrap;gap:8px}.icon{width:19px;height:19px;display:inline-block;flex-shrink:0;vertical-align:middle}.brand{display:flex;gap:12px;align-items:center}.brand-mark{display:grid;place-items:center;background:var(--primary);color:white;border-radius:12px;width:42px;height:42px;flex-shrink:0}.brand b{display:block;font-size:14px;line-height:1.35}.brand small{font-size:10px;letter-spacing:1.3px;text-transform:uppercase}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:white;border-right:1px solid var(--border);padding:32px 22px;position:fixed;inset:0 auto 0 0;width:240px;display:flex;flex-direction:column}.sidebar nav{margin-top:45px;display:grid;gap:6px}.nav-btn{display:flex;align-items:center;text-align:left;gap:11px;background:transparent;color:#807991;border-radius:10px;padding:13px 12px;width:100%;font-size:13px}.nav-btn.active{background:#f1edf9;color:var(--primary);font-weight:650}.sidebar-footer{margin-top:auto;border-top:1px solid var(--border);padding-top:24px}.sidebar-footer p{font-size:12px;margin:0}.role-label{display:inline-block;background:#f4f0fa;color:var(--primary);font-size:10px;padding:4px 8px;border-radius:6px;margin-bottom:10px}.content{grid-column:2;min-width:0}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 42px}.breadcrumb{font-size:12px;color:#8a829b}.top-actions{display:flex;gap:15px;align-items:center}.notification-btn{background:none;position:relative;color:#726c85;padding:8px}.notification-btn .count{position:absolute;top:1px;right:0;border:2px solid white;background:var(--pink);color:white;font-size:9px;min-width:16px;height:16px;border-radius:20px;display:grid;place-items:center}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#ece7f6;color:#65518f;font-size:12px;font-weight:700}.top-name{font-size:12px;font-weight:600}main{max-width:1280px;margin:0 auto;padding:35px 42px 50px}.heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}.heading h1{margin-bottom:6px}.heading p{margin:0;font-size:13px;color:var(--muted)}.pill{display:inline-block;border:1px solid #e9e3f5;background:#f5f2fb;color:#776398;border-radius:30px;padding:6px 10px;font-size:11px;white-space:nowrap}.pill.success{color:#337f66;background:#eef8f3;border-color:#dbeee5}.pill.warning{color:#a26e36;background:#fff8ed;border-color:#f4e7d2}.grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,1fr);gap:22px}.card{background:white;border:1px solid var(--border);border-radius:16px;padding:25px;margin-bottom:22px}.card h2{margin-bottom:17px}.hero{position:relative;overflow:hidden;background:linear-gradient(115deg,#50408d,#7470b5);color:white;border:0;min-height:160px;padding:28px 30px}.hero:after{content:"";position:absolute;width:250px;height:250px;border:1px solid #ffffff15;border-radius:50%;right:-65px;top:-65px;box-shadow:0 0 0 38px #ffffff07,0 0 0 80px #ffffff05;pointer-events:none}.hero .eyebrow{color:#d8d0ec}.hero h2{font-size:25px;max-width:470px;margin:13px 0 10px;position:relative;z-index:1}.hero p{font-size:12px;color:#e3dcef;max-width:470px;margin:0}.lesson-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.lesson-head h2{margin:0}.lesson-num{color:var(--primary);font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.lesson-title{font-size:25px;margin:12px 0 8px;line-height:1.3}.lecturer{margin-bottom:25px;font-size:13px;color:var(--muted)}.audio-box{background:#f7f6fa;border:1px solid #eeebf3;border-radius:12px;padding:15px;margin:20px 0}.audio-box .row{margin-bottom:9px;font-size:12px}.audio-box audio{width:100%;height:42px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.exam-box{margin-top:24px;border-top:1px solid var(--border);padding-top:22px}.exam-box h3{margin-bottom:6px}.exam-box p{font-size:12px;color:var(--muted);margin-bottom:15px}.progress-large{display:flex;align-items:baseline;gap:6px;margin:17px 0 15px}.progress-large strong{font-size:33px;font-weight:650;color:var(--primary)}.progress-large span{font-size:13px;color:var(--muted)}.progress-track{display:flex;gap:4px;margin-bottom:13px}.progress-track i{height:7px;flex:1;background:#eeebf4;border-radius:3px}.progress-track i.done{background:#6454aa}.progress-track i.current{background:#b8acd5}.timeline{display:grid;gap:0;margin-top:16px}.step{display:flex;align-items:center;gap:12px;font-size:12px;padding:9px 0;color:#827a92}.step b{display:grid;place-items:center;flex-shrink:0;width:25px;height:25px;border:1px solid #e8e2f1;border-radius:50%;font-size:10px;font-weight:500}.step.done b{background:#f0edf8;color:var(--primary);border:0}.step.active{font-weight:600;color:var(--primary)}.step.active b{background:var(--primary);color:white;border:0}.notice{background:#fbf6ef;border:1px solid #f2e6d6;color:#967241;border-radius:10px;padding:12px 15px;font-size:12px;line-height:1.6;margin-bottom:20px}.notice.soft{background:#f6f3fc;border-color:#e8e1f5;color:#776391}.notice.success{background:#f1f9f5;border-color:#dceee4;color:#3e8166}.note-icon{display:flex;align-items:flex-start;gap:10px}.lesson-list{display:grid;gap:0}.lesson-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid #f1eef6;text-decoration:none;background:transparent;text-align:left;color:var(--ink);width:100%}.lesson-row:first-child{border-top:0}.lesson-number{flex-shrink:0;display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#f6f4fa;color:#9a90ad;font-size:12px}.lesson-row.current .lesson-number{background:#eee8f9;color:var(--primary)}.lesson-row.done .lesson-number{background:#edf7f1;color:#418167}.lesson-row .lesson-text{flex:1;font-size:12px;line-height:1.4}.lesson-row .lesson-text small{display:block;font-size:10px;margin-top:2px}.lesson-row.locked{opacity:.65;cursor:default}.lesson-row .icon{width:14px;height:14px;color:#aea5bd}.footer-note{text-align:center;font-size:11px;color:#aaa0b5;margin:15px 0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.metric{padding:19px 22px;margin-bottom:0}.metric strong{display:block;font-size:27px;margin:12px 0 3px;color:var(--primary)}.metric small{font-size:11px}.person{border-top:1px solid var(--border);padding:19px 0}.person:last-child{padding-bottom:0}.person:first-of-type{border-top:0;padding-top:0}.person h3{margin-bottom:3px}.person p{font-size:12px;color:var(--muted);margin:5px 0 12px}.person .row{align-items:flex-start}.search{max-width:320px;margin-bottom:15px}label{display:block;font-size:12px;font-weight:600;margin:15px 0 7px;color:#5b536c}input,textarea,select{width:100%;border:1px solid #ded8e8;background:#fff;border-radius:9px;min-height:43px;padding:10px 12px;color:var(--ink);outline:none}input:focus,textarea:focus,select:focus{border-color:#9582c6;box-shadow:0 0 0 3px #7f67b512}textarea{min-height:110px;resize:vertical;line-height:1.6}.check{display:flex;align-items:flex-start;gap:9px;line-height:1.6;font-weight:400}.check input{width:16px;min-height:16px;flex-shrink:0;accent-color:var(--primary);margin-top:2px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.form-actions{margin-top:22px}.empty{padding:22px;text-align:center;color:var(--muted);font-size:13px;background:#faf9fc;border-radius:10px;line-height:1.6}.questions{padding-left:22px;font-size:14px;line-height:1.8}.questions li{padding-left:5px;margin-bottom:15px}.preline{white-space:pre-line;font-size:14px;line-height:1.85}.history-item{padding:16px 0;border-top:1px solid var(--border);font-size:12px}.history-item:first-child{border-top:0}.history-item p{margin:8px 0 0;color:var(--muted);font-size:12px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}td,th{padding:12px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}th{font-size:10px;text-transform:uppercase;color:var(--muted);font-weight:500}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:white}.auth-story{background:#f2eff8;padding:65px max(35px,calc((100vw - 1250px)/2));display:flex;flex-direction:column;justify-content:center}.auth-story h1{font-size:44px;margin:70px 0 23px;color:#443476;line-height:1.15;max-width:440px}.auth-story>p{font-size:15px;color:#81748f;max-width:400px}.auth-features{margin:35px 0;color:#67597e;display:grid;gap:18px;font-size:13px}.auth-features div{display:flex;align-items:center;gap:13px}.auth-story .brand{margin-bottom:auto}.auth-story footer{margin-top:auto;font-size:11px;color:#a396b3;padding-top:60px}.auth-form{padding:45px;display:flex;align-items:center;justify-content:center}.auth-inner{max-width:410px;width:100%}.auth-inner h2{font-size:28px;margin-bottom:8px}.auth-tabs{display:flex;gap:8px;margin:28px 0 22px;background:#f5f3f9;border-radius:10px;padding:4px}.auth-tabs button{background:transparent;color:#8c7f9d;font-size:12px;padding:11px;flex:1;border-radius:8px}.auth-tabs button.active{background:white;color:var(--primary);box-shadow:0 1px 5px #4434760a}.auth-inner form>.btn{margin-top:22px;width:100%}.auth-inner details{font-size:12px;line-height:1.7;color:var(--muted);margin-top:18px}.auth-inner summary{cursor:pointer}.auth-inner .preline{font-size:12px;margin-top:15px}dialog{border:1px solid var(--border);border-radius:18px;padding:28px;max-width:600px;width:calc(100% - 30px);max-height:88vh;color:var(--ink);box-shadow:0 25px 100px #2d194633}dialog::backdrop{background:#29203566}dialog .close{background:transparent;color:#8a7b9b;font-size:25px;padding:0 6px}dialog h2{margin:0;font-size:21px}dialog>.row{margin-bottom:20px}#dialog-content>.row{margin-bottom:20px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#373048;color:#fff;padding:14px 23px;border-radius:12px;font-size:13px;z-index:1000;max-width:90vw;box-shadow:0 10px 30px #39264d22}#toast.error{background:#a14468}.notification-item{padding:15px 0;border-top:1px solid var(--border);font-size:13px}.notification-item.unread{font-weight:600}.notification-item small{display:block;margin-top:5px}.file-field{background:#f9f7fc;border-radius:10px;padding:15px;margin-top:18px}.file-field label{margin-top:0}.file-field input{font-size:12px;padding:8px}.file-field .btn{margin-top:10px}.lesson-admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.lesson-admin-grid .card{margin:0;display:flex;flex-direction:column}.lesson-admin-grid h3{margin:10px 0}.lesson-admin-grid .actions{margin-top:auto;padding-top:15px}.completed-card{text-align:center;padding:42px}.completed-card h2{font-size:29px;color:var(--primary)}.completed-card .brand-mark{margin:0 auto 24px;width:60px;height:60px}.info-line{font-size:11px;color:var(--muted);margin-top:13px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
@media(min-width:1600px){main{padding-top:45px}}@media(max-width:1150px){.shell{grid-template-columns:205px 1fr}.sidebar{width:205px;padding:27px 16px}.topbar{padding:0 27px}main{padding:28px 27px}.grid{grid-template-columns:1.4fr 1fr;gap:17px}.card{padding:21px}.lesson-admin-grid{grid-template-columns:repeat(2,1fr)}.auth-story{padding:45px 35px}.auth-story h1{font-size:39px}}
@media(max-width:850px){.shell{display:block}.sidebar{position:static;width:100%;padding:17px 20px;border-right:0;border-bottom:1px solid var(--border)}.sidebar .brand b{font-size:13px}.sidebar .brand small{display:none}.sidebar nav{display:flex;overflow:auto;margin-top:18px;gap:4px}.nav-btn{white-space:nowrap;width:auto;padding:10px 12px;font-size:12px;flex-shrink:0}.sidebar-footer{display:none}.content{display:block}.topbar{height:55px;padding:0 20px}.top-name{display:none}main{padding:25px 20px}.grid{grid-template-columns:1.5fr 1fr}.heading h1{font-size:26px}.metrics{gap:10px}.metric{padding:17px}.auth-story{padding:40px 28px}.auth-story h1{font-size:34px}.auth-form{padding:30px}}
@media(max-width:650px){.grid{display:block}.card{border-radius:13px;padding:21px;margin-bottom:17px}.heading{align-items:flex-start;margin-bottom:22px}.heading .pill{display:none}.hero{padding:26px 24px;min-height:145px}.hero h2{font-size:24px}.lesson-title{font-size:23px}.metrics{grid-template-columns:repeat(2,1fr);margin-bottom:18px}.metric{margin:0}.lesson-admin-grid{grid-template-columns:1fr}.auth{display:block}.auth-story{padding:25px}.auth-story h1{font-size:28px;margin:28px 0 12px;max-width:none}.auth-story>p{font-size:13px;margin:0;max-width:none}.auth-story footer,.auth-features{display:none}.auth-form{padding:30px 25px;align-items:flex-start}.auth-inner{max-width:none}.auth-inner h2{font-size:24px}.auth-tabs{margin-top:22px}.form-grid{grid-template-columns:1fr}.person .row{flex-wrap:wrap}.sidebar nav .icon{width:15px;height:15px}.topbar .breadcrumb{font-size:11px}dialog{padding:22px}.actions .btn{flex-grow:1}.notice{font-size:11px}.card h2{font-size:18px}main{padding:23px 16px}.completed-card h2{font-size:24px}}

/* Stage 1: one palette, with labels retained for every colour-coded state. */
:root{--primary:#594299;--pink:#c51f79;--muted:#70667f;--blue:#185f9d;--purple:#743b93;--raspberry:#aa205f;--border:#e7e2f0}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.nav-btn.active{background:#eee8f8;color:#503185;box-shadow:inset 3px 0 0 var(--primary)}
.nav-btn:hover:not(.active){background:#f8f5fc;color:#594299}
.btn.secondary{background:#eee8f8;color:#503185}.btn.danger{background:#fceaf2;color:#9c205b}
.hero{background:linear-gradient(115deg,#204f91 0%,#594299 65%,#793b8e 100%)}
.hero .eyebrow,.hero p{color:#f4efff}
.pill{white-space:normal;line-height:1.45;max-width:100%;color:#604080;background:#f4eef9;border-color:#e6daf0}
.pill.success{color:#185b91;background:#eaf4fc;border-color:#cee3f4}
.pill.learning{color:#5b358b;background:#f1eafb;border-color:#e1d3f2}
.pill.scheduled{color:#743080;background:#f8eafa;border-color:#ebd2ef}
.pill.waiting{color:#7d3b89;background:#f7effb;border-color:#e9d9f1}
.pill.warning{color:#9c215f;background:#fff0f6;border-color:#f1d0e1}
.pill.danger{color:#9a174f;background:#fce8f0;border-color:#efbfd2}
.notice{background:#fff1f7;border-color:#f0d3e1;color:#8b2857}
.notice.soft{background:#f5f0fc;border-color:#e4d8f4;color:#664582}
.notice.success{background:#edf5fc;border-color:#d1e4f3;color:#225e8f}
.progress-large strong{color:var(--blue)}
.progress-track i.done{background:var(--blue)}.progress-track i.current{background:var(--pink)}
.step.done b{background:#eaf3fc;color:var(--blue)}
.step.active{color:var(--primary)}.step.active b{background:var(--primary);color:#fff}
.lesson-row.done .lesson-number{background:#eaf3fc;color:var(--blue)}
.lesson-row.current .lesson-number{background:#eee5fa;color:#5c358f;box-shadow:inset 0 0 0 1px #d9c7ee}
.lesson-num{color:var(--primary)}
.audio-box{background:#f0f6fc;border-color:#dbe8f4}.audio-box .icon{color:var(--blue)}
.metric{border-top:3px solid var(--metric-color,var(--primary));background:linear-gradient(180deg,var(--metric-tint,#f5f0fc),#fff 80%)}
.metric strong{color:var(--metric-color,var(--primary))}.metric .eyebrow{color:var(--metric-color,var(--primary));line-height:1.5}
.metric:nth-child(1){--metric-color:#a02666;--metric-tint:#fff1f7}
.metric:nth-child(2){--metric-color:#674094;--metric-tint:#f4edfc}
.metric:nth-child(3){--metric-color:#1c6098;--metric-tint:#edf6fd}
.metric:nth-child(4){--metric-color:#7b358b;--metric-tint:#f9effb}
.notification-btn .count{background:var(--raspberry)}
.notification-item{padding-inline:12px;border-radius:6px}.notification-item.unread{background:#fff3f8;border-left:3px solid var(--pink)}
.shell[data-role="admin"] .avatar{background:#eaf3fc;color:#1d5f95}
.shell[data-role="pastor"] .avatar{background:#f1eafa;color:#623c90}
.shell[data-role="student"] .avatar{background:#fcecf5;color:#a02567}
.role-label{background:#f0eafb;color:#5c398a}
.completed-card{border-top:3px solid var(--blue)}
#toast.error{background:#a3205c}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important}}
