:root{--nav:#092e54;--nav2:#123c70;--blue:#1674e6;--blue2:#3a96ff;--orange:#ff933d;--teal:#13b69d;--ink:#142b4c;--muted:#778aa0;--bg:#f3f8fe;--white:#fff;--border:#e5edf6;--shadow:0 10px 32px rgba(34,76,126,.065);--radius:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 Inter,'Segoe UI',system-ui,Arial,sans-serif}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}small{font-size:11px}h1,h2,h3,p{margin-top:0}h1{font-size:28px;line-height:1.28;letter-spacing:-.75px}h2{font-size:18px;letter-spacing:-.4px}h3{font-size:15px;letter-spacing:-.2px}p{line-height:1.6}.muted{color:var(--muted)}.app-shell{display:flex;min-height:100vh}.sidebar{width:252px;flex:0 0 252px;background:linear-gradient(160deg,#0a315b 5%,#0a2647 70%,#102f55);color:#dbe8f8;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:30}.brand{display:flex;gap:11px;align-items:center;padding:29px 19px 19px}.brand-logo{height:44px;width:44px;border-radius:13px;object-fit:cover;background:#fff}.brand-logo.fallback{display:grid;place-items:center;background:linear-gradient(145deg,#168af6,#ff9f46);color:white;font-size:29px;font-weight:800;box-shadow:0 10px 20px #061a2d66}.brand strong{font-size:21px;letter-spacing:-1px;color:white;line-height:1.2}.brand strong span{color:#ffae64}.brand small{display:block;color:#acc3df;margin-top:2px;font-size:10px}.org-mini{margin:0 15px 20px;border-radius:10px;border:1px solid #ffffff19;background:#ffffff0b;padding:10px;display:flex;gap:8px;align-items:center;font-size:12px;color:#d4e8fc}.org-dot{display:block;width:8px;height:8px;background:#23cfaf;border-radius:50%;box-shadow:0 0 0 4px #23cfaf1c}.truncate{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.nav{padding:0 11px 20px;overflow:auto;flex:1}.nav-label{color:#789cbe;font-size:10px;font-weight:800;letter-spacing:1.55px;margin:17px 14px 8px}.nav-link{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:11px;margin:3px 0;font-weight:550;color:#c2d4e9;transition:.2s}.nav-link span{font-size:19px;display:inline-block;min-width:22px;text-align:center}.nav-link:hover{background:#ffffff13;color:#fff}.nav-link.active{background:linear-gradient(90deg,#1777ed,#1464bd);box-shadow:0 7px 20px #001b3680;color:#fff}.side-info{margin:8px 15px 15px;border-radius:15px;background:linear-gradient(150deg,#25669e,#168c9b);padding:16px 18px;position:relative;overflow:hidden}.side-info:after{content:' ';display:block;width:120px;height:90px;position:absolute;right:-50px;bottom:-40px;border-radius:60%;background:#ffffff16}.side-info-icon{font-size:25px;margin-bottom:8px;color:#ffd393}.side-info strong{color:#fff;font-size:13px;line-height:1.45}.side-info p{font-size:11px;color:#e4f7ff;margin:6px 0 0}.sidebar-foot{padding:13px 20px;border-top:1px solid #ffffff19;color:#81a1c5;font-size:10px}.sidebar-foot span{margin:0 8px;color:#ffab59}.main-area{flex:1;min-width:0}.topbar{background:white;height:76px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:15;box-shadow:0 4px 18px rgba(24,68,119,.02)}.top-left{display:flex;align-items:center;gap:13px}.top-left small,.usertext small{display:block;color:#8b99ae;font-size:10px;letter-spacing:1.2px;font-weight:650}.top-left strong{font-size:17px;letter-spacing:-.2px}.top-right{display:flex;align-items:center;gap:13px}.top-date{color:#8091a8;font-size:12px;margin-right:8px}.avatar{width:39px;height:39px;display:grid;place-items:center;border-radius:50%;color:#1764b3;font-size:17px;font-weight:800;background:linear-gradient(140deg,#dff2ff,#c7e6fb);border:2px solid #fff;box-shadow:0 0 0 1px #d3e8f7}.usertext b{display:block;line-height:1.3;font-size:12px}.usertext small{text-transform:capitalize;letter-spacing:0}.icon-button{background:#f4f8fd;border:1px solid var(--border);height:37px;width:37px;border-radius:11px;color:#3b658e;font-size:18px}.toggle-menu{display:none}.content{padding:27px 34px 10px;max-width:1700px;margin:auto}.welcome{border:1px solid #d9ebfd;border-radius:21px;display:flex;position:relative;min-height:160px;overflow:hidden;background:linear-gradient(98deg,#e7f6ff 5%,#f5fcff 52%,#cceafa);padding:27px 30px;box-shadow:var(--shadow);margin-bottom:29px}.welcome-copy{position:relative;z-index:3;flex:1}.welcome h1{margin:7px 0 7px;font-size:26px}.welcome h1 span{font-size:20px}.welcome p{font-size:13px;color:#657d99;margin:0}.eyebrow{font-size:10px;color:#2480c9;font-weight:900;letter-spacing:1.25px}.welcome-meta{color:#4685b2;font-size:11px;margin-top:12px}.welcome-art{position:absolute;right:0;bottom:0;top:0;width:31%;overflow:hidden;background:linear-gradient(120deg,transparent,#8fd4f46b)}.art-sun{position:absolute;right:27%;top:16px;width:58px;height:58px;border-radius:50%;background:#ffe7a0;box-shadow:0 0 0 16px #fff2ce70}.art-hill{position:absolute;border-radius:50% 50% 0 0;bottom:-62px;width:130%;height:130px}.art-hill.a{right:-70px;background:#75cbbb}.art-hill.b{right:80px;bottom:-94px;background:#3291b3;opacity:.45}.art-roof{position:absolute;right:27%;bottom:0;color:#3488b9;font-size:130px;line-height:1;font-weight:800;opacity:.82}.art-leaf{position:absolute;right:12%;top:23px;color:#16ad99;font-size:48px}.section-heading,.page-header,.panel-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.section-heading{margin-bottom:15px}.section-heading h2,.page-header h1{margin-bottom:3px}.section-heading p,.page-header p{margin:0;color:var(--muted);font-size:12px}.page-header{margin:6px 0 24px}.page-header h1{font-size:25px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:10px;padding:10px 15px;font-size:12px;font-weight:750;border:1px solid transparent;white-space:nowrap;transition:.15s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:linear-gradient(110deg,#1977e8,#1684f3);color:white;box-shadow:0 7px 17px #1676d52a}.btn.secondary{background:white;border-color:#dce8f3;color:#39648b}.btn.subtle{background:#eef6ff;color:#2676bc}.btn.danger{background:#fff0f1;border-color:#f9c9cc;color:#b13a48}.btn.big{min-height:43px;padding:12px 18px}.btn.micro{font-size:11px;padding:6px 9px;margin:2px 0}.alert{padding:12px 15px;border-radius:11px;border:1px solid;margin-bottom:16px;font-size:12px}.alert.error,.alert.warning{background:#fff6ee;color:#a34c2c;border-color:#ffd5b6}.alert.success{background:#e9fcf5;color:#167857;border-color:#b5ebd7}.filters{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:23px;padding:12px 15px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.filters label{margin:0;max-width:250px;min-width:138px}.filters input,.filters select{padding:9px 11px!important;height:39px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:17px}.metric{background:#fff;border:1px solid var(--border);border-radius:16px;padding:19px 18px;min-height:154px;box-shadow:var(--shadow)}.metric-icon{width:43px;height:43px;display:grid;place-items:center;border-radius:13px;font-size:23px;font-weight:700;margin-bottom:13px}.metric-icon.blue{background:#e4f2ff;color:#1379dc}.metric-icon.teal{background:#dcf7f0;color:#1ba68f}.metric-icon.orange{background:#fff0df;color:#f28b29}.metric-icon.red{background:#ffe8eb;color:#ed6274}.metric small{display:block;color:#77879c;font-weight:550}.metric strong{display:block;color:#14284a;font-size:20px;letter-spacing:-.6px;margin:3px 0 6px;white-space:nowrap}.metric-hint{font-size:10px;color:#90a3b5}.cols-2{display:grid;grid-template-columns:1.1fr 1fr;gap:18px;margin-bottom:18px}.cols-main{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(310px,1fr);gap:19px;align-items:start}.panel{background:#fff;border:1px solid var(--border);border-radius:17px;padding:23px;margin-bottom:18px;box-shadow:var(--shadow);min-width:0}.panel h3{margin-bottom:12px}.panel-head{margin-bottom:18px}.panel-head h3{margin:0}.panel-head p{color:#8190a6;margin:2px 0 0;font-size:11px}.panel-head a,.mini-link{font-size:11px;color:#197dde;font-weight:750}.tag{display:inline-block;border-radius:8px;background:#eff5fc;padding:4px 8px;color:#6b7d94;font-size:10px;font-weight:800;white-space:nowrap}.tag.ok{background:#dff8ec;color:#158250}.tag.bad{background:#fff0f0;color:#be4457}.tag.warn{background:#fff5df;color:#b37711}.big-bars{padding:13px 0 5px}.bar-block{margin:0 0 23px}.bar-block>span{font-size:11px;color:#748ba5}.bar-number{font-size:20px;font-weight:850;margin-bottom:9px}.bar-track{height:13px;border-radius:30px;background:#edf4fb;overflow:hidden}.bar-fill{height:100%;border-radius:30px;min-width:0}.bar-fill.blue,.blue-bg{background:linear-gradient(90deg,#1c7ef2,#49a6f8)}.bar-fill.orange,.orange-bg{background:linear-gradient(90deg,#fa9745,#ffc076)}.teal-bg{background:#16bda5}.chart-footer{border-top:1px dashed #dfe8f3;padding-top:14px;color:#788ca3;font-size:12px}.chart-footer b{color:#176bc1}.donut-layout{display:flex;align-items:center;gap:22px;min-height:222px}.donut{width:185px;height:185px;flex:0 0 185px;border-radius:50%;background:conic-gradient(#288bf4 0 var(--portion),#fca35a var(--portion) 100%);display:grid;place-items:center;box-shadow:inset 0 0 5px #ffffff5d}.donut:before{content:'';width:130px;height:130px;background:#fff;border-radius:50%;position:absolute}.donut div{position:relative;z-index:1;text-align:center}.donut strong{font-size:14px;display:block}.donut small{display:block;color:#8297b0}.donut-legend{min-width:0;flex:1}.donut-legend>div{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:15px 0;font-size:11px;color:#72869e}.donut-legend b{width:100%;margin-left:17px;font-size:12px;color:#284666}.dot{width:9px;height:9px;display:inline-block;border-radius:50%;flex:0 0 9px}.unit-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.unit-card{border:1px solid #e8eef7;border-radius:13px;padding:15px 10px;min-width:0;background:linear-gradient(#fff,#f8fcff)}.unit-symbol{display:grid;place-items:center;width:39px;height:39px;border-radius:13px;background:#eaf4ff;color:#197cd4;font-size:23px;margin-bottom:9px}.unit-card strong,.unit-card small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.unit-card strong{font-size:12px}.unit-card small{color:#95a4b6}.unit-card .tag{margin-top:9px}.table-wrap{max-width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;color:#7789a0;font-size:10px;font-weight:850;letter-spacing:.25px;background:#f6f9fd;padding:12px 11px;white-space:nowrap}td{padding:11px;border-bottom:1px solid #edf1f7;color:#344b69;vertical-align:middle}tr:last-child td{border-bottom:0}.money-cell{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.text-link{color:#1877cc;font-weight:750}.empty{text-align:center;color:#96a5b8;padding:35px}.total-row,.subtotal{background:#f6fafe;font-weight:800}.grandtotal{background:#e5f3ff;font-weight:900;color:#145c9c}.grandtotal td,.subtotal td{font-weight:850!important}.status-ok{color:#12805d}.status-bad{color:#c4444b}.report-heading{text-align:center;padding:18px 0 25px}.report-heading strong{display:block;font-size:13px}.report-heading h2{font-size:19px;margin:2px}.report-heading span{color:#8491a4;font-size:11px}.report-panel{padding:24px}.financial{font-size:12px}.financial td{padding:8px 10px}.financial td:last-child{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.financial .section-row{font-weight:850;color:#1f6fae;background:#f4f9ff}.financial .subtotal,.financial .grandtotal{font-weight:850}.fine{color:#93a3b6;font-size:10px}.stack{display:flex;flex-direction:column;gap:17px}.stack .panel{margin-bottom:0}.info-card{border:1px solid #d5e9fd;padding:20px;border-radius:16px;background:linear-gradient(135deg,#e6f5ff,#f5fbff);color:#305b7f}.info-card.yellow{background:#fff7e9;border-color:#ffe5bb;color:#7c622e}.info-card p{font-size:12px;margin-bottom:8px}.info-card h3{color:#1a689b}.info-card.yellow h3{color:#b47b1a}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.span-all{grid-column:1/-1}.form-grid h3{margin:0}label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:750;color:#566d87;margin-bottom:13px}input,select,textarea{width:100%;border:1px solid #dbe7f1;border-radius:10px;background:#fff;outline:none;padding:11px 12px;color:#223954;min-height:42px;transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:#3b93e7;box-shadow:0 0 0 3px #288fff17}input[type=file]{height:auto}textarea{resize:vertical}input::placeholder{color:#a7b5c6}.form-grid label{margin:0}.form-subtitle{padding:12px 0 7px;color:#165f9d;border-bottom:1px solid #e7edf5;font-size:13px;font-weight:850}.form-actions{border-top:1px solid #e6edf6;padding-top:18px;display:flex;align-items:center;gap:11px}.dynamic-field.hidden{display:none}.reverse-form{border-top:1px solid var(--border);margin-top:20px;padding-top:20px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;padding:4px 0 24px;margin-bottom:22px;border-bottom:1px solid var(--border)}.detail-grid small{display:block;color:#8a9ab0}.detail-grid b{display:block;font-size:13px}.logo-preview{max-width:140px;max-height:140px;object-fit:contain;margin:8px 0 20px;border:1px solid #e2eaf5;border-radius:15px}.inline{display:inline-flex;align-items:center;gap:5px}.footer{display:flex;justify-content:space-between;padding:12px 2px 25px;font-size:10px;color:#99a9bb}.footer span{color:#4e8eae}.mobile-nav{display:none}.scrim{display:none}.login-body{background:#eaf4fc;min-height:100vh;display:grid;place-items:center;padding:30px}.login-wrap{display:grid;grid-template-columns:1fr 1fr;width:min(1000px,100%);min-height:580px;background:#fff;border-radius:28px;box-shadow:0 28px 85px #104b8024;overflow:hidden}.login-hero{background:linear-gradient(155deg,#0a3767,#0c5992);color:white;padding:50px 55px;position:relative;overflow:hidden}.login-mark{font-size:29px;font-weight:750;position:relative;z-index:3}.login-mark strong{letter-spacing:-2px}.login-mark strong span{color:#ffac60}.login-hero h1{position:relative;z-index:3;font-size:38px;line-height:1.23;margin-top:65px}.login-hero em{font-style:normal;color:#ffb870}.login-hero p{position:relative;z-index:3;color:#ccedff;max-width:370px}.hero-foot{position:absolute;bottom:35px;font-size:11px;letter-spacing:1px;z-index:3;color:#d0eaff}.hero-graphic{position:absolute;inset:0;opacity:.65}.land{position:absolute;bottom:-65px;width:130%;height:210px;border-radius:50%}.land-a{left:-40%;background:#35b39c}.land-b{left:25%;background:#44c8b0;bottom:-123px}.land-c{left:50%;background:#94dfbe;bottom:-160px}.sun{position:absolute;right:75px;top:60px;width:90px;height:90px;border-radius:50%;background:#f5ba61;box-shadow:0 0 0 25px #ffffff0e}.village{position:absolute;right:40px;bottom:15px;font-size:220px;color:#b6f0de;opacity:.5}.login-panel{padding:55px 54px;display:grid;align-items:center}.login-inner{width:100%}.login-inner h2{font-size:25px;margin:12px 0 8px}.login-inner p{margin-bottom:30px}.login-inner .btn{width:100%;justify-content:space-between;margin-top:10px}.login-inner .fine{margin-top:25px;text-align:center}.chip{display:inline-block;background:#e5f3ff;color:#2579b6;padding:7px 10px;border-radius:8px;font-size:10px;letter-spacing:1px;font-weight:850}.login-panel label{margin-bottom:17px}.login-panel input{background:#fafcff}.login-panel .alert{margin-bottom:18px}
@media(max-width:1200px){.content{padding:26px 23px}.sidebar{width:225px;flex-basis:225px}.brand{padding-left:16px}.metric{padding:17px 12px}.metric strong{font-size:17px}.donut{width:150px;height:150px;flex-basis:150px}.donut:before{width:106px;height:106px}.unit-cards{grid-template-columns:1fr 1fr}.cols-2{grid-template-columns:1fr}.donut-layout{justify-content:center}}
@media(max-width:850px){.sidebar{position:fixed;transform:translateX(-100%);width:270px;flex-basis:270px}.sidebar.open{transform:translateX(0)}.scrim.open{display:block;position:fixed;inset:0;background:#09223e70;z-index:25}.toggle-menu{display:block}.topbar{padding:0 18px;height:64px}.content{padding:21px 16px 75px}.top-date,.usertext{display:none}.cols-main{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,1fr)}.welcome-art{width:45%;opacity:.55}.welcome h1{font-size:21px}.mobile-nav{position:fixed;z-index:20;bottom:0;left:0;right:0;display:flex;justify-content:space-around;align-items:center;min-height:62px;background:white;box-shadow:0 -5px 24px #122e4f18;border-top:1px solid #e2edf8}.mobile-nav>a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;font-size:23px;min-width:45px;color:#6a87a5}.mobile-nav small{font-size:9px}.mobile-nav .selected{color:#1879e4}.mobile-plus{height:45px;width:45px;min-width:45px!important;background:linear-gradient(135deg,#238aff,#196eda);border-radius:50%;color:#fff!important;font-weight:800;box-shadow:0 7px 16px #2b8ae546}.footer{display:block}.footer span{display:block}}
@media(max-width:570px){.table-wrap table{min-width:640px}.metric{min-height:135px;padding:13px}.metric-icon{height:38px;width:38px;font-size:20px;margin-bottom:9px}.metric strong{font-size:15px;letter-spacing:-.6px;overflow-wrap:anywhere}.metric small{font-size:10px}.welcome{padding:23px 17px}.welcome p{max-width:77%;font-size:11px}.welcome-meta{font-size:10px}.metric-grid{gap:10px}.panel{padding:17px}.unit-cards{grid-template-columns:1fr 1fr}.unit-card{padding:12px 10px}.filters{gap:7px}.filters label{min-width:130px;flex:1}.form-grid{grid-template-columns:1fr}.donut-layout{flex-direction:column;align-items:flex-start;gap:7px}.donut{align-self:center}.donut-legend{display:flex;gap:9px;flex-wrap:wrap}.donut-legend>div{margin:5px}.donut-legend b{width:auto}.detail-grid{grid-template-columns:1fr 1fr}.top-left strong{font-size:14px}.top-left small{font-size:9px}.login-body{padding:0}.login-wrap{display:block;border-radius:0}.login-hero{padding:30px;min-height:180px}.login-hero h1{font-size:24px;margin-top:18px}.login-hero p,.hero-foot{display:none}.login-panel{padding:30px 25px}}
@media print{.sidebar,.topbar,.mobile-nav,.filters,.btn,.footer,.alert,.page-header>button,.scrim,.reverse-form{display:none!important}.main-area,.content{padding:0!important;background:white}.panel{box-shadow:none;border:1px solid #bbb;break-inside:avoid;margin-bottom:10px}.cols-2{display:block}.content{max-width:none}.report-heading{padding-top:0}.page-header{margin-bottom:10px}body{background:white;color:black}table{font-size:10px}}

/* Tema konfigurasi per BUMDes; tidak perlu mengubah kode. */
body[data-theme="emerald"]{--nav:#0a4643;--nav2:#0b5d5a;--blue:#0f9c91;--blue2:#17bd9f;--orange:#fba83c;--teal:#0cad8a}
body[data-theme="sunset"]{--nav:#58351c;--nav2:#8a4e27;--blue:#ed7b27;--blue2:#ffa348;--orange:#fda83a;--teal:#25b5a3}
body[data-theme="indigo"]{--nav:#272d62;--nav2:#393d87;--blue:#6951d8;--blue2:#8773ee;--orange:#fba24a;--teal:#1cb7b0}
body[data-theme="emerald"] .sidebar{background:linear-gradient(160deg,#0a4746,#092e37)}
body[data-theme="sunset"] .sidebar{background:linear-gradient(160deg,#714725,#412b22)}
body[data-theme="indigo"] .sidebar{background:linear-gradient(160deg,#30336b,#252c54)}
body[data-theme="emerald"] .nav-link.active,body[data-theme="emerald"] .btn.primary{background:linear-gradient(100deg,#0fa999,#0c817b)}
body[data-theme="sunset"] .nav-link.active,body[data-theme="sunset"] .btn.primary{background:linear-gradient(100deg,#ed8736,#c66626)}
body[data-theme="indigo"] .nav-link.active,body[data-theme="indigo"] .btn.primary{background:linear-gradient(100deg,#7461e4,#4f63cf)}
