:root{
  --primary:#1769d3;--primary-2:#0d4fa8;--primary-3:#eaf3ff;--sidebar:#0b3f87;--sidebar-deep:#082d63;
  --navy:#10233f;--text:#243b57;--muted:#6f8097;--line:#dfe8f3;--bg:#f4f7fb;--card:#fff;
  --success:#15803d;--warning:#a16207;--danger:#b91c1c;--shadow:0 12px 30px rgba(15,48,92,.08);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}a{text-decoration:none;color:inherit}
.topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:30}.brand{display:flex;gap:12px;align-items:center}.brand-logo{width:44px;height:44px;object-fit:contain;border-radius:12px}.brand strong{display:block;font-size:15px;color:var(--navy);letter-spacing:-.1px}.brand small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.top-actions{display:flex;gap:10px;align-items:center}.user-badge{font-size:12px;color:#50647e;padding:8px 12px;background:#f5f8fc;border-radius:999px}
.app-shell{display:flex;min-height:calc(100vh - 74px)}.sidebar{width:255px;flex:0 0 255px;background:linear-gradient(180deg,var(--sidebar),var(--sidebar-deep));color:#dfeeff;padding:18px 14px;display:flex;flex-direction:column;box-shadow:8px 0 28px rgba(8,45,99,.08)}
.sidebar-logo{padding:7px 10px 22px;display:flex;align-items:center;gap:11px}.sidebar-logo img{width:44px;height:44px;object-fit:contain;background:#fff;border-radius:13px;padding:5px}.sidebar-logo strong{display:block;color:#fff;font-size:12px;line-height:1.35}.sidebar-logo span{display:block;color:#a9c9f4;font-size:10px;margin-top:2px}.sidebar-section{font-size:9px;font-weight:800;letter-spacing:.14em;color:#9fc4f6;text-transform:uppercase;padding:8px 11px 7px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.sidebar nav a{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:10px;font-size:12px;font-weight:650;color:#d9e9fb}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.12);color:#fff}.nav-icon{width:17px;height:17px;display:grid;place-items:center;opacity:.95}.sidebar-note{margin-top:auto;color:#8fb5e7;font-size:10px;line-height:1.7;padding:15px 11px 6px}
.content{flex:1;padding:26px;max-width:1700px;margin:0 auto;width:100%}.page-title{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px}.page-title h1{margin:0;font-size:24px;letter-spacing:-.4px;color:var(--navy)}.page-title p{margin:5px 0 0;color:var(--muted);font-size:12px}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:9px;padding:9px 13px;font-size:11px;font-weight:750;cursor:pointer;transition:.18s ease}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-2)}.btn-light{background:#fff;border:1px solid var(--line);color:#334e6e}.btn-light:hover{background:#f6f9fd}.btn-danger{background:#fee2e2;color:#991b1b}.btn-success{background:#dcfce7;color:#166534}.btn-sm{padding:7px 10px;font-size:10px}.alert{padding:12px 14px;border-radius:10px;margin-bottom:18px;font-size:12px}.alert.success{background:#eaf8ef;color:#166534;border:1px solid #b8e0c5}.alert.error{background:#fff0f0;color:#991b1b;border:1px solid #f4c4c4}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:20px}.grid{display:grid;gap:16px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.stat{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff;position:relative;overflow:hidden}.stat:after{content:"";position:absolute;right:-24px;top:-24px;width:78px;height:78px;border-radius:50%;background:var(--primary-3)}.stat .label{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.stat .value{font-size:24px;font-weight:800;margin:7px 0 3px;color:var(--navy)}.stat .meta{font-size:10px;color:var(--muted)}
.banner{border-radius:18px;overflow:hidden;background:#d9ebff;margin-bottom:20px;position:relative}.banner img{width:100%;display:block;max-height:250px;object-fit:cover}.banner-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,37,87,.7),rgba(4,37,87,.08));display:flex;align-items:center;padding:28px;color:#fff}.banner-overlay .eyebrow{font-size:10px;letter-spacing:.16em;text-transform:uppercase;opacity:.82}.banner-overlay h2{margin:6px 0 3px;font-size:22px;line-height:1.2}.banner-overlay p{margin:0;max-width:700px;font-size:11px;opacity:.92}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:10px;font-weight:750;color:#536983}.field input,.field select,.field textarea{width:100%;border:1px solid #cbd8e7;border-radius:9px;padding:10px 11px;font:inherit;font-size:11px;background:#fff;outline:none;color:#273e5a}.field input:focus,.field select:focus,.field textarea:focus{border-color:#5a9ae8;box-shadow:0 0 0 3px rgba(23,105,211,.10)}.field textarea{min-height:100px;resize:vertical}.field small{font-size:9px;color:var(--muted)}
.form-section{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.form-section h3{margin:0 0 12px;font-size:13px;color:var(--navy)}.check-row{display:flex;gap:9px;flex-wrap:wrap}.check{display:flex;align-items:center;gap:7px;border:1px solid var(--line);padding:9px 11px;border-radius:9px;font-size:11px;background:#fff}.check input{accent-color:var(--primary)}.correlation-item{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fbfdff}.correlation-item.active{border-color:#bcd7f8;background:#f7fbff}.correlation-head{display:flex;align-items:center;gap:9px;font-weight:750;font-size:11px}.correlation-description{display:none;margin-top:9px}.correlation-item.active .correlation-description{display:block}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.table{width:100%;border-collapse:collapse;min-width:1250px}.table th{background:#f7faff;text-align:left;font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:#6b7f97;padding:11px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:11px;border-bottom:1px solid #edf2f7;font-size:11px;vertical-align:top}.table tr:last-child td{border-bottom:0}.progress{height:8px;background:#e6edf5;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,#4d92df,#1769d3);border-radius:999px}.badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:750}.badge-teal{background:#e0f4ff;color:#1761a7}.badge-blue{background:#e8f0ff;color:#245cc1}.badge-amber{background:#fff4db;color:#946200}.badge-red{background:#fee8e8;color:#a52828}.badge-green{background:#e5f7ea;color:#19703a}.badge-gray{background:#eef3f7;color:#62748a}.muted{color:var(--muted)}.small{font-size:10px}.hero-note{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px 17px;border-radius:13px;background:#f1f7ff;border:1px solid #cfe3fb;margin-bottom:16px}.hero-note strong{display:block;font-size:12px}.hero-note span{display:block;font-size:10px;color:#566d88;margin-top:2px}
.kpi-row{display:grid;grid-template-columns:2fr 1fr;gap:16px}.category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.category-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:15px;transition:.18s ease}.category-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.category-card .title{font-size:10px;color:var(--muted);min-height:32px}.category-card .amount{font-size:18px;font-weight:800;margin-top:5px;color:var(--navy)}.category-card .count{font-size:10px;color:var(--muted);margin-top:2px}.quarter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.quarter-card{padding:13px;border:1px solid var(--line);border-radius:12px;background:#fbfdff}.quarter-card .q{font-size:10px;font-weight:800;color:#496581}.quarter-card .n{font-size:20px;font-weight:800;color:var(--navy);margin-top:3px}.quarter-card .m{font-size:9px;color:var(--muted)}
.update-item{padding:15px 0;border-bottom:1px solid var(--line)}.update-item:last-child{border-bottom:0}.update-head{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:var(--muted)}.update-metrics{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0}.photo-thumb{width:84px;height:64px;object-fit:cover;border-radius:9px;border:1px solid var(--line);background:#f5f8fc}.photo-large{width:100%;max-height:360px;object-fit:cover;border-radius:14px;border:1px solid var(--line)}.empty-photo{display:grid;place-items:center;min-height:150px;border:1px dashed #cbd8e7;border-radius:12px;color:#7890aa;font-size:10px;background:#f9fbfe}.hidden{display:none!important}
.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.25fr .75fr;background:#eef5ff}.login-art{position:relative;overflow:hidden;background:linear-gradient(145deg,#0a418f,#0b5fc9);padding:50px 60px;color:#fff}.login-art:before,.login-art:after{content:"";position:absolute;border-radius:50%;filter:blur(1px);background:rgba(255,255,255,.08)}.login-art:before{width:320px;height:320px;right:-80px;top:-90px}.login-art:after{width:220px;height:220px;left:-70px;bottom:-50px}.login-art-copy{position:relative;z-index:2;max-width:650px}.login-art-copy .eyebrow{font-size:10px;letter-spacing:.18em;text-transform:uppercase;opacity:.75}.login-art-copy h1{font-size:34px;line-height:1.1;margin:10px 0 10px}.login-art-copy p{max-width:580px;font-size:12px;opacity:.9}.login-illustration{position:absolute;left:50%;bottom:-18px;transform:translateX(-50%);width:min(640px,82%);height:auto;z-index:1}.floating-tag{position:absolute;z-index:3;top:28%;right:12%;padding:8px 11px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:12px;font-size:9px;backdrop-filter:blur(8px)}.login-panel{display:grid;place-items:center;padding:34px;background:#f7faff}.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 60px rgba(31,72,125,.13);padding:34px}.login-brand{text-align:left;margin-bottom:25px}.login-brand img{width:66px;height:66px;object-fit:contain;margin-bottom:10px}.login-brand h2{font-size:21px;margin:0 0 4px;color:var(--navy)}.login-brand p{font-size:11px;color:var(--muted);margin:0}.login-help{margin-top:18px;padding:10px 11px;background:#f3f7fb;border-radius:10px;color:#6b7e95;font-size:9px}
.mobile-top{display:none}.footer-note{padding:20px 0 4px;color:#8a9bae;font-size:9px;text-align:center}
@keyframes floatBuilding{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes moveCrane{0%,100%{transform:translateX(0)}50%{transform:translateX(10px)}}.anim-float{animation:floatBuilding 4s ease-in-out infinite}.anim-crane{animation:moveCrane 5s ease-in-out infinite}
@media(max-width:1100px){.grid-4,.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-row{grid-template-columns:1fr}.sidebar{width:225px;flex-basis:225px}.login-wrap{grid-template-columns:1fr}.login-art{min-height:380px}.login-panel{padding:24px}.login-illustration{width:58%}}
@media(max-width:760px){.topbar{padding:0 14px}.user-badge{display:none}.sidebar{display:none}.mobile-top{display:flex}.content{padding:16px}.grid-4,.grid-3,.grid-2,.category-grid,.quarter-grid{grid-template-columns:1fr}.page-title{align-items:flex-start;flex-direction:column}.brand small{display:none}.banner-overlay{padding:18px}.banner-overlay h2{font-size:18px}.login-art{padding:34px 25px;min-height:330px}.login-art-copy h1{font-size:27px}.login-illustration{width:85%}.floating-tag{right:6%;top:25%}}

/* v3 public portal */
.login-body{background:#eef5ff}.login-topnav{position:absolute;right:28px;top:18px;z-index:50;display:flex;gap:8px;align-items:center}.login-topnav a{font-size:11px;font-weight:750;color:#dfeeff;padding:8px 11px;border-radius:999px;background:rgba(7,48,105,.72);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(7px)}.login-topnav a:hover{background:rgba(255,255,255,.16);color:#fff}.login-public-link{margin-top:15px;text-align:center;border-top:1px solid var(--line);padding-top:14px}.login-public-link a{font-size:10px;font-weight:750;color:var(--primary)}
.btn-lg{padding:12px 17px;font-size:11px;border-radius:10px}.btn-outline-white{background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff}.btn-outline-white:hover{background:rgba(255,255,255,.12)}
.portal-body{min-height:100vh;background:#f4f8ff;color:var(--text)}.portal-topbar,.public-topbar{height:78px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;position:sticky;top:0;z-index:40;backdrop-filter:blur(12px)}.portal-brand{display:flex;gap:11px;align-items:center}.portal-brand img{width:44px;height:44px;object-fit:contain;border-radius:12px}.portal-brand strong{display:block;font-size:14px;color:var(--navy)}.portal-brand small{display:block;font-size:10px;color:var(--muted);margin-top:2px;max-width:500px}.portal-nav,.public-nav{display:flex;align-items:center;gap:7px}.portal-nav a,.public-nav a{padding:10px 12px;font-size:11px;font-weight:750;color:#45617e;border-radius:9px}.portal-nav a:hover,.public-nav a:hover,.public-nav a.active{background:#eef5ff;color:var(--primary)}.portal-nav .portal-login,.public-nav .portal-login{background:var(--primary);color:#fff;box-shadow:0 7px 18px rgba(23,105,211,.22)}.portal-nav .portal-login:hover,.public-nav .portal-login:hover{background:var(--primary-2);color:#fff}
.portal-hero{max-width:1320px;margin:0 auto;min-height:calc(100vh - 78px);padding:58px 38px 46px;display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:center}.portal-copy{padding:10px 16px 25px}.portal-copy .eyebrow,.public-banner .eyebrow{font-size:10px;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:#5080b9}.portal-copy h1{font-size:47px;line-height:1.04;letter-spacing:-1.3px;max-width:720px;margin:10px 0 15px;color:var(--navy)}.portal-copy p{max-width:650px;font-size:14px;line-height:1.75;color:#607791}.portal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.portal-points{display:flex;gap:7px;flex-wrap:wrap;margin-top:26px}.portal-points span{font-size:8px;font-weight:800;letter-spacing:.08em;color:#4b6b8d;background:#fff;border:1px solid var(--line);padding:8px 10px;border-radius:999px}.portal-visual{height:580px;position:relative;display:grid;place-items:center}.portal-image-card{width:min(610px,92%);height:445px;border-radius:35px;background:linear-gradient(145deg,#0a438f,#1473d8);box-shadow:0 30px 70px rgba(24,82,151,.23);display:grid;place-items:center;overflow:hidden;border:1px solid rgba(255,255,255,.3);position:relative;z-index:3}.portal-image-card:before{content:"";position:absolute;inset:auto -10% -28% -10%;height:45%;background:rgba(255,255,255,.08);border-radius:50%}.portal-image-card img{width:85%;max-height:430px;object-fit:contain;position:relative;z-index:2}.portal-orbit{position:absolute;border-radius:50%;border:1px dashed rgba(23,105,211,.22)}.orbit-one{width:530px;height:530px;top:16px;right:15px}.orbit-two{width:390px;height:390px;top:86px;right:85px}.portal-badge{position:absolute;z-index:6;background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px 13px;box-shadow:0 15px 30px rgba(15,48,92,.12)}.portal-badge b{display:block;font-size:10px;color:var(--navy)}.portal-badge span{display:block;font-size:8px;color:var(--muted);margin-top:2px}.badge-public{top:70px;left:8px}.badge-monitor{right:4px;bottom:67px}.portal-footer{padding:16px 25px 25px;text-align:center;color:#8798ab;font-size:9px}.public-body{background:#f4f7fb}.public-main{max-width:1700px;margin:0 auto;padding:27px}.public-banner{min-height:225px;border-radius:19px;overflow:hidden;position:relative;display:flex;align-items:center;padding:30px;background:#0b4f9f;color:#fff;margin-bottom:18px}.public-banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.28}.public-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,34,78,.86),rgba(5,34,78,.18))}.public-banner>div{position:relative;z-index:2;max-width:830px}.public-banner .eyebrow{color:#cfe2fb}.public-banner h1{font-size:31px;line-height:1.1;margin:6px 0 6px}.public-banner p{font-size:11px;max-width:760px;opacity:.9;margin:0}.public-filter-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px 17px;box-shadow:var(--shadow);margin-bottom:18px}.public-filters{display:grid;grid-template-columns:1.4fr 1.2fr 1fr .8fr .75fr auto auto;align-items:end}.public-filters .field{min-width:0}.public-stats{margin-bottom:18px}.public-panels{margin-bottom:18px}.page-title.compact{margin-bottom:13px}.page-title.compact h1{font-size:15px}.public-category-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.public-opd-list{max-height:300px;overflow:auto}.public-opd-row{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid #edf2f7}.public-opd-row:last-child{border-bottom:0}.public-opd-row b{font-size:10px;color:var(--navy)}.public-opd-row strong{font-size:10px;color:var(--navy);white-space:nowrap}.public-table{min-width:1400px}.public-boundary-note{margin:18px 0 4px;padding:13px 15px;border-radius:12px;background:#edf6ff;border:1px solid #cfe4fb;color:#44627f;font-size:10px}.public-boundary-note strong{color:var(--navy);margin-right:5px}.settings-login-preview{height:210px;border-radius:13px;background:linear-gradient(145deg,#0a438f,#1473d8);display:grid;place-items:center;overflow:hidden;border:1px solid #cfe0f3}.settings-login-preview img{width:75%;max-height:200px;object-fit:contain}
.pagu-rule{margin-top:7px;padding:8px 10px;border-radius:9px;background:#f1f7ff;border:1px solid #d1e4f8;color:#54718f;font-size:9px;line-height:1.5}.pagu-rule b{color:#224d7d}
@media(max-width:1000px){.portal-hero{grid-template-columns:1fr;padding-top:40px}.portal-visual{height:480px}.portal-copy h1{font-size:39px}.public-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-topbar,.public-topbar{padding:0 22px}}
@media(max-width:760px){.portal-topbar,.public-topbar{height:auto;min-height:70px;padding:12px 15px;align-items:flex-start;gap:12px}.portal-brand small{display:none}.portal-nav,.public-nav{gap:3px}.portal-nav a,.public-nav a{font-size:9px;padding:8px 8px}.portal-hero{padding:35px 16px 25px;grid-template-columns:1fr}.portal-copy{padding:0 4px}.portal-copy h1{font-size:33px}.portal-copy p{font-size:12px}.portal-visual{height:390px}.portal-image-card{height:310px;border-radius:26px}.portal-badge{transform:scale(.9)}.badge-public{top:15px;left:0}.badge-monitor{right:0;bottom:20px}.public-main{padding:15px}.public-banner{min-height:260px;padding:22px}.public-banner h1{font-size:23px}.public-filters{grid-template-columns:1fr 1fr}.public-filters .btn{width:100%}.public-category-grid{grid-template-columns:1fr}.login-topnav{right:13px;top:12px}.login-topnav a{font-size:9px;padding:7px 9px}.login-art{padding-top:74px}.settings-login-preview{height:170px}}


/* v4 photo gallery, centered login image, reset cards and zoom controls */
.login-image-stage{position:absolute;inset:39% 7% 3% 7%;z-index:1;display:grid;place-items:center;overflow:hidden}.login-image-stage .login-illustration{position:relative;left:auto;bottom:auto;transform:none;width:min(690px,92%);height:100%;max-height:100%;object-fit:contain;object-position:center}.asset-setting{display:flex;align-items:flex-end;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fbfdff}.asset-setting .field{flex:1}.settings-asset-preview{border:1px solid var(--line);border-radius:13px;background:#f7faff;display:grid;place-items:center;overflow:hidden}.settings-logo-preview{width:110px;height:110px;padding:10px}.settings-logo-preview img{width:100%;height:100%;object-fit:contain}.settings-banner-preview{width:100%;height:190px;border:1px solid var(--line);border-radius:13px;background:#f7faff;overflow:hidden}.settings-banner-preview img{width:100%;height:100%;object-fit:cover}.settings-login-preview img{width:94%;height:100%;max-height:200px;object-fit:cover;object-position:center}.photo-main-frame{width:100%;aspect-ratio:3/2;display:grid;place-items:center;overflow:hidden;border-radius:14px;border:1px solid var(--line);background:#f3f7fc}.photo-main{width:100%;height:100%;object-fit:contain;object-position:center;cursor:zoom-in}.quarter-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.quarter-gallery-card{border:1px solid var(--line);border-radius:13px;background:#fbfdff;padding:10px;min-width:0}.quarter-gallery-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:9px;color:var(--navy)}.quarter-gallery-head span{color:var(--muted)}.quarter-gallery-card img{width:100%;aspect-ratio:4/3;object-fit:contain;background:#f2f6fa;border-radius:9px;display:block;cursor:zoom-in}.quarter-photo-strip{display:grid;grid-template-columns:repeat(4,56px);gap:6px;align-items:start;min-width:238px}.quarter-photo-strip.compact{grid-template-columns:repeat(4,48px);min-width:204px;gap:5px}.quarter-photo-cell{min-width:0;text-align:center}.quarter-photo-cell>span{display:block;font-size:8px;font-weight:800;color:#6d8198;margin-bottom:3px}.quarter-photo-cell img,.quarter-photo-empty{width:56px;height:42px;object-fit:contain;background:#f1f5f9;border:1px solid var(--line);border-radius:6px;display:block}.quarter-photo-strip.compact .quarter-photo-cell img,.quarter-photo-strip.compact .quarter-photo-empty{width:48px;height:36px}.quarter-photo-cell img{cursor:zoom-in}.quarter-photo-empty{display:grid;place-items:center;color:#9aabbd;font-size:11px}.quarter-photo-empty.large{width:100%;height:auto;aspect-ratio:4/3}.click-photo{cursor:zoom-in}.lightbox-backdrop{position:fixed;inset:0;background:rgba(4,18,39,.82);z-index:9999;display:flex;align-items:center;justify-content:center;padding:28px}.lightbox-panel{position:relative;max-width:min(94vw,1400px);max-height:92vh;background:#fff;border-radius:16px;padding:12px;box-shadow:0 30px 80px rgba(0,0,0,.35)}.lightbox-panel img{display:block;max-width:92vw;max-height:82vh;width:auto;height:auto;object-fit:contain;border-radius:10px}.lightbox-caption{font-size:11px;color:#49617d;padding:9px 4px 2px;text-align:center}.lightbox-close{position:absolute;right:-9px;top:-9px;width:32px;height:32px;border-radius:50%;border:1px solid #d7e1ec;background:#fff;color:#25425f;font-size:19px;line-height:1;cursor:pointer}.zoom-control{position:fixed;right:18px;bottom:18px;z-index:9998;display:flex;align-items:center;gap:4px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:5px;box-shadow:0 12px 28px rgba(15,48,92,.15)}.zoom-control button{border:0;background:#f4f7fb;color:#234565;width:30px;height:30px;border-radius:8px;font-size:16px;font-weight:800;cursor:pointer}.zoom-control button:hover{background:#eaf3ff}.zoom-control .zoom-reset{width:54px;font-size:10px}.zoom-control small{font-size:8px;color:#73879c;padding:0 3px}.zoom-note{font-size:9px;color:#71859d}
@media(max-width:1000px){.quarter-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.asset-setting{align-items:stretch;flex-direction:column}.asset-setting .btn{width:100%}}
@media(max-width:760px){.quarter-gallery{grid-template-columns:1fr}.quarter-photo-strip{grid-template-columns:repeat(4,52px);min-width:222px}.quarter-photo-cell img,.quarter-photo-empty{width:52px;height:40px}.zoom-control{right:10px;bottom:10px}.login-image-stage{inset:43% 5% 4% 5%}.login-image-stage .login-illustration{width:96%}.dashboard-recent-table{min-width:1500px}}

.package-map{width:100%;height:360px;border:1px solid #dfe8f3;border-radius:12px;overflow:hidden;background:#eef4fa}.package-map .leaflet-control-attribution{font-size:10px}.map-coord-field input[readonly]{background:#f7faff}

.map-status{margin-top:7px;padding:8px 10px;border-radius:9px;background:#f7faff;border:1px solid #dfe8f3;color:#6f8097;font-size:9px}

/* v5.0.0 redesign — reference-inspired admin interface */
:root{--primary:#1769d3;--primary-2:#0d4fa8;--sidebar:#12385d;--sidebar-deep:#0b2947;--bg:#f3f6fb;--text:#213753;--muted:#71839a;--line:#e1e8f0;--shadow:0 8px 24px rgba(20,48,84,.07)}
.topbar{height:74px;padding:0 26px;gap:18px;background:#fff;box-shadow:0 1px 0 rgba(25,55,92,.05);z-index:50}.topbar-left{display:flex;align-items:center;gap:10px;min-width:0}.mobile-menu-btn{display:none;border:1px solid var(--line);background:#fff;border-radius:10px;padding:7px 9px;color:#45617f}.topbar-search{position:relative;flex:1;max-width:470px;margin-left:auto}.topbar-search>span{position:absolute;left:12px;top:9px;color:#7290ae;font-size:18px}.topbar-search input{width:100%;height:38px;padding:0 14px 0 34px;border:1px solid #d8e2ed;border-radius:10px;background:#f9fbfd;font-size:11px;outline:none}.topbar-search input:focus{background:#fff;border-color:#7fb2ee;box-shadow:0 0 0 3px rgba(23,105,211,.08)}.global-search-results{position:absolute;top:44px;left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 15px 38px rgba(25,55,92,.14);overflow:hidden;z-index:100}.global-search-results a{display:block;padding:10px 12px;border-bottom:1px solid #eef3f8}.global-search-results a:last-child{border-bottom:0}.global-search-results a:hover{background:#f7fbff}.global-search-results b{display:block;font-size:10px;color:var(--navy)}.global-search-results span{display:block;font-size:9px;color:var(--muted);margin-top:2px}.search-empty{padding:14px;font-size:10px;color:var(--muted)}.year-chip{font-size:9px;color:#6c7f96;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:#fbfdff;white-space:nowrap}.year-chip b{color:var(--navy);margin-left:3px}.icon-top-btn{width:36px;height:36px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:#466887;background:#fff}.profile-chip{display:flex;align-items:center;gap:8px;padding:5px 4px 5px 7px;border-radius:11px}.profile-chip:hover{background:#f6f9fc}.avatar-circle{width:31px;height:31px;background:#203d5d;color:#fff;border-radius:50%;display:grid;place-items:center;font-size:11px}.profile-text{display:flex;flex-direction:column;min-width:100px}.profile-text b{font-size:10px;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-text small{font-size:8px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand strong{font-size:14px}.brand small{font-size:9px}.sidebar{background:linear-gradient(180deg,#12395e,#0c2947);padding:17px 10px;width:240px;flex-basis:240px}.sidebar-logo{padding:6px 9px 19px}.sidebar-logo img{width:42px;height:42px;border-radius:12px;padding:5px}.sidebar-logo strong{font-size:11px}.sidebar-logo span{font-size:8px;color:#b2c6db}.sidebar-section{color:#7ea2c8;font-size:8px}.sidebar nav a{font-size:10px;padding:10px 11px;border-radius:8px}.sidebar nav a:hover,.sidebar nav a.active{background:#1876dc;color:#fff;box-shadow:0 6px 16px rgba(23,105,211,.22)}.nav-arrow{margin-left:auto;opacity:.8}.nav-group.open>.nav-sub{display:flex}.nav-sub{display:none;flex-direction:column;gap:2px;margin:2px 0 5px 36px}.nav-sub a{font-size:9px!important;padding:7px 10px!important;background:rgba(255,255,255,.03)!important;color:#b7cbe2!important;box-shadow:none!important}.nav-sub a.active{background:rgba(26,119,225,.3)!important;color:#fff!important}.sidebar-note{font-size:8px;color:#82a7ca}.sidebar-logout{margin-top:12px;padding:10px 11px;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#ccdfef;font-size:9px;text-align:center}.sidebar-logout:hover{background:rgba(255,255,255,.08);color:#fff}.content{padding:24px 26px 40px;max-width:none}.breadcrumb{font-size:9px;color:#7a8ca2;margin-bottom:6px}.breadcrumb span{margin:0 4px;color:#c1cad5}.dashboard-hero{display:flex;justify-content:space-between;gap:18px;align-items:end;margin-bottom:14px}.dashboard-hero-copy .eyebrow,.banner-tag{font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--primary);font-weight:800}.dashboard-hero h1{margin:4px 0 5px;font-size:25px;color:var(--navy);letter-spacing:-.5px}.dashboard-hero p{margin:0;color:var(--muted);font-size:10px}.dashboard-year-switcher form{display:flex;gap:7px;align-items:end}.dashboard-year-switcher label{font-size:8px;font-weight:800;color:#6f8299}.dashboard-year-switcher select{padding:9px 26px 9px 10px;border:1px solid var(--line);border-radius:8px;font-size:10px;background:#fff}.dashboard-banner{height:185px;border-radius:17px;overflow:hidden;position:relative;margin-bottom:18px;background:#12385d}.dashboard-banner>img{width:100%;height:100%;object-fit:cover;opacity:.9}.dashboard-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,33,62,.76),rgba(7,33,62,.08))}.dashboard-banner-overlay{position:absolute;inset:0;display:flex;align-items:center;padding:24px;z-index:2;color:#fff}.dashboard-banner-overlay b{display:block;font-size:19px;max-width:670px;line-height:1.2;margin:6px 0}.dashboard-banner-overlay small{font-size:9px;opacity:.9;display:block}.dashboard-actions{display:flex;justify-content:space-between;gap:16px;align-items:end;margin:0 0 14px}.dashboard-actions h2{margin:0;font-size:18px;color:var(--navy)}.dashboard-actions p{margin:4px 0 0;color:var(--muted);font-size:9px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.kpi-card{border-radius:13px;border:1px solid var(--line);padding:14px;display:flex;gap:11px;align-items:center;background:#fff;min-height:88px;box-shadow:var(--shadow);position:relative;overflow:hidden}.kpi-card:after{content:"";position:absolute;right:-24px;top:-24px;width:76px;height:76px;border-radius:50%;opacity:.6}.kpi-blue:after{background:#dcecff}.kpi-green:after{background:#dff6ea}.kpi-amber:after{background:#fff0d7}.kpi-red:after{background:#ffe3e7}.kpi-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-weight:900;font-size:12px;z-index:1}.kpi-blue .kpi-icon{background:#e2efff;color:#1a66c7}.kpi-green .kpi-icon{background:#e2f6ec;color:#16855a}.kpi-amber .kpi-icon{background:#fff2dc;color:#d17d00}.kpi-red .kpi-icon{background:#ffe8eb;color:#d9364f}.kpi-label{font-size:8px;color:#71839b;text-transform:uppercase;letter-spacing:.08em}.kpi-value{font-size:23px;font-weight:850;color:var(--navy);line-height:1.1;margin:4px 0}.kpi-money{font-size:17px}.kpi-meta{font-size:8px;color:var(--muted)}.mini-progress{height:6px;background:#e7edf4;border-radius:999px;overflow:hidden;margin-top:6px}.mini-progress span{display:block;height:100%;background:linear-gradient(90deg,#56a1e9,#1769d3);border-radius:999px}.dashboard-grid{display:grid;gap:14px}.dashboard-grid-main{grid-template-columns:1fr 1fr;margin-bottom:14px}.dashboard-card{padding:17px}.section-heading{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:13px}.section-heading h3{margin:0;color:var(--navy);font-size:13px}.section-heading p{margin:3px 0 0;color:var(--muted);font-size:9px}.section-link{color:var(--primary);font-size:9px;font-weight:800;white-space:nowrap}.status-chart-layout{display:grid;grid-template-columns:190px 1fr;gap:24px;align-items:center;min-height:235px}.donut{width:178px;height:178px;border-radius:50%;background:var(--donut);display:grid;place-items:center;position:relative;margin:auto}.donut-hole{width:100px;height:100px;border-radius:50%;background:#fff;display:grid;place-items:center;align-content:center;box-shadow:0 0 0 1px #f0f3f7}.donut-hole strong{font-size:25px;color:var(--navy);line-height:1}.donut-hole span{font-size:9px;color:var(--muted);margin-top:3px}.status-legend{display:flex;flex-direction:column;gap:11px}.legend-row{display:grid;grid-template-columns:10px 1fr auto auto;align-items:center;gap:8px;font-size:9px;color:#5e728a}.legend-row b{font-size:10px;color:var(--navy)}.legend-row small{color:#91a0b3;font-size:8px}.legend-dot{width:9px;height:9px;border-radius:3px}.mini-map-shell{display:grid;grid-template-columns:1.55fr .75fr;gap:10px;min-height:255px}.dashboard-map{height:255px;border-radius:11px;overflow:hidden;border:1px solid var(--line);background:#eef4f9}.district-mini-list{border:1px solid var(--line);border-radius:11px;padding:8px 10px;display:flex;flex-direction:column;justify-content:center;gap:5px}.district-mini-list div{display:flex;justify-content:space-between;gap:8px;padding:7px 4px;border-bottom:1px solid #eef3f8}.district-mini-list div:last-child{border-bottom:0}.district-mini-list span{font-size:8px;color:#63768c}.district-mini-list b{font-size:10px;color:var(--navy)}.infra-list{display:flex;flex-direction:column;gap:14px;padding:4px 2px}.infra-row{display:grid;grid-template-columns:150px 1fr 34px;align-items:center;gap:10px}.infra-name{font-size:9px;color:#5d7087}.infra-bar{height:10px;background:#e8eef4;border-radius:99px;overflow:hidden}.infra-bar span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#6cb4ee,#1769d3)}.infra-row b{font-size:10px;color:var(--navy);text-align:right}.latest-update-list{display:flex;flex-direction:column}.latest-update-list a{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #edf2f7}.latest-update-list a:last-child{border-bottom:0}.latest-update-list b{display:block;font-size:9px;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:350px}.latest-update-list span{display:block;font-size:8px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:350px}.latest-update-list strong{font-size:9px;color:var(--primary);white-space:nowrap}.empty-state{padding:18px;text-align:center;color:var(--muted);font-size:9px;border:1px dashed #cdd9e6;border-radius:10px;background:#fbfdff}.dashboard-table{min-width:1300px}.search-bar-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px;box-shadow:var(--shadow);margin-bottom:12px}.package-search-form{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center}.big-search{height:42px;border:1px solid #d4e0ed;border-radius:9px;background:#f9fbfd;display:flex;align-items:center;padding:0 11px;gap:8px}.big-search span{font-size:18px;color:#7590aa}.big-search input{width:100%;border:0;background:transparent;outline:0;font-size:11px}.filter-card{padding:12px 13px;margin-bottom:14px}.filter-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;align-items:end}.filter-submit{height:38px}.result-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px;font-size:10px;color:#546c85}.result-toolbar b{color:var(--navy)}.work-table{min-width:1350px}.work-link{font-weight:800;color:#124f9b}.code-muted{margin-top:3px;color:#98a7b7}.table-actions{display:flex;gap:5px;flex-wrap:wrap}.pagination{display:flex;justify-content:space-between;align-items:center;padding-top:13px}.package-wizard{margin-top:5px}.wizard-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-bottom:14px}.wizard-step{border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px 11px;display:flex;gap:9px;align-items:center;text-align:left;cursor:pointer}.wizard-step>span{width:27px;height:27px;border-radius:50%;background:#e8edf4;color:#71839a;display:grid;place-items:center;font-size:11px;font-weight:900;flex:0 0 27px}.wizard-step b{display:block;font-size:9px;color:#6c7e93}.wizard-step small{display:block;font-size:7px;color:#9aa8b7;margin-top:2px}.wizard-step.active{border-color:#6fa8ed;box-shadow:0 0 0 3px rgba(23,105,211,.06)}.wizard-step.active>span,.wizard-step.done>span{background:var(--primary);color:#fff}.wizard-step.active b{color:var(--navy)}.wizard-panel{display:none}.wizard-panel.active{display:block}.step-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:14px}.location-step-grid{align-items:stretch}.three-card-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.form-section-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:17px}.form-section-card.compact{box-shadow:none;background:#fbfdff}.card-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.card-heading>div{display:flex;gap:9px}.heading-icon{width:28px;height:28px;border-radius:8px;background:#e8f2ff;color:var(--primary);display:grid;place-items:center;font-size:11px;font-weight:900;flex:0 0 28px}.card-heading h3{margin:0;font-size:13px;color:var(--navy)}.card-heading p{margin:3px 0 0;color:var(--muted);font-size:8px}.full{grid-column:1/-1}.coord-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:9px}.map-card{min-height:100%}.map-card .package-map{height:100%;min-height:310px}.map-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.info-banner{margin-top:12px;padding:10px 11px;border:1px solid #d6e6f8;background:#f5faff;border-radius:10px;font-size:9px;color:#58708a}.auto-category-card{padding:12px;border-radius:11px;border:1px solid #d7e5f4;background:#f5faff;margin:8px 0 12px}.auto-category-card span{display:block;font-size:8px;color:#6e8195;text-transform:uppercase;letter-spacing:.08em}.auto-category-card b{display:block;font-size:14px;color:var(--navy);margin:3px 0}.auto-category-card small{font-size:8px;color:#7d90a3}.value-highlight{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid #eaf0f5}.value-highlight span{font-size:9px;color:#6c7e94}.value-highlight b{font-size:11px;color:var(--navy);text-align:right}.schedule-summary{display:grid;grid-template-columns:1fr auto 1fr 1fr;gap:10px;align-items:center;margin-top:14px;padding:15px;border:1px solid #dce7f1;border-radius:12px;background:#fbfdff}.schedule-summary>div:not(.schedule-arrow){display:flex;flex-direction:column;gap:3px}.schedule-summary span{font-size:8px;color:#7a8da3}.schedule-summary b{font-size:12px;color:var(--navy)}.schedule-arrow{font-size:18px;color:#a5b5c5}.schedule-summary.large{margin-top:0}.upload-dropzone{border:1px dashed #9cb9d9;border-radius:12px;min-height:155px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#f8fbfe;padding:18px;position:relative;overflow:hidden}.upload-dropzone input{margin-top:10px;font-size:9px}.upload-icon{width:36px;height:36px;border-radius:10px;background:#e3efff;color:var(--primary);display:grid;place-items:center;font-size:17px;margin-bottom:7px}.upload-dropzone b{font-size:11px;color:var(--navy)}.upload-dropzone small{font-size:8px;color:var(--muted);margin-top:3px}.photo-preview-large{height:235px;margin-top:10px;border-radius:12px;border:1px solid var(--line);background:#f1f5f8;display:grid;place-items:center;overflow:hidden;color:#8496a9;font-size:9px}.photo-preview-large img{width:100%;height:100%;object-fit:contain}.check-card{display:flex;gap:9px;align-items:start;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff;margin-bottom:7px}.check-card input{margin-top:2px;accent-color:var(--primary)}.check-card b{font-size:10px;color:var(--navy);display:block}.check-card small{font-size:8px;color:var(--muted);display:block;margin-top:2px}.correlation-textarea{margin:0 0 9px;min-height:65px!important}.wizard-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0 3px}.wizard-footer-left{font-size:9px;color:var(--muted)}.identity-strip{}.package-identity-strip{display:flex;justify-content:space-between;gap:16px;padding:15px 17px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);margin-bottom:14px}.identity-kicker{font-size:8px;letter-spacing:.12em;color:#7890a7;font-weight:800}.identity-main h2{font-size:18px;color:var(--navy);margin:3px 0}.identity-meta{display:flex;gap:7px;flex-wrap:wrap;font-size:8px;color:#75889f}.identity-photo{width:145px;height:85px;border-radius:9px;overflow:hidden;background:#edf3f8;display:grid;place-items:center;flex:0 0 145px;font-size:8px;color:#8ea0b4}.identity-photo img{width:100%;height:100%;object-fit:cover}.monitoring-layout{display:grid;grid-template-columns:1fr 305px;gap:14px}.quarter-picker{display:flex;align-items:end;gap:14px}.quarter-picker>.field{width:110px;flex:0 0 110px}.quarter-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;flex:1}.quarter-tab{border:1px solid var(--line);border-radius:9px;padding:8px;text-align:center;background:#f8fbfd}.quarter-tab span{display:block;font-size:8px;font-weight:800;color:#63778f}.quarter-tab small{display:block;font-size:7px;color:#92a2b2;margin-top:2px}.quarter-tab.active{background:var(--primary);border-color:var(--primary)}.quarter-tab.active span,.quarter-tab.active small{color:#fff}.progress-matrix-wrap{overflow:auto;border:1px solid var(--line);border-radius:11px}.progress-matrix{width:100%;min-width:1050px;border-collapse:collapse}.progress-matrix th{background:#f6f9fc;border-bottom:1px solid var(--line);padding:8px;font-size:8px;color:#667b92;white-space:nowrap;text-align:center}.progress-matrix td{padding:9px 7px;border-bottom:1px solid #eef3f7;font-size:8px;text-align:center;white-space:nowrap}.progress-matrix td:first-child{text-align:left;min-width:95px}.progress-matrix td:first-child b{display:block;color:var(--navy)}.progress-matrix td:first-child small{display:block;color:#97a5b4;margin-top:2px}.dev-neg{color:#d33b4e;background:#fff0f2;font-weight:800}.current-input-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.four-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.upload-update-card{margin-top:12px;display:flex;gap:13px;align-items:center;justify-content:space-between;border:1px solid #d8e6f3;background:#f8fbfe;border-radius:11px;padding:12px}.upload-update-card>b,.upload-update-card>div:first-child{min-width:180px}.upload-update-card b{display:block;font-size:10px;color:var(--navy)}.upload-update-card small{display:block;color:var(--muted);font-size:8px;margin-top:2px}.upload-inline{display:flex;flex-direction:column;align-items:end;gap:4px}.upload-inline input{font-size:9px}.upload-inline span{font-size:7px;color:#8496a9}.existing-update-photo{width:80px;height:58px;border:1px solid var(--line);border-radius:8px;overflow:hidden}.existing-update-photo img{width:100%;height:100%;object-fit:contain;background:#edf3f8;cursor:zoom-in}.monitoring-side{display:flex;flex-direction:column;gap:14px}.summary-list{display:flex;flex-direction:column}.summary-list>div{padding:9px 0;border-bottom:1px solid #edf2f7}.summary-list>div:last-child{border-bottom:0}.summary-list span{display:block;font-size:8px;color:#8293a8}.summary-list b{display:block;font-size:9px;color:var(--navy);margin-top:2px}.quarter-photo-stack{display:grid;grid-template-columns:1fr 1fr;gap:8px}.quarter-photo-stack>div{border:1px solid var(--line);border-radius:9px;padding:7px;background:#fbfdff}.quarter-photo-stack span{display:block;font-size:8px;font-weight:800;color:#63788e;margin-bottom:5px}.quarter-photo-stack img,.mini-photo-empty{width:100%;height:70px;object-fit:contain;background:#eef3f7;border-radius:6px;display:grid;place-items:center;color:#97a6b4;font-size:9px;cursor:zoom-in}.detail-hero{display:flex;justify-content:space-between;align-items:center;gap:18px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px;box-shadow:var(--shadow);margin-bottom:14px}.detail-hero h2{margin:8px 0 2px;font-size:20px;color:var(--navy)}.detail-hero p{margin:0;color:var(--muted);font-size:9px}.detail-hero-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;min-width:430px}.detail-hero-kpis div{padding-left:16px;border-left:1px solid #e9eef4}.detail-hero-kpis span{display:block;font-size:8px;color:#7b8ea3}.detail-hero-kpis b{display:block;font-size:15px;color:var(--navy);margin-top:4px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.detail-two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.detail-list{display:flex;flex-direction:column}.detail-list>div{padding:9px 0;border-bottom:1px solid #edf2f7}.detail-list>div:last-child{border-bottom:0}.detail-list span{display:block;font-size:8px;color:#8495a8}.detail-list b{display:block;font-size:9px;color:var(--navy);margin-top:2px}.text-link{color:var(--primary)}.preline{white-space:pre-wrap;line-height:1.55}.correlation-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.correlation-summary{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fbfdff}.correlation-summary>b{display:block;font-size:9px;color:var(--navy);margin-bottom:6px}.correlation-summary p{margin:7px 0 0;font-size:8px;color:#6c8097;line-height:1.55}.timeline-list{display:flex;flex-direction:column}.timeline-item{position:relative;padding:0 0 16px 18px;margin:0 0 16px;border-left:2px solid #dce7f2}.timeline-item:last-child{margin-bottom:0;padding-bottom:0}.timeline-dot{width:9px;height:9px;background:var(--primary);border-radius:50%;position:absolute;left:-5px;top:2px}.timeline-head{display:flex;justify-content:space-between;gap:12px;color:#74879c;font-size:9px}.timeline-head b{color:var(--navy)}.timeline-head span{font-size:8px}.docs-grid{align-items:start}.map-page-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:14px}.map-large-card{min-height:610px}.admin-map{height:520px;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#eef4f9}.map-list{display:flex;flex-direction:column;max-height:520px;overflow:auto}.map-list a{display:flex;justify-content:space-between;gap:8px;padding:11px 0;border-bottom:1px solid #edf2f7}.map-list a:last-child{border-bottom:0}.map-list b{display:block;font-size:9px;color:var(--navy)}.map-list span{display:block;font-size:8px;color:var(--muted);margin-top:2px}.map-list small{display:block;font-size:8px;color:#94a3b3;margin-top:2px}.map-list em{font-style:normal;font-size:7px;color:var(--primary);white-space:nowrap}.settings-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.settings-section{padding:13px;border:1px solid var(--line);border-radius:11px;background:#fbfdff;margin-bottom:10px}.settings-section h4{margin:0 0 10px;font-size:10px;color:var(--navy)}.settings-file-line{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:end}.settings-asset-preview{min-height:130px}.settings-logo-preview{width:130px;height:130px}.profile-card{max-width:760px}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.footer-note{display:flex;justify-content:space-between;gap:12px;padding:10px 26px;color:#8c9bad;font-size:8px;background:#fff;border-top:1px solid var(--line)}
@media(max-width:1200px){.topbar-search{max-width:330px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.filter-grid{grid-template-columns:repeat(3,1fr)}.three-card-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.map-page-grid{grid-template-columns:1fr}.monitoring-layout{grid-template-columns:1fr}.monitoring-side{display:grid;grid-template-columns:1fr 1fr}.map-large-card{min-height:0}.admin-map{height:450px}}
@media(max-width:900px){.mobile-menu-btn{display:block}.topbar-search{display:none}.topbar{padding:0 14px}.profile-text{display:none}.sidebar{position:fixed;left:-260px;top:74px;bottom:0;z-index:70;transition:.2s ease}.sidebar.show{left:0}.content{padding:18px 14px 35px}.wizard-steps{grid-template-columns:1fr 1fr}.step-grid,.detail-two-col,.location-step-grid{grid-template-columns:1fr}.detail-hero{flex-direction:column;align-items:flex-start}.detail-hero-kpis{min-width:0;width:100%}.mini-map-shell{grid-template-columns:1fr}.dashboard-grid-main{grid-template-columns:1fr}.status-chart-layout{grid-template-columns:1fr;justify-items:center}.status-legend{width:100%}.infra-row{grid-template-columns:125px 1fr 28px}.package-search-form{grid-template-columns:1fr 1fr}.package-search-form .big-search{grid-column:1/-1}.four-fields-grid,.current-input-grid,.profile-grid{grid-template-columns:1fr}.quarter-picker{flex-direction:column;align-items:stretch}.quarter-picker>.field{width:100%}.upload-update-card{flex-direction:column;align-items:stretch}.upload-inline{align-items:stretch}.footer-note{padding:10px 14px;flex-direction:column}.top-actions{gap:4px}.year-chip{display:none}.icon-top-btn{display:none}.form-section-card{padding:14px}}
@media(max-width:600px){.kpi-grid{grid-template-columns:1fr}.wizard-steps{grid-template-columns:1fr}.dashboard-actions{flex-direction:column;align-items:flex-start}.dashboard-banner{height:155px}.dashboard-banner-overlay b{font-size:15px}.filter-grid{grid-template-columns:1fr}.package-search-form{grid-template-columns:1fr}.detail-hero-kpis{grid-template-columns:1fr;gap:8px}.detail-hero-kpis div{border-left:0;border-top:1px solid #edf2f7;padding:8px 0}.correlation-summary-grid{grid-template-columns:1fr}.schedule-summary{grid-template-columns:1fr}.schedule-arrow{display:none}.monitoring-side{grid-template-columns:1fr}.content{padding:14px 10px 30px}}


/* V5 layout refinement: align the input wizard with the supplied reference screenshots. */
.identity-location-grid{grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);align-items:start;gap:14px}
.location-card-stack{align-self:stretch}
.location-map-box{border:1px solid var(--line);border-radius:12px;padding:7px;background:#f8fbfe;margin-top:11px}
.location-map-box .package-map{height:215px;border:0;border-radius:9px}
.current-time{font-size:8px;color:#7a8ca2;white-space:nowrap;margin-right:2px}
.package-wizard .wizard-steps{position:sticky;top:0;z-index:20;background:#f6f9fc;padding:7px 0}
@media(max-width:1200px){.identity-location-grid{grid-template-columns:minmax(0,1fr) minmax(330px,.8fr)}.current-time{display:none}}
@media(max-width:900px){.identity-location-grid{grid-template-columns:1fr}.package-wizard .wizard-steps{position:static}.location-map-box .package-map{height:260px}}

/* ===== Dashboard v5.0.4 visual refinement ===== */
.dashboard-page{--dash-border:#dbe7f3;--dash-muted:#71839a;--dash-navy:#0e2a4a}
.dashboard-page .dashboard-welcome{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;padding:4px 4px 15px}
.dashboard-page .dashboard-breadcrumb{font-size:11px;color:#7890a7;margin-bottom:6px;font-weight:600}
.dashboard-page .dashboard-breadcrumb span{color:#b8c6d6;margin:0 6px}
.dashboard-page .dashboard-welcome h1{font-size:31px;line-height:1.1;letter-spacing:-.7px;color:var(--dash-navy);margin:0 0 7px;font-weight:850}
.dashboard-page .dashboard-welcome p{font-size:13px;color:#647991;margin:0}
.dashboard-page .dashboard-welcome p b{color:#173d67}
.dashboard-page .dashboard-year-switcher label{font-size:10px;color:#6d8197;font-weight:800;display:block;margin-bottom:5px}
.dashboard-page .dashboard-year-switcher select{font-size:12px;padding:10px 30px 10px 11px;min-width:110px;border-radius:10px;border-color:#cfddea}
.dashboard-page .kpi-grid{gap:14px;margin-bottom:18px}
.dashboard-page .kpi-card{min-height:104px;border-radius:16px;padding:17px;box-shadow:0 10px 24px rgba(31,78,121,.08)}
.dashboard-page .kpi-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--kpi-accent)}
.dashboard-page .kpi-blue{--kpi-accent:#2f80ed;background:linear-gradient(135deg,#f7fbff 0%,#eaf4ff 100%);border-color:#cfe2f8}
.dashboard-page .kpi-green{--kpi-accent:#19a16f;background:linear-gradient(135deg,#f7fffb 0%,#e8f9f1 100%);border-color:#cfece0}
.dashboard-page .kpi-amber{--kpi-accent:#eaa62d;background:linear-gradient(135deg,#fffdfa 0%,#fff2d9 100%);border-color:#f0ddbb}
.dashboard-page .kpi-red{--kpi-accent:#e55768;background:linear-gradient(135deg,#fffafb 0%,#ffecef 100%);border-color:#f1d2d8}
.dashboard-page .kpi-icon{width:46px;height:46px;border-radius:14px;font-size:15px;box-shadow:0 7px 14px rgba(18,47,77,.08)}
.dashboard-page .kpi-label{font-size:10px;letter-spacing:.08em}
.dashboard-page .kpi-value{font-size:28px;margin:5px 0 2px;letter-spacing:-.4px}
.dashboard-page .kpi-money{font-size:22px}
.dashboard-page .kpi-meta{font-size:10px}
.dashboard-page .mini-progress{height:7px;margin-top:7px}
.dashboard-page .dashboard-row-gap{gap:15px;margin-bottom:15px}
.dashboard-page .dashboard-card{padding:18px;border-radius:16px;border-color:var(--dash-border);box-shadow:0 9px 25px rgba(31,78,121,.065)}
.dashboard-page .section-heading{margin-bottom:14px}
.dashboard-page .section-heading h3{font-size:16px;line-height:1.25}
.dashboard-page .section-heading p{font-size:10.5px;margin-top:4px}
.dashboard-page .section-link{font-size:10px;padding-top:2px}
.dashboard-page .status-chart-layout{grid-template-columns:200px 1fr;gap:22px;min-height:255px}
.dashboard-page .donut{width:192px;height:192px;box-shadow:0 8px 22px rgba(28,71,113,.1)}
.dashboard-page .donut-hole{width:108px;height:108px}
.dashboard-page .donut-hole strong{font-size:30px}
.dashboard-page .donut-hole span{font-size:10px}
.dashboard-page .status-legend{gap:13px}
.dashboard-page .legend-row{font-size:11px;grid-template-columns:11px 1fr auto auto;gap:8px}
.dashboard-page .legend-row b{font-size:12px}
.dashboard-page .legend-row small{font-size:10px}
.dashboard-page .legend-dot{width:10px;height:10px;border-radius:50%}
.dashboard-page .warning-row{min-height:63px;border-radius:12px;padding:10px 12px;box-shadow:0 6px 15px rgba(26,61,92,.05)}
.dashboard-page .warning-row b{font-size:17px}
.dashboard-page .warning-row span{font-size:11px}
.dashboard-page .warning-icon{width:38px;height:38px;font-size:14px}
.dashboard-page .mini-map-shell{grid-template-columns:1.55fr .75fr;min-height:285px}
.dashboard-page .dashboard-map{height:285px;border-radius:12px}
.dashboard-page .district-mini-list{padding:9px 11px;gap:2px;background:#fbfdff}
.dashboard-page .district-mini-list div{padding:9px 4px}
.dashboard-page .district-mini-list span{font-size:10px}
.dashboard-page .district-mini-list b{font-size:12px}
.dashboard-page .dashboard-infra-card{overflow:hidden}
.dashboard-page .infra-board{display:flex;flex-direction:column;gap:10px}
.dashboard-page .infra-card-row{display:grid;grid-template-columns:42px 1fr;gap:11px;align-items:center;padding:10px 11px;border:1px solid #e2ebf4;border-radius:12px;background:linear-gradient(180deg,#fff,#fbfdff);transition:transform .15s ease,box-shadow .15s ease}
.dashboard-page .infra-card-row:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(31,78,121,.07)}
.dashboard-page .infra-card-icon{width:42px;height:42px;border-radius:13px;background:color-mix(in srgb,var(--infra-color) 12%,#fff);color:var(--infra-color);display:grid;place-items:center;font-size:18px;font-weight:900;border:1px solid color-mix(in srgb,var(--infra-color) 24%,#fff)}
.dashboard-page .infra-card-main{min-width:0}
.dashboard-page .infra-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}
.dashboard-page .infra-card-top span{font-size:11.5px;color:#46627d;font-weight:750}
.dashboard-page .infra-card-top b{font-size:15px;color:var(--dash-navy)}
.dashboard-page .infra-card-bar{height:11px;background:#e9eff5;border-radius:999px;overflow:hidden}
.dashboard-page .infra-card-bar span{display:block;height:100%;border-radius:999px;min-width:0}
.dashboard-page .infra-card-bottom{display:flex;justify-content:space-between;gap:8px;margin-top:5px}
.dashboard-page .infra-card-bottom small{font-size:8.8px;color:#8a9aad}
.dashboard-page .dashboard-recent-card{margin-bottom:15px}
.dashboard-page .dashboard-bottom-head h3{font-size:16px}
.dashboard-page .dashboard-bottom-head p{font-size:10.5px}
.dashboard-page .recent-opd-strip{gap:9px}
.dashboard-page .recent-opd-strip a{padding:11px 12px;border-radius:11px}
.dashboard-page .recent-opd-name{font-size:10px!important}
.dashboard-page .recent-opd-package{font-size:10px!important}
.dashboard-page .recent-opd-strip strong{font-size:10px!important}
.dashboard-page .dashboard-footer-note{display:flex;justify-content:center;align-items:center;padding:14px 4px 4px;color:#8394a7;font-size:10px}.dashboard-footer-note span{display:block}

@media(max-width:900px){
  .dashboard-page .dashboard-welcome{align-items:flex-start}
  .dashboard-page .dashboard-welcome h1{font-size:27px}
  .dashboard-page .dashboard-welcome p{font-size:12px}
  .dashboard-page .status-chart-layout{grid-template-columns:1fr;justify-items:center}
  .dashboard-page .status-legend{width:100%}
  .dashboard-page .mini-map-shell{grid-template-columns:1fr}
  .dashboard-page .dashboard-map{height:260px}
}
@media(max-width:600px){
  .dashboard-page .dashboard-welcome{flex-direction:column;align-items:flex-start}
  .dashboard-page .dashboard-welcome h1{font-size:24px}
  .dashboard-page .dashboard-welcome p{font-size:11px}
  .dashboard-page .kpi-value{font-size:25px}
  .dashboard-page .kpi-money{font-size:20px}
  .dashboard-page .infra-card-row{grid-template-columns:38px 1fr;padding:9px}
  .dashboard-page .infra-card-icon{width:38px;height:38px;border-radius:11px}
  .dashboard-page .infra-card-bottom{flex-direction:column;gap:1px}
}

/* V5.0.5 validation UX */
.form-validation-summary{margin:0 0 14px;padding:14px 16px;border:1px solid #f2b8bf;background:linear-gradient(135deg,#fff7f8 0%,#fff1f3 100%);border-left:5px solid #e04a5b;border-radius:12px;color:#7c2330;box-shadow:0 6px 16px rgba(180,48,68,.08)}
.form-validation-summary[hidden]{display:none!important}
.validation-summary-title{font-size:13px;font-weight:850;color:#a52f3e}
.validation-summary-text{font-size:10px;margin-top:3px;color:#7d4d56}
.form-validation-summary ul{margin:8px 0 0 18px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 24px}
.form-validation-summary li{font-size:10px;line-height:1.4}
.field input.is-invalid,.field select.is-invalid,.field textarea.is-invalid{border-color:#df5968!important;box-shadow:0 0 0 3px rgba(223,89,104,.11)!important;background:#fff8f9}
.wizard-step.done{border-color:#8fd0b6!important}
.wizard-step.done>span{background:#1a9a67!important;color:#fff!important}
@media(max-width:700px){.form-validation-summary ul{grid-template-columns:1fr}}


/* ===== v5.0.6 usability & visual polish ===== */
body{overflow-x:hidden}
.app-zoom-root{width:100%;min-height:100vh}
.app-zoom-root .content{font-size:14px}
.app-zoom-root .sidebar nav a{font-size:12px;padding:11px 12px}
.app-zoom-root .sidebar-section{font-size:10px}
.app-zoom-root .sidebar-note{font-size:10px}
.app-zoom-root .brand strong{font-size:15px}.app-zoom-root .brand small{font-size:10px}
.app-zoom-root .topbar-search input{font-size:13px}.app-zoom-root .year-chip{font-size:10px}.app-zoom-root .profile-text b{font-size:11px}.app-zoom-root .profile-text small{font-size:9px}
.app-zoom-root .page-title h1{font-size:28px}.app-zoom-root .page-title p{font-size:13px}.app-zoom-root .breadcrumb{font-size:10px}
.app-zoom-root .field{gap:7px}.app-zoom-root .field label{font-size:12px}.app-zoom-root .field input,.app-zoom-root .field select,.app-zoom-root .field textarea{font-size:13px;padding:11px 12px}.app-zoom-root .field small{font-size:10px}
.app-zoom-root .btn{font-size:12px;padding:10px 14px}.app-zoom-root .btn-sm{font-size:11px;padding:8px 11px}
.app-zoom-root .card{padding:21px}.app-zoom-root .section-heading h3{font-size:16px}.app-zoom-root .section-heading p{font-size:11px}
.app-zoom-root .table th{font-size:10px}.app-zoom-root .table td{font-size:12px}.app-zoom-root .small{font-size:11px}

/* Wizard / package form */
.wizard-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:0 0 15px}
.wizard-step{border:1px solid #d8e4ef;background:#fff;border-radius:13px;padding:11px 12px;display:flex;gap:10px;align-items:center;text-align:left;cursor:pointer;box-shadow:0 5px 15px rgba(21,55,91,.04);transition:.18s ease}
.wizard-step:hover{border-color:#9dc3ea;transform:translateY(-1px)}
.wizard-step>span{width:34px;height:34px;border-radius:50%;background:#e9eef5;color:#60758c;display:grid;place-items:center;font-weight:850;flex:0 0 auto;font-size:13px}.wizard-step b{display:block;font-size:12px;color:var(--navy)}.wizard-step small{display:block;color:var(--muted);font-size:9px;margin-top:2px}.wizard-step.active{border-color:#2f80ed;background:linear-gradient(135deg,#f6fbff,#edf5ff);box-shadow:0 9px 22px rgba(47,128,237,.12)}.wizard-step.active>span{background:#2f80ed;color:#fff}.wizard-step.done{background:#f3fbf7}
.wizard-panel{display:none}.wizard-panel.active{display:block}
.step-grid{display:grid;gap:15px}.three-card-grid{display:grid;grid-template-columns:1.08fr .92fr .92fr;gap:15px}
.form-section-card{background:#fff;border:1px solid #dce7f2;border-radius:16px;padding:19px;box-shadow:0 8px 24px rgba(31,78,121,.055);margin-bottom:14px}.form-section-card.compact{margin-bottom:0}.card-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}.card-heading>div{display:flex;gap:10px;align-items:flex-start}.card-heading h3{margin:0;color:var(--navy);font-size:17px}.card-heading p{margin:3px 0 0;color:var(--muted);font-size:10px}.heading-icon{width:34px;height:34px;border-radius:10px;background:#edf5ff;color:var(--primary);display:grid;place-items:center;font-weight:900;font-size:15px;flex:0 0 auto}
.auto-category-card{margin:7px 0 12px;padding:12px 13px;border-radius:12px;border:1px solid #d5e5f3;background:linear-gradient(135deg,#f4f9ff,#eef7ff)}.auto-category-card span{display:block;font-size:10px;color:#6d8299;font-weight:750}.auto-category-card b{display:block;font-size:15px;color:#184b7f;margin-top:3px}.auto-category-card small{display:block;font-size:9px;color:#7790a8;margin-top:2px}
.value-highlight{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 13px;border-radius:11px;background:#f8fbfe;border:1px solid #e0eaf3;margin-bottom:8px}.value-highlight span{font-size:11px;color:#6f8398}.value-highlight b{font-size:14px;color:var(--navy)}
.schedule-summary{display:grid;grid-template-columns:1fr auto 1fr 1fr;align-items:center;gap:10px;padding:15px 17px;border-radius:14px;border:1px solid #dbe8f4;background:#f8fbfe}.schedule-summary>div:not(.schedule-arrow){padding:8px 10px;border-radius:10px;background:#fff;border:1px solid #e5edf5}.schedule-summary span{display:block;font-size:10px;color:#8192a6}.schedule-summary b{display:block;font-size:14px;color:var(--navy);margin-top:3px}.schedule-arrow{font-size:22px;color:#3c83d4;font-weight:800}
.wizard-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:15px;padding:14px 0 2px;border-top:1px solid #e7eef5}.wizard-footer .actions{display:flex;gap:8px;flex-wrap:wrap}
.upload-dropzone{position:relative;min-height:150px;border:2px dashed #9fc3e9;border-radius:14px;background:linear-gradient(135deg,#f7fbff,#edf5ff);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;cursor:pointer;overflow:hidden}.upload-dropzone:hover{background:#eaf4ff;border-color:#4e95df}.upload-dropzone .upload-icon{width:46px;height:46px;border-radius:14px;background:#fff;display:grid;place-items:center;color:#2f80ed;font-size:24px;font-weight:800;box-shadow:0 8px 18px rgba(47,128,237,.12);margin-bottom:8px}.upload-dropzone b{font-size:13px;color:var(--navy)}.upload-dropzone small{font-size:10px;color:#6c8199;margin-top:3px}.upload-dropzone input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.photo-preview-large{width:100%;aspect-ratio:4/3;margin-top:12px;border:1px solid #dbe6ef;border-radius:14px;background:linear-gradient(135deg,#edf3f8,#f8fafc);display:grid;place-items:center;overflow:hidden;color:#8a9db1;font-size:11px;text-align:center}.photo-preview-large img,.photo-preview-large .preview-photo-fit{width:100%;height:100%;object-fit:cover;object-position:center;background:linear-gradient(135deg,#eaf0f5,#f8fafc);display:block}.photo-preview-large:has(img){background:#eef3f8}
.check-card{display:flex;align-items:flex-start;gap:10px;padding:12px 13px;border:1px solid #dce7f2;border-radius:12px;background:#fff;margin-bottom:7px;cursor:pointer}.check-card:hover{border-color:#bcd8f3;background:#f7fbff}.check-card input{margin-top:3px;accent-color:var(--primary)}.check-card b{display:block;font-size:12px;color:var(--navy)}.check-card small{display:block;font-size:9px;color:var(--muted);margin-top:2px}.correlation-textarea{margin:-2px 0 9px!important;min-height:76px!important;background:#fbfdff!important}.conditional-input{transition:.2s ease}

/* Monitoring page */
.progress-matrix th,.progress-matrix td{font-size:10px}.progress-matrix th{padding:10px}.progress-matrix td{padding:10px}.upload-update-card b{font-size:12px}.upload-update-card small{font-size:9px}.upload-inline input{font-size:10px}.upload-inline span{font-size:9px}.existing-update-photo{width:96px;height:70px}.existing-update-photo img{object-fit:contain}
.package-identity-strip{padding:18px 20px}.identity-kicker{font-size:9px}.identity-main h2{font-size:21px}.identity-meta{font-size:10px}

/* Progress index */
.progress-index-intro{display:flex;align-items:center;gap:14px;margin-bottom:15px;background:linear-gradient(135deg,#f6fbff,#edf6ff);border-color:#cfe1f3}.progress-index-icon{width:48px;height:48px;border-radius:14px;background:#dceeff;color:#2476ce;display:grid;place-items:center;font-size:22px;font-weight:900}.progress-index-intro h3{margin:0;color:var(--navy);font-size:17px}.progress-index-intro p{margin:3px 0 0;color:#688099;font-size:11px}.progress-index-count{margin-left:auto;text-align:center;min-width:90px;padding:8px 12px;border-radius:11px;background:#fff;border:1px solid #dae7f2}.progress-index-count span{display:block;font-size:22px;font-weight:850;color:var(--navy)}.progress-index-count small{font-size:9px;color:var(--muted)}.progress-package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.progress-package-card{background:#fff;border:1px solid #dce7f2;border-radius:16px;padding:16px;box-shadow:0 8px 24px rgba(31,78,121,.06);display:flex;flex-direction:column;min-height:285px}.progress-package-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.progress-package-year{font-size:10px;color:#8193a6;font-weight:750}.progress-package-card h3{font-size:16px;color:var(--navy);margin:12px 0 4px;line-height:1.3}.progress-opd{font-size:11px;color:#68819b;margin:0}.progress-package-meta{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.progress-package-meta span{padding:5px 8px;border-radius:999px;background:#f1f6fb;color:#607891;font-size:9px}.progress-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:auto}.progress-metrics>div{padding:10px;border-radius:11px;background:#f8fbfe;border:1px solid #e1eaf3}.progress-metrics span{display:block;font-size:9px;color:#8192a6}.progress-metrics b{display:block;font-size:14px;color:var(--navy);margin-top:2px}.progress-financial span{background:linear-gradient(90deg,#2fbf92,#168d67)!important}.progress-package-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:12px}.progress-empty{grid-column:1/-1}

/* CMS */
.cms-page-title{align-items:center}.cms-header-badge{padding:9px 12px;border-radius:999px;background:#eef8f2;border:1px solid #cfead8;color:#31714d;font-size:10px;font-weight:750}.cms-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:16px;align-items:start}.cms-form-card{padding:0;overflow:hidden}.cms-form-card>form{padding:20px}.cms-section{padding:18px;border:1px solid #dfe9f2;border-radius:15px;background:#fbfdff;margin-bottom:13px}.cms-section-head{display:flex;gap:11px;align-items:flex-start;margin-bottom:15px}.cms-section-number{width:32px;height:32px;border-radius:10px;background:#eaf3ff;color:#1769d3;display:grid;place-items:center;font-size:11px;font-weight:900}.cms-section-head h3{margin:0;font-size:17px;color:var(--navy)}.cms-section-head p{margin:3px 0 0;color:#73869b;font-size:10px}.cms-field-grid .field label{font-size:12px}.theme-picker-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.theme-picker{display:grid;grid-template-columns:auto 60px 1fr;align-items:center;gap:12px;padding:12px;border:1px solid #dce7f1;background:#fff;border-radius:12px}.theme-picker span{font-size:12px;font-weight:750;color:#4c6680}.theme-picker input{width:52px;height:36px;border:0;padding:0;background:transparent}.theme-picker b{font-size:11px;color:#73879a;font-family:ui-monospace,monospace}.asset-upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.asset-upload-grid.wide{grid-template-columns:1fr 1fr}.asset-upload-card{border:1px solid #dce7f2;background:#fff;border-radius:14px;overflow:hidden}.asset-upload-preview{height:150px;background:#f1f6fa;display:grid;place-items:center;overflow:hidden;border-bottom:1px solid #e2ebf3}.asset-upload-preview img{width:100%;height:100%;object-fit:contain}.asset-logo-preview,.asset-favicon-preview{height:160px}.asset-logo-preview img{width:70%;height:70%}.asset-favicon-preview img{width:88px;height:88px;border-radius:18px;background:#fff;padding:10px;box-shadow:0 8px 20px rgba(31,78,121,.08)}.asset-banner-preview{height:145px}.asset-banner-preview img{object-fit:cover}.asset-login-preview{height:180px;background:linear-gradient(145deg,#0b478f,#1676d7)}.asset-login-preview img{height:100%;width:88%;object-fit:contain}.asset-upload-body{padding:14px}.asset-upload-title{font-size:13px;font-weight:850;color:var(--navy)}.asset-upload-desc{font-size:9px;color:#7c8fa4;line-height:1.5;margin:3px 0 9px}.asset-upload-body input[type=file]{width:100%;font-size:10px;margin-bottom:8px}.asset-upload-body .btn{width:100%}.cms-inline-note{margin-top:11px;padding:11px 13px;border-radius:11px;background:#edf6ff;border:1px solid #cfe3f8;color:#53708f;font-size:10px}.cms-save-bar{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px 3px 0}.cms-save-bar b{display:block;font-size:12px;color:var(--navy)}.cms-save-bar span{display:block;font-size:9px;color:#8091a4;margin-top:2px}.cms-preview-card{position:sticky;top:93px}.cms-preview-head{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:14px}.cms-preview-head h3{margin:0;font-size:18px;color:var(--navy)}.cms-preview-head p{margin:3px 0 0;font-size:10px;color:#7b8ea2}.live-pill{font-size:9px;font-weight:800;color:#1e7c50;background:#e7f8ee;border:1px solid #bfe4cd;border-radius:999px;padding:5px 8px}.preview-browser{border:1px solid #dbe6ef;border-radius:15px;overflow:hidden;background:#fff;box-shadow:0 12px 28px rgba(30,67,103,.08)}.browser-bar{height:39px;background:#f3f6f9;display:flex;align-items:center;gap:5px;padding:0 10px;border-bottom:1px solid #e4ebf1}.browser-dot{width:8px;height:8px;border-radius:50%;background:#c9d3dd}.browser-url{margin-left:7px;height:25px;border:1px solid #dce4eb;background:#fff;border-radius:7px;display:flex;align-items:center;gap:7px;padding:0 8px;flex:1;min-width:0}.browser-url img{width:15px;height:15px;object-fit:contain}.browser-url span{font-size:9px;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.browser-url small{font-size:8px;color:#97a5b4;margin-left:auto;white-space:nowrap}.browser-content>img{width:100%;height:125px;object-fit:cover;display:block}.browser-heading{display:flex;align-items:center;gap:9px;padding:12px 13px}.browser-heading img{width:30px;height:30px;object-fit:contain}.browser-heading b{display:block;font-size:11px;color:var(--navy)}.browser-heading small{display:block;font-size:8px;color:#7d8fa4;margin-top:1px}.preview-login{margin-top:15px}.preview-label{font-size:10px;letter-spacing:.12em;color:#7a8da3;font-weight:850;margin-bottom:7px}.preview-login-inner{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:center;padding:10px;border:1px solid #dbe6ef;border-radius:14px;background:#eef5ff}.preview-login-inner>img{width:100%;height:150px;object-fit:contain;border-radius:10px;background:linear-gradient(145deg,#0b478f,#1676d7)}.preview-login-inner>div{background:#fff;border:1px solid #dce7f2;border-radius:11px;padding:12px;text-align:center}.preview-login-inner>div img{width:42px;height:42px;object-fit:contain}.preview-login-inner b{display:block;font-size:10px;color:var(--navy);margin-top:4px}.preview-login-inner small{display:block;font-size:8px;color:#8192a6;margin-top:2px}.cms-preview-note{margin-top:13px;padding:11px 12px;border-radius:11px;background:#fff7df;border:1px solid #f2dfae;color:#775c1a;font-size:9px;line-height:1.5}

/* Public dashboard made consistent with admin dashboard */
.public-dashboard-simple{background:#f3f6fb}.public-dashboard-simple .public-topbar{height:74px;padding:0 26px}.public-dashboard-main{max-width:1640px;margin:0 auto;padding:26px}.public-dashboard-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:15px}.public-eyebrow{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#2f80ed;font-weight:850}.public-dashboard-head h1{margin:4px 0 4px;font-size:30px;color:var(--navy);letter-spacing:-.5px}.public-dashboard-head p{margin:0;color:#6e8197;font-size:12px}.public-year-form label{display:block;font-size:10px;color:#6d8197;font-weight:800;margin-bottom:5px}.public-year-form select{padding:10px 30px 10px 11px;border:1px solid #cfddea;border-radius:10px;background:#fff;font-size:12px}.public-simple-filters{padding:13px 15px;margin-bottom:16px}.public-dashboard-filter-form{display:grid;grid-template-columns:1.7fr 1fr 1.1fr 1fr auto auto;gap:10px;align-items:end}.public-dashboard-filter-form .field input,.public-dashboard-filter-form .field select{font-size:12px}.public-style-card{border-radius:16px}.public-main-grid{margin-bottom:15px}.public-kpi-grid{margin-bottom:16px}.public-infra-board{display:grid!important;grid-template-columns:1fr 1fr;gap:10px!important}.public-infra-board .infra-card-row{padding:11px 12px}.public-dashboard-simple .public-table{min-width:1250px}.public-footer-note{text-align:center;font-size:10px;color:#8394a7;padding:12px 4px 0}

/* Keep photo templates consistent */
.photo-main-frame,.quarter-gallery-card img,.quarter-photo-cell img,.quarter-photo-empty,.photo-large{object-fit:contain;background:linear-gradient(135deg,#edf3f8,#f8fafc)}

@media(max-width:1200px){.progress-package-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cms-layout{grid-template-columns:1fr}.cms-preview-card{position:static}.public-dashboard-filter-form{grid-template-columns:1.5fr 1fr 1fr}.public-dashboard-filter-form .search-wide{grid-column:1/-1}.public-dashboard-filter-form .btn{width:100%}.public-infra-board{grid-template-columns:1fr}}
@media(max-width:900px){.wizard-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.three-card-grid{grid-template-columns:1fr}.progress-package-grid{grid-template-columns:1fr}.asset-upload-grid,.asset-upload-grid.wide,.theme-picker-grid{grid-template-columns:1fr}.cms-save-bar{flex-direction:column;align-items:stretch}.public-dashboard-main{padding:18px 14px}.public-dashboard-head{align-items:flex-start}.public-dashboard-head h1{font-size:26px}.public-dashboard-filter-form{grid-template-columns:1fr 1fr}.public-dashboard-filter-form .field:first-child{grid-column:1/-1}.public-dashboard-simple .public-topbar{padding:0 14px}}
@media(max-width:700px){.wizard-steps{grid-template-columns:1fr}.wizard-footer{flex-direction:column;align-items:stretch}.wizard-footer .actions{justify-content:flex-end}.schedule-summary{grid-template-columns:1fr}.progress-index-intro{align-items:flex-start}.progress-index-count{margin-left:0}.preview-login-inner{grid-template-columns:1fr}.public-dashboard-filter-form{grid-template-columns:1fr}.public-dashboard-filter-form .field:first-child{grid-column:auto}}


/* ===== v5.0.7 interaction & readability ===== */
.correlation-options{display:grid;gap:10px}.correlation-option{border:1px solid #e2eaf2;border-radius:14px;background:#fff;overflow:hidden;transition:.18s ease}.correlation-option:hover{border-color:#b9d5f3;box-shadow:0 6px 16px rgba(31,78,121,.06)}.correlation-option.selected{border-color:#6aa6ea;background:linear-gradient(180deg,#f9fcff,#f3f8ff)}.correlation-option .check-card{border:0;border-radius:0;margin:0;background:transparent;padding:13px 14px;align-items:center}.correlation-toggle input{width:17px;height:17px}.correlation-toggle b{font-size:13px}.correlation-toggle small{font-size:10px}.correlation-badge{margin-left:auto;padding:6px 9px;border-radius:999px;background:#edf4ff;color:#2868ad;font-size:9px;font-weight:800;white-space:nowrap}.correlation-option.selected .correlation-badge{background:#dcecff;color:#1769d3}.correlation-option .correlation-description{display:none!important;padding:0 14px 14px}.correlation-option.selected .correlation-description{display:block!important}.correlation-description[hidden]{display:none!important}.correlation-description .field label{font-size:11px}.correlation-description textarea{min-height:92px!important;font-size:12px!important}
.early-warning-card{background:linear-gradient(180deg,#fff,#fbfcff);position:relative;overflow:hidden}.warning-heading{margin-bottom:11px}.warning-title-line{display:flex;align-items:center;gap:8px}.warning-live-dot{width:9px;height:9px;border-radius:50%;background:#ef5b64;box-shadow:0 0 0 5px rgba(239,91,100,.12);animation:warningPulse 1.7s infinite}.warning-title-line h3{margin:0}.warning-live-badge{font-size:8px;font-weight:900;letter-spacing:.12em;padding:4px 6px;border-radius:999px;background:#fff0f1;color:#c5303d;border:1px solid #f3c3c8}.notification-stack{display:grid;gap:8px}.notification-card{display:grid;grid-template-columns:40px 1fr auto 18px;align-items:center;gap:10px;padding:11px 12px;border:1px solid #e5ebf2;border-radius:13px;transition:.18s ease;position:relative;overflow:hidden}.notification-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--notif-color)}.notification-card:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(31,78,121,.08);border-color:#c9d9ea}.notification-danger{--notif-color:#e0525f;background:linear-gradient(90deg,#fff6f7,#fff)}.notification-warning{--notif-color:#e6a62a;background:linear-gradient(90deg,#fffaf0,#fff)}.notification-orange{--notif-color:#ed7c2f;background:linear-gradient(90deg,#fff7ef,#fff)}.notification-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:rgba(255,255,255,.85);border:1px solid color-mix(in srgb,var(--notif-color) 28%,#fff);color:var(--notif-color);font-weight:900;font-size:15px}.notification-main b{display:block;font-size:11.5px;color:#223b58}.notification-main small{display:block;margin-top:2px;color:#8092a4;font-size:8.8px;line-height:1.35}.notification-count{min-width:30px;height:30px;padding:0 8px;border-radius:999px;display:grid;place-items:center;background:var(--notif-color);color:#fff;font-size:12px;box-shadow:0 5px 12px color-mix(in srgb,var(--notif-color) 28%,transparent)}.notification-arrow{font-size:19px;color:#8ca0b4}.notification-footer{display:flex;justify-content:space-between;gap:10px;margin-top:9px;padding-top:8px;border-top:1px dashed #dce6f0;color:#8a9aac;font-size:8.8px}.notification-footer b{color:#9d2a36}.warning-toast{position:fixed;right:22px;bottom:22px;z-index:9999;display:grid;grid-template-columns:40px 1fr auto;gap:11px;align-items:center;min-width:330px;max-width:460px;padding:12px 13px;border:1px solid #d9e4ee;border-radius:14px;background:rgba(255,255,255,.98);box-shadow:0 18px 42px rgba(21,55,91,.19);animation:toastIn .35s ease}.warning-toast.closing{animation:toastOut .35s ease forwards}.warning-toast-icon{width:36px;height:36px;border-radius:11px;background:#fff0f1;color:#d73d4c;display:grid;place-items:center;font-weight:900;border:1px solid #f2c8cd}.warning-toast b{display:block;font-size:11px;color:#17304f}.warning-toast span{display:block;font-size:8.8px;color:#7890a7;margin-top:2px;line-height:1.4}.warning-toast button{width:26px;height:26px;border:0;background:transparent;color:#8192a4;font-size:18px;cursor:pointer}@keyframes warningPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.82)}}@keyframes toastIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@keyframes toastOut{from{opacity:1;transform:none}to{opacity:0;transform:translateY(10px) scale(.98)}}
.infra-interactive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.infra-interactive-card{--infra-color:#2f80ed;--infra-pct:0%;position:relative;display:flex;flex-direction:column;gap:7px;padding:12px;border:1px solid #e0e8f1;border-radius:14px;background:linear-gradient(180deg,#fff,#fbfdff);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.infra-interactive-card:after{content:"";position:absolute;right:-20px;top:-20px;width:80px;height:80px;border-radius:50%;background:var(--infra-color);opacity:.055}.infra-interactive-card:hover,.infra-interactive-card.active{transform:translateY(-2px);border-color:color-mix(in srgb,var(--infra-color) 42%,#dce6f0);box-shadow:0 10px 24px color-mix(in srgb,var(--infra-color) 14%,transparent)}.infra-interactive-card.active{background:linear-gradient(180deg,#fff,#f6faff)}.infra-interactive-head{display:flex;justify-content:space-between;align-items:center}.infra-interactive-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:var(--infra-color);background:color-mix(in srgb,var(--infra-color) 10%,#fff);border:1px solid color-mix(in srgb,var(--infra-color) 22%,#fff);font-size:15px;font-weight:900}.infra-interactive-count{font-size:18px;font-weight:900;color:#173552}.infra-interactive-title{font-size:11px;font-weight:800;color:#405a75;min-height:31px;line-height:1.35;padding-right:12px}.infra-interactive-track{height:9px;border-radius:999px;background:#edf1f5;overflow:hidden}.infra-interactive-track span{display:block;width:var(--infra-pct);height:100%;border-radius:999px;background:linear-gradient(90deg,var(--infra-color),color-mix(in srgb,var(--infra-color) 68%,#fff));transition:width .6s cubic-bezier(.2,.8,.2,1)}.infra-interactive-meta{display:flex;justify-content:space-between;gap:8px;align-items:center}.infra-interactive-meta small{font-size:8.5px;color:#8494a7}.infra-interactive-meta b{font-size:8.8px;color:var(--infra-color)}
.public-dashboard-simple .status-chart-layout{grid-template-columns:190px 1fr;gap:22px;min-height:250px}.public-dashboard-simple .donut{width:186px;height:186px}.public-dashboard-simple .donut-hole{width:106px;height:106px}.public-dashboard-simple .donut-hole strong{font-size:29px}.public-dashboard-simple .donut-hole span{font-size:11px}.public-dashboard-simple .public-status-legend{gap:12px;padding-top:6px}.public-dashboard-simple .public-status-legend .legend-row{font-size:13px;grid-template-columns:12px 1fr auto auto;gap:9px;padding:2px 0}.public-dashboard-simple .public-status-legend .legend-row b{font-size:14px}.public-dashboard-simple .public-status-legend .legend-row small{font-size:11px}.public-dashboard-simple .public-status-legend .legend-dot{width:11px;height:11px}.public-dashboard-simple .public-district-list{gap:3px}.public-dashboard-simple .public-district-list div{padding:9px 5px;border-bottom:1px solid #edf2f7}.public-dashboard-simple .public-district-list span{font-size:12px;font-weight:700;color:#58708a}.public-dashboard-simple .public-district-list b{font-size:14px;color:#173552}.public-dashboard-simple .public-dashboard-head h1{font-size:33px}.public-dashboard-simple .public-dashboard-head p{font-size:13px}.public-dashboard-simple .public-dashboard-filter-form .field label{font-size:11px}.public-dashboard-simple .public-dashboard-filter-form .field input,.public-dashboard-simple .public-dashboard-filter-form .field select{font-size:13px}.public-dashboard-simple .public-style-card .section-heading h3{font-size:17px}.public-dashboard-simple .public-style-card .section-heading p{font-size:11px}.public-dashboard-simple .public-infra-interactive-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.public-dashboard-simple .public-infra-interactive-grid .infra-interactive-card{min-height:152px;padding:13px}.public-dashboard-simple .public-infra-interactive-grid .infra-interactive-title{font-size:12px;min-height:34px}.public-dashboard-simple .public-infra-interactive-grid .infra-interactive-count{font-size:20px}.public-dashboard-simple .public-infra-interactive-grid .infra-interactive-meta small{font-size:9px}.public-dashboard-simple .public-infra-interactive-grid .infra-interactive-meta b{font-size:9px}.public-dashboard-simple .public-table th{font-size:10px}.public-dashboard-simple .public-table td{font-size:12px}
@media(max-width:1200px){.public-dashboard-simple .public-infra-interactive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.infra-interactive-grid{grid-template-columns:1fr}.warning-toast{left:14px;right:14px;bottom:14px;min-width:0;max-width:none}.public-dashboard-simple .status-chart-layout{grid-template-columns:1fr;justify-items:center}.public-dashboard-simple .public-status-legend{width:100%}.public-dashboard-simple .public-infra-interactive-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.public-dashboard-simple .public-infra-interactive-grid{grid-template-columns:1fr}.notification-footer{flex-direction:column;align-items:flex-start}.correlation-badge{display:none}}


/* ===== v5.0.8 accessibility & interaction refinements ===== */
.nav-sub a{font-size:13px!important;padding:9px 11px!important;line-height:1.4}
.nav-group > a{font-size:13px!important}
.sidebar nav > a{font-size:13px}
.profile-menu-wrap{position:relative}
.profile-trigger{appearance:none;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit}
.profile-trigger:focus-visible{outline:3px solid rgba(23,105,211,.18);outline-offset:2px;border-radius:12px}
.profile-menu{position:absolute;right:0;top:calc(100% + 9px);width:245px;background:#fff;border:1px solid #dce6f0;border-radius:14px;box-shadow:0 18px 45px rgba(20,55,90,.16);padding:7px;display:none;z-index:120}
.profile-menu.open{display:block}
.profile-menu-head{padding:10px 11px 9px;border-bottom:1px solid #edf2f7;margin-bottom:5px}
.profile-menu-head b{display:block;font-size:13px;color:var(--navy)}
.profile-menu-head small{display:block;margin-top:3px;font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-menu a{display:flex;align-items:center;gap:9px;padding:10px 11px;border-radius:9px;color:#334e6e;font-size:12px;font-weight:700}
.profile-menu a:hover{background:#f3f8ff;color:var(--primary)}
.profile-menu a.logout-item{color:#b4232f}
.profile-menu a.logout-item:hover{background:#fff1f2;color:#b4232f}
.profile-caret{font-size:15px;transition:transform .16s ease}
.profile-menu-wrap.open .profile-caret{transform:rotate(180deg)}
.delete-form{display:inline-flex;margin:0}
.table-actions .delete-form .btn{white-space:nowrap}

/* ===== Public Dashboard v5.0.9 ===== */
.public-dashboard-v509{background:#f4f7fb;color:#193553;min-height:100vh}
.public-v509-topbar{height:74px;padding:0 30px;background:#fff;border-bottom:1px solid #e4ebf3;box-shadow:0 4px 18px rgba(28,63,98,.05);position:sticky;top:0;z-index:80}
.public-dashboard-v509 .portal-brand strong{font-size:18px}.public-dashboard-v509 .portal-brand small{font-size:11px}.public-dashboard-v509 .public-nav a{font-size:13px}
.public-v509-main{max-width:1540px;margin:0 auto;padding:26px 28px 34px}
.public-hero-v509{position:relative;min-height:270px;border-radius:22px;overflow:hidden;background:linear-gradient(120deg,#0c3973 0%,#156ad1 55%,#20a77a 120%),var(--hero-img) center/cover;box-shadow:0 20px 55px rgba(17,60,108,.16);display:flex;align-items:flex-end;padding:32px 34px;color:#fff;margin-bottom:22px}
.public-hero-v509::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,35,74,.92) 0%,rgba(13,87,167,.78) 48%,rgba(10,109,97,.40) 100%);pointer-events:none}
.hero-v509-overlay{position:absolute;inset:0;background:radial-gradient(circle at 75% 20%,rgba(255,255,255,.18),transparent 28%),radial-gradient(circle at 85% 80%,rgba(255,220,101,.16),transparent 25%);z-index:1}
.hero-v509-content{position:relative;z-index:2;max-width:820px}.public-hero-badge{display:inline-flex;padding:7px 11px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(255,255,255,.10);font-size:10px;font-weight:850;letter-spacing:.13em}.hero-v509-content h1{font-size:38px;line-height:1.08;letter-spacing:-.9px;margin:11px 0 10px;max-width:760px}.hero-v509-content p{font-size:15px;line-height:1.65;margin:0;color:rgba(255,255,255,.90);max-width:720px}.hero-v509-meta{display:flex;gap:9px;flex-wrap:wrap;margin-top:17px;font-size:11px;font-weight:700;color:rgba(255,255,255,.86)}
.hero-v509-year{position:absolute;right:28px;top:26px;z-index:3;background:rgba(255,255,255,.95);padding:11px;border-radius:12px;box-shadow:0 8px 22px rgba(0,0,0,.10);min-width:150px}.hero-v509-year label{display:block;font-size:10px;color:#70839a;font-weight:850;margin:0 0 5px}.hero-v509-year select{width:100%;border:1px solid #cfdae7;border-radius:8px;padding:9px;font-size:12px;background:#fff}
.public-kpi-v509{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.public-kpi-v509-card{position:relative;background:#fff;border:1px solid #e4ebf2;border-radius:18px;padding:17px 18px;display:flex;gap:13px;align-items:center;min-height:108px;box-shadow:0 10px 28px rgba(23,59,92,.05);overflow:hidden}.public-kpi-v509-card::after{content:"";position:absolute;right:-20px;bottom:-28px;width:92px;height:92px;border-radius:50%;background:var(--soft);opacity:.9}.public-kpi-v509-card.blue{--soft:#dcebff}.public-kpi-v509-card.green{--soft:#dff6ea}.public-kpi-v509-card.amber{--soft:#fff0d1}.public-kpi-v509-card.red{--soft:#ffe1e4}.kpi-v509-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;font-weight:900;font-size:18px;background:var(--soft);color:var(--accent);border:1px solid rgba(255,255,255,.65)}.blue .kpi-v509-icon{--accent:#2f80ed}.green .kpi-v509-icon{--accent:#169d69}.amber .kpi-v509-icon{--accent:#e39a16}.red .kpi-v509-icon{--accent:#d84b58}.public-kpi-v509-card small{display:block;font-size:11px;color:#6f8197;font-weight:750}.public-kpi-v509-card strong{display:block;margin-top:3px;font-size:25px;line-height:1.15;color:#193653;letter-spacing:-.45px}.public-kpi-v509-card strong.money{font-size:19px}.public-kpi-v509-card em{display:block;font-style:normal;color:#8a99ab;font-size:10px;margin-top:5px}.kpi-v509-progress{height:7px;width:150px;background:#eef3f7;border-radius:99px;overflow:hidden;margin-top:9px}.kpi-v509-progress span{display:block;height:100%;border-radius:inherit;background:var(--accent)}
.public-filter-v509{margin-bottom:20px;padding:14px 15px;border-radius:16px;box-shadow:0 8px 24px rgba(20,55,90,.04)}.public-filter-v509-form{display:grid;grid-template-columns:2.1fr 1fr 1.1fr 1fr auto auto;gap:10px;align-items:end}.public-filter-v509-form label{display:block;font-size:10px;color:#70839a;font-weight:850;margin-bottom:5px}.public-filter-v509-form input,.public-filter-v509-form select{width:100%;font-size:12px;padding:10px 11px;border:1px solid #d5e0ea;border-radius:10px;background:#fff;color:#203c5a}.public-filter-search{position:relative}.public-filter-search input{padding-right:35px}.public-filter-search span{position:absolute;right:12px;bottom:8px;font-size:18px;color:#61809f}.filter-v509-count{grid-column:1/-1;font-size:10px;color:#8294a8;padding-top:1px}
.grid-2-v509{display:grid;grid-template-columns:1fr 1.18fr;gap:16px}.public-panel-v509{background:#fff;border:1px solid #e3ebf3;border-radius:18px;box-shadow:0 10px 28px rgba(24,58,92,.05);overflow:hidden}.public-section-v509{margin-bottom:16px}.panel-head-v509{padding:17px 18px 14px;display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.panel-kicker{display:block;font-size:10px;letter-spacing:.12em;font-weight:900;color:#2f80ed}.panel-head-v509 h2{font-size:19px;line-height:1.25;margin:4px 0 5px;color:#193654}.panel-head-v509 p{margin:0;color:#8092a5;font-size:11px;line-height:1.5}.panel-total-v509{font-weight:900;font-size:18px;color:#193654;white-space:nowrap}.panel-total-v509 small{font-size:10px;color:#8193a6;font-weight:700}.panel-note-v509{font-size:10px;padding:6px 9px;border-radius:999px;background:#eff6ff;color:#2f80ed;font-weight:900;white-space:nowrap}.status-content-v509{display:grid;grid-template-columns:215px 1fr;gap:12px;padding:5px 18px 20px;align-items:center}.donut-v509{width:195px;height:195px;border-radius:50%;background:var(--donut);display:grid;place-items:center;position:relative;margin:auto}.donut-v509::after{content:"";position:absolute;inset:21px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px #edf2f6}.donut-v509>div{position:relative;z-index:2;text-align:center}.donut-v509 strong{display:block;font-size:31px;line-height:1;color:#183654}.donut-v509 span{display:block;margin-top:5px;font-size:10px;color:#8092a6;font-weight:800}.status-list-v509{display:grid;gap:7px}.status-item-v509{display:grid;grid-template-columns:30px 1fr 110px 32px 42px;align-items:center;gap:8px;padding:8px 8px;border-radius:12px;text-decoration:none;color:#254563;border:1px solid transparent;transition:.18s ease}.status-item-v509:hover{background:#f7fbff;border-color:#dce8f5;transform:translateX(2px)}.status-item-v509.active{background:#eef6ff;border-color:#cfe2f9}.status-icon-v509{width:28px;height:28px;border-radius:9px;background:color-mix(in srgb,var(--item-color) 16%,#fff);color:var(--item-color);display:grid;place-items:center;font-weight:900}.status-name-v509{font-size:12px;font-weight:800}.status-bar-v509{height:7px;border-radius:99px;background:#edf2f6;overflow:hidden}.status-bar-v509 span{display:block;height:100%;border-radius:inherit}.status-item-v509 strong{font-size:14px;text-align:right}.status-item-v509 small{font-size:10px;color:#8193a6;text-align:right}
.map-panel-v509{position:relative}.map-wrap-v509{padding:0 14px}.public-map-v509{height:300px;border-radius:14px;overflow:hidden;border:1px solid #dae5ef}.map-overlay-v509{position:absolute;left:28px;top:83px;padding:7px 9px;background:rgba(255,255,255,.94);border:1px solid #dfe8f0;border-radius:9px;font-size:10px;color:#4f6984;font-weight:800;box-shadow:0 4px 14px rgba(24,58,92,.10)}.live-dot-v509{display:inline-block;width:7px;height:7px;border-radius:50%;background:#22b573;box-shadow:0 0 0 3px rgba(34,181,115,.13);margin-right:5px}.map-expand-v509{border:1px solid #cfdae7;background:#fff;border-radius:9px;padding:8px 10px;color:#2f6ea8;font-weight:800;font-size:10px;cursor:pointer}.map-panel-v509.map-expanded-v509{position:fixed;inset:82px 22px 22px;z-index:120;padding-bottom:18px;box-shadow:0 26px 70px rgba(5,28,52,.30)}.map-expanded-v509 .public-map-v509{height:calc(100% - 82px);min-height:420px}.district-strip-v509{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;padding:10px 14px 14px}.district-chip-v509{position:relative;text-decoration:none;background:#f7fafc;border:1px solid #e2eaf1;border-radius:10px;padding:8px 9px;min-width:0;overflow:hidden;transition:.18s ease}.district-chip-v509:hover{background:#eef6ff;border-color:#cfe2f9;transform:translateY(-1px)}.district-chip-v509.active{background:#edf6ff;border-color:#b8d5f8}.district-chip-v509 span{display:block;font-size:9px;color:#607790;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.district-chip-v509 strong{display:block;font-size:15px;color:#193654;margin-top:2px}.district-chip-v509 em{display:block;height:3px;border-radius:99px;background:#2f80ed;position:absolute;left:0;bottom:0;font-style:normal;opacity:.9}
.infra-board-v509{margin-bottom:16px}.infra-grid-v509{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:2px 16px 18px}.infra-card-v509{position:relative;text-decoration:none;padding:14px;border-radius:14px;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);border:1px solid #e3ebf3;min-height:155px;overflow:hidden;transition:.22s ease;opacity:0;transform:translateY(7px)}.infra-card-v509.is-visible{opacity:1;transform:none}.infra-card-v509:hover{transform:translateY(-4px);box-shadow:0 14px 28px rgba(25,65,100,.11);border-color:color-mix(in srgb,var(--infra-color) 35%,#dfe8f1)}.infra-card-v509.active{border-color:color-mix(in srgb,var(--infra-color) 55%,#dae6ef);box-shadow:0 0 0 3px color-mix(in srgb,var(--infra-color) 10%,#fff)}.infra-card-v509::before{content:"";position:absolute;right:-20px;top:-20px;width:78px;height:78px;border-radius:50%;background:color-mix(in srgb,var(--infra-color) 12%,#fff)}.infra-card-top-v509{display:flex;align-items:center;justify-content:space-between}.infra-icon-v509{width:42px;height:42px;border-radius:12px;background:color-mix(in srgb,var(--infra-color) 13%,#fff);color:var(--infra-color);display:grid;place-items:center;font-size:18px;font-weight:900}.infra-count-v509{font-size:27px;font-weight:900;color:#173655;letter-spacing:-.6px}.infra-card-v509 h3{font-size:13px;line-height:1.25;margin:12px 0 12px;color:#284966;min-height:33px}.infra-progress-v509{height:9px;background:#edf2f6;border-radius:99px;overflow:hidden}.infra-progress-v509 span{display:block;width:var(--infra-max);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--infra-color),color-mix(in srgb,var(--infra-color) 58%,#fff))}.infra-card-meta-v509{display:flex;justify-content:space-between;gap:10px;margin-top:10px}.infra-card-meta-v509 span{font-size:9px;color:#7b8ea3}.infra-card-meta-v509 b{font-size:9px;color:var(--infra-color)}
.bottom-grid-v509{margin-bottom:16px}.district-bars-v509{padding:2px 18px 17px;display:grid;gap:8px}.district-bar-row-v509{display:grid;grid-template-columns:145px 1fr 28px;gap:10px;align-items:center;text-decoration:none;color:#45617a;opacity:0;transform:translateY(5px);transition:.18s}.district-bar-row-v509.is-visible{opacity:1;transform:none}.district-bar-row-v509:hover span{color:#1f6bb0}.district-bar-row-v509 span{font-size:11px;font-weight:800}.district-bar-row-v509 div{height:9px;background:#edf2f6;border-radius:99px;overflow:hidden}.district-bar-row-v509 i{display:block;height:100%;border-radius:inherit}.district-bar-row-v509 b{text-align:right;font-size:13px;color:#193654}.recent-list-v509{padding:2px 12px 13px;display:grid;gap:6px}.recent-item-v509{text-decoration:none;display:grid;grid-template-columns:34px 1fr 100px;gap:9px;align-items:center;padding:10px;border-radius:12px;background:#fafcfe;border:1px solid #e8eef4;opacity:0;transform:translateY(5px);transition:.18s}.recent-item-v509.is-visible{opacity:1;transform:none}.recent-item-v509:hover{background:#f3f8fe;border-color:#d7e6f5}.recent-status-v509{width:30px;height:30px;border-radius:10px;background:color-mix(in srgb,var(--status-color) 12%,#fff);color:var(--status-color);display:grid;place-items:center;font-weight:900}.recent-info-v509 b{display:block;font-size:11px;color:#24435f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-info-v509 small{display:block;margin-top:2px;font-size:9px;color:#7c90a4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-metric-v509{text-align:right}.recent-metric-v509 b{display:block;font-size:13px;color:#193654}.recent-metric-v509 small{display:block;font-size:9px;color:#8395a8}.public-trust-v509{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(90deg,#eff6ff 0%,#f6fbff 52%,#eefbf6 100%);border:1px solid #d9e8f4;border-radius:16px;padding:15px 17px;margin-bottom:15px}.public-trust-v509>div{display:flex;gap:11px;align-items:flex-start}.trust-icon-v509{width:28px;height:28px;border-radius:50%;background:#2f80ed;color:#fff;display:grid;place-items:center;font-weight:900;flex:0 0 auto}.public-trust-v509 strong{font-size:11px;color:#2b4762}.public-trust-v509 p{margin:3px 0 0;font-size:10px;color:#71869d;line-height:1.5}.public-trust-v509 .btn{white-space:nowrap}.public-footer-note{text-align:center;font-size:10px;color:#8699aa;padding:3px 4px 0}
.public-footer-note.public-footer-align-left{text-align:left}.public-footer-note.public-footer-align-center{text-align:center}.public-footer-note.public-footer-align-right{text-align:right}
.dashboard-footer-note.dashboard-footer-align-left{text-align:left}.dashboard-footer-note.dashboard-footer-align-center{text-align:center}.dashboard-footer-note.dashboard-footer-align-right{text-align:right}.dashboard-footer-note.dashboard-footer-align-left span,.dashboard-footer-note.dashboard-footer-align-left em{display:block}.dashboard-footer-note.dashboard-footer-align-right span,.dashboard-footer-note.dashboard-footer-align-right em{display:block}

.public-marker-wrap-v509{background:transparent;border:0}.public-marker-v509{display:block;width:17px;height:17px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--marker-color);border:3px solid #fff;box-shadow:0 3px 11px rgba(13,42,72,.28)}.public-popup-v509{font-family:inherit;min-width:230px;color:#294761}.popup-accent{height:5px;border-radius:99px;margin-bottom:8px}.popup-title{font-size:13px;font-weight:900;line-height:1.25;color:#183653}.popup-opd{font-size:10px;color:#778da1;margin-top:2px;margin-bottom:8px}.popup-grid{display:grid;grid-template-columns:75px 1fr;gap:5px 7px;font-size:10px}.popup-grid span{color:#8a9aac}.popup-grid b{color:#2a4660}.popup-google{display:block;margin-top:10px;padding:7px 8px;background:#eef6ff;border-radius:8px;text-align:center;color:#1e6fb6;font-size:10px;font-weight:850;text-decoration:none}.popup-google:hover{background:#e2effe}
@media(max-width:1200px){.public-kpi-v509{grid-template-columns:repeat(2,1fr)}.public-filter-v509-form{grid-template-columns:1.6fr 1fr 1fr}.public-filter-v509-form .public-filter-search{grid-column:1/-1}.infra-grid-v509{grid-template-columns:repeat(2,1fr)}}
@media(max-width:960px){.public-v509-main{padding:18px 14px 28px}.public-v509-topbar{padding:0 15px}.public-nav a{font-size:11px}.hero-v509-content h1{font-size:31px}.hero-v509-year{position:static;margin-left:auto;align-self:flex-start}.public-hero-v509{min-height:290px;align-items:flex-start;flex-direction:column;gap:14px;padding:23px}.grid-2-v509{grid-template-columns:1fr}.status-content-v509{grid-template-columns:185px 1fr}.district-strip-v509{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.public-kpi-v509{grid-template-columns:1fr}.public-filter-v509-form{grid-template-columns:1fr}.public-filter-v509-form .public-filter-search{grid-column:auto}.infra-grid-v509{grid-template-columns:1fr}.status-content-v509{grid-template-columns:1fr}.donut-v509{width:175px;height:175px}.status-item-v509{grid-template-columns:29px 1fr 55px 28px}.status-bar-v509{display:none}.district-strip-v509{grid-template-columns:repeat(2,1fr)}.public-trust-v509{flex-direction:column;align-items:stretch}.public-trust-v509 .btn{width:100%;text-align:center}.public-hero-v509{min-height:330px}.hero-v509-content h1{font-size:27px}.hero-v509-content p{font-size:13px}.hero-v509-year{width:100%;margin:0}.map-panel-v509.map-expanded-v509{inset:12px;top:76px}.map-expanded-v509 .public-map-v509{height:calc(100% - 106px)}}

/* ===== v5.1.0 readability & monitoring visual refinement ===== */
/* Package detail / input sections: larger typography for location, work, procurement and value */
.package-wizard .form-section-card .card-heading h3{font-size:19px;line-height:1.25}
.package-wizard .form-section-card .card-heading p{font-size:11.5px;line-height:1.45}
.package-wizard .form-section-card .field label{font-size:13.5px;font-weight:800;color:#28445f}
.package-wizard .form-section-card .field input,
.package-wizard .form-section-card .field select,
.package-wizard .form-section-card .field textarea{font-size:14px;line-height:1.45;padding:12px 13px}
.package-wizard .form-section-card .field small{font-size:10.5px}
.package-wizard .auto-category-card span{font-size:11px}
.package-wizard .auto-category-card b{font-size:17px}
.package-wizard .auto-category-card small{font-size:10.5px}
.package-wizard .value-highlight span{font-size:12px}
.package-wizard .value-highlight b{font-size:15px}
.package-wizard .check-card b{font-size:13.5px}
.package-wizard .check-card small{font-size:10.5px}
.package-wizard .correlation-description .field label{font-size:12.5px}
.package-wizard .correlation-description textarea{font-size:13.5px!important}

/* Monitoring period: larger quarter controls and clearer active state */
.monitoring-main .section-heading h3{font-size:18px}
.monitoring-main .section-heading p{font-size:11.5px}
.quarter-picker{gap:16px}
.quarter-picker>.field{width:130px;flex-basis:130px}
.quarter-picker>.field label{font-size:12px;font-weight:800}
.quarter-picker>.field select{font-size:14px;padding:13px 14px}
.quarter-tabs{gap:10px}
.quarter-tab{min-height:84px;padding:13px 10px;border-radius:13px;background:linear-gradient(180deg,#fbfdff,#f4f8fc);border:1px solid #d7e3ef;display:flex;flex-direction:column;justify-content:center;transition:.18s ease;box-shadow:0 4px 12px rgba(31,78,121,.04)}
.quarter-tab:hover{transform:translateY(-2px);border-color:#9fc5eb;background:#f5faff;box-shadow:0 8px 18px rgba(47,128,237,.09)}
.quarter-tab span{font-size:13.5px;font-weight:900;color:#35536e}
.quarter-tab small{font-size:10.5px;font-weight:700;margin-top:5px;color:#7c91a6}
.quarter-tab.active{background:linear-gradient(145deg,#1f78d0,#2f80ed);border-color:#1f78d0;box-shadow:0 10px 22px rgba(47,128,237,.22);transform:translateY(-1px)}
.quarter-tab.active span,.quarter-tab.active small{color:#fff}

/* Quarterly progress matrix: stronger visual grouping per quarter */
.progress-matrix-wrap{border-radius:13px;box-shadow:0 8px 22px rgba(31,78,121,.06)}
.progress-matrix{font-variant-numeric:tabular-nums}
.progress-matrix th{font-size:12px;padding:12px 9px;color:#35546e;background:#eef5fb;border-bottom-color:#cfdeeb}
.progress-matrix thead tr:first-child th{font-size:13px;font-weight:900;color:#fff;letter-spacing:.02em}
.progress-matrix thead tr:first-child th:nth-child(2){background:#2f80ed}
.progress-matrix thead tr:first-child th:nth-child(3){background:#2da77a}
.progress-matrix thead tr:first-child th:nth-child(4){background:#e6a72b}
.progress-matrix thead tr:first-child th:nth-child(5){background:#d95b68}
.progress-matrix thead tr:nth-child(2) th{background:#f5f9fc}
.progress-matrix thead tr:nth-child(2) th:nth-child(1),
.progress-matrix thead tr:nth-child(2) th:nth-child(2),
.progress-matrix thead tr:nth-child(2) th:nth-child(3){box-shadow:inset 0 3px 0 #2f80ed}
.progress-matrix thead tr:nth-child(2) th:nth-child(4),
.progress-matrix thead tr:nth-child(2) th:nth-child(5),
.progress-matrix thead tr:nth-child(2) th:nth-child(6){box-shadow:inset 0 3px 0 #2da77a}
.progress-matrix thead tr:nth-child(2) th:nth-child(7),
.progress-matrix thead tr:nth-child(2) th:nth-child(8),
.progress-matrix thead tr:nth-child(2) th:nth-child(9){box-shadow:inset 0 3px 0 #e6a72b}
.progress-matrix thead tr:nth-child(2) th:nth-child(10),
.progress-matrix thead tr:nth-child(2) th:nth-child(11),
.progress-matrix thead tr:nth-child(2) th:nth-child(12){box-shadow:inset 0 3px 0 #d95b68}
.progress-matrix td{font-size:12.5px;padding:12px 8px;color:#3e5871;background:#fff}
.progress-matrix tbody tr:nth-child(1) td{background:#fbfdff}
.progress-matrix tbody tr:nth-child(2) td{background:#fafffc}
.progress-matrix td:first-child{font-size:14px;background:linear-gradient(90deg,#edf5ff,#fff);font-weight:900}
.progress-matrix td:first-child b{font-size:14px;color:#1d3f5e}
.progress-matrix td:first-child small{font-size:10px}
.progress-matrix tbody tr:hover td{background:#f7fbff}
.progress-matrix td:nth-child(2),.progress-matrix td:nth-child(3){background:#f3f8ff}
.progress-matrix td:nth-child(4){background:#eef8ff;font-weight:850}
.progress-matrix td:nth-child(5),.progress-matrix td:nth-child(6){background:#f3fbf7}
.progress-matrix td:nth-child(7),.progress-matrix td:nth-child(8){background:#fffaf0}
.progress-matrix td:nth-child(9){background:#fff6e6;font-weight:850}
.progress-matrix td:nth-child(10),.progress-matrix td:nth-child(11){background:#fff5f6}
.progress-matrix td:nth-child(12){background:#ffeff1;font-weight:850}
.progress-matrix .dev-neg{background:#ffe9ed!important;color:#c52f42;font-size:13px}

/* Current input cards */
.current-input-grid .form-section-card .card-heading h3{font-size:18px}
.current-input-grid .form-section-card .card-heading p{font-size:11px}
.current-input-grid .field label{font-size:12.5px}
.current-input-grid .field input{font-size:14px}

/* Package summary on the right: larger, clearer typography */
.monitoring-side .section-heading h3{font-size:18px}
.monitoring-side .section-heading p{font-size:11px}
.monitoring-side .summary-list>div{padding:11px 0}
.monitoring-side .summary-list span{font-size:10.5px;color:#72869c}
.monitoring-side .summary-list b{font-size:12.5px;line-height:1.35;color:#1b3d5b;margin-top:3px}
.monitoring-side .quarter-photo-stack span{font-size:10px}

@media(max-width:900px){
  .package-wizard .form-section-card .field label{font-size:13px}
  .package-wizard .form-section-card .field input,
  .package-wizard .form-section-card .field select,
  .package-wizard .form-section-card .field textarea{font-size:14px}
  .quarter-picker{gap:10px}
  .quarter-picker>.field{width:100%;flex-basis:auto}
  .quarter-tabs{gap:8px}
  .quarter-tab{min-height:76px}
  .quarter-tab span{font-size:12.5px}
  .quarter-tab small{font-size:10px}
}
@media(max-width:600px){
  .quarter-tabs{grid-template-columns:1fr 1fr}
  .quarter-tab{min-height:72px}
  .progress-matrix th{font-size:11px}
  .progress-matrix td{font-size:11.5px}
  .monitoring-side .summary-list b{font-size:12px}
}

/* ===== v5.1.1 EXTRA READABILITY PASS =====
   Stronger typography for package input + monitoring pages.
   Scoped to internal application pages so the public dashboard keeps its current visual balance.
*/
.package-wizard,
.monitoring-layout{font-size:15.5px}

.package-wizard .form-section-card,
.monitoring-main .card,
.monitoring-side .card{padding:22px}

.package-wizard .form-section-card .card-heading h3,
.monitoring-main .section-heading h3,
.monitoring-side .section-heading h3{font-size:21px!important;line-height:1.3}

.package-wizard .form-section-card .card-heading p,
.monitoring-main .section-heading p,
.monitoring-side .section-heading p{font-size:13px!important;line-height:1.55}

.package-wizard .field{gap:7px}
.package-wizard .field label,
.current-input-grid .field label,
.monitoring-main .field label{font-size:15px!important;font-weight:800;line-height:1.4}

.package-wizard .field input,
.package-wizard .field select,
.package-wizard .field textarea,
.current-input-grid .field input,
.monitoring-main .field input,
.monitoring-main .field select,
.monitoring-main .field textarea{font-size:16px!important;line-height:1.5!important;padding:13px 14px!important;min-height:48px}

.package-wizard .field textarea,
.monitoring-main .field textarea{min-height:112px}
.package-wizard .field small,
.current-input-grid .field small,
.monitoring-main .field small{font-size:12px!important;line-height:1.45}

.package-wizard .check,
.package-wizard .correlation-head,
.package-wizard .check-card b{font-size:14.5px!important}
.package-wizard .correlation-description .field label{font-size:14px!important}
.package-wizard .correlation-description textarea{font-size:15.5px!important}

/* Wizard navigation */
.package-wizard .wizard-step{min-height:74px!important;padding:13px 14px!important}
.package-wizard .wizard-step b{font-size:14px!important}
.package-wizard .wizard-step small{font-size:11.5px!important}
.package-wizard .wizard-step>span{width:34px!important;height:34px!important;font-size:14px!important}

/* Buttons / actions on these pages */
.package-wizard .btn,
.monitoring-layout .btn{font-size:13px!important;padding:11px 15px!important}

/* Monitoring period */
.quarter-picker>.field label{font-size:14px!important}
.quarter-picker>.field select{font-size:16px!important;min-height:52px;padding:14px 15px!important}
.quarter-tabs{gap:12px!important}
.quarter-tab{min-height:104px!important;padding:15px 12px!important;border-radius:14px!important}
.quarter-tab span{font-size:16px!important;font-weight:900!important}
.quarter-tab small{font-size:12px!important;margin-top:6px!important}

/* Progress matrix */
.progress-matrix th{font-size:14px!important;padding:14px 10px!important}
.progress-matrix thead tr:first-child th{font-size:15px!important}
.progress-matrix td{font-size:14.5px!important;padding:14px 10px!important}
.progress-matrix td:first-child,
.progress-matrix td:first-child b{font-size:16px!important}
.progress-matrix td:first-child small{font-size:12px!important}
.progress-matrix .dev-neg{font-size:15px!important}

/* Right-side summary */
.monitoring-side .summary-list>div{padding:13px 0!important}
.monitoring-side .summary-list span{font-size:12.5px!important}
.monitoring-side .summary-list b{font-size:14.5px!important;line-height:1.45!important}
.monitoring-side .quarter-photo-stack span{font-size:12px!important}

/* Package identity strip */
.package-identity-strip .identity-kicker{font-size:12px!important}
.package-identity-strip h2{font-size:23px!important;line-height:1.25!important}
.package-identity-strip .identity-meta{font-size:13px!important}

@media(max-width:900px){
  .package-wizard,
  .monitoring-layout{font-size:15px}
  .package-wizard .form-section-card .card-heading h3,
  .monitoring-main .section-heading h3,
  .monitoring-side .section-heading h3{font-size:20px!important}
  .package-wizard .field label,
  .current-input-grid .field label,
  .monitoring-main .field label{font-size:14px!important}
  .package-wizard .field input,
  .package-wizard .field select,
  .package-wizard .field textarea,
  .current-input-grid .field input,
  .monitoring-main .field input,
  .monitoring-main .field select,
  .monitoring-main .field textarea{font-size:15px!important}
  .quarter-tab{min-height:94px!important}
}

/* ===== v5.1.2 MONITORING REDESIGN ===== */
.monitoring-page-title h1{font-size:30px!important;letter-spacing:-.4px}
.monitoring-page-title p{font-size:13px!important}
.monitoring-hero-card{display:grid;grid-template-columns:minmax(0,1fr) auto 110px;gap:20px;align-items:center;margin-bottom:18px;padding:22px;border-radius:20px;background:linear-gradient(135deg,#123d66 0%,#176fd0 62%,#2e88d9 100%);color:#fff;box-shadow:0 18px 42px rgba(24,77,132,.2)}
.monitoring-hero-main{min-width:0}.hero-kicker{font-size:10px;letter-spacing:.16em;font-weight:900;opacity:.74}.monitoring-hero-card h2{margin:5px 0 10px;font-size:25px;line-height:1.25;color:#fff}.hero-meta{display:flex;gap:9px;align-items:center;flex-wrap:wrap;font-size:12px;color:#d9e9fb}.monitoring-hero-status{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.monitoring-hero-status strong{font-size:14px;color:#fff}.monitoring-hero-photo{width:110px;height:78px;border-radius:13px;overflow:hidden;background:rgba(255,255,255,.12);display:grid;place-items:center;border:1px solid rgba(255,255,255,.2);font-size:10px;color:#dcecff}.monitoring-hero-photo img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}
.monitoring-main-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,.7fr);gap:18px;align-items:start}.monitoring-main-column,.monitoring-side-column{min-width:0;display:grid;gap:18px}.monitor-panel{background:#fff;border:1px solid #dbe6f0;border-radius:18px;padding:22px;box-shadow:0 10px 28px rgba(21,59,98,.07)}.panel-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}.panel-kicker{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#2376c9;font-weight:900}.panel-heading h3{margin:3px 0 4px;font-size:22px!important;line-height:1.25;color:#193b5a}.panel-heading p{margin:0;font-size:12.5px;color:#71859a;line-height:1.55}.period-year-field{display:flex;align-items:center;gap:8px}.period-year-field label{font-size:12px;font-weight:800;color:#5f7590}.period-year-field select{min-width:110px;height:44px;border:1px solid #cddbea;border-radius:11px;background:#f8fbfe;padding:0 12px;font-size:15px;font-weight:800;color:#20415f}
.quarter-period-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.period-tile{position:relative;display:block;overflow:hidden;min-height:124px;padding:15px;border:1px solid #dfe8f1;border-radius:16px;background:#f8fbff;color:#244460;text-decoration:none;transition:.2s ease;box-shadow:0 4px 12px rgba(32,68,105,.04)}.period-tile:hover{transform:translateY(-3px);box-shadow:0 12px 24px rgba(32,68,105,.12)}.period-tile.active{color:#fff;border-color:transparent;box-shadow:0 14px 28px rgba(32,91,158,.25)}.period-tile.blue.active{background:linear-gradient(145deg,#1a73d0,#3e94ef)}.period-tile.green.active{background:linear-gradient(145deg,#168b6d,#35b98b)}.period-tile.amber.active{background:linear-gradient(145deg,#d98c10,#f1b83e)}.period-tile.rose.active{background:linear-gradient(145deg,#d64f63,#ef7683)}.period-tile-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.period-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#e7f1fc;color:#1f75ca;font-size:12px;font-weight:900}.green .period-icon{background:#e3f6ef;color:#168b6d}.amber .period-icon{background:#fff2d7;color:#c7830e}.rose .period-icon{background:#ffe8eb;color:#d64f63}.active .period-icon{background:rgba(255,255,255,.18);color:#fff}.period-state{font-size:9px;font-weight:900;letter-spacing:.08em;color:#7a8ea5}.active .period-state{color:rgba(255,255,255,.82)}.period-tile strong{display:block;font-size:18px;line-height:1.2}.period-tile small{display:block;margin-top:4px;font-size:11px}.period-progress{height:6px;border-radius:999px;background:rgba(45,108,170,.12);overflow:hidden;margin-top:16px}.period-progress span{display:block;height:100%;border-radius:999px;background:#2f80ed}.green .period-progress span{background:#2da77a}.amber .period-progress span{background:#e2a42a}.rose .period-progress span{background:#dd6470}.active .period-progress{background:rgba(255,255,255,.24)}.active .period-progress span{background:#fff}.period-tile em{display:block;margin-top:6px;font-size:10px;font-style:normal;font-weight:800}.period-empty{margin-top:15px;padding-top:8px;border-top:1px dashed #dbe6f0;font-size:10px;color:#8194a8}.active .period-empty{color:rgba(255,255,255,.82);border-top-color:rgba(255,255,255,.25)}
.live-panel{background:linear-gradient(180deg,#ffffff,#f9fcff)}.live-pill{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:999px;background:#edf9f2;color:#21865d;font-size:10px;font-weight:900}.live-pill i{width:7px;height:7px;border-radius:50%;background:#23ad72;box-shadow:0 0 0 4px rgba(35,173,114,.12)}.live-metrics{display:grid;grid-template-columns:1.15fr 1.15fr .8fr .8fr;gap:12px}.live-metric,.deviation-box{border:1px solid #dfe8f1;border-radius:16px;padding:15px;min-height:110px}.live-metric{display:flex;align-items:center;gap:12px;background:#fff}.live-metric.physical{border-top:4px solid #2f80ed}.live-metric.financial{border-top:4px solid #2da77a}.metric-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:15px;font-weight:900;background:#edf5ff;color:#2f80ed;flex:0 0 auto}.financial .metric-icon{background:#eaf8f3;color:#2da77a}.metric-copy{display:flex;flex-direction:column;min-width:0}.metric-copy span{font-size:11px;color:#68809a;font-weight:800}.metric-copy b{font-size:25px;line-height:1.15;color:#193b5a;margin-top:4px}.metric-copy small{font-size:10px;color:#8798aa;margin-top:3px}.metric-ring{--value:0;width:55px;height:55px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#2f80ed calc(var(--value)*1%),#e8f0f7 0);position:relative}.financial .metric-ring{background:conic-gradient(#2da77a calc(var(--value)*1%),#e8f0f7 0)}.metric-ring:after{content:"";position:absolute;inset:7px;background:#fff;border-radius:50%}.metric-ring span{position:relative;z-index:1;font-size:10px;font-weight:900;color:#274b69}.deviation-box{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;background:#f8fbfe}.deviation-box span{font-size:10px;font-weight:800;color:#6f8296}.deviation-box strong{font-size:23px;color:#2f80ed}.deviation-box small{font-size:9.5px;color:#7890a7}.deviation-box.negative{background:#fff5f6;border-color:#f1c8ce}.deviation-box.negative strong{color:#d64f63}.deviation-box.positive{background:#f2fbf6;border-color:#ccebdd}.deviation-box.positive strong{color:#21865d}
.quarter-history-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.quarter-history-card{border:1px solid #dbe6f0;border-radius:16px;padding:15px;background:#fbfdff;position:relative;overflow:hidden}.quarter-history-card.blue{border-top:4px solid #2f80ed}.quarter-history-card.green{border-top:4px solid #2da77a}.quarter-history-card.amber{border-top:4px solid #e2a42a}.quarter-history-card.rose{border-top:4px solid #dd6470}.quarter-history-card.selected{box-shadow:0 10px 24px rgba(31,85,139,.14);outline:2px solid rgba(47,128,237,.12)}.qhc-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:12px}.qhc-kicker{display:block;font-size:8px;letter-spacing:.12em;color:#7d92a7;font-weight:900}.qhc-head strong{display:block;font-size:19px;color:#1d405e}.qhc-month{font-size:9px;color:#8899aa;text-align:right}.qhc-metric{display:flex;justify-content:space-between;align-items:end;gap:8px}.qhc-metric span{font-size:10px;color:#71869b;font-weight:800}.qhc-metric b{font-size:17px;color:#1d405e}.qhc-metric small{font-size:9px;color:#94a4b4}.qhc-bar{height:6px;border-radius:999px;background:#e9f0f6;overflow:hidden;margin:6px 0 11px}.qhc-bar span{display:block;height:100%;border-radius:999px;background:#2f80ed}.green .qhc-bar span{background:#2da77a}.amber .qhc-bar span{background:#e2a42a}.rose .qhc-bar span{background:#dd6470}.qhc-bar.finance span{opacity:.62}.qhc-dev-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.qhc-dev{font-size:9px;font-weight:900;padding:5px 7px;border-radius:999px}.qhc-dev.pos{background:#eaf8f1;color:#21865d}.qhc-dev.neg{background:#ffeaed;color:#cf4557}.qhc-empty{min-height:135px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#8093a7}.qhc-empty span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#eef4f8;font-size:16px;margin-bottom:7px}.qhc-empty b{font-size:11px;color:#5f7890}.qhc-empty small{font-size:9px;margin-top:3px}
.entry-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.entry-card{border-radius:16px;padding:17px;border:1px solid #dfe8f1;background:#fbfdff}.physical-card{border-top:4px solid #2f80ed}.finance-card{border-top:4px solid #2da77a}.entry-card-head{display:flex;gap:11px;align-items:center;margin-bottom:14px}.entry-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#edf5ff;color:#2f80ed;font-weight:900}.finance-card .entry-icon{background:#eaf8f3;color:#2da77a}.entry-card h4{margin:0;font-size:17px;color:#1c405e}.entry-card-head p{margin:3px 0 0;font-size:10px;color:#7d91a5}.entry-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.entry-card .field label{font-size:12px!important}.entry-card .field input{font-size:16px!important;min-height:48px!important;padding:12px 13px!important}.entry-footer{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;border-top:1px dashed #dbe6ef;font-size:10px;color:#7690a4}.entry-footer strong{font-size:13px;color:#2f80ed}.entry-footer strong.negative{color:#d64f63}.entry-footer strong.positive{color:#21865d}
.note-card{margin-top:14px;padding:17px;border-radius:16px;border:1px solid #dfe8f1;background:#f8fbff}.note-card-head{display:flex;gap:11px;align-items:center;margin-bottom:9px}.note-card-head>span{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#e9f3ff;color:#2f80ed}.note-card h4{margin:0;font-size:15px;color:#254763}.note-card p{margin:2px 0 0;font-size:10px;color:#788ea3}.note-card textarea{width:100%;min-height:108px!important;font-size:14px!important;background:#fff}
.action-cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(190px,.72fr);gap:12px;margin-top:14px}.action-card{padding:15px;border-radius:16px;border:1px solid #dfe8f1;background:#fff}.action-card.problem{border-top:4px solid #dd6470;background:#fffafa}.action-card.effort{border-top:4px solid #2f80ed;background:#fbfdff}.action-card.follow{border-top:4px solid #2da77a;background:#fbfffd}.action-card.date-card{border-top:4px solid #e2a42a;background:#fffdf7}.action-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#f0f4f8;color:#5f7991;font-weight:900;margin-bottom:8px}.problem .action-icon{background:#ffe9ed;color:#d64f63}.effort .action-icon{background:#eaf3ff;color:#2f80ed}.follow .action-icon{background:#e8f7f0;color:#2da77a}.date-card .action-icon{background:#fff1d7;color:#d18d17}.action-card label{display:block;font-size:12px;font-weight:900;color:#254763;margin-bottom:7px}.action-card textarea,.action-card input{width:100%;font-size:13px!important}.action-card textarea{min-height:126px!important}.action-card small{display:block;margin-top:7px;font-size:9px;line-height:1.45;color:#7b91a4}
.upload-dropzone{display:grid;grid-template-columns:auto 1fr auto auto;gap:14px;align-items:center;margin-top:14px;padding:16px;border:1.5px dashed #a9bfd4;border-radius:17px;background:linear-gradient(90deg,#f8fbff,#f4f9fd);transition:.2s ease}.upload-dropzone.dragging{border-color:#2f80ed;background:#eef6ff;box-shadow:0 0 0 4px rgba(47,128,237,.08)}.upload-visual{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;background:#eaf3ff;font-size:22px}.upload-copy h4{margin:0;font-size:15px;color:#214561}.upload-copy p{margin:3px 0;font-size:10px;color:#748a9f}.upload-copy small{font-size:9px;color:#91a1b1}.upload-button{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:10px;background:#1f75cf;color:#fff;font-size:11px;font-weight:900;cursor:pointer;white-space:nowrap}.upload-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.upload-preview{display:flex;align-items:center;gap:7px;min-width:0}.upload-preview:empty{display:none}.upload-preview img{width:72px;height:54px;object-fit:cover;border-radius:9px;border:1px solid #d9e4ee}.upload-preview span{font-size:9px;color:#6d8196;max-width:110px}
.form-submit-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:16px;padding-top:16px;border-top:1px solid #e5edf4}.form-submit-bar>div:first-child{display:flex;flex-direction:column}.form-submit-bar strong{font-size:12px;color:#214562}.form-submit-bar span{font-size:10px;color:#8a9bab;margin-top:3px}.btn-submit-big{min-width:165px}
.summary-highlight{padding:16px;border-radius:14px;background:linear-gradient(135deg,#edf6ff,#f5fbff);border:1px solid #d7e8f6;margin-bottom:13px}.summary-highlight span{display:block;font-size:10px;color:#71869b;font-weight:800}.summary-highlight strong{display:block;margin-top:5px;font-size:23px;color:#1c4464}.summary-grid{display:grid;gap:0}.summary-grid>div{padding:11px 0;border-bottom:1px solid #edf2f6}.summary-grid>div:last-child{border-bottom:0}.summary-grid span{display:block;font-size:10px;color:#74899d}.summary-grid b{display:block;margin-top:4px;font-size:13px;line-height:1.45;color:#1c415f}.modern-photo-stack{display:grid;gap:10px}.modern-photo-item{padding:10px;border:1px solid #dfe8f1;border-radius:13px;background:#fbfdff}.modern-photo-item.blue{border-left:4px solid #2f80ed}.modern-photo-item.green{border-left:4px solid #2da77a}.modern-photo-item.amber{border-left:4px solid #e2a42a}.modern-photo-item.rose{border-left:4px solid #dd6470}.photo-item-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:7px}.photo-item-head strong{font-size:11px;color:#254763}.photo-item-head span{font-size:9px;color:#8ba0b2}.modern-photo-item img,.modern-photo-empty{width:100%;height:92px;object-fit:cover;border-radius:10px;background:#f1f5f9}.modern-photo-item img{cursor:zoom-in}.modern-photo-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#94a4b2}.modern-photo-empty span{font-size:20px}.modern-photo-empty small{font-size:9px}.tip-panel{display:flex;gap:12px;align-items:flex-start;background:linear-gradient(135deg,#fffaf0,#fffef9);border-color:#f2e2be}.tip-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#fff0cb;font-size:18px;flex:0 0 auto}.tip-panel h4{margin:0;font-size:14px;color:#5e491a}.tip-panel p{margin:4px 0 0;font-size:10px;line-height:1.6;color:#87734b}
@media(max-width:1180px){.monitoring-main-grid{grid-template-columns:1fr}.monitoring-side-column{grid-template-columns:1fr 1fr}.tip-panel{grid-column:1/-1}.live-metrics{grid-template-columns:1fr 1fr}.quarter-history-grid{grid-template-columns:1fr 1fr}.action-cards-grid{grid-template-columns:1fr 1fr}.summary-panel,.package-photo-panel{min-width:0}}
@media(max-width:820px){.monitoring-hero-card{grid-template-columns:1fr auto}.monitoring-hero-photo{display:none}.quarter-period-grid{grid-template-columns:1fr 1fr}.entry-card-grid{grid-template-columns:1fr}.monitoring-side-column{grid-template-columns:1fr}.upload-dropzone{grid-template-columns:auto 1fr}.upload-button{grid-column:2;justify-self:start}.upload-preview{grid-column:2}.form-submit-bar{align-items:flex-start;flex-direction:column}.form-submit-bar .actions{width:100%;display:flex}.btn-submit-big{flex:1}.period-year-field{margin-top:4px}.panel-heading{flex-direction:column}.period-panel .panel-heading{flex-direction:row}}
@media(max-width:600px){.monitoring-page-title h1{font-size:24px!important}.monitoring-hero-card{padding:18px}.monitoring-hero-card h2{font-size:20px}.monitoring-main-grid{gap:12px}.monitor-panel{padding:16px;border-radius:15px}.quarter-period-grid,.quarter-history-grid,.action-cards-grid{grid-template-columns:1fr}.live-metrics{grid-template-columns:1fr}.entry-fields{grid-template-columns:1fr}.upload-dropzone{grid-template-columns:auto 1fr}.upload-copy h4{font-size:13px}.form-submit-bar .actions{flex-direction:column}.form-submit-bar .btn{width:100%}.period-panel .panel-heading{flex-direction:column}.period-year-field{width:100%;justify-content:space-between}.period-year-field select{flex:1}.monitoring-hero-status{align-items:flex-start}.hero-meta{font-size:10px}}

/* ===== v5.1.3 DATA PEKERJAAN VISUAL REDESIGN ===== */
.package-page-title{margin-bottom:18px}
.package-page-title h1{font-size:28px!important}
.package-page-title p{font-size:13.5px!important}
.package-page-title .btn{font-size:13px!important;padding:11px 15px!important}

.package-summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 17px}
.package-summary-card{position:relative;display:flex;align-items:center;gap:12px;min-height:94px;padding:14px 16px;background:#fff;border:1px solid #dfe8f1;border-radius:16px;box-shadow:0 8px 22px rgba(24,63,99,.05);overflow:hidden}
.package-summary-card::after{content:"";position:absolute;right:-25px;bottom:-35px;width:95px;height:95px;border-radius:50%;background:var(--soft,#eaf3ff);opacity:.9}
.package-summary-card.blue{--soft:#e4f0ff}.package-summary-card.green{--soft:#e4f7ee}.package-summary-card.amber{--soft:#fff1d4}.package-summary-card.violet{--soft:#eee8ff}
.package-summary-icon{position:relative;z-index:1;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-size:17px;font-weight:900;background:var(--soft);color:var(--accent,#2f80ed);flex:0 0 auto}
.package-summary-card.blue .package-summary-icon{--accent:#2f80ed}.package-summary-card.green .package-summary-icon{--accent:#1f9b6d}.package-summary-card.amber .package-summary-icon{--accent:#d7931a}.package-summary-card.violet .package-summary-icon{--accent:#7854c8}
.package-summary-card small{position:relative;z-index:1;display:block;font-size:11px;color:#72869b;font-weight:800}.package-summary-card strong{position:relative;z-index:1;display:block;margin-top:3px;font-size:23px;line-height:1.15;color:#1b3b59;letter-spacing:-.4px}.package-summary-card em{position:relative;z-index:1;display:block;margin-top:3px;font-style:normal;font-size:10px;color:#8a9aab}

.package-search-card{padding:15px 16px;margin-bottom:15px}.package-search-card .big-search{min-height:48px}.package-search-card .big-search input{font-size:14px!important}.package-search-card .big-search span{font-size:20px!important}.package-search-card .btn{font-size:13px!important;padding:11px 15px!important}
.package-filter-card{padding:17px 18px}.package-filter-card .field label{font-size:12px!important}.package-filter-card .field select{font-size:13.5px!important;min-height:45px;padding:11px 12px!important}.package-filter-card .filter-submit{font-size:13px!important;min-height:45px}

.package-result-toolbar{align-items:center;margin-top:17px;margin-bottom:11px}.package-result-toolbar>div:first-child{font-size:13px}.package-result-toolbar .small{font-size:11px!important}.package-view-tools{display:flex;align-items:center;gap:8px}.view-switch{display:flex;gap:4px;padding:3px;border-radius:12px;background:#eef3f8;border:1px solid #d7e3ed}.view-btn{appearance:none;border:0;background:transparent;color:#6b7e93;padding:8px 11px;border-radius:9px;font-size:12px;font-weight:850;cursor:pointer;transition:.16s ease}.view-btn:hover{color:#1d4e78;background:#fff}.view-btn.active{background:#fff;color:#1769d3;box-shadow:0 2px 8px rgba(31,74,113,.10)}
.package-view{display:none}.package-view.active{display:block}
.package-list-card{padding:14px}.enhanced-work-table{min-width:1400px}.enhanced-work-table th{font-size:10.5px!important;padding:13px 12px!important;background:linear-gradient(180deg,#f7fbff,#eef5fb);color:#54708b}.enhanced-work-table td{font-size:12px!important;padding:13px 12px!important;vertical-align:middle}.enhanced-work-table tbody tr{transition:.15s ease}.enhanced-work-table tbody tr:hover{background:#fbfdff;box-shadow:inset 4px 0 0 #2f80ed}.row-number{display:inline-grid;place-items:center;min-width:28px;height:28px;border-radius:9px;background:#eef5fc;color:#4c6d88;font-size:11px;font-weight:900}
.enhanced-work-link{display:block;font-size:13.5px!important;line-height:1.35;font-weight:900!important;color:#1c4f7c!important}.package-subline{margin-top:4px;font-size:11px!important}.package-subline-2{margin-top:2px;font-size:10px!important}.opd-name{font-size:12px;font-weight:750;color:#385a76;line-height:1.4}.enhanced-status-badge{font-size:10.5px!important;padding:6px 9px!important;white-space:nowrap}.infra-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:10px;font-size:10.5px;font-weight:850;line-height:1.15;border:1px solid transparent}.infra-jalan{background:#e9f3ff;color:#216db5;border-color:#cfe4fb}.infra-gedung-bangunan{background:#f2ebff;color:#7250b6;border-color:#dfd2ff}.infra-jembatan{background:#fff0e6;color:#bd6417;border-color:#f7d7bc}.infra-irigasi{background:#e7f8f4;color:#15816a;border-color:#c9ebe2}.infra-drainase{background:#eef0ff;color:#5a62c0;border-color:#d9dbfb}.infra-air-minum-dan-sanitasi,.infra-air-minum-sanitasi{background:#e7f8ff;color:#16769d;border-color:#c9ebf6}.infra-jalan-usaha-tani{background:#f5f3df;color:#7d7422;border-color:#e9e5bd}.infra-lainnya{background:#f0f3f6;color:#5e7183;border-color:#dde5ec}
.money-value{display:block;font-size:13px!important;color:#183d5d}.metric-label{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:5px}.metric-label b{font-size:13px;color:#1a4f7c}.metric-label span{font-size:10px;color:#8394a6}.enhanced-mini-progress{height:9px!important;background:#e8eef5}.enhanced-mini-progress span{background:linear-gradient(90deg,#3e93eb,#1769d3)!important}.financial-line{margin-top:6px!important;font-size:10.5px!important}.location-main{font-size:12px;font-weight:800;color:#2d536f}.update-date{display:block;font-size:11.5px;font-weight:800;color:#365a77}.update-time{display:block;margin-top:2px;font-size:10px;color:#8a9bac}.enhanced-actions{gap:5px!important}.enhanced-actions .btn{font-size:10.5px!important;padding:7px 9px!important}
.package-pagination{padding-top:14px}.package-pagination .small{font-size:11px}

.package-cards-view{padding-top:2px}.package-cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.package-project-card{position:relative;background:#fff;border:1px solid #dce7f0;border-radius:18px;padding:17px;box-shadow:0 9px 24px rgba(20,58,93,.06);overflow:hidden;transition:.2s ease}.package-project-card::before{content:"";position:absolute;left:0;top:0;width:100%;height:5px;background:linear-gradient(90deg,#2f80ed,#6eb5f7)}.package-project-card:hover{transform:translateY(-4px);box-shadow:0 16px 32px rgba(20,58,93,.12);border-color:#c9dced}.project-card-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:3px}.project-card-title{display:block;margin-top:13px;font-size:17px;line-height:1.35;font-weight:900;color:#1a4566}.project-card-title:hover{color:#1769d3}.project-card-opd{margin-top:6px;font-size:11.5px;color:#71869b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-card-value{margin-top:15px;padding:11px 12px;border-radius:12px;background:#f5f9fc;border:1px solid #e3ecf3}.project-card-value span{display:block;font-size:10.5px;color:#7b8da0}.project-card-value strong{display:block;margin-top:3px;font-size:18px;color:#1a3d5b}.project-card-metrics{display:grid;gap:11px;margin-top:14px}.project-metric-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px}.project-metric-head span{font-size:11px;color:#73879a}.project-metric-head b{font-size:12px;color:#315873}.project-bar{height:9px;border-radius:999px;overflow:hidden;background:#e8eef4}.project-bar span{display:block;height:100%;border-radius:inherit}.project-bar.blue span{background:linear-gradient(90deg,#4b9af0,#1769d3)}.project-bar.green span{background:linear-gradient(90deg,#50c391,#15805d)}.project-card-meta{display:flex;justify-content:space-between;gap:8px;margin-top:14px;padding-top:11px;border-top:1px dashed #dfe8f0;font-size:10px;color:#7a8ea1}.project-card-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.project-card-actions .btn{font-size:11px!important;padding:8px 10px!important}.project-card-actions .delete-form{display:inline}.empty-state-card{grid-column:1/-1;min-height:220px;display:grid;place-items:center;align-content:center;gap:6px;background:#fff;border:1px dashed #cbd9e7;border-radius:18px;color:#768ba0}.empty-state-icon{width:52px;height:52px;border-radius:15px;background:#eef5fc;color:#2f80ed;display:grid;place-items:center;font-size:24px;font-weight:900;margin-bottom:5px}.empty-state-card strong{font-size:15px;color:#365a77}.empty-state-card span{font-size:11px}

@media(max-width:1200px){.package-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.package-cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.package-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.package-cards-grid{grid-template-columns:1fr}.package-result-toolbar{align-items:flex-start;flex-direction:column}.package-view-tools{width:100%;justify-content:space-between}.package-filter-card .filter-grid{grid-template-columns:1fr 1fr}.package-search-card .package-search-form{grid-template-columns:1fr}.package-search-card .package-search-form .btn{width:100%}}
@media(max-width:600px){.package-summary-strip{grid-template-columns:1fr}.package-filter-card .filter-grid{grid-template-columns:1fr}.package-page-title{align-items:flex-start;flex-direction:column}.view-btn span{display:none}.view-btn{min-width:44px}.package-project-card{padding:15px}.project-card-title{font-size:15.5px}.project-card-value strong{font-size:16px}}

/* ===== v5.1.4 DATA PEKERJAAN REDESIGN ===== */
.data-page{--data-navy:#113452;--data-muted:#6c8298;--data-line:#dbe6f0;--data-soft:#f5f9fd;padding-bottom:30px}
.data-page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:18px}
.data-page-head h1{margin:3px 0 5px;font-size:30px;line-height:1.12;letter-spacing:-.7px;color:var(--data-navy);font-weight:900}
.data-page-head p{margin:0;color:var(--data-muted);font-size:13px;max-width:760px}.data-eyebrow{font-size:10px;font-weight:900;letter-spacing:.16em;color:#2f80ed;margin-top:10px}.data-page-actions{display:flex;gap:9px;flex-wrap:wrap}.data-page-actions .btn{min-height:45px;font-size:13px;padding:0 15px;border-radius:11px}.data-add-btn{box-shadow:0 8px 18px rgba(23,105,211,.2)}
.data-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.data-kpi{position:relative;display:flex;align-items:center;gap:12px;min-height:102px;padding:15px 16px;background:#fff;border:1px solid var(--data-line);border-radius:16px;overflow:hidden;box-shadow:0 8px 22px rgba(21,58,92,.055)}
.data-kpi:after{content:"";position:absolute;width:94px;height:94px;border-radius:50%;right:-34px;bottom:-38px;background:var(--kpi-soft);opacity:.9}.data-kpi-icon{position:relative;z-index:1;width:44px;height:44px;border-radius:13px;display:grid;place-items:center;font-size:18px;font-weight:900;background:var(--kpi-soft);color:var(--kpi-color);flex:0 0 auto}.data-kpi span,.data-kpi strong,.data-kpi small{position:relative;z-index:1;display:block}.data-kpi span{font-size:11px;font-weight:800;color:#6f8498}.data-kpi strong{font-size:25px;line-height:1.1;color:var(--data-navy);margin:3px 0}.data-kpi small{font-size:10px;color:#8aa0b3}.data-kpi.blue{--kpi-soft:#eaf3ff;--kpi-color:#2f80ed}.data-kpi.green{--kpi-soft:#e9f8f1;--kpi-color:#17976a}.data-kpi.violet{--kpi-soft:#f0ebff;--kpi-color:#7454c6}.data-kpi.amber{--kpi-soft:#fff1d9;--kpi-color:#d89119}
.data-search-card{background:linear-gradient(135deg,#ffffff 0%,#f7fbff 100%);border:1px solid #d7e4f0;border-radius:18px;padding:17px 18px;margin-bottom:14px;box-shadow:0 9px 24px rgba(18,60,95,.055)}.data-search-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:12px}.data-search-top h2{font-size:16px;margin:0;color:var(--data-navy)}.data-search-top p{font-size:10.5px;color:var(--data-muted);margin:3px 0 0}.data-count-pill{padding:8px 11px;border-radius:999px;background:#edf5ff;color:#4b6780;font-size:10px;border:1px solid #d8e7f6;white-space:nowrap}.data-count-pill b{font-size:13px;color:#1769d3}.data-search-form{display:grid;grid-template-columns:1fr auto auto;gap:8px}.data-search-input{min-height:49px;display:flex;align-items:center;gap:10px;padding:0 13px;background:#fff;border:1px solid #cdddea;border-radius:12px;box-shadow:inset 0 1px 2px rgba(17,52,82,.025)}.data-search-input:focus-within{border-color:#6ca7e9;box-shadow:0 0 0 3px rgba(47,128,237,.09)}.data-search-input span{font-size:21px;color:#6c87a0}.data-search-input input{width:100%;border:0;outline:0;background:transparent;color:#23445f;font-size:14px}.data-search-input input::placeholder{color:#9aaabc}.data-search-form .btn{min-height:49px;padding:0 18px;font-size:13px;border-radius:11px}
.data-filter-card{padding:17px 18px;border-radius:18px;box-shadow:0 8px 22px rgba(20,58,94,.045)}.data-filter-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.data-filter-head h3{margin:0;font-size:16px;color:var(--data-navy)}.data-filter-head p{margin:3px 0 0;font-size:10.5px;color:var(--data-muted)}.filter-active-pill{padding:7px 10px;border-radius:999px;background:#f3f7fb;color:#6a7f93;border:1px solid #dce7f0;font-size:10px;white-space:nowrap}.data-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.data-filter-grid .field{gap:6px}.data-filter-grid .field label{font-size:11px}.data-filter-grid .field select{min-height:45px;font-size:13px;padding:9px 11px}.data-filter-grid .filter-submit{min-height:45px;font-size:13px;align-self:end;border-radius:10px}
.data-result-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:18px 2px 10px}.data-result-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.data-result-title>span{font-size:16px;font-weight:900;color:var(--data-navy)}.data-result-title>b{font-size:13px;background:#edf5ff;color:#1769d3;border-radius:999px;padding:5px 8px}.data-result-title>small{font-size:11px;color:#8498aa}.data-result-title em{font-style:normal;font-size:10px;color:#70879a}.data-warning-pill{background:#fff2f3;border:1px solid #f0c9cf;color:#b33142;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800}.data-view-tools{display:flex;align-items:center;gap:8px}.data-view-tools>span{font-size:11px;font-weight:800;color:#7a8da0}.data-view-switch{display:flex;gap:3px;padding:3px;border-radius:12px;background:#edf3f8;border:1px solid #d7e3ed}.data-view-switch .view-btn{padding:8px 12px;font-size:12px;border-radius:9px}
.package-view{display:none}.package-view.active{display:block}
.data-table-shell{background:#fff;border:1px solid #dbe6ef;border-radius:18px;box-shadow:0 10px 28px rgba(19,58,94,.065);overflow:hidden}.data-table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.data-table thead th{background:linear-gradient(180deg,#f8fbfe 0%,#eef5fb 100%);border-bottom:1px solid #d6e2ed;color:#647b91;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;padding:13px 14px;text-align:left;white-space:nowrap}.data-table tbody td{padding:14px;border-bottom:1px solid #edf2f6;vertical-align:middle;font-size:12px;color:#38546e}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr{transition:background .16s ease,box-shadow .16s ease}.data-table tbody tr:hover{background:#fbfdff;box-shadow:inset 4px 0 0 #2f80ed}.package-row-main{display:flex;align-items:flex-start;gap:11px}.package-row-number{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#edf5fd;color:#4c6f8e;font-size:11px;font-weight:900;flex:0 0 auto}.package-row-copy{min-width:0}.package-row-title{display:block;color:#174e7b;font-size:14px;font-weight:900;line-height:1.38;word-break:break-word}.package-row-title:hover{color:#1769d3}.package-row-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:5px}.package-row-meta span{font-size:10.5px;color:#6e859b}.package-row-meta span+span{padding-left:7px;border-left:1px solid #dce6ef}.package-row-sub{font-size:10.5px;color:#889bad;margin-top:4px;line-height:1.35}.status-infra-stack{display:flex;flex-direction:column;align-items:flex-start;gap:7px}.enhanced-status-badge{font-size:10.5px!important;padding:6px 9px!important}.infra-chip{max-width:100%;font-size:10px;padding:6px 9px;white-space:normal}.value-block strong{display:block;font-size:14px;color:#183f61;line-height:1.25}.value-block span{display:block;font-size:10px;color:#7c90a2;margin-top:3px}.value-block small{display:inline-block;font-size:9px;margin-top:5px;background:#f1f5f8;color:#61788c;border-radius:999px;padding:4px 7px}.progress-pair{display:grid;gap:10px}.progress-head{display:flex;justify-content:space-between;gap:7px;margin-bottom:4px}.progress-head span{font-size:9.5px;color:#8498aa}.progress-head b{font-size:11px;color:#365b78}.package-progress{height:8px;background:#e7edf3;border-radius:999px;overflow:hidden}.package-progress i{display:block;height:100%;border-radius:999px}.package-progress.blue i{background:linear-gradient(90deg,#67adf3,#1769d3)}.package-progress.green i{background:linear-gradient(90deg,#58ca9a,#17825f)}.location-block strong{display:block;font-size:11.5px;color:#315a78}.location-block span{display:block;font-size:10px;color:#8294a5;margin-top:3px}.location-block small{display:inline-block;margin-top:6px;padding:4px 7px;border-radius:999px;background:#eaf8f1;color:#13845f;font-size:9px;font-weight:800}.location-block small.not-mapped{background:#f3f5f7;color:#7a8d9d}.row-action-menu{position:relative;display:flex;justify-content:center}.row-action-main{width:34px;height:34px;border-radius:10px;border:1px solid #d9e4ed;background:#fff;color:#47708e;display:grid;place-items:center;font-size:20px;font-weight:900;box-shadow:0 3px 8px rgba(20,58,94,.04);transform:rotate(180deg)}.row-action-main:hover{background:#edf5ff;border-color:#cce0f5;color:#1769d3}.row-action-pop{display:none;position:absolute;right:0;top:40px;z-index:8;min-width:105px;background:#fff;border:1px solid #d6e2ec;border-radius:11px;box-shadow:0 12px 25px rgba(18,50,78,.14);padding:5px}.row-action-menu.open .row-action-pop{display:block}.row-action-pop a,.row-action-pop button{display:block;width:100%;text-align:left;padding:8px 9px;border:0;background:transparent;color:#456279;font-size:11px;border-radius:7px;cursor:pointer}.row-action-pop a:hover,.row-action-pop button:hover{background:#f2f7fb;color:#1769d3}.row-action-pop button{color:#a63643}.data-table-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 15px;background:#fbfdff;border-top:1px solid #edf2f6;color:#8498aa;font-size:10.5px}.data-table-foot b{color:#43627d}.data-empty{min-height:270px;display:grid;place-items:center;align-content:center;text-align:center;gap:7px;color:#7a8fa3}.data-empty-icon{width:56px;height:56px;border-radius:16px;background:#edf5fd;color:#2f80ed;display:grid;place-items:center;font-size:28px;font-weight:900;margin-bottom:3px}.data-empty strong{font-size:16px;color:#345b78}.data-empty span{font-size:11px}.data-empty .btn{margin-top:6px}
.package-cards-view{padding-top:1px}.package-cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.package-project-card{position:relative;background:#fff;border:1px solid #dbe6ef;border-radius:18px;padding:17px;box-shadow:0 9px 24px rgba(20,58,93,.06);overflow:hidden;transition:.2s ease}.package-project-card:hover{transform:translateY(-3px);box-shadow:0 16px 32px rgba(20,58,93,.1);border-color:#cbddea}.project-card-ribbon{position:absolute;left:0;top:0;right:0;height:5px;background:linear-gradient(90deg,#2f80ed,#6eb5f7)}.project-card-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:2px}.project-card-title{display:block;margin-top:13px;font-size:17px;line-height:1.35;font-weight:900;color:#1a4566}.project-card-title:hover{color:#1769d3}.project-card-opd{margin-top:6px;font-size:11px;color:#72869a}.project-card-value{margin-top:14px;padding:12px;border-radius:13px;background:linear-gradient(135deg,#f6faff,#f2f7fb);border:1px solid #e1eaf2}.project-card-value span{display:block;font-size:10px;color:#7b8da0}.project-card-value strong{display:block;margin-top:3px;font-size:19px;color:#1a3d5b}.project-card-value small{display:block;margin-top:3px;font-size:9.5px;color:#8c9cac}.project-card-metrics{display:grid;gap:11px;margin-top:14px}.project-metric-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px}.project-metric-head span{font-size:10.5px;color:#73879a}.project-metric-head b{font-size:12px;color:#315873}.project-bar{height:9px;border-radius:999px;overflow:hidden;background:#e8eef4}.project-bar span{display:block;height:100%;border-radius:inherit}.project-bar.blue span{background:linear-gradient(90deg,#4b9af0,#1769d3)}.project-bar.green span{background:linear-gradient(90deg,#50c391,#15805d)}.project-card-meta{display:flex;justify-content:space-between;gap:8px;margin-top:14px;padding-top:11px;border-top:1px dashed #dfe8f0;font-size:9.5px;color:#7a8ea1}.project-card-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.project-card-actions .btn{font-size:11px!important;padding:8px 10px!important}.project-card-actions .delete-form{display:inline}.empty-state-card{grid-column:1/-1;min-height:240px;display:grid;place-items:center;align-content:center;gap:6px;background:#fff;border:1px dashed #cbd9e7;border-radius:18px;color:#768ba0}.empty-state-icon{width:54px;height:54px;border-radius:15px;background:#eef5fc;color:#2f80ed;display:grid;place-items:center;font-size:25px;font-weight:900;margin-bottom:5px}.empty-state-card strong{font-size:16px;color:#365a77}.empty-state-card span{font-size:11px}.cards-foot{margin-top:12px;border:1px solid #dbe6ef;border-radius:14px}
@media(max-width:1250px){.data-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.data-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.data-table{min-width:1050px}.package-cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.data-page-head{align-items:flex-start;flex-direction:column}.data-page-actions{width:100%}.data-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.data-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.data-result-head{align-items:flex-start;flex-direction:column}.data-view-tools{width:100%;justify-content:space-between}.data-search-form{grid-template-columns:1fr}.data-search-form .btn{width:100%}.package-cards-grid{grid-template-columns:1fr}}
@media(max-width:620px){.data-kpi-grid{grid-template-columns:1fr}.data-filter-grid{grid-template-columns:1fr}.data-search-top{align-items:flex-start;flex-direction:column}.data-count-pill{align-self:flex-start}.data-page-head h1{font-size:26px}.data-page-head p{font-size:12px}.data-kpi strong{font-size:23px}.data-table-foot{align-items:flex-start;flex-direction:column}}


/* ===== v5.1.7 public dashboard: richer infrastructure cards + status hover interaction ===== */
.public-dashboard-v517 .status-item-v517{position:relative;overflow:hidden;min-height:52px;padding:9px 10px;background:#fbfdff}
.public-dashboard-v517 .status-item-v517::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--item-color,#2f80ed);opacity:0;transition:.2s ease}
.public-dashboard-v517 .status-item-v517:hover::after,.public-dashboard-v517 .status-item-v517.status-focus-v517::after{opacity:1}
.public-dashboard-v517 .status-item-v517:hover,.public-dashboard-v517 .status-item-v517.status-focus-v517{background:#fff;box-shadow:0 9px 20px rgba(23,67,105,.08);border-color:color-mix(in srgb,var(--item-color,#2f80ed) 24%,#dce8f3);transform:translateX(3px) scale(1.01)}
.public-dashboard-v517 .status-item-v517.status-muted-v517{opacity:.42;transform:scale(.985)}
.public-dashboard-v517 .status-item-v517.status-focus-v517 .status-name-v509{color:#183d5e}
.public-dashboard-v517 .status-name-v509{font-size:13px}
.public-dashboard-v517 .status-item-v517 strong{font-size:15px}
.public-dashboard-v517 .status-item-v517 small{font-size:10.5px;font-weight:750}
.public-dashboard-v517 .donut-v509{transition:box-shadow .25s ease,transform .25s ease}
.public-dashboard-v517 .donut-v509.donut-focus-v517{box-shadow:0 0 0 8px color-mix(in srgb,var(--status-focus-color,#2f80ed) 11%,transparent),0 18px 34px rgba(23,63,98,.09);transform:scale(1.025)}
.public-dashboard-v517 .donut-v509.donut-focus-v517::before{content:"";position:absolute;inset:-7px;border-radius:50%;border:2px solid color-mix(in srgb,var(--status-focus-color,#2f80ed) 26%,transparent);animation:publicPulse517 1.6s ease-in-out infinite}
.public-dashboard-v517 .donut-v509.donut-focus-v517 strong{color:var(--status-focus-color,#183654)}
@keyframes publicPulse517{0%,100%{opacity:.3;transform:scale(1)}50%{opacity:.75;transform:scale(1.035)}}

.public-dashboard-v517 .infra-card-v517{min-height:182px;padding:16px;background:linear-gradient(145deg,color-mix(in srgb,var(--infra-color) 9%,#fff) 0%,#fff 54%,color-mix(in srgb,var(--infra-color) 4%,#fff) 100%);border-color:color-mix(in srgb,var(--infra-color) 22%,#dfe8f2);box-shadow:0 9px 22px rgba(21,63,98,.06);transform:translateY(0);opacity:1}
.public-dashboard-v517 .infra-card-v517::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,var(--infra-color),color-mix(in srgb,var(--infra-color) 58%,#fff));opacity:.95}
.public-dashboard-v517 .infra-card-v517::after{content:"";position:absolute;right:-28px;bottom:-28px;width:118px;height:118px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--infra-color) 18%,transparent) 0,color-mix(in srgb,var(--infra-color) 5%,transparent) 56%,transparent 72%);transition:.25s ease}
.public-dashboard-v517 .infra-glow-v517{position:absolute;left:-28px;top:-32px;width:95px;height:95px;border-radius:50%;background:color-mix(in srgb,var(--infra-color) 15%,transparent);filter:blur(2px);opacity:.8}
.public-dashboard-v517 .infra-icon-v509{position:relative;z-index:2;width:50px;height:50px;border-radius:15px;font-size:21px;background:linear-gradient(145deg,color-mix(in srgb,var(--infra-color) 20%,#fff),color-mix(in srgb,var(--infra-color) 10%,#fff));box-shadow:inset 0 0 0 1px rgba(255,255,255,.7),0 7px 15px color-mix(in srgb,var(--infra-color) 14%,transparent)}
.public-dashboard-v517 .infra-count-v509{position:relative;z-index:2;font-size:30px;color:#173b59}
.public-dashboard-v517 .infra-card-v517 h3{position:relative;z-index:2;font-size:15px;line-height:1.28;margin:13px 0 11px;min-height:38px;color:#244b68}
.public-dashboard-v517 .infra-progress-v509{position:relative;z-index:2;height:10px;background:color-mix(in srgb,var(--infra-color) 10%,#edf2f6);box-shadow:inset 0 1px 2px rgba(34,63,88,.05)}
.public-dashboard-v517 .infra-progress-v509 span{background:linear-gradient(90deg,var(--infra-color),color-mix(in srgb,var(--infra-color) 52%,#fff));box-shadow:0 2px 7px color-mix(in srgb,var(--infra-color) 22%,transparent)}
.public-dashboard-v517 .infra-card-meta-v509{position:relative;z-index:2;margin-top:12px;align-items:center}
.public-dashboard-v517 .infra-card-meta-v509 span{font-size:10px;color:#70869a}
.public-dashboard-v517 .infra-card-meta-v509 b{font-size:10.5px}
.public-dashboard-v517 .infra-hover-info-v517{position:absolute;left:15px;right:15px;bottom:13px;display:flex;justify-content:space-between;align-items:center;gap:9px;padding:8px 10px;border-radius:11px;background:rgba(255,255,255,.94);border:1px solid color-mix(in srgb,var(--infra-color) 18%,#e2ebf3);box-shadow:0 8px 20px rgba(20,59,94,.08);opacity:0;transform:translateY(8px);transition:.2s ease;z-index:4;pointer-events:none}
.public-dashboard-v517 .infra-hover-info-v517 strong{font-size:11px;color:#1e4a68}.public-dashboard-v517 .infra-hover-info-v517 span{font-size:9.5px;color:#7890a4}
.public-dashboard-v517 .infra-card-v517:hover{transform:translateY(-6px) scale(1.012);border-color:color-mix(in srgb,var(--infra-color) 48%,#dce7f0);box-shadow:0 18px 34px color-mix(in srgb,var(--infra-color) 13%,rgba(19,57,94,.13))}
.public-dashboard-v517 .infra-card-v517:hover .infra-hover-info-v517,.public-dashboard-v517 .infra-card-v517.infra-focus-v517 .infra-hover-info-v517{opacity:1;transform:none}
.public-dashboard-v517 .infra-card-v517:hover::after{transform:scale(1.12);opacity:1}
.public-dashboard-v517 .infra-card-v517.infra-muted-v517{opacity:.46;filter:saturate(.72);transform:scale(.988)}
.public-dashboard-v517 .infra-card-v517.active{box-shadow:0 0 0 3px color-mix(in srgb,var(--infra-color) 15%,#fff),0 14px 30px color-mix(in srgb,var(--infra-color) 10%,rgba(19,57,94,.10))}
.public-dashboard-v517 .infra-card-v517.active::before{height:7px}
.public-dashboard-v517 .infra-card-v517:focus-visible,.public-dashboard-v517 .status-item-v517:focus-visible{outline:3px solid color-mix(in srgb,var(--infra-color,#2f80ed) 30%,transparent);outline-offset:2px}
.public-dashboard-v517 .district-chip-v509 span{font-size:10.5px}
.public-dashboard-v517 .district-chip-v509 strong{font-size:17px}

@media(max-width:700px){
  .public-dashboard-v517 .infra-card-v517{min-height:172px}
  .public-dashboard-v517 .status-item-v517{min-height:50px}
  .public-dashboard-v517 .infra-hover-info-v517{position:static;margin-top:10px;opacity:1;transform:none;pointer-events:auto}
}

/* ===== v5.1.8 semantic infrastructure icons ===== */
.infra-icon-v509 svg{width:28px;height:28px;display:block;fill:none;stroke:currentColor;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
.infra-interactive-icon svg{width:22px;height:22px;display:block;fill:none;stroke:currentColor;stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round}
.public-dashboard-v517 .infra-icon-v509{background:linear-gradient(145deg,color-mix(in srgb,var(--infra-color) 25%,#fff),color-mix(in srgb,var(--infra-color) 9%,#fff));}
.public-dashboard-v517 .infra-card-v517:hover .infra-icon-v509{transform:rotate(-3deg) scale(1.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.8),0 10px 22px color-mix(in srgb,var(--infra-color) 22%,transparent)}
.public-dashboard-v517 .infra-icon-v509{transition:transform .2s ease,box-shadow .2s ease}

/* =========================================================
   v5.2.1 ADMIN DASHBOARD - COMMAND CENTER VISUAL POLISH
   ========================================================= */
.admin-command-center{--cmd-blue:#2479d6;--cmd-navy:#163b5b;--cmd-ink:#274b68;--cmd-muted:#6f859b;--cmd-line:#dce7f1;--cmd-soft:#f6faff}
.admin-command-center .admin-command-hero{display:flex;justify-content:space-between;gap:22px;align-items:stretch;margin-bottom:18px;padding:22px 24px;border:1px solid #d9e6f1;border-radius:20px;background:linear-gradient(135deg,#eff7ff 0%,#ffffff 58%,#f4fbf7 100%);box-shadow:0 12px 28px rgba(24,67,105,.07);position:relative;overflow:hidden}
.admin-command-center .admin-command-hero:after{content:"";position:absolute;right:-75px;top:-80px;width:230px;height:230px;border-radius:50%;background:radial-gradient(circle,rgba(45,128,237,.12),transparent 69%);pointer-events:none}
.admin-command-copy{position:relative;z-index:1;max-width:880px}.admin-eyebrow{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:900;letter-spacing:.14em;color:#3571a6}.admin-eyebrow-dot{width:9px;height:9px;border-radius:50%;background:#2da77a;box-shadow:0 0 0 5px rgba(45,167,122,.11)}
.admin-command-copy h1{margin:7px 0 5px;color:var(--cmd-navy);font-size:31px;line-height:1.12;letter-spacing:-.7px}.admin-command-copy p{margin:0;color:#637d94;font-size:13px;line-height:1.55;max-width:760px}.admin-hero-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.admin-hero-meta span{padding:8px 11px;border:1px solid #dce7f0;border-radius:11px;background:rgba(255,255,255,.8);color:#6d8499;font-size:10.5px}.admin-hero-meta b{color:#294c67;margin-right:4px}
.admin-year-control{position:relative;z-index:2;min-width:190px;display:flex;flex-direction:column;justify-content:center;align-items:stretch;padding:15px;border-radius:15px;background:rgba(255,255,255,.9);border:1px solid #dce7f0;box-shadow:0 8px 18px rgba(31,78,121,.06)}.admin-year-control label{font-size:11px;font-weight:900;color:#678097;margin-bottom:7px;text-transform:uppercase;letter-spacing:.08em}.admin-year-control select{font-size:16px;font-weight:800;color:var(--cmd-navy);padding:11px 12px;border:1px solid #cfdfea;border-radius:10px;background:#fff}.admin-year-control small{margin-top:7px;color:#8295a8;font-size:9.5px;line-height:1.35}
.admin-kpi-grid{gap:14px}.admin-kpi-card{min-height:112px;padding:17px 18px;border-radius:17px}.admin-kpi-icon{width:46px;height:46px;border-radius:13px;font-size:14px}.admin-kpi-card .kpi-label{font-size:10px;font-weight:850;letter-spacing:.07em}.admin-kpi-card .kpi-value{font-size:28px;margin:5px 0 3px}.admin-kpi-card .kpi-money{font-size:20px}.admin-kpi-card .kpi-meta{font-size:9.5px}.admin-kpi-card .kpi-corner{position:absolute;right:14px;top:11px;font-size:9px;font-weight:900;letter-spacing:.12em;color:#9bb0c2}.admin-mini-progress{height:8px;margin-top:8px}
.command-panel{border-radius:18px!important;box-shadow:0 11px 26px rgba(24,67,105,.055)!important}.command-panel .section-heading{margin-bottom:15px}.command-panel .section-heading h3{font-size:17px}.command-panel .section-heading p{font-size:11px;line-height:1.4}.panel-kicker{display:block;margin-bottom:4px;font-size:9px;font-weight:900;letter-spacing:.13em;color:#6c91b5}
.command-status-layout{min-height:260px;grid-template-columns:215px 1fr;gap:28px}.admin-donut{width:198px;height:198px;box-shadow:0 14px 28px rgba(22,59,91,.07)}.admin-donut .donut-hole{width:112px;height:112px}.admin-donut .donut-hole strong{font-size:31px}.admin-donut .donut-hole span{font-size:11px;font-weight:800;color:#607a91}.admin-donut .donut-hole small{font-size:10px;color:#7f94a8;margin-top:5px}
.dashboard-status-legend{gap:8px}.admin-status-row{display:grid;grid-template-columns:12px 1fr auto auto 18px;gap:9px;align-items:center;padding:10px 11px;border:1px solid transparent;border-radius:12px;text-decoration:none;color:#5c738a;background:#fbfdff;transition:.18s ease}.admin-status-row:hover,.admin-status-row.focused{background:#fff;border-color:#d7e5f0;box-shadow:0 8px 18px rgba(24,67,105,.06);transform:translateX(3px)}.admin-status-row.muted{opacity:.42}.admin-status-row span:not(.legend-dot):not(.legend-go){font-size:11.5px;font-weight:800}.admin-status-row b{font-size:13px;color:var(--cmd-navy)}.admin-status-row small{font-size:10px;color:#8295a8}.admin-status-row .legend-go{font-size:14px;color:#7c94aa;transition:.18s ease}.admin-status-row:hover .legend-go,.admin-status-row.focused .legend-go{transform:translateX(3px);color:var(--cmd-blue)}
.warning-command-summary{display:flex;align-items:center;gap:14px;padding:12px 13px;border-radius:14px;background:linear-gradient(135deg,#fff6f6,#fffaf0);border:1px solid #f0dfdf;margin-bottom:11px}.warning-command-summary strong{display:block;font-size:27px;line-height:1;color:#b93743}.warning-command-summary span{display:block;margin-top:3px;font-size:9.5px;color:#7e8f9d;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.warning-summary-note{margin-left:auto;max-width:280px;font-size:10px;line-height:1.4;color:#75899c;text-align:right}
.notification-stack{gap:8px}.notification-card{padding:11px 12px;border-radius:13px}.notification-card .notification-main b{font-size:11.5px}.notification-card .notification-main small{font-size:9.5px;line-height:1.35}.notification-count{font-size:18px}.notification-arrow{font-size:19px}
.command-map-layout{grid-template-columns:1.75fr .7fr;min-height:300px}.admin-dashboard-map{height:300px;border-radius:14px;box-shadow:inset 0 0 0 1px rgba(219,230,240,.7)}.district-map-list{padding:9px 11px;gap:4px;background:linear-gradient(180deg,#fbfdff,#f7fafc)}.district-map-list div{padding:8px 5px}.district-map-list span{font-size:9.5px}.district-map-list b{font-size:12px}
.infra-command-panel .section-heading{align-items:center}.infra-command-panel .section-heading>div:first-child{min-width:0}.infra-command-panel .section-link{padding-top:5px}.infra-command-panel .infra-interactive-grid{margin-top:4px}
.infra-interactive-card{min-height:188px!important;border-radius:17px!important}.infra-interactive-count{font-size:33px!important}.infra-interactive-title{font-size:16px!important}.infra-interactive-icon{width:54px!important;height:54px!important;border-radius:16px!important}.infra-interactive-meta small{font-size:10.5px!important}.infra-interactive-meta b{font-size:11.5px!important}
.recent-command-panel .dashboard-bottom-head h3{font-size:17px}.recent-command-panel .dashboard-bottom-head p{font-size:11px}.recent-opd-strip{gap:9px}.recent-opd-strip>a{padding:11px 12px;border:1px solid #e0e9f1;border-radius:12px;background:#fbfdff;transition:.18s ease}.recent-opd-strip>a:hover{background:#fff;border-color:#cfe0ee;transform:translateY(-2px);box-shadow:0 8px 18px rgba(24,67,105,.06)}.recent-opd-name{font-size:10.5px!important}.recent-opd-package{font-size:10px!important}.recent-opd-strip strong{font-size:10.5px!important}
.admin-command-center .dashboard-footer-note{font-size:10.5px}.admin-command-center .dashboard-footer-note em{font-size:10.5px}

@media(max-width:1100px){.admin-command-center .admin-command-hero{flex-direction:column}.admin-year-control{min-width:0;width:100%;display:grid;grid-template-columns:auto 180px 1fr;align-items:center;gap:10px}.admin-year-control label{margin:0}.admin-year-control small{margin:0}.command-status-layout{grid-template-columns:180px 1fr}.admin-donut{width:180px;height:180px}.command-map-layout{grid-template-columns:1fr}.district-map-list{display:grid;grid-template-columns:repeat(3,1fr)}.admin-kpi-card .kpi-value{font-size:25px}}
@media(max-width:900px){.admin-command-copy h1{font-size:27px}.admin-command-copy p{font-size:12px}.admin-year-control{grid-template-columns:1fr}.command-status-layout{grid-template-columns:1fr;justify-items:center}.dashboard-status-legend{width:100%}.warning-command-summary{align-items:flex-start}.warning-summary-note{max-width:none;text-align:left}.district-map-list{grid-template-columns:repeat(2,1fr)}.admin-kpi-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.admin-command-center .content{padding-left:14px!important;padding-right:14px!important}.admin-command-center .admin-command-hero{padding:18px}.admin-hero-meta{flex-direction:column}.admin-kpi-grid{grid-template-columns:1fr}.admin-kpi-card .kpi-value{font-size:26px}.admin-kpi-card .kpi-money{font-size:19px}.district-map-list{grid-template-columns:1fr}.warning-command-summary{flex-direction:column}.admin-status-row{grid-template-columns:10px 1fr auto auto 14px}}


/* =========================================================
   v5.2.2 CMS MANAGEMENT CENTER + DENSITY
   ========================================================= */
.density-compact .field label,.density-compact .field input,.density-compact .field select,.density-compact .field textarea{font-size:13px}.density-compact .card,.density-compact .dashboard-card{padding-top:14px;padding-bottom:14px}
.density-comfortable .field label{font-size:15px}.density-comfortable .field input,.density-comfortable .field select,.density-comfortable .field textarea{font-size:17px;min-height:48px}.density-comfortable .dashboard-card{padding-top:21px;padding-bottom:21px}
.cms-shell-v522{display:flex;flex-direction:column;gap:14px}.cms-tabbar{display:flex;gap:7px;padding:7px;background:#f4f8fc;border:1px solid #dce7f0;border-radius:15px;overflow:auto}.cms-tab{border:0;background:transparent;color:#647e96;font-size:12px;font-weight:850;padding:11px 14px;border-radius:10px;cursor:pointer;white-space:nowrap}.cms-tab:hover{background:#fff}.cms-tab.active{background:#fff;color:#145a98;box-shadow:0 5px 14px rgba(34,83,122,.08)}.cms-grid-v522{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.72fr);gap:16px;align-items:start}.cms-main-v522{padding:0;overflow:hidden}.cms-tab-panel{display:none;padding:23px}.cms-tab-panel.active{display:block}.cms-section-head-v522{display:flex;align-items:flex-start;gap:13px;margin-bottom:20px}.cms-section-number{width:36px;height:36px;border-radius:11px;background:linear-gradient(135deg,#1769d3,#0d4fa8);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:950;flex:0 0 auto}.cms-section-head-v522 h2{margin:0;color:#153d5d;font-size:21px}.cms-section-head-v522 p{margin:5px 0 0;color:#6e8498;font-size:12px;line-height:1.5}.cms-form-grid-v522{gap:13px}.cms-form-grid-v522 .field label{font-size:13px;font-weight:850;color:#4c6880}.cms-form-grid-v522 input,.cms-form-grid-v522 select,.cms-form-grid-v522 textarea{font-size:15px;padding:12px 13px;border-radius:11px}.field-full{grid-column:1/-1}.cms-density-box{margin-top:17px;padding:15px;border:1px solid #dbe7ef;border-radius:13px;background:#f8fbfe;display:flex;align-items:center;justify-content:space-between;gap:12px}.cms-density-box strong{display:block;color:#254966;font-size:13px}.cms-density-box small{display:block;margin-top:3px;color:#7b8fa1;font-size:11px}.cms-density-box select{min-width:145px;padding:10px 12px;border:1px solid #ccdce8;border-radius:10px;background:#fff;font-size:13px}.cms-dashboard-hero-edit{padding:15px;border-radius:15px;background:linear-gradient(135deg,#eef7ff,#f7fcf8);border:1px solid #dce9f1;margin-bottom:17px}.cms-dashboard-hero-edit>div:first-child{margin-bottom:12px}.cms-dashboard-hero-edit span{display:block;color:#5780a1;text-transform:uppercase;letter-spacing:.1em;font-size:9px;font-weight:900}.cms-dashboard-hero-edit strong{display:block;margin-top:4px;color:#214965;font-size:14px}.cms-toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cms-toggle-card{display:flex;align-items:flex-start;gap:11px;padding:14px;border:1px solid #dce7ef;border-radius:13px;background:#fbfdff;cursor:pointer}.cms-toggle-card:hover{border-color:#bed4e5;background:#fff}.cms-toggle-card input{position:absolute;opacity:0;pointer-events:none}.cms-toggle-ui{width:38px;height:22px;border-radius:999px;background:#ccd8e1;position:relative;flex:0 0 auto}.cms-toggle-ui:after{content:"";position:absolute;width:16px;height:16px;top:3px;left:3px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.14);transition:.2s}.cms-toggle-card input:checked + .cms-toggle-ui{background:#2c84df}.cms-toggle-card input:checked + .cms-toggle-ui:after{left:19px}.cms-toggle-card b{display:block;color:#254963;font-size:12px}.cms-toggle-card small{display:block;margin-top:4px;color:#7a8d9f;font-size:10px;line-height:1.4}.cms-infra-editor-v522{display:flex;flex-direction:column;gap:9px}.cms-infra-row{display:grid;grid-template-columns:58px 1.4fr .55fr 1fr;gap:12px;align-items:center;padding:11px;border:1px solid #dce7ef;border-radius:13px;background:#fbfdff}.cms-infra-preview{width:46px;height:46px;border-radius:13px;background:color-mix(in srgb,var(--infra-color) 12%,#fff);color:var(--infra-color);display:grid;place-items:center}.cms-infra-preview svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}.cms-infra-name b{display:block;color:#214965;font-size:13px}.cms-infra-name small{display:block;color:#8395a5;font-size:9px;margin-top:2px}.cms-color-field span,.cms-icon-field span{display:block;color:#71869a;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.cms-color-field input{width:100%;height:39px;padding:3px;border:1px solid #ccdce8;border-radius:9px;background:#fff}.cms-icon-field select{width:100%;padding:9px;border:1px solid #ccdce8;border-radius:9px;background:#fff;font-size:12px}.cms-theme-grid{margin:15px 0}.cms-assets-v522{grid-template-columns:repeat(2,minmax(0,1fr))}.cms-assets-v522 .asset-upload-preview{height:145px;display:grid;place-items:center;background:#f5f9fc;border-bottom:1px solid #e0eaf1}.cms-assets-v522 .asset-upload-preview.logo{height:160px}.cms-assets-v522 .asset-upload-preview.favicon img{width:85px;height:85px;object-fit:contain}.cms-assets-v522 .asset-upload-preview.logo img{max-width:140px;max-height:130px}.cms-assets-v522 .asset-upload-preview.banner img{width:100%;height:100%;object-fit:cover}.cms-assets-v522 .asset-upload-preview.login_image img{width:100%;height:100%;object-fit:cover}.cms-file-help{display:block;margin-top:5px;color:#8a9aa7;font-size:9px}.cms-danger-zone{margin-top:18px;padding:14px;border:1px dashed #efc9cd;border-radius:12px;background:#fff9f9;display:flex;align-items:center;justify-content:space-between;gap:12px}.cms-danger-zone strong{display:block;color:#9d3b46;font-size:12px}.cms-danger-zone small{display:block;color:#8b7c80;font-size:10px;margin-top:3px}.cms-save-bar-v522{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 21px;border-top:1px solid #e2ebf1;background:#fbfdff}.cms-save-bar-v522 b{display:block;color:#2a506c;font-size:12px}.cms-save-bar-v522 span{display:block;color:#8093a4;font-size:10px;margin-top:3px}.cms-live-preview-v522{position:sticky;top:16px;padding:18px}.cms-preview-head-v522{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:13px}.cms-preview-head-v522 h3{margin:3px 0 2px;color:#1b4563;font-size:17px}.cms-preview-head-v522 p{margin:0;color:#7d8e9e;font-size:10px;line-height:1.4}.cms-preview-kicker{display:block;color:#5b86a8;font-size:8px;letter-spacing:.13em;font-weight:900}.cms-preview-browser-v522{border:1px solid #dce7ef;border-radius:13px;overflow:hidden;background:#fff}.cms-preview-browser-v522 .browser-content{min-height:150px}.cms-preview-infra{margin-top:15px;padding:12px;border-radius:13px;background:#f7fafc;border:1px solid #e0e9ef}.cms-preview-infra-list{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:9px}.cms-preview-infra-list div{display:flex;align-items:center;gap:7px;padding:7px 8px;border-radius:10px;background:#fff;border:1px solid #e3ebf0}.cms-preview-infra-list span{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;background:color-mix(in srgb,var(--infra-color) 12%,#fff);color:var(--infra-color)}.cms-preview-infra-list svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}.cms-preview-infra-list b{font-size:9px;color:#47637b}.cms-preview-login-v522{margin-top:14px}.cms-preview-login-v522>div{margin-top:9px;display:grid;grid-template-columns:.9fr 1.1fr;border:1px solid #dce7ef;border-radius:13px;overflow:hidden;background:#fff}.cms-preview-login-v522>div>img{width:100%;height:150px;object-fit:cover}.cms-preview-login-v522 section{padding:17px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.cms-preview-login-v522 section>img{width:36px;height:36px;object-fit:contain;margin-bottom:7px}.cms-preview-login-v522 section b{color:#1b4563;font-size:12px}.cms-preview-login-v522 section small{color:#7b8ea0;font-size:9px;margin-top:3px}.cms-preview-note-v522{margin-top:11px;padding:10px;border-radius:10px;background:#f3f8fc;color:#7b8ea0;font-size:9px;line-height:1.45}.cms-preview-note-v522 b{color:#4e7190}.footer-note-v522{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:15px 22px;color:#7a8ea0}.footer-note-v522>div{display:flex;flex-direction:column;gap:3px}.footer-note-v522 strong{color:#385a73;font-size:11px}.footer-note-v522 span{font-size:9px}.footer-contact-v522{align-items:flex-end!important;text-align:right}
.footer-note-v522.footer-align-left{justify-content:flex-start;text-align:left}.footer-note-v522.footer-align-left .footer-contact-v522{align-items:flex-start!important;text-align:left}.footer-note-v522.footer-align-center{justify-content:center;text-align:center}.footer-note-v522.footer-align-center>div,.footer-note-v522.footer-align-center .footer-contact-v522{align-items:center!important;text-align:center}.footer-note-v522.footer-align-right{justify-content:flex-end;text-align:right}.footer-note-v522.footer-align-right .footer-contact-v522{align-items:flex-end!important;text-align:right}.field-help{display:block;margin-top:6px;font-size:9px;color:#7b8ea0;line-height:1.45}

@media(max-width:1000px){.cms-grid-v522{grid-template-columns:1fr}.cms-live-preview-v522{position:static}.cms-toggle-grid,.cms-assets-v522{grid-template-columns:1fr}}
@media(max-width:700px){.cms-tab-panel{padding:17px}.cms-toggle-grid{grid-template-columns:1fr}.cms-infra-row{grid-template-columns:48px 1fr}.cms-color-field,.cms-icon-field{grid-column:2}.cms-save-bar-v522{flex-direction:column;align-items:stretch}.cms-save-bar-v522 .btn{width:100%}.footer-note-v522{flex-direction:column}.footer-contact-v522{align-items:flex-start!important;text-align:left}}

/* ===== v5.2.3 PETA PEMBANGUNAN INTERACTIVE ===== */
.map-page-title{align-items:flex-end}.map-page-title h1{font-size:28px!important}.map-page-title p{font-size:13px!important;max-width:760px}.map-page-actions{display:flex;gap:8px;flex-wrap:wrap}.map-page-actions .btn{font-size:12px!important;min-height:42px}
.map-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 15px}.map-stat-card{position:relative;display:flex;align-items:center;gap:12px;min-height:96px;padding:15px 17px;background:#fff;border:1px solid #dde8f1;border-radius:17px;box-shadow:0 9px 26px rgba(23,64,99,.06);overflow:hidden}.map-stat-card:after{content:"";position:absolute;right:-25px;bottom:-40px;width:105px;height:105px;border-radius:50%;background:var(--map-soft);opacity:.9}.map-stat-card.blue{--map-soft:#e6f1ff}.map-stat-card.green{--map-soft:#e4f7ee}.map-stat-card.amber{--map-soft:#fff2d9}.map-stat-card.violet{--map-soft:#eee9ff}.map-stat-icon{position:relative;z-index:1;width:45px;height:45px;border-radius:14px;display:grid;place-items:center;background:var(--map-soft);color:var(--map-accent);font-size:20px;font-weight:900;flex:0 0 auto}.map-stat-card.blue .map-stat-icon{--map-accent:#2476c9}.map-stat-card.green .map-stat-icon{--map-accent:#16855d}.map-stat-card.amber .map-stat-icon{--map-accent:#d28916}.map-stat-card.violet .map-stat-icon{--map-accent:#7757c8}.map-stat-card small,.map-stat-card strong,.map-stat-card em{position:relative;z-index:1;display:block}.map-stat-card small{font-size:11px;color:#6f8297;font-weight:800}.map-stat-card strong{font-size:22px;color:#1a3f5f;line-height:1.15;margin-top:2px}.map-stat-card em{font-size:9.5px;color:#8b9aaa;font-style:normal;margin-top:3px}
.map-filter-panel{padding:13px 15px;margin-bottom:11px}.map-toolbar{display:grid;grid-template-columns:minmax(260px,1.7fr) repeat(4,minmax(150px,.9fr)) auto auto;gap:8px;align-items:end}.map-search-field{position:relative}.map-search-field span{position:absolute;left:13px;top:9px;color:#7891a9;font-size:21px}.map-search-field input{width:100%;height:46px;padding:0 13px 0 40px;border:1px solid #d6e2ec;border-radius:11px;background:#fbfdff;font-size:13px;outline:none}.map-search-field input:focus{background:#fff;border-color:#7fb5ed;box-shadow:0 0 0 3px rgba(47,128,237,.08)}.map-filter-select label{display:block;font-size:10px;font-weight:900;color:#71869a;margin:0 0 5px}.map-filter-select select{width:100%;min-height:46px;padding:10px 12px;border:1px solid #d6e2ec;border-radius:11px;background:#fff;font-size:12.5px;color:#34526d}.map-toolbar>.btn{min-height:46px;font-size:12px!important;padding:10px 13px!important}
.map-type-pills{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 13px}.map-type-pill{display:inline-flex;align-items:center;gap:7px;border:1px solid #dce6ef;background:#fff;color:#547089;border-radius:999px;padding:8px 11px;font-size:11px;font-weight:850;cursor:pointer;transition:.18s}.map-type-pill:hover{transform:translateY(-1px);box-shadow:0 7px 16px rgba(24,63,99,.07)}.map-type-pill.active{background:#eff7ff;border-color:#b8d7f4;color:#1769d3;box-shadow:0 5px 14px rgba(23,105,211,.09)}.map-type-pill b{margin-left:2px;font-size:10px;color:#183f61}.map-pill-dot{width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 3px rgba(255,255,255,.7);border:1px solid rgba(25,55,92,.08)}
.map-workspace{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(330px,.8fr);gap:14px;align-items:stretch}.map-main-panel{padding:15px}.map-side-panel{padding:15px;min-height:665px}.map-panel-header,.map-side-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:11px}.map-panel-header h3,.map-side-head h3{margin:0;font-size:16px;color:var(--navy)}.map-panel-header p,.map-side-head p{margin:3px 0 0;font-size:11px;color:#7a8ea2}.map-legend-note{display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid #dce6ee;border-radius:10px;background:#fbfdff;font-size:10px;font-weight:800;color:#54708a}.live-dot{width:8px;height:8px;border-radius:50%;background:#26a269;box-shadow:0 0 0 4px #e2f6ed}.map-canvas-wrap{position:relative}.map-enhanced{height:575px!important;border-radius:14px!important;border:1px solid #d8e3ec!important;overflow:hidden!important;background:#edf4f9}.map-enhanced .leaflet-control-zoom a{width:34px;height:34px;line-height:34px;font-size:18px}.map-floating-legend{position:absolute;left:13px;bottom:13px;z-index:800;max-width:325px;padding:10px 11px;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border:1px solid #d6e2ec;border-radius:12px;box-shadow:0 10px 24px rgba(18,52,80,.14)}.map-floating-title{font-size:10px;font-weight:900;color:#365670;margin-bottom:7px}.map-floating-items{display:flex;gap:5px;flex-wrap:wrap}.map-floating-items button{border:0;background:#f7fafc;border-radius:999px;padding:5px 7px;display:inline-flex;align-items:center;gap:5px;font-size:9px;color:#597188;cursor:pointer}.map-floating-items button:hover{background:#eef6fd;color:#1769d3}.map-floating-items button span{width:8px;height:8px;border-radius:50%}.map-footer-tools{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 1px 0;font-size:10px;color:#7f92a4}.map-footer-tools b{font-size:12px;color:#315873}.map-footer-tools .btn{font-size:10px!important;padding:7px 9px!important;min-height:auto}
.map-list-enhanced{display:flex;flex-direction:column;gap:7px;max-height:575px;overflow:auto;padding-right:3px}.map-package-item{position:relative;display:grid;grid-template-columns:4px 34px 1fr;gap:9px;align-items:start;text-align:left;width:100%;padding:10px;border:1px solid #e0e8ef;border-radius:13px;background:#fff;cursor:pointer;transition:.17s}.map-package-item:hover,.map-package-item.active{background:#f6fbff;border-color:#bed9f1;box-shadow:0 7px 16px rgba(30,79,119,.08);transform:translateY(-1px)}.map-item-accent{width:4px;min-height:58px;border-radius:999px}.map-item-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:color-mix(in srgb,var(--item-color) 12%, white);color:var(--item-color);font-size:17px;font-weight:900}.map-item-body{min-width:0}.map-item-body strong{display:block;font-size:11.5px;line-height:1.35;color:#1f4e6e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-item-body small{display:block;font-size:9.5px;color:#6f8498;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-item-body>span:not(.map-item-meta){display:block;font-size:9px;color:#8a9aa9;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-item-meta{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:6px}.map-item-meta b{font-size:10px;color:#315b78}.map-status-chip{font-size:8.5px!important;padding:4px 6px!important}.map-empty-state{display:grid;place-items:center;align-content:center;gap:5px;min-height:300px;text-align:center;color:#7890a3}.map-empty-state>div{width:52px;height:52px;border-radius:15px;background:#edf5fc;color:#2f80ed;display:grid;place-items:center;font-size:24px}.map-empty-state strong{font-size:14px;color:#3b607b}.map-empty-state span{font-size:10px;max-width:220px}
.map-insight-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;margin-top:14px}.map-insight-card{padding:15px}.district-insight-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.district-insight-list button{display:grid;grid-template-columns:125px 1fr 28px;gap:7px;align-items:center;border:1px solid #e2e9ef;background:#fff;border-radius:11px;padding:8px 9px;text-align:left;cursor:pointer}.district-insight-list button:hover{background:#f7fbff;border-color:#cfe1f0}.district-insight-list span{font-size:10px;color:#587189;font-weight:750}.district-insight-list div{height:7px;border-radius:99px;background:#e9eff4;overflow:hidden}.district-insight-list i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#62acf0,#1769d3)}.district-insight-list b{text-align:right;font-size:10px;color:#274e69}.status-legend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.status-legend-grid button{display:flex;align-items:center;gap:8px;border:1px solid #e2e9ef;background:#fff;border-radius:11px;padding:9px;text-align:left;cursor:pointer}.status-legend-grid button:hover{background:#f7fbff;border-color:#cfe1f0}.status-legend-grid b{font-size:10px;color:#506a80;flex:1}.status-legend-grid em{font-size:12px;font-style:normal;font-weight:900;color:#244b67}.legend-status-dot{width:10px;height:10px;border-radius:50%;display:block}.legend-status-dot.badge-gray{background:#91a0ae}.legend-status-dot.badge-blue{background:#4e90dc}.legend-status-dot.badge-amber{background:#e8a43d}.legend-status-dot.badge-green{background:#43b17f}.legend-status-dot.badge-teal{background:#22a8a2}
.map-cluster-icon{display:grid;place-items:center;border-radius:50%;font-weight:900;color:#fff;border:4px solid rgba(255,255,255,.86);box-shadow:0 5px 15px rgba(16,52,83,.25);text-shadow:0 1px 2px rgba(0,0,0,.22)}.map-marker-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 6px 14px rgba(17,58,93,.24);border:3px solid #fff}.map-marker-icon span{transform:rotate(45deg);font-size:13px;font-weight:900;color:#fff}.map-popup{min-width:230px}.map-popup h4{margin:0 0 7px;font-size:13px;line-height:1.35;color:#1b4867}.map-popup .popup-opd{font-size:10px;color:#6b8094;margin-bottom:7px}.map-popup-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}.map-popup-grid div{padding:7px;border-radius:8px;background:#f5f9fc}.map-popup-grid small{display:block;font-size:8px;color:#8697a7}.map-popup-grid b{display:block;margin-top:2px;font-size:10px;color:#315a76}.map-popup-actions{display:flex;gap:6px;margin-top:8px}.map-popup-actions a{display:inline-flex;align-items:center;justify-content:center;padding:7px 9px;border-radius:8px;text-decoration:none;background:#1769d3;color:#fff;font-size:9px;font-weight:800}.map-popup-actions a.secondary{background:#eef4f8;color:#3f627c}
@media(max-width:1250px){.map-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-toolbar{grid-template-columns:1.4fr repeat(2,minmax(150px,1fr)) auto auto}.map-toolbar .map-filter-select:nth-of-type(4){grid-column:span 1}.map-workspace{grid-template-columns:1fr}.map-side-panel{min-height:auto}.map-list-enhanced{max-height:390px}.map-insight-grid{grid-template-columns:1fr}.map-enhanced{height:520px!important}}
@media(max-width:850px){.map-page-title{align-items:flex-start;flex-direction:column}.map-stat-grid{grid-template-columns:1fr}.map-toolbar{grid-template-columns:1fr 1fr}.map-search-field{grid-column:1/-1}.map-toolbar>.btn{width:100%}.district-insight-list,.status-legend-grid{grid-template-columns:1fr}.map-floating-legend{max-width:240px}.map-footer-tools{flex-wrap:wrap}.map-enhanced{height:450px!important}}
@media(max-width:600px){.map-toolbar{grid-template-columns:1fr}.map-search-field{grid-column:auto}.map-type-pills{overflow:auto;flex-wrap:nowrap;padding-bottom:3px}.map-type-pill{white-space:nowrap}.map-page-actions{width:100%}.map-page-actions .btn{flex:1}.map-stat-card strong{font-size:20px}.map-enhanced{height:390px!important}.map-floating-legend{left:8px;right:8px;max-width:none}.map-list-enhanced{max-height:340px}}

/* v5.2.6 — visual sebaran 6 kecamatan Kobar */
.district-visual-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-areas:
    "au au pl"
    "kl as pb"
    "kl ku ku";
  gap:10px;
  margin-top:12px;
  padding:12px;
  border-radius:16px;
  background:
    radial-gradient(circle at 20% 20%,rgba(47,128,237,.10),transparent 34%),
    radial-gradient(circle at 80% 80%,rgba(0,166,199,.10),transparent 30%),
    #f4f8fb;
  border:1px solid #dbe6ee;
  position:relative;
  overflow:hidden;
}
.district-visual-grid::before{
  content:"KOTAWARINGIN BARAT";
  position:absolute;
  right:-6px;
  top:-10px;
  font-size:38px;
  font-weight:950;
  letter-spacing:.06em;
  color:rgba(31,65,89,.035);
  pointer-events:none;
}
.district-visual-card{
  --district-color:#2f80ed;
  position:relative;
  min-height:105px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:15px 15px 14px 18px;
  color:#fff!important;
  text-decoration:none!important;
  border-radius:18px;
  overflow:hidden;
  background:linear-gradient(145deg,var(--district-color),color-mix(in srgb,var(--district-color) 74%,#0c2b46));
  box-shadow:0 12px 22px color-mix(in srgb,var(--district-color) 23%,transparent), inset 0 1px 0 rgba(255,255,255,.28);
  border:1px solid rgba(255,255,255,.28);
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.district-visual-card::after{
  content:"";
  position:absolute;
  width:95px;
  height:95px;
  right:-24px;
  bottom:-28px;
  border-radius:50%;
  background:rgba(255,255,255,.11);
}
.district-visual-card:hover,.district-visual-card.active{
  transform:translateY(-3px) scale(1.012);
  filter:saturate(1.08);
  box-shadow:0 18px 30px color-mix(in srgb,var(--district-color) 30%,transparent), inset 0 1px 0 rgba(255,255,255,.34);
}
.district-visual-card.active{outline:3px solid rgba(255,255,255,.72);outline-offset:-5px}
.district-shape-au{grid-area:au}
.district-shape-pl{grid-area:pl}
.district-shape-kl{grid-area:kl;min-height:118px}
.district-shape-as{grid-area:as}
.district-shape-pb{grid-area:pb}
.district-shape-ku{grid-area:ku}
.district-visual-pin{font-size:10px;line-height:1;margin-bottom:6px;opacity:.85}
.district-visual-name{font-size:12px;font-weight:850;line-height:1.2;text-shadow:0 1px 1px rgba(0,0,0,.10)}
.district-visual-card strong{font-size:27px;line-height:1;margin-top:6px;letter-spacing:-.02em}
.district-visual-card small{font-size:10px;margin-top:4px;opacity:.9;font-weight:700}
.public-district-visual-grid{grid-template-rows:auto auto auto}
.public-district-visual-grid .district-visual-card{min-height:98px}
.public-district-visual-grid .district-shape-kl{min-height:111px}
.district-note-panel-v509{min-height:100%}
.district-note-body-v509{display:flex;align-items:center;gap:11px;flex-wrap:wrap;padding:12px 14px;background:#f7fafc;border:1px solid #e0e9ef;border-radius:12px;color:#667d91;font-size:11px;line-height:1.5}
.district-note-badge-v509{display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border-radius:999px;background:#e9f3fb;color:#23659c;font-weight:900;font-size:10px;white-space:nowrap}
@media(max-width:900px){
  .district-visual-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"au pl" "kl as" "pb ku"}
}
@media(max-width:600px){
  .district-visual-grid{grid-template-columns:1fr 1fr;gap:8px;padding:9px}
  .district-visual-card{min-height:94px;padding:12px}
  .district-visual-card strong{font-size:24px}
  .district-visual-name{font-size:11px}
  .district-visual-card small{font-size:9px}
}

/* v5.2.7 — redesigned 6-camat district graphic: clean equal cards */
.district-visual-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:12px !important;
  margin-top:12px !important;
  padding:12px !important;
  border-radius:16px !important;
  background:linear-gradient(180deg,#f8fbfe,#f2f7fb) !important;
  border:1px solid #dce7ef !important;
  position:relative !important;
  overflow:hidden !important;
}
.district-visual-grid::before{
  content:"KOTAWARINGIN BARAT" !important;
  position:absolute !important;
  right:14px !important;
  top:8px !important;
  font-size:11px !important;
  font-weight:900 !important;
  letter-spacing:.12em !important;
  color:#8ea4b8 !important;
  opacity:.55 !important;
  pointer-events:none !important;
}
.district-visual-card{
  --district-color:#2f80ed;
  --district-pct:0%;
  min-height:152px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
  gap:7px !important;
  padding:15px 15px 14px !important;
  border-radius:16px !important;
  color:#183c5a !important;
  text-decoration:none !important;
  background:linear-gradient(180deg,#fff 0%, color-mix(in srgb,var(--district-color) 8%,#fff) 100%) !important;
  border:1px solid color-mix(in srgb,var(--district-color) 22%,#dbe6ee) !important;
  box-shadow:0 7px 18px rgba(22,54,84,.07) !important;
  overflow:hidden !important;
  position:relative !important;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}
.district-visual-card::before{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  top:0 !important;
  right:0 !important;
  height:5px !important;
  background:var(--district-color) !important;
}
.district-visual-card::after{
  content:"" !important;
  position:absolute !important;
  width:92px !important;
  height:92px !important;
  right:-34px !important;
  bottom:-34px !important;
  border-radius:50% !important;
  background:color-mix(in srgb,var(--district-color) 12%,transparent) !important;
}
.district-visual-card:hover,
.district-visual-card.active{
  transform:translateY(-3px) !important;
  box-shadow:0 14px 24px rgba(22,54,84,.12) !important;
  border-color:color-mix(in srgb,var(--district-color) 50%,#dbe6ee) !important;
}
.district-visual-card.active{
  outline:3px solid color-mix(in srgb,var(--district-color) 22%,transparent) !important;
  outline-offset:-2px !important;
}
.district-shape-au,.district-shape-pl,.district-shape-kl,.district-shape-as,.district-shape-pb,.district-shape-ku{grid-area:auto !important;min-height:152px !important}
.district-visual-top{display:flex !important;align-items:center !important;justify-content:space-between !important;position:relative !important;z-index:1 !important}
.district-visual-badge{display:inline-flex !important;align-items:center !important;justify-content:center !important;padding:4px 7px !important;border-radius:999px !important;background:color-mix(in srgb,var(--district-color) 13%,#fff) !important;color:var(--district-color) !important;font-size:8px !important;font-weight:900 !important;letter-spacing:.08em !important}
.district-visual-pin{font-size:17px !important;line-height:1 !important;color:var(--district-color) !important;opacity:.9 !important;margin:0 !important}
.district-visual-name{font-size:13px !important;font-weight:900 !important;color:#1a4667 !important;line-height:1.2 !important;text-shadow:none !important;position:relative !important;z-index:1 !important}
.district-visual-metric{display:flex !important;align-items:baseline !important;gap:6px !important;position:relative !important;z-index:1 !important}
.district-visual-card strong{font-size:30px !important;line-height:1 !important;letter-spacing:-.02em !important;color:#153b59 !important;margin:0 !important}
.district-visual-metric small{font-size:10px !important;font-weight:800 !important;color:#68829a !important}
.district-visual-bar{height:9px !important;border-radius:99px !important;background:#e9eff4 !important;overflow:hidden !important;position:relative !important;z-index:1 !important}
.district-visual-bar i{display:block !important;width:var(--district-pct) !important;max-width:100% !important;height:100% !important;border-radius:inherit !important;background:linear-gradient(90deg,var(--district-color),color-mix(in srgb,var(--district-color) 65%,#ffffff)) !important;box-shadow:0 0 10px color-mix(in srgb,var(--district-color) 30%,transparent) !important}
.district-visual-share{font-size:10px !important;font-weight:750 !important;color:#7a91a4 !important;position:relative !important;z-index:1 !important}
@media(max-width:980px){.district-visual-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}}
@media(max-width:620px){.district-visual-grid{grid-template-columns:1fr !important}.district-visual-card,.district-shape-au,.district-shape-pl,.district-shape-kl,.district-shape-as,.district-shape-pb,.district-shape-ku{min-height:144px !important}}

/* v5.2.8 — compact & balanced district visual for dashboards */
.dashboard-page .dashboard-grid-main{align-items:start !important;}
.dashboard-page .map-command-panel{align-self:start !important;min-height:0 !important;height:auto !important;}
.dashboard-page .command-map-layout{grid-template-columns:minmax(0,1.65fr) minmax(300px,.85fr) !important;min-height:0 !important;height:auto !important;align-items:start !important;gap:12px !important;}
.dashboard-page .admin-dashboard-map{height:300px !important;min-height:300px !important;}
.dashboard-page .district-visual-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  grid-template-areas:none !important;
  grid-auto-rows:92px !important;
  align-content:start !important;
  gap:10px !important;
  min-height:0 !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  overflow:visible !important;
}
.dashboard-page .district-visual-grid::before{display:none !important;}
.dashboard-page .district-visual-card,
.dashboard-page .district-shape-au,
.dashboard-page .district-shape-pl,
.dashboard-page .district-shape-kl,
.dashboard-page .district-shape-as,
.dashboard-page .district-shape-pb,
.dashboard-page .district-shape-ku{
  grid-area:auto !important;
  min-height:0 !important;
  height:92px !important;
  padding:11px 12px !important;
  justify-content:space-between !important;
  gap:3px !important;
  border-radius:14px !important;
  color:#fff !important;
  background:linear-gradient(145deg,var(--district-color),color-mix(in srgb,var(--district-color) 72%,#143957)) !important;
  border:1px solid rgba(255,255,255,.22) !important;
  box-shadow:0 8px 16px color-mix(in srgb,var(--district-color) 20%,transparent) !important;
}
.dashboard-page .district-visual-card::before{height:4px !important;background:rgba(255,255,255,.55) !important;}
.dashboard-page .district-visual-card::after{width:58px !important;height:58px !important;right:-18px !important;bottom:-18px !important;background:rgba(255,255,255,.10) !important;}
.dashboard-page .district-visual-top{margin-bottom:1px !important;}
.dashboard-page .district-visual-badge{padding:3px 6px !important;background:rgba(255,255,255,.16) !important;color:#fff !important;font-size:7px !important;}
.dashboard-page .district-visual-pin{font-size:13px !important;color:#fff !important;}
.dashboard-page .district-visual-name{font-size:11px !important;font-weight:900 !important;color:#fff !important;line-height:1.12 !important;max-width:95% !important;}
.dashboard-page .district-visual-metric{gap:4px !important;}
.dashboard-page .district-visual-card strong{font-size:23px !important;color:#fff !important;line-height:1 !important;}
.dashboard-page .district-visual-metric small{font-size:8px !important;color:rgba(255,255,255,.9) !important;}
.dashboard-page .district-visual-bar{height:5px !important;background:rgba(255,255,255,.22) !important;}
.dashboard-page .district-visual-bar i{background:#fff !important;box-shadow:none !important;}
.dashboard-page .district-visual-share{font-size:8px !important;color:rgba(255,255,255,.88) !important;}
.dashboard-page .district-visual-card:hover,.dashboard-page .district-visual-card.active{transform:translateY(-2px) !important;box-shadow:0 12px 20px color-mix(in srgb,var(--district-color) 26%,transparent) !important;}

/* Public dashboard: six equal, compact cards below the map */
.public-v509-main .public-district-visual-grid{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  grid-auto-rows:108px !important;
  gap:10px !important;
  margin-top:12px !important;
  min-height:0 !important;
  height:auto !important;
  align-content:start !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
}
.public-v509-main .public-district-visual-grid::before{display:none !important;}
.public-v509-main .district-visual-card,.public-v509-main .district-shape-au,.public-v509-main .district-shape-pl,.public-v509-main .district-shape-kl,.public-v509-main .district-shape-as,.public-v509-main .district-shape-pb,.public-v509-main .district-shape-ku{
  min-height:0 !important;height:108px !important;grid-area:auto !important;
}
@media(max-width:1100px){
  .dashboard-page .command-map-layout{grid-template-columns:1fr !important;}
  .dashboard-page .district-visual-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important;grid-auto-rows:92px !important;}
}
@media(max-width:700px){
  .dashboard-page .district-visual-grid,.public-v509-main .public-district-visual-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}
@media(max-width:480px){
  .dashboard-page .district-visual-grid,.public-v509-main .public-district-visual-grid{grid-template-columns:1fr !important;}
}

/* v5.2.11 — public dashboard highlights: latest projects, progress snapshot, documentation */
.public-highlight-grid-v511{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:14px;margin-bottom:14px;align-items:stretch}
.public-highlight-grid-v511>.public-panel-v509{margin:0}
.public-progress-cards-v511{display:grid;gap:10px;padding:2px 14px 11px}
.public-progress-card-v511{display:grid;grid-template-columns:46px 1fr;gap:11px;align-items:center;border:1px solid #e5edf4;border-radius:15px;padding:12px 13px;background:#fbfdff}
.public-progress-card-v511.physical{background:linear-gradient(135deg,#eff7ff 0%,#fff 78%)}
.public-progress-card-v511.finance{background:linear-gradient(135deg,#eefbf5 0%,#fff 78%)}
.progress-card-icon-v511{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-weight:950;font-size:17px;background:#2f80ed;color:#fff;box-shadow:0 7px 15px rgba(47,128,237,.18)}
.finance .progress-card-icon-v511{background:#18a97a;box-shadow:0 7px 15px rgba(24,169,122,.18)}
.progress-card-copy-v511 span{display:block;font-size:10px;font-weight:850;color:#698097;margin-bottom:3px}
.progress-card-copy-v511 strong{display:block;font-size:28px;line-height:1;color:#193654;letter-spacing:-.02em}
.progress-track-v511{height:8px;background:#e7edf3;border-radius:99px;overflow:hidden;margin-top:8px}
.progress-track-v511 i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2f80ed,#69aaf5)}
.finance .progress-track-v511 i{background:linear-gradient(90deg,#18a97a,#55c79d)}
.progress-card-copy-v511 small{display:block;font-size:9px;color:#8b9cad;margin-top:5px}
.progress-public-foot-v511{display:flex;flex-wrap:wrap;gap:7px;padding:0 14px 13px}.progress-public-foot-v511 span{font-size:9px;font-weight:780;color:#70859a;background:#f4f8fb;border:1px solid #e2ebf2;border-radius:999px;padding:6px 8px}.progress-public-foot-v511 b{color:#173a58;font-size:10px}
.recent-list-v511{display:grid;gap:7px;padding:2px 12px 13px}
.recent-card-v511{display:grid;grid-template-columns:34px minmax(0,1fr) 62px 50px;gap:9px;align-items:center;padding:10px;border:1px solid #e7eef4;border-radius:13px;background:#fbfdff;text-decoration:none;transition:.18s ease}
.recent-card-v511:hover{transform:translateY(-2px);border-color:#cfe0ef;background:#fff;box-shadow:0 9px 20px rgba(25,62,95,.07)}
.recent-status-v511{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--status-color) 12%,#fff);color:var(--status-color);font-size:15px;font-weight:950}
.recent-info-v511{min-width:0}.recent-info-v511 b{display:block;font-size:11px;color:#23435f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-info-v511 small{display:block;margin-top:3px;font-size:9px;color:#7d91a5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.recent-metric-v511{text-align:right}.recent-metric-v511 b{display:block;font-size:13px;color:#193654}.recent-metric-v511 small{display:block;font-size:8px;color:#8497aa}
.recent-date-v511{text-align:right;font-size:9px;font-weight:800;color:#8a9dae}
.documentation-panel-v511{margin-bottom:14px}
.public-photo-grid-v511{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;padding:2px 13px 14px}
.public-photo-card-v511{border:1px solid #e4ecf3;border-radius:15px;padding:0;background:#fff;overflow:hidden;text-align:left;cursor:pointer;box-shadow:0 7px 18px rgba(29,66,99,.05);transition:.18s ease}
.public-photo-card-v511:hover{transform:translateY(-4px);box-shadow:0 15px 28px rgba(29,66,99,.11);border-color:#cddfea}
.public-photo-image-v511{display:block;position:relative;aspect-ratio:4/3;background:#eef3f6;overflow:hidden}.public-photo-image-v511 img{display:block;width:100%;height:100%;object-fit:cover;transition:.25s ease}.public-photo-card-v511:hover .public-photo-image-v511 img{transform:scale(1.045)}
.public-photo-overlay-v511{position:absolute;left:9px;bottom:9px;padding:5px 8px;border-radius:999px;background:rgba(20,52,79,.78);color:#fff;font-size:8px;font-weight:850;opacity:0;transform:translateY(5px);transition:.18s ease}.public-photo-card-v511:hover .public-photo-overlay-v511{opacity:1;transform:none}
.public-photo-info-v511{display:block;padding:9px 10px 10px}.public-photo-info-v511>b{display:block;font-size:10.5px;line-height:1.28;color:#21435f;min-height:28px}.public-photo-info-v511>small{display:block;margin-top:4px;font-size:8.5px;color:#7e92a5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.public-photo-info-v511>span{display:flex;justify-content:space-between;align-items:center;gap:7px;margin-top:7px}.public-photo-info-v511 i{font-style:normal;font-size:8px;font-weight:900;color:var(--status-color);background:color-mix(in srgb,var(--status-color) 10%,#fff);padding:4px 6px;border-radius:999px}.public-photo-info-v511 em{font-style:normal;font-size:8px;color:#8b9bab;font-weight:850}
.public-photo-empty-v511{margin:0 13px 14px;border:1px dashed #cad8e3;border-radius:14px;padding:28px 15px;text-align:center;background:#fbfdff}.public-photo-empty-v511 span{display:block;font-size:28px;margin-bottom:6px}.public-photo-empty-v511 strong{display:block;font-size:12px;color:#274861}.public-photo-empty-v511 p{margin:4px 0 0;font-size:9px;color:#8295a7}
.public-photo-modal-v511{position:fixed;inset:0;background:rgba(8,22,34,.82);display:grid;place-items:center;padding:22px;z-index:9999}.public-photo-modal-v511 .photo-modal-box-v511{max-width:min(1100px,94vw);max-height:90vh;background:#07131e;border-radius:16px;box-shadow:0 25px 70px rgba(0,0,0,.42);overflow:hidden;position:relative}.public-photo-modal-v511 img{display:block;max-width:94vw;max-height:82vh;object-fit:contain;background:#06111a}.public-photo-modal-v511 .photo-modal-caption-v511{padding:9px 12px;color:#e8f1f7;font-size:11px}.public-photo-modal-v511 .photo-modal-close-v511{position:absolute;right:9px;top:9px;width:34px;height:34px;border:0;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font-size:20px;line-height:1;cursor:pointer;z-index:2}
@media(max-width:1040px){.public-highlight-grid-v511{grid-template-columns:1fr}.public-photo-grid-v511{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.public-photo-grid-v511{grid-template-columns:repeat(2,minmax(0,1fr))}.recent-card-v511{grid-template-columns:34px minmax(0,1fr) 56px}.recent-date-v511{display:none}}
@media(max-width:500px){.public-photo-grid-v511{grid-template-columns:1fr}.public-progress-card-v511{grid-template-columns:40px 1fr}.progress-card-icon-v511{width:38px;height:38px}.progress-card-copy-v511 strong{font-size:25px}}


/* ===== v5.2.12 — Strong Navy / Royal Blue / Gold visual refresh =====
/* A generic navy-blue + gold government visual language; no political marks or imagery. */
:root{
  --navy:#061D45;
  --primary:#155EEF;
  --primary-2:#0A2F6B;
  --primary-3:#EAF2FF;
  --sidebar:#062B63;
  --sidebar-deep:#03183D;
  --brand-blue:#155EEF;
  --brand-blue-2:#0A3C8C;
  --brand-sky:#2EA3F2;
  --brand-gold:#D6A23A;
  --brand-gold-soft:#FFF6DE;
  --card:#fff;
  --bg:#F2F6FC;
  --line:#D6E1EF;
  --text:#183557;
  --muted:#617792;
  --shadow:0 14px 34px rgba(7,37,82,.10);
}
body{background:linear-gradient(180deg,#F4F7FC 0%,#EEF3FA 100%);color:var(--text)}
.topbar{border-bottom:2px solid #E2B85A;box-shadow:0 3px 16px rgba(6,29,69,.05)}
.brand strong{color:var(--brand-navy,#061D45)}
.user-badge{background:#EEF4FF;color:#163B71;border:1px solid #D4E1F5}
.sidebar{background:linear-gradient(180deg,#073B88 0%,#06295F 52%,#041B40 100%);box-shadow:10px 0 32px rgba(4,27,64,.16)}
.sidebar-section{color:#BBD5FA}
.sidebar nav a{color:#E7F0FF}
.sidebar nav a:hover,.sidebar nav a.active{background:linear-gradient(90deg,rgba(255,255,255,.16),rgba(255,255,255,.08));box-shadow:inset 3px 0 0 #E2B85A}
.sidebar-note{color:#A8C8F2}
.page-title h1,.section-heading h3,.card-heading h3{color:var(--brand-navy,#061D45)}
.btn-primary{background:linear-gradient(135deg,#155EEF 0%,#0A3C8C 100%);box-shadow:0 8px 18px rgba(21,94,239,.20)}
.btn-primary:hover{background:linear-gradient(135deg,#0F55D5 0%,#082F73 100%)}
.btn-light:hover{border-color:#B7CBE4;background:#F2F7FF}
.card{border-color:#D6E1EF;box-shadow:var(--shadow)}
.stat,.package-summary-card,.package-project-card,.public-kpi-v509-card,.public-panel-v509{border-color:#D6E1EF;box-shadow:0 12px 28px rgba(7,37,82,.08)}
.stat:after{background:#E8F0FF}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#4A86EE;box-shadow:0 0 0 3px rgba(21,94,239,.13)}
.heading-icon{background:#E7F0FF;color:#155EEF;border:1px solid #D5E4FB}
.wizard-step.active{border-color:#4A86EE;background:linear-gradient(135deg,#F8FBFF,#EAF2FF);box-shadow:0 10px 22px rgba(21,94,239,.16)}
.wizard-step.active>span{background:linear-gradient(135deg,#155EEF,#0A3C8C)}
.auto-category-card{border-color:#CFE0F6;background:linear-gradient(135deg,#F5F9FF,#EAF3FF)}
.upload-dropzone{border-color:#79A8EC;background:linear-gradient(135deg,#F5F9FF,#EAF2FF)}
.upload-dropzone:hover{background:#E7F0FF;border-color:#155EEF}
.upload-dropzone .upload-icon{color:#155EEF;box-shadow:0 8px 18px rgba(21,94,239,.14)}
.monitoring-hero-card{background:linear-gradient(135deg,#0A2F6B,#155EEF)!important;border-color:#1E63C8!important;box-shadow:0 18px 38px rgba(6,29,69,.18)!important}
.monitoring-hero-card::after{background:radial-gradient(circle,#D6A23A33,transparent 65%)!important}
.period-card.active,.quarter-period-card.active{border-color:#4A86EE!important;background:linear-gradient(135deg,#F8FBFF,#EAF2FF)!important;box-shadow:0 9px 20px rgba(21,94,239,.16)!important}
.period-card.active .period-badge,.quarter-period-card.active .period-badge{background:linear-gradient(135deg,#155EEF,#0A3C8C)!important}
.dashboard-page .admin-command-hero{background:linear-gradient(135deg,#061D45 0%,#0A3C8C 58%,#155EEF 100%)!important;border-color:#114B9F!important;box-shadow:0 20px 40px rgba(6,29,69,.20)!important}
.dashboard-page .admin-command-hero::after{background:radial-gradient(circle at 72% 26%,rgba(214,162,58,.25),transparent 38%)!important}
.dashboard-page .admin-eyebrow-dot{background:#D6A23A!important;box-shadow:0 0 0 5px rgba(214,162,58,.18)!important}
.dashboard-page .admin-command-copy h1{color:#fff!important}
.dashboard-page .admin-command-copy p{color:#DCEAFF!important}
.dashboard-page .admin-hero-meta span{background:rgba(255,255,255,.10)!important;border-color:rgba(255,255,255,.16)!important;color:#E8F1FF!important}
.dashboard-page .admin-year-control{background:rgba(255,255,255,.10)!important;border-color:rgba(255,255,255,.18)!important}
.dashboard-page .admin-year-control label{color:#F7E7B8!important}
.dashboard-page .admin-year-control select{background:#fff!important;color:#143A70!important}
.kpi-card.kpi-blue{background:linear-gradient(135deg,#0E57C9,#155EEF)!important;color:#fff}
.kpi-card.kpi-green{background:linear-gradient(135deg,#0C7B5B,#0C9B70)!important;color:#fff}
.kpi-card.kpi-amber{background:linear-gradient(135deg,#D08F1D,#D6A23A)!important;color:#fff}
.kpi-card.kpi-red{background:linear-gradient(135deg,#B72F45,#D64F63)!important;color:#fff}
.kpi-card .kpi-label,.kpi-card .kpi-meta,.kpi-card .kpi-value{color:#fff!important}
.kpi-card .kpi-icon{background:rgba(255,255,255,.16)!important;color:#fff!important;border:1px solid rgba(255,255,255,.26)!important}
.kpi-card .kpi-corner{color:rgba(255,255,255,.68)!important}
.admin-mini-progress{background:rgba(255,255,255,.20)!important}.admin-mini-progress span{background:#fff!important}
.dashboard-page .section-link{color:#155EEF}
.dashboard-page .dashboard-card{background:rgba(255,255,255,.98)}
.dashboard-page .status-command-panel .donut{box-shadow:0 16px 30px rgba(7,37,82,.10)}
.dashboard-page .legend-row:hover,.dashboard-page .legend-row.focused{background:#EEF4FF!important;border-color:#B8CDE9!important}
.dashboard-page .legend-row.focused{box-shadow:inset 3px 0 0 #D6A23A!important}
.dashboard-page .warning-live-badge{background:#FFF3F3;border-color:#F0C1C7}
.dashboard-page .warning-command-summary{background:linear-gradient(135deg,#F8FBFF,#EFF5FD)!important;border-color:#D8E5F2!important}
.dashboard-page .warning-command-summary strong{color:#B52E42!important}
.dashboard-page .map-command-panel .section-heading h3,.dashboard-page .infra-command-panel .section-heading h3{color:#0A2F6B}
.dashboard-page .dashboard-map-shell{border-color:#BFD2E8!important;box-shadow:0 12px 28px rgba(6,29,69,.10)}
.dashboard-page .district-visual-grid{background:linear-gradient(135deg,#EEF4FB,#F8FAFD)!important;border-color:#CBD8E8!important}
.public-dashboard-v517 .public-v509-topbar,.public-dashboard-v517 .public-topbar{border-bottom:2px solid #E2B85A!important}
.public-dashboard-v517 .public-hero-v509,.public-dashboard-simple .public-dashboard-head{background:transparent}
.public-dashboard-v517 .public-hero-v509{box-shadow:0 18px 34px rgba(6,29,69,.16)!important;border-color:#123F82!important}
.public-dashboard-v517 .hero-v509-overlay{background:linear-gradient(90deg,rgba(6,29,69,.86),rgba(10,60,140,.44),rgba(10,60,140,.05))!important}
.public-dashboard-v517 .public-hero-badge{background:rgba(214,162,58,.18)!important;border-color:rgba(214,162,58,.42)!important;color:#FFF4CF!important}
.public-dashboard-v517 .hero-v509-year select{border-color:#C1D3E9!important}
.public-dashboard-v517 .public-filter-v509{border-color:#CBD8E8!important;background:#FBFDFF!important;box-shadow:0 11px 24px rgba(7,37,82,.08)!important}
.public-dashboard-v517 .public-kpi-v509-card.blue{background:linear-gradient(135deg,#0E57C9,#155EEF)!important;color:#fff!important}
.public-dashboard-v517 .public-kpi-v509-card.green{background:linear-gradient(135deg,#0C7B5B,#0C9B70)!important;color:#fff!important}
.public-dashboard-v517 .public-kpi-v509-card.amber{background:linear-gradient(135deg,#D08F1D,#D6A23A)!important;color:#fff!important}
.public-dashboard-v517 .public-kpi-v509-card.red{background:linear-gradient(135deg,#B72F45,#D64F63)!important;color:#fff!important}
.public-dashboard-v517 .public-kpi-v509-card small,.public-dashboard-v517 .public-kpi-v509-card strong,.public-dashboard-v517 .public-kpi-v509-card em{color:#fff!important}
.public-dashboard-v517 .public-kpi-v509-card{border-color:rgba(255,255,255,.18)!important;box-shadow:0 13px 28px rgba(7,37,82,.12)!important}
.public-dashboard-v517 .public-panel-v509{border-color:#CAD9EA!important}
.public-dashboard-v517 .panel-kicker{color:#D08E22!important}
.public-dashboard-v517 .status-item-v517:hover,.public-dashboard-v517 .status-item-v517.active{background:#EDF4FF!important;border-color:#B9CDE9!important}
.public-dashboard-v517 .status-item-v517.active{box-shadow:inset 4px 0 0 #D6A23A!important}
.public-dashboard-v517 .infra-card-v517{box-shadow:0 12px 26px rgba(7,37,82,.09)!important}
.public-dashboard-v517 .district-visual-card{box-shadow:0 12px 24px rgba(7,37,82,.13),inset 0 1px 0 rgba(255,255,255,.30)!important}
.public-dashboard-v517 .public-highlight-grid-v511 .public-progress-card-v511{border-color:#D8E3EF!important}
.public-dashboard-v517 .public-photo-card-v511{border-color:#D7E2EE!important}
.cms-tabbar{background:linear-gradient(135deg,#EEF4FB,#F7FAFD)!important;border-color:#CBD8E8!important}
.cms-tab.active{background:linear-gradient(135deg,#FFFFFF,#EEF4FF)!important;color:#0A2F6B!important;box-shadow:0 6px 15px rgba(7,37,82,.10)!important}
.cms-section-number{background:linear-gradient(135deg,#155EEF,#0A3C8C)!important;box-shadow:0 8px 16px rgba(21,94,239,.20)}
.cms-dashboard-hero-edit{background:linear-gradient(135deg,#EEF4FF,#FFF8E8)!important;border-color:#D3E1EF!important}
.cms-theme-grid .theme-picker{border-color:#CBD8E8!important;background:linear-gradient(135deg,#FFFFFF,#F4F7FB)!important}
.cms-save-bar-v522{background:linear-gradient(90deg,#FBFDFF,#F5F8FC)!important;border-top-color:#D3DFEC!important}
.public-footer-note,.dashboard-footer-note{color:#6E8198}

@media(max-width:900px){.kpi-card .kpi-value{font-size:26px!important}.public-dashboard-v517 .public-kpi-v509-card strong{font-size:25px!important}}
/* v5.2.13 OPD account controls */
.opd-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center;justify-content:flex-end}.inline-form{display:inline-flex;margin:0}.btn-success{background:linear-gradient(135deg,#138a58,#0e6f47);color:#fff;border-color:#0e6f47}.btn-danger{background:linear-gradient(135deg,#dc3545,#b42332);color:#fff;border-color:#b42332}.opd-actions .btn{min-width:82px}.muted.small{font-size:12px}

/* v5.2.14 - OPD account management */
.opd-actions .btn-outline-danger{background:#fff;color:#b42332;border:1px solid #dc3545;}
.opd-actions .btn-outline-danger:hover{background:#fff1f2;color:#8e1f2a;border-color:#b42332;}
.opd-actions .btn-danger,.opd-actions .btn-success,.opd-actions .btn-outline-danger{min-height:34px;font-weight:800;}

/* v5.2.15 Profile redesign */
.profile-page-title{align-items:center}.profile-back-btn{background:#fff;border:1px solid #cfdeeb;color:#234e70;font-size:12px;font-weight:850}.profile-v522-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:18px;margin-bottom:18px}.profile-identity-card,.profile-account-card{background:#fff;border:1px solid #d5e2ee;border-radius:18px;box-shadow:0 12px 32px rgba(6,29,69,.07);padding:22px}.profile-identity-card{background:linear-gradient(135deg,#061d45 0%,#0a3c8c 58%,#155eef 100%);color:#fff;position:relative;overflow:hidden}.profile-identity-card:after{content:"";position:absolute;width:240px;height:240px;border-radius:50%;right:-80px;top:-90px;background:rgba(255,255,255,.08)}.profile-identity-top{display:flex;gap:18px;align-items:center;position:relative;z-index:1}.profile-avatar-v522{width:88px;height:88px;border-radius:24px;display:grid;place-items:center;font-size:28px;font-weight:950;letter-spacing:.04em;background:linear-gradient(145deg,#fff,#e6effa);color:#0a3c8c;box-shadow:0 12px 26px rgba(0,0,0,.16);flex:0 0 auto}.profile-identity-copy h2{margin:0;font-size:24px;line-height:1.15;letter-spacing:-.4px}.profile-identity-copy p{margin:5px 0 9px;color:#cfe3fb;font-size:13px}.profile-badges-v522{display:flex;flex-wrap:wrap;gap:7px}.profile-role-badge,.profile-status-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;font-size:10px;font-weight:900}.profile-role-badge{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22)}.profile-role-badge.admin{color:#fff2bf;background:rgba(214,162,58,.2);border-color:rgba(246,210,113,.45)}.profile-role-badge.opd{color:#e5f2ff}.profile-status-badge{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#fff}.profile-status-badge i{width:7px;height:7px;background:#5fe0ad;border-radius:50%;display:block}.profile-access-box{position:relative;z-index:1;margin-top:20px;padding:16px 18px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);border-radius:14px}.profile-section-kicker{text-transform:uppercase;letter-spacing:.12em;font-size:9px;font-weight:900;color:#c3ddf7;margin-bottom:5px}.profile-access-box strong{font-size:14px}.profile-access-box p{margin:5px 0 0;color:#d8e8f8;font-size:11px;line-height:1.55}.profile-section-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px}.profile-section-heading>div>span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#8094a8;font-weight:900}.profile-section-heading>div>strong{display:block;color:#173f62;font-size:17px;margin-top:3px}.profile-section-heading.compact{margin-top:18px}.profile-section-icon,.profile-shield{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#eef5fb;color:#1769d3;font-weight:900}.profile-info-list{display:grid;grid-template-columns:1fr 1fr;gap:0}.profile-info-list>div{padding:14px 0;border-top:1px solid #edf2f7}.profile-info-list>div:nth-child(-n+2){border-top:0}.profile-info-list span{display:block;font-size:10px;color:#7c91a5;margin-bottom:5px}.profile-info-list strong{display:block;font-size:13px;color:#294f6d;line-height:1.35}.text-green{color:#168362!important}.profile-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.profile-stat-card{border-radius:16px;padding:17px 18px;color:#fff;box-shadow:0 10px 25px rgba(6,29,69,.08);position:relative;overflow:hidden}.profile-stat-card:after{content:"";position:absolute;width:100px;height:100px;border-radius:50%;right:-35px;top:-40px;background:rgba(255,255,255,.08)}.profile-stat-card span{display:block;font-size:10px;font-weight:850;opacity:.9}.profile-stat-card strong{display:block;font-size:26px;line-height:1;margin:7px 0}.profile-stat-card small{font-size:9px;opacity:.85}.profile-stat-card.blue{background:linear-gradient(135deg,#0a3c8c,#155eef)}.profile-stat-card.gold{background:linear-gradient(135deg,#a66e0b,#d6a23a)}.profile-stat-card.teal{background:linear-gradient(135deg,#087d78,#18a97a)}.profile-stat-card.violet{background:linear-gradient(135deg,#5b45b3,#7c5ce6)}.profile-main-grid-v522{display:grid;grid-template-columns:1.35fr .65fr;gap:18px}.profile-form-card-v522,.profile-activity-card-v522{padding:22px}.profile-form-v522 .field label{font-size:11px}.profile-form-v522 input{font-size:14px;min-height:46px}.profile-readonly-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.profile-form-tip{margin-top:4px;padding:11px 13px;border-radius:11px;background:#eef6ff;border:1px solid #d7e8fb;color:#56728a;font-size:10px;line-height:1.5}.profile-security-divider{height:1px;background:#e9eff4;margin:23px 0 19px}.profile-save-row{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:5px;padding-top:17px;border-top:1px solid #edf2f7}.profile-save-row span{font-size:10px;color:#8294a5}.last-login-box{padding:13px 14px;border-radius:12px;background:#f2f7fc;border:1px solid #dce7f0;margin-bottom:15px}.last-login-box span{display:block;font-size:9px;color:#7d92a6;text-transform:uppercase;letter-spacing:.08em;font-weight:900}.last-login-box strong{display:block;font-size:14px;color:#224f73;margin-top:4px}.activity-list-v522{display:grid;gap:0}.activity-row-v522{display:grid;grid-template-columns:14px 1fr;gap:11px;padding:12px 0;border-bottom:1px solid #edf2f7}.activity-row-v522:last-child{border-bottom:0}.activity-dot-v522{width:9px;height:9px;border-radius:50%;background:#1aa77e;margin-top:5px;box-shadow:0 0 0 4px #e5f7f0}.activity-row-v522 strong{font-size:11px;color:#2b5675}.activity-row-v522 p{margin:3px 0 4px;font-size:10px;line-height:1.45;color:#71869a}.activity-row-v522 small{font-size:9px;color:#9aa9b6}.activity-empty-v522{padding:15px;border:1px dashed #d6e2eb;border-radius:11px;color:#7c90a2;font-size:10px;line-height:1.5;background:#fafcfe}
@media(max-width:980px){.profile-v522-grid,.profile-main-grid-v522{grid-template-columns:1fr}.profile-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.profile-page-title{align-items:flex-start}.profile-back-btn{width:100%;justify-content:center}.profile-identity-top{align-items:flex-start}.profile-avatar-v522{width:72px;height:72px;border-radius:20px;font-size:23px}.profile-identity-copy h2{font-size:20px}.profile-info-list,.profile-readonly-grid{grid-template-columns:1fr}.profile-info-list>div:nth-child(2){border-top:1px solid #edf2f7}.profile-stat-grid{grid-template-columns:1fr}.profile-save-row{align-items:stretch;flex-direction:column}.profile-save-row .btn{width:100%;justify-content:center}}

.cms-footer-preview-v516{margin-top:14px;padding:13px;border:1px solid #dbe7f1;border-radius:12px;background:#fbfdff}.cms-footer-preview-v516 .cms-preview-kicker{display:block;font-size:8px;font-weight:900;letter-spacing:.12em;color:#7c91a7;text-transform:uppercase;margin-bottom:8px}.cms-footer-preview-demo{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:10px;background:#f3f7fb;border:1px solid #e2eaf2}.cms-footer-preview-demo strong{font-size:12px;color:#27445f}.cms-footer-preview-demo span{font-size:10px;color:#768ca2}.footer-demo-left{text-align:left;align-items:flex-start}.footer-demo-center{text-align:center;align-items:center}.footer-demo-right{text-align:right;align-items:flex-end}

/* v5.2.17 Backup & Restore */
.backup-page-title{align-items:center}.backup-security-badge{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border-radius:999px;background:#fff4f2;border:1px solid #f1c3bc;color:#a6362e;font-weight:900;font-size:11px}.backup-safety-banner{display:flex;align-items:center;gap:12px;margin:0 0 18px;padding:14px 16px;border:1px solid #ead9a8;border-radius:14px;background:linear-gradient(135deg,#fffaf0,#fff7e2);color:#6d5721;font-size:12px;line-height:1.5}.backup-safety-banner strong{color:#704e00}.backup-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.backup-action-card{display:flex;gap:16px;align-items:flex-start;padding:22px}.backup-db-card{background:linear-gradient(135deg,#f8fbff,#eaf2ff);border-color:#c8d9f1}.backup-upload-card{background:linear-gradient(135deg,#f5fcfa,#e7f7f1);border-color:#c9e3d8}.backup-icon{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;font-size:26px;background:#fff;box-shadow:0 10px 24px rgba(7,37,82,.08);flex:0 0 auto}.backup-action-copy h2{margin:3px 0 5px;font-size:21px;color:#0a2f6b}.backup-action-copy p{margin:0 0 14px;font-size:12px;line-height:1.6;color:#617792}.backup-kicker{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:9px;font-weight:900;color:#7a91a9}.backup-grid-main{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.backup-panel,.backup-history-panel{padding:22px}.backup-panel-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:16px}.backup-panel-head h2{margin:4px 0 5px;font-size:19px;color:#0a2f6b}.backup-panel-head p{margin:0;color:#6e8198;font-size:11px}.backup-danger-chip,.backup-safe-chip{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;font-size:9px;font-weight:900}.backup-danger-chip{background:#fff0f0;border:1px solid #f0c6cb;color:#b33042}.backup-safe-chip{background:#eaf8f1;border:1px solid #c8e5d7;color:#16835f}.backup-restore-form{display:flex;gap:12px;align-items:stretch}.backup-drop{flex:1;display:flex;align-items:center;gap:10px;padding:14px 15px;border:1.5px dashed #b8cde6;border-radius:13px;background:#f9fbff;cursor:pointer}.backup-drop>span{font-size:24px}.backup-drop strong{display:block;font-size:12px;color:#244d70}.backup-drop small{display:block;margin-top:2px;font-size:10px;color:#8094a8}.backup-drop input{position:absolute;width:1px;height:1px;opacity:.01;pointer-events:auto}.backup-list{display:grid;gap:9px}.backup-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 13px;border:1px solid #e1e9f1;border-radius:12px;background:#fbfdff}.backup-row strong{display:block;font-size:11px;color:#274e6e}.backup-row small{display:block;margin-top:3px;font-size:9px;color:#8295a8}.backup-empty{padding:16px;border:1px dashed #d5e1eb;border-radius:11px;background:#fbfdff;color:#7c90a2;font-size:11px;line-height:1.5}.backup-panel code{font-size:10px;background:#edf3f8;border-radius:5px;padding:2px 5px;color:#244d70}.backup-action-copy .btn{min-height:40px}
@media(max-width:900px){.backup-action-grid,.backup-grid-main{grid-template-columns:1fr}.backup-restore-form{flex-direction:column}.backup-restore-form .btn{width:100%;justify-content:center}.backup-safety-banner{align-items:flex-start;flex-direction:column;gap:5px}}

/* v5.2.19: latest OPD update visual cards */
.dashboard-page .recent-opd-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.dashboard-page .recent-opd-card{display:flex;flex-direction:column;gap:8px;padding:16px 17px;border:1px solid #dbe6f2;border-radius:16px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);text-decoration:none;color:#173a5e;min-height:190px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.dashboard-page .recent-opd-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(12,61,108,.10);border-color:#9fc0df}
.dashboard-page .recent-opd-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.dashboard-page .recent-opd-type,.dashboard-page .recent-opd-quarter{font-size:11px;font-weight:800;line-height:1.2;border-radius:999px;padding:6px 9px;white-space:nowrap}
.dashboard-page .recent-opd-type{background:#eaf3ff;color:#155eef}
.dashboard-page .recent-opd-quarter{background:#eefbf6;color:#0c8b63}
.dashboard-page .recent-opd-name{font-size:13px!important;font-weight:800!important;color:#173f6a;line-height:1.35}
.dashboard-page .recent-opd-package{font-size:15px!important;font-weight:800!important;color:#0b2f55;line-height:1.4;min-height:42px}
.dashboard-page .recent-opd-location{font-size:11.5px;color:#63758a;line-height:1.35}
.dashboard-page .recent-opd-progress-row{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#71839a}
.dashboard-page .recent-opd-progress-row strong{font-size:13px;color:#153c64}
.dashboard-page .recent-opd-progress{height:7px;border-radius:999px;background:#e7edf5;overflow:hidden}
.dashboard-page .recent-opd-progress span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#155eef,#2ea3f2)}
.dashboard-page .recent-opd-card-bottom{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:7px;border-top:1px solid #e8eef5}
.dashboard-page .recent-opd-status{font-size:10.5px;font-weight:800;color:#0c8b63;background:#ebfaf4;padding:5px 8px;border-radius:999px}
.dashboard-page .recent-opd-date{font-size:10.5px;font-weight:700;color:#6b7f96;text-align:right}
@media(max-width:1050px){.dashboard-page .recent-opd-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.dashboard-page .recent-opd-grid{grid-template-columns:1fr}.dashboard-page .recent-opd-card{min-height:175px}}

/* V5.2.20: Correlation classification moved into Identity step */
.identity-correlation-card{margin-top:14px}.correlation-select-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.identity-correlation-card .field label{font-size:13.5px;font-weight:800;color:#28445f}.identity-correlation-card select{min-height:52px;font-size:14px;line-height:1.45;padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:#fff}.identity-correlation-card select:focus{border-color:#155EEF;box-shadow:0 0 0 3px rgba(21,94,239,.12)}.identity-correlation-card .has-selection select{border-color:#155EEF;background:linear-gradient(180deg,#fff,#f3f8ff)}.identity-correlation-card .field:after{content:'Opsional';display:block;margin-top:5px;font-size:10px;color:#7c8ea3}.docs-main-card{grid-column:1/-1}
@media(max-width:900px){.correlation-select-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.correlation-select-grid{grid-template-columns:1fr}}

.docs-grid-single{grid-template-columns:1fr}.docs-grid-single .form-section-card{width:100%}

/* v5.2.21 – compact identity correlation + progress table/card switch */
.identity-correlation-inline{margin-top:16px;padding:15px 16px;border:1px solid #d9e5f2;border-radius:14px;background:linear-gradient(180deg,#f9fcff,#f3f8fd)}
.identity-correlation-inline .inline-section-heading{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.identity-correlation-inline .inline-section-heading .heading-icon{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:#e5f0ff;color:#155EEF;font-weight:900}
.identity-correlation-inline h4{margin:0;font-size:15px;color:#0A2F6B}.identity-correlation-inline p{margin:2px 0 0;font-size:11px;color:#71859c}
.identity-correlation-inline .correlation-select-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.identity-correlation-inline .field label{font-size:12px!important;font-weight:800;color:#28445f}.identity-correlation-inline select{min-height:48px;font-size:13px!important}
.progress-list-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:16px 0 10px;padding:0 2px}
.progress-list-toolbar>div:first-child{display:flex;align-items:baseline;gap:10px}.progress-list-toolbar strong{font-size:17px;color:var(--navy)}.progress-list-toolbar span{font-size:11px;color:var(--muted)}
.view-switch{display:inline-flex;padding:3px;border:1px solid #d4e0ec;border-radius:10px;background:#f7fafe;gap:3px}.view-switch-btn{display:inline-flex;align-items:center;gap:5px;padding:8px 11px;border-radius:8px;color:#58708a;font-size:11px;font-weight:800;text-decoration:none}.view-switch-btn:hover{background:#fff;color:#155EEF}.view-switch-btn.active{background:#155EEF;color:#fff;box-shadow:0 4px 10px rgba(21,94,239,.2)}
.progress-table-card{padding:0;overflow:hidden}.progress-data-table{width:100%;border-collapse:separate;border-spacing:0;min-width:0}.progress-data-table thead th{padding:14px 12px;background:#f3f7fb;color:#36516d;font-size:11px;font-weight:900;border-bottom:1px solid #dce7f2;white-space:nowrap}.progress-data-table tbody td{padding:13px 12px;border-bottom:1px solid #edf2f7;vertical-align:top;font-size:11px;color:#4e667d}.progress-data-table tbody tr:hover{background:#f9fcff}.table-package-title strong{display:block;font-size:13px;color:var(--navy);line-height:1.35}.table-package-title span{display:block;margin-top:4px;font-size:10px;color:#58708a}.table-package-title small{display:block;margin-top:3px;font-size:9px;color:#8a9bad}.table-status-cell{display:flex;flex-direction:column;gap:7px;align-items:flex-start}.infra-pill{display:inline-flex;padding:5px 7px;border-radius:999px;background:#edf4ff;color:#2563a9;font-size:9px;font-weight:800}.table-progress-item{margin-bottom:7px;min-width:120px}.table-progress-item:last-child{margin-bottom:0}.table-progress-item>span{display:flex;justify-content:space-between;gap:7px;font-size:9px;color:#74899c;font-weight:800}.table-progress-item b{color:var(--navy)}.table-progress-item .mini-progress{margin-top:4px}.table-location{display:block;font-size:10px;font-weight:800;color:#35536f}.progress-data-table td>small,.table-location+small{display:block;margin-top:3px;font-size:9px;color:#8b9aaa}.table-actions{display:flex;gap:6px;flex-wrap:wrap}.progress-data-table .btn-sm{min-height:32px;padding:7px 9px;font-size:10px}
.hero-status-editor{display:flex;flex-direction:column;gap:4px;align-items:flex-end;margin-top:4px}.hero-status-editor span{font-size:9px;color:#dbe8f7;font-weight:800}.hero-status-editor select{min-width:150px;min-height:38px;padding:8px 10px;border-radius:9px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.12);color:#fff;font-size:11px;font-weight:800;outline:none}.hero-status-editor select option{color:#183956;background:#fff}
@media(max-width:1000px){.identity-correlation-inline .correlation-select-grid{grid-template-columns:1fr 1fr}.progress-data-table{font-size:10px}}
@media(max-width:700px){.identity-correlation-inline .correlation-select-grid{grid-template-columns:1fr}.progress-list-toolbar{align-items:flex-start;flex-direction:column}.view-switch{width:100%}.view-switch-btn{flex:1;justify-content:center}.progress-table-card{overflow-x:auto}.progress-data-table{min-width:900px}.hero-status-editor{align-items:flex-start}.hero-status-editor select{min-width:180px}}


/* v5.2.22 — package targets in identity + progress target lock + PSD filter */
.identity-target-inline{margin-top:14px;padding:14px 15px;border:1px solid #d6e3f1;border-radius:14px;background:linear-gradient(180deg,#fbfdff,#f3f8fd)}
.identity-target-inline h4{margin:0;font-size:14px;color:#0A2F6B}.identity-target-inline p{margin:2px 0 0;font-size:10.5px;color:#71859c}.target-table-wrap{margin-top:10px;overflow:auto;border:1px solid #dce7f2;border-radius:10px;background:#fff}.identity-target-table{width:100%;border-collapse:collapse;min-width:460px}.identity-target-table th,.identity-target-table td{padding:9px 10px;border-bottom:1px solid #e8eef5;text-align:left}.identity-target-table th{font-size:10.5px;color:#4a6480;background:#f5f9fd;font-weight:900}.identity-target-table td{font-size:11px;color:#45627e}.identity-target-table tr:last-child td{border-bottom:0}.identity-target-table td:first-child{width:26%}.identity-target-table td:first-child b{display:block;color:#173b5e;font-size:12px}.identity-target-table td:first-child small{display:block;margin-top:2px;color:#8999aa;font-size:9px}.target-input-wrap{position:relative;max-width:180px}.target-input-wrap input{width:100%;padding-right:28px!important;text-align:right}.target-input-wrap span{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:11px;font-weight:800;color:#70849a}.target-input-wrap.finance input{border-color:#cfe9dd;background:#fbfffd}.locked-target{background:#f2f6fa!important;color:#49657f!important;border-color:#c9d6e3!important;cursor:not-allowed}.locked-target:read-only{box-shadow:inset 0 1px 2px rgba(35,61,86,.04)}.field-lock-note{display:inline-flex;margin-left:6px;padding:3px 6px;border-radius:999px;background:#edf2f7;color:#6f8194;font-size:9px;font-weight:850;vertical-align:middle}
.period-step-controls{display:flex;align-items:flex-end;gap:10px}.period-step-controls .period-year-field{min-width:150px}.period-step-controls .status-field{min-width:180px}.period-step-controls select{min-height:44px;font-size:13px;font-weight:800}.progress-data-table .strategic-pill{display:inline-flex;margin-top:5px;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:850;background:#fff3d8;color:#93600f;border:1px solid #f0d59e}
.dev-pos{color:#158a58!important;background:#eefaf4!important;font-weight:900!important}.dev-neg{color:#c73b45!important;background:#fff0f1!important;font-weight:900!important}.dev-zero{color:#6f8194!important;background:#f5f7f9!important;font-weight:800!important}
@media(max-width:800px){.period-step-controls{align-items:stretch;flex-direction:column}.period-step-controls .period-year-field{min-width:0}.identity-target-table{min-width:430px}}

/* V5.2.23 — Progress form alignment & locked target presentation */
.period-step-controls{display:grid!important;grid-template-columns:repeat(2,minmax(145px,1fr));gap:12px;min-width:340px;align-items:stretch}
.period-step-controls .period-year-field{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0!important}
.period-step-controls .period-year-field label{display:block;font-size:11px;font-weight:850;color:#55708b;line-height:1.2;margin:0}
.period-step-controls .period-year-field select{width:100%;min-width:0!important;min-height:46px;height:46px;font-size:14px;font-weight:850;box-sizing:border-box}
.period-step-controls .status-field select{border-color:#c7d8ea;background:linear-gradient(180deg,#fff,#f6faff)}
.period-step-controls .status-field select:focus{border-color:#155EEF;box-shadow:0 0 0 3px rgba(21,94,239,.11)}
.monitoring-hero-status{display:flex;align-items:center;justify-content:flex-end;min-width:110px}
.monitoring-hero-status strong{font-size:13px;color:#d9ebff;white-space:nowrap}
.entry-card{min-width:0}
.entry-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;align-items:stretch}
.entry-fields .field{min-width:0}
.entry-fields .field label{min-height:32px;display:flex;align-items:flex-end;line-height:1.35}
.locked-target-field .field-lock-note{display:none}
.locked-target-display{min-height:48px;height:48px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 13px;border:1px solid #cbd6e1;border-radius:9px;background:linear-gradient(180deg,#eef2f6,#e8edf2);color:#617385;box-shadow:inset 0 1px 2px rgba(36,58,78,.05)}
.locked-target-display strong{font-size:18px!important;line-height:1;color:#536679;font-weight:900}
.locked-target-display span{font-size:9px;font-weight:850;color:#75879a;white-space:nowrap}
.entry-card .locked-target-display + input{display:none}
.entry-card .field input,.entry-card .field select{box-sizing:border-box;width:100%}
@media(max-width:820px){.period-step-controls{min-width:0;width:100%;grid-template-columns:1fr 1fr}.period-panel .panel-heading{align-items:stretch}.monitoring-hero-status{justify-content:flex-start}}
@media(max-width:600px){.period-step-controls{grid-template-columns:1fr}.locked-target-display{min-height:50px;height:auto}.locked-target-display span{white-space:normal}}

/* V5.2.24 — refined progress monitoring controls and locked target inputs */
.period-panel .panel-heading{align-items:flex-start}
.period-step-controls{display:grid!important;grid-template-columns:1fr 1.12fr;gap:12px;min-width:390px;align-items:end;padding:8px 0 0}
.period-step-controls .period-year-field{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0!important}
.period-step-controls .period-year-field label{display:block;margin:0;font-size:11.5px;font-weight:850;line-height:1.2;color:#526b84}
.period-step-controls .period-year-field select{width:100%;height:48px;min-height:48px;min-width:0!important;box-sizing:border-box;padding:0 13px;border-radius:11px;border:1px solid #c8d8e7;background:#fff;color:#163b5d;font-size:15px;font-weight:850}
.period-step-controls .period-year-field select:hover{border-color:#9fbbd5}
.period-step-controls .period-year-field select:focus{outline:none;border-color:#155EEF;box-shadow:0 0 0 3px rgba(21,94,239,.11)}
.entry-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:16px!important;align-items:start!important}
.entry-fields .field{min-width:0}
.entry-fields .field label{min-height:0!important;height:auto!important;display:block!important;margin:0 0 7px!important;line-height:1.35!important;font-size:12px!important;color:#49627b}
.entry-fields .field input{width:100%!important;height:50px!important;min-height:50px!important;box-sizing:border-box!important;border-radius:10px!important}
.locked-target-input{position:relative;width:100%}
.locked-target-input input{padding-right:45px!important;background:#eef2f6!important;border:1px solid #cbd6e1!important;color:#506476!important;font-weight:850!important;cursor:not-allowed!important;box-shadow:inset 0 1px 2px rgba(39,62,83,.05)!important}
.locked-target-input input:focus{outline:none!important;box-shadow:inset 0 1px 2px rgba(39,62,83,.05)!important}
.locked-target-icon{position:absolute;right:13px;top:50%;transform:translateY(-50%);font-size:14px;line-height:1;color:#718294;pointer-events:none}
.entry-card .locked-target-field:after{content:'Target resmi dari Informasi Dasar';display:block;margin-top:6px;font-size:10px;color:#7d8e9f}
.entry-card .field input[type=number]:focus{border-color:#155EEF;box-shadow:0 0 0 3px rgba(21,94,239,.10);outline:none}
.finance-card .field input[type=number]:focus{border-color:#15966f;box-shadow:0 0 0 3px rgba(21,150,111,.10)}

@media(max-width:900px){.period-step-controls{min-width:330px;grid-template-columns:1fr 1fr}}
@media(max-width:700px){.period-step-controls{min-width:0;width:100%;grid-template-columns:1fr 1fr}.period-panel .panel-heading{display:flex;flex-direction:column}.entry-fields{grid-template-columns:1fr!important}}

/* V5.2.25 — refreshed quarterly target cards for package identity */
.target-plan-v525{margin-top:16px;padding:17px 18px 18px;border:1px solid #d4e2ef;border-radius:16px;background:linear-gradient(180deg,#ffffff 0%,#f5f9fd 100%);box-shadow:0 8px 24px rgba(18,59,96,.05)}
.target-plan-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.target-plan-title{display:flex;align-items:flex-start;gap:10px}.target-plan-title .heading-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#e6f0ff;color:#155EEF;font-weight:900;flex:0 0 auto}.target-plan-v525 h4{margin:0;font-size:16px;color:#0A2F6B}.target-plan-v525 p{margin:3px 0 0;font-size:10.8px;color:#72869b;line-height:1.45}.target-plan-note{display:flex;align-items:center;gap:7px;max-width:360px;padding:8px 10px;border:1px solid #dde8f2;border-radius:10px;background:#f6f9fc;color:#667c92;font-size:9.5px;line-height:1.35}.target-note-icon{width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#e8f1fb;color:#155EEF;font-weight:900;flex:0 0 auto}.target-quarter-grid-v525{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.target-quarter-card-v525{position:relative;min-width:0;padding:14px;border:1px solid #dbe7f2;border-top:3px solid var(--quarter-accent);border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 4px 14px rgba(33,70,103,.04);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.target-quarter-card-v525:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(33,70,103,.08)}.target-quarter-card-v525.q1{--quarter-accent:#2f80ed;--quarter-soft:#eef5ff}.target-quarter-card-v525.q2{--quarter-accent:#24a979;--quarter-soft:#ecfaf5}.target-quarter-card-v525.q3{--quarter-accent:#e5a425;--quarter-soft:#fff8e8}.target-quarter-card-v525.q4{--quarter-accent:#8b62dd;--quarter-soft:#f5efff}.target-quarter-head-v525{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid #edf2f7}.target-quarter-no-v525{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:var(--quarter-soft);color:var(--quarter-accent);font-size:13px;font-weight:900}.target-quarter-kicker-v525{display:block;font-size:8px;letter-spacing:.08em;color:#8a9bad;font-weight:900;margin-bottom:1px}.target-quarter-head-v525 strong{display:block;font-size:17px;line-height:1.1;color:#1b3d5c}.target-quarter-head-v525 small{display:block;margin-top:2px;font-size:9.5px;color:#7a8da2}.target-quarter-arrow-v525{color:var(--quarter-accent);font-size:17px;font-weight:900}.target-field-v525{margin-top:12px;padding:10px;border-radius:11px;background:#f8fafc;border:1px solid #e8eef4}.target-field-v525.financial{background:#f6fbf9}.target-field-label-v525{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;color:#5c7288;font-size:10.5px;font-weight:850}.target-field-label-v525 b{font-size:9px;color:#8293a4}.target-input-wrap-v525{position:relative}.target-input-wrap-v525 input{width:100%;height:46px;box-sizing:border-box;padding:7px 39px 7px 12px!important;border:1px solid #ccd9e6;border-radius:9px;background:#fff;color:#173c5d;text-align:right;font-size:16px!important;font-weight:900!important;outline:none}.target-input-wrap-v525 input:focus{border-color:var(--quarter-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--quarter-accent) 13%,#fff)}.target-input-wrap-v525 span{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--quarter-accent);font-size:12px;font-weight:900;pointer-events:none}.target-quarter-foot-v525{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;font-size:8.8px;color:#8a9bad}.target-quarter-status-v525{padding:4px 7px;border-radius:999px;background:var(--quarter-soft);color:var(--quarter-accent);font-weight:850}.target-annual-summary-v525{display:grid;grid-template-columns:1fr 160px 160px;gap:10px;align-items:center;margin-top:12px;padding:11px 12px;border:1px solid #dce7f0;border-radius:12px;background:linear-gradient(90deg,#f7fbff,#fff)}.target-summary-copy-v525 span{display:block;font-size:9px;color:#8a9bad;font-weight:850}.target-summary-copy-v525 strong{display:block;margin-top:3px;font-size:11px;color:#34516d}.target-summary-metric-v525{padding:8px 10px;border-radius:10px;border:1px solid #e4ebf2;background:#fff}.target-summary-metric-v525 span{display:block;font-size:9px;color:#8091a3}.target-summary-metric-v525 b{display:block;margin-top:2px;font-size:15px;color:#193d5d}.target-summary-metric-v525.physical{border-color:#dbe8f8}.target-summary-metric-v525.financial{border-color:#d8eee5}.target-summary-metric-v525.physical b{color:#2469c8}.target-summary-metric-v525.financial b{color:#198b67}

.target-plan-fullwidth{width:100%;box-sizing:border-box}
.target-plan-fullwidth .target-quarter-card-v525{min-width:0}
.identity-location-grid .form-section-card{min-width:0}
.identity-correlation-inline select:required:invalid{border-color:#e1a2a2;background:#fffafa}
@media(max-width:1200px){.target-quarter-grid-v525{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1000px){.target-plan-heading{flex-direction:column}.target-plan-note{max-width:none;width:100%;box-sizing:border-box}.target-annual-summary-v525{grid-template-columns:1fr 1fr}.target-summary-copy-v525{grid-column:1/-1}}
@media(max-width:700px){.target-quarter-grid-v525{grid-template-columns:1fr}.target-annual-summary-v525{grid-template-columns:1fr}.target-summary-copy-v525{grid-column:auto}}

/* ===== v5.2.26 — Detail Paket visual refinement ===== */
.detail-section-kicker-v526{display:block;margin-bottom:4px;color:#1769d3;font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.detail-progress-card-v526{overflow:hidden}
.quarter-detail-grid-v526{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.quarter-detail-card-v526{position:relative;min-width:0;padding:14px;border:1px solid #dbe6f0;border-top:4px solid var(--q-accent);border-radius:15px;background:linear-gradient(180deg,#fff 0%,#f8fbfe 100%);box-shadow:0 6px 18px rgba(18,59,96,.045);transition:.18s ease}
.quarter-detail-card-v526:hover{transform:translateY(-2px);box-shadow:0 11px 24px rgba(18,59,96,.08)}
.quarter-detail-card-v526.q1{--q-accent:#2f80ed;--q-soft:#eaf3ff}
.quarter-detail-card-v526.q2{--q-accent:#1ea875;--q-soft:#e8f8f1}
.quarter-detail-card-v526.q3{--q-accent:#e0a125;--q-soft:#fff5dc}
.quarter-detail-card-v526.q4{--q-accent:#8b61dc;--q-soft:#f2ebff}
.quarter-detail-card-v526.pending{background:#fbfdff}
.quarter-detail-head-v526{display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;align-items:center;padding-bottom:11px;border-bottom:1px solid #e9eff5}
.quarter-detail-number-v526{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:var(--q-soft);color:var(--q-accent);font-size:12px;font-weight:950}
.quarter-detail-title-v526 span{display:block;font-size:7px;color:#8b9bad;font-weight:900;letter-spacing:.1em}
.quarter-detail-title-v526 strong{display:block;margin-top:2px;font-size:18px;color:#183a59;line-height:1.05}
.quarter-detail-title-v526 small{display:block;margin-top:3px;font-size:9px;color:#71859a}
.quarter-detail-state-v526{grid-column:1/-1;justify-self:start;margin-top:2px;padding:4px 7px;border-radius:999px;font-size:8px;font-weight:850;background:var(--q-soft);color:var(--q-accent)}
.quarter-detail-card-v526.pending .quarter-detail-state-v526{background:#eef2f5;color:#7f90a0}
.quarter-detail-metrics-v526{display:grid;gap:10px;margin-top:12px}
.quarter-detail-metric-v526{padding:10px;border:1px solid #e1e9f1;border-radius:11px;background:#fff}
.quarter-detail-metric-v526.finance{background:#fbfefc;border-color:#deeee7}
.metric-v526-top{display:flex;align-items:end;justify-content:space-between;gap:8px}
.metric-v526-top span{font-size:9.5px;color:#6d8298;font-weight:750}
.metric-v526-top b{font-size:16px;line-height:1;color:#173a5a}
.finance .metric-v526-top b{color:#198764}
.metric-track-v526{height:7px;margin-top:8px;border-radius:999px;background:#e9eef3;overflow:hidden}
.metric-track-v526 i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2f80ed,#74b1ee);transition:width .4s ease}
.finance .metric-track-v526 i{background:linear-gradient(90deg,#1ea875,#61c8a5)}
.metric-meta-v526{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:6px}
.metric-meta-v526 span{font-size:8.5px;color:#8a9aac}
.metric-meta-v526 em{font-style:normal;font-size:8.5px;font-weight:900}
.metric-meta-v526 em.pos{color:#16915e}.metric-meta-v526 em.neg{color:#d13b4e}.metric-meta-v526 em.zero{color:#788b9d}.metric-meta-v526 em.muted{color:#98a7b5}
.quarter-detail-note-v526{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:10px;padding-top:9px;border-top:1px dashed #dfe8f0}
.quarter-detail-note-v526 span{font-size:8.5px;font-weight:900}.quarter-detail-note-v526 span.good{color:#178962}.quarter-detail-note-v526 span.warn{color:#cf3a4e}.quarter-detail-note-v526 .pending-pill{color:#7c8e9f}.quarter-detail-note-v526 small{font-size:8px;color:#8d9cac}
.detail-progress-table-v526{margin-top:14px;border-top:1px solid #e7eef5;padding-top:10px}
.detail-progress-table-v526 summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;width:max-content;padding:8px 10px;border:1px solid #d9e5ef;border-radius:9px;background:#f7fafc;color:#2a5274;font-size:10px;font-weight:850}
.detail-progress-table-v526 summary::-webkit-details-marker{display:none}.detail-progress-table-v526[open] summary{background:#eaf3ff;border-color:#c6dbf0;color:#155eef;margin-bottom:11px}
.detail-current-grid-v526{align-items:stretch}
.condition-pair-v526{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.condition-box-v526{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:12px;border-radius:13px;border:1px solid #e3ebf3;background:#fbfdff}
.condition-box-v526.warning{background:linear-gradient(135deg,#fffaf6,#fff);border-color:#f0dfcf}.condition-box-v526.action{background:linear-gradient(135deg,#f4fcf8,#fff);border-color:#d8eee4}
.condition-icon-v526{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:#fff0e3;color:#dc7a15;font-weight:950}.action .condition-icon-v526{background:#e5f7ee;color:#168862}
.condition-box-v526 span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:#75899e;font-weight:900}.condition-box-v526 p{margin:5px 0 0;font-size:10px;line-height:1.55;color:#36516b}
.quarter-doc-grid-v526{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.quarter-doc-item-v526{border:1px solid #dde7ef;border-radius:11px;background:#fbfdff;padding:7px;min-width:0}.quarter-doc-head-v526{display:flex;justify-content:space-between;gap:6px;align-items:center;margin-bottom:6px}.quarter-doc-head-v526 b{font-size:9px;color:#23445f}.quarter-doc-head-v526 span{font-size:7.5px;color:#7f90a2}.quarter-doc-item-v526 img,.quarter-doc-empty-v526{width:100%;aspect-ratio:4/3;display:block;object-fit:cover;border-radius:8px;background:#eef3f7}.quarter-doc-empty-v526{display:grid;place-items:center;color:#9aabb9;font-size:15px}
.correlation-summary-grid .correlation-summary{min-height:76px}.correlation-summary .badge{line-height:1.35}
@media(max-width:1100px){.quarter-detail-grid-v526{grid-template-columns:repeat(2,minmax(0,1fr))}.quarter-doc-grid-v526{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.quarter-detail-grid-v526,.condition-pair-v526,.quarter-doc-grid-v526{grid-template-columns:1fr}.detail-progress-table-v526 summary{width:100%;box-sizing:border-box;justify-content:center}.quarter-detail-head-v526{grid-template-columns:34px 1fr}.quarter-detail-state-v526{grid-column:2/-1;justify-self:start;margin-top:-5px}}

/* ===== v5.2.27 — Detail Paket full visual redesign ===== */
.detail-page-v527{max-width:1580px;margin:0 auto}
.detail-page-v527 .page-title{margin-bottom:16px;align-items:center}
.detail-page-v527 .page-title h1{font-size:29px;letter-spacing:-.65px}
.detail-page-v527 .page-title p{font-size:12px;margin-top:6px}
.detail-page-v527 .actions{gap:8px}
.detail-page-v527 .actions .btn{min-height:40px;padding:10px 14px;font-size:11.5px}
.detail-page-v527 .detail-hero{padding:18px 20px;border-radius:16px;margin-bottom:12px;background:linear-gradient(135deg,#ffffff 0%,#f7fbff 100%);border-color:#cfdfee}
.detail-page-v527 .detail-hero h2{font-size:24px;line-height:1.15;margin:8px 0 3px}
.detail-page-v527 .detail-hero p{font-size:10.5px}
.detail-page-v527 .detail-hero-kpis{min-width:500px;gap:14px}
.detail-page-v527 .detail-hero-kpis div{padding-left:14px}
.detail-page-v527 .detail-hero-kpis span{font-size:9px}
.detail-page-v527 .detail-hero-kpis b{font-size:17px;margin-top:5px}
.detail-page-v527 .detail-grid{gap:12px;margin-bottom:12px}
.detail-page-v527 .card{padding:18px;border-radius:15px}
.detail-page-v527 .section-heading{margin-bottom:11px}
.detail-page-v527 .section-heading h3{font-size:17px}
.detail-page-v527 .section-heading p{font-size:10px;margin-top:4px}
.detail-page-v527 .detail-two-col{gap:16px}
.detail-page-v527 .detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px;row-gap:0}
.detail-page-v527 .detail-list>div{padding:8px 0;border-bottom:1px solid #e6edf4;min-width:0}
.detail-page-v527 .detail-list>div:last-child{border-bottom:1px solid #e6edf4}
.detail-page-v527 .detail-list>div:nth-last-child(-n+2){border-bottom:0}
.detail-page-v527 .detail-list span{font-size:9.5px;color:#7b8da1}
.detail-page-v527 .detail-list b{font-size:12.5px;line-height:1.38;margin-top:3px;overflow-wrap:anywhere}
.detail-page-v527 .detail-two-col>section:nth-child(2) .detail-list>div:nth-child(3){grid-column:1/-1}
.detail-page-v527 .text-link{font-size:12px}
.detail-page-v527 .schedule-summary{padding:12px 14px;gap:8px}
.detail-page-v527 .schedule-summary>div:not(.schedule-arrow){padding:8px 10px}
.detail-page-v527 .schedule-summary span{font-size:9px}
.detail-page-v527 .schedule-summary b{font-size:14px}
.detail-page-v527 .schedule-arrow{font-size:20px}
.detail-page-v527 .photo-main-frame{aspect-ratio:16/8.7;min-height:250px;max-height:320px}
.detail-page-v527 .photo-main{object-fit:cover}
.detail-page-v527 .package-map{height:330px}
.detail-page-v527 .detail-progress-card-v526{padding:18px 18px 15px}
.detail-page-v527 .detail-progress-card-v526 .section-heading h3{font-size:19px}
.detail-page-v527 .quarter-detail-grid-v526{gap:10px}
.detail-page-v527 .quarter-detail-card-v526{padding:12px;border-radius:14px}
.detail-page-v527 .quarter-detail-title-v526 strong{font-size:19px}
.detail-page-v527 .quarter-detail-title-v526 small{font-size:9.5px}
.detail-page-v527 .quarter-detail-metric-v526{padding:9px}
.detail-page-v527 .metric-v526-top span{font-size:10px}
.detail-page-v527 .metric-v526-top b{font-size:17px}
.detail-page-v527 .metric-meta-v526 span,.detail-page-v527 .metric-meta-v526 em{font-size:9px}
.detail-page-v527 .detail-current-grid-v526{gap:12px}
.detail-page-v527 .condition-box-v526{padding:12px}
.detail-page-v527 .condition-box-v526 span{font-size:9.5px}
.detail-page-v527 .condition-box-v526 p{font-size:10.5px}
.detail-page-v527 .quarter-doc-item-v526{padding:8px}
.detail-page-v527 .quarter-doc-head-v526 b{font-size:9.5px}
.detail-page-v527 .quarter-doc-head-v526 span{font-size:8px}
.detail-page-v527 .correlation-summary-grid{gap:10px}
.detail-page-v527 .correlation-summary-grid .correlation-summary{min-height:0;padding:11px 12px}
.detail-page-v527 .correlation-summary>b{font-size:10px;margin-bottom:7px}
.detail-page-v527 .correlation-summary .badge{font-size:9px;padding:5px 8px}
.detail-page-v527 .timeline-item{padding:0 0 13px 17px;margin:0 0 13px}
.detail-page-v527 .timeline-head{font-size:10px}
.detail-page-v527 .timeline-head span{font-size:9px}
.detail-page-v527 .timeline-item .update-metrics{margin:7px 0}
.detail-page-v527 .timeline-item .grid{gap:12px}
.detail-page-v527 .timeline-item .small{font-size:10.5px}
.detail-page-v527 .timeline-item .small b{font-size:10.5px}
.detail-page-v527 .timeline-item .small p{font-size:10px;line-height:1.5;margin:4px 0 8px}
.detail-page-v527 .timeline-item .photo-thumb{width:92px;height:68px}
@media(max-width:1200px){
  .detail-page-v527 .detail-hero-kpis{min-width:0;width:auto}
  .detail-page-v527 .detail-two-col{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
  .detail-page-v527 .detail-list{grid-template-columns:1fr}
  .detail-page-v527 .detail-two-col>section:nth-child(2) .detail-list>div:nth-child(3){grid-column:auto}
}
@media(max-width:600px){
  .detail-page-v527 .page-title{align-items:flex-start}
  .detail-page-v527 .page-title h1{font-size:24px}
  .detail-page-v527 .card{padding:15px}
  .detail-page-v527 .detail-hero{padding:15px}
  .detail-page-v527 .detail-hero h2{font-size:21px}
}


/* ===== v5.2.28 Detail Paket — compact project profile redesign ===== */
.dp-page{max-width:1540px;margin:0 auto}
.dp-page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:16px}
.dp-eyebrow{font-size:10px;letter-spacing:.14em;color:#1769d3;font-weight:900;margin-bottom:5px}
.dp-page-head h1{font-size:30px;line-height:1.08;margin:0;color:#0b2a52;letter-spacing:-.5px}
.dp-page-head p{font-size:13px;color:#657b94;margin:7px 0 0}
.dp-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.dp-actions .btn{min-height:40px;font-size:12px}
.dp-hero{background:linear-gradient(135deg,#0a2d63 0%,#145fc2 72%,#1d82d7 100%);color:#fff;border-radius:18px;padding:22px 24px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(430px,.95fr);gap:20px;align-items:center;box-shadow:0 16px 36px rgba(10,45,99,.16);margin-bottom:16px;position:relative;overflow:hidden}
.dp-hero:after{content:"";position:absolute;right:-70px;top:-80px;width:240px;height:240px;border-radius:50%;background:rgba(255,255,255,.08);pointer-events:none}
.dp-hero-main{position:relative;z-index:1}.dp-badges{display:flex;gap:7px;flex-wrap:wrap}.dp-badges .badge{font-size:10px;padding:6px 9px}
.dp-hero h2{font-size:26px;line-height:1.15;margin:10px 0 5px;letter-spacing:-.4px}.dp-hero p{font-size:12px;color:rgba(255,255,255,.82);margin:0}
.dp-kpi-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;position:relative;z-index:1}.dp-kpi{background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:13px 14px;min-height:74px;backdrop-filter:blur(3px)}
.dp-kpi span{display:block;font-size:10px;color:rgba(255,255,255,.72);font-weight:750}.dp-kpi strong{display:block;font-size:17px;line-height:1.2;margin-top:6px;color:#fff}.dp-kpi .blue-text{color:#ddecff}.dp-kpi .green-text{color:#dffbea}
.dp-two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.dp-card{padding:19px 20px}.dp-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:15px}.dp-section-head h3{font-size:19px;line-height:1.2;margin:3px 0 5px;color:#0b2e5a}.dp-section-head p{font-size:11px;color:#7890a8;margin:0;line-height:1.5}.dp-kicker{font-size:9px;letter-spacing:.13em;color:#1a6ed2;font-weight:900}
.dp-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.dp-info-item{padding:11px 0;border-bottom:1px solid #e8eef5;min-width:0}.dp-info-item span{display:block;font-size:10px;color:#7d92a8;font-weight:650;margin-bottom:4px}.dp-info-item b{display:block;font-size:14px;color:#12375f;line-height:1.4;word-break:break-word}.dp-info-item .dp-link{font-size:14px;color:#1769d3;text-decoration:none}.dp-info-item .dp-link:hover{text-decoration:underline}.dp-span-2{grid-column:1/-1}.dp-divider{height:1px;background:#e8eef5;margin:11px 0}.dp-subsection-title{font-size:11px;font-weight:900;color:#2b4d70;text-transform:uppercase;letter-spacing:.05em;margin:1px 0 4px}.dp-work-grid{gap:0 16px}.dp-value-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dp-value-grid>div{padding:13px 14px;border-radius:11px;background:#f6f9fc;border:1px solid #e1eaf3}.dp-value-grid span{display:block;font-size:10px;color:#7990a8}.dp-value-grid b{display:block;margin-top:5px;font-size:18px;color:#12375f}.dp-value-grid small{display:block;margin-top:4px;font-size:9px;color:#8194a7}
.dp-schedule-grid{display:grid;grid-template-columns:1fr 44px 1fr;align-items:center;gap:10px}.dp-schedule-grid>div{padding:12px 14px;background:#f6f9fc;border:1px solid #e1eaf3;border-radius:11px}.dp-schedule-grid span{display:block;font-size:10px;color:#7890a6}.dp-schedule-grid b{display:block;font-size:15px;color:#12375f;margin-top:5px}.dp-schedule-grid>div:last-child{grid-column:1/-1}.dp-schedule-arrow{border:0!important;background:transparent!important;text-align:center;font-size:22px;color:#1769d3;padding:0!important}
.dp-photo-main{height:210px;border-radius:12px;overflow:hidden;background:#eef3f8;border:1px solid #e0e8f1}.dp-photo-main img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in}.dp-empty-photo{height:210px;border:1px dashed #cbd8e5;border-radius:12px;display:grid;place-items:center;color:#8799aa;background:#f9fbfd;font-size:12px}
.dp-map-card{margin-bottom:16px}.dp-map-card .package-map{height:360px;border-radius:12px;overflow:hidden}
.dp-progress-wrap{margin-bottom:16px}.dp-quarter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dp-quarter{border:1px solid #dce7f2;border-top:4px solid var(--q);border-radius:13px;padding:13px;background:linear-gradient(180deg,#fff 0%,#f9fbfd 100%);box-shadow:0 5px 15px rgba(24,58,92,.04)}.dp-quarter.q1{--q:#2f80ed;--qs:#eaf3ff}.dp-quarter.q2{--q:#22a576;--qs:#e7f7ef}.dp-quarter.q3{--q:#e3a31a;--qs:#fff5da}.dp-quarter.q4{--q:#8b62dc;--qs:#f1ebff}.dp-quarter.is-pending{background:#fbfdff}.dp-quarter-top{display:grid;grid-template-columns:31px 1fr;gap:9px;align-items:center;padding-bottom:10px;border-bottom:1px solid #e9eff5}.dp-quarter-index{width:31px;height:31px;border-radius:9px;background:var(--qs);color:var(--q);display:grid;place-items:center;font-size:11px;font-weight:900}.dp-quarter-top span{display:block;font-size:7px;color:#8a9bac;font-weight:900;letter-spacing:.1em}.dp-quarter-top strong{display:block;font-size:18px;color:#14385d;line-height:1.05;margin-top:2px}.dp-quarter-top small{display:block;font-size:9px;color:#72879d;margin-top:2px}.dp-quarter-top em{grid-column:1/-1;justify-self:start;font-style:normal;font-size:8px;font-weight:850;color:var(--q);padding:5px 7px;border-radius:999px;background:var(--qs)}.dp-quarter.is-pending em{background:#eef2f5;color:#7b8ea1}.dp-progress-line{margin-top:11px;padding:10px;border:1px solid #e2e9f0;border-radius:11px;background:#fff}.dp-progress-line>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:8px}.dp-progress-line span{font-size:10px;color:#687f96;font-weight:750}.dp-progress-line b{font-size:15px;color:#14385d}.dp-bar{height:7px;border-radius:99px;background:#e9eff4;overflow:hidden;margin:7px 0}.dp-bar i{display:block;height:100%;border-radius:inherit;background:var(--q)}.dp-progress-line.finance .dp-bar i{background:#25a97a}.dp-progress-line small{font-size:8.5px;color:#8194a8}.dp-progress-line small strong.dp-pos{color:#168a60}.dp-progress-line small strong.dp-neg{color:#d63b50}.dp-progress-line small strong.dp-zero{color:#6f8296}.dp-quarter-footer{display:flex;justify-content:space-between;gap:7px;align-items:center;margin-top:10px;padding-top:9px;border-top:1px dashed #dfe7ef}.dp-quarter-footer span{font-size:9px;font-weight:900;color:#566f89}.dp-quarter-footer small{font-size:8px;color:#8b9aaa}.dp-table-toggle{margin-top:13px;padding-top:10px;border-top:1px solid #e6edf4}.dp-table-toggle summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;padding:9px 11px;border:1px solid #dce6ef;border-radius:9px;background:#f8fbfd;color:#2a5274;font-size:10px;font-weight:850}.dp-table-toggle summary::-webkit-details-marker{display:none}.dp-table-toggle[open] summary{background:#edf6ff;color:#175fae;border-color:#cbdff2}.dp-condition-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dp-condition{display:flex;gap:10px;padding:14px;border-radius:12px;border:1px solid #e1eaf1}.dp-condition.warning{background:#fff9ef;border-color:#f4e0b7}.dp-condition.action{background:#f0fbf7;border-color:#cfe9de}.dp-condition-icon{width:34px;height:34px;flex:0 0 34px;border-radius:10px;display:grid;place-items:center;font-weight:900}.dp-condition.warning .dp-condition-icon{background:#ffedd0;color:#c37b00}.dp-condition.action .dp-condition-icon{background:#dff5e9;color:#18835d}.dp-condition span{display:block;font-size:10px;font-weight:900;color:#5e7891;text-transform:uppercase;letter-spacing:.04em}.dp-condition p{font-size:12px;line-height:1.55;color:#355776;margin:5px 0 0}
.dp-doc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.dp-doc{border:1px solid #dfe8f0;border-radius:10px;padding:7px;background:#f9fbfd}.dp-doc-head{display:flex;justify-content:space-between;gap:6px;margin-bottom:6px}.dp-doc-head b{font-size:10px;color:#294e71}.dp-doc-head span{font-size:8px;color:#7c8fa2}.dp-doc img,.dp-doc-empty{width:100%;height:100px;object-fit:cover;background:#edf3f7;border-radius:7px;display:block;cursor:zoom-in}.dp-doc-empty{display:grid;place-items:center;color:#9aa9b6;font-size:16px;cursor:default}.dp-correlation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.dp-correlation-grid>div{padding:13px;border-radius:11px;border:1px solid #dfe8f0;background:#f9fbfd}.dp-correlation-grid span{display:block;font-size:10px;color:#7b90a7;font-weight:750;margin-bottom:7px}.dp-correlation-grid b{display:inline-flex;padding:7px 9px;border-radius:999px;font-size:10px;line-height:1.35}.dp-chip-blue{background:#e7f1ff;color:#1b63b4}.dp-chip-green{background:#e7f8ef;color:#18835b}.dp-chip-gold{background:#fff3d8;color:#a66800}.dp-chip-muted{background:#eef2f5;color:#7a8c9e}
.dp-timeline{display:flex;flex-direction:column;gap:0}.dp-timeline-item{position:relative;padding:0 0 18px 22px;margin-left:3px;border-left:2px solid #dce8f3}.dp-timeline-item:last-child{border-left-color:transparent;padding-bottom:0}.dp-timeline-dot{position:absolute;left:-6px;top:2px;width:10px;height:10px;border-radius:50%;background:#2f80ed;box-shadow:0 0 0 3px #e8f2fd}.dp-timeline-top{display:flex;justify-content:space-between;gap:12px}.dp-timeline-top b{font-size:13px;color:#173e67}.dp-timeline-top span,.dp-timeline-top time{font-size:9px;color:#8093a6}.dp-timeline-tags{display:flex;gap:6px;flex-wrap:wrap;margin:9px 0}.dp-timeline-tags .tag{padding:5px 7px;border-radius:999px;font-size:8.5px;font-weight:850}.tag.blue{background:#e5f1ff;color:#1b63b4}.tag.sky{background:#e6f5ff;color:#1672a7}.tag.green{background:#e6f6ed;color:#19835d}.tag.gray{background:#eef2f5;color:#708499}.dp-timeline-body{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:9px 0}.dp-timeline-body b{font-size:10px;color:#183f65}.dp-timeline-body p{font-size:11px;line-height:1.55;color:#58708a;margin:4px 0 10px}.dp-timeline-photo{width:94px;height:70px;object-fit:cover;border-radius:8px;border:1px solid #dce6ef;cursor:zoom-in}
@media(max-width:1200px){.dp-hero{grid-template-columns:1fr}.dp-quarter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dp-two-col{grid-template-columns:1fr}.dp-map-card .package-map{height:330px}}
@media(max-width:800px){.dp-page-head{flex-direction:column;align-items:flex-start}.dp-actions{justify-content:flex-start}.dp-kpi-row{grid-template-columns:1fr}.dp-quarter-grid{grid-template-columns:1fr}.dp-condition-grid,.dp-correlation-grid,.dp-timeline-body{grid-template-columns:1fr}.dp-info-grid,.dp-work-grid{grid-template-columns:1fr}.dp-span-2{grid-column:auto}.dp-doc-grid{grid-template-columns:repeat(2,1fr)}.dp-page-head h1{font-size:25px}}
@media(max-width:520px){.dp-card{padding:15px}.dp-doc-grid{grid-template-columns:1fr 1fr}.dp-value-grid{grid-template-columns:1fr}.dp-schedule-grid{grid-template-columns:1fr}.dp-schedule-arrow{display:none}.dp-hero{padding:18px}.dp-hero h2{font-size:22px}}

/* v5.2.30 — quarterly lock control + clear locked period UX */
.cms-lock-info{display:flex;align-items:flex-start;gap:12px;padding:14px 15px;border:1px solid #d7e4ef;border-radius:12px;background:linear-gradient(135deg,#f7fbff,#eef5fb);margin:0 0 14px}.cms-lock-info-icon{width:38px;height:38px;flex:0 0 38px;border-radius:11px;background:#e7effa;display:grid;place-items:center;font-size:18px}.cms-lock-info strong{display:block;font-size:13px;color:#163b5d}.cms-lock-info small{display:block;margin-top:4px;font-size:11px;line-height:1.55;color:#6e8398}.cms-quarter-lock-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cms-quarter-lock-card{display:block;padding:14px;border:1px solid #d9e5ef;border-top:4px solid var(--lock-color);border-radius:13px;background:#fff;box-shadow:0 6px 18px rgba(19,58,92,.05);cursor:pointer}.cms-quarter-lock-card.blue{--lock-color:#2f80ed}.cms-quarter-lock-card.green{--lock-color:#20a87a}.cms-quarter-lock-card.amber{--lock-color:#e8a31b}.cms-quarter-lock-card.rose{--lock-color:#8a63dc}.cms-quarter-lock-card.is-locked{background:linear-gradient(180deg,#fff9f8,#fff)}.cms-quarter-lock-top{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center}.cms-quarter-index{width:34px;height:34px;border-radius:10px;background:#edf4fb;color:var(--lock-color);display:grid;place-items:center;font-size:11px;font-weight:900}.cms-quarter-lock-top strong{display:block;font-size:16px;color:#143b60}.cms-quarter-lock-top small{display:block;font-size:10px;color:#7b90a5;margin-top:2px}.cms-lock-status{font-size:9px;font-weight:900;letter-spacing:.06em;padding:5px 7px;border-radius:999px;background:#eaf7f0;color:#18825b}.cms-quarter-lock-card.is-locked .cms-lock-status{background:#fff0f0;color:#c43e51}.cms-quarter-lock-switch{display:flex;align-items:center;gap:10px;margin-top:13px;padding-top:11px;border-top:1px dashed #e2eaf1}.cms-quarter-lock-switch input{position:absolute;opacity:0;pointer-events:none}.cms-quarter-lock-switch>span{position:relative;width:42px;height:24px;border-radius:999px;background:#cdd9e4;flex:0 0 42px;transition:.2s}.cms-quarter-lock-switch>span:after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.16);transition:.2s}.cms-quarter-lock-switch input:checked + span{background:var(--lock-color)}.cms-quarter-lock-switch input:checked + span:after{transform:translateX(18px)}.cms-quarter-lock-switch b{display:block;font-size:11px;color:#274b6b}.cms-quarter-lock-switch small{display:block;font-size:9px;color:#7d91a5;margin-top:2px}.cms-lock-guide{margin-top:14px;padding:13px 14px;border-radius:12px;background:#f8fafc;border:1px solid #e0e8ef;color:#5f768d}.cms-lock-guide strong{display:block;font-size:12px;color:#254b6c;margin-bottom:8px}.cms-lock-guide div{font-size:10px;line-height:1.5;margin:6px 0}.cms-lock-guide div span{display:inline-grid;place-items:center;width:20px;height:20px;margin-right:6px;border-radius:50%;background:#eaf2fb;color:#1762ad;font-weight:900}.period-tile.is-locked{opacity:.68;cursor:not-allowed!important;background:linear-gradient(135deg,#f3f5f7,#e9edf1)!important;border-color:#cfd8e0!important;box-shadow:none!important}.period-tile.is-locked .period-state{color:#7f8f9c!important}.period-tile.is-locked .period-icon{background:#e2e7eb!important;color:#7f8f9c!important}.quarter-lock-alert{display:flex;align-items:flex-start;gap:11px;padding:13px 14px;margin:0 0 14px;border:1px solid #efcfd1;border-radius:12px;background:linear-gradient(135deg,#fff7f7,#fff1f2)}.quarter-lock-alert-icon{width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:#ffe2e4;display:grid;place-items:center}.quarter-lock-alert strong{display:block;font-size:12px;color:#a63748}.quarter-lock-alert p{margin:3px 0 0;font-size:10px;line-height:1.5;color:#7d6170}.form-panel.is-period-locked input:disabled,.form-panel.is-period-locked select:disabled,.form-panel.is-period-locked textarea:disabled{background:#eef1f4!important;color:#687b8a!important;cursor:not-allowed}.is-disabled{opacity:.6!important;pointer-events:none!important;cursor:not-allowed!important}.cms-tabbar{flex-wrap:wrap}
@media(max-width:800px){.cms-quarter-lock-grid{grid-template-columns:1fr}.cms-quarter-lock-top{grid-template-columns:34px 1fr}.cms-lock-status{grid-column:2;justify-self:start}.period-step-controls{min-width:0!important}}


/* v5.2.31: reliable device-location UX */
#useMyLocation{min-height:38px;white-space:nowrap}
#useMyLocation[disabled]{opacity:.68;cursor:wait}
#packageMapStatus[data-type=success]{background:#eefaf4;border-color:#bfe7d1;color:#17724b}
#packageMapStatus[data-type=error]{background:#fff3f4;border-color:#f0c4cb;color:#9d2f3d}
#packageMapStatus[data-type=info]{background:#f7faff;border-color:#dfe8f3;color:#5f7388}

.map-help-text{margin-top:6px;font-size:10px;color:#7b8ea3;line-height:1.5}

/* v5.2.32 - Admin dashboard polished layout: reduce whitespace, improve hierarchy */
.dashboard-page.admin-command-center{max-width:1500px;margin:0 auto}
.dashboard-page .admin-command-hero{padding:24px 26px!important;margin-bottom:16px!important;border-radius:18px!important}
.dashboard-page .admin-command-copy h1{font-size:30px!important;line-height:1.12!important}
.dashboard-page .admin-command-copy p{font-size:13px!important;line-height:1.55!important;max-width:820px}
.dashboard-page .admin-hero-meta{gap:8px!important;margin-top:13px!important}
.dashboard-page .admin-hero-meta span{font-size:10.5px!important;padding:7px 10px!important}
.dashboard-page .admin-year-control{padding:12px 14px!important;min-width:190px!important}
.dashboard-page .admin-year-control label{font-size:10px!important}
.dashboard-page .admin-year-control select{font-size:12px!important;height:40px!important}
.dashboard-page .admin-year-control small{font-size:9px!important}
.dashboard-page .admin-kpi-grid{gap:14px!important;margin-bottom:14px!important}
.dashboard-page .admin-kpi-card{min-height:104px!important;padding:16px 17px!important}
.dashboard-page .admin-kpi-card .kpi-label{font-size:9px!important}
.dashboard-page .admin-kpi-card .kpi-value{font-size:26px!important}
.dashboard-page .admin-kpi-card .kpi-money{font-size:19px!important}
.dashboard-page .admin-kpi-card .kpi-meta{font-size:9px!important}
.dashboard-page .dashboard-grid-main{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)!important;align-items:start!important;gap:16px!important;margin-bottom:16px!important}
.dashboard-page .command-panel{align-self:start!important;min-height:0!important;height:auto!important}
.dashboard-page .command-panel .section-heading{margin-bottom:12px!important}
.dashboard-page .command-panel .section-heading h3{font-size:15px!important}
.dashboard-page .command-panel .section-heading p{font-size:10.5px!important;line-height:1.45!important}
.dashboard-page .status-command-panel .status-chart-layout{min-height:0!important;grid-template-columns:205px minmax(0,1fr)!important;gap:22px!important}
.dashboard-page .status-command-panel .donut{width:182px!important;height:182px!important}
.dashboard-page .status-command-panel .donut-hole{width:104px!important;height:104px!important}
.dashboard-page .status-command-panel .donut-hole strong{font-size:27px!important}
.dashboard-page .status-command-panel .donut-hole span{font-size:10px!important}
.dashboard-page .status-command-panel .donut-hole small{font-size:9px!important}
.dashboard-page .status-command-panel .status-legend{gap:7px!important}
.dashboard-page .status-command-panel .legend-row{padding:7px 8px!important;border-radius:9px!important;font-size:10px!important;transition:.16s ease}
.dashboard-page .status-command-panel .legend-row b{font-size:11px!important}
.dashboard-page .status-command-panel .legend-row small{font-size:9px!important}
.dashboard-page .warning-command-summary{padding:12px 14px!important}
.dashboard-page .warning-command-summary strong{font-size:25px!important}
.dashboard-page .warning-command-summary span{font-size:9px!important}
.dashboard-page .warning-summary-note{font-size:10px!important;line-height:1.45!important}
.dashboard-page .notification-stack{gap:8px!important}
.dashboard-page .notification-card{padding:11px 12px!important;min-height:58px!important}
.dashboard-page .notification-main b{font-size:10.5px!important}
.dashboard-page .notification-main small{font-size:9px!important}
.dashboard-page .notification-count{font-size:17px!important}
.dashboard-page .map-command-panel .command-map-layout{grid-template-columns:minmax(0,1.8fr) minmax(300px,.85fr)!important;gap:12px!important;align-items:start!important}
.dashboard-page .map-command-panel .admin-dashboard-map{height:292px!important;min-height:292px!important}
.dashboard-page .map-command-panel .district-visual-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:92px!important;gap:8px!important}
.dashboard-page .map-command-panel .district-visual-card{height:92px!important;padding:10px 11px!important;border-radius:13px!important}
.dashboard-page .map-command-panel .district-visual-name{font-size:11px!important}
.dashboard-page .map-command-panel .district-visual-card strong{font-size:22px!important}
.dashboard-page .map-command-panel .district-visual-metric small{font-size:8px!important}
.dashboard-page .map-command-panel .district-visual-share{font-size:8px!important}
.dashboard-page .infra-command-panel .infra-interactive-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:10px!important}
.dashboard-page .infra-command-panel .infra-interactive-card{min-height:132px!important;padding:12px 12px!important;border-radius:13px!important}
.dashboard-page .infra-command-panel .infra-interactive-head{margin-bottom:8px!important}
.dashboard-page .infra-command-panel .infra-interactive-icon{width:34px!important;height:34px!important;border-radius:10px!important}
.dashboard-page .infra-command-panel .infra-interactive-count{font-size:23px!important}
.dashboard-page .infra-command-panel .infra-interactive-title{font-size:10.5px!important;min-height:28px!important;line-height:1.25!important}
.dashboard-page .infra-command-panel .infra-interactive-track{height:7px!important;margin-top:8px!important}
.dashboard-page .infra-command-panel .infra-interactive-meta{font-size:8.5px!important;margin-top:7px!important}
.dashboard-page .dashboard-recent-card{margin-top:0!important;padding:16px 18px!important}
.dashboard-page .dashboard-bottom-head{margin-bottom:10px!important}
.dashboard-page .dashboard-bottom-head h3{font-size:15px!important}
.dashboard-page .dashboard-bottom-head p{font-size:10.5px!important}
.dashboard-page .recent-opd-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important}
.dashboard-page .recent-opd-card{min-height:154px!important;padding:13px 14px!important;gap:6px!important;border-radius:14px!important}
.dashboard-page .recent-opd-type,.dashboard-page .recent-opd-quarter{font-size:9px!important;padding:5px 7px!important}
.dashboard-page .recent-opd-name{font-size:11px!important}
.dashboard-page .recent-opd-package{font-size:12.5px!important;min-height:34px!important}
.dashboard-page .recent-opd-location{font-size:9.5px!important}
.dashboard-page .recent-opd-progress-row{font-size:9.5px!important}
.dashboard-page .recent-opd-progress-row strong{font-size:11px!important}
.dashboard-page .recent-opd-progress{height:6px!important}
.dashboard-page .recent-opd-status{font-size:9px!important;padding:4px 6px!important}
.dashboard-page .recent-opd-date{font-size:8.5px!important}
.dashboard-page .dashboard-footer-note{font-size:10px!important;padding:12px 0 4px!important}

@media(max-width:1200px){
  .dashboard-page .map-command-panel .command-map-layout{grid-template-columns:1.4fr .9fr!important}
  .dashboard-page .infra-command-panel .infra-interactive-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:900px){
  .dashboard-page .dashboard-grid-main{grid-template-columns:1fr!important}
  .dashboard-page .status-command-panel .status-chart-layout{grid-template-columns:180px 1fr!important}
  .dashboard-page .map-command-panel .command-map-layout{grid-template-columns:1fr!important}
  .dashboard-page .map-command-panel .admin-dashboard-map{height:300px!important}
  .dashboard-page .recent-opd-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:640px){
  .dashboard-page .admin-command-hero{padding:18px!important}
  .dashboard-page .admin-command-copy h1{font-size:24px!important}
  .dashboard-page .status-command-panel .status-chart-layout{grid-template-columns:1fr!important}
  .dashboard-page .status-command-panel .donut{width:160px!important;height:160px!important}
  .dashboard-page .infra-command-panel .infra-interactive-grid{grid-template-columns:1fr 1fr!important}
  .dashboard-page .recent-opd-grid{grid-template-columns:1fr!important}
}

/* v5.2.33 — Rebalanced admin dashboard: map + compact infrastructure + recent updates */
.dashboard-page .dashboard-visual-board{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:16px;align-items:start;margin-bottom:16px}
.dashboard-page .dashboard-visual-board.single-panel{grid-template-columns:1fr}
.dashboard-page .dashboard-map-panel,.dashboard-page .dashboard-infra-panel,.dashboard-page .dashboard-recent-panel{margin:0;min-height:0}
.dashboard-page .dashboard-map-panel{height:100%}
.dashboard-page .dashboard-map-panel .section-heading{margin-bottom:10px!important}
.dashboard-page .dashboard-map-panel .command-map-layout{grid-template-columns:minmax(0,1.62fr) minmax(245px,.88fr)!important;gap:10px!important;align-items:stretch!important}
.dashboard-page .dashboard-map-panel .admin-dashboard-map{height:252px!important;min-height:252px!important}
.dashboard-page .dashboard-map-panel .district-visual-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:78px!important;gap:7px!important;padding:0!important;background:transparent!important;border:0!important}
.dashboard-page .dashboard-map-panel .district-visual-card{height:78px!important;min-height:78px!important;padding:8px 9px!important;border-radius:11px!important}
.dashboard-page .dashboard-map-panel .district-visual-name{font-size:10.2px!important;line-height:1.08!important}
.dashboard-page .dashboard-map-panel .district-visual-card strong{font-size:19px!important}
.dashboard-page .dashboard-map-panel .district-visual-metric small{font-size:7.3px!important}
.dashboard-page .dashboard-map-panel .district-visual-bar{height:4px!important}
.dashboard-page .dashboard-map-panel .district-visual-share{font-size:7px!important}
.dashboard-page .dashboard-side-stack{display:flex;flex-direction:column;gap:12px;min-width:0}
.dashboard-page .dashboard-infra-panel .section-heading{margin-bottom:8px!important}
.dashboard-page .dashboard-infra-panel .infra-interactive-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:7px!important}
.dashboard-page .dashboard-infra-panel .infra-interactive-card{min-height:94px!important;height:94px!important;padding:8px 9px!important;border-radius:11px!important;gap:4px!important}
.dashboard-page .dashboard-infra-panel .infra-interactive-head{margin-bottom:1px!important}
.dashboard-page .dashboard-infra-panel .infra-interactive-icon{width:28px!important;height:28px!important;border-radius:8px!important;font-size:12px!important}
.dashboard-page .dashboard-infra-panel .infra-interactive-count{font-size:18px!important}
.dashboard-page .dashboard-infra-panel .infra-interactive-title{font-size:9px!important;min-height:22px!important;line-height:1.13!important;padding-right:2px!important}
.dashboard-page .dashboard-infra-panel .infra-interactive-track{height:4px!important;margin-top:2px!important}
.dashboard-page .dashboard-infra-panel .infra-interactive-meta{margin-top:2px!important}
.dashboard-page .dashboard-infra-panel .infra-interactive-meta small{font-size:6.8px!important}
.dashboard-page .dashboard-infra-panel .infra-interactive-meta b{font-size:6.9px!important}
.dashboard-page .dashboard-recent-panel{padding:13px 14px!important}
.dashboard-page .dashboard-recent-panel .dashboard-bottom-head{margin-bottom:7px!important}
.dashboard-page .dashboard-recent-panel .dashboard-bottom-head h3{font-size:14px!important}
.dashboard-page .dashboard-recent-panel .dashboard-bottom-head p{font-size:9px!important;line-height:1.35!important}
.dashboard-page .dashboard-recent-panel .recent-opd-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
.dashboard-page .dashboard-recent-panel .recent-opd-card{min-height:118px!important;height:118px!important;padding:9px 10px!important;gap:3px!important;border-radius:11px!important}
.dashboard-page .dashboard-recent-panel .recent-opd-type,.dashboard-page .dashboard-recent-panel .recent-opd-quarter{font-size:7.4px!important;padding:3px 5px!important}
.dashboard-page .dashboard-recent-panel .recent-opd-name{font-size:9.1px!important;line-height:1.15!important}
.dashboard-page .dashboard-recent-panel .recent-opd-package{font-size:9.8px!important;min-height:25px!important;line-height:1.2!important}
.dashboard-page .dashboard-recent-panel .recent-opd-location{font-size:7.6px!important}
.dashboard-page .dashboard-recent-panel .recent-opd-progress-row{font-size:7.7px!important}
.dashboard-page .dashboard-recent-panel .recent-opd-progress-row strong{font-size:9px!important}
.dashboard-page .dashboard-recent-panel .recent-opd-progress{height:4px!important}
.dashboard-page .dashboard-recent-panel .recent-opd-status{font-size:7.2px!important;padding:3px 5px!important}
.dashboard-page .dashboard-recent-panel .recent-opd-date{font-size:6.8px!important}
@media(max-width:1250px){
  .dashboard-page .dashboard-visual-board{grid-template-columns:minmax(0,1fr) minmax(0,.9fr)!important}
  .dashboard-page .dashboard-map-panel .command-map-layout{grid-template-columns:1.4fr .95fr!important}
  .dashboard-page .dashboard-infra-panel .infra-interactive-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:980px){
  .dashboard-page .dashboard-visual-board{grid-template-columns:1fr!important}
  .dashboard-page .dashboard-infra-panel .infra-interactive-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
}
@media(max-width:700px){
  .dashboard-page .dashboard-map-panel .command-map-layout{grid-template-columns:1fr!important}
  .dashboard-page .dashboard-map-panel .admin-dashboard-map{height:260px!important}
  .dashboard-page .dashboard-infra-panel .infra-interactive-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .dashboard-page .dashboard-recent-panel .recent-opd-grid{grid-template-columns:1fr!important}
}

/* v5.2.33 final overrides — prevent panel stretching and keep dashboard compact */
.dashboard-page .dashboard-visual-board{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)!important;align-items:start!important}
.dashboard-page .dashboard-map-panel{height:auto!important;min-height:0!important;align-self:start!important}
.dashboard-page .dashboard-map-panel .admin-dashboard-map{height:330px!important;min-height:330px!important}
.dashboard-page .dashboard-map-panel .command-map-layout{grid-template-columns:minmax(0,1.55fr) minmax(255px,.95fr)!important;align-items:stretch!important}
.dashboard-page .dashboard-map-panel .district-visual-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:92px!important;gap:8px!important}
.dashboard-page .dashboard-map-panel .district-visual-card{height:92px!important;min-height:92px!important;padding:10px 11px!important}
.dashboard-page .dashboard-map-panel .district-visual-name{font-size:10.8px!important}
.dashboard-page .dashboard-map-panel .district-visual-card strong{font-size:21px!important}
.dashboard-page .dashboard-map-panel .district-visual-share{font-size:7.5px!important}
.dashboard-page .dashboard-side-stack{gap:12px!important}
.dashboard-page .dashboard-infra-panel .infra-interactive-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-template-rows:repeat(2,minmax(0,1fr))!important;gap:8px!important}
.dashboard-page .dashboard-infra-panel .infra-interactive-card{min-height:102px!important;height:102px!important}
.dashboard-page .dashboard-recent-panel .recent-opd-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
.dashboard-page .dashboard-recent-panel .recent-opd-card{min-height:118px!important;height:118px!important}
@media(max-width:1250px) and (min-width:981px){
  .dashboard-page .dashboard-visual-board{grid-template-columns:minmax(0,1fr) minmax(0,.9fr)!important}
  .dashboard-page .dashboard-map-panel .command-map-layout{grid-template-columns:minmax(0,1.35fr) minmax(220px,.95fr)!important}
  .dashboard-page .dashboard-map-panel .admin-dashboard-map{height:300px!important;min-height:300px!important}
  .dashboard-page .dashboard-infra-panel .infra-interactive-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .dashboard-page .dashboard-recent-panel .recent-opd-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:980px){
  .dashboard-page .dashboard-visual-board{grid-template-columns:1fr!important}
  .dashboard-page .dashboard-map-panel .command-map-layout{grid-template-columns:1fr!important}
  .dashboard-page .dashboard-map-panel .admin-dashboard-map{height:300px!important;min-height:300px!important}
  .dashboard-page .dashboard-infra-panel .infra-interactive-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
}
@media(max-width:700px){
  .dashboard-page .dashboard-infra-panel .infra-interactive-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .dashboard-page .dashboard-recent-panel .recent-opd-grid{grid-template-columns:1fr!important}
}

/* v5.2.33 final: keep all latest-update items accessible without making the page excessively long */
.dashboard-page .dashboard-recent-panel .recent-opd-grid{max-height:330px!important;overflow:auto!important;align-content:start!important;scrollbar-width:thin}
.dashboard-page .dashboard-recent-panel .recent-opd-grid::-webkit-scrollbar{width:7px}
.dashboard-page .dashboard-recent-panel .recent-opd-grid::-webkit-scrollbar-thumb{background:#c8d5e3;border-radius:99px}
.dashboard-page .dashboard-recent-panel .recent-opd-grid::-webkit-scrollbar-track{background:#f2f6fa;border-radius:99px}


/* v5.2.34 — location cascade, map detail, and image framing */
.field-help{display:block;margin-top:6px;color:#7b8fa4;font-size:9px;line-height:1.45}
#desaKelurahanSelect:disabled{background:#f1f4f7;color:#8292a2;cursor:not-allowed}
.dp-photo-main,.dp-photo-main img{width:100%;height:100%;min-height:0}
.dp-photo-main{height:240px;aspect-ratio:16/9;background:#eaf0f5}
.dp-photo-main img{object-fit:cover!important;object-position:center;display:block}
.dp-doc img,.dp-timeline-photo,.quarter-gallery-card img{object-fit:cover!important;object-position:center}
#detailPackageMap{min-height:360px;height:360px;width:100%;border-radius:14px;overflow:hidden}

/* ===== OPD & Pengguna v5.2.35 ===== */
.opd-page{max-width:1500px;margin:0 auto}.opd-page-head{margin-bottom:16px}.opd-eyebrow{font-size:9px;letter-spacing:.16em;color:#1d6fe5;font-weight:850;margin-bottom:4px}.opd-page-head h1{font-size:30px!important}.opd-page-head p{font-size:13px!important;max-width:820px}
.opd-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.opd-stat{min-height:100px;border:1px solid #d9e5f0;border-radius:16px;padding:15px 16px;display:flex;align-items:center;gap:12px;position:relative;overflow:hidden;background:#fff;box-shadow:0 10px 24px rgba(19,52,87,.07)}.opd-stat:after{content:"";position:absolute;right:-20px;bottom:-20px;width:86px;height:86px;border-radius:50%;background:var(--soft)}.opd-stat-blue{--soft:#deebff}.opd-stat-green{--soft:#ddf5e9}.opd-stat-violet{--soft:#eee7ff}.opd-stat-amber{--soft:#fff0d5}.opd-stat-icon{position:relative;z-index:1;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-size:16px;font-weight:900;background:var(--soft);color:#155eef;border:1px solid rgba(21,94,239,.12)}.opd-stat-green .opd-stat-icon{color:#159a6a}.opd-stat-violet .opd-stat-icon{color:#7857df}.opd-stat-amber .opd-stat-icon{color:#b77705}.opd-stat small{display:block;font-size:9px;color:#73869c;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.opd-stat strong{display:block;font-size:26px;line-height:1.08;color:var(--navy);margin-top:3px}.opd-stat em{display:block;font-style:normal;font-size:9px;color:#8a9bad;margin-top:2px}
.opd-tabs{display:flex;gap:6px;border-bottom:1px solid #dfe8f3;margin-bottom:14px}.opd-tab{padding:10px 14px;border-radius:10px 10px 0 0;font-size:12px;font-weight:800;color:#60768f;border-bottom:3px solid transparent}.opd-tab:hover{background:#f5f9fd;color:var(--primary)}.opd-tab.active{color:var(--primary);border-bottom-color:var(--primary);background:#f7fbff}
.opd-layout{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(0,1.8fr);gap:14px;align-items:start}.opd-user-layout{grid-template-columns:minmax(300px,.72fr) minmax(0,2fr)}.opd-form-card,.opd-list-card{padding:18px}.opd-section-head{display:flex;align-items:flex-start;gap:10px;padding-bottom:12px;border-bottom:1px solid #edf2f7;margin-bottom:13px}.opd-section-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#eaf3ff;color:var(--primary);font-weight:900;flex:0 0 34px}.opd-section-head h2{margin:0;font-size:17px;color:var(--navy)}.opd-section-head p{margin:3px 0 0;color:#7a8da3;font-size:10px;line-height:1.5}.opd-list-head{justify-content:space-between}.opd-result-pill{white-space:nowrap;padding:7px 10px;border-radius:999px;background:#eef6ff;border:1px solid #d5e7fb;color:#2b67a6;font-size:9px;font-weight:850}
.opd-switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #dfe8f2;border-radius:11px;background:#f8fbfe;cursor:pointer}.opd-switch-row b{display:block;font-size:11px;color:var(--navy)}.opd-switch-row small{display:block;color:#7c8fa3;font-size:9px;margin-top:2px}.opd-switch-row input{appearance:none;width:43px;height:24px;border-radius:999px;background:#cbd7e4;position:relative;flex:0 0 43px;cursor:pointer;transition:.18s ease}.opd-switch-row input:before{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:3px;left:3px;box-shadow:0 2px 6px rgba(0,0,0,.12);transition:.18s ease}.opd-switch-row input:checked{background:#1769d3}.opd-switch-row input:checked:before{left:22px}.opd-form-note{margin-top:11px;padding:10px 12px;border-radius:10px;background:#eef6ff;border:1px solid #d3e7fb;color:#57718d;font-size:9px;line-height:1.5}.opd-form-note b{color:#245f9f}
.opd-search{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;margin-bottom:12px}.opd-search,.opd-search-inline{position:relative}.opd-search>span,.opd-search-inline>span{position:absolute;left:11px;top:50%;transform:translateY(-50%);font-size:17px;color:#7891aa;z-index:1}.opd-search input,.opd-search-inline input{width:100%;height:40px;border:1px solid #cfddeb;border-radius:10px;background:#fff;padding:0 12px 0 32px;font-size:12px;outline:none}.opd-search input:focus,.opd-search-inline input:focus{border-color:#5a9ae8;box-shadow:0 0 0 3px rgba(23,105,211,.09)}
.opd-card-list{display:flex;flex-direction:column;gap:9px}.opd-row-card{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(170px,.7fr) minmax(250px,1.2fr);gap:12px;align-items:center;padding:13px;border:1px solid #dce7f1;border-radius:13px;background:linear-gradient(180deg,#fff,#fbfdff);transition:.16s ease}.opd-row-card:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(23,74,122,.07);border-color:#c8ddef}.opd-row-brand{display:flex;align-items:center;gap:10px;min-width:0}.opd-row-mark{width:40px;height:40px;border-radius:12px;background:#edf5ff;color:var(--primary);display:grid;place-items:center;font-weight:900;flex:0 0 40px}.opd-row-brand h3{margin:0;color:var(--navy);font-size:13px;line-height:1.35}.opd-row-brand p{margin:3px 0 0;color:#7d90a4;font-size:9px}.opd-row-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.opd-row-stats div{padding:8px 10px;background:#f6f9fc;border:1px solid #e3ebf3;border-radius:10px}.opd-row-stats span{display:block;font-size:8px;color:#8395a8}.opd-row-stats b{display:block;font-size:16px;color:var(--navy);line-height:1.2;margin-top:2px}.opd-row-stats small{display:block;font-size:8px;color:#8ea0b2;margin-top:2px}.opd-row-status{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.opd-row-actions{display:flex;gap:5px;justify-content:flex-end;flex-wrap:wrap}.opd-empty{padding:34px 18px;border:1px dashed #cbd9e7;border-radius:12px;background:#f9fbfd;text-align:center}.opd-empty strong{display:block;font-size:13px;color:var(--navy)}.opd-empty span{display:block;font-size:10px;color:#8393a6;margin-top:3px}
.opd-user-filter{display:grid;grid-template-columns:minmax(0,1fr) 230px auto auto;gap:8px;align-items:center;margin-bottom:12px}.opd-user-filter select{height:40px;border:1px solid #cfddeb;border-radius:10px;background:#fff;padding:0 10px;font-size:11px;color:#2b425e}.opd-search-inline{min-width:0}.user-card-list{display:flex;flex-direction:column;gap:9px}.user-row-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px 13px;border:1px solid #dce7f1;border-radius:13px;background:#fff}.user-avatar-initials{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#155eef,#0a3c8c);color:#fff;display:grid;place-items:center;font-size:14px;font-weight:900;box-shadow:0 6px 14px rgba(21,94,239,.18)}.user-row-main{min-width:0}.user-row-name{display:flex;align-items:center;gap:7px;min-width:0}.user-row-name h3{margin:0;color:var(--navy);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-row-main>p{margin:2px 0 5px;color:#6e8299;font-size:9px}.user-row-meta{display:flex;gap:8px;flex-wrap:wrap}.user-row-meta span{font-size:8px;color:#587089;background:#f5f8fc;border:1px solid #e4ebf2;border-radius:999px;padding:4px 7px}.user-row-actions{display:flex;gap:5px;justify-content:flex-end;flex-wrap:wrap}.btn-warning-soft{background:#fff1d5;color:#9b6906;border:1px solid #f0d69e}.btn-warning-soft:hover{background:#ffe8b6}.btn-outline-danger{background:#fff;border:1px solid #efb6bd;color:#b4232f}.btn-outline-danger:hover{background:#fff2f3}.opd-security-note{margin-top:13px;padding:11px 13px;border-radius:12px;border:1px solid #e3d3a0;background:#fff9e8;color:#745d20;font-size:9px;line-height:1.55}.opd-security-note b{color:#6a5010}
@media(max-width:1250px){.opd-layout,.opd-user-layout{grid-template-columns:1fr}.opd-row-card{grid-template-columns:1.2fr .8fr 1fr}.opd-page-head h1{font-size:27px!important}}
@media(max-width:950px){.opd-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.opd-row-card{grid-template-columns:1fr}.opd-row-status{justify-content:flex-start}.opd-row-actions{justify-content:flex-start}.opd-user-filter{grid-template-columns:1fr 1fr}.opd-search-inline{grid-column:1/-1}}
@media(max-width:650px){.opd-stat-grid{grid-template-columns:1fr}.opd-page-head{align-items:flex-start}.opd-tabs{overflow:auto}.opd-tab{white-space:nowrap}.opd-search{grid-template-columns:1fr}.opd-user-filter{grid-template-columns:1fr}.user-row-card{grid-template-columns:42px minmax(0,1fr)}.user-row-actions{grid-column:1/-1;justify-content:flex-start}.opd-row-stats{grid-template-columns:1fr 1fr}}


/* ===== v5.2.36 — OPD & Pengguna visual rebuild ===== */
.opd-page{
  width:100%!important;max-width:1550px!important;margin:0 auto!important;padding:0!important;
}
.opd-page .opd-page-head{
  display:flex!important;justify-content:space-between!important;align-items:flex-end!important;gap:24px!important;
  margin:0 0 16px!important;padding:0!important;
}
.opd-page .opd-page-head h1{font-size:31px!important;line-height:1.12!important;margin:6px 0 7px!important;color:#062c61!important}
.opd-page .opd-page-head p{font-size:13px!important;line-height:1.5!important;margin:0!important;color:#627893!important;max-width:860px!important}
.opd-page .opd-eyebrow{font-size:10px!important;letter-spacing:.14em!important;color:#2a76d9!important;font-weight:900!important;margin:0!important;text-transform:uppercase!important}
.opd-page .opd-page-head .actions{display:flex!important;gap:9px!important;align-items:center!important;flex:0 0 auto!important}
.opd-page .opd-page-head .actions .btn{min-height:42px!important;padding:10px 15px!important;font-size:11.5px!important;border-radius:10px!important}
.opd-page .opd-stat-grid{
  display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important;
  margin:0 0 14px!important;
}
.opd-page .opd-stat{
  min-width:0!important;min-height:98px!important;padding:15px 16px!important;
  display:flex!important;align-items:center!important;gap:12px!important;
  border:1px solid #d7e4f1!important;border-radius:15px!important;background:#fff!important;
  box-shadow:0 9px 24px rgba(10,45,88,.07)!important;position:relative!important;overflow:hidden!important;
}
.opd-page .opd-stat:after{content:""!important;position:absolute!important;right:-24px!important;bottom:-24px!important;width:95px!important;height:95px!important;border-radius:50%!important;background:var(--soft)!important;opacity:.9!important}
.opd-page .opd-stat-icon{position:relative!important;z-index:1!important;width:42px!important;height:42px!important;flex:0 0 42px!important;border-radius:12px!important;display:grid!important;place-items:center!important;font-size:16px!important;font-weight:900!important;background:var(--soft)!important;color:#155eef!important;border:1px solid rgba(21,94,239,.1)!important}
.opd-page .opd-stat>div{min-width:0!important;position:relative!important;z-index:1!important}
.opd-page .opd-stat small{display:block!important;font-size:9.5px!important;line-height:1.25!important;color:#6d8299!important;text-transform:uppercase!important;letter-spacing:.07em!important;font-weight:900!important;margin:0!important}
.opd-page .opd-stat strong{display:block!important;font-size:26px!important;line-height:1.05!important;color:#062c61!important;margin:4px 0 0!important;font-weight:950!important}
.opd-page .opd-stat em{display:block!important;font-style:normal!important;font-size:9.5px!important;line-height:1.25!important;color:#8496aa!important;margin:2px 0 0!important}
.opd-page .opd-stat-blue{--soft:#e5f0ff!important}.opd-page .opd-stat-green{--soft:#e3f7ee!important}.opd-page .opd-stat-violet{--soft:#efe9ff!important}.opd-page .opd-stat-amber{--soft:#fff3d9!important}
.opd-page .opd-tabs{display:flex!important;gap:6px!important;border-bottom:1px solid #dbe6f0!important;margin:0 0 14px!important}
.opd-page .opd-tab{display:inline-flex!important;align-items:center!important;gap:7px!important;padding:10px 14px!important;border-radius:10px 10px 0 0!important;font-size:12px!important;font-weight:900!important;color:#678096!important;border-bottom:3px solid transparent!important;text-decoration:none!important}
.opd-page .opd-tab.active{color:#155eef!important;border-bottom-color:#155eef!important;background:#f4f8fd!important}
.opd-page .opd-layout{display:grid!important;grid-template-columns:minmax(320px,360px) minmax(0,1fr)!important;gap:14px!important;align-items:start!important}
.opd-page .opd-user-layout{grid-template-columns:minmax(320px,360px) minmax(0,1fr)!important}
.opd-page .opd-form-card,.opd-page .opd-list-card{padding:18px!important;border-radius:16px!important;background:#fff!important;border:1px solid #d9e5f0!important;box-shadow:0 10px 26px rgba(10,45,88,.06)!important}
.opd-page .opd-section-head{display:flex!important;align-items:flex-start!important;gap:10px!important;padding:0 0 12px!important;border-bottom:1px solid #edf2f7!important;margin:0 0 13px!important}
.opd-page .opd-section-icon{width:34px!important;height:34px!important;flex:0 0 34px!important;border-radius:10px!important;display:grid!important;place-items:center!important;background:#eaf3ff!important;color:#155eef!important;font-weight:900!important}
.opd-page .opd-section-head h2{margin:0!important;font-size:17px!important;line-height:1.25!important;color:#062c61!important}
.opd-page .opd-section-head p{margin:4px 0 0!important;font-size:10px!important;line-height:1.45!important;color:#7a8ea4!important}
.opd-page .opd-form-card .stack{display:flex!important;flex-direction:column!important;gap:12px!important}
.opd-page .opd-form-card .field{margin:0!important}
.opd-page .opd-form-card .field label,.opd-page .opd-form-card .field>label{display:block!important;font-size:11px!important;font-weight:850!important;color:#31536f!important;margin:0 0 6px!important}
.opd-page .opd-form-card input,.opd-page .opd-form-card select{width:100%!important;box-sizing:border-box!important;height:42px!important;padding:0 12px!important;border:1px solid #cfddea!important;border-radius:10px!important;background:#fff!important;color:#23425f!important;font-size:12px!important}
.opd-page .opd-form-card input:focus,.opd-page .opd-form-card select:focus{border-color:#4f95e5!important;box-shadow:0 0 0 3px rgba(21,94,239,.08)!important;outline:none!important}
.opd-page .opd-switch-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding:11px 12px!important;border:1px solid #dce7f1!important;border-radius:11px!important;background:#f8fbfe!important;margin:0!important}
.opd-page .opd-switch-row b{display:block!important;font-size:11px!important;color:#062c61!important}
.opd-page .opd-switch-row small{display:block!important;font-size:9px!important;line-height:1.4!important;color:#7b8ea3!important;margin-top:3px!important}
.opd-page .opd-switch-row input{appearance:none!important;width:44px!important;height:24px!important;flex:0 0 44px!important;border-radius:999px!important;background:#c9d6e4!important;position:relative!important;cursor:pointer!important}
.opd-page .opd-switch-row input:checked{background:#155eef!important}
.opd-page .opd-switch-row input:before{content:""!important;position:absolute!important;width:18px!important;height:18px!important;left:3px!important;top:3px!important;background:#fff!important;border-radius:50%!important;box-shadow:0 2px 6px rgba(0,0,0,.14)!important;transition:.18s ease!important}
.opd-page .opd-switch-row input:checked:before{left:23px!important}
.opd-page .opd-form-card .actions{display:flex!important;gap:8px!important;margin:0!important}
.opd-page .opd-form-card .actions .btn{min-height:40px!important;font-size:11.5px!important;padding:9px 13px!important}
.opd-page .opd-form-note{margin:0!important;padding:10px 12px!important;border-radius:10px!important;background:#eef6ff!important;border:1px solid #d3e7fb!important;color:#57718d!important;font-size:9px!important;line-height:1.5!important}
.opd-page .opd-list-head{display:flex!important;justify-content:space-between!important;align-items:flex-start!important;gap:12px!important}
.opd-page .opd-result-pill{font-size:9px!important;padding:6px 9px!important;border-radius:999px!important;background:#eef6ff!important;color:#2b67a6!important;border:1px solid #d5e7fb!important;white-space:nowrap!important}
.opd-page .opd-search{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;gap:8px!important;align-items:center!important;margin:0 0 12px!important}
.opd-page .opd-search input,.opd-page .opd-search-inline input{height:40px!important;width:100%!important;box-sizing:border-box!important;border:1px solid #cfddeb!important;border-radius:10px!important;background:#fff!important;padding:0 12px 0 32px!important;font-size:12px!important}
.opd-page .opd-search>span,.opd-page .opd-search-inline>span{font-size:16px!important;left:11px!important}
.opd-page .opd-search .btn{min-height:40px!important;font-size:11px!important;padding:9px 12px!important}
.opd-page .opd-card-list,.opd-page .user-card-list{display:flex!important;flex-direction:column!important;gap:9px!important}
.opd-page .opd-row-card{display:grid!important;grid-template-columns:minmax(0,1.55fr) 220px minmax(250px,.95fr)!important;gap:12px!important;align-items:center!important;padding:12px!important;border:1px solid #dce7f1!important;border-radius:13px!important;background:linear-gradient(180deg,#fff,#fbfdff)!important;min-width:0!important}
.opd-page .opd-row-brand{display:flex!important;align-items:center!important;gap:10px!important;min-width:0!important}
.opd-page .opd-row-mark{width:40px!important;height:40px!important;flex:0 0 40px!important;border-radius:12px!important;background:#eaf3ff!important;color:#155eef!important;display:grid!important;place-items:center!important;font-weight:900!important}
.opd-page .opd-row-brand h3{margin:0!important;font-size:13px!important;line-height:1.35!important;color:#062c61!important}
.opd-page .opd-row-brand p{margin:3px 0 0!important;font-size:9.5px!important;color:#7c90a4!important}
.opd-page .opd-row-stats{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important}
.opd-page .opd-row-stats div{padding:8px 9px!important;border-radius:10px!important;background:#f6f9fc!important;border:1px solid #e3ebf3!important}
.opd-page .opd-row-stats span{display:block!important;font-size:8px!important;color:#8395a8!important}
.opd-page .opd-row-stats b{display:block!important;font-size:16px!important;line-height:1.1!important;color:#062c61!important;margin-top:2px!important}
.opd-page .opd-row-stats small{display:block!important;font-size:8px!important;color:#8ea0b2!important;margin-top:2px!important}
.opd-page .opd-row-status{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;flex-wrap:wrap!important}
.opd-page .opd-row-actions{display:flex!important;gap:6px!important;justify-content:flex-end!important;flex-wrap:wrap!important}
.opd-page .opd-row-actions .btn{font-size:10px!important;padding:8px 9px!important;min-height:34px!important}
.opd-page .opd-user-filter{display:grid!important;grid-template-columns:minmax(0,1fr) 230px auto auto!important;gap:8px!important;align-items:center!important;margin:0 0 12px!important}
.opd-page .opd-user-filter select{height:40px!important;font-size:11px!important}
.opd-page .user-row-card{display:grid!important;grid-template-columns:44px minmax(0,1fr) auto!important;gap:11px!important;align-items:center!important;padding:12px 13px!important;border:1px solid #dce7f1!important;border-radius:13px!important;background:#fff!important}
.opd-page .user-row-actions{display:flex!important;gap:6px!important;justify-content:flex-end!important;align-items:center!important;flex-wrap:wrap!important}
.opd-page .user-row-actions .btn{font-size:10px!important;padding:8px 9px!important;min-height:34px!important}
.opd-page .opd-security-note{margin:13px 0 0!important;font-size:9px!important}

@media(max-width:1200px){
 .opd-page .opd-layout,.opd-page .opd-user-layout{grid-template-columns:1fr!important}
 .opd-page .opd-row-card{grid-template-columns:minmax(0,1.3fr) 210px minmax(230px,1fr)!important}
}
@media(max-width:900px){
 .opd-page .opd-page-head{align-items:flex-start!important;flex-direction:column!important}
 .opd-page .opd-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .opd-page .opd-row-card{grid-template-columns:1fr!important}
 .opd-page .opd-row-status,.opd-page .opd-row-actions{justify-content:flex-start!important}
 .opd-page .opd-user-filter{grid-template-columns:1fr 1fr!important}
 .opd-page .opd-search-inline{grid-column:1/-1!important}
}
@media(max-width:640px){
 .opd-page .opd-page-head h1{font-size:25px!important}
 .opd-page .opd-page-head .actions{width:100%!important}
 .opd-page .opd-page-head .actions .btn{flex:1!important;justify-content:center!important}
 .opd-page .opd-stat-grid{grid-template-columns:1fr!important}
 .opd-page .opd-search,.opd-page .opd-user-filter{grid-template-columns:1fr!important}
 .opd-page .opd-user-filter .opd-search-inline{grid-column:auto!important}
}


/* v5.2.37 — Search SQL alias fix and clearer PDO error classification */

/* v5.2.43 security, recovery UI, and admin banner */
.backup-recovery-card{border:1px solid #c8d9f7;background:linear-gradient(135deg,#f7fbff,#eef5ff)}
.recovery-history-panel{margin-top:20px}
.backup-offserver-note{margin-top:16px;padding:12px 14px;border:1px solid #dbe7f5;border-radius:10px;background:#f7fafc;color:#38516e;font-size:13px;line-height:1.55}


/* v5.2.43 — CMS admin banner + compact hero integration */
.admin-command-center .admin-command-hero{isolation:isolate}
.admin-command-center .admin-command-hero-image{position:absolute;inset:0 0 0 auto;width:42%;background-size:cover;background-position:center;opacity:.95;z-index:0;pointer-events:none}
.admin-command-center .admin-command-hero-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,29,69,1) 0%,rgba(6,29,69,.92) 22%,rgba(6,29,69,.5) 58%,rgba(6,29,69,.12) 100%)}
.dashboard-page .admin-command-copy,.dashboard-page .admin-year-control{position:relative;z-index:2}
.dashboard-page .admin-command-hero{color:#fff}
.dashboard-page .admin-command-copy .dashboard-breadcrumb{color:rgba(255,255,255,.72)}
.dashboard-page .admin-command-copy h1{color:#fff}
.dashboard-page .admin-command-copy p{color:rgba(255,255,255,.82)}
.dashboard-page .admin-eyebrow{color:#f2c35d}
.dashboard-page .admin-hero-meta span{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.18);color:rgba(255,255,255,.8);backdrop-filter:blur(4px)}
.dashboard-page .admin-hero-meta b{color:#fff}
.cms-preview-admin-banner{margin-top:15px}
.cms-preview-admin-banner-frame{position:relative;min-height:128px;border-radius:13px;overflow:hidden;border:1px solid #dce7ef;background:#0a3c8c center/cover no-repeat}
.cms-preview-admin-banner-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,29,69,.94) 0%,rgba(6,29,69,.68) 54%,rgba(6,29,69,.22) 100%)}
.cms-preview-admin-banner-copy{position:relative;z-index:1;padding:18px 16px;color:#fff;display:flex;flex-direction:column;justify-content:center;min-height:128px;max-width:78%}
.cms-preview-admin-banner-copy b{font-size:13px;line-height:1.2}.cms-preview-admin-banner-copy small{font-size:9px;margin-top:5px;color:rgba(255,255,255,.8)}
@media(max-width:900px){.admin-command-center .admin-command-hero-image{width:55%;opacity:.42}.dashboard-page .admin-command-copy{max-width:100%}}


/* v5.2.40 — Full-width Admin Dashboard Banner */
.admin-command-center .admin-command-hero{
  min-height:260px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate!important;
  border-radius:18px!important;
}
.admin-command-center .admin-command-hero-image{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  background-size:cover!important;
  background-position:center!important;
  opacity:1!important;
  z-index:-2!important;
  pointer-events:none!important;
}
.admin-command-center .admin-command-hero-image:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(6,29,69,.96) 0%,rgba(6,29,69,.86) 34%,rgba(6,29,69,.56) 62%,rgba(6,29,69,.20) 100%),linear-gradient(0deg,rgba(6,29,69,.22),rgba(6,29,69,.05));
}
.dashboard-page .admin-command-copy{
  position:relative!important;
  z-index:2!important;
  max-width:900px!important;
  padding-right:20px;
}
.dashboard-page .admin-year-control{
  position:relative!important;
  z-index:3!important;
  justify-self:end;
  align-self:center;
  margin-right:18px;
  min-width:230px;
  padding:16px;
  border-radius:16px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(8px);
  box-shadow:0 12px 28px rgba(0,0,0,.12);
}
.dashboard-page .admin-year-control label{color:#ffe9a8!important;font-weight:900!important}
.dashboard-page .admin-year-control select{background:rgba(255,255,255,.97)!important;color:#16345d!important;border-color:rgba(255,255,255,.5)!important}
.dashboard-page .admin-year-control small{color:rgba(255,255,255,.78)!important}
@media(max-width:900px){
  .admin-command-center .admin-command-hero{grid-template-columns:1fr!important;min-height:300px!important}
  .dashboard-page .admin-year-control{justify-self:start;margin:6px 0 0;padding:12px;min-width:210px}
  .dashboard-page .admin-command-copy{padding-right:0}
  .admin-command-center .admin-command-hero-image{opacity:1!important}
  .admin-command-center .admin-command-hero-image:after{background:linear-gradient(180deg,rgba(6,29,69,.92) 0%,rgba(6,29,69,.70) 52%,rgba(6,29,69,.38) 100%)}
}

/* v5.2.43 — Robust full-width Public Dashboard Banner */
.public-dashboard-v517 .public-hero-v509{
  background:#0B4F9F!important;
  overflow:hidden!important;
}
.public-dashboard-v517 .public-hero-v509-bg{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  display:block!important;
  object-fit:cover!important;
  object-position:center!important;
  z-index:0!important;
}
.public-dashboard-v517 .public-hero-v509::after{
  background:linear-gradient(90deg,rgba(6,29,69,.70) 0%,rgba(10,60,140,.35) 55%,rgba(10,60,140,.06) 100%)!important;
}
.public-dashboard-v517 .hero-v509-overlay{
  background:radial-gradient(circle at 78% 18%,rgba(255,255,255,.16),transparent 28%),radial-gradient(circle at 84% 82%,rgba(214,162,58,.14),transparent 28%)!important;
}
@media(max-width:700px){
  .public-dashboard-v517 .public-hero-v509{
    min-height:330px!important;
    background-position:center!important;
  }
}


/* ================================================================
   v5.2.43 — Tema Gelap / Terang per pengguna
   CMS menetapkan tema default; pengguna dapat override dari header.
   ================================================================ */
:root{color-scheme:light;}
html[data-theme="dark"]{color-scheme:dark;
  --primary:#4f8cff;--primary-2:#76a7ff;--primary-3:#12305a;--sidebar:#06152e;--sidebar-deep:#081d3d;
  --navy:#f2f7ff;--text:#d9e6f4;--muted:#91a7bf;--line:#27415e;--bg:#081426;--card:#10213a;
  --success:#52d39a;--warning:#f4b84a;--danger:#ff727f;--shadow:0 16px 38px rgba(0,0,0,.24);
}
html[data-theme="dark"] body{background:var(--bg);color:var(--text)}
html[data-theme="dark"] a{color:inherit}
html[data-theme="dark"] .topbar{background:#0d1e35;border-color:#2a4663;color:#dbe9f8}
html[data-theme="dark"] .topbar{box-shadow:0 6px 24px rgba(0,0,0,.16)}
html[data-theme="dark"] .brand strong,html[data-theme="dark"] .page-title h1,html[data-theme="dark"] .form-section h3,html[data-theme="dark"] .stat .value,html[data-theme="dark"] .category-card .amount,html[data-theme="dark"] .quarter-card .n{color:#f1f7ff}
html[data-theme="dark"] .brand small,html[data-theme="dark"] .page-title p,html[data-theme="dark"] .muted,html[data-theme="dark"] .field small{color:#8fa6bd}
html[data-theme="dark"] .year-chip,html[data-theme="dark"] .user-badge{background:#142943;color:#cfe0f2;border-color:#2a4663}
html[data-theme="dark"] .card,html[data-theme="dark"] .stat,html[data-theme="dark"] .category-card,html[data-theme="dark"] .quarter-card,html[data-theme="dark"] .check,html[data-theme="dark"] .correlation-item,html[data-theme="dark"] .table-wrap{background:#10213a;border-color:#28445f;box-shadow:var(--shadow)}
html[data-theme="dark"] .stat:after{background:#173253}
html[data-theme="dark"] .field label{color:#a9bfd4}
html[data-theme="dark"] .field input,html[data-theme="dark"] .field select,html[data-theme="dark"] .field textarea{background:#0c1b30;border-color:#2b4864;color:#eef6ff}
html[data-theme="dark"] .field input:focus,html[data-theme="dark"] .field select:focus,html[data-theme="dark"] .field textarea:focus{border-color:#4f8cff;box-shadow:0 0 0 3px rgba(79,140,255,.18)}
html[data-theme="dark"] .btn-light{background:#132943;border-color:#2b4864;color:#e5eff9}
html[data-theme="dark"] .btn-light:hover{background:#183554}
html[data-theme="dark"] .alert.success{background:#0f3025;color:#8de0b9;border-color:#275e4d}
html[data-theme="dark"] .alert.error{background:#321823;color:#ffabb2;border-color:#663344}
html[data-theme="dark"] .table th{background:#132943;color:#a8bfd5;border-color:#28445f}
html[data-theme="dark"] .table td{border-color:#1f3852;color:#dbe7f2}
html[data-theme="dark"] .progress{background:#22384e}
html[data-theme="dark"] .badge-gray{background:#1c2d41;color:#a7bdd2}
html[data-theme="dark"] .badge-blue{background:#173665;color:#a9c7ff}
html[data-theme="dark"] .badge-amber{background:#3d3015;color:#ffd27c}
html[data-theme="dark"] .badge-red{background:#3b1d26;color:#ffadb6}
html[data-theme="dark"] .badge-green{background:#133526;color:#92e8bb}
html[data-theme="dark"] .badge-teal{background:#15394b;color:#9fe0ff}
html[data-theme="dark"] .hero-note{background:#102943;border-color:#2a4c69;color:#dbe8f4}
html[data-theme="dark"] .hero-note span{color:#9db1c4}
html[data-theme="dark"] .check,html[data-theme="dark"] .correlation-item{background:#11243d}
html[data-theme="dark"] .correlation-item.active{background:#132e4f;border-color:#376a9b}
html[data-theme="dark"] .nav-sub{background:#0a1b31}
html[data-theme="dark"] .profile-menu{background:#10213a;border-color:#28445f;box-shadow:0 18px 42px rgba(0,0,0,.3)}
html[data-theme="dark"] .profile-menu a,html[data-theme="dark"] .profile-menu-head{color:#dce9f6}
html[data-theme="dark"] .profile-menu a:hover{background:#173253}
html[data-theme="dark"] .profile-menu-head{border-color:#28445f}
html[data-theme="dark"] .global-search-results{background:#10213a;border-color:#2b4864;box-shadow:0 18px 42px rgba(0,0,0,.3)}
html[data-theme="dark"] .global-search-results a:hover{background:#173253}
html[data-theme="dark"] .zoom-control{background:#10213a;border-color:#28445f;color:#e6eff8;box-shadow:0 10px 28px rgba(0,0,0,.28)}
html[data-theme="dark"] .zoom-control button{background:#173253;color:#e6eff8;border-color:#28445f}
html[data-theme="dark"] .footer-note{color:#8ea5bc!important;border-color:#28445f!important}
html[data-theme="dark"] .footer-note strong{color:#d9e7f3!important}
html[data-theme="dark"] .empty-photo{background:#0d1d31;border-color:#33506a;color:#91a7bc}
html[data-theme="dark"] .photo-thumb,html[data-theme="dark"] .photo-large{border-color:#294560;background:#0b1828}
html[data-theme="dark"] .login-wrap{background:#081426}
html[data-theme="dark"] .login-panel{background:#0b192d}
html[data-theme="dark"] .login-card{background:#10213a;border-color:#294560;box-shadow:0 24px 60px rgba(0,0,0,.32)}
html[data-theme="dark"] .login-brand h2{color:#f2f7ff}
html[data-theme="dark"] .login-brand p,html[data-theme="dark"] .login-help{color:#9ab0c4}
html[data-theme="dark"] .login-public-link{border-color:#294560}
html[data-theme="dark"] .login-public-link a{color:#84adff}
html[data-theme="dark"] .login-topnav a{color:#dce8f3;background:rgba(14,33,56,.76);border-color:#31516f}
html[data-theme="dark"] .login-topnav a:hover{background:#173253}
html[data-theme="dark"] .login-topnav .theme-toggle-btn{background:#132943;color:#dce8f3}
html[data-theme="dark"] .public-body,html[data-theme="dark"] .public-dashboard-simple{background:#081426;color:#dce8f3}
html[data-theme="dark"] .public-topbar{background:rgba(8,22,39,.94);border-color:#27415e}
html[data-theme="dark"] .portal-brand strong,html[data-theme="dark"] .public-dashboard-head h1{color:#f2f7ff}
html[data-theme="dark"] .portal-brand small,html[data-theme="dark"] .public-dashboard-head p,html[data-theme="dark"] .public-footer-note{color:#8fa7bd}
html[data-theme="dark"] .public-nav a{color:#b9cce0}
html[data-theme="dark"] .public-nav a:hover,html[data-theme="dark"] .public-nav a.active{background:#132943;color:#81adff}
html[data-theme="dark"] .public-dashboard-filter-form .field input,html[data-theme="dark"] .public-dashboard-filter-form .field select,html[data-theme="dark"] .public-year-form select{background:#0d1d31;color:#eaf3fb;border-color:#2b4864}
html[data-theme="dark"] .public-simple-filters,html[data-theme="dark"] .public-filter-v509,html[data-theme="dark"] .public-style-card{background:#10213a;border-color:#28445f}
html[data-theme="dark"] .public-hero-v509-bg{filter:brightness(.7)}
html[data-theme="dark"] .hero-v509-overlay{background:linear-gradient(90deg,rgba(2,12,28,.82),rgba(2,18,38,.34))}
html[data-theme="dark"] .public-kpi-v509-card{box-shadow:0 14px 32px rgba(0,0,0,.24)}
html[data-theme="dark"] .public-kpi-v509-card.blue{background:linear-gradient(135deg,#10469d,#246be6)}
html[data-theme="dark"] .public-kpi-v509-card.green{background:linear-gradient(135deg,#0a745e,#0c9b70)}
html[data-theme="dark"] .public-kpi-v509-card.amber{background:linear-gradient(135deg,#9b6810,#d59c25)}
html[data-theme="dark"] .public-kpi-v509-card.red{background:linear-gradient(135deg,#9d283d,#cb3b4e)}
html[data-theme="dark"] .cms-tabbar{background:#0b1b2e;border-color:#27415e}
html[data-theme="dark"] .cms-tab{color:#9eb4ca}
html[data-theme="dark"] .cms-tab:hover{background:#122943}
html[data-theme="dark"] .cms-tab.active{background:#173253;color:#9fc2ff;box-shadow:0 8px 18px rgba(0,0,0,.22)}
html[data-theme="dark"] .cms-main-v522,html[data-theme="dark"] .cms-live-preview-v522{background:#10213a;border-color:#28445f}
html[data-theme="dark"] .cms-section-head-v522 h2,html[data-theme="dark"] .cms-preview-head-v522 h3{color:#f0f6fd}
html[data-theme="dark"] .cms-section-head-v522 p,html[data-theme="dark"] .cms-preview-head-v522 p{color:#9bb0c4}
html[data-theme="dark"] .cms-density-box,html[data-theme="dark"] .cms-theme-default-box{background:#0f2137;border-color:#28445f}
html[data-theme="dark"] .cms-density-box strong,html[data-theme="dark"] .cms-theme-default-box strong{color:#e1ecf6}
html[data-theme="dark"] .cms-density-box small,html[data-theme="dark"] .cms-theme-default-box small{color:#95abc0}
html[data-theme="dark"] .cms-density-box select,html[data-theme="dark"] .cms-infra-row select,html[data-theme="dark"] .cms-icon-field select{background:#0c1c30;color:#edf5fd;border-color:#2b4864}
html[data-theme="dark"] .cms-dashboard-hero-edit,html[data-theme="dark"] .cms-infra-row,html[data-theme="dark"] .cms-toggle-card{background:#0f2137;border-color:#28445f}
html[data-theme="dark"] .cms-dashboard-hero-edit strong,html[data-theme="dark"] .cms-infra-name b,html[data-theme="dark"] .cms-toggle-card b{color:#e0ebf6}
html[data-theme="dark"] .cms-dashboard-hero-edit span,html[data-theme="dark"] .cms-infra-name small,html[data-theme="dark"] .cms-toggle-card small{color:#95abc0}
html[data-theme="dark"] .cms-assets-v522 .asset-upload-preview{background:#0b1a2d;border-color:#28445f}
html[data-theme="dark"] .cms-save-bar-v522{background:#0c1b2e;border-color:#28445f}
html[data-theme="dark"] .cms-save-bar-v522 b{color:#d8e6f3}
html[data-theme="dark"] .cms-save-bar-v522 span{color:#94aabd}
html[data-theme="dark"] .cms-footer-preview-v516,html[data-theme="dark"] .cms-footer-preview-demo{background:#0f2137;border-color:#28445f}
html[data-theme="dark"] .cms-footer-preview-demo strong{color:#dbe9f5}
html[data-theme="dark"] .cms-footer-preview-demo span{color:#98adbf}
html[data-theme="dark"] .backup-action-card,html[data-theme="dark"] .backup-panel,html[data-theme="dark"] .backup-history-panel{background:#10213a;border-color:#28445f}
html[data-theme="dark"] .backup-drop,html[data-theme="dark"] .backup-row,html[data-theme="dark"] .backup-empty{background:#0f2137;border-color:#31516f;color:#dce8f3}
html[data-theme="dark"] .backup-action-copy h2,html[data-theme="dark"] .backup-panel-head h2{color:#f0f6fd}
html[data-theme="dark"] .backup-action-copy p,html[data-theme="dark"] .backup-panel-head p{color:#9eb2c4}
html[data-theme="dark"] .backup-panel code{background:#173253;color:#d9eaff}
html[data-theme="dark"] .profile-account-card,html[data-theme="dark"] .profile-form-card-v522,html[data-theme="dark"] .profile-activity-card-v522{background:#10213a;border-color:#28445f}
html[data-theme="dark"] .profile-section-heading>div>strong,html[data-theme="dark"] .profile-info-list strong{color:#eef5fb}
html[data-theme="dark"] .profile-info-list>div,html[data-theme="dark"] .profile-save-row,html[data-theme="dark"] .profile-security-divider{border-color:#28445f}
html[data-theme="dark"] .profile-form-tip,html[data-theme="dark"] .last-login-box{background:#102943;border-color:#31516f;color:#a9bfd2}
html[data-theme="dark"] .profile-form-tip,html[data-theme="dark"] .activity-row-v522 p{color:#9fb3c6}
html[data-theme="dark"] .activity-row-v522{border-color:#243e58}
html[data-theme="dark"] .activity-empty-v522{background:#0e2036;border-color:#34546e;color:#91a6b9}
html[data-theme="dark"] .theme-toggle-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:7px 11px;border:1px solid #2b4864;border-radius:10px;background:#f7fbff;color:#294e71;font:inherit;font-size:10px;font-weight:850;cursor:pointer;transition:.18s ease}
html[data-theme="dark"] .theme-toggle-btn:hover{transform:translateY(-1px);background:#173253;color:#fff}
.theme-toggle-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:7px 11px;border:1px solid #d4e1ee;border-radius:10px;background:#f8fbff;color:#325a7b;font:inherit;font-size:10px;font-weight:850;cursor:pointer;transition:.18s ease}.theme-toggle-btn:hover{transform:translateY(-1px);background:#edf5ff}.theme-toggle-icon{font-size:14px;line-height:1}.theme-toggle-label{white-space:nowrap}
.public-theme-toggle{margin:0 2px}.login-theme-toggle{margin-left:2px}
.cms-theme-default-box{margin-top:16px;padding:15px;border:1px solid #dbe7ef;border-radius:13px;background:#f8fbfe;display:flex;align-items:center;justify-content:space-between;gap:14px}.cms-theme-default-box strong{display:block;color:#254966;font-size:13px}.cms-theme-default-box small{display:block;margin-top:3px;color:#7b8fa1;font-size:11px}.cms-theme-default-options{display:flex;gap:8px}.cms-theme-default-options label{display:inline-flex;align-items:center;gap:6px;padding:9px 12px;border:1px solid #d0deea;border-radius:10px;background:#fff;color:#385d78;font-size:11px;font-weight:800;cursor:pointer}.cms-theme-default-options input{accent-color:var(--primary)}

@media(max-width:1100px){.theme-toggle-label{display:none}.theme-toggle-btn{width:36px;padding:6px}.public-theme-toggle .theme-toggle-label{display:inline}.public-theme-toggle{width:auto}}
@media(max-width:760px){.public-theme-toggle .theme-toggle-label{display:none}.cms-theme-default-box{flex-direction:column;align-items:stretch}.cms-theme-default-options{width:100%}.cms-theme-default-options label{flex:1;justify-content:center}}

/* ================================================================
   v5.2.44 — Cohesive Dark Theme / Theme Controls
   - Early theme initialization is added in the authenticated header.
   - Admin and public dashboards use coordinated surfaces, borders and text.
   - Theme toggle keeps the same visual language in light/dark modes.
   ================================================================ */

/* Correct the previous overly-broad selector and give the theme button a stable visual language. */
html[data-theme="dark"] .topbar .theme-toggle-btn,
html[data-theme="dark"] .public-topbar .theme-toggle-btn,
html[data-theme="dark"] .login-topnav .theme-toggle-btn{
  background:#122844 !important;
  color:#f4c95d !important;
  border-color:#385d87 !important;
  box-shadow:0 7px 18px rgba(0,0,0,.16) !important;
}
html[data-theme="dark"] .topbar .theme-toggle-btn:hover,
html[data-theme="dark"] .public-topbar .theme-toggle-btn:hover,
html[data-theme="dark"] .login-topnav .theme-toggle-btn:hover{
  background:#173658 !important;
  color:#ffd873 !important;
  border-color:#4b76a8 !important;
}
html[data-theme="light"] .topbar .theme-toggle-btn,
html[data-theme="light"] .public-topbar .theme-toggle-btn,
html[data-theme="light"] .login-topnav .theme-toggle-btn{
  background:#f8fbff !important;
  color:#2d5272 !important;
  border-color:#d3e1ee !important;
}

/* Authenticated/admin shell */
html[data-theme="dark"] .content,
html[data-theme="dark"] .dashboard-page,
html[data-theme="dark"] .data-page{
  background:transparent !important;
  color:var(--text) !important;
}
html[data-theme="dark"] .dashboard-page .card,
html[data-theme="dark"] .dashboard-page .dashboard-card,
html[data-theme="dark"] .dashboard-page .command-panel,
html[data-theme="dark"] .dashboard-page .status-command-panel,
html[data-theme="dark"] .dashboard-page .warning-command-panel,
html[data-theme="dark"] .dashboard-page .map-command-panel,
html[data-theme="dark"] .dashboard-page .dashboard-infra-panel,
html[data-theme="dark"] .dashboard-page .dashboard-recent-panel,
html[data-theme="dark"] .dashboard-page .dashboard-visual-board,
html[data-theme="dark"] .dashboard-page .dashboard-side-stack > section{
  background:#10243d !important;
  border-color:#294662 !important;
  color:#dce8f5 !important;
  box-shadow:0 16px 34px rgba(0,0,0,.18) !important;
}
html[data-theme="dark"] .dashboard-page .section-heading h3,
html[data-theme="dark"] .dashboard-page .dashboard-bottom-head h3,
html[data-theme="dark"] .dashboard-page .command-panel h3{
  color:#f3f7fb !important;
}
html[data-theme="dark"] .dashboard-page .section-heading p,
html[data-theme="dark"] .dashboard-page .dashboard-bottom-head p,
html[data-theme="dark"] .dashboard-page .command-panel p,
html[data-theme="dark"] .dashboard-page .panel-kicker{
  color:#96aec5 !important;
}
html[data-theme="dark"] .dashboard-page .section-link{color:#86b4ff !important}
html[data-theme="dark"] .dashboard-page .status-legend .legend-row{
  background:#0d2036 !important;
  border-color:#294662 !important;
  color:#dce8f5 !important;
}
html[data-theme="dark"] .dashboard-page .status-legend .legend-row:hover,
html[data-theme="dark"] .dashboard-page .status-legend .legend-row.focused{
  background:#153456 !important;
  border-color:#416b98 !important;
}
html[data-theme="dark"] .dashboard-page .status-legend .legend-row.muted{opacity:.38 !important}
html[data-theme="dark"] .dashboard-page .warning-command-summary{
  background:#0c2036 !important;
  border-color:#2c4967 !important;
  color:#dce8f5 !important;
}
html[data-theme="dark"] .dashboard-page .warning-summary-note,
html[data-theme="dark"] .dashboard-page .notification-footer{
  color:#96aec5 !important;
}
html[data-theme="dark"] .dashboard-page .notification-card{
  background:#102841 !important;
  border-color:#2b4866 !important;
  color:#e6eef7 !important;
}
html[data-theme="dark"] .dashboard-page .notification-card:hover{background:#153453 !important;border-color:#446b94 !important}
html[data-theme="dark"] .dashboard-page .notification-main b{color:#eef5fb !important}
html[data-theme="dark"] .dashboard-page .notification-main small{color:#96aec5 !important}
html[data-theme="dark"] .dashboard-page .notification-footer{border-color:#294662 !important}
html[data-theme="dark"] .dashboard-page .recent-opd-card{
  background:#0d2238 !important;
  border-color:#294662 !important;
  color:#deebf7 !important;
}
html[data-theme="dark"] .dashboard-page .recent-opd-card:hover{background:#143250 !important;border-color:#456c95 !important}
html[data-theme="dark"] .dashboard-page .recent-opd-name,
html[data-theme="dark"] .dashboard-page .recent-opd-package{color:#edf5fc !important}
html[data-theme="dark"] .dashboard-page .recent-opd-location,
html[data-theme="dark"] .dashboard-page .recent-opd-progress-row span,
html[data-theme="dark"] .dashboard-page .recent-opd-date{color:#98aec3 !important}
html[data-theme="dark"] .dashboard-page .recent-opd-progress{background:#233a52 !important}
html[data-theme="dark"] .dashboard-page .dashboard-map-panel .leaflet-control-zoom a{
  background:#10243d !important;color:#e6eef7 !important;border-color:#2d4964 !important;
}
html[data-theme="dark"] .dashboard-page .leaflet-popup-content-wrapper,
html[data-theme="dark"] .dashboard-page .leaflet-popup-tip{
  background:#10243d !important;color:#e6eef7 !important;
}
html[data-theme="dark"] .dashboard-page .leaflet-popup-content a{color:#8ab6ff !important}

/* Keep the KPI colors vivid while giving their surrounding shell a consistent dark treatment. */
html[data-theme="dark"] .admin-kpi-card{filter:saturate(1.04);box-shadow:0 14px 28px rgba(0,0,0,.18) !important}

/* Tables / search / forms across authenticated pages */
html[data-theme="dark"] .data-search-card,
html[data-theme="dark"] .data-filter-card,
html[data-theme="dark"] .data-table-shell,
html[data-theme="dark"] .package-project-card,
html[data-theme="dark"] .package-search-card,
html[data-theme="dark"] .package-filter-card,
html[data-theme="dark"] .package-summary-strip,
html[data-theme="dark"] .data-kpi{
  background:#10243d !important;border-color:#294662 !important;color:#dce8f5 !important;
}
html[data-theme="dark"] .data-page-head h1,
html[data-theme="dark"] .data-search-top h2,
html[data-theme="dark"] .data-filter-head h3,
html[data-theme="dark"] .data-result-title>span,
html[data-theme="dark"] .project-card-title,
html[data-theme="dark"] .data-kpi strong{color:#f0f6fc !important}
html[data-theme="dark"] .data-page-head p,
html[data-theme="dark"] .data-search-top p,
html[data-theme="dark"] .data-filter-head p,
html[data-theme="dark"] .data-kpi span,
html[data-theme="dark"] .data-kpi small,
html[data-theme="dark"] .project-card-opd,
html[data-theme="dark"] .project-card-meta{color:#96aec4 !important}
html[data-theme="dark"] .data-search-input,
html[data-theme="dark"] .data-search-input input,
html[data-theme="dark"] .data-filter-grid .field select,
html[data-theme="dark"] .data-filter-grid .field input{
  background:#0b1b2f !important;color:#edf5fc !important;border-color:#2d4b69 !important;
}
html[data-theme="dark"] .data-table thead th{background:#132c47 !important;color:#a8bfd4 !important;border-color:#294662 !important}
html[data-theme="dark"] .data-table tbody td{background:#10243d !important;color:#dbe7f2 !important;border-color:#203b56 !important}
html[data-theme="dark"] .data-table tbody tr:hover td{background:#132c47 !important}
html[data-theme="dark"] .package-project-card .project-card-value{background:#0c2035 !important;border-color:#2b4866 !important}
html[data-theme="dark"] .project-bar{background:#223b55 !important}

/* Generic form surfaces */
html[data-theme="dark"] .form-section,
html[data-theme="dark"] .wizard-panel,
html[data-theme="dark"] .form-card,
html[data-theme="dark"] .card-section,
html[data-theme="dark"] .target-card-v525,
html[data-theme="dark"] .progress-card-v511,
html[data-theme="dark"] .profile-account-card,
html[data-theme="dark"] .profile-form-card-v522,
html[data-theme="dark"] .profile-activity-card-v522,
html[data-theme="dark"] .cms-main-v522,
html[data-theme="dark"] .cms-live-preview-v522{
  background:#10243d !important;border-color:#294662 !important;color:#dce8f5 !important;
}
html[data-theme="dark"] .wizard-step,
html[data-theme="dark"] .wizard-nav,
html[data-theme="dark"] .form-actions{background:#0d2036 !important;border-color:#294662 !important;color:#dce8f5 !important}
html[data-theme="dark"] .readonly-field,
html[data-theme="dark"] .field-readonly,
html[data-theme="dark"] input[readonly],
html[data-theme="dark"] select:disabled,
html[data-theme="dark"] textarea:disabled{
  background:#172d45 !important;color:#c6d6e6 !important;border-color:#36536f !important;
}

/* Public dashboard — dark surfaces, while maps/photos stay visually legible. */
html[data-theme="dark"] .public-dashboard-v517{
  background:#081426 !important;color:#dce8f5 !important;
}
html[data-theme="dark"] .public-dashboard-v517 .public-topbar,
html[data-theme="dark"] .public-dashboard-v517 .public-v509-topbar{
  background:#0a1a2d !important;border-color:#335170 !important;box-shadow:0 8px 24px rgba(0,0,0,.18) !important;
}
html[data-theme="dark"] .public-dashboard-v517 .portal-brand strong{color:#f1f6fb !important}
html[data-theme="dark"] .public-dashboard-v517 .portal-brand small,
html[data-theme="dark"] .public-dashboard-v517 .public-nav a{color:#9cb1c6 !important}
html[data-theme="dark"] .public-dashboard-v517 .public-nav a:hover,
html[data-theme="dark"] .public-dashboard-v517 .public-nav a.active{background:#122943 !important;color:#8cb6ff !important}
html[data-theme="dark"] .public-dashboard-v517 .public-filter-v509,
html[data-theme="dark"] .public-dashboard-v517 .public-simple-filters,
html[data-theme="dark"] .public-dashboard-v517 .public-style-card,
html[data-theme="dark"] .public-dashboard-v517 .public-panel-v509,
html[data-theme="dark"] .public-dashboard-v517 .public-trust-v509{
  background:#10243d !important;border-color:#294662 !important;color:#dce8f5 !important;box-shadow:0 14px 30px rgba(0,0,0,.18) !important;
}
html[data-theme="dark"] .public-dashboard-v517 .panel-head-v509 h2,
html[data-theme="dark"] .public-dashboard-v517 .public-progress-card-v511 strong,
html[data-theme="dark"] .public-dashboard-v517 .recent-info-v511 b,
html[data-theme="dark"] .public-dashboard-v517 .public-photo-info-v511>b{
  color:#eef5fb !important;
}
html[data-theme="dark"] .public-dashboard-v517 .panel-head-v509 p,
html[data-theme="dark"] .public-dashboard-v517 .public-progress-card-v511 span,
html[data-theme="dark"] .public-dashboard-v517 .public-progress-card-v511 small,
html[data-theme="dark"] .public-dashboard-v517 .recent-info-v511 small,
html[data-theme="dark"] .public-dashboard-v517 .recent-date-v511,
html[data-theme="dark"] .public-dashboard-v517 .public-photo-info-v511>small,
html[data-theme="dark"] .public-dashboard-v517 .public-footer-note,
html[data-theme="dark"] .public-dashboard-v517 .public-trust-v509 p{
  color:#96aec4 !important;
}
html[data-theme="dark"] .public-dashboard-v517 .public-filter-v509-form label{color:#9bb1c7 !important}
html[data-theme="dark"] .public-dashboard-v517 .public-filter-v509-form input,
html[data-theme="dark"] .public-dashboard-v517 .public-filter-v509-form select,
html[data-theme="dark"] .public-dashboard-v517 .public-year-form select,
html[data-theme="dark"] .public-dashboard-v517 .hero-v509-year select{
  background:#0c1d31 !important;color:#eef5fb !important;border-color:#31506e !important;
}
html[data-theme="dark"] .public-dashboard-v517 .status-item-v517{background:#0c2035 !important;border-color:#294662 !important;color:#dce8f5 !important}
html[data-theme="dark"] .public-dashboard-v517 .status-item-v517:hover,
html[data-theme="dark"] .public-dashboard-v517 .status-item-v517.active{background:#153454 !important;border-color:#446e9d !important}
html[data-theme="dark"] .public-dashboard-v517 .public-progress-card-v511.physical{background:linear-gradient(135deg,#102d49,#10243d) !important;border-color:#294a68 !important}
html[data-theme="dark"] .public-dashboard-v517 .public-progress-card-v511.finance{background:linear-gradient(135deg,#102f2a,#10243d) !important;border-color:#2d574d !important}
html[data-theme="dark"] .public-dashboard-v517 .recent-card-v511{
  background:#0d2238 !important;border-color:#294662 !important;color:#dce8f5 !important;
}
html[data-theme="dark"] .public-dashboard-v517 .recent-card-v511:hover{background:#143150 !important;border-color:#446c95 !important}
html[data-theme="dark"] .public-dashboard-v517 .public-photo-card-v511{background:#0d2238 !important;border-color:#294662 !important}
html[data-theme="dark"] .public-dashboard-v517 .public-photo-info-v511{background:#0d2238 !important}
html[data-theme="dark"] .public-dashboard-v517 .public-photo-empty-v511{background:#0d2238 !important;border-color:#35536e !important;color:#dce8f5 !important}
html[data-theme="dark"] .public-dashboard-v517 .public-district-visual-grid{background:#0b1b30 !important;border-color:#294662 !important}
html[data-theme="dark"] .public-dashboard-v517 .public-footer-note{border-top-color:#294662 !important}

/* Login page */
html[data-theme="dark"] .login-body{background:#081426 !important;color:#dce8f5 !important}
html[data-theme="dark"] .login-topnav{background:#0a1a2d !important;border-color:#294662 !important}
html[data-theme="dark"] .login-panel{background:#0a182b !important}
html[data-theme="dark"] .login-card{background:#10243d !important;border-color:#294662 !important}
html[data-theme="dark"] .login-card .field input{background:#0c1d31 !important;color:#eef5fb !important;border-color:#31506e !important}
html[data-theme="dark"] .login-card .field label{color:#b0c3d5 !important}
html[data-theme="dark"] .login-help{color:#8fa8bf !important}

/* Profile/CMS/backup support surfaces */
html[data-theme="dark"] .backup-action-card,
html[data-theme="dark"] .backup-panel,
html[data-theme="dark"] .backup-history-panel,
html[data-theme="dark"] .backup-recovery-card,
html[data-theme="dark"] .opd-card,
html[data-theme="dark"] .opd-panel,
html[data-theme="dark"] .opd-user-panel{
  background:#10243d !important;border-color:#294662 !important;color:#dce8f5 !important;
}

/* Footer on the dark canvas */
html[data-theme="dark"] .footer-note,
html[data-theme="dark"] .dashboard-footer-note,
html[data-theme="dark"] .public-footer-note{
  color:#8fa8bf !important;
}

/* Make theme transitions subtle without delaying first paint. */
body,.topbar,.sidebar,.card,.public-panel-v509,.public-filter-v509,.login-card,.profile-account-card,.backup-panel{transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease}

/* ================================================================
   v5.2.45 — Dark Theme Refinement for Input Package + Update Progress
   Make every nested form surface follow the dark canvas instead of
   leaving white cards/fields mixed into the dark theme.
   ================================================================ */
html[data-theme="dark"] .package-wizard,
html[data-theme="dark"] .package-wizard .wizard-steps,
html[data-theme="dark"] .package-wizard .wizard-step,
html[data-theme="dark"] .package-wizard .wizard-panel,
html[data-theme="dark"] .package-wizard .form-section-card,
html[data-theme="dark"] .package-wizard .form-section-card.compact,
html[data-theme="dark"] .package-wizard .location-card-stack,
html[data-theme="dark"] .package-wizard .target-plan-v525,
html[data-theme="dark"] .package-wizard .identity-correlation-inline,
html[data-theme="dark"] .package-wizard .identity-target-inline,
html[data-theme="dark"] .package-wizard .target-quarter-card-v525,
html[data-theme="dark"] .package-wizard .target-summary-metric-v525,
html[data-theme="dark"] .package-wizard .auto-category-card,
html[data-theme="dark"] .package-wizard .value-highlight,
html[data-theme="dark"] .package-wizard .info-banner,
html[data-theme="dark"] .package-wizard .hero-note,
html[data-theme="dark"] .package-wizard .location-map-box,
html[data-theme="dark"] .package-wizard .map-status,
html[data-theme="dark"] .package-wizard .form-validation-summary,
html[data-theme="dark"] .package-wizard .wizard-footer,
html[data-theme="dark"] .package-wizard .upload-dropzone,
html[data-theme="dark"] .package-wizard .photo-preview-large,
html[data-theme="dark"] .package-wizard .schedule-summary,
html[data-theme="dark"] .package-wizard .schedule-arrow,
html[data-theme="dark"] .package-wizard .three-card-grid > *,
html[data-theme="dark"] .package-wizard .correlation-item,
html[data-theme="dark"] .package-wizard .check {
  color:#dce8f5 !important;
  background:#10243d !important;
  border-color:#294662 !important;
  box-shadow:0 10px 24px rgba(0,0,0,.16) !important;
}
html[data-theme="dark"] .package-wizard .wizard-steps{background:#0b1b30 !important;box-shadow:none !important}
html[data-theme="dark"] .package-wizard .wizard-step{background:#10243d !important;color:#dce8f5 !important}
html[data-theme="dark"] .package-wizard .wizard-step:hover{background:#14304d !important;border-color:#43678c !important}
html[data-theme="dark"] .package-wizard .wizard-step.active{background:linear-gradient(135deg,#123766,#0e2b50) !important;border-color:#4b86e8 !important;box-shadow:0 10px 25px rgba(21,94,239,.18) !important}
html[data-theme="dark"] .package-wizard .wizard-step.done{background:linear-gradient(135deg,#0f3026,#10243d) !important;border-color:#2c6b53 !important}
html[data-theme="dark"] .package-wizard .wizard-step > span{background:#1b344e !important;color:#aac0d4 !important}
html[data-theme="dark"] .package-wizard .wizard-step.active > span{background:#2f80ed !important;color:#fff !important}
html[data-theme="dark"] .package-wizard .wizard-step.done > span{background:#19845c !important;color:#fff !important}
html[data-theme="dark"] .package-wizard .wizard-step b,
html[data-theme="dark"] .package-wizard .card-heading h3,
html[data-theme="dark"] .package-wizard .target-plan-title,
html[data-theme="dark"] .package-wizard .target-plan-heading,
html[data-theme="dark"] .package-wizard .target-annual-summary-v525,
html[data-theme="dark"] .package-wizard .inline-section-heading,
html[data-theme="dark"] .package-wizard .identity-correlation-inline h4,
html[data-theme="dark"] .package-wizard .identity-target-inline h4,
html[data-theme="dark"] .package-wizard .auto-category-card b,
html[data-theme="dark"] .package-wizard .value-highlight b,
html[data-theme="dark"] .package-wizard .target-quarter-head-v525 strong,
html[data-theme="dark"] .package-wizard .target-summary-metric-v525 strong{
  color:#f2f7ff !important;
}
html[data-theme="dark"] .package-wizard .wizard-step small,
html[data-theme="dark"] .package-wizard .card-heading p,
html[data-theme="dark"] .package-wizard .target-plan-note,
html[data-theme="dark"] .package-wizard .target-plan-title + p,
html[data-theme="dark"] .package-wizard .identity-correlation-inline p,
html[data-theme="dark"] .package-wizard .identity-target-inline p,
html[data-theme="dark"] .package-wizard .auto-category-card span,
html[data-theme="dark"] .package-wizard .auto-category-card small,
html[data-theme="dark"] .package-wizard .value-highlight span,
html[data-theme="dark"] .package-wizard .field-help,
html[data-theme="dark"] .package-wizard .field small,
html[data-theme="dark"] .package-wizard .map-help-text,
html[data-theme="dark"] .package-wizard .map-status,
html[data-theme="dark"] .package-wizard .target-quarter-foot-v525,
html[data-theme="dark"] .package-wizard .target-summary-copy-v525{
  color:#96aec4 !important;
}
html[data-theme="dark"] .package-wizard .field label,
html[data-theme="dark"] .package-wizard .target-field-label-v525,
html[data-theme="dark"] .package-wizard .target-quarter-head-v525 small,
html[data-theme="dark"] .package-wizard .target-quarter-status-v525{
  color:#b6c9da !important;
}
html[data-theme="dark"] .package-wizard .field input,
html[data-theme="dark"] .package-wizard .field select,
html[data-theme="dark"] .package-wizard .field textarea,
html[data-theme="dark"] .package-wizard .coord-grid input,
html[data-theme="dark"] .package-wizard .target-input-wrap-v525 input,
html[data-theme="dark"] .package-wizard .schedule-summary input,
html[data-theme="dark"] .package-wizard .schedule-summary select,
html[data-theme="dark"] .package-wizard .schedule-summary textarea{
  background:#0b1d31 !important;
  color:#eef6ff !important;
  border-color:#34526f !important;
  box-shadow:none !important;
}
html[data-theme="dark"] .package-wizard .field input::placeholder,
html[data-theme="dark"] .package-wizard .field textarea::placeholder{color:#6f89a3 !important}
html[data-theme="dark"] .package-wizard .field input:focus,
html[data-theme="dark"] .package-wizard .field select:focus,
html[data-theme="dark"] .package-wizard .field textarea:focus{
  border-color:#4f8cff !important;
  box-shadow:0 0 0 3px rgba(79,140,255,.16) !important;
}
html[data-theme="dark"] .package-wizard .field select option{background:#0b1d31 !important;color:#eef6ff !important}
html[data-theme="dark"] .package-wizard .target-field-v525.physical,
html[data-theme="dark"] .package-wizard .target-quarter-card-v525.physical{background:linear-gradient(180deg,#102d49,#10243d) !important;border-color:#2c5275 !important}
html[data-theme="dark"] .package-wizard .target-field-v525.financial,
html[data-theme="dark"] .package-wizard .target-quarter-card-v525.financial{background:linear-gradient(180deg,#102e2a,#10243d) !important;border-color:#2e594f !important}
html[data-theme="dark"] .package-wizard .target-input-wrap-v525 input{background:#0b1d31 !important;color:#f0f6fd !important}
html[data-theme="dark"] .package-wizard .target-input-wrap-v525 span{color:#a9c1d5 !important}
html[data-theme="dark"] .package-wizard .target-quarter-no-v525{background:#173353 !important;color:#8cb8ff !important}
html[data-theme="dark"] .package-wizard .target-quarter-card-v525.q2 .target-quarter-no-v525{background:#173c35 !important;color:#68d7b0 !important}
html[data-theme="dark"] .package-wizard .target-quarter-card-v525.q3 .target-quarter-no-v525{background:#3d3218 !important;color:#f1bf55 !important}
html[data-theme="dark"] .package-wizard .target-quarter-card-v525.q4 .target-quarter-no-v525{background:#2f2648 !important;color:#bea4ff !important}
html[data-theme="dark"] .package-wizard .target-quarter-status-v525{background:#18304a !important;color:#8ab6ff !important}
html[data-theme="dark"] .package-wizard .target-annual-summary-v525{background:#0d2035 !important;border-color:#294662 !important}
html[data-theme="dark"] .package-wizard .target-summary-metric-v525{background:#0c1f33 !important;border-color:#2b4a66 !important}
html[data-theme="dark"] .package-wizard .target-summary-metric-v525.physical{background:linear-gradient(135deg,#102d49,#0c2035) !important}
html[data-theme="dark"] .package-wizard .target-summary-metric-v525.financial{background:linear-gradient(135deg,#102e2a,#0c2035) !important}
html[data-theme="dark"] .package-wizard .upload-dropzone{background:linear-gradient(135deg,#102943,#0d2238) !important;border-color:#3a6288 !important}
html[data-theme="dark"] .package-wizard .upload-dropzone:hover{background:linear-gradient(135deg,#143555,#102a47) !important;border-color:#4d86ba !important}
html[data-theme="dark"] .package-wizard .upload-icon{background:#173253 !important;color:#8db8ff !important;box-shadow:none !important}
html[data-theme="dark"] .package-wizard .upload-dropzone b{color:#eef5fb !important}
html[data-theme="dark"] .package-wizard .upload-dropzone small{color:#8fa8bd !important}
html[data-theme="dark"] .package-wizard .photo-preview-large{background:#0b1d31 !important;border-color:#31516d !important;color:#839bb1 !important}
html[data-theme="dark"] .package-wizard .location-map-box{background:#0d2036 !important}
html[data-theme="dark"] .package-wizard .map-actions .btn-light,
html[data-theme="dark"] .package-wizard .actions .btn-light{background:#132943 !important;border-color:#35546f !important;color:#e6eff7 !important}
html[data-theme="dark"] .package-wizard .info-banner{background:#102943 !important;color:#c8daea !important}
html[data-theme="dark"] .package-wizard .info-banner.small{background:#0d2238 !important}
html[data-theme="dark"] .package-wizard .correlation-item{background:#0f233a !important}
html[data-theme="dark"] .package-wizard .correlation-item.active{background:#143554 !important;border-color:#416b93 !important}
html[data-theme="dark"] .package-wizard .correlation-item label{color:#c6d7e7 !important}
html[data-theme="dark"] .package-wizard .correlation-item p,
html[data-theme="dark"] .package-wizard .conditional-input{color:#9ab0c4 !important}
html[data-theme="dark"] .package-wizard .wizard-footer{background:#0b1c30 !important}
html[data-theme="dark"] .package-wizard .wizard-footer-left strong,
html[data-theme="dark"] .package-wizard .wizard-footer-left span{color:#cfe0ef !important}

/* Update Progres */
html[data-theme="dark"] .monitoring-page-title h1,
html[data-theme="dark"] .monitoring-page-title p,
html[data-theme="dark"] .monitoring-layout,
html[data-theme="dark"] .monitor-panel,
html[data-theme="dark"] .period-panel,
html[data-theme="dark"] .summary-panel,
html[data-theme="dark"] .package-photo-panel,
html[data-theme="dark"] .live-panel,
html[data-theme="dark"] .history-panel,
html[data-theme="dark"] .tip-panel,
html[data-theme="dark"] .form-panel,
html[data-theme="dark"] .entry-card,
html[data-theme="dark"] .entry-card-grid,
html[data-theme="dark"] .action-card,
html[data-theme="dark"] .note-card,
html[data-theme="dark"] .form-submit-bar,
html[data-theme="dark"] .period-tile,
html[data-theme="dark"] .quarter-history-card,
html[data-theme="dark"] .live-metric,
html[data-theme="dark"] .deviation-box,
html[data-theme="dark"] .qhc-metric,
html[data-theme="dark"] .qhc-dev-row,
html[data-theme="dark"] .modern-photo-item,
html[data-theme="dark"] .modern-photo-empty,
html[data-theme="dark"] .upload-dropzone,
html[data-theme="dark"] .note-card-head,
html[data-theme="dark"] .summary-highlight,
html[data-theme="dark"] .quarter-lock-alert{
  color:#dce8f5 !important;
}
html[data-theme="dark"] .monitor-panel,
html[data-theme="dark"] .period-panel,
html[data-theme="dark"] .summary-panel,
html[data-theme="dark"] .package-photo-panel,
html[data-theme="dark"] .live-panel,
html[data-theme="dark"] .history-panel,
html[data-theme="dark"] .form-panel,
html[data-theme="dark"] .tip-panel{
  background:#10243d !important;border-color:#294662 !important;box-shadow:0 10px 28px rgba(0,0,0,.16) !important;
}
html[data-theme="dark"] .live-panel{background:linear-gradient(180deg,#10243d,#0f2238) !important}
html[data-theme="dark"] .period-panel .panel-heading h3,
html[data-theme="dark"] .summary-panel .panel-heading h3,
html[data-theme="dark"] .package-photo-panel .panel-heading h3,
html[data-theme="dark"] .panel-heading h3{color:#f0f6fd !important}
html[data-theme="dark"] .panel-heading p,
html[data-theme="dark"] .panel-kicker,
html[data-theme="dark"] .period-year-field label,
html[data-theme="dark"] .summary-grid span,
html[data-theme="dark"] .summary-panel .summary-grid span,
html[data-theme="dark"] .entry-card-head p,
html[data-theme="dark"] .note-card-head p,
html[data-theme="dark"] .action-card small,
html[data-theme="dark"] .metric-copy span,
html[data-theme="dark"] .metric-copy small,
html[data-theme="dark"] .qhc-kicker,
html[data-theme="dark"] .qhc-month,
html[data-theme="dark"] .qhc-metric span,
html[data-theme="dark"] .qhc-metric small,
html[data-theme="dark"] .qhc-dev-row span,
html[data-theme="dark"] .modern-photo-item .photo-item-head span,
html[data-theme="dark"] .tip-panel p,
html[data-theme="dark"] .form-submit-bar span,
html[data-theme="dark"] .quarter-lock-alert p{
  color:#92a9bf !important;
}
html[data-theme="dark"] .period-step-controls .period-year-field select,
html[data-theme="dark"] .hero-status-editor select,
html[data-theme="dark"] .note-card textarea,
html[data-theme="dark"] .action-card textarea,
html[data-theme="dark"] .action-card input,
html[data-theme="dark"] .entry-card .field input,
html[data-theme="dark"] .entry-card .field select,
html[data-theme="dark"] .upload-dropzone input{
  background:#0b1d31 !important;color:#eef6ff !important;border-color:#34526f !important;
}
html[data-theme="dark"] .period-step-controls .period-year-field select option,
html[data-theme="dark"] .hero-status-editor select option{background:#0b1d31 !important;color:#eef6ff !important}
html[data-theme="dark"] .period-step-controls .period-year-field select:focus,
html[data-theme="dark"] .note-card textarea:focus,
html[data-theme="dark"] .action-card textarea:focus,
html[data-theme="dark"] .action-card input:focus,
html[data-theme="dark"] .entry-card .field input:focus,
html[data-theme="dark"] .entry-card .field select:focus{border-color:#4f8cff !important;box-shadow:0 0 0 3px rgba(79,140,255,.16) !important}
html[data-theme="dark"] .period-tile{background:#0d2238 !important;border-color:#294662 !important;color:#dce8f5 !important;box-shadow:none !important}
html[data-theme="dark"] .period-tile:hover{background:#13304d !important;box-shadow:0 10px 24px rgba(0,0,0,.18) !important}
html[data-theme="dark"] .period-tile:not(.active) .period-icon{background:#18324e !important;color:#8bb5ec !important}
html[data-theme="dark"] .period-empty{border-top-color:#2a465f !important;color:#8da3b7 !important}
html[data-theme="dark"] .quarter-history-card{background:#0d2238 !important;border-color:#294662 !important}
html[data-theme="dark"] .quarter-history-card.selected{background:#12304d !important;outline-color:#355f89 !important}
html[data-theme="dark"] .qhc-head strong,
html[data-theme="dark"] .qhc-metric b{color:#f0f6fd !important}
html[data-theme="dark"] .qhc-bar{background:#213a52 !important}
html[data-theme="dark"] .qhc-dev.pos{color:#67d7ae !important;background:#123629 !important;border-color:#285b4b !important}
html[data-theme="dark"] .qhc-dev.neg{color:#ff9ba7 !important;background:#3a1c25 !important;border-color:#6b3542 !important}
html[data-theme="dark"] .entry-card{background:#0f243b !important;border-color:#294762 !important;box-shadow:none !important}
html[data-theme="dark"] .entry-card.physical-card{border-top-color:#4f8cff !important}
html[data-theme="dark"] .entry-card.finance-card{border-top-color:#2db083 !important}
html[data-theme="dark"] .entry-card-head h4,
html[data-theme="dark"] .action-card label,
html[data-theme="dark"] .note-card-head h4{color:#f0f6fd !important}
html[data-theme="dark"] .entry-icon{background:#193653 !important;color:#8db8ff !important}
html[data-theme="dark"] .finance-card .entry-icon{background:#163c35 !important;color:#68d6ae !important}
html[data-theme="dark"] .locked-target-input input,
html[data-theme="dark"] .locked-target-display{background:#1a2b3b !important;color:#b7c9d9 !important;border-color:#3a5368 !important}
html[data-theme="dark"] .locked-target-icon{color:#8fa3b6 !important}
html[data-theme="dark"] .entry-card .locked-target-field:after{color:#8098ad !important}
html[data-theme="dark"] .entry-footer{border-top-color:#2b465f !important}
html[data-theme="dark"] .entry-footer span{color:#90a7bb !important}
html[data-theme="dark"] .entry-footer strong{color:#67d7ae !important}
html[data-theme="dark"] .entry-card.physical-card .entry-footer strong{color:#79adff !important}
html[data-theme="dark"] .note-card,
html[data-theme="dark"] .action-card,
html[data-theme="dark"] .summary-highlight,
html[data-theme="dark"] .modern-photo-item,
html[data-theme="dark"] .modern-photo-empty{
  background:#0d2238 !important;border-color:#294662 !important;
}
html[data-theme="dark"] .action-card.problem{background:linear-gradient(180deg,#2b1a21,#0d2238) !important;border-top-color:#db5a6c !important}
html[data-theme="dark"] .action-card.effort{background:linear-gradient(180deg,#102d49,#0d2238) !important;border-top-color:#4f8cff !important}
html[data-theme="dark"] .action-card.follow{background:linear-gradient(180deg,#102e2a,#0d2238) !important;border-top-color:#2da77a !important}
html[data-theme="dark"] .action-card.date-card{background:linear-gradient(180deg,#3a2c16,#0d2238) !important;border-top-color:#e2a42a !important}
html[data-theme="dark"] .action-icon{background:#1a324a !important;color:#b7cadb !important}
html[data-theme="dark"] .problem .action-icon{background:#4a222b !important;color:#ff9eaa !important}
html[data-theme="dark"] .effort .action-icon{background:#193957 !important;color:#86b4ff !important}
html[data-theme="dark"] .follow .action-icon{background:#163b32 !important;color:#6cdbb3 !important}
html[data-theme="dark"] .date-card .action-icon{background:#47371a !important;color:#f0bd58 !important}
html[data-theme="dark"] .summary-highlight{background:linear-gradient(135deg,#102943,#0d2238) !important}
html[data-theme="dark"] .summary-highlight span{color:#9ab0c4 !important}
html[data-theme="dark"] .summary-highlight strong{color:#f0f6fd !important}
html[data-theme="dark"] .summary-grid>div{border-bottom-color:#294662 !important}
html[data-theme="dark"] .summary-grid b{color:#deebf6 !important}
html[data-theme="dark"] .modern-photo-item img,.modern-photo-item{border-color:#294662 !important;background:#0b1d31 !important}
html[data-theme="dark"] .modern-photo-empty{color:#7f97ad !important}
html[data-theme="dark"] .tip-panel{background:linear-gradient(135deg,#302817,#10243d) !important;border-color:#5a4a2a !important}
html[data-theme="dark"] .tip-icon{background:#4a3a19 !important;color:#f1c465 !important}
html[data-theme="dark"] .tip-panel h4{color:#f3d58d !important}
html[data-theme="dark"] .quarter-lock-alert{background:linear-gradient(135deg,#3a1c24,#17273a) !important;border-color:#6a3541 !important}
html[data-theme="dark"] .quarter-lock-alert-icon{background:#4a242d !important;color:#ff9faa !important}
html[data-theme="dark"] .form-submit-bar{border-top-color:#2b465f !important}
html[data-theme="dark"] .form-submit-bar strong{color:#dce8f5 !important}
html[data-theme="dark"] .form-submit-bar .btn-light{background:#132943 !important;border-color:#35546f !important;color:#e6eff7 !important}
html[data-theme="dark"] .upload-dropzone{background:linear-gradient(135deg,#102943,#0d2238) !important;border-color:#3a6288 !important}
html[data-theme="dark"] .upload-copy h4{color:#f0f6fd !important}
html[data-theme="dark"] .upload-copy p{color:#97aec3 !important}
html[data-theme="dark"] .upload-copy small{color:#7992aa !important}
html[data-theme="dark"] .upload-button{background:#155eef !important;color:#fff !important}
html[data-theme="dark"] .upload-preview{background:#0b1d31 !important;border-color:#294662 !important;color:#a0b4c7 !important}
html[data-theme="dark"] .upload-preview img{border-color:#294662 !important}

/* Generic dark scrollbars for long forms */
html[data-theme="dark"] ::-webkit-scrollbar{width:12px;height:12px}
html[data-theme="dark"] ::-webkit-scrollbar-track{background:#081426}
html[data-theme="dark"] ::-webkit-scrollbar-thumb{background:#294662;border-radius:10px;border:3px solid #081426}
html[data-theme="dark"] ::-webkit-scrollbar-thumb:hover{background:#3b6288}


/* ================================================================
   v5.2.46 — Dark Theme Consolidation
   Purpose: make Update Progres and OPD & Pengguna visually coherent
   in dark mode. Public dashboard intentionally stays light and no
   longer exposes a theme switch.
   ================================================================ */
html[data-theme="dark"] .monitoring-hero-card{
  background:linear-gradient(135deg,#0d3560 0%,#124d8c 58%,#16629c 100%) !important;
  border:1px solid #2f5f86 !important;
  box-shadow:0 18px 42px rgba(0,0,0,.22) !important;
}
html[data-theme="dark"] .monitoring-page-title .breadcrumb,
html[data-theme="dark"] .monitoring-page-title p{color:#8fa9c1 !important}
html[data-theme="dark"] .monitoring-hero-card .hero-kicker{color:#bcd2e6 !important}
html[data-theme="dark"] .monitoring-hero-card .hero-meta{color:#d7e6f4 !important}
html[data-theme="dark"] .monitoring-hero-status{color:#fff !important}
html[data-theme="dark"] .monitoring-hero-photo{background:#0a1a2c !important;border-color:#39617f !important}
html[data-theme="dark"] .monitor-panel,
html[data-theme="dark"] .period-panel,
html[data-theme="dark"] .live-panel,
html[data-theme="dark"] .summary-panel,
html[data-theme="dark"] .package-photo-panel,
html[data-theme="dark"] .form-panel,
html[data-theme="dark"] .history-panel,
html[data-theme="dark"] .tip-panel{
  background:#10243d !important;
  border-color:#294763 !important;
  box-shadow:0 10px 28px rgba(0,0,0,.18) !important;
}
html[data-theme="dark"] .panel-heading h3,
html[data-theme="dark"] .monitor-panel h3,
html[data-theme="dark"] .monitor-panel h4{color:#f2f7ff !important}
html[data-theme="dark"] .panel-heading p,
html[data-theme="dark"] .panel-kicker,
html[data-theme="dark"] .monitor-panel p,
html[data-theme="dark"] .monitor-panel small{color:#93a9bd !important}
html[data-theme="dark"] .period-step-controls{background:transparent !important}
html[data-theme="dark"] .period-step-controls .period-year-field label{color:#afc2d3 !important}
html[data-theme="dark"] .period-step-controls .period-year-field select,
html[data-theme="dark"] .hero-status-editor select,
html[data-theme="dark"] .monitor-panel .field input,
html[data-theme="dark"] .monitor-panel .field select,
html[data-theme="dark"] .monitor-panel .field textarea,
html[data-theme="dark"] .note-card textarea,
html[data-theme="dark"] .action-card textarea,
html[data-theme="dark"] .action-card input,
html[data-theme="dark"] .upload-dropzone input{
  background:#0a1b2e !important;
  color:#eef6ff !important;
  border-color:#385772 !important;
}
html[data-theme="dark"] .period-step-controls .period-year-field select option,
html[data-theme="dark"] .hero-status-editor select option,
html[data-theme="dark"] .monitor-panel .field select option{background:#0a1b2e !important;color:#eef6ff !important}
html[data-theme="dark"] .period-step-controls .period-year-field select:focus,
html[data-theme="dark"] .monitor-panel .field input:focus,
html[data-theme="dark"] .monitor-panel .field select:focus,
html[data-theme="dark"] .monitor-panel .field textarea:focus,
html[data-theme="dark"] .note-card textarea:focus,
html[data-theme="dark"] .action-card textarea:focus,
html[data-theme="dark"] .action-card input:focus{border-color:#5b96f5 !important;box-shadow:0 0 0 3px rgba(91,150,245,.17) !important}
html[data-theme="dark"] .period-tile.blue{background:linear-gradient(180deg,#102b48,#0d233b) !important;border-color:#2b5272 !important;color:#e3eef8 !important}
html[data-theme="dark"] .period-tile.green{background:linear-gradient(180deg,#102f2a,#0d233b) !important;border-color:#2b5a50 !important;color:#e3eef8 !important}
html[data-theme="dark"] .period-tile.amber{background:linear-gradient(180deg,#342914,#0d233b) !important;border-color:#655024 !important;color:#e3eef8 !important}
html[data-theme="dark"] .period-tile.rose{background:linear-gradient(180deg,#351d25,#0d233b) !important;border-color:#6a3744 !important;color:#e3eef8 !important}
html[data-theme="dark"] .period-tile:not(.active):hover{background:#173450 !important}
html[data-theme="dark"] .period-tile .period-state{color:#9eb3c5 !important}
html[data-theme="dark"] .period-tile .period-empty{color:#91a6b8 !important;border-top-color:#31506a !important}
html[data-theme="dark"] .period-tile .period-progress{background:#1c334a !important}
html[data-theme="dark"] .period-tile .period-icon{background:#173350 !important;color:#8db8ff !important}
html[data-theme="dark"] .period-tile.green .period-icon{background:#163d34 !important;color:#72d8b5 !important}
html[data-theme="dark"] .period-tile.amber .period-icon{background:#46371b !important;color:#f2c160 !important}
html[data-theme="dark"] .period-tile.rose .period-icon{background:#45242d !important;color:#ff9eaa !important}
html[data-theme="dark"] .period-tile.active{color:#fff !important}
html[data-theme="dark"] .period-tile.active .period-state,
html[data-theme="dark"] .period-tile.active .period-empty{color:rgba(255,255,255,.84) !important}
html[data-theme="dark"] .live-metric,
html[data-theme="dark"] .deviation-box,
html[data-theme="dark"] .quarter-history-card,
html[data-theme="dark"] .entry-card,
html[data-theme="dark"] .note-card,
html[data-theme="dark"] .action-card,
html[data-theme="dark"] .summary-highlight,
html[data-theme="dark"] .modern-photo-item,
html[data-theme="dark"] .modern-photo-empty{
  background:#0d2238 !important;border-color:#2a4b67 !important;color:#dce8f5 !important;
}
html[data-theme="dark"] .live-metric.physical{border-top-color:#4f8cff !important}
html[data-theme="dark"] .live-metric.financial{border-top-color:#2db083 !important}
html[data-theme="dark"] .live-metric .metric-icon{background:#183654 !important;color:#8db8ff !important}
html[data-theme="dark"] .live-metric.financial .metric-icon{background:#173d35 !important;color:#75d9b7 !important}
html[data-theme="dark"] .metric-copy span{color:#9bb0c2 !important}
html[data-theme="dark"] .metric-copy b{color:#f2f7ff !important}
html[data-theme="dark"] .metric-copy small{color:#849bb0 !important}
html[data-theme="dark"] .metric-ring:after{background:#0d2238 !important}
html[data-theme="dark"] .metric-ring span{color:#d9e8f5 !important}
html[data-theme="dark"] .deviation-box{background:#10273b !important}
html[data-theme="dark"] .deviation-box.positive{background:#102f29 !important;border-color:#2e6554 !important}
html[data-theme="dark"] .deviation-box.negative{background:#351d25 !important;border-color:#6b3644 !important}
html[data-theme="dark"] .deviation-box span,
html[data-theme="dark"] .deviation-box small{color:#9eb3c5 !important}
html[data-theme="dark"] .deviation-box strong{color:#81b3ff !important}
html[data-theme="dark"] .deviation-box.positive strong{color:#75d9b7 !important}
html[data-theme="dark"] .deviation-box.negative strong{color:#ff98a5 !important}
html[data-theme="dark"] .quarter-history-card .qhc-kicker,
html[data-theme="dark"] .quarter-history-card .qhc-month,
html[data-theme="dark"] .quarter-history-card .qhc-metric span,
html[data-theme="dark"] .quarter-history-card .qhc-metric small,
html[data-theme="dark"] .quarter-history-card .qhc-dev-row span{color:#8ea6bb !important}
html[data-theme="dark"] .quarter-history-card .qhc-head strong,
html[data-theme="dark"] .quarter-history-card .qhc-metric b{color:#f0f6fd !important}
html[data-theme="dark"] .quarter-history-card .qhc-bar{background:#213a52 !important}
html[data-theme="dark"] .entry-card-head h4,
html[data-theme="dark"] .note-card-head h4,
html[data-theme="dark"] .action-card label{color:#f0f6fd !important}
html[data-theme="dark"] .entry-card-head p,
html[data-theme="dark"] .note-card-head p,
html[data-theme="dark"] .action-card small{color:#8ea5b9 !important}
html[data-theme="dark"] .locked-target-input input,
html[data-theme="dark"] .locked-target-display{background:#1a2b3b !important;color:#c5d4e1 !important;border-color:#3d566d !important}
html[data-theme="dark"] .entry-footer{border-top-color:#2a4860 !important;color:#8fa7ba !important}
html[data-theme="dark"] .summary-highlight{background:linear-gradient(135deg,#112a43,#0d2238) !important}
html[data-theme="dark"] .summary-highlight span{color:#91a8bb !important}
html[data-theme="dark"] .summary-highlight strong{color:#f1f7ff !important}
html[data-theme="dark"] .summary-grid>div{border-bottom-color:#2a4860 !important}
html[data-theme="dark"] .summary-grid span{color:#8fa7ba !important}
html[data-theme="dark"] .summary-grid b{color:#e1edf7 !important}
html[data-theme="dark"] .upload-dropzone{background:linear-gradient(135deg,#102b46,#0d2238) !important;border-color:#3b6587 !important}
html[data-theme="dark"] .upload-dropzone:hover{background:linear-gradient(135deg,#153958,#10304b) !important;border-color:#568bb8 !important}
html[data-theme="dark"] .upload-copy h4{color:#f0f6fd !important}
html[data-theme="dark"] .upload-copy p,
html[data-theme="dark"] .upload-copy small{color:#8fa7ba !important}
html[data-theme="dark"] .upload-preview{background:#0b1c2f !important;border-color:#2b4b66 !important;color:#a5b8c9 !important}
html[data-theme="dark"] .form-submit-bar{background:#0b1c2f !important;border-top-color:#2a4860 !important}
html[data-theme="dark"] .form-submit-bar strong{color:#e6f0f8 !important}
html[data-theme="dark"] .form-submit-bar span{color:#91a8ba !important}

/* OPD & Pengguna — dark, consistent with the rest of the admin shell */
html[data-theme="dark"] .opd-stat,
html[data-theme="dark"] .opd-form-card,
html[data-theme="dark"] .opd-list-card,
html[data-theme="dark"] .opd-row-card,
html[data-theme="dark"] .user-row-card,
html[data-theme="dark"] .opd-empty{
  background:#10243d !important;
  border-color:#294763 !important;
  color:#dce8f5 !important;
  box-shadow:0 10px 26px rgba(0,0,0,.16) !important;
}
html[data-theme="dark"] .opd-stat small,
html[data-theme="dark"] .opd-stat em,
html[data-theme="dark"] .opd-section-head p,
html[data-theme="dark"] .opd-row-brand p,
html[data-theme="dark"] .opd-row-stats span,
html[data-theme="dark"] .opd-row-stats small,
html[data-theme="dark"] .user-row-main>p,
html[data-theme="dark"] .opd-eyebrow{color:#8fa7bb !important}
html[data-theme="dark"] .opd-stat strong,
html[data-theme="dark"] .opd-section-head h2,
html[data-theme="dark"] .opd-row-brand h3,
html[data-theme="dark"] .opd-row-stats b,
html[data-theme="dark"] .user-row-name h3,
html[data-theme="dark"] .opd-empty strong{color:#f0f6fd !important}
html[data-theme="dark"] .opd-stat-blue{--soft:#17365b !important}
html[data-theme="dark"] .opd-stat-green{--soft:#163b34 !important}
html[data-theme="dark"] .opd-stat-violet{--soft:#2e2750 !important}
html[data-theme="dark"] .opd-stat-amber{--soft:#453619 !important}
html[data-theme="dark"] .opd-stat-icon{background:var(--soft) !important;border-color:#2f5879 !important;color:#82b2ff !important}
html[data-theme="dark"] .opd-stat-green .opd-stat-icon{color:#73d8b4 !important}
html[data-theme="dark"] .opd-stat-violet .opd-stat-icon{color:#c2a8ff !important}
html[data-theme="dark"] .opd-stat-amber .opd-stat-icon{color:#f0c264 !important}
html[data-theme="dark"] .opd-tabs{border-bottom-color:#2a4860 !important}
html[data-theme="dark"] .opd-tab{color:#9ab0c2 !important}
html[data-theme="dark"] .opd-tab:hover{background:#17314d !important;color:#8db8ff !important}
html[data-theme="dark"] .opd-tab.active{background:#14304c !important;color:#8fbaff !important;border-bottom-color:#4f8cff !important}
html[data-theme="dark"] .opd-section-head{border-bottom-color:#2a4860 !important}
html[data-theme="dark"] .opd-section-icon,
html[data-theme="dark"] .opd-row-mark{background:#173554 !important;color:#86b5ff !important}
html[data-theme="dark"] .opd-result-pill{background:#16314b !important;border-color:#2d516e !important;color:#9ec1ff !important}
html[data-theme="dark"] .opd-switch-row{background:#0f2238 !important;border-color:#2b4a65 !important}
html[data-theme="dark"] .opd-switch-row b{color:#eaf3fb !important}
html[data-theme="dark"] .opd-switch-row small{color:#8da5ba !important}
html[data-theme="dark"] .opd-switch-row input{background:#334a60 !important}
html[data-theme="dark"] .opd-switch-row input:checked{background:#1f7bf0 !important}
html[data-theme="dark"] .opd-form-note{background:#102b44 !important;border-color:#315b7c !important;color:#9bb0c3 !important}
html[data-theme="dark"] .opd-form-note b{color:#b8d2ff !important}
html[data-theme="dark"] .opd-search input,
html[data-theme="dark"] .opd-search-inline input,
html[data-theme="dark"] .opd-user-filter select{
  background:#0a1b2e !important;color:#eef6ff !important;border-color:#385772 !important;
}
html[data-theme="dark"] .opd-search>span,
html[data-theme="dark"] .opd-search-inline>span{color:#7f9ab3 !important}
html[data-theme="dark"] .opd-row-stats div{background:#0d2136 !important;border-color:#2a4963 !important}
html[data-theme="dark"] .user-row-meta span{background:#132a42 !important;border-color:#2a4862 !important;color:#a7bed2 !important}
html[data-theme="dark"] .btn-warning-soft{background:#4a3817 !important;border-color:#755a25 !important;color:#f3cd72 !important}
html[data-theme="dark"] .btn-warning-soft:hover{background:#5b451b !important}
html[data-theme="dark"] .btn-outline-danger{background:#321d24 !important;border-color:#713c47 !important;color:#ff9ca8 !important}
html[data-theme="dark"] .btn-outline-danger:hover{background:#46232b !important}
html[data-theme="dark"] .opd-security-note{background:#2f2616 !important;border-color:#6a5726 !important;color:#d2bd7a !important}
html[data-theme="dark"] .opd-security-note b{color:#f0d48a !important}
html[data-theme="dark"] .opd-empty{border-color:#3a5870 !important;background:#0d2238 !important}

/* Public dashboard is intentionally light-only: no user theme control. */
.public-dashboard-v509,
.public-dashboard-v509 .public-topbar,
.public-dashboard-v509 .public-panel-v509,
.public-dashboard-v509 .public-filter-v509,
.public-dashboard-v509 .public-kpi-v509-card{color-scheme:light;}

.public-dashboard-v509 .public-nav{gap:12px}

/* v5.2.47 — Update Progress card view: fully unified dark theme */
html[data-theme="dark"] .progress-index-intro{
  background:linear-gradient(135deg,#102943,#0d2036) !important;
  border-color:#294b68 !important;
  color:#eaf3fb !important;
}
html[data-theme="dark"] .progress-index-intro h3{color:#f3f8fd !important}
html[data-theme="dark"] .progress-index-intro p{color:#9ab1c5 !important}
html[data-theme="dark"] .progress-index-count{
  background:#142b45 !important;
  border-color:#31516e !important;
}
html[data-theme="dark"] .progress-index-count span{color:#f3f8fd !important}
html[data-theme="dark"] .progress-index-count small{color:#96adbf !important}
html[data-theme="dark"] .search-bar-card,
html[data-theme="dark"] .filter-card,
html[data-theme="dark"] .progress-table-card{
  background:#10243d !important;
  border-color:#294a67 !important;
  color:#dce8f5 !important;
}
html[data-theme="dark"] .big-search{
  background:#0b1c2f !important;
  border-color:#355773 !important;
}
html[data-theme="dark"] .big-search input{
  background:transparent !important;
  color:#edf5fb !important;
}
html[data-theme="dark"] .big-search input::placeholder{color:#7e98af !important}
html[data-theme="dark"] .big-search>span{color:#83a3bf !important}
html[data-theme="dark"] .view-switch{
  background:#0d1f33 !important;
  border-color:#2b4a66 !important;
}
html[data-theme="dark"] .view-switch-btn{color:#9fb4c7 !important}
html[data-theme="dark"] .view-switch-btn:hover{background:#17324e !important;color:#b9d5ff !important}
html[data-theme="dark"] .view-switch-btn.active{
  background:#1d6fe8 !important;
  color:#fff !important;
  box-shadow:0 5px 14px rgba(29,111,232,.25) !important;
}
html[data-theme="dark"] .progress-package-card{
  background:linear-gradient(180deg,#10263f,#0d2136) !important;
  border-color:#2d4e6a !important;
  box-shadow:0 12px 28px rgba(0,0,0,.22) !important;
  color:#e5eef7 !important;
}
html[data-theme="dark"] .progress-package-card:hover{
  border-color:#47739a !important;
  box-shadow:0 16px 34px rgba(0,0,0,.28) !important;
  transform:translateY(-2px);
}
html[data-theme="dark"] .progress-package-card h3{color:#f4f8fc !important}
html[data-theme="dark"] .progress-opd{color:#9db5c8 !important}
html[data-theme="dark"] .progress-package-year{color:#9db1c2 !important}
html[data-theme="dark"] .progress-package-meta span{
  background:#17304a !important;
  border:1px solid #2f506c !important;
  color:#b4c9db !important;
}
html[data-theme="dark"] .progress-metrics>div{
  background:#0c1f33 !important;
  border-color:#2a4964 !important;
}
html[data-theme="dark"] .progress-metrics span{color:#91a9bd !important}
html[data-theme="dark"] .progress-metrics b{color:#f0f6fb !important}
html[data-theme="dark"] .progress-metrics .mini-progress,
html[data-theme="dark"] .progress-metrics .mini-progress.progress-financial{
  background:#1a354d !important;
}
html[data-theme="dark"] .progress-metrics .mini-progress>span{
  background:linear-gradient(90deg,#3f8cff,#2a6fe8) !important;
}
html[data-theme="dark"] .progress-metrics .progress-financial>span{
  background:linear-gradient(90deg,#39c59a,#1d9871) !important;
}
html[data-theme="dark"] .progress-package-actions{border-top-color:#25435d !important}
html[data-theme="dark"] .progress-package-actions .btn-light{
  background:#132d47 !important;
  border-color:#355773 !important;
  color:#dce9f5 !important;
}
html[data-theme="dark"] .progress-package-actions .btn-light:hover{
  background:#183b5d !important;
}
html[data-theme="dark"] .progress-package-actions .btn-primary{
  background:linear-gradient(135deg,#216fe5,#1557c8) !important;
  border-color:#307be6 !important;
  color:#fff !important;
  box-shadow:0 6px 16px rgba(22,94,214,.24) !important;
}
html[data-theme="dark"] .progress-package-actions .btn-primary:hover{
  background:linear-gradient(135deg,#2c7cf2,#1963da) !important;
}
html[data-theme="dark"] .progress-package-card .badge{
  border-color:rgba(255,255,255,.12) !important;
  box-shadow:none !important;
}
html[data-theme="dark"] .progress-package-card .is-disabled{
  background:#283b4e !important;
  border-color:#435b70 !important;
  color:#aab9c7 !important;
}

/* v5.2.48 — Peta Pembangunan: dark theme fully harmonized */
html[data-theme="dark"] .map-page-title h1{color:#f4f8ff !important}
html[data-theme="dark"] .map-page-title p,
html[data-theme="dark"] .map-page-title .breadcrumb{color:#8fa8c0 !important}
html[data-theme="dark"] .map-page-actions .btn-light,
html[data-theme="dark"] .map-filter-panel,
html[data-theme="dark"] .map-type-pill,
html[data-theme="dark"] .map-stat-card,
html[data-theme="dark"] .map-large-card,
html[data-theme="dark"] .map-side-panel,
html[data-theme="dark"] .map-insight-card{
  background:#10243d !important;
  border-color:#294a67 !important;
  color:#e7f0f8 !important;
  box-shadow:0 12px 28px rgba(0,0,0,.20) !important;
}
html[data-theme="dark"] .map-stat-card.blue{--map-soft:#17375d !important}
html[data-theme="dark"] .map-stat-card.green{--map-soft:#173e35 !important}
html[data-theme="dark"] .map-stat-card.amber{--map-soft:#443619 !important}
html[data-theme="dark"] .map-stat-card.violet{--map-soft:#302750 !important}
html[data-theme="dark"] .map-stat-card small{color:#9db3c7 !important}
html[data-theme="dark"] .map-stat-card strong{color:#f4f8ff !important}
html[data-theme="dark"] .map-stat-card em{color:#8da4ba !important}
html[data-theme="dark"] .map-stat-icon{border:1px solid rgba(255,255,255,.08) !important}
html[data-theme="dark"] .map-filter-panel .map-search-field input,
html[data-theme="dark"] .map-filter-panel .map-filter-select select{
  background:#0a1b2e !important;
  border-color:#385772 !important;
  color:#eef6ff !important;
}
html[data-theme="dark"] .map-filter-panel .map-search-field input::placeholder{color:#7891a8 !important}
html[data-theme="dark"] .map-filter-select label{color:#9eb3c7 !important}
html[data-theme="dark"] .map-search-field span{color:#7d9bb7 !important}
html[data-theme="dark"] .map-filter-panel .btn-light{background:#132943 !important;color:#dceaf7 !important;border-color:#355773 !important}
html[data-theme="dark"] .map-type-pill{color:#b2c7d9 !important}
html[data-theme="dark"] .map-type-pill b{color:#f1f7fd !important}
html[data-theme="dark"] .map-type-pill.active{background:#173a63 !important;border-color:#3f79b7 !important;color:#8fc0ff !important}
html[data-theme="dark"] .map-pill-dot{box-shadow:0 0 0 3px rgba(10,27,46,.9) !important;border-color:rgba(255,255,255,.12) !important}
html[data-theme="dark"] .map-panel-header h3,
html[data-theme="dark"] .map-side-head h3{color:#f2f7fc !important}
html[data-theme="dark"] .map-panel-header p,
html[data-theme="dark"] .map-side-head p{color:#91a8bd !important}
html[data-theme="dark"] .map-legend-note{
  background:#132b45 !important;
  border-color:#34546f !important;
  color:#b9cce0 !important;
}
html[data-theme="dark"] .map-floating-legend{
  background:rgba(9,24,40,.94) !important;
  border-color:#35546e !important;
  box-shadow:0 12px 26px rgba(0,0,0,.30) !important;
  color:#dce8f4 !important;
}
html[data-theme="dark"] .map-floating-title{color:#dbe8f5 !important}
html[data-theme="dark"] .map-floating-items button{
  background:#10263e !important;
  color:#b6c9da !important;
  border:1px solid #2e4c66 !important;
}
html[data-theme="dark"] .map-floating-items button:hover{background:#163856 !important;color:#bfe0ff !important}
html[data-theme="dark"] .map-footer-tools{color:#8da4b8 !important}
html[data-theme="dark"] .map-footer-tools b{color:#cfe1f2 !important}
html[data-theme="dark"] .map-footer-tools .btn-light{background:#132943 !important;border-color:#355773 !important;color:#dceaf7 !important}
html[data-theme="dark"] .map-package-item{
  background:#0d2238 !important;
  border-color:#2a4b67 !important;
  color:#dce8f5 !important;
}
html[data-theme="dark"] .map-package-item:hover,
html[data-theme="dark"] .map-package-item.active{
  background:#14314e !important;
  border-color:#4474a1 !important;
  box-shadow:0 10px 20px rgba(0,0,0,.22) !important;
}
html[data-theme="dark"] .map-item-body strong{color:#eef6ff !important}
html[data-theme="dark"] .map-item-body small{color:#9bb1c5 !important}
html[data-theme="dark"] .map-item-body>span:not(.map-item-meta){color:#8fa7bb !important}
html[data-theme="dark"] .map-item-meta b{color:#cfe0ee !important}
html[data-theme="dark"] .map-package-item .map-item-icon{
  background:color-mix(in srgb,var(--item-color) 18%, #0d2238) !important;
}
html[data-theme="dark"] .map-empty-state{color:#8fa6b9 !important}
html[data-theme="dark"] .map-empty-state>div{background:#16314c !important;color:#83b7ff !important}
html[data-theme="dark"] .map-empty-state strong{color:#dce9f5 !important}
html[data-theme="dark"] .map-empty-state span{color:#8ea4b8 !important}
html[data-theme="dark"] .district-insight-list button,
html[data-theme="dark"] .status-legend-grid button{
  border-color:#2a4b67 !important;
  background:#0d2238 !important;
  color:#dce8f5 !important;
}
html[data-theme="dark"] .district-insight-list button:hover,
html[data-theme="dark"] .status-legend-grid button:hover{
  background:#14314e !important;
  border-color:#3d6b94 !important;
}
html[data-theme="dark"] .district-insight-list span{color:#9db4c8 !important}
html[data-theme="dark"] .district-insight-list b{color:#e4eef7 !important}
html[data-theme="dark"] .district-insight-list div{background:#1a354d !important}
html[data-theme="dark"] .status-legend-grid b{color:#b9cce0 !important}
html[data-theme="dark"] .status-legend-grid em{color:#eef6ff !important}
html[data-theme="dark"] .map-enhanced{border-color:#314f68 !important;background:#dbe6ef !important}
html[data-theme="dark"] .leaflet-control-zoom a{
  background:#0e2238 !important;
  color:#e7f0f8 !important;
  border-bottom-color:#34536d !important;
}
html[data-theme="dark"] .leaflet-control-zoom a:hover{background:#16334f !important;color:#bfe0ff !important}
html[data-theme="dark"] .leaflet-control-attribution{
  background:rgba(9,24,40,.82) !important;
  color:#9eb4c7 !important;
}
html[data-theme="dark"] .leaflet-control-attribution a{color:#8fc0ff !important}
html[data-theme="dark"] .map-popup h4{color:#173a5a !important}
html[data-theme="dark"] .map-popup .popup-opd{color:#6a8297 !important}
html[data-theme="dark"] .leaflet-popup-content-wrapper,
html[data-theme="dark"] .leaflet-popup-tip{
  background:#f6f9fc !important;
  color:#173a5a !important;
}
html[data-theme="dark"] .map-popup-grid div{background:#edf4f8 !important}
html[data-theme="dark"] .map-popup-grid small{color:#7c91a2 !important}
html[data-theme="dark"] .map-popup-grid b{color:#315a76 !important}
html[data-theme="dark"] .map-popup-actions a.secondary{background:#e7eef4 !important;color:#315a76 !important}
/* v5.2.49 additions: Master Wilayah + Maintenance CMS cards */
html[data-theme="dark"] .wilayah-stat,
html[data-theme="dark"] .wilayah-note,
html[data-theme="dark"] .wilayah-table th,
html[data-theme="dark"] .data-table-wrap,
html[data-theme="dark"] .cms-system-card-v549,
html[data-theme="dark"] .cms-toggle-v549,
html[data-theme="dark"] .master-wilayah-link-v549 {
  color: #eef4ff;
  background: #0e1d32;
  border-color: #29415f;
}
html[data-theme="dark"] .wilayah-table td { border-color: #223853; color:#eaf2ff; }
html[data-theme="dark"] .wilayah-table th { color:#9cb0c8; }
html[data-theme="dark"] .wilayah-note { background:#102942; color:#bfd2ea; }
html[data-theme="dark"] .wilayah-on { background:#123d31; color:#71e0b8; }
html[data-theme="dark"] .wilayah-off { background:#263247; color:#aebbd0; }

/* ===== v5.2.49 Sidebar collapse / expand ===== */
.sidebar-toggle-btn{display:grid!important;place-items:center;width:38px;height:38px;flex:0 0 38px;border:1px solid var(--line);background:#fff;color:#365677;border-radius:10px;padding:0;cursor:pointer;font-size:17px;line-height:1;transition:.18s ease;box-shadow:0 2px 8px rgba(17,55,91,.04);visibility:visible!important;opacity:1!important}
.sidebar-toggle-btn span{display:block;transition:transform .18s ease}
body.sidebar-collapsed .sidebar-toggle-btn span{transform:rotate(180deg)}
.sidebar-toggle-btn:hover{background:#f4f8fd;border-color:#bfd1e4;color:var(--primary)}
.sidebar{transition:width .22s ease,flex-basis .22s ease,transform .22s ease,box-shadow .22s ease}
.sidebar.collapsed{width:76px!important;flex-basis:76px!important;padding-left:9px;padding-right:9px}
.sidebar.collapsed .sidebar-logo{justify-content:center;padding-left:4px;padding-right:4px}
.sidebar.collapsed .sidebar-logo>div,
.sidebar.collapsed .sidebar-section,
.sidebar.collapsed .nav-text,
.sidebar.collapsed .nav-arrow,
.sidebar.collapsed .sidebar-note{display:none!important}
.sidebar.collapsed nav{gap:7px}
.sidebar.collapsed nav a{justify-content:center;gap:0;padding:11px 8px;min-height:42px}
.sidebar.collapsed .nav-icon{width:22px;height:22px;font-size:13px}
.sidebar.collapsed .nav-group.open>.nav-sub{display:none!important}
.sidebar.collapsed .nav-group>a{margin-bottom:0}
body.sidebar-collapsed .content{width:100%}

@media(min-width:901px){
  .topbar-left{display:flex;align-items:center;gap:10px}
  .sidebar-toggle-btn{order:-1;display:grid!important}
  .sidebar.collapsed nav a[title]{position:relative}
}

@media(max-width:900px){
  .sidebar-toggle-btn{display:grid!important}
  .sidebar{width:240px!important;flex-basis:240px!important;box-shadow:14px 0 34px rgba(4,27,64,.24)}
  .sidebar.collapsed{width:240px!important;flex-basis:240px!important}
}

html[data-theme="dark"] .sidebar-toggle-btn{background:#102642;border-color:#294667;color:#d8e8fb;box-shadow:none}
html[data-theme="dark"] .sidebar-toggle-btn:hover{background:#173452;border-color:#3d628c;color:#fff}



/* v5.2.49 sidebar desktop fix: explicit shell behaviour and toggle visibility */
@media(min-width:901px){
  .app-shell{display:flex!important;align-items:stretch!important}
  .sidebar{display:flex!important;visibility:visible!important;min-width:0!important}
  .sidebar.collapsed{display:flex!important;width:76px!important;flex:0 0 76px!important}
  .content{flex:1 1 auto!important;min-width:0!important}
}

/* ===== v5.2.49 status overview polish ===== */
.dashboard-page .status-command-panel .admin-status-row{
  grid-template-columns:34px minmax(0,1fr) auto 18px!important;
  gap:10px!important;
  min-height:63px!important;
  padding:10px 11px!important;
  background:linear-gradient(180deg,#fbfdff,#f7faff)!important;
  border-color:#e2eaf2!important;
}
.dashboard-page .status-command-panel .admin-status-row:hover,
.dashboard-page .status-command-panel .admin-status-row.focused{
  transform:translateX(3px)!important;
  background:#fff!important;
  border-color:color-mix(in srgb,var(--status-color) 32%,#dce7f2)!important;
  box-shadow:0 10px 20px rgba(24,67,105,.07)!important;
}
.dashboard-page .status-row-icon{
  width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
  background:color-mix(in srgb,var(--status-color) 11%,#fff)!important;
  color:var(--status-color)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--status-color) 18%,#e6edf4);
}
.dashboard-page .status-row-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.dashboard-page .status-row-body{display:flex!important;flex-direction:column!important;gap:7px!important;min-width:0!important}
.dashboard-page .status-row-title{display:block!important;font-size:11.5px!important;font-weight:850!important;color:var(--cmd-navy)!important;line-height:1.15!important}
.dashboard-page .status-row-track{display:block!important;height:7px!important;border-radius:99px!important;overflow:hidden!important;background:#e8eef4!important;box-shadow:inset 0 1px 2px rgba(20,54,86,.05)!important}
.dashboard-page .status-row-track i{display:block;height:100%;border-radius:99px;background:var(--status-color);opacity:.92;transition:width .25s ease!important}
.dashboard-page .status-row-stats{display:flex!important;flex-direction:column!important;align-items:flex-end!important;gap:2px!important;min-width:42px!important}
.dashboard-page .status-row-stats b{font-size:13px!important;color:var(--cmd-navy)!important;line-height:1!important}
.dashboard-page .status-row-stats small{font-size:9px!important;color:#8295a8!important}
.dashboard-page .status-command-panel .legend-go{font-size:14px!important;color:#7c94aa!important;transition:transform .18s ease,color .18s ease!important}
.dashboard-page .status-command-panel .admin-status-row:hover .legend-go,
.dashboard-page .status-command-panel .admin-status-row.focused .legend-go{transform:translateX(3px)!important;color:var(--status-color)!important}
.dashboard-page .status-command-panel .admin-status-row.muted{opacity:.35!important}

html[data-theme="dark"] .dashboard-page .status-command-panel .admin-status-row{
  background:linear-gradient(180deg,#0d2036,#0b1c30)!important;
  border-color:#294662!important;
}
html[data-theme="dark"] .dashboard-page .status-command-panel .admin-status-row:hover,
html[data-theme="dark"] .dashboard-page .status-command-panel .admin-status-row.focused{
  background:#153456!important;
  border-color:color-mix(in srgb,var(--status-color) 48%,#345574)!important;
  box-shadow:0 12px 24px rgba(0,0,0,.18)!important;
}
html[data-theme="dark"] .dashboard-page .status-row-icon{
  background:color-mix(in srgb,var(--status-color) 17%,#0b2036)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--status-color) 30%,#294662)!important;
}
html[data-theme="dark"] .dashboard-page .status-row-title{color:#eff6fd!important}
html[data-theme="dark"] .dashboard-page .status-row-track{background:#21374e!important}
html[data-theme="dark"] .dashboard-page .status-row-stats b{color:#eff6fd!important}
html[data-theme="dark"] .dashboard-page .status-row-stats small{color:#9bb1c7!important}

@media(max-width:700px){
  .dashboard-page .status-command-panel .admin-status-row{grid-template-columns:32px minmax(0,1fr) auto 14px!important;min-height:58px!important;padding:9px!important}
  .dashboard-page .status-row-icon{width:32px;height:32px}
  .dashboard-page .status-row-title{font-size:10.5px!important}
  .dashboard-page .status-row-track{height:6px!important}
}

/* ===== v5.2.49 status overview typography/detail refinement ===== */
.dashboard-page .status-command-panel .admin-status-row{
  min-height:70px!important;
  grid-template-columns:38px minmax(0,1fr) auto 18px!important;
  gap:12px!important;
  padding:10px 12px!important;
}
.dashboard-page .status-command-panel .status-row-icon{
  width:38px;height:38px;border-radius:11px!important;
}
.dashboard-page .status-command-panel .status-row-icon svg{width:19px;height:19px}
.dashboard-page .status-command-panel .status-row-body{gap:8px!important}
.dashboard-page .status-command-panel .status-row-title{
  font-size:14px!important;
  font-weight:900!important;
  line-height:1.15!important;
  letter-spacing:-.01em!important;
}
.dashboard-page .status-command-panel .status-row-track{
  height:7px!important;
}
.dashboard-page .status-command-panel .status-row-stats{
  min-width:58px!important;
  gap:3px!important;
}
.dashboard-page .status-command-panel .status-row-stats b{
  font-size:18px!important;
  font-weight:900!important;
  line-height:1!important;
  letter-spacing:-.02em!important;
}
.dashboard-page .status-command-panel .status-row-stats small{
  font-size:12.5px!important;
  font-weight:800!important;
  line-height:1.05!important;
  color:#6d8195!important;
}
html[data-theme="dark"] .dashboard-page .status-command-panel .status-row-stats small{color:#a9bed2!important}

@media(max-width:700px){
  .dashboard-page .status-command-panel .admin-status-row{
    min-height:62px!important;
    grid-template-columns:34px minmax(0,1fr) auto 14px!important;
    gap:9px!important;
    padding:9px 10px!important;
  }
  .dashboard-page .status-command-panel .status-row-icon{width:34px;height:34px}
  .dashboard-page .status-command-panel .status-row-icon svg{width:17px;height:17px}
  .dashboard-page .status-command-panel .status-row-title{font-size:12.5px!important}
  .dashboard-page .status-command-panel .status-row-stats{min-width:50px!important}
  .dashboard-page .status-command-panel .status-row-stats b{font-size:16px!important}
  .dashboard-page .status-command-panel .status-row-stats small{font-size:11.5px!important}
}

/* v5.2.49 status overview — emphasize package count and percentage */
.dashboard-page .status-command-panel .status-row-stats{
  min-width:76px!important;
  gap:4px!important;
}
.dashboard-page .status-command-panel .status-row-stats b{
  font-size:22px!important;
  font-weight:950!important;
  line-height:.98!important;
  letter-spacing:-.03em!important;
}
.dashboard-page .status-command-panel .status-row-stats small{
  font-size:15.5px!important;
  font-weight:900!important;
  line-height:1.05!important;
  letter-spacing:-.01em!important;
  color:#5e748a!important;
}
html[data-theme="dark"] .dashboard-page .status-command-panel .status-row-stats small{color:#b8cbe0!important}

@media(max-width:700px){
  .dashboard-page .status-command-panel .status-row-stats{min-width:68px!important}
  .dashboard-page .status-command-panel .status-row-stats b{font-size:20px!important}
  .dashboard-page .status-command-panel .status-row-stats small{font-size:14px!important}
}

/* ===== v5.2.49 dashboard visual refinement ===== */
@media(min-width:901px){
  .dashboard-page .dashboard-command-layout{
    display:grid!important;
    grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)!important;
    grid-template-areas:
      "status warning"
      "map side"!important;
    gap:16px!important;
    align-items:start!important;
    margin-bottom:16px!important;
  }
  .dashboard-page .dashboard-command-layout > .dashboard-grid-main,
  .dashboard-page .dashboard-command-layout > .dashboard-visual-board{
    display:contents!important;
  }
  .dashboard-page .dashboard-command-layout .status-command-panel{grid-area:status!important;}
  .dashboard-page .dashboard-command-layout .warning-command-panel{grid-area:warning!important;}
  .dashboard-page .dashboard-command-layout .dashboard-map-panel{grid-area:map!important;}
  .dashboard-page .dashboard-command-layout .dashboard-side-stack{grid-area:side!important;}
}

.dashboard-page .status-command-panel .admin-status-row{
  min-height:60px!important;
  grid-template-columns:36px minmax(0,1fr) auto 18px!important;
  gap:11px!important;
  padding:9px 12px!important;
}
.dashboard-page .status-command-panel .status-row-icon{
  width:36px!important;height:36px!important;border-radius:10px!important;
}
.dashboard-page .status-command-panel .status-row-icon svg{width:18px!important;height:18px!important}
.dashboard-page .status-command-panel .status-row-body{gap:7px!important}
.dashboard-page .status-command-panel .status-row-title{
  font-size:15.5px!important;
  font-weight:900!important;
  line-height:1.12!important;
}
.dashboard-page .status-command-panel .status-row-track{height:6px!important}
.dashboard-page .status-command-panel .status-row-stats{
  flex-direction:row!important;
  align-items:baseline!important;
  justify-content:flex-end!important;
  gap:7px!important;
  min-width:92px!important;
  white-space:nowrap!important;
}
.dashboard-page .status-command-panel .status-row-stats b{
  font-size:26px!important;
  font-weight:950!important;
  line-height:1!important;
  letter-spacing:-.04em!important;
  color:#102e52!important;
}
.dashboard-page .status-command-panel .status-row-stats small{
  font-size:18px!important;
  font-weight:900!important;
  line-height:1!important;
  letter-spacing:-.02em!important;
  color:#58718c!important;
}
.dashboard-page .status-command-panel .donut-hole strong{font-size:34px!important;font-weight:950!important}
.dashboard-page .status-command-panel .donut-hole span{font-size:12px!important;font-weight:850!important}
.dashboard-page .status-command-panel .donut-hole small{font-size:11px!important;font-weight:750!important}

html[data-theme="dark"] .dashboard-page .status-command-panel .status-row-title{color:#f5f9fe!important}
html[data-theme="dark"] .dashboard-page .status-command-panel .status-row-stats b{color:#ffffff!important}
html[data-theme="dark"] .dashboard-page .status-command-panel .status-row-stats small{color:#c8d8e8!important}
html[data-theme="dark"] .dashboard-page .status-command-panel .donut-hole{background:#f6faff!important;box-shadow:0 0 0 1px #d7e3ef!important}
html[data-theme="dark"] .dashboard-page .status-command-panel .donut-hole strong{color:#0d2948!important}
html[data-theme="dark"] .dashboard-page .status-command-panel .donut-hole span{color:#3f5c78!important}
html[data-theme="dark"] .dashboard-page .status-command-panel .donut-hole small{color:#5e7690!important}

@media(max-width:700px){
  .dashboard-page .status-command-panel .status-row-title{font-size:13px!important}
  .dashboard-page .status-command-panel .status-row-stats{min-width:78px!important;gap:5px!important}
  .dashboard-page .status-command-panel .status-row-stats b{font-size:21px!important}
  .dashboard-page .status-command-panel .status-row-stats small{font-size:15px!important}
  .dashboard-page .status-command-panel .donut-hole strong{font-size:31px!important}
}


/* v5.2.49 dashboard layout fix — keep map and infrastructure vertically aligned */
@media(min-width:901px){
  .dashboard-page .dashboard-admin-layout.dashboard-command-layout{
    display:grid!important;
    grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)!important;
    grid-template-areas:none!important;
    gap:16px!important;
    align-items:start!important;
    margin-bottom:16px!important;
  }
  .dashboard-page .dashboard-admin-layout .dashboard-admin-column{
    min-width:0!important;
    display:flex!important;
    flex-direction:column!important;
    gap:16px!important;
    align-self:start!important;
    grid-area:auto!important;
  }
  .dashboard-page .dashboard-admin-layout .dashboard-admin-column-left,
  .dashboard-page .dashboard-admin-layout .dashboard-admin-column-right{
    height:auto!important;
  }
  .dashboard-page .dashboard-admin-layout .dashboard-side-stack{
    display:flex!important;
    flex-direction:column!important;
    gap:16px!important;
    min-width:0!important;
    grid-area:auto!important;
  }
  .dashboard-page .dashboard-admin-layout .dashboard-map-panel,
  .dashboard-page .dashboard-admin-layout .dashboard-infra-panel,
  .dashboard-page .dashboard-admin-layout .dashboard-recent-panel{
    width:100%!important;
    align-self:stretch!important;
  }
}
@media(max-width:900px){
  .dashboard-page .dashboard-admin-layout.dashboard-command-layout{
    display:flex!important;
    flex-direction:column!important;
    gap:14px!important;
    grid-template-columns:none!important;
    grid-template-areas:none!important;
  }
  .dashboard-page .dashboard-admin-layout .dashboard-admin-column{
    display:flex!important;
    flex-direction:column!important;
    gap:14px!important;
    width:100%!important;
  }
  .dashboard-page .dashboard-admin-layout .dashboard-side-stack{
    display:flex!important;
    flex-direction:column!important;
    gap:14px!important;
    width:100%!important;
  }
}

/* ===== Export menu ===== */
/* ===== Export menu ===== */
.export-menu{position:relative;z-index:80}
.export-menu>summary{list-style:none;display:inline-flex;align-items:center;gap:7px;user-select:none}
.export-menu>summary::-webkit-details-marker{display:none}
.export-menu[open]>summary{border-color:#b9cee8;background:#f6f9fd}
.export-caret{font-size:12px;transition:transform .16s ease}
.export-menu[open] .export-caret{transform:rotate(180deg)}
.export-menu-panel{position:absolute;right:0;top:calc(100% + 7px);width:270px;padding:7px;background:var(--card,#fff);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 38px rgba(18,55,91,.16)}
.export-menu-panel a{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:9px;color:var(--text);text-decoration:none}
.export-menu-panel a:hover{background:var(--bg,#f5f8fc)}
.export-menu-panel a b{display:block;color:var(--navy);font-size:11px}
.export-menu-panel a small{display:block;margin-top:2px;color:var(--muted);font-size:9px}
.export-menu-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:13px;font-weight:800;border:1px solid var(--line);flex:0 0 30px}
.export-menu-icon.pdf{color:#d44a4a;background:#fff4f4}
.export-menu-icon.xls{color:#138a5b;background:#eefaf4}
html[data-theme="dark"] .export-menu>summary{background:#132943;color:#e5eff9;border-color:#2b4864}
html[data-theme="dark"] .export-menu>summary:hover{background:#183554;border-color:#3d628c}
html[data-theme="dark"] .export-menu-panel{background:#0e2239;border-color:#294665;box-shadow:0 18px 42px rgba(0,0,0,.28)}
html[data-theme="dark"] .export-menu-panel a:hover{background:#132b46}
html[data-theme="dark"] .export-menu-panel a b{color:#eaf2ff}
html[data-theme="dark"] .export-menu-panel a small{color:#9fb4ca}
html[data-theme="dark"] .export-menu-icon.pdf{background:#3a2026;color:#ff9898;border-color:#5a3039}
html[data-theme="dark"] .export-menu-icon.xls{background:#12372c;color:#6de0b1;border-color:#245845}
@media(max-width:620px){.export-menu{width:100%}.export-menu>summary{width:100%}.export-menu-panel{left:0;right:auto;width:min(320px,calc(100vw - 32px))}}


/* ===== Export launcher polish ===== */
.export-launcher{position:relative;z-index:120;flex:0 0 auto}
.export-trigger{min-width:128px!important;min-height:45px!important;padding:0 14px!important;justify-content:center!important}
.export-trigger-icon{font-size:15px;line-height:1;font-weight:900}
.export-trigger .export-caret{font-size:13px;transition:transform .16s ease;line-height:1}
.export-launcher.open .export-trigger .export-caret{transform:rotate(180deg)}
.export-panel{position:absolute;right:0;top:calc(100% + 9px);width:330px;background:#fff;border:1px solid #d7e3ef;border-radius:15px;padding:9px;box-shadow:0 20px 45px rgba(15,48,92,.18)}
.export-panel-head{padding:8px 10px 10px;border-bottom:1px solid #edf2f7;margin-bottom:5px}
.export-panel-head strong{display:block;font-size:12px;color:#16365a;line-height:1.2}
.export-panel-head span{display:block;margin-top:4px;font-size:9px;color:#8093a8}
.export-option{display:grid;grid-template-columns:38px minmax(0,1fr) 18px;align-items:center;gap:10px;padding:11px 10px;border-radius:11px;text-decoration:none;border:1px solid transparent;transition:.16s ease}
.export-option:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(31,78,121,.08)}
.export-option-pdf{background:#fff9f9;border-color:#f4dddd}
.export-option-xls{background:#f6fcf9;border-color:#d9eee4}
.export-option-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-size:9px;font-weight:950;letter-spacing:.03em;border:1px solid transparent}
.export-option-pdf .export-option-icon{background:#ffecec;color:#cc4450;border-color:#f7cfd2}
.export-option-xls .export-option-icon{background:#e5f8ef;color:#14845a;border-color:#c5e8d8}
.export-option-copy{min-width:0}
.export-option-copy b{display:block;font-size:11.5px;color:#183a5e;line-height:1.25}
.export-option-copy small{display:block;margin-top:3px;font-size:9px;color:#7f92a6;line-height:1.35}
.export-option-arrow{font-size:15px;color:#8ba0b5;font-weight:800;text-align:right}
.export-option:hover .export-option-arrow{color:#1769d3}
html[data-theme="dark"] .export-panel{background:#0d2238;border-color:#294662;box-shadow:0 22px 50px rgba(0,0,0,.34)}
html[data-theme="dark"] .export-panel-head{border-color:#203b55}
html[data-theme="dark"] .export-panel-head strong{color:#ecf4fd}
html[data-theme="dark"] .export-panel-head span{color:#94abc1}
html[data-theme="dark"] .export-option-pdf{background:#2b1d22;border-color:#53323a}
html[data-theme="dark"] .export-option-xls{background:#143128;border-color:#245845}
html[data-theme="dark"] .export-option-copy b{color:#edf5fc}
html[data-theme="dark"] .export-option-copy small{color:#9fb4c8}
html[data-theme="dark"] .export-option-arrow{color:#8ca6be}
@media(max-width:620px){.export-launcher{width:100%}.export-trigger{width:100%!important}.export-panel{left:0;right:auto;width:min(330px,calc(100vw - 28px))}}

/* ===== v5.2.49 Sidebar Laporan / Export dropdown ===== */
.sidebar nav .nav-toggle{width:100%;font:inherit;text-align:left;background:transparent;border:0;cursor:pointer;text-decoration:none}
.sidebar nav .nav-toggle .nav-arrow{transition:transform .18s ease}
.sidebar .nav-group.open>.nav-toggle .nav-arrow{transform:rotate(90deg)}
.sidebar .nav-export-sub{margin-left:28px}
.sidebar .nav-export-sub a{display:grid!important;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:8px}
.sidebar .nav-export-sub a.active{background:rgba(26,119,225,.34)!important}
.nav-sub-icon{width:32px;height:26px;border-radius:7px;display:grid;place-items:center;font-size:7px!important;font-weight:900!important;letter-spacing:.02em!important;padding:0!important;border:1px solid rgba(255,255,255,.10)!important;flex:0 0 32px}
.nav-sub-icon.pdf{background:rgba(239,91,103,.12)!important;color:#ffb2b8!important}
.nav-sub-icon.xls{background:rgba(46,190,129,.12)!important;color:#8ff0bd!important}
.sidebar .nav-export-sub a span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar.collapsed .nav-export-group:hover>.nav-sub,
.sidebar.collapsed .nav-export-group.open:hover>.nav-sub{display:flex!important;position:absolute;left:68px;top:0;width:190px;margin:0;padding:7px;background:#12395e;border:1px solid rgba(255,255,255,.12);border-radius:12px;box-shadow:0 18px 38px rgba(5,25,52,.32);z-index:80}
.sidebar.collapsed .nav-export-group{position:relative}
.sidebar.collapsed .nav-export-sub a{justify-content:start!important;padding:8px 7px!important;min-height:34px!important}
.sidebar.collapsed .nav-export-sub a span:last-child{display:block!important;font-size:9px!important}
.sidebar.collapsed .nav-export-sub .nav-sub-icon{display:grid!important;width:30px;height:24px}
.sidebar.collapsed .nav-export-group>.nav-toggle{justify-content:center!important;gap:0!important}
html[data-theme="dark"] .sidebar.collapsed .nav-export-group:hover>.nav-sub{background:#0e2741;border-color:#2b4966}

@media(max-width:900px){
  .sidebar .nav-export-sub{margin-left:28px}
}

/* ===== v5.2.49 Data Pekerjaan dropdown parity with Laporan / Export ===== */
.sidebar .nav-work-sub{margin-left:28px}
.sidebar.collapsed .nav-work-group:hover>.nav-sub,
.sidebar.collapsed .nav-work-group.open:hover>.nav-sub{display:flex!important;position:absolute;left:68px;top:0;width:205px;margin:0;padding:7px;background:#12395e;border:1px solid rgba(255,255,255,.12);border-radius:12px;box-shadow:0 18px 38px rgba(5,25,52,.32);z-index:80}
.sidebar.collapsed .nav-work-group{position:relative}
.sidebar.collapsed .nav-work-sub a{justify-content:flex-start!important;padding:8px 10px!important;min-height:34px!important;display:flex!important}
html[data-theme="dark"] .sidebar.collapsed .nav-work-group:hover>.nav-sub{background:#0e2741;border-color:#2b4966}


/* ===== v5.2.49 Data Pekerjaan submenu icons ===== */
.sidebar .nav-work-sub a{display:grid!important;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:8px}
.sidebar .nav-work-sub a .nav-sub-icon{width:32px;height:26px;border-radius:7px;display:grid;place-items:center;padding:0!important;border:1px solid rgba(255,255,255,.10)!important;flex:0 0 32px}
.sidebar .nav-work-sub a .nav-sub-icon svg{width:15px;height:15px;display:block}
.sidebar .nav-work-sub a .work-list{background:rgba(83,150,255,.13)!important;color:#8ec0ff!important}
.sidebar .nav-work-sub a .work-input{background:rgba(174,122,255,.13)!important;color:#d4b6ff!important}
.sidebar .nav-work-sub a .work-progress{background:rgba(54,206,145,.13)!important;color:#8ff1bf!important}
.sidebar .nav-work-sub a.active .nav-sub-icon{background:rgba(26,119,225,.24)!important;color:#fff!important;border-color:rgba(255,255,255,.16)!important}
html[data-theme="dark"] .sidebar .nav-work-sub a .work-list{background:rgba(74,137,255,.16)!important;color:#a9cdff!important}
html[data-theme="dark"] .sidebar .nav-work-sub a .work-input{background:rgba(171,112,255,.17)!important;color:#d9c2ff!important}
html[data-theme="dark"] .sidebar .nav-work-sub a .work-progress{background:rgba(42,199,139,.17)!important;color:#93f0c3!important}
.sidebar.collapsed .nav-work-sub a .nav-sub-icon{display:grid!important;width:30px;height:24px}
.sidebar.collapsed .nav-work-sub a .nav-sub-icon svg{width:14px;height:14px}

/* ===== PAGINATION V8 — reference-style compact pill, one-line toolbar ===== */
.pagination-v8-toolbar{align-items:center!important;}
.data-result-right-v8{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex:0 0 auto;min-width:0;white-space:nowrap;}
.pagination-v8{display:inline-flex;align-items:center;justify-content:center;gap:2px;min-height:38px;padding:4px 6px;border:1px solid #d9e4ee;background:#fff;border-radius:999px;box-shadow:0 5px 18px rgba(27,66,101,.07);white-space:nowrap;overflow:visible;}
.pagination-v8-pages{display:inline-flex;align-items:center;gap:1px;white-space:nowrap;}
.pagination-v8-number{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;color:#64798c;text-decoration:none;font-size:9px;font-weight:850;transition:background .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease;}
.pagination-v8-number:hover{background:#eef5ff;color:#1769d3;}
.pagination-v8-number.is-active{color:#fff;background:linear-gradient(145deg,#4b86f8,#315fe0);box-shadow:0 4px 10px rgba(49,95,224,.25);transform:translateY(-1px);}
.pagination-v8-ellipsis{display:inline-flex;align-items:center;justify-content:center;width:18px;height:28px;color:#9aabba;font-size:11px;font-weight:800;}
.pagination-v8-prevnext{display:inline-flex;align-items:center;justify-content:center;gap:3px;height:28px;padding:0 8px;border-radius:999px;color:#607589;text-decoration:none;font-size:9px;font-weight:800;transition:background .16s ease,color .16s ease;}
.pagination-v8-prevnext:hover{background:#f1f6fb;color:#1769d3;}
.pagination-v8-prevnext.is-disabled{opacity:.34;pointer-events:none;}
.pagination-v8-chevron{font-size:14px;line-height:1;position:relative;top:-.5px;}
@media(max-width:1100px){
  .pagination-v8-toolbar{align-items:flex-start!important;gap:10px!important;}
  .data-result-right-v8{width:100%;justify-content:flex-end;}
}
@media(max-width:700px){
  .data-result-right-v8{justify-content:space-between;gap:6px;}
  .pagination-v8{max-width:100%;overflow-x:auto;}
  .pagination-v8-prevnext span:not(.pagination-v8-chevron){display:none;}
  .pagination-v8-prevnext{width:28px;padding:0;}
  .pagination-v8-number{width:27px;height:27px;}
}
html[data-theme="dark"] .pagination-v8{background:#102940;border-color:#2a465e;box-shadow:none;}
html[data-theme="dark"] .pagination-v8-number{color:#b5c7d7;}
html[data-theme="dark"] .pagination-v8-number:hover{background:#173a59;color:#fff;}
html[data-theme="dark"] .pagination-v8-prevnext{color:#b2c3d1;}
html[data-theme="dark"] .pagination-v8-prevnext:hover{background:#173a59;color:#fff;}
html[data-theme="dark"] .pagination-v8-ellipsis{color:#7f96a9;}

/* ===== PAGINATION V9 - exact reference-style pill, cache-busted stylesheet ===== */
.data-result-head.pagination-v8-toolbar{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;flex-wrap:nowrap!important;}
.page-size-control{display:inline-flex!important;align-items:center!important;gap:5px!important;height:40px!important;padding:4px 8px!important;border:1px solid #d8e5ef!important;background:#fff!important;border-radius:999px!important;box-shadow:0 3px 12px rgba(27,66,101,.05)!important;white-space:nowrap!important;}
.page-size-control label{font-size:9px!important;color:#72869a!important;font-weight:800!important;}
.page-size-control select{height:28px!important;min-width:52px!important;padding:0 22px 0 8px!important;border:1px solid #d7e3ee!important;border-radius:999px!important;background:#f8fbfe!important;color:#1d456b!important;font-size:9px!important;font-weight:850!important;outline:none!important;}
.page-size-control select:focus{border-color:#7eb1e8!important;box-shadow:0 0 0 3px rgba(23,105,211,.08)!important;}
.page-size-control span{font-size:9px!important;color:#7b8ea2!important;}
.data-result-right-v8{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:10px!important;flex:0 0 auto!important;min-width:max-content!important;white-space:nowrap!important;}
.data-view-tools{display:flex!important;align-items:center!important;gap:7px!important;white-space:nowrap!important;}
.data-view-switch{display:inline-flex!important;align-items:center!important;gap:2px!important;padding:3px!important;border-radius:999px!important;background:#edf4fa!important;border:1px solid #d8e5ef!important;white-space:nowrap!important;}
.data-view-switch .view-btn{border:0!important;background:transparent!important;border-radius:999px!important;padding:8px 12px!important;font-size:11px!important;font-weight:800!important;color:#6c8297!important;white-space:nowrap!important;}
.data-view-switch .view-btn.active{background:#fff!important;color:#1769d3!important;box-shadow:0 2px 8px rgba(27,72,115,.10)!important;}
.pagination-v8{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:3px!important;height:40px!important;min-height:40px!important;padding:5px 8px!important;border:1px solid #d8e5ef!important;background:#fff!important;border-radius:999px!important;box-shadow:0 3px 12px rgba(27,66,101,.07)!important;white-space:nowrap!important;overflow:visible!important;}
.pagination-v8-pages{display:inline-flex!important;align-items:center!important;gap:0!important;white-space:nowrap!important;}
.pagination-v8-number{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:27px!important;height:27px!important;border-radius:50%!important;color:#597188!important;text-decoration:none!important;font-size:9px!important;font-weight:850!important;background:transparent!important;}
.pagination-v8-number:hover{background:#eef5ff!important;color:#1769d3!important;}
.pagination-v8-number.is-active{width:28px!important;height:28px!important;color:#fff!important;background:#3658e8!important;box-shadow:0 3px 9px rgba(54,88,232,.24)!important;transform:none!important;}
.pagination-v8-ellipsis{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:19px!important;height:27px!important;color:#99aabd!important;font-size:10px!important;}
.pagination-v8-prevnext{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;height:28px!important;padding:0 8px!important;border-radius:999px!important;color:#546b81!important;text-decoration:none!important;font-size:9px!important;font-weight:800!important;white-space:nowrap!important;background:transparent!important;}
.pagination-v8-prevnext:hover{background:#f2f6fa!important;color:#1769d3!important;}
.pagination-v8-prevnext.is-disabled{opacity:.32!important;pointer-events:none!important;}
.pagination-v8-chevron{font-size:13px!important;line-height:1!important;position:relative!important;top:-.5px!important;}
@media(max-width:1100px){
  .data-result-head.pagination-v8-toolbar{flex-wrap:wrap!important;align-items:center!important;}
  .data-result-right-v8{width:100%!important;justify-content:flex-end!important;min-width:0!important;}
}
@media(max-width:700px){
  .data-result-head.pagination-v8-toolbar{gap:8px!important;}
  .data-result-right-v8{justify-content:space-between!important;}
  .pagination-v8{max-width:100%!important;overflow-x:auto!important;}
  .pagination-v8-prevnext span:not(.pagination-v8-chevron){display:none!important;}
  .pagination-v8-prevnext{width:28px!important;padding:0!important;}
}
html[data-theme="dark"] .data-view-switch{background:#142f46!important;border-color:#29475d!important;}
html[data-theme="dark"] .data-view-switch .view-btn{color:#aec1d2!important;}
html[data-theme="dark"] .data-view-switch .view-btn.active{background:#1b3b58!important;color:#d9e9ff!important;box-shadow:none!important;}
html[data-theme="dark"] .pagination-v8{background:#102940!important;border-color:#2a465e!important;box-shadow:none!important;}
html[data-theme="dark"] .page-size-control{background:#102940!important;border-color:#2a465e!important;box-shadow:none!important;}
html[data-theme="dark"] .page-size-control label,html[data-theme="dark"] .page-size-control span{color:#9fb4c8!important;}
html[data-theme="dark"] .page-size-control select{background:#173a59!important;border-color:#31516c!important;color:#eef6ff!important;}
html[data-theme="dark"] .pagination-v8-number{color:#b5c7d7!important;}
html[data-theme="dark"] .pagination-v8-number:hover{background:#173a59!important;color:#fff!important;}
html[data-theme="dark"] .pagination-v8-prevnext{color:#b2c3d1!important;}
html[data-theme="dark"] .pagination-v8-prevnext:hover{background:#173a59!important;color:#fff!important;}

/* Bulk package selection / delete */
.bulk-delete-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 8px;padding:9px 12px;border:1px solid #cfe1f5;border-radius:12px;background:linear-gradient(90deg,#f4f9ff,#fbfdff);box-shadow:0 5px 14px rgba(31,78,121,.05)}
.bulk-delete-info{display:flex;align-items:center;gap:8px;font-size:11px;color:#53708a}.bulk-delete-info strong{color:#173f61}.bulk-delete-check{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:#e5f1ff;color:#1b73d1;font-weight:900;font-size:12px}.bulk-delete-btn{border:1px solid #f1b8bd;background:#fff5f6;color:#c33e4b;border-radius:9px;padding:7px 11px;font-size:11px;font-weight:900;cursor:pointer;transition:.18s ease}.bulk-delete-btn:hover{background:#ffe8ea;border-color:#e59ba2}.package-table-view .data-table{table-layout:fixed}.package-select-col{width:3%!important;min-width:42px!important;text-align:center!important}.package-select-cell{text-align:center;vertical-align:middle!important;width:3%!important;min-width:42px!important;padding-left:6px!important;padding-right:6px!important}.package-checkbox,.package-select-col input[type="checkbox"]{width:16px;height:16px;accent-color:#2f80ed;cursor:pointer}.package-select-col input[type="checkbox"]{margin:0}.package-table-view .data-table thead th{white-space:nowrap}.package-table-view .data-table td:nth-child(2){overflow:hidden}.package-row-main{min-width:0}.package-row-copy{min-width:0}
html[data-theme="dark"] .bulk-delete-bar{background:#112943;border-color:#264d73;box-shadow:none}.bulk-delete-info{color:#9db3c8}.bulk-delete-info strong{color:#d7e7f6}.bulk-delete-check{background:#173b61;color:#63aaf2}.bulk-delete-btn{background:#321d22;border-color:#6f3c43;color:#ff9eaa}.bulk-delete-btn:hover{background:#432329}
@media(max-width:700px){.bulk-delete-bar{position:sticky;left:0;right:0;z-index:5}.package-select-col,.package-select-cell{width:10%!important;min-width:38px!important}}
