.planner-section { display:grid; grid-template-columns:1fr 1fr; gap:55px; align-items:center; }
.planner-section p { color:var(--muted); font-size:14px; line-height:1.9; }
.planner-teaser { padding:30px; border:1px solid var(--line); background:linear-gradient(130deg,#36393e,#1e2124); }
.planner-teaser .planner-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:30px; }
.planner-steps strong { color:var(--lime); font-size:27px; font-weight:500; display:block; margin-bottom:10px; }
.planner-steps span { color:var(--muted); font-size:11px; line-height:1.7; }
.planner-teaser .button { width:100%; }
.perimeter-dialog { width:min(1420px,calc(100vw - 36px)); max-width:none; height:min(920px,calc(100dvh - 36px)); max-height:calc(100dvh - 36px); padding:0; border:1px solid #4a4c51; background:var(--bg); color:var(--text); overflow:hidden; }
.perimeter-dialog::backdrop { background:#1e2124dc; backdrop-filter:blur(7px); }
.planner-shell { height:100%; display:flex; flex-direction:column; }
.planner-header { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:20px 25px; border-bottom:1px solid var(--line); }
.planner-header h2 { font-size:22px; margin:5px 0 0; letter-spacing:-.5px; font-weight:550; }
.planner-close { color:var(--text); background:transparent; border:1px solid var(--line); min-width:42px; min-height:42px; font-size:24px; cursor:pointer; }
.planner-close:hover { border-color:var(--lime); }
.planner-content { display:grid; grid-template-columns:minmax(0,1fr) 370px; flex:1; min-height:0; }
.planner-map-column { display:flex; flex-direction:column; min-height:0; min-width:0; }
.planner-search { padding:14px 18px; border-bottom:1px solid var(--line); display:flex; flex-wrap:wrap; gap:10px; align-items:end; margin:0; background:var(--panel); }
.planner-search .field { flex:1; min-width:170px; }
.planner-search .button { padding:13px 18px; }
.place-results { list-style:none; padding:0; margin:0; width:100%; max-height:145px; overflow:auto; }
.place-results:empty { display:none; }
.place-results button { width:100%; text-align:left; padding:11px 12px; background:#2e3136; border:1px solid #424549; color:var(--text); font-size:12px; cursor:pointer; line-height:1.5; }
.place-results button:hover { border-color:var(--lime); }
.search-feedback { font-size:11px; line-height:1.7; width:100%; color:var(--muted); }
.planner-toolbar { display:flex; align-items:center; gap:9px; padding:12px 18px; flex-wrap:wrap; border-bottom:1px solid var(--line); }
.planner-toolbar button { padding:9px 13px; background:transparent; border:1px solid #4a4c51; color:var(--text); font-size:11px; cursor:pointer; }
.planner-toolbar button:hover:not(:disabled) { border-color:var(--lime); }
.planner-toolbar button:disabled { opacity:.4; cursor:default; }
.planner-toolbar .draw-primary { color:var(--bg); background:var(--lime); border-color:var(--lime); }
.planner-map { flex:1; min-height:340px; background:#c7d3c0; color:#2e3136; color-scheme:light; }
.planner-map input[type="radio"], .planner-map input[type="checkbox"] { width:auto; padding:0; }
.planner-map .leaflet-tile-pane { filter:none!important; }
.planner-map .leaflet-control-layers { color:#2e3136; background:white; }
.planner-map .leaflet-control-attribution { background:#fffffff0; color:#222; font-size:10px; line-height:1.5; max-width:90%; }
.planner-map .leaflet-control-attribution a { color:#56623f; text-decoration:underline; }
.planner-map .leaflet-draw-tooltip { background:#fff; color:#2e3136; border:1px solid #4a4c51; }
.planner-map .leaflet-draw-tooltip-subtext { color:#4a4c51; }
.planner-map-note { padding:12px 18px; background:var(--panel); border-top:1px solid var(--line); font-size:10px; color:var(--muted); line-height:1.7; }
.planner-sidebar { overflow:auto; border-left:1px solid var(--line); padding:24px; }
.planner-sidebar h3 { font-size:19px; font-weight:550; margin:0 0 17px; }
.planner-sidebar .field { margin-bottom:17px; }
.planner-sidebar .field label { line-height:1.6; }
.planner-measures { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:20px 0; }
.planner-measures div { padding:13px; background:var(--panel); border:1px solid var(--line); }
.planner-measures small { display:block; font-size:9px; color:var(--muted); line-height:1.5; }
.planner-measures strong { display:block; font-size:18px; color:var(--lime); font-weight:500; margin-top:7px; }
.planner-measures span { font-size:9px; color:var(--muted); display:block; margin-top:6px; line-height:1.5; }
.rotation-check { display:flex; align-items:flex-start; gap:10px; font-size:12px; line-height:1.8; cursor:pointer; margin:6px 0 20px; }
.rotation-check input { width:16px; height:16px; flex-shrink:0; accent-color:var(--lime); margin:4px 0; }
.planner-price { border:1px solid #54643d; padding:18px; background:#d4f47706; }
.planner-price small { color:var(--muted); font-size:10px; }
.planner-price strong { display:block; color:var(--lime); font-size:31px; letter-spacing:-1px; margin:10px 0; font-weight:550; }
.planner-price .price-line { color:var(--muted); font-size:11px; line-height:1.9; }
.planner-status { font-size:12px; line-height:1.8; margin:15px 0; color:var(--muted); }
.planner-sidebar .button { width:100%; margin-top:15px; }
.planner-sidebar .button:disabled { background:#424549; border-color:#425153; color:#bfc1c5; transform:none; cursor:default; }
.planner-assumptions { font-size:10px; color:var(--muted); line-height:1.9; margin-top:18px; }
.planner-assumptions summary { cursor:pointer; color:var(--lime); padding:8px 0; }
.planner-assumptions p { margin:8px 0; }
@media(max-width:1000px) { .planner-content { grid-template-columns:minmax(0,1fr) 320px; } .planner-sidebar { padding:19px; } }
@media(max-width:750px) {
  .planner-section { grid-template-columns:1fr; gap:25px; }
  .planner-teaser { padding:23px; }
  .perimeter-dialog { width:100vw; height:100dvh; max-height:100dvh; border:0; margin:0; }
  .planner-header { padding:15px 18px; flex-shrink:0; }
  .planner-header h2 { font-size:18px; }
  .planner-content { display:block; overflow:auto; }
  .planner-map-column { min-height:630px; }
  .planner-map { min-height:360px; height:360px; flex:none; }
  .planner-sidebar { border-left:0; border-top:1px solid var(--line); overflow:visible; }
  .planner-search { padding:13px; }
  .planner-toolbar { padding:12px 13px; }
  .planner-header .eyebrow { font-size:8px; }
}
