/* Förderschätzer v2 — /api/estimate_v2 */
:root{--est-green:#2e7d32;--est-green-soft:#e8f5e9;--est-blue:#1565c0;--est-blue-soft:#e3f2fd;--est-amber:#e65100;--est-ink:#1f2933;--est-muted:#6b7280;--est-line:#e5e7eb;--est-bg:#f6f7f9;--est-r:12px}
.calc-modal{display:none;position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:2000;backdrop-filter:blur(2px)}
.calc-modal.active{display:flex;align-items:center;justify-content:center}
.est-root{background:var(--est-bg);width:min(1080px,96vw);max-height:92vh;border-radius:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.35);color:var(--est-ink);font-size:.875rem}
.est-root *{box-sizing:border-box}
.est-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.8rem 1rem;background:#fff;border-bottom:1px solid var(--est-line);position:sticky;top:0;z-index:5}
.est-head h3{margin:0;font-size:1.05rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.est-pill{font-size:.7rem;font-weight:500;color:var(--est-blue);background:var(--est-blue-soft);padding:.15rem .5rem;border-radius:999px;white-space:nowrap}
.est-head-actions{display:flex;gap:.4rem;align-items:center}
.est-ibtn{background:#fff;border:1px solid var(--est-line);border-radius:8px;padding:.38rem .6rem;font-size:.78rem;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;color:#374151;min-height:34px}
.est-ibtn:hover{background:#f3f4f6}
.est-ibtn.primary{background:var(--est-blue);color:#fff;border-color:var(--est-blue)}
.est-ibtn.primary:hover{background:#0d47a1}
.est-ibtn svg{width:14px;height:14px}
.est-close{font-size:1.4rem;line-height:1;padding:.1rem .5rem}
.est-body{display:grid;overflow-x:hidden;grid-template-columns:minmax(300px,380px) 1fr;gap:1rem;padding:1rem;overflow:auto;-webkit-overflow-scrolling:touch}
.est-col{display:flex;flex-direction:column;gap:.85rem;min-width:0}
.est-card{background:#fff;border:1px solid var(--est-line);border-radius:var(--est-r);padding:.85rem .95rem}
.est-card h4{margin:0 0 .6rem;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--est-muted);display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.est-card h4 small{text-transform:none;letter-spacing:0;font-weight:400;font-size:.72rem}
/* hectare rows */
.est-ha-row{display:grid;grid-template-columns:1.6rem 1fr auto;align-items:center;gap:.5rem;padding:.35rem 0;border-bottom:1px dashed #eef0f2}
.est-ha-row:last-of-type{border-bottom:0}
.est-ha-ico{font-size:1.05rem;text-align:center}
.est-ha-lbl{display:flex;flex-direction:column;min-width:0}
.est-ha-lbl b{font-weight:600;font-size:.84rem}
.est-ha-lbl span{font-size:.68rem;color:var(--est-muted)}
.est-step{display:inline-flex;align-items:stretch;border:1px solid #d1d5db;border-radius:9px;overflow:hidden;background:#fff}
.est-step button{border:0;background:#f3f4f6;width:34px;font-size:1.05rem;cursor:pointer;color:#374151;min-height:36px;touch-action:manipulation}
.est-step button:active{background:#e5e7eb}
.est-step input{width:62px;-moz-appearance:textfield;border:0;text-align:right;font-size:.9rem;font-weight:600;padding:0 .35rem;font-variant-numeric:tabular-nums;-moz-appearance:textfield;min-height:36px}
.est-step input::-webkit-inner-spin-button{-webkit-appearance:none}
.est-step input:focus{outline:2px solid var(--est-blue);outline-offset:-2px}
.est-step em{font-style:normal;font-size:.7rem;color:var(--est-muted);align-self:center;padding-right:.45rem}
.est-presets{display:flex;flex-wrap:wrap;gap:.35rem;margin:.6rem 0 .2rem}
.est-chip{font-size:.72rem;padding:.3rem .6rem;border-radius:999px;border:1px solid var(--est-line);background:#fafafa;cursor:pointer;color:#374151;min-height:30px}
.est-chip:hover{border-color:#bbb;background:#fff}
.est-elig{margin-top:.6rem;padding:.55rem .7rem;background:var(--est-blue-soft);border-radius:9px;font-size:.78rem;color:#0d47a1;display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.est-elig b{font-size:.95rem}
.est-eligbar{height:6px;border-radius:3px;background:#c5d8f5;overflow:hidden;margin-top:.35rem}
.est-eligbar i{display:block;height:100%;background:var(--est-blue)}
/* toggles */
.est-toggles{display:flex;flex-direction:column;gap:.35rem}
.est-tog{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.5rem .6rem;border:1px solid var(--est-line);border-radius:10px;cursor:pointer;user-select:none;min-height:46px}
.est-tog:hover{background:#fafafa}
.est-tog.on{border-color:#a5d6a7;background:#f1f8e9}
.est-tog .t{display:flex;flex-direction:column}
.est-tog .t b{font-size:.84rem;font-weight:600}
.est-tog .t span{font-size:.68rem;color:var(--est-muted)}
.est-sw{width:40px;height:22px;border-radius:11px;background:#d1d5db;position:relative;flex-shrink:0;transition:background .15s}
.est-sw::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.3);transition:left .15s}
.est-tog.on .est-sw{background:var(--est-green)}
.est-tog.on .est-sw::after{left:20px}
/* location */
.est-map{height:190px;border-radius:10px;overflow:hidden;border:1px solid var(--est-line);position:relative;z-index:0;background:#eef}
.est-map .leaflet-control-attribution{font-size:.6rem}
.est-loc-actions{display:flex;gap:.4rem;margin:.5rem 0;flex-wrap:wrap}
.est-terrain{font-size:.78rem;color:#374151;line-height:1.45}
.est-terrain b{color:var(--est-ink)}
.est-terrain .src{color:var(--est-muted);font-size:.68rem}
.est-seg{display:flex;gap:2px;background:#eef0f2;border-radius:9px;padding:2px;margin-top:.5rem;flex-wrap:wrap}
.est-seg button{flex:1 1 auto;border:0;background:transparent;border-radius:7px;padding:.38rem .3rem;font-size:.7rem;cursor:pointer;color:#374151;min-height:32px;white-space:nowrap}
.est-seg button.on{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.15);font-weight:600;color:var(--est-ink)}
.est-seg button.auto.on{color:var(--est-blue)}
/* results */
.est-hero{background:linear-gradient(135deg,#e8f5e9,#f1f8e9 60%,#fff);border:1px solid #c8e6c9;border-radius:var(--est-r);padding:1rem 1.1rem;position:relative}
.est-hero .lbl{font-size:.78rem;color:#33691e;font-weight:500}
.est-hero .big{font-size:2rem;font-weight:800;color:var(--est-green);letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}
.est-hero .big small{font-size:.9rem;font-weight:500;color:#558b2f}
.est-hero .perha{font-size:.78rem;color:#4b5563;margin-top:.15rem}
.est-range{margin-top:.8rem}
.est-range .bar{position:relative;height:10px;background:#dfe8dc;border-radius:5px}
.est-range .band{position:absolute;top:0;bottom:0;background:#81c784;border-radius:5px}
.est-range .med{position:absolute;top:-4px;width:4px;height:18px;background:var(--est-green);border-radius:2px;transform:translateX(-2px);box-shadow:0 0 0 2px #fff}
.est-range .lbls{display:flex;justify-content:space-between;font-size:.68rem;color:#4b5563;margin-top:.3rem;font-variant-numeric:tabular-nums}
.est-year{font-size:.7rem;color:var(--est-muted);margin-top:.6rem;display:flex;gap:.35rem;align-items:flex-start}
.est-loading{position:absolute;right:.9rem;top:.9rem;width:16px;height:16px;border:2px solid #c8e6c9;border-top-color:var(--est-green);border-radius:50%;animation:spin .8s linear infinite;display:none}
.est-root.busy .est-loading{display:block}
/* rows table */
.est-row{display:grid;grid-template-columns:auto 1fr auto;gap:.6rem;align-items:center;padding:.55rem .35rem;border-bottom:1px solid #f1f3f5;cursor:pointer;border-radius:6px}
.est-row:hover{background:#fafafa}
.est-row:last-child{border-bottom:0}
.est-badge{font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.15rem .4rem;border-radius:5px;white-space:nowrap}
.est-badge.exact{background:var(--est-green-soft);color:var(--est-green);border:1px solid #a5d6a7}
.est-badge.est{background:#fff8e1;color:#b26a00;border:1px dashed #ffcc80}
.est-row .n{min-width:0}
.est-row .n b{font-weight:600;font-size:.84rem;display:block}
.est-row .n span{font-size:.7rem;color:var(--est-muted);display:block;margin-top:.1rem}
.est-row .n code{font-size:.66rem;background:#f1f3f5;padding:0 .3rem;border-radius:3px;color:var(--est-blue);margin-left:.2rem}
.est-row .a{font-weight:700;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.est-row .a small{display:block;font-weight:400;font-size:.66rem;color:var(--est-muted)}
.est-row.dim .a{color:var(--est-muted)}
.est-sum{display:flex;justify-content:space-between;font-size:.78rem;color:#374151;padding:.5rem .35rem 0;border-top:2px solid var(--est-line);margin-top:.3rem;gap:.5rem;flex-wrap:wrap}
.est-sum b{font-variant-numeric:tabular-nums}
.est-share{height:4px;background:#f1f3f5;border-radius:2px;margin-top:.25rem;width:90px;overflow:hidden}
.est-share i{display:block;height:100%;background:#ffb74d}
.est-detail{display:none;grid-column:1/-1;font-size:.74rem;color:#374151;background:#fafafa;border-radius:8px;padding:.5rem .7rem;line-height:1.5}
.est-row.open + .est-detail{display:block}
/* comparables */
.est-comp-head{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;font-size:.72rem;color:#374151;margin-bottom:.5rem}
.est-tag{background:#f1f3f5;border-radius:6px;padding:.15rem .45rem;font-size:.68rem;color:#374151;white-space:nowrap}
.est-tag.ok{background:var(--est-green-soft);color:var(--est-green)}
.est-tag.lvl-bezirk{background:var(--est-blue-soft);color:var(--est-blue)}
.est-tag.lvl-bundesland{background:#fff3e0;color:#b26a00}
.est-tag.lvl-national{background:#fce4ec;color:#ad1457}
.est-farm{display:block;width:100%;text-align:left;background:#fafafa;border:1px solid #eef0f2;border-radius:10px;padding:.55rem .7rem;margin-bottom:.4rem;cursor:pointer;font:inherit;color:inherit}
.est-farm:hover{background:#fff;border-color:#cfd8dc}
.est-farm .top{display:flex;justify-content:space-between;gap:.5rem;align-items:baseline}
.est-farm .top b{font-weight:600;font-size:.82rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-.01em}
.est-farm .top .amt{font-weight:700;color:var(--est-green);font-variant-numeric:tabular-nums;white-space:nowrap}
.est-farm .top .amt small{color:#9e9e9e;font-weight:400;font-size:.68rem}
.est-farm .chips{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.3rem}
.est-farm .chips span{font-size:.64rem;padding:.1rem .35rem;border-radius:4px;background:#eef0f2;color:#374151}
.est-farm .chips span.c{background:var(--est-blue-soft);color:var(--est-blue);cursor:pointer}
.est-farm .trend-row{margin-top:.25rem}
.est-empty{font-size:.76rem;color:var(--est-muted);padding:.4rem 0}
/* alm / forest / notes */
.est-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.5rem;margin:.4rem 0}
.est-kv div{background:#fafafa;border-radius:8px;padding:.45rem .6rem}
.est-kv b{display:block;font-size:.95rem;font-variant-numeric:tabular-nums}
.est-kv span{font-size:.66rem;color:var(--est-muted)}
.est-note{font-size:.74rem;color:#4b5563;line-height:1.5}
.est-warn{font-size:.74rem;color:#b26a00;background:#fff8e1;border:1px solid #ffe0b2;border-radius:8px;padding:.45rem .7rem;margin-top:.5rem}
.est-root details{font-size:.76rem;color:#374151}
.est-root details summary{cursor:pointer;font-weight:600;color:var(--est-blue);font-size:.78rem}
.est-root details p{margin:.4rem 0;line-height:1.5}
.est-inputbar{display:none}
.est-help{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#e5e7eb;color:#374151;font-size:.65rem;font-weight:700;cursor:help;margin-left:.25rem;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}
/* mobile */
@media (max-width:820px){
  .calc-modal.active{align-items:flex-end}
  .est-root{width:100%;max-height:100dvh;height:100dvh;border-radius:0}
  .est-body{grid-template-columns:1fr;padding:.75rem;padding-bottom:5.5rem}
  .est-hero .big{font-size:1.7rem}
  .est-inputbar{display:flex;position:sticky;bottom:0;background:#fff;border-top:1px solid var(--est-line);padding:.6rem .9rem;justify-content:space-between;align-items:center;gap:.6rem;box-shadow:0 -6px 20px rgba(0,0,0,.08);z-index:6}
  .est-inputbar .v{font-weight:800;color:var(--est-green);font-size:1.15rem;font-variant-numeric:tabular-nums;line-height:1.1}
  .est-inputbar .r{font-size:.68rem;color:var(--est-muted)}
  .est-head h3{font-size:.95rem}
  .est-ibtn span.lbl{display:none}
  .est-step input{width:56px}
}
