:root{--sky:#0284c7;--sky2:#0ea5e9;--light:#f0f9ff;--border:#bae6fd;--ink:#0f172a;--muted:#64748b;--bg:#f8fafc;--green:#15803d;--amber:#b45309;--red:#b91c1c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;font-size:14px}.layout{min-height:100vh;display:flex}.sidebar{width:275px;min-width:275px;height:100vh;position:sticky;top:0;background:#fff;border-right:1px solid #e2e8f0;padding:16px;display:flex;flex-direction:column;justify-content:space-between;transition:.25s;box-shadow:2px 0 16px rgba(2,132,199,.04)}.layout.collapsed .sidebar{margin-left:-275px}.brand{display:flex;gap:10px;align-items:center;padding:8px 8px 16px;border-bottom:1px solid var(--border)}.brand-logo{width:46px;height:46px;border:1px solid var(--border);background:var(--light);border-radius:12px;display:grid;place-items:center}.brand-logo img{width:38px;height:38px;object-fit:contain}.brand b{display:block;font-size:15px}.brand small{display:block;color:var(--muted);margin-top:2px}.user-card{margin:16px 0;padding:14px;border:1px solid var(--border);background:var(--light);border-radius:12px;font-size:12px}.user-card>b,.user-card>span{display:block}.user-card span{color:var(--muted)}.user-card hr{border:0;border-top:1px solid var(--border)}.user-card a{display:block;color:var(--sky);text-decoration:none;margin-top:6px}.menu-title{font-size:11px;font-weight:800;color:#64748b;letter-spacing:.05em;padding:0 8px 8px}nav{display:flex;flex-direction:column;gap:4px}nav a{padding:11px 12px;border-radius:10px;color:#475569;text-decoration:none;font-weight:600}nav a.active{background:var(--light);border:1px solid var(--border);color:#0369a1}nav a:hover{background:#f8fafc}.sidebar-foot{display:flex;justify-content:space-between;font-size:12px;font-weight:700;color:#0369a1}.danger{color:#dc2626}.main{flex:1;min-width:0}header{height:76px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;padding:12px 24px;position:sticky;top:0;z-index:10;box-shadow:0 2px 8px rgba(15,23,42,.03)}header h1{font-size:20px;margin:0}header p{margin:3px 0 0;color:var(--muted);font-size:12px}.icon-btn{width:42px;height:42px;border:1px solid var(--border);background:#fff;border-radius:10px;color:#0369a1;font-size:20px}.portal-badge{margin-left:auto;background:var(--sky);color:#fff;padding:7px 11px;border-radius:7px;font-size:12px;font-weight:700}main{padding:22px;max-width:1500px;margin:auto}.crumb{color:#64748b;font-size:12px;margin-bottom:16px}.crumb span{margin:0 6px;color:#94a3b8}.tabs{display:flex;gap:6px;border-bottom:1px solid #dbeafe;margin-bottom:20px}.tab{border:0;background:transparent;padding:11px 15px;color:#64748b;font-weight:700;cursor:pointer;border-bottom:3px solid transparent}.tab.active{color:#0369a1;border-color:var(--sky)}.view{display:none}.view.active{display:block}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.page-head h2{font-size:21px;margin:0}.page-head p{color:var(--muted);margin:5px 0 0}.status{padding:6px 12px;border-radius:999px;font-weight:800;font-size:12px}.draft{background:#fef3c7;color:#92400e}.card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:20px;margin-bottom:18px;box-shadow:0 4px 18px rgba(2,132,199,.05)}.card-title{display:flex;align-items:flex-start;gap:12px;padding-bottom:15px;margin-bottom:17px;border-bottom:1px solid #e0f2fe}.card-title .num{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:var(--sky);color:#fff;font-weight:800}.card-title h3,.card h3{margin:0;font-size:16px}.card-title p{margin:4px 0 0;color:var(--muted);font-size:12px}.grid{display:grid;gap:15px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}label{font-weight:700;font-size:12px;color:#334155}input,select{width:100%;margin-top:6px;border:1px solid #cbd5e1;border-radius:9px;padding:10px 11px;background:#fff;color:#0f172a;outline:none}input:focus,select:focus{border-color:#38bdf8;box-shadow:0 0 0 3px rgba(14,165,233,.1)}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.loc-box{border:1px solid #dbeafe;background:#f8fcff;padding:15px;border-radius:12px}.loc-box.full{grid-column:1/-1}.loc-box h4{margin:0 0 12px;color:#0369a1}.table-wrap{overflow:auto}.analysis-table,.annual-table{width:100%;border-collapse:collapse}.analysis-table th,.analysis-table td,.annual-table th,.annual-table td{border:1px solid #dbeafe;padding:9px;text-align:center}.analysis-table thead th,.annual-table thead th{background:#f0f9ff;color:#075985}.analysis-table td:first-child,.analysis-table th:first-child{text-align:left;font-weight:700}.analysis-table input{margin:0;min-width:120px}.analysis-table tfoot th,.analysis-table tfoot td{background:#f8fafc}.pill{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}.neutral{background:#e2e8f0;color:#475569}.clean{background:#dcfce7;color:#166534}.moderate{background:#fef3c7;color:#92400e}.polluted{background:#fee2e2;color:#991b1b}.check{display:flex;align-items:center;gap:8px;margin-top:16px}.check input{width:auto;margin:0}.actions{display:flex;justify-content:flex-end;gap:10px;margin:22px 0}.btn{border:0;border-radius:9px;padding:10px 16px;font-weight:800;cursor:pointer}.primary{color:#fff;background:linear-gradient(135deg,var(--sky),var(--sky2))}.secondary{background:#e2e8f0;color:#334155}.outline{background:#fff;border:1px solid var(--border);color:#0369a1}.report-actions{display:flex;gap:8px}.report-actions select{margin:0;width:auto}.report-sheet{border-radius:8px}.report-title{text-align:center;font-weight:900;font-size:16px;padding:8px 30px 18px}.report-meta{display:grid;gap:8px;margin-bottom:16px}.annual-table{font-size:10px;min-width:1250px}.annual-table th,.annual-table td{padding:7px 5px}.report-footer{display:flex;justify-content:space-between;margin-top:16px}.note{font-size:11px;color:#64748b;margin-top:15px}.calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.calc-inputs{display:grid;gap:12px;margin-top:15px}.calc-input-row{display:grid;grid-template-columns:1.7fr .8fr .6fr;align-items:end;gap:10px}.calc-input-row .unit{padding:10px 0;color:#64748b;font-size:12px}.full-btn{width:100%;margin-top:18px}.calc-output{margin-top:15px}.ika-score{background:var(--light);border:1px solid var(--border);border-radius:14px;padding:18px;display:flex;justify-content:space-between;align-items:center}.ika-score strong{font-size:34px;color:#0369a1}.result-row{display:flex;justify-content:space-between;gap:20px;padding:14px 2px;border-bottom:1px solid #e2e8f0}.result-row.vertical{display:block}.result-row.vertical b{display:block;margin-top:7px;line-height:1.5}.subhead{margin:20px 0 8px}.sub-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.sub-item{display:flex;justify-content:space-between;padding:9px 10px;background:#f8fafc;border-radius:8px}.toast{position:fixed;right:24px;bottom:24px;background:#0f172a;color:#fff;padding:12px 16px;border-radius:10px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;z-index:50}.toast.show{opacity:1;transform:none}@media(max-width:900px){.sidebar{position:fixed;z-index:30;transform:translateX(-100%);margin:0!important}.layout.mobile-open .sidebar{transform:none}.grid.two,.grid.three,.location-grid,.calc-grid{grid-template-columns:1fr}.loc-box.full{grid-column:auto}.portal-badge{display:none}main{padding:14px}.page-head{display:block}.report-actions{margin-top:10px}.calc-input-row{grid-template-columns:1fr}.report-footer{display:block}.report-footer span{display:block;margin-top:6px}}@media print{.sidebar,header,.tabs,.crumb,.page-head,.actions{display:none!important}main{padding:0}.view{display:none!important}#report{display:block!important}.card{border:0;box-shadow:none;margin:0;padding:0}.main{width:100%}}
.list-toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:16px}.search-box{flex:1;max-width:420px}.list-toolbar input,.list-toolbar select{margin:0}.list-toolbar select{width:190px}.report-list-table{width:100%;border-collapse:collapse}.report-list-table th,.report-list-table td{border-bottom:1px solid #e2e8f0;padding:12px 10px;text-align:left;vertical-align:middle}.report-list-table th{background:#f0f9ff;color:#075985;font-size:12px}.report-list-table td{font-size:12px}.report-list-table tr:hover td{background:#f8fcff}.status.submitted{background:#dcfce7;color:#166534}.mini-btn{border:1px solid var(--border);background:#fff;color:#0369a1;border-radius:7px;padding:6px 9px;font-size:11px;font-weight:800;cursor:pointer;margin-right:4px}.mini-btn.primary-mini{background:#e0f2fe}.empty-state{text-align:center;padding:38px 10px;color:#64748b}.empty-state b,.empty-state span{display:block}.empty-state b{color:#334155;margin-bottom:5px}.back-link{border:0;background:transparent;color:#0369a1;font-weight:800;padding:0;margin-bottom:9px;cursor:pointer}.locked-banner{background:#ecfdf5;border:1px solid #bbf7d0;color:#166534;padding:11px 13px;border-radius:10px;margin-bottom:14px;font-weight:700}

/* v3 - borang berseksyen */
.form-section-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:0 0 16px;position:sticky;top:78px;z-index:6;background:#f5f7fb;padding:8px 0}
.section-tab{border:1px solid #d8e0ea;background:#fff;border-radius:9px;padding:10px 8px;font-weight:700;color:#526274;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px}
.section-tab span{width:24px;height:24px;border-radius:50%;background:#eaf0f7;display:inline-grid;place-items:center}
.section-tab.active{border-color:#0878b9;color:#0878b9;background:#eef8fe}.section-tab.active span{background:#0878b9;color:#fff}
.form-section{display:none}.form-section.active{display:block}
.section-nav{display:flex;align-items:center;justify-content:space-between;margin:14px 0}.section-nav span{font-size:13px;color:#667789;font-weight:700}
.analysis-double-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.analysis-side{border:1px solid #dce5ef;border-radius:12px;overflow:hidden;background:#fbfdff}
.analysis-side-head{padding:13px 16px;background:#eaf5fb;color:#17658e;display:flex;gap:7px;align-items:baseline}.analysis-side-head strong{font-size:16px}.analysis-side-head em{font-size:12px}
.param-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px}.param-grid label{font-weight:700;font-size:13px}.param-grid small{display:block;color:#7c8a98;font-weight:400;margin:3px 0 6px}.param-grid input{width:100%}
.analysis-result{border-top:1px solid #e0e8f0;display:grid;grid-template-columns:repeat(3,1fr);background:#fff}.analysis-result>div{padding:12px;border-right:1px solid #edf1f5}.analysis-result>div:last-child{border-right:0}.analysis-result span:first-child{display:block;font-size:11px;color:#7b8998;margin-bottom:5px}.analysis-result strong{font-size:17px;color:#193b54}
#report.view.active{display:block}
@media(max-width:900px){.form-section-tabs{grid-template-columns:1fr 1fr;position:static}.analysis-double-grid{grid-template-columns:1fr}.param-grid{grid-template-columns:1fr}}
/* v5 - laporan bulanan berdasarkan Sheet 2 */
.report-actions{align-items:flex-end;flex-wrap:wrap}.compact-label{font-size:11px;color:#64748b}.compact-label select{display:block;margin-top:4px;min-width:100px}.btn.excel{background:#15803d;color:#fff}.btn.pdf{background:#b91c1c;color:#fff}.report-hint{margin:-6px 0 14px;padding:10px 13px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:9px;color:#1e3a8a;font-size:12px}.sheet2-meta{border-top:2px solid #334155;border-bottom:1px solid #64748b;padding:12px 4px}.report-year-band{text-align:left;font-weight:900;padding:10px 6px;background:#f1f5f9;border:1px solid #94a3b8;border-bottom:0}.sheet2-notes{margin-top:18px;font-size:10px;font-weight:700;color:#475569}.sheet2-notes p{margin:6px 0}.annual-table td:nth-child(9),.annual-table td:nth-child(10),.annual-table td:nth-child(18),.annual-table td:nth-child(19){font-weight:700}.annual-table td{white-space:nowrap}
@media print{@page{size:A4 landscape;margin:8mm}.report-hint{display:none!important}.annual-table{font-size:7px;min-width:0}.annual-table th,.annual-table td{padding:4px 2px}.report-title{font-size:12px}.sheet2-notes{font-size:8px}}

/* Laporan: penapis tambahan */
.report-filter-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;justify-content:flex-end}
.report-filter-actions .compact-label{min-width:150px}
.report-filter-actions .compact-label:nth-of-type(2){min-width:230px}
.report-filter-actions .compact-label:nth-of-type(3){min-width:220px}
.report-filter-actions .compact-label:nth-of-type(4){min-width:290px}
.report-filter-actions select{width:100%}
@media(max-width:1100px){.report-filter-actions{justify-content:flex-start}.report-filter-actions .compact-label{min-width:220px;flex:1}}

.report-screen-title-row{display:flex;align-items:center;margin-bottom:14px}.report-screen-title-row h2{font-size:21px;margin:0}.report-filter-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:nowrap;margin-bottom:16px;overflow-x:auto;padding-bottom:2px}.report-filter-row .compact-label{min-width:110px;flex:0 0 auto}.report-filter-row .compact-label:nth-of-type(2){min-width:220px}.report-filter-row .compact-label:nth-of-type(3){min-width:210px}.report-filter-row .compact-label:nth-of-type(4){min-width:280px}.report-filter-row select{width:100%;margin-top:4px}.report-filter-row .btn{white-space:nowrap;flex:0 0 auto}.report-grid-only{padding:0;overflow:hidden}.report-grid-only .table-wrap{margin:0}.report-grid-only .annual-table{margin:0}
@media(max-width:1100px){.report-filter-row{flex-wrap:wrap;overflow:visible}.report-filter-row .compact-label{flex:1 1 180px}}

.report-notice{padding:35px 16px;text-align:center;color:#64748b;font-size:14px;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;margin:8px 0}.report-filter-row{flex-wrap:wrap}.report-filter-row .compact-label{min-width:130px;flex:1 1 135px}.report-filter-row .btn{white-space:nowrap}
