[hidden] { display:none !important; }
:root { --fg:#1d2420; --mut:#5d6a62; --bg:#f6f5f0; --ac:#c8641e; --line:#dcdcd2; }
* { box-sizing: border-box; }
html, body { margin:0; height:100%; font:15px/1.4 system-ui,-apple-system,"Segoe UI",sans-serif; color:var(--fg); }
#map { position:fixed; inset:0; background:#e8e6df; }
#sheet {
  position:fixed; left:0; right:0; bottom:0; z-index:1000; max-height:62vh; overflow:auto;
  background:var(--bg); border-top-left-radius:16px; border-top-right-radius:16px;
  box-shadow:0 -4px 18px rgba(0,0,0,.18); padding:6px 14px calc(10px + env(safe-area-inset-bottom));
}
#sheet.collapsed { max-height:150px; overflow:hidden; }
.grip { width:42px; height:5px; border-radius:3px; background:#c8c8be; margin:2px auto 8px; cursor:pointer; }
.bar { display:flex; gap:8px; align-items:center; margin-bottom:8px; }
input[type=date], select { font:inherit; padding:7px 8px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--fg); }
input[type=date] { flex:1; min-width:0; }
input[type=range] { flex:1; accent-color:var(--ac); }
button { font:inherit; padding:7px 12px; border-radius:8px; border:1px solid var(--line); background:#fff; color:var(--fg); cursor:pointer; white-space:nowrap; }
button.pri { background:var(--ac); color:#fff; border-color:var(--ac); font-weight:600; flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; }
select { flex:none; }
button:disabled { opacity:.5; }
#play { width:42px; padding:7px 0; }
.tnum { font-variant-numeric:tabular-nums; min-width:3.2em; text-align:right; font-weight:600; }
.mut { color:var(--mut); } .small { font-size:.8rem; }
.big { font-size:1.35rem; font-weight:700; margin:.1rem 0; }
#point { border-top:1px solid var(--line); padding-top:8px; margin-top:4px; }
#profile { position:fixed; z-index:1001; left:8px; right:8px; top:calc(8px + env(safe-area-inset-top));
  max-width:720px; margin:0 auto; background:rgba(255,255,255,.93); border:1px solid var(--line); border-radius:12px;
  box-shadow:0 2px 10px rgba(0,0,0,.15); padding:6px 8px 4px; }
.phead { display:flex; align-items:center; gap:8px; font-size:.85rem; font-weight:600; }
.phead span { flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#pclose { border:0; background:none; font-size:1.3rem; line-height:1; padding:0 4px; }
#chart { width:100%; height:auto; display:block; max-height:28vh; }
.plegend { display:flex; align-items:center; gap:5px; color:var(--mut); flex-wrap:wrap; }
.plegend .sw { width:16px; height:0; border-top:2px solid; margin-left:6px; }
.sw-day { border-color:#d9822b !important; } .sw-sum { border-color:#c9a227 !important; border-top-style:dashed !important; }
.sw-win { border-color:#5a7fb0 !important; border-top-style:dashed !important; }
button[aria-pressed="true"] { background:var(--fg); color:#fff; border-color:var(--fg); }
body.has-profile .maplibregl-ctrl-top-right { top:calc(var(--ph, 0px) + 16px); }
#legend { display:flex; align-items:center; gap:6px; font-size:.8rem; color:var(--mut); margin-bottom:6px; }
#legend .ramp { flex:1; height:10px; border-radius:5px; }
.foot { margin-top:8px; }
.check { display:flex; align-items:center; gap:8px; margin:0 0 8px; }
.check input { width:20px; height:20px; accent-color:var(--ac); margin:0; }
#canopy { margin-top:2px; }
.seg { display:flex; border:1px solid var(--line); border-radius:8px; overflow:hidden; flex:none; }
.seg button { border:0; border-radius:0; padding:7px 10px; background:#fff; }
.seg button[aria-checked="true"] { background:var(--fg); color:#fff; }
.maplibregl-ctrl-top-right { top:env(safe-area-inset-top); }
.pt-marker { width:14px; height:14px; border-radius:50%; background:#d4442e; border:2px solid #fff; box-shadow:0 1px 4px rgba(0,0,0,.4); }
#region-info { margin:-4px 0 8px; }
.seg button { padding:7px 9px; }
.plegend .sw-ter, .plegend .sw-tree, .plegend .sw-bld { height:10px; border-top:0; border-radius:2px; }
.sw-ter { background:#9b9d96; } .sw-tree { background:#5f9a4e; } .sw-bld { background:#c8473a; }
#lg-obj { display:flex; gap:5px; align-items:center; flex-basis:100%; }

/* Ortssuche */
#sbtn { position:fixed; z-index:1000; left:10px; top:calc(10px + env(safe-area-inset-top)); width:40px; height:40px; padding:0;
  display:flex; align-items:center; justify-content:center; border-radius:8px; background:#fff; border:0; box-shadow:0 0 0 2px rgba(0,0,0,.1); }
body.has-profile #sbtn { top:calc(var(--ph, 0px) + 16px); }
#search { position:fixed; z-index:1003; left:8px; right:8px; top:calc(8px + env(safe-area-inset-top)); max-width:720px; margin:0 auto;
  background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 2px 12px rgba(0,0,0,.2); padding:6px; }
.srow { display:flex; gap:6px; }
#sq { flex:1; min-width:0; font-size:16px; padding:9px 10px; border:1px solid var(--line); border-radius:8px; }
#sclose { border:0; background:none; font-size:1.5rem; line-height:1; padding:0 8px; }
#sres { list-style:none; margin:4px 0 0; padding:0; max-height:50vh; overflow-y:auto; }
#sres li { padding:8px 8px; border-radius:8px; cursor:pointer; }
#sres li:hover, #sres li.sel { background:#f0efe9; }
#sres .sn { font-weight:600; } #sres .sd { font-size:.8rem; color:var(--mut); }
#sinfo:empty { display:none; } #sinfo { padding:4px 8px; }
#preset { border:0; background:none; font-size:1.15rem; line-height:1; padding:0 6px; }
.lang button { border:0; background:none; padding:0 3px; font-size:inherit; color:var(--mut); }
.lang button[aria-checked="true"] { color:var(--fg); font-weight:700; text-decoration:underline; }
#toast { position:fixed; z-index:1002; left:50%; transform:translateX(-50%); top:calc(60px + env(safe-area-inset-top)); max-width:min(560px, 86vw);
  background:rgba(30,36,32,.88); color:#fff; font-size:.85rem; padding:8px 12px; border-radius:10px; box-shadow:0 2px 10px rgba(0,0,0,.25); }
.orbit-ctrl button svg { display:block; margin:auto; }
