:root{--navy:#082b55;--navy2:#061d3a;--gold:#dcae45;--gold2:#f3cf76;--green:#2f8b39;--orange:#ed9a0b;--bg:#f5f7f8;--card:#fff;--ink:#10243a;--muted:#637384;--line:#dce4e9;--soft:#edf3f7;--danger:#b72b2b;--shadow:0 10px 28px rgba(6,29,58,.08)}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:radial-gradient(circle at 85% 15%,#fff 0,#f5f7f8 38%,#eef2f5 100%);color:var(--ink)}a{text-decoration:none}.site-header{background:linear-gradient(120deg,var(--navy2),var(--navy));color:#fff;box-shadow:0 4px 16px #061d3a30}.header-inner{max-width:1500px;margin:auto;min-height:78px;padding:12px 24px;display:flex;align-items:center;gap:15px}.brand-logo,.seal{width:58px;height:58px;border:2px solid var(--gold);border-radius:12px;display:grid;place-items:center;color:var(--gold2);font-weight:900;letter-spacing:1px}.eyebrow,.kicker{font-size:11px;font-weight:800;letter-spacing:1.2px}.site-header h1{font-size:20px;margin:2px 0}.site-header p{margin:0;color:#dbe7f5;font-size:13px}.header-spacer{flex:1}.logout{color:#fff;border:1px solid #ffffff55;padding:9px 13px;border-radius:8px;font-size:13px}.wrap{max-width:1500px;margin:auto;padding:24px}.topbar{display:flex;gap:14px;align-items:center;margin-bottom:16px}.crumb{color:var(--muted);font-size:13px}.navbtn,.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:8px;padding:10px 14px;background:var(--navy);color:#fff;font-size:13px;font-weight:700;cursor:pointer}.navbtn.outline{background:#fff;color:var(--navy);border:1px solid #cbd7e1}.btn.gold{background:linear-gradient(135deg,#d39b2e,#edc55e);color:#172b42}.btn.navy{background:var(--navy)}.full{width:100%}.card{background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:15px;padding:18px;box-shadow:var(--shadow);margin-bottom:18px}.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff 20%,#eef4f9);border:1px solid #d7e1ea;border-radius:18px;padding:27px 32px;margin-bottom:18px}.hero:after{content:"";position:absolute;right:-90px;top:-100px;width:300px;height:300px;border-radius:50%;border:28px solid #dcae4520}.hero h2{font-size:31px;line-height:1.1;color:var(--navy);margin:6px 0 10px}.hero p{margin:0;color:#4f6171}.hero-accent{display:inline-block;margin-top:20px;background:linear-gradient(90deg,#d39b2e,#f2ce75);padding:9px 26px;border-radius:5px;color:#111;font-weight:800}.summary-grid{display:grid;grid-template-columns:1.35fr repeat(3,1fr);gap:14px;margin-bottom:18px}.stat{background:#fff;border:1px solid var(--line);border-radius:13px;padding:17px 18px;box-shadow:var(--shadow);border-top:4px solid var(--gold)}.stat.main{background:linear-gradient(145deg,var(--navy2),var(--navy));color:#fff;border-top-color:var(--gold2)}.stat span{display:block;font-size:11px;font-weight:800;letter-spacing:.7px}.stat strong{display:block;font-size:38px;line-height:1.05;margin:7px 0 1px}.stat small{font-size:11px;font-weight:800}.dashboard-columns{display:grid;grid-template-columns:1.05fr .95fr;gap:18px}.section-ribbon{background:linear-gradient(90deg,var(--navy),#0d4079);color:#fff;font-weight:800;letter-spacing:.5px;padding:10px 17px;border-radius:8px 8px 20px 8px;margin-bottom:15px}.section-ribbon.small{display:inline-block;margin:0}.district-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.district-item{display:flex;justify-content:space-between;align-items:center;border:1px solid #dce6ed;border-radius:10px;padding:12px 13px;background:#fbfcfd}.district-item small{display:block;color:var(--muted);font-size:9px;font-weight:800}.district-item b{font-size:13px}.district-item strong{min-width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#edf5fb;color:var(--navy);font-size:17px}.type-row{display:grid;grid-template-columns:60px 1fr 60px;align-items:center;gap:13px;padding:12px 0;border-bottom:1px solid var(--line)}.type-row:last-child{border-bottom:0}.type-icon{height:55px;border-radius:9px;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:900;font-size:18px}.type-row:nth-child(3) .type-icon{background:var(--green)}.type-row:nth-child(4) .type-icon{background:var(--orange)}.type-info>b{font-size:16px}.progress{height:7px;background:#e8edf1;border-radius:99px;margin-top:9px;overflow:hidden}.progress span{display:block;height:100%;background:var(--navy);border-radius:99px}.type-row strong{text-align:right;font-size:28px;color:var(--navy)}.type-row strong small{display:block;font-size:9px}.action-strip{background:linear-gradient(90deg,var(--navy2),var(--navy));color:#fff;border-radius:12px;padding:16px 19px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.action-strip b{display:block;font-size:16px}.action-strip span{display:block;color:#c8d7e8;font-size:12px;margin-top:4px}.download-actions{display:flex;gap:8px}.table-head{display:flex;justify-content:space-between;align-items:end;gap:15px}.section-subtitle{color:var(--muted);font-size:12px;margin:7px 0 0}.searchbox{max-width:430px;padding:11px 13px;border:1px solid #cbd8e1;border-radius:8px}.tablewrap{overflow:auto}.tablewrap table{border-collapse:separate;border-spacing:0;width:100%;font-size:12px;min-width:980px}.tablewrap th,.tablewrap td{padding:11px 9px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.tablewrap th{background:#e9f0f6;color:var(--navy);font-size:10px;letter-spacing:.5px;position:sticky;top:0}.tablewrap tbody tr:hover{background:#f8fbfd}.badge{display:inline-block;padding:5px 8px;border-radius:99px;background:#e3f1e5;color:#267532;font-weight:800;font-size:11px}.badge.empty{background:#edf0f2;color:#71808b}.actions{display:flex;gap:5px}.mini{display:inline-flex;align-items:center;justify-content:center;border-radius:6px;padding:7px 9px;background:#e9eef3;color:var(--navy);font-size:10px;font-weight:800;white-space:nowrap}.mini.view{background:#e7f1fb;color:#12548e}.mini.edit{background:#fff0c8;color:#72510d}.dangerbtn{border:0;background:#fde8e8;color:var(--danger);cursor:pointer}.page-title{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:16px}.page-title h2{margin:4px 0 4px;font-size:21px;color:var(--navy)}.page-title p{margin:0;color:var(--muted);font-size:12px}.fields{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.field label,.readonly-item label{display:block;margin-bottom:6px;color:#29445d;font-size:11px;font-weight:800;text-transform:uppercase}.field input,.field textarea,.login-card input{width:100%;padding:10px;border:1px solid #cbd8e1;border-radius:7px;background:#fff;color:var(--ink);font:inherit}.field textarea{resize:vertical}.field.doc,.readonly-item.doc{background:#fff7d9;border:1px solid #f0dda1;border-radius:9px;padding:10px}.doc-existing{margin-top:8px;background:#fff;border:1px solid #e1d6a9;border-radius:7px;padding:9px;display:flex;justify-content:space-between;gap:10px;align-items:center}.doc-existing small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.doc-actions{display:flex;gap:5px;flex-wrap:wrap}.doc-empty{display:block;color:#8b7b4e;font-size:11px;margin-top:7px}.form-actions{display:flex;gap:8px;margin-top:17px}.flash{padding:10px 12px;background:#e5f4e8;border:1px solid #c4dfca;color:#236b2e;border-radius:8px;margin-bottom:14px;font-size:12px}.danger{background:#fde9e9;border-color:#efc5c5;color:#922d2d}.view-overlay{position:fixed;inset:0;background:#071d3388;z-index:20;overflow:auto;padding:30px 18px}.view-card{max-width:1200px;margin:0 auto}.readonly-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.readonly-item{border:1px solid var(--line);border-radius:8px;padding:11px;background:#fbfcfd}.readonly-item>div{white-space:pre-wrap;font-size:12px;line-height:1.45}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,var(--navy2),var(--navy));padding:20px}.login-shell{width:min(470px,100%)}.login-card{background:#fff;border-radius:18px;padding:32px;box-shadow:0 22px 60px #0005;text-align:center}.login-card .seal{margin:0 auto 12px;background:var(--navy)}.login-card h1{margin:0;color:var(--navy);font-size:25px}.login-card h2{margin:3px 0 10px;color:#314e6d;font-size:18px}.login-card .muted{font-size:12px;margin-bottom:22px}.login-card label{text-align:left;display:block;font-size:12px;font-weight:800;margin:12px 0 6px;color:#29445d}.login-card button{margin-top:16px;border:0}.footer,footer{text-align:center;color:#72808c;font-size:10px;padding:8px 0 22px}@media(max-width:950px){.summary-grid{grid-template-columns:repeat(2,1fr)}.dashboard-columns{grid-template-columns:1fr}}@media(max-width:700px){.wrap{padding:14px}.header-inner{padding:12px 14px}.site-header h1{font-size:15px}.brand-logo{width:46px;height:46px}.logout{display:none}.summary-grid,.fields,.readonly-grid{grid-template-columns:1fr}.district-grid{grid-template-columns:1fr}.action-strip,.page-title{align-items:stretch;flex-direction:column}.download-actions{width:100%}.download-actions .btn{flex:1}.hero h2{font-size:24px}.table-head{flex-direction:column;align-items:stretch}.searchbox{max-width:none}.doc-existing{align-items:flex-start;flex-direction:column}}

/* V5: medan pilihan dan input data dalam huruf besar */
.field input:not([type="file"]), .field textarea, .field select { text-transform: uppercase; }
.field select { width:100%; padding:12px 14px; border:1px solid #d7dce3; border-radius:10px; background:#fff; font:inherit; color:#1f2937; box-sizing:border-box; }
