@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@600;700;800&display=swap');
:root{--g:#087f5b;--d:#123c32;--bg:#f4f8f5;--line:#e4ece7;--muted:#718078}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#20332b;font:14px 'DM Sans',sans-serif}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:#103d32;color:#fff;padding:24px 16px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 28px}.brand b{display:block;font-weight:800}.brand small{display:block;color:#b7d7c8;font-size:11px;margin-top:4px}.logo{width:42px;height:42px;border-radius:13px;background:#d8f0e2;color:#087f5b;display:grid;place-items:center;font-weight:800}.logo.big{width:58px;height:58px;margin:auto;font-size:21px}nav{display:grid;gap:5px}nav a{padding:12px;color:#e0eee7;text-decoration:none;border-radius:9px;display:flex;gap:12px}nav a:hover{background:#205b49}.navlabel{font-size:10px;letter-spacing:1px;color:#92b9a6;padding:18px 12px 5px}.sidefoot{margin-top:auto;color:#91b6a4;font-size:11px;line-height:1.7}.main{margin-left:245px;min-height:100vh}.topbar{height:76px;background:white;border-bottom:1px solid var(--line);padding:0 30px;display:flex;align-items:center;justify-content:space-between}.topbar b{font-weight:800}.topbar small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.userpill{display:flex;gap:10px;align-items:center;font-size:12px}.avatar{width:35px;height:35px;background:#e7f4ed;color:var(--g);border-radius:50%;display:grid;place-items:center;font-weight:800}.content{padding:28px 30px;max-width:1600px;margin:auto}.hero{background:linear-gradient(110deg,#0a7051,#16855e);border-radius:16px;padding:28px;color:#fff;margin-bottom:20px}.hero span{font-size:10px;letter-spacing:1px;color:#c5e8d7}.hero h1{font:800 22px 'Plus Jakarta Sans';margin:10px 0}.hero p{margin:0;color:#d6eee2}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.stat,.panel{background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px;margin-bottom:18px}.stat small{color:var(--muted)}.stat b{display:block;font:800 28px 'Plus Jakarta Sans';margin-top:8px;color:var(--d)}.panel h2,.panel h3{font-family:'Plus Jakarta Sans';margin:0 0 8px}.panel p{color:var(--muted);margin:5px 0}.quickgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.quickgrid a{padding:18px;background:#f3f8f5;border-radius:10px;text-decoration:none;color:var(--g);font-size:20px}.quickgrid b,.quickgrid small{display:block}.quickgrid b{font-size:13px;color:#20332b;margin:9px 0 4px}.quickgrid small{font-size:11px;color:var(--muted)}.filter{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:18px 0}.filter>div{min-width:160px}label{display:block;font-size:12px;font-weight:700;color:#586b60;margin-bottom:7px}input,select{width:100%;border:1px solid #dce6df;border-radius:8px;padding:9px 10px;background:white;color:#20332b;font:inherit}input:focus,select:focus{outline:2px solid #d5f0e2;border-color:#239b70}.btn{border:0;border-radius:8px;padding:11px 16px;font-weight:700;font-size:12px;cursor:pointer}.primary{background:var(--g);color:white}.secondary{background:#eaf4ee;color:#176b50}.full{width:100%;margin-top:18px}.tablewrap{overflow:auto;margin-top:16px}table{width:100%;border-collapse:collapse;min-width:650px}th{background:#f5f9f6;color:#68796f;text-transform:uppercase;font-size:10px;letter-spacing:.4px;padding:12px 9px;text-align:center;white-space:nowrap}td{padding:10px 9px;border-bottom:1px solid #edf1ee;font-size:12px;text-align:center}td:first-child,th:first-child{text-align:left}.monthtable{min-width:900px}.monthtable th:first-child,.monthtable td:first-child{text-align:left;position:sticky;left:0;background:#fff;z-index:1;min-width:100px}.monthtable th:first-child{background:#f5f9f6}.monthtable td:first-child small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.activity-check{width:18px;height:18px;accent-color:var(--g);cursor:pointer}.activity-check:disabled{opacity:.2;cursor:not-allowed}.studentbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;background:#f2f8f4;border-radius:9px;padding:12px 14px;font-size:12px}.studentbar b{font-size:14px}.studentbar span{color:var(--muted)}.formfoot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:16px}.muted{font-size:11px;color:var(--muted)}.formgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:18px}.wide{grid-column:1/-1}.uploadform{display:flex;gap:12px;align-items:center;margin:16px 0}.notice{background:#e7f5ed;color:#176b50;padding:12px 15px;border-radius:8px;margin-bottom:16px}.error{background:#fff0ef;color:#a33;padding:10px;border-radius:8px;margin:12px 0}.login-main{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{background:white;border:1px solid var(--line);border-radius:17px;padding:38px;width:min(410px,100%);text-align:center}.login-card h1{font:800 23px 'Plus Jakarta Sans';margin:18px 0 7px}.login-card p{color:var(--muted);line-height:1.6;margin-bottom:24px}.login-card form{text-align:left}.login-card label{margin-top:13px}.narrow{max-width:480px}.narrow label{margin-top:15px}.narrow button{margin-top:18px}
@media(max-width:900px){.sidebar{width:66px;padding:18px 8px}.brand{padding:0 3px 25px}.brand>div:last-child,nav a span,.navlabel,.sidefoot{display:none}nav a{justify-content:center;padding:13px 7px}.main{margin-left:66px}.content{padding:20px 14px}.topbar{padding:0 16px}.stats{grid-template-columns:repeat(2,1fr)}.quickgrid{grid-template-columns:1fr}}
@media(max-width:560px){.content{padding:12px 9px}.topbar{height:64px}.stats{gap:8px}.stat{padding:13px}.stat b{font-size:23px}.panel{padding:14px}.filter>div{width:100%}.filter button{width:100%}.formgrid{grid-template-columns:1fr}.wide{grid-column:auto}.uploadform{align-items:stretch;flex-direction:column}.formfoot{align-items:stretch;flex-direction:column}.hero{padding:20px}.hero h1{font-size:18px}}

/* Kartu kontrol ibadah */
.print-card{background:#fff;border:1px solid #dfe8e2;border-radius:12px;padding:28px;margin:0 auto 24px;max-width:1100px;color:#20332b}
.print-head{display:flex;align-items:center;justify-content:center;gap:18px;text-align:center;border-bottom:2px solid #167b58;padding-bottom:16px}
.school-seal{width:58px;height:58px;border:2px solid #167b58;border-radius:50%;display:grid;place-items:center;color:#167b58;font-weight:800;font-size:20px}
.print-head h1{font:800 19px 'Plus Jakarta Sans';margin:0 0 5px}.print-head h2{font:700 14px 'DM Sans';margin:0}.print-head p{margin:5px 0 0;color:#64746b;font-size:11px}
.identity{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 18px;padding:16px 0;border-bottom:1px solid #dfe8e2}
.identity b,.identity span{display:block}.identity b{font-size:10px;text-transform:uppercase;color:#718078;margin-bottom:4px}.identity span{font-weight:700;font-size:12px}
.print-section{font:700 13px 'Plus Jakarta Sans';margin:19px 0 10px;color:#155d46}
.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.summary-tile{background:#f2f8f4;border:1px solid #e0eee5;border-radius:8px;padding:11px}.summary-tile span,.summary-tile small{display:block;color:#63736a;font-size:10px}.summary-tile b{display:block;font:800 21px 'Plus Jakarta Sans';color:#087f5b;margin:4px 0}.summary-tile small{font-size:9px}
.chart{display:grid;gap:8px}.chart-row{display:grid;grid-template-columns:90px 1fr 45px;align-items:center;gap:10px;font-size:11px}.chart-row>span{font-weight:600}.chart-track{height:11px;background:#edf2ef;border-radius:20px;overflow:hidden}.chart-track i{display:block;height:100%;background:#16855e;border-radius:20px}.chart-row>b{text-align:right}
.daily-chart{height:140px;display:flex;align-items:flex-end;gap:3px;padding:10px 5px 0;border-bottom:1px solid #cbd8d0;overflow:hidden}.daily-col{flex:1;min-width:5px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}.daily-bar-wrap{height:110px;width:100%;display:flex;align-items:flex-end;justify-content:center}.daily-bar-wrap i{display:block;width:min(80%,18px);background:#16855e;border-radius:3px 3px 0 0;min-height:0}.daily-col small{font-size:8px;color:#65746b}.chart-note{font-size:9px!important;color:#738178!important;margin-top:7px!important}
.attendance-strip{display:flex;gap:22px;flex-wrap:wrap;background:#f5f8f6;padding:12px;border-radius:8px;font-size:11px}
.detail-table{min-width:0}.detail-table th{font-size:8px;padding:7px 4px}.detail-table td{font-size:9px;padding:6px 4px}
.signature{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;text-align:center;margin-top:28px;font-size:10px;line-height:1.5}.sign-space{height:55px}.print-foot{text-align:center;color:#87938b;font-size:8px;margin-top:12px}
@media print{ @page{size:A4 portrait;margin:10mm}body{background:#fff;font-size:10px}.sidebar,.topbar,.no-print{display:none!important}.main{margin:0!important}.content{padding:0!important;max-width:none!important}.print-card{border:0;border-radius:0;padding:0;margin:0;max-width:none}.print-head{padding-bottom:10px}.print-head h1{font-size:16px}.school-seal{width:48px;height:48px}.identity{padding:10px 0;gap:7px 12px}.print-section{margin:12px 0 7px;font-size:11px}.summary-grid{grid-template-columns:repeat(4,1fr);gap:5px}.summary-tile{padding:7px}.summary-tile b{font-size:17px}.chart{gap:5px}.chart-row{font-size:9px;grid-template-columns:75px 1fr 35px}.chart-track{height:8px}.daily-chart{height:100px}.daily-bar-wrap{height:78px}.daily-col small{font-size:7px}.detail-table th{font-size:7px;padding:4px 2px}.detail-table td{font-size:7px;padding:3px 2px}.signature{margin-top:18px}.sign-space{height:40px}.print-foot{margin-top:6px}.tablewrap{overflow:visible}.detail-table{page-break-inside:auto}.detail-table tr{page-break-inside:avoid;page-break-after:auto}}
@media(max-width:700px){.identity{grid-template-columns:repeat(2,1fr)}.summary-grid{grid-template-columns:repeat(2,1fr)}.print-card{padding:15px}.print-head h1{font-size:15px}}

.report-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}
.report-tabs a{display:inline-flex;align-items:center;padding:8px 12px;border:1px solid #dce8df;border-radius:8px;color:#176b43;text-decoration:none;background:#f7fbf8;font-size:13px;font-weight:600}
.report-tabs a:hover{background:#eaf5ed}
.print-report{background:#fff}
@media print{.report-tabs{display:none!important}.print-report{border:0!important;box-shadow:none!important;padding:0!important}.panel{box-shadow:none!important}}

.student-report{max-width:1100px;margin:18px auto}
.student-report .report-chart{break-inside:avoid}
.student-report .summary-grid{margin-bottom:10px}
@media print{.student-report{max-width:none;margin:0;padding:0;border:0}.student-report .report-chart{break-inside:avoid}.student-report .summary-tile{break-inside:avoid}}

/* V2.7 - format laporan siswa formal dan siap cetak */
.student-report{background:#fff;border:1px solid #dce7df;border-radius:14px;padding:26px;box-shadow:0 8px 28px rgba(20,55,35,.06);color:#26352b}
.student-report .print-head{display:flex;align-items:center;justify-content:center;gap:16px;text-align:left;border-bottom:3px double #2b7650;padding:8px 0 18px;margin-bottom:16px}
.student-report .print-head h1{font-size:19px;letter-spacing:.6px;color:#174b31;margin:0 0 5px}
.student-report .print-head h2{font-size:14px;color:#355d45;margin:0 0 4px}
.student-report .print-head p{font-size:10px;color:#637469;margin:0}
.student-report .school-seal{background:#e9f4ec;color:#176b43;border:1px solid #c8dfcf;font-weight:800}
.identity-table,.report-table table{width:100%;border-collapse:collapse;margin:10px 0 16px;min-width:0}
.identity-table th,.identity-table td,.report-table th,.report-table td{border:1px solid #d7e1da;padding:8px 10px;font-size:10px;vertical-align:middle}
.identity-table th{width:16%;text-align:left;background:#f0f6f1;color:#345c43;font-weight:700}
.identity-table td{width:34%;background:#fff}
.student-report .print-section{font-size:12px;font-weight:800;color:#1e6240;border-left:4px solid #2d8a59;padding:7px 10px;background:#f1f7f2;margin:18px 0 8px;letter-spacing:.15px}
.report-table thead th{background:#eaf3ec;color:#28543a;font-weight:700;text-align:center}
.report-table tbody tr:nth-child(even){background:#fafcfb}
.report-table .total-row th{background:#f0f5f1;color:#234b33;font-weight:800}
.report-table .num{text-align:center;font-variant-numeric:tabular-nums;font-weight:600}
.report-table .center{text-align:center}
.student-report .report-chart{background:#fbfdfb;border:1px solid #dfe9e2;border-radius:9px;padding:12px 14px;margin:10px 0 16px}
.student-report .report-chart h3{font-size:10px;text-transform:uppercase;letter-spacing:.35px;color:#45634f;margin-bottom:10px}
.student-report .report-chart-row{grid-template-columns:125px 1fr 40px;font-size:10px}
.student-report .report-chart-track{height:11px;background:#e6ede8}
.student-report .report-chart-track i{background:#258454}
.student-report .date-sub{display:block;font-size:8px;color:#718076;margin-top:2px}
.student-report .checkmark{font-weight:800;color:#187344}
.student-report .dashmark{color:#a0aaa3}
.student-report .haidmark{font-size:8px;font-weight:700;color:#8a4d35}
.student-report .daily-report-table table{table-layout:fixed}
.student-report .daily-report-table th,.student-report .daily-report-table td{padding:6px 4px;font-size:8px;text-align:center}
.student-report .daily-report-table th:nth-child(2),.student-report .daily-report-table td:nth-child(2){width:92px;text-align:left}
.student-report .daily-report-table th:nth-child(3),.student-report .daily-report-table td:nth-child(3){width:90px}
.student-report .signature{border-top:1px solid #dce6df;padding-top:14px;margin-top:24px;color:#334b3b}
.student-report .print-foot{border-top:1px solid #e2e9e4;padding-top:8px;color:#758279}
@media print{
 @page{size:A4 landscape;margin:10mm}
 body{background:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .student-report{border:0!important;border-radius:0!important;box-shadow:none!important;padding:0!important;margin:0!important;max-width:none!important}
 .student-report .print-head{padding:0 0 12px;margin-bottom:10px}
 .student-report .print-head h1{font-size:16px}
 .student-report .print-section{margin:12px 0 6px;font-size:10px;break-after:avoid}
 .student-report .identity-table th,.student-report .identity-table td,.student-report .report-table th,.student-report .report-table td{padding:5px 7px;font-size:8px}
 .student-report .report-chart{padding:8px 10px;margin:7px 0 10px;break-inside:avoid}
 .student-report .report-chart-row{font-size:8px;grid-template-columns:110px 1fr 32px;margin:5px 0}
 .student-report .report-chart-track{height:7px}
 .student-report .daily-report-table th,.student-report .daily-report-table td{font-size:7px;padding:4px 2px}
 .student-report .signature{margin-top:16px}
 .student-report .sign-space{height:35px}
 .student-report .print-foot{margin-top:6px}
 .student-report table{break-inside:auto}
 .student-report thead{display:table-header-group}
 .student-report tr{break-inside:avoid;page-break-inside:avoid}
}
@media(max-width:700px){
 .student-report{padding:14px;margin:10px}
 .student-report .print-head{justify-content:flex-start}
 .student-report .identity-table th,.student-report .identity-table td{padding:6px;font-size:9px}
 .student-report .daily-report-table table{min-width:760px}
 .student-report .report-chart-row{grid-template-columns:95px 1fr 35px}
}
