/* ecrop demo — romcrop design language, brand-orange accent */
:root {
  --bg:#0a0e17; --bg-card:#111827; --bg-card2:#131f31;
  --border:#1e293b; --text:#e2e8f0; --text-dim:#94a3b8; --text-bright:#f8fafc;
  --accent:#f97316; --accent-dim:rgba(249,115,22,0.15);
  --success:#10b981; --warn:#f59e0b; --error:#ef4444;
  --radius:12px; --shadow:0 4px 24px rgba(0,0,0,0.35); --max-w:1800px;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Inter',-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh;display:flex;flex-direction:column;}

/* ── Header ── */
header{border-bottom:1px solid var(--border);padding:0 2rem;background:linear-gradient(180deg,#111827 0%,var(--bg) 100%);position:sticky;top:0;z-index:1000;}
.header-inner{max-width:var(--max-w);margin:0 auto;height:54px;display:flex;align-items:center;gap:1.25rem;}
.logo{display:flex;align-items:center;gap:.5rem;flex-shrink:0;}
.logo-text{font-weight:700;font-size:1.2rem;color:var(--text-bright);}
.logo-sep{color:var(--text-dim);}
.logo-sub{color:var(--text-dim);font-size:.88rem;white-space:nowrap;}
.header-stats{display:flex;flex:1;flex-wrap:wrap;gap:.2rem 1.1rem;align-items:center;justify-content:center;}
.header-stat{display:flex;align-items:baseline;gap:.35rem;white-space:nowrap;}
.header-stat .stat-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);}
.header-stat .stat-value{font-size:.92rem;font-weight:600;color:var(--text-bright);}
.tab-bar{display:flex;align-items:center;flex-shrink:0;}
.tab-btn{background:transparent;border:0;border-bottom:3px solid transparent;color:var(--text-dim);font-family:inherit;font-size:.85rem;font-weight:500;padding:0 1.1rem;height:54px;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s;}
.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent);}
.tab-btn:not(.active):hover{color:var(--text-bright);}

/* ── Pages ── */
.page{display:none;flex:1;}
.page.active{display:flex;flex-direction:column;}

/* ── Map layout ── */
.map-page-body{display:flex;flex:1;overflow:hidden;height:calc(100vh - 54px);}
.left-rail{width:220px;flex-shrink:0;background:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;}
.rail-section{padding:1rem 1rem .75rem;border-bottom:1px solid var(--border);}
.rail-title{font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin-bottom:.6rem;}
.country-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;}
.country-btn{background:rgba(255,255,255,.05);border:1px solid var(--border);border-radius:7px;color:var(--text-dim);font-family:inherit;font-size:.8rem;font-weight:600;padding:.4rem;cursor:pointer;transition:all .15s;text-align:center;}
.country-btn.active,.country-btn:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);}
.year-display{text-align:center;font-size:1.5rem;font-weight:700;color:var(--text-bright);margin-bottom:.5rem;font-variant-numeric:tabular-nums;}
.year-slider{-webkit-appearance:none;width:100%;height:4px;background:var(--border);border-radius:2px;outline:none;cursor:pointer;}
.year-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--bg);}
.year-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--bg);}
.year-ticks{display:flex;justify-content:space-between;margin-top:.3rem;font-size:.58rem;color:var(--text-dim);font-variant-numeric:tabular-nums;}
.hint-panel{flex:1;padding:1rem;font-size:.72rem;color:var(--text-dim);font-style:italic;line-height:1.5;}

/* map + overlays */
.map-wrap{flex:1;position:relative;overflow:hidden;}
#map{position:absolute;inset:0;}
.no-data-overlay{display:none;position:absolute;inset:0;background:rgba(10,14,23,.82);z-index:500;align-items:center;justify-content:center;flex-direction:column;gap:.75rem;pointer-events:none;}
.no-data-overlay.visible{display:flex;}
.no-data-msg{color:var(--text-dim);font-size:1.1rem;font-weight:500;}
.no-data-sub{color:var(--text-dim);font-size:.8rem;opacity:.7;}
.load-overlay{display:none;position:absolute;top:12px;left:50%;transform:translateX(-50%);background:rgba(17,24,39,.92);border:1px solid var(--border);border-radius:8px;padding:.5rem 1.1rem;font-size:.8rem;color:var(--text-dim);z-index:600;pointer-events:none;}
.load-overlay.visible{display:block;}

/* right rail */
.right-rail{width:260px;flex-shrink:0;background:var(--bg-card);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;}
.right-rail-header{padding:.85rem 1rem .6rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.right-rail-header h3{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);font-weight:600;}
.legend-scope{font-size:.68rem;color:var(--text-dim);}
#legend{flex:1;overflow-y:auto;padding:.5rem .75rem 1rem;}
.legend-item{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:.45rem;padding:3px 2px;border-radius:4px;cursor:pointer;transition:background .12s;}
.legend-item:hover{background:rgba(255,255,255,.03);}
.legend-item.dimmed{opacity:.28;}
.legend-swatch{width:12px;height:12px;border-radius:3px;border:1px solid rgba(255,255,255,.1);flex-shrink:0;}
.legend-bar-col{min-width:0;display:flex;flex-direction:column;gap:2px;}
.legend-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);font-size:.77rem;line-height:1;}
.legend-bar-wrap{height:5px;background:rgba(255,255,255,.04);border-radius:3px;overflow:hidden;}
.legend-bar{height:100%;border-radius:3px;min-width:2px;transition:width .3s ease;}
.legend-count{text-align:right;color:var(--text-dim);font-size:.68rem;font-variant-numeric:tabular-nums;white-space:nowrap;}
.legend-reset{display:none;font-size:.7rem;color:var(--accent);cursor:pointer;text-decoration:underline;padding:.3rem .75rem .5rem;border-top:1px solid var(--border);}
.legend-reset.visible{display:block;}

/* ── Field history panel ── */
.field-panel{position:absolute;top:0;right:0;width:320px;height:100%;background:var(--bg-card2);border-left:1px solid var(--border);z-index:700;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .25s ease;pointer-events:none;}
.field-panel.open{transform:translateX(0);pointer-events:all;}
.field-panel-header{padding:.85rem 1rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.field-panel-header h3{font-size:.9rem;font-weight:600;color:var(--text-bright);}
.field-panel-close{background:rgba(255,255,255,.06);border:1px solid var(--border);border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-dim);font-size:.9rem;line-height:1;}
.field-panel-close:hover{color:var(--text-bright);background:rgba(255,255,255,.12);}
.field-panel-body{flex:1;overflow-y:auto;padding:1rem;}
.field-meta{margin-bottom:1rem;}
.field-meta-row{display:flex;justify-content:space-between;font-size:.78rem;color:var(--text-dim);padding:2px 0;}
.field-meta-row span:last-child{color:var(--text);font-weight:500;}
.field-chart-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin:.75rem 0 .4rem;}
.field-history-bars{display:grid;grid-template-columns:repeat(9,1fr);gap:3px;height:140px;align-items:end;margin-bottom:.25rem;}
.hist-bar-col{display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end;}
.hist-bar{width:100%;border-radius:3px 3px 0 0;min-height:4px;transition:height .3s ease;}
.hist-year{font-size:.58rem;color:var(--text-dim);margin-top:3px;font-variant-numeric:tabular-nums;}
.hist-crop-label{font-size:.62rem;color:var(--text-dim);text-align:center;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.field-panel-loading{text-align:center;color:var(--text-dim);font-size:.8rem;margin-top:2rem;font-style:italic;}

/* MapLibre overrides */
.maplibregl-popup-content{background:rgba(17,24,39,.96)!important;border:1px solid rgba(249,115,22,.3)!important;border-radius:8px!important;padding:.7rem .85rem!important;color:var(--text-bright)!important;font-family:'Inter',sans-serif!important;font-size:.82rem!important;box-shadow:0 4px 18px rgba(0,0,0,.55)!important;}
.maplibregl-popup-tip{display:none!important;}
.maplibregl-ctrl-attrib{font-size:.6rem!important;}
.maplibregl-ctrl-attrib a{color:#64748b!important;}
.popup-swatch{display:inline-block;width:12px;height:12px;border-radius:2px;vertical-align:middle;margin-right:5px;border:1px solid rgba(255,255,255,.12);}
.popup-dim{color:var(--text-dim);font-size:.7rem;margin-top:3px;}

/* ── Eval page ── */
.eval-page-body{max-width:var(--max-w);margin:0 auto;padding:2rem;width:100%;}
.eval-header-row{margin-bottom:1.75rem;}
.eval-header-row h2{font-size:1.1rem;font-weight:600;color:var(--text-bright);margin-bottom:.35rem;}
.eval-header-row p{color:var(--text-dim);font-size:.82rem;}
.caveat-banner{background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.25);border-radius:8px;padding:.6rem 1rem;color:var(--warn);font-size:.78rem;margin-bottom:1.5rem;display:flex;align-items:center;gap:.6rem;}
.eval-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:1.5rem;margin-bottom:1.5rem;}
.eval-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow);}
.eval-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;}
.eval-card-header h3{font-size:.9rem;font-weight:600;color:var(--text-bright);}
.eval-badge{font-size:.68rem;padding:2px 8px;border-radius:999px;background:rgba(249,115,22,.12);color:var(--accent);border:1px solid rgba(249,115,22,.25);}
.placeholder-body{min-height:140px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.6rem;border:1px dashed var(--border);border-radius:8px;color:var(--text-dim);font-size:.82rem;font-style:italic;}
.cty-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-bottom:.75rem;}
.cty-pill{background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:8px;padding:.6rem .5rem;text-align:center;}
.cty-pill-flag{font-size:1.1rem;display:block;margin-bottom:2px;}
.cty-pill-code{font-size:.68rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.07em;}

/* ── Footer ── */
footer{border-top:1px solid var(--border);padding:1rem 2rem;text-align:center;color:var(--text-dim);font-size:.75rem;background:var(--bg-card);}

/* ── Utilities ── */
::-webkit-scrollbar{width:6px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;}
.hidden{display:none!important;}

@media(max-width:1200px){.left-rail{width:180px;}.right-rail{width:220px;}.field-panel{width:280px;}}
@media(max-width:900px){
  .map-page-body{flex-direction:column;height:auto;}
  .left-rail{width:100%;height:auto;flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--border);}
  .right-rail{width:100%;border-left:0;border-top:1px solid var(--border);}
  #map,.map-wrap{height:60vw;min-height:300px;position:relative;}
  .field-panel{width:100%;height:auto;max-height:50vh;top:auto;bottom:0;right:0;transform:translateY(100%);}
  .field-panel.open{transform:translateY(0);}
}
