:root{--primary:#0f766e;--primary2:#115e59;--emerald:#059669;--gold:#d4a72c;--bg:#f4f7f7;--card:#fff;--text:#16252b;--muted:#6b7d83;--line:#e4ecec;--danger:#b42318;--shadow:0 18px 55px rgba(17,94,89,.10);--radius:22px;--sidebar:260px;--topbar:76px}*{box-sizing:border-box}html,body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}a{text-decoration:none;color:inherit}button,input,select{font:inherit}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(180deg,#0b4f4b,#073f3c);color:#eafffb;padding:18px 14px;display:flex;flex-direction:column;z-index:40}.brand{height:64px;display:flex;align-items:center;gap:11px;padding:0 10px 14px;border-bottom:1px solid rgba(255,255,255,.12)}.brand-mark,.hero-badge{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,#f0c75e,#d19b20);color:#173a38;font-weight:900;box-shadow:0 10px 25px rgba(0,0,0,.18)}.brand strong,.brand small{display:block}.brand small{font-size:11px;color:#b8d8d5;margin-top:3px}.sidebar-nav{padding:20px 0;overflow:auto}.nav-label{font-size:10px;letter-spacing:.14em;color:#80aca8;padding:0 13px 9px}.nav-item{display:flex;width:100%;align-items:center;gap:12px;border-radius:13px;padding:11px 13px;margin:3px 0;color:#cfe9e6;border:0;background:transparent;text-align:left;cursor:pointer}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.11);color:#fff}.nav-item.active{box-shadow:inset 3px 0 0 #f0c75e}.nav-icon{width:24px;text-align:center}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding-top:12px}.school-mini{padding:4px 13px 10px}.school-mini small,.school-mini strong{display:block}.school-mini small{color:#80aca8;font-size:11px}.logout-btn{color:#ffd6d2}.topbar{position:fixed;left:var(--sidebar);right:0;top:0;height:var(--topbar);background:rgba(255,255,255,.93);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;z-index:30}.topbar-left,.topbar-actions,.user-chip{display:flex;align-items:center}.topbar-left{gap:14px}.topbar-title strong,.topbar-title small,.user-chip strong,.user-chip small{display:block}.topbar-title small,.user-chip small{color:var(--muted);font-size:11px}.icon-btn{width:42px;height:42px;border-radius:13px;border:1px solid var(--line);background:#fff;cursor:pointer}.notification-btn{position:relative}.notification-btn span{position:absolute;width:7px;height:7px;border-radius:50%;background:#e5484d;right:8px;top:8px}.topbar-actions{gap:14px}.user-chip{gap:9px;padding-left:5px}.avatar{width:38px;height:38px;border-radius:13px;background:#dcf5ef;color:var(--primary);display:grid;place-items:center;font-weight:800}.app-main{margin-left:var(--sidebar);padding-top:var(--topbar);min-height:100vh}.content-wrap{padding:28px;max-width:1500px;margin:auto}.app-footer{margin-left:var(--sidebar);padding:18px 28px;color:var(--muted);font-size:12px;border-top:1px solid var(--line)}.welcome-card,.module-hero{background:linear-gradient(120deg,#e2f5f0,#f9f1d6);border:1px solid #d8ebe6;border-radius:var(--radius);padding:27px 30px;display:flex;align-items:center;justify-content:space-between;overflow:hidden;position:relative}.welcome-card h1,.module-hero h1,.page-head h1{margin:3px 0 7px;font-size:clamp(26px,3vw,38px)}.welcome-card p,.module-hero p,.page-head p{margin:0;color:#526a70;max-width:760px}.welcome-badge{width:92px;height:92px;border-radius:27px;background:rgba(255,255,255,.75);border:1px solid rgba(255,255,255,.8);display:grid;place-items:center;align-content:center;box-shadow:var(--shadow)}.welcome-badge span{font-size:30px;font-weight:900;color:var(--primary)}.welcome-badge small{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:800;color:#dfeeed;margin:0}.eyebrow.dark{color:var(--primary)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:18px 0}.stat-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:19px;display:flex;gap:14px;align-items:center}.stat-icon{width:44px;height:44px;border-radius:14px;background:#e8f7f3;color:var(--primary);display:grid;place-items:center}.stat-card strong,.stat-card span,.stat-card small{display:block}.stat-card strong{font-size:27px}.stat-card span{font-weight:700}.stat-card small{color:var(--muted);margin-top:2px}.dashboard-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:0 8px 30px rgba(15,48,45,.035)}.panel-head,.page-head,.modal-head,.form-actions{display:flex;align-items:center;justify-content:space-between;gap:15px}.panel h2{margin:4px 0 12px}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.quick-card{border:1px solid var(--line);border-radius:17px;padding:17px;transition:.2s}.quick-card:hover{transform:translateY(-2px);border-color:#9ad2c8;box-shadow:0 12px 28px rgba(15,118,110,.09)}.quick-card>span{display:grid;width:39px;height:39px;border-radius:12px;background:#eaf8f4;place-items:center;color:var(--primary);font-size:20px;margin-bottom:12px}.quick-card strong,.quick-card small{display:block}.quick-card small,.muted{color:var(--muted)}.timeline>div{display:flex;gap:12px;padding:10px 0}.timeline span{width:12px;height:12px;border:3px solid #b8ccca;border-radius:50%;margin-top:3px}.timeline span.done{border-color:var(--emerald);background:var(--emerald)}.timeline p{margin:0}.timeline strong,.timeline small{display:block}.timeline small{color:var(--muted)}.pill{display:inline-block;border-radius:999px;background:#eaf7f4;color:var(--primary);padding:6px 10px;font-size:11px;font-weight:800}.page-head{margin-bottom:18px}.primary-btn,.secondary-btn{border:0;border-radius:13px;padding:11px 16px;font-weight:800;cursor:pointer}.primary-btn{background:linear-gradient(135deg,var(--primary),var(--emerald));color:#fff;box-shadow:0 10px 22px rgba(15,118,110,.18)}.secondary-btn{background:#eef3f3;color:#43585d}.primary-btn.wide{width:100%;padding:13px}.primary-btn.inline{display:inline-block}.table-panel{padding:0;overflow:hidden}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:14px 17px;text-align:left;border-bottom:1px solid var(--line)}th{font-size:11px;color:var(--muted);background:#f9fbfb;text-transform:uppercase;letter-spacing:.05em}td small,td strong{display:block}td small{color:var(--muted);margin-top:3px}.status{font-size:11px;font-weight:800;padding:5px 9px;border-radius:999px;background:#eef2f2}.status.active{background:#e5f7ef;color:#067647}.cards-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.school-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;display:flex;gap:13px}.school-logo{width:46px;height:46px;border-radius:14px;background:#eaf7f4;color:var(--primary);display:grid;place-items:center}.school-card strong,.school-card span,.school-card small{display:block}.school-card span,.school-card small{color:var(--muted);margin-top:3px}.modal{position:fixed;inset:0;background:rgba(9,28,29,.52);z-index:100;display:none;align-items:center;justify-content:center;padding:20px}.modal.show{display:flex}.modal-card{width:min(620px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:23px;padding:22px;box-shadow:0 30px 90px rgba(0,0,0,.25)}.modal-head{margin-bottom:18px}.modal-head h2{margin:0}.modal-head button{border:0;background:#eef3f3;width:36px;height:36px;border-radius:11px;font-size:22px;cursor:pointer}.form-stack,.form-grid{display:grid;gap:14px}.form-grid{grid-template-columns:1fr 1fr}.form-stack label,.form-grid label{font-size:12px;font-weight:800;color:#33494e}.form-stack input,.form-stack select,.form-grid input,.form-grid select{width:100%;margin-top:7px;padding:12px 13px;border-radius:12px;border:1px solid #cfdddd;outline:none;background:#fff}.form-stack input:focus,.form-grid input:focus,.form-grid select:focus{border-color:#5bb7aa;box-shadow:0 0 0 3px rgba(15,118,110,.08)}.form-actions{grid-column:1/-1;justify-content:flex-end;padding-top:6px}.alert{padding:12px 14px;border-radius:13px;margin-bottom:14px;font-size:13px}.alert.success{background:#e8f8f0;color:#087443;border:1px solid #bdebd5}.alert.error{background:#fff0ee;color:var(--danger);border:1px solid #f3c8c3}.module-orb{width:90px;height:90px;border-radius:30px;background:rgba(255,255,255,.8);display:grid;place-items:center;font-size:37px;color:var(--primary);margin-right:24px}.module-hero{justify-content:flex-start;margin-bottom:18px}.check-list{display:grid;gap:10px;margin-top:17px}.check-list span{padding:11px 13px;background:#f3f9f8;border-radius:12px;color:#31635d}.empty-state,.setup-error{max-width:650px;margin:10vh auto;text-align:center;background:#fff;border-radius:25px;padding:42px;border:1px solid var(--line);box-shadow:var(--shadow)}.empty-state>div{font-size:48px;color:var(--primary)}.setup-error .hero-badge{margin:auto}.setup-error pre{text-align:left;white-space:pre-wrap;background:#f3f6f6;padding:12px;border-radius:12px}.mobile-overlay{display:none}
/* Login */.login-body{min-height:100vh;background:#edf5f3}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.login-hero{position:relative;overflow:hidden;background:radial-gradient(circle at 25% 20%,rgba(240,199,94,.25),transparent 23%),linear-gradient(145deg,#073f3c,#0f766e 60%,#149b86);color:white;display:flex;align-items:center;padding:8vw}.hero-pattern{position:absolute;inset:0;opacity:.12;background-image:linear-gradient(30deg,transparent 24%,#fff 25%,#fff 26%,transparent 27%,transparent 74%,#fff 75%,#fff 76%,transparent 77%),linear-gradient(150deg,transparent 24%,#fff 25%,#fff 26%,transparent 27%,transparent 74%,#fff 75%,#fff 76%,transparent 77%);background-size:70px 120px}.hero-content{position:relative;max-width:650px}.hero-content .hero-badge{margin-bottom:28px;width:64px;height:64px;font-size:18px;border-radius:20px}.hero-content h1{font-size:clamp(38px,4.8vw,68px);line-height:1.02;margin:10px 0 20px;letter-spacing:-.04em}.hero-content>p:not(.eyebrow){font-size:17px;line-height:1.7;color:#d4ece9;max-width:590px}.hero-features{display:flex;flex-wrap:wrap;gap:10px;margin-top:27px}.hero-features span{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.17);padding:9px 12px;border-radius:999px;font-size:12px}.login-panel{display:grid;place-items:center;padding:40px;background:linear-gradient(180deg,#fff,#f6faf9)}.login-card{width:min(430px,100%)}.login-card h2{font-size:34px;margin:6px 0 8px;letter-spacing:-.03em}.login-card>.muted{margin:0 0 24px}.password-wrap{display:flex;position:relative}.password-wrap input{padding-right:50px!important}.password-wrap button{position:absolute;right:5px;top:12px;border:0;background:transparent;height:40px;width:42px;cursor:pointer}.demo-note{margin-top:18px;background:#f4f8f7;border:1px solid var(--line);border-radius:14px;padding:12px}.demo-note strong,.demo-note span{display:block}.demo-note span{color:var(--muted);font-size:11px;margin-top:3px}.copyright{display:block;color:#8a9a9d;text-align:center;margin-top:20px}.mobile-brand{display:none}.hero-badge.small{width:40px;height:40px;border-radius:12px}
@media(max-width:1050px){.stats-grid{grid-template-columns:repeat(2,1fr)}.cards-list{grid-template-columns:repeat(2,1fr)}.login-shell{grid-template-columns:1fr}.login-hero{display:none}.login-panel{min-height:100vh}.mobile-brand{display:flex;align-items:center;gap:10px;margin-bottom:35px}.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:820px){:root{--sidebar:268px}.sidebar{transform:translateX(-102%);transition:.25s}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-open .mobile-overlay{display:block;position:fixed;inset:0;background:rgba(7,32,32,.48);z-index:35}.topbar{left:0;padding:0 15px}.app-main,.app-footer{margin-left:0}.content-wrap{padding:18px}.user-chip>div:last-child{display:none}.page-head{align-items:flex-start}.welcome-card{padding:22px}.welcome-badge{width:72px;height:72px}.module-hero{align-items:flex-start}.module-orb{width:62px;height:62px;min-width:62px;border-radius:20px}.cards-list{grid-template-columns:1fr}}
@media(max-width:560px){.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:14px;align-items:flex-start}.stat-icon{display:none}.stat-card strong{font-size:23px}.quick-grid{grid-template-columns:1fr 1fr}.content-wrap{padding:13px}.welcome-card{align-items:flex-start}.welcome-badge{display:none}.panel{padding:17px}.page-head{display:block}.page-head .primary-btn{margin-top:14px;width:100%}.form-grid{grid-template-columns:1fr}.login-panel{padding:24px}.login-card h2{font-size:28px}.module-orb{display:none}.stats-grid .stat-card small{font-size:10px}}

/* Learning module v0.2.0 */
.page-actions{display:flex;gap:10px;flex-wrap:wrap}.full-field{grid-column:1/-1}.form-stack textarea,.form-grid textarea{width:100%;margin-top:7px;padding:12px 13px;border-radius:12px;border:1px solid #cfdddd;outline:none;background:#fff;resize:vertical;line-height:1.55;font:inherit}.form-grid textarea:focus{border-color:#5bb7aa;box-shadow:0 0 0 3px rgba(15,118,110,.08)}.field-hint{display:block;font-weight:500;color:var(--muted);margin-top:5px;line-height:1.4}.learning-modal-card{width:min(760px,100%)}.learning-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.72fr);gap:18px;margin-bottom:18px}.chapter-list{display:grid;gap:10px;margin-top:10px}.chapter-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:13px;align-items:start;border:1px solid var(--line);border-radius:17px;padding:14px;background:#fff}.chapter-index{width:42px;height:42px;border-radius:13px;background:#eaf7f4;color:var(--primary);display:grid;place-items:center;font-weight:900}.chapter-main>strong,.chapter-main>small{display:block}.chapter-main>strong{font-size:15px;margin:4px 0}.chapter-main>small{color:var(--muted);line-height:1.45}.chapter-meta,.chapter-counts,.material-tags{display:flex;flex-wrap:wrap;gap:7px;color:var(--muted);font-size:11px}.chapter-counts{margin-top:8px}.chapter-counts span,.material-tags span{background:#f2f6f5;border-radius:999px;padding:5px 8px}.chapter-side{display:flex;align-items:flex-end;gap:7px;flex-direction:column}.text-btn{border:0;background:transparent;color:var(--primary);font-size:11px;font-weight:800;cursor:pointer;padding:4px}.flow-steps{display:grid;gap:16px;margin-top:18px}.flow-steps>div{display:flex;gap:12px}.flow-steps>div>span{width:32px;height:32px;min-width:32px;border-radius:11px;background:linear-gradient(135deg,var(--primary),var(--emerald));color:#fff;display:grid;place-items:center;font-weight:900}.flow-steps p{margin:0}.flow-steps strong,.flow-steps small{display:block}.flow-steps small{color:var(--muted);margin-top:3px;line-height:1.4}.mini-empty{text-align:center;padding:34px 16px;color:var(--muted)}.mini-empty>span{font-size:34px;color:var(--primary);display:block;margin-bottom:7px}.mini-empty strong,.mini-empty small{display:block}.mini-empty small{margin-top:4px}.material-panel{margin-bottom:20px}.teacher-material-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-top:14px}.teacher-material-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}.material-card-link{display:flex;gap:12px;padding:16px}.material-type-icon{width:44px;height:44px;min-width:44px;border-radius:14px;display:grid;place-items:center;background:#eaf7f4;color:var(--primary);font-weight:900}.material-type-icon.large{width:58px;height:58px;min-width:58px;border-radius:18px;font-size:18px}.material-card-body{min-width:0}.material-card-body>strong,.material-card-body>small{display:block}.material-card-body>strong{margin:4px 0;line-height:1.35}.material-card-body>small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-kicker{font-size:10px;color:var(--primary);font-weight:900;letter-spacing:.08em;text-transform:uppercase}.material-tags{margin-top:9px}.material-card-foot{display:flex;align-items:center;gap:7px;padding:10px 14px;border-top:1px solid var(--line);background:#fafcfc}.material-card-foot form{margin-left:auto}.mini-progress-text{font-size:10px}.class-picker{border:1px solid #cfdddd;border-radius:14px;padding:12px}.class-picker legend{font-size:12px;font-weight:800;color:#33494e;padding:0 7px}.check-chip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.check-chip{position:relative}.check-chip input{position:absolute;opacity:0;pointer-events:none}.check-chip span{display:block;border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff;cursor:pointer}.check-chip span small{display:block;color:var(--muted);font-weight:500;margin-top:2px}.check-chip input:checked+span{border-color:#5bb7aa;background:#eaf8f4;color:var(--primary);box-shadow:inset 0 0 0 1px #5bb7aa}.is-hidden{display:none!important}
.learning-student-hero{background:linear-gradient(120deg,#e3f5f0,#fbf1d3);border:1px solid #d8ebe6;border-radius:var(--radius);padding:28px 30px;display:flex;justify-content:space-between;gap:24px;align-items:center}.learning-student-hero h1{font-size:clamp(28px,3vw,40px);margin:5px 0 8px}.learning-student-hero p{max-width:760px;color:#526a70}.student-class-pills{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.student-class-pills span{font-size:11px;font-weight:800;background:rgba(255,255,255,.7);padding:6px 9px;border-radius:999px}.progress-ring{--progress:0;width:112px;height:112px;min-width:112px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--primary) calc(var(--progress)*1%),rgba(255,255,255,.6) 0);position:relative}.progress-ring:after{content:"";position:absolute;inset:9px;border-radius:50%;background:#f4f6e8}.progress-ring>div{position:relative;z-index:1;text-align:center}.progress-ring strong,.progress-ring small{display:block}.progress-ring strong{font-size:23px;color:var(--primary)}.progress-ring small{font-size:10px;color:var(--muted)}.student-learning-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0 18px}.student-learning-stats>div{background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px 17px}.student-learning-stats strong,.student-learning-stats span{display:block}.student-learning-stats strong{font-size:22px}.student-learning-stats span{font-size:11px;color:var(--muted)}.student-material-list{display:grid;gap:9px;margin-top:12px}.student-chapter-heading{padding:18px 3px 4px}.student-chapter-heading span{font-size:10px;font-weight:900;color:var(--primary);letter-spacing:.1em}.student-chapter-heading h3{margin:3px 0}.student-material-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:13px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:16px;transition:.2s}.student-material-row:hover{border-color:#9ad2c8;transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,118,110,.06)}.student-material-icon{width:46px;height:46px;border-radius:14px;background:#eef5f4;color:var(--primary);display:grid;place-items:center;font-weight:900}.student-material-icon.completed{background:#e5f7ef;color:#067647}.student-material-main>strong,.student-material-main>small{display:block}.student-material-main>strong{margin:3px 0}.student-material-main>small{color:var(--muted);line-height:1.4}.progress-track{height:6px;background:#edf2f1;border-radius:999px;overflow:hidden;margin-top:9px}.progress-track span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--emerald));border-radius:inherit}.progress-track.big{height:8px;margin:14px 0}.student-material-status{display:flex;align-items:center;gap:12px}.student-material-status b{font-size:22px;color:#8aa09f}
.learning-detail-head{margin-bottom:18px}.back-link{display:inline-block;color:var(--primary);font-size:12px;font-weight:800;margin-bottom:16px}.learning-detail-title{display:flex;gap:15px;align-items:center}.learning-detail-title h1{margin:4px 0 5px;font-size:clamp(25px,3vw,38px)}.learning-detail-title p{margin:0;color:var(--muted)}.learning-detail-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.68fr);gap:18px}.learning-detail-side{display:grid;gap:14px;align-content:start}.learning-detail-side .panel h3{margin:5px 0 8px}.detail-small-copy{font-size:12px;line-height:1.55}.rich-learning-text{white-space:normal;line-height:1.85;font-size:15px;color:#273b40}.pdf-frame{width:100%;height:min(72vh,800px);border:1px solid var(--line);border-radius:14px;margin-bottom:12px}.audio-learning-box,.external-learning-box{background:linear-gradient(120deg,#ecf8f5,#faf4df);border-radius:18px;padding:24px;margin-bottom:14px}.audio-learning-box{display:flex;gap:14px;align-items:center}.audio-learning-box>span,.external-learning-box>span{font-size:32px;color:var(--primary)}.audio-learning-box strong,.audio-learning-box small{display:block}.audio-learning-box small{color:var(--muted);margin-top:4px}.learning-audio{width:100%}.video-wrap{position:relative;padding-top:56.25%;border-radius:16px;overflow:hidden;background:#061c1b}.video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.external-learning-box{text-align:center;padding:45px 20px}.external-learning-box h3{margin:7px 0}.external-learning-box p{color:var(--muted);max-width:540px;margin:0 auto 18px}.objective-list{display:grid;gap:9px;margin-top:14px}.objective-list>div{display:flex;gap:9px;padding:9px;border-radius:11px;background:#f5f9f8}.objective-list>div>span{color:var(--emerald);font-weight:900}.objective-list p{margin:0;font-size:11px;line-height:1.45}.objective-list strong{display:block;color:var(--primary);font-size:10px;margin-bottom:2px}.class-badge-list{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.class-badge-list span{background:#eaf7f4;color:var(--primary);padding:6px 9px;border-radius:999px;font-size:11px;font-weight:800}.progress-action-card form{margin-top:14px}.progress-action-card .primary-btn:disabled{opacity:.65;cursor:default}
@media(max-width:1100px){.teacher-material-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-layout,.learning-detail-grid{grid-template-columns:1fr}.learning-help{order:-1}.learning-help .flow-steps{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.learning-page-head .page-actions{margin-top:14px;width:100%}.learning-page-head .page-actions>*{flex:1}.teacher-material-grid{grid-template-columns:1fr}.chapter-row{grid-template-columns:38px 1fr}.chapter-index{width:36px;height:36px}.chapter-side{grid-column:2;flex-direction:row;align-items:center}.check-chip-grid{grid-template-columns:repeat(2,1fr)}.learning-student-hero{padding:21px;align-items:flex-start}.progress-ring{width:88px;height:88px;min-width:88px}.progress-ring strong{font-size:18px}.student-material-row{grid-template-columns:42px minmax(0,1fr)}.student-material-icon{width:40px;height:40px}.student-material-status{grid-column:2;justify-content:space-between}.learning-help .flow-steps{grid-template-columns:1fr}.learning-detail-title{align-items:flex-start}.material-type-icon.large{display:none}}
@media(max-width:520px){.student-learning-stats{grid-template-columns:1fr 1fr}.student-learning-stats>div:last-child{grid-column:1/-1}.learning-student-hero .progress-ring{display:none}.check-chip-grid{grid-template-columns:1fr}.learning-detail-title h1{font-size:27px}}

/* Qurani v0.3.0 */
.qurani-teacher-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.72fr);gap:18px;align-items:start}.qurani-assignment-list,.qurani-pending-list,.student-qurani-list{display:grid;gap:10px;margin-top:14px}.qurani-assignment-card{border:1px solid var(--line);border-radius:18px;background:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:14px}.qurani-assignment-main{display:flex;gap:13px;min-width:0}.surah-badge{width:68px;min-width:68px;height:68px;border-radius:20px;background:linear-gradient(145deg,#e3f5ef,#f8efcc);display:grid;place-items:center;align-content:center;border:1px solid #d8ebe6}.surah-badge strong{font-size:18px;color:var(--primary);line-height:1}.surah-badge span{font-family:"Amiri Quran",Amiri,"Times New Roman",serif;font-size:17px;margin-top:5px;direction:rtl}.surah-badge.large{width:92px;min-width:92px;height:92px;border-radius:26px}.surah-badge.large strong{font-size:22px}.surah-badge.large span{font-size:20px}.qurani-assignment-copy{min-width:0}.qurani-assignment-copy>strong,.qurani-assignment-copy>small{display:block}.qurani-assignment-copy>strong{margin:4px 0 5px}.qurani-assignment-copy>small{color:var(--muted);line-height:1.45}.qurani-assignment-actions{display:flex;flex-direction:column;align-items:flex-end;gap:7px}.qurani-assignment-actions form{margin:0}.qurani-pending-list>a{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:11px}.qurani-pending-list>a:hover{border-color:#9ad2c8}.qurani-pending-list strong,.qurani-pending-list small{display:block}.qurani-pending-list small{color:var(--muted);margin-top:3px;line-height:1.35}.qurani-pending-list b{color:var(--primary);font-size:22px}.ayah-range-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ayah-range-fields label{display:block}.qurani-student-hero .student-class-pills a{font-size:11px;font-weight:800;background:rgba(255,255,255,.72);padding:7px 10px;border-radius:999px}.qurani-hero-score{width:116px;height:116px;min-width:116px;border-radius:32px;background:rgba(255,255,255,.75);border:1px solid rgba(255,255,255,.9);display:grid;place-items:center;align-content:center;box-shadow:var(--shadow)}.qurani-hero-score strong{font-size:30px;color:var(--primary)}.qurani-hero-score small{font-size:10px;color:var(--muted)}.student-qurani-card{display:grid;grid-template-columns:68px minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:18px;padding:14px;transition:.2s}.student-qurani-card:hover{border-color:#9ad2c8;transform:translateY(-1px);box-shadow:0 10px 25px rgba(15,118,110,.06)}.surah-badge.student{width:62px;min-width:62px;height:62px;border-radius:18px}.student-qurani-copy>strong,.student-qurani-copy>small{display:block}.student-qurani-copy>strong{margin:4px 0}.student-qurani-copy>small{color:var(--muted);line-height:1.4}.student-qurani-state{text-align:right;display:grid;gap:6px;justify-items:end}.student-qurani-state>strong{font-size:27px;color:var(--primary)}.student-qurani-state>b{font-size:24px;color:#8aa09f}.late-text{font-size:10px;font-weight:800;color:var(--danger)}.qurani-reference-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.qurani-reference-tools input{width:min(480px,100%);padding:12px 14px;border:1px solid #cfdddd;border-radius:13px;outline:none}.qurani-reference-tools input:focus{border-color:#5bb7aa;box-shadow:0 0 0 3px rgba(15,118,110,.08)}.surah-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.surah-card{display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;align-items:center;border:1px solid var(--line);border-radius:15px;padding:11px;background:#fff}.surah-card.is-filtered{display:none}.surah-number{width:38px;height:38px;border-radius:12px;background:#eaf7f4;color:var(--primary);display:grid;place-items:center;font-weight:900}.surah-card strong,.surah-card span,.surah-card small{display:block}.surah-card strong{font-size:13px}.surah-card span{font-family:"Amiri Quran",Amiri,"Times New Roman",serif;direction:rtl;text-align:left;font-size:17px;margin:1px 0}.surah-card small{color:var(--muted);font-size:10px}.qurani-detail-banner{background:linear-gradient(120deg,#e3f5f0,#fbf1d3);border:1px solid #d8ebe6;border-radius:var(--radius);padding:24px 27px;display:flex;gap:17px;align-items:center}.qurani-detail-banner h1{font-size:clamp(25px,3vw,38px);margin:4px 0 6px}.qurani-detail-banner p{margin:0;color:#526a70;line-height:1.55}.qurani-detail-grid,.qurani-review-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.72fr);gap:18px}.qurani-detail-side{display:grid;gap:14px;align-content:start}.saved-recording{display:flex;align-items:center;gap:12px;padding:14px;border-radius:15px;background:#edf8f5;margin:12px 0}.saved-recording>span{width:40px;height:40px;border-radius:13px;background:#fff;color:var(--primary);display:grid;place-items:center;font-size:20px}.saved-recording strong,.saved-recording small{display:block}.saved-recording small{color:var(--muted);margin-top:3px}.browser-recorder{margin-top:18px;border:1px dashed #a9c9c5;border-radius:18px;padding:18px;background:#fbfdfd}.recorder-status{display:flex;align-items:center;gap:8px;margin-bottom:14px}.recorder-status>span{width:11px;height:11px;border-radius:50%;background:#a5b5b3}.recorder-status.recording>span{background:#d92d20;box-shadow:0 0 0 6px rgba(217,45,32,.10)}.recorder-status strong{flex:1}.recorder-status small{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:800}.recorder-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.recorder-actions button:disabled{opacity:.5;cursor:not-allowed}.manual-recording{margin-top:13px;padding-top:13px;border-top:1px solid var(--line);display:grid;gap:7px}.manual-recording span{font-size:11px;color:var(--muted);font-weight:700}.manual-recording input{font-size:12px}.review-lock{margin-top:14px;background:#e8f8f0;color:#087443;border:1px solid #bdebd5;border-radius:13px;padding:13px;font-size:12px;line-height:1.5}.rubric-mini{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.rubric-mini span{background:#f4f8f7;border-radius:12px;padding:10px;font-size:11px;color:var(--muted)}.rubric-mini b{display:block;color:var(--primary);font-size:15px;margin-bottom:2px}.assessment-result .final-score{display:flex;align-items:baseline;gap:5px;margin:8px 0 13px}.final-score strong{font-size:42px;color:var(--primary)}.final-score small{color:var(--muted)}.score-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:7px}.score-breakdown span{display:flex;justify-content:space-between;background:#f5f9f8;border-radius:10px;padding:8px 9px;font-size:11px}.teacher-feedback{margin-top:14px;border-top:1px solid var(--line);padding-top:13px}.teacher-feedback strong{font-size:11px}.teacher-feedback p{font-size:12px;color:var(--muted);line-height:1.6;margin:5px 0 0}.qurani-roster-head{padding:20px 22px 10px;display:flex;align-items:center;justify-content:space-between;gap:12px}.qurani-roster-head h2{margin:4px 0}.review-audio-card .learning-audio{margin-top:16px}.assessment-form label{position:relative}.rubric-weight{float:right;color:var(--primary);font-size:10px}.assessment-form input{padding-right:55px}
@media(max-width:1180px){.surah-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.qurani-teacher-grid,.qurani-detail-grid,.qurani-review-grid{grid-template-columns:1fr}}
@media(max-width:820px){.surah-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.qurani-detail-banner{align-items:flex-start}.qurani-detail-banner .surah-badge.large{display:none}.qurani-assignment-card{grid-template-columns:1fr}.qurani-assignment-actions{flex-direction:row;align-items:center}.student-qurani-card{grid-template-columns:60px minmax(0,1fr)}.student-qurani-state{grid-column:2;display:flex;justify-content:space-between;align-items:center;width:100%}.qurani-hero-score{width:88px;height:88px;min-width:88px;border-radius:24px}.qurani-hero-score strong{font-size:23px}}
@media(max-width:560px){.surah-grid{grid-template-columns:1fr}.qurani-reference-tools{align-items:stretch;flex-direction:column}.qurani-hero-score{display:none}.qurani-assignment-main{align-items:flex-start}.qurani-assignment-card .surah-badge{width:54px;min-width:54px;height:54px;border-radius:16px}.qurani-assignment-card .surah-badge span{font-size:14px}.recorder-actions{display:grid;grid-template-columns:1fr 1fr}.recorder-actions #uploadRecording{grid-column:1/-1}.ayah-range-fields{grid-column:1/-1}.qurani-detail-banner{padding:19px}.score-breakdown{grid-template-columns:1fr}}

/* Qurani Pro v0.3.2 */
.qurani-pro-head .page-actions{display:flex;gap:9px;flex-wrap:wrap}.mushaf-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:18px}.mushaf-jump-form{display:grid;grid-template-columns:minmax(220px,1fr) 100px auto;gap:10px;align-items:end;flex:1}.mushaf-jump-form label,.compact-form label{font-size:12px;font-weight:800;color:#33494e}.mushaf-jump-form input,.mushaf-jump-form select,.compact-form input,.compact-form select,.compact-form textarea{width:100%;margin-top:7px;padding:11px 12px;border-radius:12px;border:1px solid #cfdddd;background:#fff;outline:none}.mushaf-jump-form input:focus,.mushaf-jump-form select:focus,.compact-form input:focus,.compact-form select:focus,.compact-form textarea:focus{border-color:#5bb7aa;box-shadow:0 0 0 3px rgba(15,118,110,.08)}.mushaf-current{display:flex;align-items:center;gap:10px;min-width:250px}.surah-number.small{width:36px;height:36px}.mushaf-current strong,.mushaf-current small{display:block}.mushaf-current small{color:var(--muted);margin-top:2px}.mushaf-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.55fr);gap:18px;align-items:start}.mushaf-side{display:grid;gap:14px}.panel-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head-row h2{margin:4px 0}.mushaf-source-note{font-size:11px;line-height:1.55;color:var(--muted);background:#f7faf9;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:10px 0 12px}.mushaf-source-note a{font-weight:800;color:var(--primary)}.mushaf-frame{display:block;width:100%;height:min(76vh,880px);min-height:620px;border:1px solid var(--line);border-radius:16px;background:#f7faf9}.secondary-btn.wide{display:block;width:100%;text-align:center}.compact-form{gap:11px}.compact-form textarea{font:inherit;resize:vertical}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}.qurani-pro-lists{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.bookmark-list,.practice-list{display:grid;gap:9px;margin-top:12px}.bookmark-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:9px;border:1px solid var(--line);border-radius:14px;padding:10px 11px}.bookmark-item>a{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:8px;min-width:0}.bookmark-item strong{color:var(--primary)}.bookmark-item span{font-family:"Amiri Quran",Amiri,"Times New Roman",serif;direction:rtl}.bookmark-item small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-danger-btn{border:0;background:#fff0ee;color:var(--danger);width:32px;height:32px;border-radius:10px;font-size:20px;cursor:pointer}.practice-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:14px;padding:11px 12px}.practice-item strong,.practice-item small{display:block}.practice-item small{color:var(--muted);margin-top:3px}.practice-rating{font-size:14px;color:#b68412;white-space:nowrap}.assignment-mushaf-link{margin-top:12px}.health-summary{display:flex;align-items:center;gap:16px;margin-bottom:18px}.health-symbol{width:58px;height:58px;min-width:58px;border-radius:18px;display:grid;place-items:center;font-size:26px;font-weight:900}.health-ok .health-symbol{background:#e8f8f0;color:#087443}.health-warning .health-symbol{background:#fff0ee;color:var(--danger)}.health-summary h2{margin:2px 0 4px}.health-summary p{margin:0;color:var(--muted)}.health-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.health-item{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:14px;padding:12px}.health-dot{width:28px;height:28px;min-width:28px;border-radius:9px;display:grid;place-items:center;font-weight:900}.health-item.ok .health-dot{background:#e8f8f0;color:#087443}.health-item.bad .health-dot{background:#fff0ee;color:var(--danger)}.health-item strong,.health-item small{display:block}.health-item small{color:var(--muted);margin-top:3px;line-height:1.4;word-break:break-word}.info-panel code{background:#f1f6f5;padding:2px 5px;border-radius:6px}.info-panel p{color:var(--muted);margin-bottom:0}
@media(max-width:1100px){.mushaf-layout{grid-template-columns:1fr}.mushaf-side{grid-template-columns:repeat(3,1fr)}.qurani-pro-lists{grid-template-columns:1fr}.mushaf-frame{height:760px}.health-list{grid-template-columns:1fr}}
@media(max-width:820px){.mushaf-toolbar{align-items:stretch;flex-direction:column}.mushaf-current{min-width:0}.mushaf-side{grid-template-columns:1fr}.mushaf-jump-form{grid-template-columns:1fr 100px}.mushaf-jump-form .primary-btn{grid-column:1/-1}.mushaf-frame{min-height:580px;height:70vh}.bookmark-item>a{grid-template-columns:auto auto}.bookmark-item small{grid-column:1/-1}.qurani-pro-head .page-actions{width:100%}.qurani-pro-head .page-actions>*{flex:1;text-align:center}}
@media(max-width:520px){.mushaf-jump-form{grid-template-columns:1fr}.mushaf-jump-form .primary-btn{grid-column:auto}.two-fields{grid-template-columns:1fr}.mushaf-frame{min-height:520px}.practice-item{align-items:flex-start;flex-direction:column}.health-summary{align-items:flex-start}}

/* Tahfiz v0.4.0 */
.tahfiz-review-panel{margin-bottom:18px}.tahfiz-review-list{display:grid;gap:10px}.tahfiz-review-item{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:16px;padding:13px 14px;background:#fbfdfd}.tahfiz-review-item.due{border-color:#eacb78;background:#fffaf0}.tahfiz-review-item strong,.tahfiz-review-item small{display:block}.tahfiz-review-item small{color:var(--muted);margin-top:4px}.tahfiz-review-form{display:flex;gap:8px;align-items:center}.tahfiz-review-form select{max-width:165px;padding:10px;border:1px solid var(--line);border-radius:11px;background:#fff}.tahfiz-review-form .primary-btn{white-space:nowrap}.page-actions{display:flex;gap:9px;flex-wrap:wrap}
@media(max-width:820px){.tahfiz-review-item{align-items:flex-start;flex-direction:column}.tahfiz-review-form{width:100%;display:grid;grid-template-columns:1fr auto}.tahfiz-review-form select{max-width:none}.page-actions{width:100%}.page-actions>*{flex:1;text-align:center}}
@media(max-width:520px){.tahfiz-review-form{grid-template-columns:1fr}.recorder-actions #tahfizUploadRecording{grid-column:1/-1}}

/* Fiqih Lab v0.5.0 */
.form-stack textarea,.form-grid textarea{width:100%;margin-top:7px;padding:12px 13px;border-radius:12px;border:1px solid #cfdddd;outline:none;background:#fff;font:inherit;resize:vertical}.form-stack textarea:focus,.form-grid textarea:focus{border-color:#5bb7aa;box-shadow:0 0 0 3px rgba(15,118,110,.08)}
.fiqih-pending-panel{margin-bottom:18px}.fiqih-pending-list{display:grid;gap:9px;margin-top:12px}.fiqih-pending-item{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fbfdfd}.fiqih-pending-item:hover{border-color:#9ad2c8}.fiqih-pending-item strong,.fiqih-pending-item small{display:block}.fiqih-pending-item small{color:var(--muted);margin-top:3px}.fiqih-pending-item>span{font-size:12px;color:var(--primary);font-weight:800;white-space:nowrap}.fiqih-class-checks{display:grid;gap:7px;border:1px solid var(--line);padding:12px;border-radius:14px}.check-choice{display:flex!important;align-items:center;gap:9px;font-weight:600!important}.check-choice input{width:auto!important;margin:0!important}.fiqih-student-grid{display:grid;gap:14px}.fiqih-student-card{display:grid;grid-template-columns:64px minmax(0,1fr) 150px;gap:16px;align-items:center}.fiqih-card-icon,.fiqih-hero-icon{display:grid;place-items:center;background:linear-gradient(135deg,#e5f7f2,#fff6dc);color:var(--primary);border:1px solid #d9ebe6}.fiqih-card-icon{width:64px;height:64px;border-radius:19px;font-size:29px}.fiqih-card-body h2{margin:3px 0 6px}.fiqih-card-body p{margin:0;color:var(--muted)}.fiqih-card-state{display:grid;justify-items:end;gap:8px}.fiqih-card-state>strong{font-size:26px;color:var(--primary)}.fiqih-card-state>small{color:var(--muted);margin-top:-8px}.fiqih-progress{margin-top:13px}.fiqih-progress>div:first-child{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.progress-track{height:7px;border-radius:999px;background:#eaf0ef;overflow:hidden;margin-top:5px}.progress-track i{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--emerald));border-radius:inherit}.fiqih-detail-banner{display:flex;align-items:center;gap:18px;background:linear-gradient(120deg,#e7f7f3,#fff6dc);border:1px solid #d8ebe6;border-radius:var(--radius);padding:24px;margin-bottom:18px}.fiqih-detail-banner>div:nth-child(2){flex:1;min-width:0}.fiqih-detail-banner h1{margin:4px 0 7px;font-size:clamp(25px,3vw,36px)}.fiqih-detail-banner p{margin:0;color:#526a70}.fiqih-hero-icon{width:80px;height:80px;min-width:80px;border-radius:24px;font-size:35px}.fiqih-status-actions{display:grid;justify-items:end;gap:9px}.fiqih-status-actions form{margin:0}.fiqih-detail-grid,.fiqih-review-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.55fr);gap:18px;align-items:start}.fiqih-detail-side{display:grid;gap:14px}.fiqih-guidance{line-height:1.55}.fiqih-practice-form{margin-top:16px}.fiqih-step-list{display:grid;gap:9px}.fiqih-step{display:grid!important;grid-template-columns:auto 38px minmax(0,1fr);align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:pointer}.fiqih-step.done{background:#f0faf7;border-color:#bde5da}.fiqih-step input{width:18px!important;height:18px;margin:0!important}.fiqih-step-number{width:34px;height:34px;border-radius:11px;background:#eef5f4;display:grid;place-items:center;font-weight:900;color:var(--primary)}.fiqih-step-copy strong,.fiqih-step-copy small{display:block}.fiqih-step-copy small{color:var(--muted);margin-top:3px;line-height:1.4}.field-hint{display:block;color:var(--muted);font-weight:400;margin-top:5px;line-height:1.4}.fiqih-evidence-box{margin:10px 0}.fiqih-evidence-box img,.fiqih-evidence-box video{display:block;width:100%;max-height:380px;object-fit:contain;border-radius:14px;background:#f3f6f6;border:1px solid var(--line)}.fiqih-rubric-list{display:grid;gap:8px;margin-top:12px}.fiqih-rubric-list>div{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;background:#f5f9f8;border-radius:12px;padding:10px}.fiqih-rubric-list strong,.fiqih-rubric-list small{display:block}.fiqih-rubric-list small{color:var(--muted);margin-top:2px;line-height:1.35}.fiqih-rubric-list b{color:var(--primary);white-space:nowrap}.fiqih-score-list{display:grid;gap:7px}.fiqih-score-list span{display:flex;justify-content:space-between;background:#f5f9f8;border-radius:10px;padding:9px;font-size:12px}.fiqih-teacher-checks{display:grid;gap:7px;margin-top:16px}.fiqih-teacher-checks>div{display:flex;gap:9px;padding:9px;border-radius:11px;background:#f7faf9}.fiqih-teacher-checks>div>span{width:25px;height:25px;min-width:25px;border-radius:8px;display:grid;place-items:center;font-weight:900}.fiqih-teacher-checks .ok>span{background:#e8f8f0;color:#087443}.fiqih-teacher-checks .bad>span{background:#fff0ee;color:var(--danger)}.fiqih-teacher-checks p{margin:0}.fiqih-teacher-checks strong,.fiqih-teacher-checks small{display:block}.fiqih-teacher-checks small{color:var(--muted);margin-top:2px;line-height:1.35}.fiqih-evidence-link{margin-top:14px}.mini-empty{padding:18px;text-align:center}.mini-empty span,.mini-empty strong,.mini-empty small{display:block}.mini-empty span{font-size:34px;color:var(--primary)}.mini-empty small{color:var(--muted);margin-top:4px}
@media(max-width:1050px){.fiqih-detail-grid,.fiqih-review-grid{grid-template-columns:1fr}.fiqih-student-card{grid-template-columns:64px minmax(0,1fr)}.fiqih-card-state{grid-column:2;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap}.fiqih-card-state>small{margin:0}}
@media(max-width:720px){.fiqih-detail-banner{align-items:flex-start;flex-wrap:wrap}.fiqih-status-actions{width:100%;display:flex;justify-content:space-between;align-items:center}.fiqih-student-card{grid-template-columns:52px minmax(0,1fr)}.fiqih-card-icon{width:52px;height:52px;border-radius:15px;font-size:24px}.fiqih-card-state{grid-column:1/-1;justify-content:space-between}.fiqih-pending-item{align-items:flex-start;flex-direction:column}.fiqih-hero-icon{display:none}}

/* Akhlak Quest v0.6.0 */
.akhlak-head{background:linear-gradient(135deg,#fffaf0,#f5fbf9);border:1px solid #e7eee9}.page-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.akhlak-template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.akhlak-template-card{border:1px solid var(--line);border-radius:18px;padding:18px;background:linear-gradient(180deg,#fff,#fbfdfc)}.akhlak-template-card h3{margin:10px 0 8px}.akhlak-template-card p{color:var(--muted);line-height:1.55;margin:0 0 14px}.akhlak-theme{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eef8f6;color:var(--primary2);font-size:12px;font-weight:800}.modal-card-wide{max-width:920px}.akhlak-check{align-self:end;min-height:48px}.akhlak-option-builder{border-top:1px solid var(--line);padding-top:12px}.akhlak-option-edit{padding:15px;border:1px solid var(--line);border-radius:16px;margin-top:12px;background:#fbfdfd}.akhlak-option-edit>strong{display:block;margin-bottom:10px}.muted-note{color:var(--muted);font-size:13px;line-height:1.5}.akhlak-xp-badge{min-width:135px;border-radius:20px;padding:16px 20px;background:#0f766e;color:#fff;text-align:center;box-shadow:var(--shadow)}.akhlak-xp-badge strong,.akhlak-xp-badge small{display:block}.akhlak-xp-badge strong{font-size:24px}.akhlak-xp-badge small{color:#cfe9e6;margin-top:3px}.akhlak-student-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(270px,.65fr);gap:18px;align-items:start}.akhlak-quest-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.akhlak-quest-card{display:flex;flex-direction:column;min-height:300px}.akhlak-quest-card.is-done{border-color:#cde9e2;background:linear-gradient(180deg,#fff,#f7fcfa)}.akhlak-card-top,.akhlak-card-footer{display:flex;justify-content:space-between;gap:12px;align-items:center}.akhlak-quest-card h2{font-size:20px;margin:14px 0 9px}.akhlak-quest-card>p{color:var(--muted);line-height:1.55;flex:1}.akhlak-card-footer{margin-top:18px}.akhlak-score-mini{text-align:center}.akhlak-score-mini strong,.akhlak-score-mini small{display:block}.akhlak-score-mini strong{font-size:22px;color:var(--primary)}.akhlak-score-mini small{font-size:11px;color:var(--muted)}.akhlak-profile-side{display:grid;gap:18px}.akhlak-trait-list,.akhlak-badge-list{display:grid;gap:10px}.akhlak-trait-list>div,.akhlak-badge-list>div{display:flex;gap:11px;align-items:flex-start;padding:11px;border:1px solid var(--line);border-radius:14px;background:#fbfdfd}.akhlak-trait-list>div>span,.akhlak-badge-list>div>span{width:34px;height:34px;border-radius:11px;background:#eef8f6;display:grid;place-items:center;color:var(--primary);font-weight:900}.akhlak-trait-list p,.akhlak-badge-list p{margin:0}.akhlak-trait-list strong,.akhlak-trait-list small,.akhlak-badge-list strong,.akhlak-badge-list small{display:block}.akhlak-trait-list small,.akhlak-badge-list small{color:var(--muted);margin-top:3px}.akhlak-scenario{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff,#fbf8ef)}.akhlak-scenario:before{content:'♡';position:absolute;right:26px;top:4px;font-size:110px;color:rgba(212,167,44,.08)}.akhlak-scenario-label{display:inline-flex;padding:6px 10px;border-radius:999px;background:#fff2ca;color:#755a12;font-size:11px;font-weight:900;letter-spacing:.08em}.akhlak-scenario>p{font-size:17px;line-height:1.75;max-width:980px}.akhlak-detail-grid{align-items:start}.akhlak-option-list{display:grid;gap:12px}.akhlak-option-list article{display:flex;gap:12px;padding:14px;border:1px solid var(--line);border-radius:16px}.akhlak-option-list article p{color:var(--muted);line-height:1.5;margin:7px 0 10px}.akhlak-option-index{width:36px;height:36px;flex:0 0 36px;border-radius:12px;background:#eef8f6;color:var(--primary);display:grid;place-items:center;font-weight:900}.akhlak-value-box{margin-top:16px;padding:18px;border-radius:18px;background:linear-gradient(135deg,#0f766e,#115e59);color:#fff}.akhlak-value-box strong,.akhlak-value-box span{display:block}.akhlak-value-box strong{font-size:18px}.akhlak-value-box span{color:#f3d77d;margin-top:4px;font-weight:700}.akhlak-value-box p{color:#e2f5f2;line-height:1.6;margin-bottom:0}.akhlak-roster{display:grid;gap:8px;max-height:620px;overflow:auto}.akhlak-roster-row{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:14px}.akhlak-roster-row.is-submitted{background:#f7fcfa;border-color:#cde9e2}.akhlak-roster-row strong,.akhlak-roster-row small{display:block}.akhlak-roster-row small{color:var(--muted);margin-top:2px}.akhlak-review-panel{margin-top:18px}.akhlak-review-grid,.akhlak-result-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:22px}.reflection-box{padding:16px;border-radius:15px;background:#f7f9f9;border:1px solid var(--line);line-height:1.7}.akhlak-answer-panel{max-width:980px}.akhlak-choice-grid{display:grid;gap:12px}.akhlak-choice{display:flex;gap:14px;align-items:flex-start;padding:16px;border:1px solid var(--line);border-radius:16px;cursor:pointer;background:#fff;transition:.18s}.akhlak-choice:hover{border-color:#9dcfc6;background:#f7fcfa}.akhlak-choice input{margin-top:8px}.akhlak-choice-letter{width:36px;height:36px;flex:0 0 36px;border-radius:12px;background:#eef8f6;color:var(--primary);display:grid;place-items:center;font-weight:900}.akhlak-result-hero{display:flex;align-items:center;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:20px}.akhlak-result-hero>span{width:55px;height:55px;border-radius:18px;background:#e6f6f1;color:#08735f;display:grid;place-items:center;font-size:25px;font-weight:900}.akhlak-result-hero h2{margin:3px 0}.akhlak-selected-answer{padding:16px;border:1px solid #cde9e2;border-radius:15px;background:#f7fcfa;font-weight:700;line-height:1.55}.akhlak-trait-list.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.akhlak-earned-badges{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.akhlak-badge-list.horizontal{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-feedback{margin-top:16px}.info-box.warning{background:#fff8e6;border-color:#f5d789}.akhlak-pending-panel{border-left:4px solid var(--gold)}
@media (max-width:1100px){.akhlak-template-grid{grid-template-columns:1fr 1fr}.akhlak-student-layout{grid-template-columns:1fr}.akhlak-profile-side{grid-template-columns:1fr 1fr}.akhlak-review-grid,.akhlak-result-grid{grid-template-columns:1fr}}
@media (max-width:720px){.akhlak-template-grid,.akhlak-quest-grid,.akhlak-profile-side,.akhlak-badge-list.horizontal,.akhlak-trait-list.compact{grid-template-columns:1fr}.page-actions{width:100%}.page-actions .primary-btn,.page-actions .secondary-btn{flex:1}.akhlak-xp-badge{width:100%}.akhlak-card-footer{align-items:flex-end}.akhlak-choice{padding:13px}.modal-card-wide{max-width:100%}}
.akhlak-deadline-form{display:flex;gap:10px;align-items:end;margin-top:16px;padding-top:15px;border-top:1px solid var(--line)}.akhlak-deadline-form label{flex:1}.akhlak-deadline-form input{width:100%}@media(max-width:620px){.akhlak-deadline-form{display:grid;grid-template-columns:1fr}}
