@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#182b2a;--muted:#687b79;--line:#e2e9e7;--surface:#fff;--page:#f4f7f6;--teal:#3a9d8f;--deep:#1d5249;--blue:#1769e0;--soft:#eaf5f2;--danger:#b42318;--shadow:0 8px 24px rgba(22,55,49,.055)}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;font-size:14px}h1,h2,h3,h4,strong,.brand{font-family:'Manrope','DM Sans',sans-serif}h1,h2,h3,h4,p{margin-top:0}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:flex}.sidebar{width:248px;background:#fff;border-right:1px solid var(--line);padding:23px 15px 18px;display:flex;flex-direction:column;flex-shrink:0}.brand{display:flex;align-items:center;gap:11px;padding:0 9px 27px}.brand-mark{display:grid;place-items:center;width:39px;height:39px;border-radius:12px;background:var(--deep);color:#fff;font-weight:800;font-size:20px}.brand strong,.brand small{display:block}.brand strong{font-size:15px;letter-spacing:-.3px}.brand small{font:11px 'DM Sans',sans-serif;color:var(--muted);margin-top:3px}.nav-caption,.eyebrow{font-size:10px;letter-spacing:1.05px;font-weight:800;color:#849390}.nav-caption{padding:0 12px 10px}.nav-list{display:grid;gap:5px}.nav-link{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:10px;color:#5b6b68;font-weight:600}.nav-link span{font-size:19px;width:21px;text-align:center}.nav-link:hover,.nav-link.active{background:#eaf5f2;color:var(--deep)}.sidebar-bottom{margin-top:auto;padding:15px 6px 0;border-top:1px solid var(--line)}.user-chip{display:flex;align-items:center;gap:9px}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#d7eee8;color:var(--deep);font-weight:800}.user-chip strong,.user-chip small{display:block}.user-chip strong{font-size:12px}.user-chip small{font-size:11px;color:var(--muted);margin-top:3px}.logout-btn{border:0;background:none;color:#6b7976;font-size:12px;padding:14px 0 0;cursor:pointer}.main-area{min-width:0;flex:1}.topbar{height:91px;background:rgba(255,255,255,.85);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:18px 31px}.topbar h1{font-size:21px;margin:5px 0 0;letter-spacing:-.6px}.topbar-right{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.status-dot{width:8px;height:8px;background:#35a47d;border-radius:50%}.page-content{max-width:1500px;margin:0 auto;padding:26px 30px 34px}.welcome-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:19px}.welcome-row h2{font-size:19px;letter-spacing:-.45px;margin-bottom:6px}.welcome-row p{font-size:13px;color:var(--muted);margin-bottom:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:39px;padding:9px 13px;border:1px solid #d9e3e1;border-radius:9px;background:#fff;color:#344844;font-weight:700;font-size:12px;cursor:pointer;white-space:nowrap}.btn:hover{background:#f7fbfa;border-color:#b9d3cd}.btn.primary{background:var(--deep);border-color:var(--deep);color:#fff}.btn.primary:hover{background:#16443d}.btn.danger{color:var(--danger);border-color:#f3c8c5}.small-btn{min-height:30px;padding:5px 9px;font-size:11px}.full-width{width:100%}.filter-bar{display:flex;align-items:flex-end;gap:11px;flex-wrap:wrap;padding:15px;background:#fff;border:1px solid var(--line);border-radius:13px;margin-bottom:18px}.field{display:grid;gap:6px;min-width:0}.field label{font-size:12px;font-weight:700;color:#415652}.field input,.field select,.field textarea{width:100%;min-height:40px;border:1px solid #dbe4e2;border-radius:8px;padding:9px 10px;background:#fff;color:var(--ink);outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:#68b8aa;box-shadow:0 0 0 3px rgba(58,157,143,.12)}.field small{color:var(--muted);font-size:11px}.field.compact{min-width:130px;flex:1}.field.compact label{font-size:11px}.field.compact input,.field.compact select{min-height:37px;padding:7px 9px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:17px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:18px;min-height:143px;position:relative;box-shadow:0 3px 10px rgba(22,55,49,.02)}.stat-icon{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;font-size:17px;font-weight:800;float:right}.stat-icon.teal{background:#e0f2ed;color:#248573}.stat-icon.blue{background:#e8f0ff;color:#1769e0}.stat-icon.mint{background:#e1f6ef;color:#2a927b}.stat-icon.navy{background:#e5eeeb;color:#1d5249}.stat-label{display:block;color:var(--muted);font-size:12px;font-weight:600;margin:2px 0 13px}.stat-card strong{display:block;font-size:28px;letter-spacing:-1px}.stat-card small{display:block;color:#82908d;font-size:11px;margin-top:5px}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:17px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);min-width:0}.card-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:19px 20px 8px}.card-heading h3,.map-card-head h3{font-size:14px;letter-spacing:-.2px;margin:0 0 5px}.card-heading p,.map-card-head p{font-size:11px;color:var(--muted);margin:0}.pill{background:#edf7f4;color:var(--deep);font-size:10px;font-weight:800;padding:5px 8px;border-radius:20px}.chart-wrap{height:245px;padding:10px 17px 18px}.table-card{overflow:hidden}.table-responsive{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;background:#f8faf9;color:#71817d;font-size:10px;letter-spacing:.3px;text-transform:uppercase;font-weight:800;padding:12px 17px;white-space:nowrap}td{padding:13px 17px;border-top:1px solid #edf1f0;color:#344844;vertical-align:middle}td strong,td small{display:block}td small{font-size:10px;color:var(--muted);margin-top:4px}.empty-state{text-align:center;color:var(--muted);padding:30px!important}.text-link{color:var(--deep);font-size:11px;font-weight:800}.pagination-wrap{padding:14px 18px}.pagination-wrap nav{display:flex;justify-content:space-between}.pagination-wrap nav div:first-child{color:var(--muted);font-size:12px}.pagination-wrap nav div:last-child span,.pagination-wrap nav div:last-child a{display:inline-block;margin-left:4px;padding:6px 9px;border:1px solid var(--line);border-radius:6px;font-size:11px}.app-footer{padding:0 30px 18px;color:#85928f;font-size:10px}.flash{margin:17px 30px 0;padding:11px 14px;border-radius:9px;font-size:12px}.flash.success{background:#e8f6ef;color:#176747;border:1px solid #c9e9d9}.flash.error{background:#fff0ee;color:#9c2f26;border:1px solid #f3d1cd}.map-page-content{padding-top:22px}.map-welcome{margin-bottom:13px}.map-instruction{display:flex;align-items:center;gap:9px;padding:11px 13px;border:1px solid #d4e9e3;border-radius:9px;background:#f0f8f5;color:#48635d;font-size:12px;margin-bottom:15px}.instruction-dot{width:8px;height:8px;border-radius:50%;background:var(--teal);flex-shrink:0}.map-workspace{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(315px,.8fr);gap:15px;align-items:start}.map-card{overflow:hidden}.map-card-head{display:flex;justify-content:space-between;align-items:center;padding:17px 18px 13px}.map-label-toggle{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px;white-space:nowrap}#pwsMap{height:min(68vh,690px);min-height:490px;background:#d8e8eb;z-index:1}.map-legend{display:flex;flex-wrap:wrap;gap:9px 14px;padding:13px 17px 6px}.map-legend span{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:#536561}.map-legend i{display:inline-block;width:11px;height:11px;border:1px solid rgba(20,50,45,.22);border-radius:3px}.map-legend i.point-legend{width:9px;height:9px;border-radius:50%;background:#334155;border:2px solid #fff;box-shadow:0 0 0 1px #334155}.map-source-note{padding:0 17px 15px;color:#83908d;font-size:10px;line-height:1.55;margin:8px 0 0}.map-side-panel{overflow:hidden;position:sticky;top:15px}.selection-empty{padding:42px 24px;text-align:center}.empty-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#edf6f3;color:var(--deep);font-size:27px;margin:0 auto 14px}.selection-empty h3{font-size:15px;margin-bottom:7px}.selection-empty p{font-size:12px;color:var(--muted);line-height:1.6;margin:0}.side-section{padding:18px}.side-heading h3,.selected-point-header h3{font-size:18px;margin:5px 0}.side-heading p,.selected-point-header p{font-size:12px;color:var(--muted);line-height:1.5;margin-bottom:0}.selected-point-header{margin:-18px -18px 16px;padding:20px 18px 17px;background:#f1f8f6;border-bottom:1px solid #e0eeea}.selected-summary{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:18px}.selected-summary>div{padding:11px;border:1px solid var(--line);border-radius:10px;min-width:0}.selected-summary span,.selected-summary small{display:block;color:var(--muted);font-size:10px}.selected-summary strong{display:block;font-size:19px;margin:6px 0}.selected-summary small{font-size:10px;line-height:1.4}.status-badge{font-size:11px!important;color:#9a6400;background:#fff2d8;border-radius:6px;padding:5px 6px;width:max-content;max-width:100%}.stack-form{display:grid;gap:13px}.stack-form h4,.history-block h4{font-size:13px;margin:0}.form-actions{display:grid;gap:7px}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}.report-entry-form{border-top:1px solid var(--line);padding-top:17px}.history-block{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.history-list{display:grid;gap:8px;margin-top:10px}.history-item{padding:10px;border:1px solid var(--line);border-radius:8px;display:flex;justify-content:space-between;gap:10px;font-size:11px}.history-item strong,.history-item small{display:block}.history-item small{color:var(--muted);margin-top:3px}.history-item .history-count{font-size:15px;color:var(--deep);font-weight:800}.muted{color:var(--muted);font-size:11px}.inline-feedback{margin:0 16px 16px;padding:10px 11px;border-radius:8px;background:#eef7f3;color:#2e6c59;font-size:11px;line-height:1.5}.inline-feedback.error{background:#fff0ee;color:#a43b30}.hidden{display:none!important}.pws-rt-label{background:#fff;border:1px solid #dce6e3;border-radius:5px;padding:2px 5px;color:#243c37;font-weight:800;font-size:10px;box-shadow:0 2px 5px #183a3320}.pws-work-label{background:rgba(255,255,255,.91);border:1px solid #dce6e3;border-radius:7px;padding:4px 7px;color:#183a33;font-size:11px;font-weight:800;box-shadow:0 2px 8px #183a3312}.leaflet-tooltip:before{display:none}.programs-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.3fr);gap:15px}.form-card-large{padding-bottom:20px}.form-card-large .stack-form{padding:10px 20px}.program-list{padding:4px 18px 15px}.program-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #edf1f0}.program-row:last-child{border-bottom:0}.program-symbol{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#e7f4f0;color:var(--deep);font-weight:800}.program-info{flex:1;min-width:0}.program-info strong,.program-info small{display:block}.program-info strong{font-size:12px}.program-info small{font-size:10px;color:var(--muted);margin-top:4px}.badge{border-radius:20px;padding:5px 8px;font-size:10px;font-weight:800}.badge-active{background:#e8f6ef;color:#21704f}.badge-inactive{background:#f1f3f3;color:#687b79}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 10% 10%,#e0f3ed,transparent 36%),var(--page);padding:20px}.login-card{width:min(100%,430px);padding:30px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 55px rgba(25,69,60,.09)}.login-brand{padding:0;margin-bottom:34px}.login-intro h1{font-size:26px;letter-spacing:-.8px;margin:7px 0}.login-intro p{font-size:13px;color:var(--muted);line-height:1.6;margin-bottom:22px}.remember{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted)}.login-foot{font-size:10px;color:#899590;text-align:center;margin:18px 0 0}.login-card .flash{margin:0 0 15px}.login-card .stack-form{gap:15px}
@media(max-width:1100px){.sidebar{width:215px}.page-content{padding-left:20px;padding-right:20px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-workspace{grid-template-columns:minmax(0,1.3fr) minmax(290px,.8fr)}.map-card-head{align-items:flex-start}.programs-grid{grid-template-columns:1fr}.topbar{padding:18px 22px}}@media(max-width:800px){.app-shell{display:block}.sidebar{width:100%;padding:13px 15px;border-right:0;border-bottom:1px solid var(--line)}.brand{padding:0 5px 12px}.nav-caption,.sidebar-bottom{display:none}.nav-list{display:flex;overflow-x:auto}.nav-link{padding:9px 10px;font-size:11px;white-space:nowrap}.nav-link span{font-size:15px;width:auto}.topbar{height:auto;padding:16px 18px}.topbar h1{font-size:18px}.topbar-right{display:none}.page-content{padding:18px 13px 25px}.welcome-row{align-items:flex-start}.welcome-row h2{font-size:16px}.welcome-row p{font-size:11px;line-height:1.5}.welcome-row .btn{font-size:10px;padding:8px}.filter-bar{gap:9px}.field.compact{min-width:calc(50% - 8px)}.filter-bar>.btn{flex:1}.chart-grid{grid-template-columns:1fr}.chart-wrap{height:220px}.map-workspace{grid-template-columns:1fr}.map-side-panel{position:static}.map-card-head{gap:10px}.map-card-head h3{font-size:13px}#pwsMap{height:58vh;min-height:380px}.map-legend{gap:8px}.app-footer{padding:0 14px 15px}.program-row{flex-wrap:wrap}.program-info{min-width:130px}.topbar .eyebrow{font-size:9px}}@media(max-width:430px){.stat-grid{gap:9px}.stat-card{padding:13px;min-height:126px}.stat-card strong{font-size:24px}.stat-label{font-size:10px}.stat-icon{width:27px;height:27px}.welcome-row{gap:8px}.map-welcome{align-items:center}.map-welcome .btn{white-space:normal;max-width:120px}.two-fields{grid-template-columns:1fr}.selected-summary{gap:6px}.selected-summary>div{padding:8px}.selected-summary strong{font-size:16px}}

/* Dashboard publik satu halaman: peta, filter, ringkasan, dan grafik. */
.public-map-section{overflow:hidden;margin-bottom:17px}
.public-map-heading{align-items:center;padding-bottom:14px}
.public-map-canvas{height:520px;width:100%;background:#c3def3;z-index:0}
.public-map-canvas .leaflet-control-attribution{font-size:9px;line-height:1.3}
.public-map-canvas .leaflet-popup-content{font-family:'DM Sans',system-ui,sans-serif;font-size:12px}
.public-map-message{margin:12px 16px 0;padding:10px 12px;border-radius:9px;background:#eaf5f2;color:var(--deep);font-size:12px;line-height:1.5}
.public-map-message.error{background:#fff0ee;color:var(--danger)}
.public-map-section .map-legend{padding-top:14px}
.public-map-section .map-source-note{padding-bottom:16px}
.public-chart-grid{margin-bottom:17px}
.public-data-note{padding:14px 17px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--muted);font-size:11px;line-height:1.6}
.public-data-note strong{display:block;color:var(--ink);font-size:12px;margin-bottom:4px}
.public-data-note p{margin:0}
@media(max-width:800px){.public-map-canvas{height:430px}.public-map-heading{align-items:flex-start}.public-chart-grid{grid-template-columns:1fr}}
@media(max-width:480px){.public-map-canvas{height:360px}.public-map-heading{gap:8px}.public-map-heading .map-label-toggle{font-size:10px}.public-map-section .map-legend{gap:8px 11px}}


/* Label kelurahan publik memakai koordinat interior poligon, bukan center otomatis MultiPolygon. */
.pws-public-area-label-icon { background: transparent; border: 0; }
.pws-public-area-label-text {
    display: block;
    width: max-content;
    white-space: nowrap;
    transform: translate(-50%, -50%);
    color: #142d28;
    font-family: 'Manrope', 'DM Sans', system-ui, sans-serif;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .1px;
    -webkit-text-stroke: 2px rgba(255,255,255,.98);
    paint-order: stroke fill;
    text-shadow: 0 1px 3px rgba(255,255,255,.9);
    pointer-events: none;
}

/* Dashboard publik: peta memenuhi lebar halaman; grafik ditempatkan di bawah peta. */
.dashboard-visual-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 17px;
    align-items: start;
    margin-bottom: 17px;
}
.dashboard-visual-grid > .public-map-section {
    width: 100%;
    min-width: 0;
    margin-bottom: 0;
}
.dashboard-visual-grid > .public-chart-grid {
    display: none;
}
.public-trend-card {
    width: 100%;
    min-width: 0;
    margin-bottom: 17px;
}
.public-trend-heading {
    align-items: center;
    padding-bottom: 12px;
}
.chart-mode-switch {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 4px;
    background: #f0f6f4;
    border: 1px solid #e0ece8;
    border-radius: 10px;
    flex-shrink: 0;
}
.chart-mode-button {
    border: 0;
    border-radius: 7px;
    padding: 8px 13px;
    color: #5d716b;
    background: transparent;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
    transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}
.chart-mode-button:hover { color: var(--deep); }
.chart-mode-button.active {
    background: #fff;
    color: var(--deep);
    box-shadow: 0 1px 4px rgba(25,69,60,.10);
}
.chart-mode-button:focus-visible {
    outline: 2px solid #3a9d8f;
    outline-offset: 2px;
}
.public-trend-wrap {
    height: 300px;
    padding: 12px 20px 20px;
}
.public-map-canvas {
    width: 100%;
    height: 480px;
    background: #c3def3;
    z-index: 0;
}
.public-map-message {
    margin: 8px 16px 0;
    padding: 8px 11px;
    font-size: 11px;
    line-height: 1.5;
    border: 1px solid #dcefe9;
}
.public-chart-grid .chart-wrap { height: 230px; }
.dashboard-visual-grid .card { min-width: 0; }
.map-label-controls {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px 14px;
}
.map-label-controls .map-label-toggle { cursor: pointer; }
/* Nama kelurahan menyerupai label peta QGIS: teks tebal dengan outline putih, tanpa kotak. */
.pws-work-label {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: #142d28 !important;
    font-family: 'Manrope', 'DM Sans', sans-serif;
    font-size: 14px;
    font-weight: 800;
    padding: 0 !important;
    text-shadow: -1.5px -1.5px 0 #fff, 1.5px -1.5px 0 #fff,
                 -1.5px 1.5px 0 #fff, 1.5px 1.5px 0 #fff,
                 0 0 4px #fff;
    white-space: nowrap;
}
.leaflet-tooltip.pws-work-label:before { display: none !important; }
@media (max-width: 800px) {
    .dashboard-visual-grid { gap: 13px; }
    .public-map-canvas { height: 390px; }
    .public-trend-heading { align-items: flex-start; flex-wrap: wrap; }
    .public-trend-wrap { height: 250px; padding: 8px 12px 15px; }
    .public-map-heading { align-items: flex-start; }
    .map-label-controls { justify-content: flex-start; gap: 8px 12px; }
}
@media (max-width: 480px) {
    .public-map-canvas { height: 330px; }
    .public-map-section .map-legend,
    .public-map-section .map-source-note { padding-left: 13px; padding-right: 13px; }
    .pws-work-label { font-size: 11px; }
    .map-label-controls .map-label-toggle { font-size: 10px; }
}

@media (max-width: 480px) {
    .chart-mode-switch { width: 100%; }
    .chart-mode-button { flex: 1; padding: 8px 10px; }
    .public-trend-wrap { height: 230px; }
}

/* PWS Juata: input pada dua tingkat wilayah dan ekspor peta/grafik */
.dashboard-filter-bar { align-items: end; }
.dashboard-filter-bar .filter-actions { display: flex; gap: 8px; align-items: center; }
.public-map-heading-actions,
.pj-map-heading-actions,
.trend-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; min-width: 0; }
.map-label-controls,
.map-label-toggles { display: flex; align-items: center; justify-content: flex-end; gap: 12px; flex-wrap: wrap; }
.export-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 6px; }
.export-actions .btn { min-height: 30px; }
.public-trend-heading { align-items: flex-start; }
.public-trend-wrap { height: 340px; }
.chart-empty-state { margin: 0 20px 12px; padding: 11px 13px; border: 1px solid #e2ece8; border-radius: 9px; background: #f6faf8; color: #5b716b; font-size: 12px; line-height: 1.5; }
.chart-scope-note { margin: 0; padding: 0 20px 17px; color: #81908b; font-size: 10px; line-height: 1.55; }
.public-map-heading-actions { max-width: 52%; }
.input-scope-card { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 17px 19px; margin-bottom: 15px; }
.input-scope-copy { max-width: 760px; }
.input-scope-copy strong { display: block; margin: 5px 0; font-family: 'Manrope','DM Sans',sans-serif; font-size: 14px; }
.input-scope-copy p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.input-scope-select { width: min(100%, 245px); flex-shrink: 0; }
.area-report-panel { padding: 4px 0 18px; margin-bottom: 16px; overflow: hidden; }
.area-report-panel > .card-heading { padding-bottom: 15px; }
.area-report-form { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; padding: 0 20px; }
.area-note-field { grid-column: span 2; }
.area-form-actions { display: flex; align-items: end; gap: 8px; flex-wrap: wrap; }
.area-history-block { margin: 18px 20px 0; }
.area-report-panel .inline-feedback { margin: 14px 20px 0; }
.map-workspace.kelurahan-input-mode { grid-template-columns: minmax(0,1fr); }
.map-workspace.kelurahan-input-mode .map-card { width: 100%; }
.map-card-head { gap: 16px; }
.map-card-head > div:first-child { min-width: 0; }
.map-card-head p { line-height: 1.5; }
#pwsMap { width: 100%; }

@media (max-width: 1100px) {
    .public-map-heading-actions { max-width: 60%; }
    .area-report-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .area-note-field { grid-column: auto; }
}
@media (max-width: 800px) {
    .dashboard-filter-bar .field.compact { min-width: calc(50% - 8px); }
    .dashboard-filter-bar .filter-actions { width: 100%; }
    .dashboard-filter-bar .filter-actions .btn { flex: 1; }
    .public-map-heading, .public-trend-heading, .map-card-head { flex-direction: column; align-items: stretch; }
    .public-map-heading-actions, .pj-map-heading-actions, .trend-actions { max-width: none; width: 100%; align-items: flex-start; }
    .map-label-controls, .map-label-toggles { justify-content: flex-start; }
    .export-actions { justify-content: flex-start; }
    .public-trend-wrap { height: 290px; padding-left: 10px; padding-right: 10px; }
    .input-scope-card { align-items: stretch; flex-direction: column; gap: 13px; }
    .input-scope-select { width: 100%; }
    .area-report-form { grid-template-columns: 1fr 1fr; padding: 0 14px; }
    .area-form-actions { grid-column: 1 / -1; }
    .area-history-block { margin-left: 14px; margin-right: 14px; }
}
@media (max-width: 480px) {
    .dashboard-filter-bar .field.compact { min-width: 100%; }
    .area-report-form { grid-template-columns: 1fr; }
    .area-note-field, .area-form-actions { grid-column: auto; }
    .area-form-actions .btn { width: 100%; }
    .export-actions .btn { font-size: 10px; padding: 5px 7px; }
    .chart-scope-note { padding-left: 14px; padding-right: 14px; }
}

@media print {
    @page { size: landscape; margin: 10mm; }
    body.pws-printing { background: #fff !important; }
    body.pws-printing * { visibility: hidden !important; }
    body.pws-printing .pws-print-target,
    body.pws-printing .pws-print-target * { visibility: visible !important; }
    body.pws-printing .pws-print-target {
        position: absolute !important; left: 0 !important; top: 0 !important;
        width: 100% !important; max-width: none !important; margin: 0 !important;
        padding: 10px !important; border: 0 !important; border-radius: 0 !important;
        box-shadow: none !important; overflow: visible !important; background: #fff !important;
    }
    body.pws-printing .pws-print-target .export-actions,
    body.pws-printing .pws-print-target .map-label-controls,
    body.pws-printing .pws-print-target .map-label-toggles,
    body.pws-printing .pws-print-target .chart-mode-switch,
    body.pws-printing .pws-print-target .leaflet-control-zoom { display: none !important; }
    body.pws-printing .pws-print-target #pwsPublicMap,
    body.pws-printing .pws-print-target #pwsMap { height: 155mm !important; min-height: 155mm !important; width: 100% !important; }
    body.pws-printing .pws-print-target .public-trend-wrap { height: 135mm !important; }
    body.pws-printing .pws-print-target .map-source-note,
    body.pws-printing .pws-print-target .chart-scope-note { font-size: 9pt !important; }
}

/* Pengelolaan program dan akun PJ; tidak mengubah styling atau ukuran peta. */
.inline-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.inline-actions form{margin:0}
.management-edit-card{max-width:760px;padding-bottom:20px}
.management-edit-card .stack-form{padding:10px 20px}
.management-form-actions{margin-top:4px}
.management-table{min-width:760px}
.reports-table{min-width:1120px}
.users-table{min-width:720px}
.report-filter-bar{align-items:end}
.report-filter-bar .field.compact{min-width:130px}
.report-filter-bar .filter-actions{display:flex;align-items:center;gap:8px}
@media(max-width:1100px){.report-filter-bar .field.compact{min-width:calc(33.333% - 10px)}}
@media(max-width:800px){.report-filter-bar .field.compact{min-width:calc(50% - 8px)}.report-filter-bar .filter-actions{width:100%}.report-filter-bar .filter-actions .btn{flex:1}}
@media(max-width:480px){.report-filter-bar .field.compact{min-width:100%}.management-edit-card .stack-form{padding-left:14px;padding-right:14px}.management-form-actions .btn{flex:1}}


/* Master Program: kartu form dan daftar program ditata vertikal pada semua ukuran layar. */
.programs-grid{grid-template-columns:minmax(0,1fr)!important}
