*{box-sizing:border-box}body{margin:0;background:#f3f6fa;color:#16263b;font:14px Arial,sans-serif}a{color:#1264bb}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:linear-gradient(#133c69,#0b2849);color:#fff;padding:20px;display:flex;flex-direction:column;overflow-y:auto}.brand{display:flex;gap:12px;align-items:center;border-bottom:1px solid #ffffff26;padding-bottom:18px}.brand img,.brand>b{width:48px;height:48px;object-fit:contain;background:#fff;color:#1769d2;border-radius:12px;display:grid;place-items:center}.brand strong,.brand small{display:block}.brand small{font-size:10px;color:#c2d5e9;margin-top:4px}.sidebar nav{display:grid;gap:6px;margin-top:22px}.sidebar nav a{color:#d4e1ef;text-decoration:none;padding:12px;border-radius:8px}.sidebar nav a:hover{background:#ffffff18}.profile{margin-top:auto;border-top:1px solid #ffffff26;padding-top:15px}.profile b,.profile small{display:block}.profile small{color:#b8cce2;margin:4px 0 12px}.profile a{color:#fff}.workspace{margin-left:260px}.workspace header{height:78px;background:#fff;border-bottom:1px solid #dfe6ee;padding:0 28px;display:flex;align-items:center;justify-content:space-between}.workspace h1{margin:0;font-size:22px}.workspace header p{margin:4px 0;color:#718096}.role{background:#e7f0fc;color:#175a9e;padding:7px 12px;border-radius:20px;font-weight:bold}.content{padding:26px}.flash,.alert{background:#e4f7ed;color:#127347;padding:12px;border-radius:8px;margin-bottom:15px}.hero{background:linear-gradient(110deg,#16467b,#2575c4);color:#fff;border-radius:14px;padding:24px}.hero h2{margin:6px 0}.hero p{margin:0;color:#d4e7fa}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.cards article,.panel{background:#fff;border:1px solid #dfe6ee;border-radius:12px;padding:20px}.cards span{display:block;color:#69798d}.cards b{display:block;font-size:28px;margin-top:7px}.panel{margin-bottom:18px}.flowbar{display:flex;align-items:center;justify-content:space-around;background:#edf5ff;padding:18px;border-radius:9px}.flowbar i{color:#2971bc;font-size:24px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:18px}.wide{grid-column:1/-1}label{font-weight:bold}input,select,textarea{display:block;width:100%;padding:10px;border:1px solid #ccd7e3;border-radius:7px;margin-top:5px}textarea{min-height:65px}button,.button-link{border:0;background:#1769c2;color:#fff;padding:10px 14px;border-radius:7px;cursor:pointer;text-decoration:none;display:inline-block}button:disabled{opacity:.55;cursor:not-allowed}.table{overflow:auto}table{width:100%;border-collapse:collapse}th{background:#f1f5f9;text-align:left}th,td{padding:11px;border-bottom:1px solid #e4e9ef;vertical-align:top}td small{display:block;color:#788698;margin-top:4px}.badge{background:#e5effc;color:#175c9f;padding:5px 8px;border-radius:14px;white-space:nowrap}.notice-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:20px;background:#f04444;color:#fff;font-size:11px}.checks{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.checks label{display:flex;gap:9px;border:1px solid #dfe6ee;padding:10px;border-radius:8px}.checks input{width:auto;margin:2px}.checks small{display:block;color:#718096}.dispo{border:1px solid #dfe6ee;border-left:5px solid #1f6fc0;border-radius:8px;padding:15px;margin-top:12px}.dispo>a{float:right}.user-row{display:grid;grid-template-columns:1.2fr .7fr 1.3fr 1fr 1fr auto auto;gap:7px;margin:8px 0;padding:8px;background:#f7f9fc}.pwa-tools p,.settings-divider p,.panel-heading p{color:#66768a}.pwa-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.error-text{color:#b42318!important}.settings-divider{border-top:1px solid #dfe6ee;margin-top:10px;padding-top:12px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.notification-list{display:grid;gap:10px;margin-top:15px}.notification-item{display:flex;gap:12px;padding:14px;border:1px solid #dfe6ee;border-radius:10px;color:#25364b;text-decoration:none;background:#fff}.notification-item.unread{background:#edf5ff;border-color:#9fc8f3}.notification-item b,.notification-item p,.notification-item small{display:block;margin:0 0 5px}.notification-item small{color:#718096}.report-card{border:1px solid #dfe6ee;border-left:5px solid #8aa2ba;border-radius:10px;padding:18px;margin-top:14px;background:#fff}.report-card.menunggu-review{border-left-color:#e99a27}.report-card.diterima{border-left-color:#23a269;background:#fbfffd}.report-card.perlu-perbaikan{border-left-color:#df4b4b;background:#fffdfd}.report-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.report-head p{color:#66768a;margin:6px 0}.report-status{font-weight:bold;background:#eef3f8;border-radius:20px;padding:7px 11px;white-space:nowrap}.report-meta{display:flex;gap:18px;flex-wrap:wrap;background:#f6f8fb;padding:10px;border-radius:8px;margin:12px 0}.report-result{border-top:1px solid #e1e7ee;padding-top:10px}.report-form{border-top:1px solid #e1e7ee;padding-top:4px}.review-form{border-top:1px solid #e1e7ee;margin-top:14px;padding-top:12px}.review-form>div{display:flex;gap:8px;margin-top:10px}.danger{background:#c83b3b}.review-note{background:#fff1d7;border-radius:8px;padding:10px;margin-top:12px}.login{display:grid;grid-template-columns:1.15fr .85fr;min-height:100vh}.login-brand{background:radial-gradient(circle at 15% 15%,#2c74bb,#10385f 45%,#092441);color:#fff;padding:8vw;display:flex;flex-direction:column;justify-content:center}.login-brand img,.login-brand .logo{width:90px;height:90px;object-fit:contain;background:#fff;color:#1769c2;border-radius:20px;display:grid;place-items:center;font-size:28px}.login-brand h1{font-size:36px;margin:5px 0}.login-brand small{margin-top:25px;letter-spacing:2px}.flow{display:flex;gap:12px;align-items:center;margin-top:40px}.flow b{background:#ffffff16;border:1px solid #ffffff2b;padding:12px;border-radius:9px}.login-box{display:grid;place-items:center;padding:30px}.login-box form{width:min(400px,100%);background:#fff;border:1px solid #dfe6ee;border-radius:15px;padding:30px;box-shadow:0 20px 60px #0b31571c}.login-box button{width:100%;margin-top:18px}.login-box details{margin-top:20px}@media(max-width:900px){.cards{grid-template-columns:1fr 1fr}.user-row{grid-template-columns:1fr}.login{grid-template-columns:1fr}.login-brand{padding:35px}.sidebar{width:75px;padding:12px}.brand div,.sidebar nav a{font-size:0}.sidebar nav a:first-letter{font-size:20px}.profile>*:not(a){display:none}.workspace{margin-left:75px}}@media(max-width:600px){.content{padding:14px}.cards,.form-grid,.checks{grid-template-columns:1fr}.flowbar{align-items:flex-start;flex-direction:column}.flowbar i{transform:rotate(90deg);margin-left:15px}.panel-heading,.report-head{align-items:flex-start;flex-direction:column}.report-meta{display:grid;gap:7px}.review-form>div{flex-direction:column}}
/* Infografis dashboard V4 - dimuat langsung dari style.css */
.dashboard-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px;margin-top:18px}.dashboard-grid .panel{margin:0}.infographic,.outstanding-summary{min-height:285px}.donut-layout{display:grid;grid-template-columns:190px 1fr;align-items:center;gap:28px;margin-top:16px}.donut-chart{width:176px;height:176px;border-radius:50%;position:relative;display:grid;place-items:center;box-shadow:inset 0 0 0 1px #dfe6ee,0 14px 34px #163a6018}.donut-chart:after{content:"";position:absolute;width:108px;height:108px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #e6ebf1}.donut-chart>div{position:relative;z-index:1;text-align:center}.donut-chart b{display:block;font-size:30px;color:#173f6a}.donut-chart small{display:block;color:#728096;margin-top:3px}.chart-legend{display:grid;gap:4px}.chart-legend>div{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:10px;padding:10px 8px;border-bottom:1px solid #edf1f5}.chart-legend>div:last-child{border-bottom:0}.chart-legend i{width:11px;height:11px;border-radius:4px}.chart-legend .c-kadis{background:#1769c2}.chart-legend .c-sekdis{background:#22a06b}.chart-legend .c-kabid{background:#f29b38}.chart-legend .c-kasubag{background:#8b5cf6}.chart-legend b{font-size:18px;color:#1c2f45}.notice-total{display:grid;place-items:center;min-width:54px;height:54px;border-radius:50%;background:#fff0e5;color:#c25713;font-size:24px;font-weight:bold}.status-stack{display:grid;gap:11px;margin-top:18px}.status-stack>div{display:flex;justify-content:space-between;align-items:center;padding:15px;border-radius:11px;background:#f7f9fc;border-left:5px solid #d6dee8}.status-stack>div:nth-child(1){border-left-color:#df4b4b}.status-stack>div:nth-child(2){border-left-color:#e99a27}.status-stack>div:nth-child(3){border-left-color:#8b5cf6}.status-stack span{color:#4d6076}.status-stack b{font-size:23px;color:#1b2d42}.report-mini-status{display:inline-block;padding:6px 10px;border-radius:18px;font-weight:bold;font-size:12px}.report-mini-status.late{background:#fde8e8;color:#b42318}.report-mini-status.waiting{background:#fff1d7;color:#9c5700}.report-mini-status.repair{background:#efe8ff;color:#6d37bd}.empty-state{text-align:center;color:#22a06b;padding:25px!important}.action-links{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.action-links form{display:inline;margin:0}.link-danger{padding:0;background:transparent;color:#c83232;text-decoration:underline;border-radius:0}.button-link.secondary{background:#6d7b8b}@media(max-width:1050px){.dashboard-grid{grid-template-columns:1fr}.infographic,.outstanding-summary{min-height:auto}.donut-layout{grid-template-columns:170px 1fr}.donut-chart{width:160px;height:160px}}@media(max-width:600px){.donut-layout{grid-template-columns:1fr;justify-items:center}.chart-legend{width:100%}}
