
:root{
  --bg:#edf2f8;--panel:#fff;--text:#172033;--muted:#5c687a;--line:#c6d3e2;
  --brand:#1f4f8f;--brand2:#2d6fb8;--soft:#e6eff9;--warn:#fbf2c8;--warnline:#d7b84c;
  --panel-shadow:0 10px 26px rgba(23,42,70,.09);--panel-shadow-strong:0 14px 30px rgba(23,42,70,.12);
}
*{box-sizing:border-box}
html{font-size:15pt}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text)}
body{min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Sarabun",sans-serif;font-size:1rem;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.container{width:calc(100% - 48px);max-width:none;margin:0 auto}
.topbar{background:linear-gradient(135deg,#173e70,#245f9e);color:#fff;padding:24px 0;box-shadow:0 8px 24px rgba(22,52,90,.16)}
.brand{display:flex;align-items:center;gap:18px;padding-left:2px}
.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.03em;opacity:.82}
h1,h2,h3,p{margin-top:0}
h1{font-size:1.5rem;margin:4px 0}
.brand p{margin:0;opacity:.82}
.main{padding:28px 0 44px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--panel-shadow)}
.filter-panel{padding:18px;border-color:#bccadc;box-shadow:var(--panel-shadow-strong)}
.filters{display:grid;grid-template-columns:180px 230px minmax(280px,1fr) 150px;gap:14px;align-items:end}
label{display:grid;gap:7px;font-size:.82rem;font-weight:700;color:#455166}
select,button{height:44px;border-radius:10px;border:1px solid #cbd6e4;font:inherit;font-family:inherit}
select{width:100%;background:#fff;padding:0 12px;color:#1f2b3d}
button{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:700;cursor:pointer;padding:0 20px}
button:hover{background:#173f73}
.snapshot-banner{margin-top:20px;padding:20px 22px;border:1px solid #b7cade;border-radius:16px;background:var(--soft);display:flex;justify-content:space-between;gap:18px;align-items:center;box-shadow:var(--panel-shadow)}
.snapshot-banner strong{font-size:1rem}
.snapshot-sub{margin-top:5px;color:#52657c;font-size:.82rem}
.run-chip,.period-pill{white-space:nowrap;background:#fff;border:1px solid #c9d7e7;border-radius:999px;padding:8px 12px;font-size:.72rem;font-weight:700;color:#39536f}
.warning{margin-top:16px;padding:18px 20px;background:var(--warn);border:2px solid var(--warnline);border-radius:16px;color:#4f4111;box-shadow:var(--panel-shadow)}
.warning p{margin:6px 0 0;line-height:1.65}
.section-head{margin:28px 0 14px;display:flex;justify-content:space-between;align-items:end;gap:14px}
.section-head h2{font-size:1.33rem;margin:4px 0 0}
.kpis{display:grid;gap:18px}
.kpis-three{grid-template-columns:repeat(3,minmax(0,1fr))}
.kpis-five{grid-template-columns:repeat(5,minmax(0,1fr))}
.kpi-establishment{border-color:#aebfd3;background:#fcfdff}
.kpi{background:#fff;border:1px solid #bccadb;border-radius:18px;padding:22px;min-height:185px;box-shadow:var(--panel-shadow);position:relative}
.kpi-label{font-weight:700;color:#31445f}
.kpi-value{font-size:2.1rem;font-weight:800;margin-top:18px;color:#183f72;letter-spacing:-.02em}
.kpi-unit{position:absolute;right:22px;top:70px;background:#e7eef7;color:#264f81;border:1px solid #c4d3e5;border-radius:999px;padding:7px 11px;font-weight:700}
.kpi p{margin:15px 0 0;color:var(--muted);font-size:.78rem;line-height:1.55}
.table-panel{margin-top:20px;overflow:hidden;border-color:#bccadb;box-shadow:var(--panel-shadow-strong)}
.table-title{padding:20px 22px;border-bottom:1px solid var(--line);background:#f6f9fc}
.table-title h3{margin-bottom:5px}
.table-title p{margin:0;color:var(--muted);font-size:.78rem}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;min-width:850px}
th,td{padding:13px 16px;border-bottom:1px solid #e9eef4;text-align:left;font-size:.82rem}
th{background:#eef3f9;color:#31445f;position:sticky;top:0;border-bottom:2px solid #cad6e4}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
td a{color:#1f5d9f;text-decoration:none;font-weight:700}
td a:hover{text-decoration:underline}
tbody tr:hover{background:#f3f7fc}
.definitions{margin-top:20px;display:grid;gap:10px;padding:18px 20px;border-radius:16px;border:1px solid #c4d0dd;background:#f9fbfd;color:#4f5c6d;font-size:.78rem;line-height:1.6;box-shadow:var(--panel-shadow)}
.empty{padding:32px;margin-top:18px;text-align:center}
.footer{border-top:1px solid #d0dbe8;color:#66778c;padding:20px 0 34px;font-size:.68rem}
@media(max-width:900px){
  .filters{grid-template-columns:1fr 1fr}
  .kpis{grid-template-columns:1fr}
  .section-head,.snapshot-banner{align-items:flex-start;flex-direction:column}
}
@media(max-width:600px){
  .container{width:calc(100% - 24px);max-width:none}
  .filters{grid-template-columns:1fr}
  .brand{align-items:flex-start}
    h1{font-size:1.2rem}
  .snapshot-banner strong{font-size:.92rem}
}

.table-wrap{background:#fff}
tbody tr:nth-child(even){background:#fbfdff}
.run-chip,.period-pill{border-color:#bccadb;background:#fff;color:#365372;font-weight:700}
.filters select,.filters button{box-shadow:0 1px 0 rgba(255,255,255,.7) inset}
.snapshot-banner strong,.section-head h2,.table-title h3{color:#20344f}

@media(max-width:1600px){
  .kpis-five{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:1150px){
  .kpis-five,.kpis-three{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .kpis-five,.kpis-three{grid-template-columns:1fr}
}


/* Thailand map integration — Application 0.15 */
.map-panel{margin-top:22px;padding:0;overflow:hidden;border-color:#b8c7d8;box-shadow:var(--panel-shadow-strong)}
.map-panel-head{padding:22px 24px 18px;display:flex;justify-content:space-between;align-items:flex-end;gap:18px;background:#f6f9fc;border-bottom:1px solid var(--line)}
.map-panel-head h3{margin:4px 0 4px;color:#20344f;font-size:1.12rem}
.map-panel-head p{margin:0;color:#52657a;font-size:.77rem;line-height:1.55;max-width:1100px}
.map-period{white-space:nowrap;border:1px solid #b9cadc;background:#fff;color:#365372;border-radius:999px;padding:8px 12px;font-size:.72rem;font-weight:700}
.map-metric-switch{display:flex;flex-wrap:wrap;gap:10px;padding:16px 24px 4px;justify-content:center}
.map-metric-btn{height:auto;min-height:44px;padding:9px 16px;border:1px solid #b7c7d8;background:#eef3f8;color:#29445f;border-radius:999px;box-shadow:none}
.map-metric-btn span{font-size:.76rem;opacity:.75}
.map-metric-btn:hover{background:#e3edf7}
.map-metric-btn.is-active{background:#1f5f9f;border-color:#174b7d;color:#fff;box-shadow:0 5px 14px rgba(31,95,159,.2)}
.map-metric-btn:disabled{opacity:.45;cursor:not-allowed}
.map-stage-wrap{padding:16px 24px 6px;display:flex;justify-content:center}
.map-stage{width:min(100%,1200px);aspect-ratio:4/3;min-height:420px;border:2px solid #afc0d2;border-radius:18px;overflow:hidden;background:linear-gradient(180deg,#edf4fa,#dfeaf4);box-shadow:0 12px 30px rgba(28,58,90,.12)}
.map-stage .leaflet-container{font-family:inherit}
.map-stage .leaflet-pane svg path{transition:fill .24s ease,fill-opacity .24s ease,opacity .2s ease,stroke-width .2s ease}
.map-stage .leaflet-control-zoom a{font-family:inherit;color:#244a72}
.map-stage .leaflet-control-attribution{font-size:11px;background:rgba(255,255,255,.86)}
.map-stage-error{display:grid;place-items:center;padding:24px;color:#7b2e2e;font-weight:700}
.ewd-map-reset button{width:34px;height:34px;padding:0;border:0;border-radius:0;background:#fff;color:#244a72;font-size:21px;line-height:34px;cursor:pointer}
.ewd-map-reset button:hover{background:#f0f5fa}
.ewfund-map-tooltip{border:1px solid rgba(116,139,164,.7)!important;border-radius:12px!important;background:rgba(255,255,255,.94)!important;box-shadow:0 12px 26px rgba(20,44,69,.18)!important;color:#20344f!important;padding:9px 12px!important;backdrop-filter:blur(8px)}
.ewfund-map-tooltip:before{display:none!important}
.map-tip{display:grid;gap:3px;min-width:220px;font-size:13px;line-height:1.4}
.map-tip strong{display:block;text-align:center;font-size:15px;font-weight:800!important;margin-bottom:3px;color:#173f73}
.map-tip b{font-weight:800;color:#173f73}
.ewfund-map-popup-shell .leaflet-popup-content-wrapper{border-radius:14px;box-shadow:0 15px 34px rgba(20,44,69,.22)}
.ewfund-map-popup-shell .leaflet-popup-content{margin:14px 16px;min-width:235px}
.map-area-link{display:block;margin-top:10px;padding:8px 10px;border-radius:9px;background:#1f5f9f;color:#fff!important;text-decoration:none;text-align:center;font-weight:700}
.map-area-link:hover{background:#174b7d;text-decoration:none}
.map-legend-wrap{padding:10px 24px 22px;display:grid;gap:9px}
.map-legend{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:9px 14px;padding:12px 14px;border:1px solid #c2cfdd;border-radius:13px;background:#f8fbfd;color:#3d5168;font-size:.72rem}
.map-legend>strong{color:#20344f;margin-right:4px}
.map-legend-item{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.map-legend-item i{display:inline-block;width:24px;height:13px;border:1px solid rgba(53,82,111,.35);border-radius:4px}
.map-help{text-align:center;color:#647489;font-size:.69rem}
.map-data{display:none!important}
.map-unavailable{margin:18px 24px 24px;padding:18px;border:1px solid #d7c188;border-radius:12px;background:#fff8df;color:#66521d;text-align:center;font-weight:700}

@media(max-width:900px){
  .map-panel-head{align-items:flex-start;flex-direction:column}
  .map-stage-wrap{padding:14px 14px 4px}
  .map-legend-wrap{padding:10px 14px 18px}
  .map-metric-switch{padding-left:14px;padding-right:14px}
  .map-stage{min-height:360px}
}
@media(max-width:600px){
  .map-panel-head{padding:18px 16px 14px}
  .map-stage{min-height:300px;border-radius:14px}
  .map-metric-btn{width:100%}
}


/* Dashboard layout R1 — Application 0.16
   Sketch contract: Header > Filter > Date information >
   Map left / KPI rail right > Detail > Footer. */

.date-info-panel{
  margin-top:20px;
  padding:0;
  overflow:hidden;
  border-color:#b7c7d8;
  box-shadow:var(--panel-shadow);
}
.date-info-primary{
  min-height:86px;
  padding:18px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  background:#e7f0fa;
  border-bottom:1px solid #bfd0e1;
}
.date-info-primary .eyebrow{margin-bottom:3px}
.date-info-primary strong{display:block;color:#20344f;font-size:.94rem}
.date-info-primary .snapshot-sub{margin-top:3px}
.date-info-warning{
  padding:12px 22px;
  display:flex;
  align-items:flex-start;
  gap:12px;
  background:#fbf3cf;
  color:#504314;
  border-top:1px solid #dfc562;
  line-height:1.5;
  font-size:.74rem;
}
.date-info-warning>strong{
  flex:0 0 auto;
  color:#493b0f;
}
.date-info-warning b{font-weight:800}

.dashboard-overview-head{
  margin:26px 0 12px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
}
.dashboard-overview-head h2{
  margin:3px 0 0;
  color:#20344f;
}
.dashboard-overview-grid{
  display:grid;
  grid-template-columns:minmax(0,2fr) minmax(340px,1fr);
  gap:20px;
  align-items:stretch;
}
.dashboard-map-column{
  min-width:0;
  display:flex;
}
.dashboard-map-column>.map-panel{
  width:100%;
  margin-top:0;
  display:flex;
  flex-direction:column;
}
.dashboard-map-column .map-stage-wrap{
  flex:1 1 auto;
}
.dashboard-map-column .map-stage{
  width:100%;
  max-width:none;
  min-height:0;
  aspect-ratio:4/3;
}

.dashboard-kpi-rail{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.kpi-rail-heading{
  flex:0 0 auto;
  padding:16px 18px;
  border:1px solid #b8c7d8;
  border-radius:16px;
  background:#f6f9fc;
  box-shadow:var(--panel-shadow);
}
.kpi-rail-heading strong{
  display:block;
  margin-top:3px;
  color:#20344f;
  font-size:.94rem;
}
.kpi-rail-heading span{
  display:block;
  margin-top:3px;
  color:#607187;
  font-size:.7rem;
}
.kpis-rail{
  flex:1 1 auto;
  display:grid;
  grid-template-columns:1fr!important;
  grid-auto-rows:minmax(0,1fr);
  gap:12px;
}
.kpis-rail .kpi{
  min-height:0;
  height:100%;
  padding:17px 18px;
  border-color:#b8c7d8;
  border-radius:16px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.kpis-rail .kpi-label{
  padding-right:54px;
  line-height:1.35;
}
.kpis-rail .kpi-value{
  margin-top:8px;
  line-height:1.05;
}
.kpis-rail .kpi-unit{
  right:16px;
  top:16px;
}
.kpis-rail .kpi p{
  margin-top:9px;
  line-height:1.4;
}
.dashboard-overview-grid + .table-panel{
  margin-top:22px;
}

/* Existing global KPI breakpoints must not force columns inside the rail. */
@media(max-width:1600px){
  .kpis-rail.kpis-five{grid-template-columns:1fr!important}
}
@media(max-width:1150px){
  .kpis-rail.kpis-five,
  .kpis-rail.kpis-three{grid-template-columns:1fr!important}
}

/* Keep the sketch layout on normal desktop, stack only when space becomes tight. */
@media(max-width:1279px){
  .dashboard-overview-grid{
    grid-template-columns:1fr;
  }
  .dashboard-map-column .map-stage{
    width:min(100%,1200px);
    margin-inline:auto;
  }
  .dashboard-kpi-rail{
    display:block;
  }
  .kpi-rail-heading{
    margin-bottom:12px;
  }
  .kpis-rail.kpis-five{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    grid-auto-rows:auto;
  }
  .kpis-rail.kpis-three{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    grid-auto-rows:auto;
  }
  .kpis-rail .kpi{
    min-height:170px;
  }
}

@media(max-width:850px){
  .date-info-primary{
    align-items:flex-start;
  }
  .date-info-warning{
    display:block;
  }
  .date-info-warning>strong{
    display:block;
    margin-bottom:3px;
  }
  .dashboard-overview-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .kpis-rail.kpis-five,
  .kpis-rail.kpis-three{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:600px){
  .date-info-primary{
    flex-direction:column;
  }
  .kpis-rail.kpis-five,
  .kpis-rail.kpis-three{
    grid-template-columns:1fr!important;
  }
  .kpis-rail .kpi{
    min-height:150px;
  }
}


/* Admin entry link — Application 0.17 */
.footer-row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.footer-admin-link{color:#61758c;text-decoration:none;font-weight:600;font-size:.66rem}
.footer-admin-link:hover{color:#1f5f9f;text-decoration:underline}
@media(max-width:600px){
  .footer-row{align-items:flex-start;flex-direction:column}
}


/* Sortable detail table — Application 0.19 */
.table-sort-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  width:100%;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  font-weight:700;
  line-height:1.35;
  text-align:left;
  cursor:pointer;
}
.table-sort-btn-num{
  justify-content:flex-end;
  text-align:right;
}
.table-sort-btn:hover{color:#1f5f9f}
.table-sort-btn:focus-visible{
  outline:2px solid #2d6fb8;
  outline-offset:4px;
  border-radius:4px;
}
.table-sort-btn.is-active{color:#174f87}
.sort-indicator{
  display:inline-block;
  min-width:1em;
  color:#71849a;
  font-size:.78em;
  font-weight:800;
}
.table-sort-btn.is-active .sort-indicator{color:#174f87}


/* Sort-control visual corrective — Application 0.20
   Prevent global button:hover dark fill from obscuring sortable header text. */
.table-panel .table-sort-btn{
  height:auto;
  min-height:0;
  background:transparent;
  border-color:transparent;
  box-shadow:none;
  -webkit-tap-highlight-color:rgba(45,111,184,.12);
  user-select:none;
}
.table-panel .table-sort-btn:hover{
  background:#e8f1fa;
  color:#1f5f9f;
  border-color:transparent;
  box-shadow:none;
}
.table-panel .table-sort-btn:active{
  background:#dce9f6;
  color:#174f87;
  border-color:transparent;
  box-shadow:none;
}
.table-panel .table-sort-btn.is-active{
  background:#e3edf8;
  color:#174f87;
  border-color:transparent;
  box-shadow:none;
}
.table-panel .table-sort-btn:focus-visible{
  background:#eef5fb;
  color:#174f87;
  outline:2px solid #6d9cc8;
  outline-offset:2px;
  box-shadow:none;
}
.table-panel td a{
  border-radius:5px;
  padding:2px 4px;
  margin:-2px -4px;
}
.table-panel td a:hover,
.table-panel td a:focus-visible{
  background:#edf4fb;
  color:#174f87;
  text-decoration:underline;
}


/* Filter reset control — Application 0.21 */
.filter-actions{
  display:flex;
  align-items:flex-end;
  gap:10px;
}
.filter-actions>button,
.filter-reset-btn{
  min-width:112px;
  height:44px;
  border-radius:10px;
}
.filter-reset-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 18px;
  border:1px solid #b8c7d8;
  background:#f3f6fa;
  color:#365372;
  font-weight:700;
  text-decoration:none;
  box-shadow:0 1px 0 rgba(255,255,255,.75) inset;
}
.filter-reset-btn:hover{
  background:#e7eef6;
  color:#174f87;
  text-decoration:none;
}
.filter-reset-btn:focus-visible{
  outline:2px solid #6d9cc8;
  outline-offset:2px;
}
@media(max-width:700px){
  .filter-actions{
    width:100%;
  }
  .filter-actions>button,
  .filter-reset-btn{
    flex:1 1 0;
  }
}


/* Filter action sizing corrective — Application 0.22 */
.filters{
  grid-template-columns:150px 200px minmax(260px,1fr) minmax(272px,max-content);
}
.filter-actions{
  min-width:272px;
  max-width:100%;
  justify-content:flex-end;
  flex-wrap:nowrap;
}
.filter-actions>button[type="submit"]{
  min-width:150px;
  white-space:nowrap;
  padding-inline:18px;
}
.filter-reset-btn{
  min-width:112px;
  white-space:nowrap;
  flex:0 0 auto;
}

/* Switch layout before action buttons can overflow the filter panel. */
@media(max-width:1100px){
  .filters{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }
  .filters>label:nth-of-type(3){
    grid-column:1 / -1;
  }
  .filter-actions{
    grid-column:1 / -1;
    min-width:0;
    width:100%;
    justify-content:flex-end;
  }
  .filter-actions>button[type="submit"]{
    min-width:160px;
  }
}

@media(max-width:600px){
  .filter-actions{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    width:100%;
  }
  .filter-actions>button[type="submit"],
  .filter-reset-btn{
    width:100%;
    min-width:0;
  }
}


/* KPI numeric alignment — Application 0.28
   Keep a fixed right-side reserve for the unit pill so all numbers
   terminate on the same visual vertical line. */
.kpi-value{
  box-sizing:border-box;
  width:100%;
  padding-right:100px;
  text-align:right;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}

/* On narrow single-column cards, retain the same visual relationship
   while allowing enough room for long values. */
@media(max-width:600px){
  .kpi-value{
    padding-right:86px;
  }
}


/* Money placeholder cards — Application 0.29 */
.money-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:20px;
}
.money-card{
  min-width:0;
  min-height:150px;
  padding:22px;
  border:1px solid #bccadb;
  border-radius:18px;
  background:#f7f9fc;
  box-shadow:var(--panel-shadow);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.money-card-label{
  color:#20344f;
  font-size:1.08rem;
  font-weight:800;
  line-height:1.35;
  text-align:center;
}
.money-card-label span{
  font-weight:700;
}
.money-card-value{
  min-height:2.25rem;
  margin-top:10px;
  color:#183f72;
  font-size:1.8rem;
  font-weight:800;
  line-height:1;
  text-align:right;
  font-variant-numeric:tabular-nums;
}
@media(max-width:900px){
  .money-cards{
    grid-template-columns:1fr;
  }
  .money-card{
    min-height:118px;
  }
}


/* Modern UI 2026 — Application 0.30 */
:root{
  --bg:#edf3fb;
  --panel:#ffffff;
  --text:#15243a;
  --muted:#5d6c82;
  --line:#d9e3ef;
  --brand:#1f5c9f;
  --brand-strong:#123f74;
  --brand-teal:#1e9aac;
  --soft:#eef5fd;
  --warning:#f7efc8;
  --warning-line:#ddc25b;
  --panel-shadow:0 14px 34px rgba(19,44,74,.08);
  --panel-shadow-strong:0 22px 56px rgba(19,44,74,.12);
}
html,body{background:linear-gradient(180deg,#f4f8fd 0%,#edf3fb 38%,#eaf0f8 100%)}
body{color:var(--text);position:relative;overflow-x:hidden}
body::before{
  content:"";
  position:fixed;
  inset:-12% -10% auto auto;
  width:46vw;
  height:46vw;
  border-radius:50%;
  background:radial-gradient(circle,rgba(49,123,212,.09) 0%,rgba(49,123,212,0) 68%);
  pointer-events:none;
  z-index:0;
}
.container{width:min(calc(100% - 48px),1760px)}
.topbar{
  position:relative;
  overflow:hidden;
  padding:34px 0 78px;
  background:
    radial-gradient(circle at 88% 18%,rgba(255,255,255,.11) 0,rgba(255,255,255,.11) 18%,transparent 18.4%),
    radial-gradient(circle at 90% 18%,rgba(255,255,255,.05) 0,rgba(255,255,255,.05) 27%,transparent 27.4%),
    linear-gradient(135deg,#143f75 0%,#15618f 56%,#1d8aa6 100%);
  box-shadow:0 16px 40px rgba(17,41,72,.18);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.topbar::before,
.topbar::after{
  content:"";
  position:absolute;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  filter:blur(2px);
}
.topbar::before{width:320px;height:320px;right:-80px;top:-96px}
.topbar::after{width:160px;height:160px;right:180px;top:48px;background:rgba(255,255,255,.05)}
.brand{position:relative;z-index:1;align-items:flex-start;justify-content:flex-start;padding-left:2px}
.brand-copy{max-width:980px}
.topbar .eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:16px;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.16);
  color:rgba(255,255,255,.9);
  font-size:.72rem;
  letter-spacing:.04em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
.topbar h1{
  margin:0;
  color:#fff;
  font-size:clamp(1.72rem,1.18rem + 1.45vw,2.46rem);
  line-height:1.08;
  letter-spacing:-.025em;
  text-wrap:balance;
}
.brand-tagline{
  margin:14px 0 0;
  max-width:760px;
  color:rgba(255,255,255,.82);
  font-size:.84rem;
  line-height:1.6;
}
.main{position:relative;z-index:1;padding:0 0 56px;margin-top:-42px}
.panel{
  border:1px solid rgba(214,225,238,.95);
  border-radius:24px;
  background:rgba(255,255,255,.92);
  box-shadow:var(--panel-shadow);
  backdrop-filter:blur(12px);
}
.filter-panel{
  padding:22px;
  box-shadow:var(--panel-shadow-strong);
  background:rgba(255,255,255,.94);
}
.filters{grid-template-columns:170px 220px minmax(280px,1fr) minmax(272px,max-content)}
label{
  gap:8px;
  color:#56657a;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.01em;
}
select,button{height:52px;border-radius:16px;font-weight:700}
select{
  border-color:#d6e0ed;
  padding:0 16px;
  color:#1b2940;
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.92), 0 1px 2px rgba(32,54,83,.05);
}
select:focus-visible,
button:focus-visible,
.filter-reset-btn:focus-visible,
.table-sort-btn:focus-visible{
  outline:3px solid rgba(70,141,225,.35);
  outline-offset:2px;
}
button{
  background:linear-gradient(135deg,#205c9e 0%,#184879 100%);
  border-color:#184879;
  box-shadow:0 10px 22px rgba(24,72,121,.18), inset 0 1px 0 rgba(255,255,255,.18);
}
button:hover{background:linear-gradient(135deg,#1d5491 0%,#153f6d 100%)}
.filter-actions{gap:12px}
.filter-actions>button[type="submit"]{min-width:164px}
.filter-reset-btn{
  min-width:118px;
  height:52px;
  border-radius:16px;
  border:1px solid #d6e0ed;
  background:linear-gradient(180deg,#fff 0%,#f4f7fb 100%);
  color:#35506d;
  font-weight:800;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95), 0 1px 2px rgba(32,54,83,.04);
}
.filter-reset-btn:hover{background:linear-gradient(180deg,#fff 0%,#eef4fb 100%);color:#1c4d82}
.date-info-panel{
  margin-top:24px;
  padding:0;
  border:none;
  background:transparent;
  box-shadow:0 24px 56px rgba(19,44,74,.14);
  overflow:hidden;
}
.date-info-primary{
  position:relative;
  min-height:200px;
  padding:28px 30px 24px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  background:linear-gradient(135deg,#0c4773 0%,#156d9a 56%,#1f97ac 100%);
  border-bottom:none;
}
.date-info-primary::before,
.date-info-primary::after{
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}
.date-info-primary::before{
  width:340px;
  height:340px;
  right:-90px;
  top:-90px;
  background:radial-gradient(circle,rgba(255,255,255,.09) 0,rgba(255,255,255,.09) 48%,transparent 49%);
}
.date-info-primary::after{
  width:180px;
  height:180px;
  right:150px;
  top:18px;
  background:radial-gradient(circle,rgba(255,255,255,.07) 0,rgba(255,255,255,.07) 56%,transparent 57%);
}
.date-info-copy,
.run-chip{position:relative;z-index:1}
.hero-stats{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.hero-stat{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.01em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1);
}
.date-info-primary .eyebrow{
  margin:0 0 10px;
  color:rgba(255,255,255,.83);
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.03em;
}
.date-info-primary strong{
  display:block;
  color:#fff;
  font-size:clamp(1.55rem,1.22rem + 1.55vw,2.55rem);
  line-height:1.08;
  letter-spacing:-.03em;
  text-wrap:balance;
}
.date-info-primary .snapshot-sub{
  margin-top:16px;
  color:rgba(255,255,255,.88);
  font-size:.82rem;
  line-height:1.6;
  max-width:760px;
}
.run-chip{
  align-self:flex-start;
  padding:10px 15px;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.2);
  color:#fff;
  font-size:.76rem;
  font-weight:800;
  box-shadow:0 10px 26px rgba(12,52,82,.14);
}
.date-info-warning{
  padding:16px 24px;
  display:flex;
  align-items:flex-start;
  gap:12px;
  background:linear-gradient(180deg,#fcf3cd 0%,#f6ebbf 100%);
  color:#574715;
  border-top:1px solid rgba(221,194,91,.95);
  font-size:.74rem;
  line-height:1.58;
}
.date-info-warning>strong{color:#4b3a10}
.dashboard-overview-head{margin:30px 0 16px;align-items:flex-end}
.dashboard-overview-head .eyebrow{
  color:#61738b;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.03em;
}
.dashboard-overview-head h2{margin:6px 0 0;font-size:clamp(1.42rem,1.05rem + .8vw,1.86rem);color:#18324f;letter-spacing:-.025em}
.period-pill,
.map-period{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:linear-gradient(180deg,#fff 0%,#f6f9fd 100%);
  border:1px solid #d7e1ee;
  color:#39536f;
  border-radius:999px;
  padding:10px 14px;
  font-size:.72rem;
  font-weight:800;
  box-shadow:0 8px 18px rgba(19,44,74,.06);
}
.dashboard-overview-grid{grid-template-columns:minmax(0,1.7fr) minmax(360px,.92fr);gap:22px;align-items:start}
.dashboard-map-column>.map-panel,
.kpi-rail-heading,
.kpis-rail .kpi,
.money-card,
.table-panel{
  border:1px solid rgba(215,225,238,.95);
  background:rgba(255,255,255,.94);
  box-shadow:var(--panel-shadow);
  backdrop-filter:blur(10px);
}
.map-panel{border-radius:28px;overflow:hidden;box-shadow:var(--panel-shadow-strong)}
.map-panel-head{padding:24px 24px 18px;background:linear-gradient(180deg,#ffffff 0%,#fbfcff 100%);border-bottom:1px solid #edf2fa}
.map-metric-switch{padding:2px 24px 10px;justify-content:flex-start}
.map-metric-btn{
  min-height:46px;
  padding:10px 16px 11px;
  border-radius:16px;
  background:linear-gradient(180deg,#f7faff 0%,#eef3f9 100%);
  border:1px solid #d9e2ef;
  color:#2b4561;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95);
}
.map-metric-btn span{font-size:.74rem;opacity:.78}
.map-metric-btn:hover{background:linear-gradient(180deg,#fafdff 0%,#e9f1fa 100%)}
.map-metric-btn.is-active{
  background:linear-gradient(135deg,#1f5f9f 0%,#174778 100%);
  border-color:#174778;
  color:#fff;
  box-shadow:0 12px 24px rgba(25,82,136,.18), inset 0 1px 0 rgba(255,255,255,.16);
}
.map-stage-wrap{padding:12px 24px 10px}
.map-stage{
  width:min(100%,1200px);
  aspect-ratio:4/3;
  min-height:420px;
  border:1px solid #d9e3ef;
  border-radius:24px;
  overflow:hidden;
  background:linear-gradient(180deg,#eef5fb 0%,#e1ebf6 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72), 0 18px 36px rgba(19,44,74,.1);
}
.map-stage .leaflet-control-zoom,
.map-stage .leaflet-bar,
.map-stage .leaflet-control-layers{
  border:none;
  box-shadow:0 10px 20px rgba(15,44,75,.15);
}
.map-stage .leaflet-control-zoom a,
.ewd-map-reset button{
  border:none;
  color:#21476f;
  background:#fff;
}
.map-legend-wrap{padding:10px 24px 24px}
.map-legend{
  display:flex;
  flex-wrap:wrap;
  gap:10px 14px;
  justify-content:center;
  align-items:center;
  padding:16px 18px;
  border-radius:20px;
  background:linear-gradient(180deg,#ffffff 0%,#f7f9fc 100%);
  border:1px solid #e0e7f1;
}
.map-help{margin-top:12px;text-align:center;font-size:.73rem;color:#6b7d92}
.dashboard-kpi-rail{gap:14px}
.kpi-rail-heading{
  padding:18px 20px;
  border-radius:24px;
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);
}
.kpi-rail-heading strong{margin-top:6px;font-size:1.1rem;color:#1b3554}
.kpi-rail-heading span{margin-top:4px;font-size:.72rem;color:#687c93}
.kpis-rail{gap:14px}
.kpis-rail .kpi{
  position:relative;
  padding:20px 22px;
  border-radius:22px;
  overflow:hidden;
}
.kpis-rail .kpi::before{
  content:"";
  position:absolute;
  inset:auto -24px -24px auto;
  width:120px;
  height:120px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(31,95,159,.08) 0,rgba(31,95,159,0) 68%);
  pointer-events:none;
}
.kpis-rail .kpi:nth-child(2)::before{background:radial-gradient(circle,rgba(35,145,174,.1) 0,rgba(35,145,174,0) 68%)}
.kpis-rail .kpi:nth-child(3)::before{background:radial-gradient(circle,rgba(91,95,214,.1) 0,rgba(91,95,214,0) 68%)}
.kpis-rail .kpi:nth-child(4)::before{background:radial-gradient(circle,rgba(45,122,97,.1) 0,rgba(45,122,97,0) 68%)}
.kpis-rail .kpi:nth-child(5)::before{background:radial-gradient(circle,rgba(174,110,35,.1) 0,rgba(174,110,35,0) 68%)}
.kpis-rail .kpi-label{color:#233955;font-size:.92rem}
.kpis-rail .kpi-value{
  margin-top:12px;
  color:#174884;
  font-size:clamp(2rem,1.32rem + 1.1vw,2.8rem);
  font-weight:900;
  line-height:1;
}
.kpi-unit{
  right:18px;
  top:18px;
  padding:8px 12px;
  border-radius:999px;
  background:#edf4fc;
  border:1px solid #d7e3f0;
  color:#31577f;
  font-size:.76rem;
  font-weight:800;
}
.kpis-rail .kpi p{margin-top:10px;color:#6d7d90;font-size:.74rem;line-height:1.45}
.money-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0 0}
.money-card{
  position:relative;
  overflow:hidden;
  min-height:160px;
  padding:28px 22px;
  border:1px dashed #d7e1ee;
  border-radius:24px;
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);
}
.money-card::after{
  content:"";
  position:absolute;
  inset:auto -28px -28px auto;
  width:140px;
  height:140px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(31,95,159,.08) 0,rgba(31,95,159,0) 68%);
  pointer-events:none;
}
.money-card-label{position:relative;z-index:1;color:#1c3657;font-size:1.08rem;font-weight:800;letter-spacing:-.01em}
.money-card-label span{color:#72849a;font-size:.86rem;font-weight:700}
.money-card-value{min-height:58px;margin-top:20px}
.money-card-placeholder .money-card-value{border-radius:14px;background:linear-gradient(90deg,#eef2f7 0%,#f7f9fc 50%,#eef2f7 100%);border:1px dashed #d7e1ee}
.table-panel{margin-top:24px;border-radius:28px;overflow:hidden;box-shadow:var(--panel-shadow-strong)}
.table-title{padding:24px 24px 18px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);border-bottom:1px solid #edf2fa}
.table-title h3{margin:0 0 6px;color:#1b3554;font-size:1.15rem;letter-spacing:-.02em}
.table-title p{margin:0;color:#687b91;font-size:.76rem;line-height:1.55}
.table-wrap{background:transparent}
.table-wrap table{min-width:920px;background:transparent}
th,td{padding:15px 18px;border-bottom:1px solid #edf2f8}
th{background:#f6f9fd;color:#364b64;font-size:.75rem;font-weight:800}
td{font-size:.82rem;color:#21334a}
tbody tr:nth-child(even){background:#fbfdff}
tbody tr:hover{background:#eef5ff}
.table-sort-btn,
.table-sort-btn.table-sort-btn-num{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  width:100%;
  height:auto;
  min-height:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:inherit;
  box-shadow:none;
  text-align:inherit;
}
.table-sort-btn:hover,
.table-sort-btn.table-sort-btn-num:hover{background:transparent;color:#184c85}
.sort-indicator{display:inline-flex;align-items:center;justify-content:center;min-width:18px;color:#7e91a8;font-size:.9em}
.footer{padding:28px 0 42px;border-top:none;color:#66778c;font-size:.68rem}
.footer-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  padding:14px 18px;
  border-radius:18px;
  border:1px solid rgba(215,225,238,.95);
  background:rgba(255,255,255,.84);
  box-shadow:var(--panel-shadow);
}
.footer-admin-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:82px;
  padding:10px 14px;
  border-radius:999px;
  background:linear-gradient(135deg,#1f5f9f 0%,#184879 100%);
  color:#fff;
  font-weight:800;
  text-decoration:none;
  box-shadow:0 10px 20px rgba(24,72,121,.16);
}
.footer-admin-link:hover{color:#fff;text-decoration:none;filter:brightness(.98)}
.empty{padding:40px 28px;text-align:center}
.empty h2{margin-bottom:8px;color:#1c3657}
.empty p{margin:0;color:#687b91}
@media(max-width:1279px){
  .dashboard-overview-grid{grid-template-columns:1fr}
  .dashboard-kpi-rail{display:block}
  .kpi-rail-heading{margin-bottom:14px}
  .kpis-rail.kpis-five{grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-auto-rows:auto}
  .kpis-rail.kpis-three{grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-auto-rows:auto}
  .kpis-rail .kpi{min-height:174px}
}
@media(max-width:1100px){
  .filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .filters>label:nth-of-type(3),
  .filter-actions{grid-column:1 / -1}
  .filter-actions{width:100%;justify-content:flex-end;min-width:0}
}
@media(max-width:900px){
  .container{width:calc(100% - 28px)}
  .topbar{padding:28px 0 70px}
  .main{margin-top:-32px}
  .date-info-primary{padding:24px 22px 22px;min-height:180px}
  .date-info-warning{padding:14px 18px;flex-direction:column}
  .money-cards{grid-template-columns:1fr}
  .kpis-rail.kpis-five,
  .kpis-rail.kpis-three{grid-template-columns:1fr 1fr!important}
  .footer-row{justify-content:center;text-align:center}
}
@media(max-width:700px){
  .filters{grid-template-columns:1fr}
  .filter-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .filter-actions>button[type="submit"],
  .filter-reset-btn{width:100%;min-width:0}
  .topbar h1{font-size:1.7rem}
  .brand-tagline{font-size:.8rem}
  .hero-stats{margin-bottom:12px}
  .run-chip{padding:9px 13px}
  .dashboard-overview-head{align-items:flex-start}
  .dashboard-overview-head,.section-head{flex-direction:column}
  .kpis-rail.kpis-five,
  .kpis-rail.kpis-three{grid-template-columns:1fr!important}
}


/* Snapshot-as-page-header — Application 0.31 */
.snapshot-page-header{
  position:relative;z-index:1;overflow:hidden;color:#fff;
  background:
    radial-gradient(circle at 85% 20%,rgba(255,255,255,.10) 0,rgba(255,255,255,.10) 16%,transparent 16.5%),
    radial-gradient(circle at 91% 22%,rgba(255,255,255,.055) 0,rgba(255,255,255,.055) 28%,transparent 28.5%),
    linear-gradient(135deg,#0c4773 0%,#156b98 56%,#1f95aa 100%);
  box-shadow:0 18px 44px rgba(17,41,72,.18);
}
.snapshot-page-header::before,.snapshot-page-header::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.snapshot-page-header::before{width:360px;height:360px;right:-82px;top:-116px;background:rgba(255,255,255,.06)}
.snapshot-page-header::after{width:170px;height:170px;right:235px;top:72px;background:rgba(255,255,255,.045)}
.snapshot-page-header-inner{position:relative;z-index:1;min-height:238px;padding-top:34px;padding-bottom:30px;display:flex;align-items:flex-start;justify-content:space-between;gap:28px}
.snapshot-page-header-copy{min-width:0;max-width:1100px}
.snapshot-page-header .hero-stats{margin-bottom:18px}
.snapshot-page-header .hero-stat{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.18);color:#fff}
.snapshot-page-eyebrow{margin-bottom:8px;color:rgba(255,255,255,.8);font-size:.8rem;font-weight:800;letter-spacing:.035em}
.snapshot-page-time{color:#fff;font-size:clamp(1.72rem,1.18rem + 1.7vw,2.75rem);font-weight:900;line-height:1.08;letter-spacing:-.035em;text-wrap:balance}
.snapshot-page-sub{margin-top:16px;max-width:840px;color:rgba(255,255,255,.86);font-size:.84rem;line-height:1.6}
.snapshot-page-run{position:relative;z-index:1;flex:0 0 auto;margin-top:4px;padding:10px 15px;border-radius:999px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.22);color:#fff;font-size:.76rem;font-weight:800;box-shadow:0 10px 24px rgba(8,49,78,.14),inset 0 1px 0 rgba(255,255,255,.12)}
.snapshot-page-warning{position:relative;z-index:2;background:linear-gradient(180deg,#fcf3cd 0%,#f6eabc 100%);border-top:1px solid rgba(226,196,80,.9);color:#574715}
.snapshot-page-warning-inner{min-height:58px;padding-top:14px;padding-bottom:14px;display:flex;align-items:flex-start;gap:14px;font-size:.74rem;line-height:1.55}
.snapshot-page-warning-inner>strong{flex:0 0 auto;color:#493a0f;font-weight:900}
.snapshot-page-warning-inner b{font-weight:900}
.snapshot-page-header-empty .snapshot-page-header-inner{min-height:190px}
.main{margin-top:-28px;padding-top:0}
.filter-panel{position:relative;z-index:4}
.topbar,.date-info-panel{display:none!important}
@media(max-width:900px){.snapshot-page-header-inner{min-height:212px;padding-top:28px;padding-bottom:26px}.snapshot-page-warning-inner{flex-direction:column;gap:5px}.main{margin-top:-22px}}
@media(max-width:700px){.snapshot-page-header-inner{min-height:220px;padding-top:24px;padding-bottom:24px;flex-direction:column;gap:16px}.snapshot-page-run{margin-top:0}.snapshot-page-time{font-size:1.72rem}.snapshot-page-sub{margin-top:12px;font-size:.8rem}.snapshot-page-warning-inner{padding-top:12px;padding-bottom:12px}}


/* Compact snapshot page header corrective — Application 0.32 */
.snapshot-page-header-inner{
  min-height:0;
  padding-top:22px;
  padding-bottom:20px;
  align-items:center;
}
.snapshot-page-header-copy{
  max-width:1200px;
}
.snapshot-page-time{
  font-size:clamp(1.55rem,1.12rem + 1.4vw,2.35rem);
  line-height:1.08;
}
.snapshot-page-sub{
  margin-top:9px;
  font-size:.80rem;
  line-height:1.5;
}
.snapshot-page-warning{
  position:relative;
  z-index:2;
}
.snapshot-page-warning-inner{
  min-height:0;
  padding-top:11px;
  padding-bottom:11px;
  align-items:center;
  gap:12px;
}
.snapshot-page-header-empty .snapshot-page-header-inner{
  min-height:0;
  padding-top:24px;
  padding-bottom:24px;
}
/* Filter must start after the warning strip; no negative overlap. */
.main{
  margin-top:0;
  padding-top:22px;
}
.filter-panel{
  position:relative;
  z-index:1;
  margin-top:0;
}
@media(max-width:900px){
  .snapshot-page-header-inner{
    min-height:0;
    padding-top:20px;
    padding-bottom:18px;
  }
  .snapshot-page-warning-inner{
    padding-top:10px;
    padding-bottom:10px;
    flex-direction:column;
    align-items:flex-start;
    gap:4px;
  }
  .main{
    margin-top:0;
    padding-top:18px;
  }
}
@media(max-width:700px){
  .snapshot-page-header-inner{
    min-height:0;
    padding-top:18px;
    padding-bottom:17px;
    display:block;
  }
  .snapshot-page-time{
    font-size:1.55rem;
  }
  .snapshot-page-sub{
    margin-top:8px;
    font-size:.78rem;
  }
}
\n\n/* Alternate cards-first page — Application 0.33 R2 */\n.cards-first-page .cards-first-layout{display:block}\n.cards-first-page .cards-first-summary{margin-top:0}\n.cards-first-page .cards-first-summary .kpi-rail-heading{margin-bottom:16px}\n.cards-first-page .cards-first-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))!important;grid-auto-rows:auto;gap:18px}\n.cards-first-page .cards-first-kpis .kpi{min-height:188px;height:auto;padding:22px;border-radius:22px}\n.cards-first-page .money-cards{margin-top:20px}\n.cards-first-page .cards-first-map{margin-top:24px}\n@media(max-width:1500px){.cards-first-page .cards-first-kpis{grid-template-columns:repeat(3,minmax(0,1fr))!important}}\n@media(max-width:1050px){.cards-first-page .cards-first-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}}\n@media(max-width:700px){.cards-first-page .cards-first-kpis{grid-template-columns:1fr!important}}\n

/* Cards-first map show/hide — Application 0.34 */
.cards-first-page .cards-first-map-toggle-row{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  margin-top:24px;
  margin-bottom:10px;
}
.cards-first-page .map-visibility-toggle{
  min-width:148px;
  height:46px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid #cbd9e8;
  background:linear-gradient(180deg,#ffffff 0%,#f1f6fb 100%);
  color:#31516f;
  font-weight:800;
  box-shadow:0 8px 18px rgba(19,44,74,.08), inset 0 1px 0 rgba(255,255,255,.95);
  white-space:nowrap;
}
.cards-first-page .map-visibility-toggle:hover{
  background:linear-gradient(180deg,#ffffff 0%,#e8f1fa 100%);
  color:#174f87;
}
.cards-first-page .map-visibility-toggle:focus-visible{
  outline:3px solid rgba(70,141,225,.35);
  outline-offset:2px;
}
.cards-first-page .cards-first-map-container[hidden]{
  display:none!important;
}
.cards-first-page .cards-first-map-container .cards-first-map{
  margin-top:0;
}


/* Cards-first tablet filter inline actions — Application 0.35 */
@media(min-width:701px) and (max-width:1100px){
  .cards-first-page .filters{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    align-items:end;
  }

  /* First row: Year | Month */
  .cards-first-page .filters>label:nth-of-type(1){
    grid-column:1;
    grid-row:1;
  }
  .cards-first-page .filters>label:nth-of-type(2){
    grid-column:2;
    grid-row:1;
  }

  /* Second row: Area | action buttons */
  .cards-first-page .filters>label:nth-of-type(3){
    grid-column:1;
    grid-row:2;
    min-width:0;
  }
  .cards-first-page .filter-actions{
    grid-column:2;
    grid-row:2;
    width:auto;
    min-width:0;
    justify-content:flex-end;
    align-items:end;
    flex-wrap:nowrap;
  }
  .cards-first-page .filter-actions>button[type="submit"]{
    min-width:150px;
    white-space:nowrap;
  }
  .cards-first-page .filter-reset-btn{
    min-width:112px;
    white-space:nowrap;
  }
}


/* Enhanced dropdown interaction — Application 0.36 */
.filter-field{
  display:grid;
  gap:8px;
}
.filter-label{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:#50617a;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.01em;
}
.filter-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:7px;
  background:#edf4fb;
  color:#2b5f92;
  font-size:.76rem;
  line-height:1;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}
.select-shell{
  position:relative;
  display:block;
  border-radius:16px;
  transition:
    transform .18s ease,
    box-shadow .18s ease,
    filter .18s ease;
}
.select-shell::after{
  content:"⌄";
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-54%);
  display:flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  border-radius:9px;
  background:linear-gradient(180deg,#f3f7fc 0%,#e9f1f9 100%);
  color:#335b83;
  font-size:1rem;
  font-weight:900;
  pointer-events:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95);
  transition:
    transform .18s ease,
    background .18s ease,
    color .18s ease;
}
.select-shell select{
  appearance:none;
  -webkit-appearance:none;
  padding-right:52px!important;
  cursor:pointer;
  transition:
    border-color .18s ease,
    background .18s ease,
    box-shadow .18s ease,
    color .18s ease;
}
.select-shell:hover{
  transform:translateY(-1px);
}
.select-shell:hover select{
  border-color:#b9cce1;
  background:linear-gradient(180deg,#ffffff 0%,#f4f8fd 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.95),
    0 6px 16px rgba(35,77,120,.08);
}
.select-shell:hover::after{
  background:linear-gradient(180deg,#eaf3fc 0%,#dfeaf6 100%);
  color:#174f87;
  transform:translateY(-50%);
}
.select-shell:focus-within{
  transform:translateY(-1px);
  box-shadow:
    0 0 0 4px rgba(61,132,210,.13),
    0 12px 24px rgba(28,76,125,.10);
}
.select-shell:focus-within select{
  border-color:#6ea6df;
  background:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95);
  outline:none;
}
.select-shell:focus-within::after{
  background:linear-gradient(135deg,#2768a9 0%,#174f87 100%);
  color:#fff;
  transform:translateY(-50%) rotate(180deg);
}
.select-shell-area select{
  border-color:#b7cce2;
  background:
    linear-gradient(180deg,#ffffff 0%,#f6faff 100%);
}
.filter-field-area .filter-icon{
  background:linear-gradient(135deg,#e8f3ff 0%,#dcecfb 100%);
  color:#174f87;
}
.cards-first-page .filter-field-area .select-shell:focus-within{
  box-shadow:
    0 0 0 4px rgba(37,108,178,.14),
    0 14px 28px rgba(26,76,126,.11);
}
@media(max-width:700px){
  .filter-label{
    font-size:.76rem;
  }
  .filter-icon{
    width:21px;
    height:21px;
  }
}


/* Compact mobile card refinement — Application 0.39 */
@media(max-width:768px){
  .cards-first-page .cards-first-kpis .kpi p{
    display:none!important;
  }
  .cards-first-page .cards-first-kpis .kpi{
    min-height:0!important;
    padding-top:20px!important;
    padding-bottom:18px!important;
  }
  .cards-first-page .cards-first-kpis .kpi-value{
    margin-top:10px;
  }
}


/* KPI card value/unit alignment refinement — Application 0.41 */
.kpis-rail .kpi{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:
    "label label"
    "value unit"
    "desc desc";
  column-gap:16px;
  row-gap:10px;
  align-items:center;
}
.kpis-rail .kpi-label{
  grid-area:label;
  align-self:start;
}
.kpis-rail .kpi-value{
  grid-area:value;
  justify-self:end;
  align-self:center;
  width:auto;
  max-width:100%;
  margin-top:0;
  padding-right:0;
  text-align:right;
  white-space:nowrap;
}
.kpis-rail .kpi-unit{
  position:static;
  grid-area:unit;
  justify-self:end;
  align-self:center;
  margin:0;
}
.kpis-rail .kpi p{
  grid-area:desc;
  margin-top:2px;
}
@media(max-width:768px){
  .kpis-rail .kpi{
    column-gap:12px;
    row-gap:8px;
  }
  .kpis-rail .kpi-value{
    font-size:clamp(2.05rem,1.7rem + 2.2vw,2.95rem);
  }
  .kpis-rail .kpi-unit{
    padding:8px 13px;
  }
}


/* KPI value/unit alignment corrective — Application 0.42
   R2: target the actual .cards-first-kpis markup. */
.cards-first-page .cards-first-kpis .kpi{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:
    "label label"
    "value unit"
    "desc desc"!important;
  column-gap:10px!important;
  row-gap:10px!important;
  align-items:center!important;
}
.cards-first-page .cards-first-kpis .kpi .kpi-label{
  grid-area:label;
  align-self:start;
}
.cards-first-page .cards-first-kpis .kpi .kpi-value{
  grid-area:value;
  justify-self:stretch;
  align-self:center;
  width:100%!important;
  max-width:none!important;
  margin-top:0!important;
  padding-right:0!important;
  text-align:right!important;
  white-space:nowrap;
}
.cards-first-page .cards-first-kpis .kpi .kpi-unit{
  position:static!important;
  grid-area:unit;
  justify-self:end;
  align-self:center;
  right:auto!important;
  top:auto!important;
  margin:0!important;
}
.cards-first-page .cards-first-kpis .kpi p{
  grid-area:desc;
  margin-top:2px;
}

@media(max-width:768px){
  .cards-first-page .cards-first-kpis .kpi{
    grid-template-areas:
      "label label"
      "value unit"!important;
    column-gap:8px!important;
    row-gap:12px!important;
  }
  .cards-first-page .cards-first-kpis .kpi .kpi-value{
    padding-right:0!important;
    text-align:right!important;
  }
  .cards-first-page .cards-first-kpis .kpi .kpi-unit{
    align-self:center!important;
  }
}


/* Unified filter action buttons — Public 0.44 / Filter Actions R1 */
.cards-first-page .filter-actions > button[type="submit"],
.cards-first-page .filter-reset-btn{
  box-sizing:border-box;
  height:52px;
  min-height:52px;
  padding:0 22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #184879;
  border-radius:16px;
  background:linear-gradient(135deg,#205c9e 0%,#184879 100%);
  color:#fff;
  font:inherit;
  font-weight:800;
  line-height:1;
  text-decoration:none;
  box-shadow:0 10px 22px rgba(24,72,121,.18), inset 0 1px 0 rgba(255,255,255,.18);
  cursor:pointer;
}
.cards-first-page .filter-actions > button[type="submit"]:hover,
.cards-first-page .filter-reset-btn:hover{
  background:linear-gradient(135deg,#1d5491 0%,#153f6d 100%);
  border-color:#153f6d;
  color:#fff;
  text-decoration:none;
}
.cards-first-page .filter-actions > button[type="submit"]:focus-visible,
.cards-first-page .filter-reset-btn:focus-visible{
  outline:3px solid rgba(70,141,225,.35);
  outline-offset:2px;
}


/* October area-only filter width corrective — Public 0.44 / R1 */
.cards-first-page .filters.filters-area-only{
  grid-template-columns:minmax(420px,520px) minmax(272px,max-content);
  justify-content:start;
  align-items:end;
  column-gap:16px;
}
.cards-first-page .filters.filters-area-only .filter-field-area{
  grid-column:1;
  grid-row:1;
  width:100%;
  min-width:0;
}
.cards-first-page .filters.filters-area-only .filter-actions{
  grid-column:2;
  grid-row:1;
  width:auto;
  min-width:272px;
  justify-content:flex-start;
  align-items:end;
}

/* Tablet: keep area and action buttons inline while allowing the area selector to flex. */
@media(min-width:701px) and (max-width:1100px){
  .cards-first-page .filters.filters-area-only{
    grid-template-columns:minmax(340px,1fr) minmax(272px,max-content);
  }
  .cards-first-page .filters.filters-area-only .filter-field-area{
    grid-column:1;
    grid-row:1;
  }
  .cards-first-page .filters.filters-area-only .filter-actions{
    grid-column:2;
    grid-row:1;
    width:auto;
    justify-content:flex-start;
  }
}

/* Mobile: selector takes the full row and actions move below it. */
@media(max-width:700px){
  .cards-first-page .filters.filters-area-only{
    grid-template-columns:1fr;
  }
  .cards-first-page .filters.filters-area-only .filter-field-area{
    grid-column:1;
    grid-row:1;
    width:100%;
  }
  .cards-first-page .filters.filters-area-only .filter-actions{
    grid-column:1;
    grid-row:2;
    width:100%;
    min-width:0;
  }
}
