.planner { padding-block: clamp(36px,6vw,82px); }
.planner-intro h1 { font: 400 clamp(42px,6vw,78px)/1.04 var(--serif); margin: 16px 0; }
.planner-intro > p:last-child { max-width: 60ch; }
.planner-desk { display: grid; grid-template-columns: minmax(230px,.72fr) minmax(0,1.8fr); align-items: start; gap: clamp(14px,3vw,40px); margin-top: 32px; }
.planner-desk h2 { font: 400 clamp(24px,3vw,32px)/1.1 var(--serif); margin: 0; }
.planner-form,.plan-sheet { border:1px solid var(--line); padding: clamp(16px,2.5vw,32px); background: #fffdf7; min-width:0; }
.planner-form { background:var(--deep); color:white; }
.planner-form h2,.planner-form p { color:inherit; }
.planner-form p { font-size:14px; }
.planner-form label { display:grid; gap:5px; margin-bottom:14px; font-size:13px; }
.planner-form input,.planner-form select { width:100%; min-width:0; border:0; border-radius:2px; padding:11px; font:inherit; color:var(--ink); background:#fcfbf6; }
.measurements { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.planner-form .button { color:var(--deep); background:#e1cba0; margin:6px 0 0; }
.plan-tools,.plan-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; }
.plan-tools [role=group] { display:flex; flex-wrap:wrap; gap:8px; }
.plan-tools button { min-height:44px; padding:9px 13px; background:transparent; border:1px solid var(--line); color:var(--ink); cursor:pointer; }
.plan-tools button[aria-pressed=true] { background:var(--green); color:white; }
.orientation-strip { display:flex; gap:8px; align-items:center; border-top:1px solid var(--line); margin-top:16px; padding:10px 0; font-size:13px; }
.compass { display:inline-grid; place-items:center; border:1px solid var(--green); color:var(--green); border-radius:50%; width:28px; height:28px; font:600 19px/1 var(--sans); }
#street-label { margin-left:auto; text-align:right; }
#copy-concept { border:0; background:transparent; cursor:pointer; font:inherit; color:var(--green); text-decoration:underline; }
.copy-feedback:not(:empty) { margin-top:10px; font-size:13px; }
.copy-feedback input { display:block; width:100%; }
#plan-drawing { background-color:#f1f0e7; background-image:radial-gradient(#cbccbd 1px,transparent 1px); background-size:14px 14px; }
#plan-drawing { border:1px solid #dce0d3; border-radius:3px; }
#plan-drawing svg { display:block; width:100%; height:clamp(320px,40vw,510px); }
.design-controls { margin-top:20px; }
.palette-picker { padding:0; margin:0 0 16px; border:0; min-width:0; }
.palette-picker legend { padding:0 0 9px; font-weight:600; font-size:14px; }
.palette-options { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.palette-options button { display:grid; justify-items:start; align-content:start; gap:8px; border:1px solid var(--line); padding:10px; background:#faf8f1; color:var(--ink); font:13px/1.3 var(--sans); text-align:left; cursor:pointer; }
.palette-options button[aria-pressed=true] { border:2px solid var(--green); padding:9px; background:#edf1e7; }
.palette-options span { width:38px; height:30px; border-radius:4px; border:1px solid #0002; background:linear-gradient(110deg,var(--swatch) 65%,var(--accent) 65%); }
.finish-controls { display:grid; grid-template-columns:1fr 1fr 1.5fr; gap:12px; }
.finish-controls label { display:grid; gap:6px; font-size:13px; }
.finish-controls input,.finish-controls select { width:100%; min-width:0; height:44px; padding:4px; border:1px solid var(--line); background:#fffdf7; color:var(--ink); font:14px var(--sans); cursor:pointer; }
.design-controls .furniture-toggle { display:flex; gap:10px; align-items:center; min-height:44px; font-size:14px; cursor:pointer; margin-top:10px; }
.furniture-toggle input { width:20px; height:20px; accent-color:var(--green); }
.finish-summary { font-size:13px; color:var(--muted); }
.planner :is(button,input,select,a):focus-visible { outline:3px solid #b48739; outline-offset:3px; }
@media(max-width:480px) {
  .palette-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .finish-controls { grid-template-columns:1fr 1fr; }
  .finish-controls label:last-child { grid-column:1/-1; }
}
.plan-sheet .plan-summary { color:var(--green); font-weight:600; margin:14px 0; }
.room-key { display:grid; grid-template-columns:repeat(auto-fit,minmax(124px,1fr)); gap:10px; list-style:none; margin:0; padding:0; }
.room-key li { display:flex; gap:8px; align-items:center; font-size:13px; }
.room-key b { display:grid; place-items:center; flex:none; background:var(--green); color:white; width:22px; height:22px; border-radius:50%; }
.room-key small { display:block; color:var(--muted); }
.plan-sheet .plan-note { font-size:12px; margin:18px 0; }
@media(max-width:760px){ .planner-desk { grid-template-columns:minmax(0,1fr); } }
@media print {
  @page { margin:15mm; }
  body:has(.planner) > :not(main),.planner-intro > :not(.eyebrow),.planner-form,.plan-tools [role=group],.plan-actions {display:none!important;}
  body:has(.planner),.planner,.plan-sheet { background:white; color:black; }
  .planner,.planner-desk,.plan-sheet { width:100%; max-width:none; margin:0; padding:0; display:block; border:0; }
  .plan-sheet { break-inside:avoid; }
  .copy-feedback { display:none; }
  .design-controls { display:none; }
  #plan-drawing { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  #plan-drawing svg { height:105mm; }
  .room-key b { color:black; border:1px solid; }
  .planner-intro .eyebrow { margin:0 0 5mm; }
}

.plan-downloads { margin-top:28px; padding-top:24px; border-top:1px solid var(--line); }
.plan-downloads p { font-size:14px; }
.download-options { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.download-options button { padding:16px; text-align:left; background:#eef0e5; border:1px solid var(--line); color:var(--green); font:600 14px var(--sans); cursor:pointer; }
.download-options button:hover { border-color:var(--green); }
.download-options small { display:block; font-weight:400; margin-top:6px; line-height:1.5; }
.plan-downloads .download-note { font-size:12px; color:var(--muted); }
#download-status:empty { display:none; }
@media(max-width:480px) { .download-options { grid-template-columns:1fr; } }
@media print { .plan-downloads { display:none; } }
