.planner-page { background: #f4f7f3; color: #193c31; font-family: system-ui, sans-serif; }
.planner-page .planner-header { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; justify-content: space-between; padding: .8rem 5vw; background: white; border-bottom: 1px solid #dce5dc; }
.planner-page .planner-header .context-feedback { margin: 0; }
.planner-page .planner-header .feedback-open { font-size: .8rem; }
.planner-page .planner-header a { color: #16664c; font-weight: 700; text-decoration: none; }
.planner-page .planner-header a:hover { text-decoration: underline; text-underline-offset: .2em; }
.planner-page .planner-skip-link { position: fixed; top: .5rem; left: .5rem; padding: .75rem 1rem; color: #fff; background: #16664c; border-radius: .5rem; z-index: 2000; transform: translateY(-180%); }
.planner-page .planner-skip-link:focus { transform: translateY(0); }
.planner-page main { max-width: 1600px; padding: 2rem 5vw; margin: auto; }
.planner-page .planner-intro { max-width: 54rem; color: #52685b; line-height: 1.6; }
.planner-page h1 { font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 650; letter-spacing: -.035em; }
.planner-page h2 { font-size: 1.15rem; font-weight: 700; margin-bottom: 1rem; }
.planner-page h3 { font-size: 1rem; font-weight: 700; margin: 1rem 0 .5rem; }
.planner-page .planner-eyebrow { color: #16664c; font-weight: 750; letter-spacing: .12em; font-size: .7rem; }
.planner-page .planner-steps { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.5rem 0; }
.planner-page .planner-steps button { background: #fff; border: 1px solid #cbd9c9; color: #425f50; min-height: 44px; padding: .75rem 1rem; border-radius: .65rem; font-size: .875rem; text-align: left; }
.planner-page .planner-steps button:hover { border-color: #16664c; background: #edf4eb; }
.planner-page .planner-steps button[aria-current] { background: #16664c; border-color: #16664c; color: white; }
.planner-page .planner-step-progress { color: #52685b; font-size: .875rem; margin: -.75rem 0 1.25rem; }
.planner-page .planner-step-progress:empty { display: none; }
.planner-page .project-summary { background: #f3f8ee; border: 1px solid #d5e3cd; border-radius: .65rem; padding: 1rem; margin: 1rem 0; font-size: .9rem; overflow-wrap: anywhere; }
.planner-page .project-summary:empty { display: none; }
.planner-page .project-summary dl { margin: 0; }
.planner-page .project-summary dt { margin-top: .6rem; font-weight: 650; }
.planner-page .project-summary dt:first-child { margin-top: 0; }
.planner-page .project-summary dd { margin: .15rem 0 0; color: #52685b; }
.planner-page .planner-saved-next { border-top: 1px solid #d9e3d7; padding-top: .25rem; }
.planner-page .planner-saved-next:has([data-layout-link][hidden]) { display: none; }
.planner-page .planner-grid { display: grid; grid-template-columns: minmax(360px, 44%) minmax(0, 1fr); align-items: start; border: 1px solid #d9e3d7; border-radius: 1rem; background: white; }
.planner-page .planner-controls { padding: 1.5rem; min-width: 0; }
.planner-page .planner-step-intro { color: #52685b; font-size: .925rem; line-height: 1.55; margin-top: -.35rem; margin-bottom: 1.25rem; }
.planner-page .planner-search-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; }
.planner-page .planner-place-search .btn-success { min-width: 7rem; }
.planner-page .planner-map-panel { position: sticky; top: 1rem; background: #fafcf8; border-left: 1px solid #d9e3d7; border-radius: 0 1rem 1rem 0; overflow: hidden; min-width: 0; }
.planner-page .planner-map-heading { padding: 1.1rem 1rem 0; }
.planner-page .planner-map-heading h2 { margin-bottom: .25rem; font-size: 1rem; }
.planner-page .planner-map-heading p { margin: 0; color: #52685b; font-size: .8rem; }
.planner-page .planner-map { height: clamp(24rem, 52vh, 38rem); background: #e3ebe1; }
.planner-page .planner-map-jump, .planner-page .planner-input-jump { display: none; color: #16664c; }
.planner-page #planner-inputs, .planner-page #planner-site-map { scroll-margin-top: 1rem; }
.planner-page .planner-ortho { display: block; padding: 1rem 1rem .25rem; font-size: .85rem; }
.planner-page .planner-ortho input { width: 1.1rem; height: 1.1rem; vertical-align: -.15rem; margin-right: .3rem; accent-color: #16664c; }
.planner-page .planner-navigation { display: flex; justify-content: space-between; margin-top: 1.5rem; gap: 1rem; }
.planner-page .planner-navigation .btn { min-width: 7rem; }
.planner-page .planner-status { margin-top: .75rem; font-size: .85rem; color: #83521a; }
.planner-page .planner-status:empty { display: none; }
.planner-page .planner-parcels, .planner-page .planner-results { display: grid; gap: .4rem; margin: 1rem 0; max-height: 320px; overflow: auto; }
.planner-page .planner-results:empty, .planner-page .planner-parcels:empty { margin: 0; }
.planner-page .planner-results .btn { text-align: left; white-space: normal; }
.planner-page .cadastre-panel { border: 1px solid #dce5d9; border-radius: .6rem; background: #f7faf5; padding: 1rem; margin: 1rem 0; overflow-wrap: anywhere; }
.planner-page .cadastre-panel h3 { margin-top: 1rem; }
.planner-page .cadastre-panel > summary { margin: 0; color: #315744; font-weight: 600; }
.planner-page .cadastre-panel .planner-results:empty { margin: .5rem 0; }
.planner-page .cadastre-rejected { max-height: 200px; overflow: auto; color: #83521a; }
.planner-page [data-cadastre-status][aria-busy="true"] { border-left: 3px solid #16664c; padding-left: .6rem; }
.planner-page [data-building-load-status][aria-busy="true"] { border-left: 3px solid #16664c; padding-left: .6rem; }
.planner-page .building-load-rejected { max-height: 200px; overflow: auto; overflow-wrap: anywhere; color: #83521a; }
.planner-page .parcel-choice { padding: .8rem; min-height: 44px; border: 1px solid #dce5d9; border-radius: .5rem; font-size: .875rem; display: flex; align-items: start; gap: .65rem; cursor: pointer; }
.planner-page .parcel-choice-focused:not(:has(input:checked)) { background: #f1f6fc; border-color: #326aac; box-shadow: inset 3px 0 #326aac; }
.planner-page .parcel-choice:has(input:checked) { background: #eef6e9; border-color: #3d7a50; }
.planner-page .parcel-choice input { margin-top: .2rem; width: 1.1rem; height: 1.1rem; flex-shrink: 0; accent-color: #16664c; }
.planner-page .building-card { margin-top: 1rem; padding: 1rem; border: 1px solid #dce5d9; border-radius: .6rem; }
.planner-page .gis-table-wrap { max-height: 340px; overflow: auto; margin-top: .75rem; font-size: .8rem; }
.planner-page .gis-table-wrap td, .planner-page .gis-table-wrap th { overflow-wrap: anywhere; vertical-align: middle; }
.planner-page .gis-table-wrap input { width: 1.1rem; height: 1.1rem; }
.planner-page .building-fields { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.planner-page .building-condition-editor { margin: 1rem 0; min-width: 0; }
.planner-page .building-condition-entry, .planner-page .building-renovation { min-width: 0; border: 1px solid #dce5d9; border-radius: .4rem; padding: .75rem; }
.planner-page .building-condition-entry legend, .planner-page .building-renovation legend { float: none; width: auto; margin-bottom: .5rem; font-size: 1rem; font-weight: 650; }
.planner-page .building-renovation { margin: .75rem 0; }
.planner-page .building-condition-editor .form-label, .planner-page .building-condition-editor .form-control, .planner-page .building-condition-editor .form-select { min-width: 0; max-width: 100%; }
.planner-page .building-condition-editor textarea { resize: vertical; }
.planner-page .building-condition-copy { white-space: pre-wrap; overflow-wrap: anywhere; }
.planner-page .building-condition-summary { padding-top: .5rem; }
.planner-page .planner-months { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: .5rem; margin-top: .75rem; }
.planner-page .form-label { font-size: .875rem; color: #264d3a; }
.planner-page .form-control, .planner-page .form-select { min-height: 44px; font-size: .925rem; }
.planner-page .btn { min-height: 44px; font-size: .875rem; }
.planner-page .issue-error { color: #9c2c22; }
.planner-page .issue-warning { color: #805b16; }
.planner-page summary { cursor: pointer; font-size: .9rem; margin: .5rem 0; padding: .35rem 0; }
.planner-page :focus-visible { outline: 3px solid #bc7a12; outline-offset: 2px; }
@media(max-width: 900px) {
  .planner-page main { padding: 1.5rem 4vw; }
  .planner-page .planner-grid { grid-template-columns: minmax(0, 1fr); }
  .planner-page .planner-map-panel { position: static; border-left: 0; border-top: 1px solid #d9e3d7; border-radius: 0 0 1rem 1rem; }
  .planner-page .planner-map { height: 360px; }
  .planner-page .planner-map-jump { display: inline-flex; align-items: center; min-height: 44px; }
  .planner-page .planner-input-jump { display: block; padding: 0 1rem 1rem; }
  .planner-page .planner-steps { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media(max-width: 480px) {
  .planner-page .planner-header { padding: 1rem 4vw; gap: .8rem 1rem; font-size: .85rem; }
  .planner-page .planner-header a:first-child { width: 100%; font-size: 1.1rem; }
  .planner-page .building-fields { grid-template-columns: minmax(0, 1fr); }
  .planner-page .planner-controls { padding: 1.1rem; }
  .planner-page .planner-months { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .planner-page .planner-steps { gap: .5rem; }
  .planner-page .planner-steps button { padding: .65rem .75rem; font-size: .8rem; }
  .planner-page .cadastre-panel { padding: .85rem; }
  .planner-page .form-control, .planner-page .form-select { font-size: 1rem; }
}
