
:root{font-family:Inter,'Segoe UI',sans-serif;color:#213b3c;background:#f4f7f7;font-size:14px;--teal:#03989e}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a{cursor:pointer}button{border:1px solid #dce5e4;border-radius:8px;padding:10px 15px;background:white;color:#284444}button:hover{border-color:var(--teal);background:#edf8f7}.primary{background:var(--teal);color:white;border-color:var(--teal)}.primary:hover{background:#087b80;color:white}a{color:#007f85}aside{position:fixed;width:244px;height:100vh;background:#fff;border-right:1px solid #e1e9e8;padding:30px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:0 12px 32px}.logo{background:var(--teal);color:white;border-radius:13px;width:41px;height:44px;display:grid;place-items:center;font-size:26px}.brand strong{font-size:17px;letter-spacing:1px}.brand small{display:block;font-size:10px;letter-spacing:2px;color:#7b8d8d;margin-top:5px}.nav-label{font-size:10px;letter-spacing:1.8px;color:#91a09f;margin:10px 14px}nav{display:grid;gap:4px}nav button{text-align:left;border:0;padding:12px 14px;color:#6c7f7f;font-size:13px;background:transparent}nav button.active{background:#e5f5f4;color:#00888e;font-weight:600}nav .icon{display:inline-block;width:27px;font-size:17px}.sidebar-foot{margin-top:auto;background:#f3f8f7;border-radius:10px;padding:14px;color:#68807e;font-size:12px;line-height:1.7}main{margin-left:244px}header{height:81px;background:#fff;border-bottom:1px solid #e2e9e8;padding:0 38px;display:flex;align-items:center;justify-content:space-between}.breadcrumb{font-size:12px;color:#7a8c8b}.account{display:flex;align-items:center;gap:12px}.avatar{width:35px;height:35px;border-radius:50%;background:#ddf0ed;color:#00898a;display:grid;place-items:center;font-weight:600}.account small{display:block;font-size:10px;color:#82928f;margin-top:3px}.workspace{padding:30px 38px}.demo{display:inline-flex;background:#fff4d9;border:1px solid #f0dfb5;border-radius:5px;padding:5px 9px;color:#a17b27;font-size:10px;letter-spacing:1px;font-weight:700}.heading{display:flex;justify-content:space-between;align-items:center;margin:20px 0 25px}h1{font-size:27px;letter-spacing:-.6px;margin:0 0 9px;font-weight:650}h2{font-size:17px;margin:0}h3{font-size:14px}p{color:#7b8b8a;line-height:1.7}.heading p{margin:0;font-size:13px}.actions{display:flex;gap:9px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:22px 0}.stat{background:white;border:1px solid #e0e9e7;padding:20px;text-align:left;border-radius:11px;position:relative}.stat small{color:#788b89;font-size:12px}.stat b{display:block;font-size:29px;margin:17px 0 12px;font-weight:650;letter-spacing:-1px}.stat span{font-size:11px;color:#5f9a83}.stat i{position:absolute;right:19px;top:17px;color:#03989e;background:#edf8f6;padding:8px;border-radius:8px;font-style:normal}.grid{display:grid;grid-template-columns:1.65fr 1fr;gap:20px}.panel{background:white;border:1px solid #e0e9e7;border-radius:11px;overflow:hidden;margin-bottom:22px}.panel-head{padding:22px 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf1f0}.panel-head small{display:block;color:#8c9a98;margin-top:7px;font-size:11px}.panel-body{padding:22px 24px}.barrow{display:grid;grid-template-columns:95px 1fr 45px;gap:14px;align-items:center;margin:22px 0;font-size:12px}.track{height:11px;background:#edf3f2;border-radius:4px;overflow:hidden}.bar{height:100%;background:#03989e;border-radius:4px}.bar.pending{background:#e5b568}.bar.empty{background:#b4cdca}.task{display:flex;gap:12px;padding:15px 0;border-bottom:1px solid #eff3f2}.task b{display:block;font-size:12px;font-weight:550}.task small{display:block;color:#8c9b98;margin-top:6px;font-size:11px}.dot{width:9px;height:9px;background:#dfa24f;border-radius:50%;margin-top:3px}.badge{display:inline-block;padding:5px 8px;border-radius:5px;background:#edf5f4;color:#4c7d74;font-size:10px;white-space:nowrap}.badge.warn{color:#ad7e2f;background:#fff5df}.toolbar{display:flex;gap:12px;margin:24px 0}input,select,textarea{border:1px solid #dce6e4;border-radius:7px;padding:11px;background:white;color:#294441;width:100%}input:focus,textarea:focus,select:focus{outline:2px solid #a7dcda}.toolbar input{max-width:380px}.toolbar select{max-width:230px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}th{font-size:10px;font-weight:600;color:#849590;background:#fafcfb;letter-spacing:.5px;padding:15px 20px}td{padding:16px 20px;border-top:1px solid #edf2f0;max-width:280px}td small{display:block;color:#8d9c99;margin-top:5px}.link{border:0;padding:0;color:#078a8b;background:transparent;text-align:left}.pager{padding:15px 20px;display:flex;align-items:center;justify-content:space-between;color:#8a9b96;font-size:11px}.empty{padding:50px;text-align:center;color:#879893}.notice{background:#e9f5f3;border:1px solid #d5e9e5;padding:17px;border-radius:9px;line-height:1.8;font-size:12px}.login{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at top left,#d1efeb,transparent 65%),#f4f8f7}.login form{width:min(440px,92vw);background:white;border:1px solid #dce9e5;padding:40px;border-radius:18px;box-shadow:0 20px 60px #173f3910}.login label{display:block;margin:20px 0 7px;color:#607974;font-size:12px}.login button{width:100%;margin-top:24px}.login .brand{padding:0 0 28px}dialog{border:1px solid #dce6e2;border-radius:14px;width:min(740px,94vw);max-height:90vh;padding:28px;color:#24433e}dialog::backdrop{background:#173e3a70;backdrop-filter:blur(3px)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0}.form-grid label{font-size:11px;color:#718b83;display:block}.form-grid input,.form-grid select,.form-grid textarea{margin-top:7px}.error{color:#b53b3b;background:#fff0ee;padding:12px;border-radius:6px;margin:12px 0}#toast{position:fixed;bottom:25px;right:25px;background:#194c46;color:white;padding:14px 22px;border-radius:8px;display:none;z-index:99}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.detail-grid div{padding:12px;background:#f5f9f7;border-radius:6px;overflow-wrap:anywhere}.detail-grid small{display:block;color:#879c93;margin-bottom:6px}.footer{font-size:10px;color:#92a39b;margin-top:25px;display:flex;justify-content:space-between}.full{grid-column:1/-1}.integration{padding:20px;border:1px solid #e0e9e7;border-radius:10px;background:#fff;margin:14px 0;display:flex;justify-content:space-between}.mobile-menu{display:none}@media(max-width:1050px){aside{width:200px}main{margin-left:200px}.workspace{padding:24px}.stats{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}.heading{align-items:flex-start;gap:20px}}@media(max-width:700px){aside{position:static;width:100%;height:auto;padding:16px}.brand{padding-bottom:12px}nav{display:flex;overflow:auto}nav button{white-space:nowrap}.nav-label,.sidebar-foot{display:none}main{margin:0}header{padding:0 20px;height:65px}.workspace{padding:20px}.heading{display:block}.heading .actions{margin-top:18px}.stats{gap:10px}.stat{padding:16px}.stat b{font-size:25px}.stat i{display:none}.form-grid{grid-template-columns:1fr}.toolbar{flex-wrap:wrap}.account small{display:none}}@media print{aside,header,.actions,.toolbar,button,.demo,.footer{display:none!important}main{margin:0}.workspace{padding:0}.panel{border:0}body{background:white}}

.bar.empty{padding:0;text-align:left}.brand strong{font-size:15px}.form-grid label:has(textarea){grid-column:1/-1}pre{max-height:300px;overflow:auto;white-space:pre-wrap}
.advanced-filters{background:white;border:1px solid #dce7e3;border-radius:11px;padding:22px;margin:20px 0}.filter-title{display:flex;justify-content:space-between;gap:12px;margin-bottom:20px}.filter-title small{color:#81958e;font-size:11px}.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.filter-grid label{font-size:11px;color:#617c73;display:grid;gap:7px}.filter-grid input,.filter-grid select{min-width:0}.report-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.report-stats .stat b{font-size:24px}.report-section{scroll-margin-top:20px}.metric-definitions summary{padding:20px;cursor:pointer}.metric-definitions p{font-size:12px}.period-note{font-size:12px}.integration-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.integration-grid .integration{margin:0 0 12px;gap:15px}.report-notes{font-size:11px}.report-section td{vertical-align:top;overflow-wrap:anywhere}.report-section .table-wrap{max-height:550px;overflow:auto}#importerror:empty{display:none}#confirmimport{margin-top:20px}.filter-grid input[type=date],.filter-grid input[type=month]{min-height:40px}.report-stats .stat span{line-height:1.6;display:block}
@media(max-width:1100px){.filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.report-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.integration-grid{grid-template-columns:1fr}.filter-title{display:block}.filter-title small{display:block;margin-top:8px}.report-stats .stat b{font-size:20px}}
@media print{.no-print,.advanced-filters,.period-note{display:none!important}.report-stats{display:grid;grid-template-columns:repeat(3,1fr)}.report-stats .stat{display:block!important;padding:10px;break-inside:avoid}.report-stats .stat span{display:none}.report-stats .stat b{font-size:18px}.report-section .table-wrap{max-height:none;overflow:visible}table{font-size:9px}td,th{padding:6px!important;max-width:none}thead{display:table-header-group}tr{break-inside:avoid}.panel-head{padding:14px 0}.report-notes{font-size:9px}.workspace{padding:0}.heading h1{font-size:22px}body{background:white}.panel{overflow:visible}.report-section{break-before:auto}.metric-definitions{display:none}.integration-grid{display:none}}
.filter-disclosure{background:white;border:1px solid #dce7e3;border-radius:11px;margin:20px 0}.filter-disclosure>summary{padding:18px 22px;cursor:pointer;font-weight:600;color:#41695f}.filter-disclosure>summary small{font-weight:400;color:#8a9d95;margin-left:15px}.filter-disclosure .advanced-filters{border:0;margin:0;padding-top:0}.filter-disclosure .filter-title{display:none}aside{overflow-y:auto}aside nav,.brand{flex-shrink:0}.sidebar-foot{margin-top:22px}form[aria-busy=true]{opacity:.65;cursor:progress}
.role-fields{border:1px solid #dce7e3;border-radius:8px;display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px}.role-fields label{display:flex;align-items:center;gap:8px}.role-fields input{width:auto;margin:0}.role-fields legend{font-size:12px;padding:0 8px}.password-card{width:min(580px,94vw);background:white;border:1px solid #dce7e3;padding:30px;border-radius:14px}.login .password-card button{margin-top:0;width:auto}.account{flex-wrap:wrap}@media(max-width:700px){header{height:auto;min-height:72px;gap:10px;padding:12px 20px}.account{gap:7px}.account button{padding:8px}.role-fields{grid-template-columns:1fr}}
@page management{size:A4 landscape;margin:12mm}@page student{size:A4 portrait;margin:15mm}@media print{.workspace{page:management}dialog article{page:student}.filter-disclosure{display:none!important}}
aside{padding:22px 18px}aside .brand{padding-bottom:20px}aside nav button{padding:9px 14px;line-height:20px}.sidebar-foot{font-size:11px;margin-top:18px}
@media(max-width:700px){aside{padding:16px}aside nav button{padding:9px 12px}.sidebar-foot{display:none}}
@page{size:A4 landscape;margin:12mm}
@media print{html,body,main,#app,.workspace{height:auto!important;min-height:0!important;background:white!important;margin:0!important;padding:0!important}.workspace{page:auto}.report-stats{display:block!important;font-size:0;margin:12px 0}.report-stats .stat{display:inline-block!important;width:24%;margin:.5%;min-height:58px;padding:9px;vertical-align:top;break-inside:avoid}.report-stats .stat small{font-size:9px}.report-stats .stat b{font-size:17px;margin:6px 0 0}.report-section:has(.empty){display:none!important}.report-section{margin-bottom:14px}.panel-head{break-after:avoid;padding:10px 0}.panel-head h2{font-size:13px}.panel-head small{font-size:8px}.heading{margin:12px 0}.heading p{font-size:10px}.report-notes{font-size:9px;padding:10px}.report-section td,.report-section th{padding:4px!important}.panel{box-shadow:none}dialog article{page:student}}
@page{@bottom-left{content:"Nadi Al-Quran Sandakan - Laporan dalaman";font-size:9px;color:#768981}@bottom-right{content:counter(page) " / " counter(pages);font-size:9px;color:#768981}}
@media print{table{font-size:11px}.report-section th{font-size:10px}.panel-head h2{font-size:16px}.panel-head small{font-size:10px}.report-notes{font-size:11px}.report-stats .stat small{font-size:11px}.report-stats .stat b{font-size:18px}.report-stats .stat{min-height:64px}th{letter-spacing:0}}
