/* The room is the workspace: one physical boundary, with tools outside it. */
.planner-studio { --studio-blue: #245d9d; --studio-line: #d7e1e8; --room-height-limit: 540px; }
.planner-studio button { cursor: pointer; }
.planner-studio button:disabled { cursor: default; opacity: .42; }
.planner-studio button:focus-visible, .planner-studio input:focus-visible, .planner-studio select:focus-visible { outline: 3px solid #246cb5; outline-offset: 3px; }
.planner-studio .plan-field, .planner-studio .field-pair { min-width: 0; }
.planner-studio .field-pair { align-items: end; }
.planner-studio .plan-input { min-width: 0; }
.planner-studio .plan-input input { flex: 1 1 0%; min-width: 0; width: 0; }
.planner-studio .plan-input > span { flex: 0 0 auto; white-space: nowrap; padding-right: 10px; }
.planner-studio .plan-input:focus-within { outline: 3px solid #246cb5; outline-offset: 2px; border-color: #246cb5; }
.planner-studio .plan-input input:focus-visible { outline: none; }
.planner-studio .planner-bar { background: #f6f9fc; padding: 10px 22px; }
.planner-studio .planner-workspace { grid-template-columns: 280px minmax(0, 1fr); }
.planner-studio .planner-controls { display: block; padding: 18px 20px; background: #f8fafc; }
.planner-studio .control-title { margin-bottom: 12px; }
.planner-studio .control-title h3 { font-size: 15px; }
.planner-studio .plan-field { margin-bottom: 12px; font-size: 12px; color: #334b60; }
.planner-studio .plan-input input { min-height: 44px; padding: 9px 10px; font-size: 17px; font-weight: 650; }
.planner-studio .plan-input input:disabled { color: #7b8a96; }
.planner-studio .layout-picker { margin-bottom: 12px; }
.planner-studio .layout-choice-face { min-height: 77px; font-size: 11px; padding: 9px 5px; background: #fff; }
.planner-studio .layout-choice-custom .layout-choice-face { min-height: 45px; }
.planner-studio .layout-choice input:checked + .layout-choice-face { background: #e5eff9; }
.layout-sizing { padding-bottom: 10px; margin-bottom: 10px; border-bottom: 1px solid var(--studio-line); }
.planner-studio .input-note { color: #5c6b78; font-size: 11px; line-height: 1.7; margin: 9px 0 0; }
.size-presets { display: flex; flex-wrap: wrap; gap: 6px; }
.size-presets button { flex: 1; border: 1px solid #cddbe5; border-radius: 4px; background: #fff; color: #405b73; padding: 5px 7px; min-height: 34px; font-size: 11px; font-weight: 650; }
.size-presets button[aria-pressed=true] { color: #174b83; background: #e7f0f9; border-color: #84a4c5; }
.spacing-settings { display: grid; grid-template-columns: 1.25fr .75fr; gap: 12px; align-items: end; }
.spacing-label { font-size: 12px; font-weight: 700; color: #334b60; margin: 0 0 9px; }
.spacing-presets { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 5px; margin-bottom: 12px; }
.spacing-presets button { font-size: 10px; font-weight: 700; padding: 5px 3px; min-height: 43px; border: 1px solid #cedce7; background: #fff; color: #3f5e79; border-radius: 4px; }
.spacing-presets small { display: block; font-size: 10px; font-weight: 450; margin-top: 3px; }
.spacing-presets button[aria-pressed=true] { border-color: #759ac0; background: #e6f0fa; color: #164e86; }
.spacing-switch { position: relative; display: flex; align-items: center; gap: 8px; margin-top: 13px; font-size: 10px; font-weight: 700; color: #355874; cursor: pointer; min-height: 44px; }
.spacing-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.spacing-switch small { display: block; font-size: 9px; font-weight: 450; color: #687e90; margin-top: 4px; line-height: 1.6; }
.switch-track { display: block; width: 31px; height: 19px; border-radius: 20px; background: #a9b7c3; flex-shrink: 0; padding: 3px; }
.switch-track::after { content: ''; display: block; width: 13px; height: 13px; border-radius: 50%; background: #fff; }
.spacing-switch input:checked + .switch-track { background: #245d9d; }
.spacing-switch input:checked + .switch-track::after { transform: translateX(12px); }
.spacing-switch input:focus-visible + .switch-track { outline: 3px solid #246cb5; outline-offset: 3px; }
.spacing-settings .plan-field { margin: 0; }
.spacing-settings .plan-field > span:first-child { min-height: 36px; display: flex; align-items: end; }
.reserve-settings { border-top: 1px solid var(--studio-line); margin-top: 17px; padding-top: 12px; }
.reserve-toggle { display: flex; align-items: center; gap: 10px; text-align: left; border: 0; background: transparent; width: 100%; padding: 8px 0 13px; color: #245d9d; font-size: 12px; font-weight: 750; }
.reserve-toggle > span:first-child { font-size: 25px; font-weight: 400; }
.reserve-toggle small { display: block; font-size: 10px; font-weight: 500; color: #657484; margin-top: 5px; }
#reserved-area-controls { padding-top: 10px; }
.planner-studio .planner-chair-help-compact { display: flex; align-items: center; margin-top: 16px; background: #eef3f7; border: 0; }
.planner-studio .planner-chair-help-compact > img { width: 64px; height: 90px; object-fit: cover; mix-blend-mode: multiply; transform: scale(1.5); }
.planner-chair-help-compact > span { padding: 12px; }
.planner-chair-help-compact strong { font-size: 12px; }
.planner-chair-help-compact small { font-size: 10px; }
.planner-studio .planner-preview { display: block; padding: 16px 26px; background: #fff; }
.planner-studio .plan-preview-title { align-items: center; margin-bottom: 10px; }
.planner-studio .plan-preview-title h3 { font-size: 23px; font-weight: 650; letter-spacing: -.6px; line-height: 1.3; }
.plan-preview-title p { color: #5d7080; font-size: 12px; margin: 6px 0 0; }
.plan-expand { border: 0; background: #f0f5fa; color: #315d82; font-size: 11px; font-weight: 700; border-radius: 5px; min-height: 42px; padding: 9px 12px; white-space: nowrap; }
.plan-expand span { padding-left: 7px; font-size: 18px; vertical-align: middle; }
.planner-studio .plan-actions { display: grid; grid-template-columns: .85fr 1fr 1.12fr 1fr; gap: 8px; margin-bottom: 0; }
.planner-studio .plan-actions button { display: flex; gap: 9px; justify-content: center; align-items: center; font-size: 12px; line-height: 1.5; min-height: 52px; padding: 8px; border-color: #cedde8; color: #294b6a; text-align: left; }
.planner-studio .plan-actions button small { display: block; font-weight: 450; font-size: 10px; color: #687d8f; }
.planner-studio .plan-actions .lock-control { background: #f4f7fa; }
.lock-control > span { font-size: 23px; }
.planner-studio .plan-actions button[aria-expanded=true], .planner-studio .plan-actions button[aria-pressed=true] { background: #e9f2fb; border-color: #608bb6; color: #164c83; }
.add-table-symbol { flex: 0 0 19px; height: 19px; border: 1.5px solid #648caf; border-radius: 50%; background: #eaf1f7; }
.add-table-symbol-rectangle { height: 14px; border-radius: 2px; }
.add-table-symbol-cocktail { flex-basis: 13px; height: 13px; border: 1.5px dashed #648caf; margin-inline: 3px; }
.plan-add-panel { position: relative; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 42px 12px 17px; background: #edf5fd; border: 1px solid #b4cce2; border-radius: 6px; margin-top: 8px; }
.plan-add-panel > div:first-child { flex: 1; min-width: 150px; }
.plan-add-panel strong { font-size: 13px; display: block; }
.plan-add-panel small { font-size: 10px; display: block; margin-top: 5px; color: #536c82; }
.plan-add-panel .plan-field { width: 125px; margin: 0; }
.plan-add-panel .field-pair { width: 205px; gap: 9px; }
.plan-add-panel .field-pair .plan-field { width: auto; }
.plan-primary { border: 1px solid #245d9d; background: #245d9d; color: #fff; border-radius: 5px; padding: 10px 15px; font-size: 12px; font-weight: 700; min-height: 44px; }
.plan-close { border: 0; background: transparent; color: #52738f; font-size: 23px; min-width: 36px; min-height: 36px; padding: 0; position: absolute; right: 6px; top: 7px; }
.plan-editbar { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin: 6px 0 0; }
.plan-history, .plan-camera { display: flex; align-items: center; gap: 3px; }
.plan-editbar button { border: 0; background: transparent; color: #486780; font-weight: 650; font-size: 11px; line-height: 1; padding: 7px 9px; min-height: 36px; border-radius: 4px; }
.plan-editbar button:hover:not(:disabled), .selection-actions button:hover, .plan-expand:hover { background: #eaf1f7; }
.plan-history button:not(.reset-control) { font-size: 19px; }
.plan-history button span { font-size: 11px; margin-left: 2px; vertical-align: 2px; }
.plan-camera button[aria-label] { font-size: 21px; min-width: 33px; padding-inline: 7px; }
.plan-camera output { min-width: 38px; text-align: center; font-size: 11px; color: #577088; font-variant-numeric: tabular-nums; }
.plan-history .reset-control { border-left: 1px solid #dce6ec; border-radius: 0; margin-left: 4px; padding-left: 12px; }
.room-stage { position: relative; display: flex; justify-content: center; width: 100%; padding: 22px 1px 6px 23px; margin: 0; background: transparent; }
.planner-studio .plan-canvas { position: relative; width: min(100%, calc(var(--room-height-limit) * var(--room-ratio))); aspect-ratio: var(--room-ratio); height: auto; min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; display: block; }
.planner-studio .plan-canvas svg { display: block; width: 100%; height: 100%; overflow: hidden; touch-action: pan-y; }
.planner-studio .plan-canvas.is-unlocked svg, .planner-studio .plan-canvas.is-zoomed svg { touch-action: none; }
.planner-studio .plan-canvas.is-zoomed svg { cursor: grab; }
.room-dimension { color: #627b90; font-size: 10px; font-weight: 600; text-align: center; pointer-events: none; }
.room-dimension-horizontal { position: absolute; top: 4px; left: 23px; right: 0; }
.room-dimension-vertical { position: absolute; top: 50%; left: -20px; writing-mode: vertical-rl; transform: translateY(-50%) rotate(180deg); }
.planner-studio .plan-room { fill: #fcfdfd; stroke: #64879f; stroke-width: 4; vector-effect: non-scaling-stroke; }
.planner-studio .plan-chair { fill: #92b0c9; stroke: #426b8c; stroke-width: .07; }
.plan-chair-back { stroke: #426b8c; stroke-width: .09; fill: none; pointer-events: none; }
.planner-studio .plan-table { fill: #f2eee5; stroke: #a09478; stroke-width: .08; }
.planner-studio .plan-cocktail { fill: #e6eff6; stroke: #668ba9; stroke-dasharray: none; }
.planner-studio .plan-seat-label { font-size: .68px; font-weight: 750; fill: #3b566a; }
.plan-seat-detail { font-size: .46px; font-weight: 550; fill: #63717b; text-anchor: middle; pointer-events: none; }
.planner-studio .plan-hit { stroke-width: .14; }
.planner-studio .plan-furniture:hover .plan-hit { fill: #e8f2fc; stroke: #8faece; }
.planner-studio .is-selected .plan-hit, .planner-studio .plan-furniture:focus-visible .plan-hit { fill: #d5e9fb; stroke: #2268aa; stroke-dasharray: none; }
.planner-studio .is-selected .plan-table { stroke: #245d9d; fill: #e9f1f7; }
.planner-studio .has-spacing-warning .plan-hit { fill: #fff2e750; stroke: #bc7040; stroke-dasharray: .22 .14; }
.planner-studio .has-spacing-warning.is-selected .plan-hit { fill: #ffead966; stroke: #b65925; stroke-dasharray: none; }
.planner-studio .plan-workspace-hint .spacing-warning-hint { color: #965528; }
.warning-dot { width: 7px; height: 7px; border-radius: 50%; background: #b66734; flex-shrink: 0; }
.selected-spacing-warning { font-size: 11px; padding: 8px 10px; margin: 10px 0 0; color: #895322; background: #fff1df; border-radius: 4px; }
/* Native SVG focus outlines scale in room units. Use the actual zone boundary
   for pointer selection and keyboard focus, with a constant screen-pixel width. */
.planner-studio .plan-zone,
.planner-studio .plan-zone:focus { outline: none; }
.planner-studio .plan-zone rect { fill: #f6eddc; stroke: #b59968; stroke-width: 1.5; stroke-dasharray: 4 3; vector-effect: non-scaling-stroke; }
.planner-studio .plan-zone.is-selected rect,
.planner-studio .plan-zone:focus-visible rect { stroke: #245d9d; stroke-width: 2; stroke-dasharray: none; }
.planner-studio .plan-empty { font-size: .9px; }
.plan-rotation-bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px 16px; padding: 5px 12px; margin: 6px 0; border: 1px solid #b8d0e3; border-radius: 5px; background: #f3f8fc; color: #204d75; }
.plan-rotation-bar > div { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; }
.plan-rotation-bar strong { font-size: 13px; }
.plan-rotation-bar span { font-size: 12px; }
.plan-rotation-bar i { font-style: normal; padding-inline: 4px; }
.plan-rotation-bar button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 8px 14px; border: 1px solid #245d9d; border-radius: 4px; background: #fff; color: #245d9d; font-size: 13px; font-weight: 700; }
.plan-rotation-bar button:hover { background: #e5f0fa; }
.plan-rotation-bar button:focus-visible { outline: 3px solid #245d9d; outline-offset: 3px; }
@media print { .plan-rotation-bar { display: none !important; } }
.plan-workspace-hint { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin: 0 0 6px; }
.plan-workspace-hint p { display: flex; align-items: center; gap: 7px; font-size: 10px; line-height: 1.7; color: #5e7182; margin: 0; }
.locked-dot, .unlocked-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #90a3b3; flex-shrink: 0; }
.unlocked-dot { background: #31816d; }
.plan-workspace-hint button { background: transparent; border: 0; color: #245d9d; font-size: 10px; font-weight: 750; min-height: 36px; padding: 7px 0 7px 8px; white-space: nowrap; }
.plan-workspace-hint button[aria-pressed=true] { text-decoration: underline; text-underline-offset: 4px; }
.selection-panel { position: relative; border-block: 1px solid #dce6ed; padding: 8px 0; margin-bottom: 10px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.selection-panel > p { margin: 0; font-size: 11px; line-height: 1.75; color: #657786; }
.selection-panel > p strong { color: #39566f; font-weight: 650; }
.selection-panel.has-selection { display: block; padding: 12px 15px; background: #f3f8fc; border: 1px solid #b8d0e3; border-radius: 5px; }
.selection-kicker { color: #245d9d; text-transform: uppercase; letter-spacing: .11em; font-size: 9px; font-weight: 750; margin: 0 0 7px; }
.selection-seating-note { font-size: 11px; color: #526e84; line-height: 1.75; margin: 12px 0 0; }
.selection-seating-note button { border: 0; padding: 2px 4px; background: transparent; color: #245d9d; text-decoration: underline; text-underline-offset: 3px; font-size: 11px; min-height: 34px; }
.selection-heading { display: flex; gap: 11px; align-items: center; flex-wrap: wrap; margin-bottom: 13px; padding-right: 20px; }
.selection-heading strong { font-size: 13px; color: #204d75; }
.selection-heading > span { font-size: 11px; color: #647e93; }
.selection-fields { display: flex; flex-wrap: wrap; align-items: end; gap: 12px 20px; }
.selection-fields > .plan-field { max-width: 200px; flex: 1; min-width: 120px; }
.selection-fields .field-pair { max-width: 300px; flex: 1 1 230px; }
.selection-fields .plan-field { margin: 0; }
.selection-fields > .plan-field > input { min-height: 46px; }
.selection-fields .plan-input input { font-size: 16px; }
.selection-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-left: auto; }
.selection-actions button, .remove-control { border: 1px solid #c7d9e8; background: #fff; color: #305b7e; border-radius: 4px; font-size: 11px; font-weight: 650; min-height: 38px; padding: 7px 10px; }
.selection-actions .remove-control { color: #85493c; }
.planner-studio .plan-measurements { font-size: 11px; border: 1px solid #ebd5b3; gap: 6px 20px; padding: 9px 13px; line-height: 1.7; }
.measurement-mode { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin-top: 6px; padding: 8px 12px; border: 1px solid #c3d6e6; border-radius: 5px; background: #f0f6fb; color: #244f72; font-size: 12px; }
.measurement-mode strong { font-size: 13px; }
.measurement-mode small { flex-basis: 100%; font-size: 11px; line-height: 1.6; color: #4b6477; }
.planner-studio .plan-measure-lines .clearance-line { fill: none; stroke: #245d9d; stroke-width: 2; stroke-dasharray: none; vector-effect: non-scaling-stroke; }
.planner-studio .plan-measure-lines .clearance-leader { fill: none; stroke: #245d9d; stroke-width: 1; stroke-dasharray: 2 2; vector-effect: non-scaling-stroke; }
.planner-studio .clearance-badge { fill: #fff; stroke: #245d9d; stroke-width: 1.25; vector-effect: non-scaling-stroke; }
.planner-studio .clearance-label { fill: #174c80; font-weight: 750; text-anchor: middle; }
.planner-studio .clearance-alert .clearance-line, .planner-studio .clearance-alert .clearance-badge { stroke: #a24822; }
.planner-studio .clearance-alert .clearance-label { fill: #923e1a; }
.planner-studio .plan-notice { margin: 0 0 8px; font-size: 11px; line-height: 1.7; padding: 7px 13px; background: #f0f5fa; }
.planner-studio .plan-add-notice { margin: 8px 0 0; }
.plan-warning-group { padding: 12px 14px; background: #fff6e8; border: 1px solid #ead5b7; border-radius: 5px; margin-bottom: 15px; color: #78572b; }
.plan-warning-group > strong { font-size: 12px; }
.planner-studio .plan-warning { padding: 0; background: transparent; margin: 5px 0 0; font-size: 11px; line-height: 1.7; }
.planner-studio .plan-result { background: #eaf2f9; border: 0; padding: 14px 20px; gap: 28px; }
.planner-studio .plan-result strong { font-size: 37px; font-weight: 700; }
.planner-studio .plan-result .button { font-size: 12px; min-height: 47px; }
.planner-studio .plan-export { display: block; margin-top: 16px; padding: 0 0 8px; }
.planner-studio .plan-export > span { display: block; margin-bottom: 10px; color: #294b6a; font-size: 15px; font-weight: 750; }
.plan-export-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.planner-studio .plan-export button { display: flex; align-items: center; justify-content: center; gap: 10px; min-width: 0; min-height: 56px; padding: 12px; border: 1px solid #7b9dbd; border-radius: 5px; background: #fff; color: #245d9d; font-size: 15px; font-weight: 750; line-height: 1.35; }
.planner-studio .plan-export button svg { flex: 0 0 22px; }
.planner-studio .plan-export button:hover { background: #eaf2f9; border-color: #245d9d; }
.planner-studio .plan-export .plan-export-pdf { background: #245d9d; border-color: #245d9d; color: #fff; }
.planner-studio .plan-export .plan-export-pdf:hover { background: #1c4d84; }
.planner-studio .plan-disclaimer { font-size: 10px; margin-top: 5px; }
.planner-studio .inventory summary { font-size: 11px; }
.planner-studio .inventory li, .planner-studio .inventory p { font-size: 12px; line-height: 1.8; }
.planner-studio:fullscreen { border: 0; border-radius: 0; padding: 0; overflow: auto; --room-height-limit: calc(100vh - 305px); }
.planner-studio:fullscreen .planner-workspace { grid-template-columns: 290px minmax(0, 1fr); }
.planner-studio:fullscreen .planner-preview { max-width: 1600px; width: 100%; margin-inline: auto; }
@media (max-width: 1100px) {
  .planner-studio .planner-workspace { grid-template-columns: 248px minmax(0, 1fr); }
  .planner-studio .planner-controls { padding: 16px; }
  .planner-studio .planner-preview { padding: 16px 18px; }
  .planner-studio .plan-preview-title h3 { font-size: 20px; }
  .planner-studio .plan-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .planner-studio .plan-actions button { justify-content: start; padding-inline: 14px; }
  .plan-editbar { gap: 4px; }
  .plan-editbar button { padding-inline: 5px; }
  .plan-history .reset-control { margin-left: 0; padding-left: 7px; }
  .planner-studio .plan-result { flex-wrap: wrap; gap: 12px 28px; }
  .planner-studio .plan-result > div { flex: 1; }
  .planner-studio .plan-result .button { width: 100%; margin: 0; }
  .plan-workspace-hint { align-items: start; }
  .plan-workspace-hint p { padding-top: 6px; }
}
@media (max-width: 760px) {
  .planner-studio .planner-workspace, .planner-studio:fullscreen .planner-workspace { display: block; }
  .planner-studio .planner-controls { display: grid; grid-template-columns: 1fr 1fr; column-gap: 15px; padding: 16px 20px; }
  .planner-studio .control-title, .planner-studio .planner-controls > .field-pair, .planner-studio .layout-picker, .reserve-settings { grid-column: 1 / -1; }
  .planner-studio .control-title { margin-bottom: 10px; }
  .planner-studio .layout-picker { margin-bottom: 12px; }
  .planner-studio .layout-choice-face { min-height: 57px; flex-direction: row; padding: 8px; gap: 8px; font-size: 11px; }
  .planner-studio .layout-choice-custom .layout-choice-face { min-height: 42px; }
  .layout-sizing { border: 0; padding: 0; margin: 0; }
  .layout-sizing .input-note { display: none; }
  .planner-studio .spacing-settings { display: block; }
  .spacing-presets { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .spacing-controls .plan-field > span:first-child { font-size: 10px; }
  .spacing-switch { align-items: start; }
  .spacing-switch small { font-size: 9px; }
  .spacing-settings .plan-field > span:first-child { min-height: 0; }
  .spacing-settings .plan-field:last-child { margin-top: 9px; }
  .planner-studio .spacing-note { grid-column: 1 / -1; margin-top: 12px; }
  .planner-studio .plan-field select, .planner-studio .plan-field > input { font-size: 16px; }
  .planner-studio .planner-chair-help-compact { display: none; }
  .reserve-settings { margin-top: 12px; padding-top: 8px; }
  .reserve-toggle { padding-bottom: 0; min-height: 44px; }
  .planner-studio .planner-preview { padding: 14px; }
  .planner-studio .plan-preview-title h3 { font-size: 19px; max-width: 230px; }
  .plan-expand { padding: 6px 8px; min-height: 40px; font-size: 10px; }
  .plan-expand span { display: none; }
  .planner-studio .plan-actions button { min-height: 52px; font-size: 11px; padding: 7px 10px; }
  .plan-editbar { flex-wrap: wrap; gap: 3px; margin-top: 5px; }
  .plan-editbar button { min-height: 44px; }
  .plan-history button span { display: none; }
  .plan-history button:not(.reset-control) { min-width: 34px; }
  .plan-camera button[aria-label] { min-width: 31px; }
  .plan-history .reset-control { font-size: 10px; }
  .plan-camera button:not([aria-label]) { font-size: 10px; }
  .plan-camera output { min-width: 34px; font-size: 10px; }
  .room-stage { padding: 22px 1px 6px 20px; }
  .room-dimension-horizontal { left: 20px; }
  .planner-studio .plan-canvas { height: auto; min-height: 0; }
  .room-dimension { font-size: 9px; }
  .plan-workspace-hint { gap: 9px; align-items: center; flex-wrap: wrap; }
  .plan-workspace-hint p { flex: 1; min-width: 190px; font-size: 10px; }
  .plan-workspace-hint button { min-height: 44px; padding-left: 0; }
  .plan-add-panel { padding: 15px 35px 15px 12px; gap: 12px; }
  .plan-add-panel > div:first-child { flex-basis: 100%; }
  .plan-add-panel .field-pair { width: 100%; }
  .plan-add-panel .plan-field { flex: 1; }
  .selection-panel { flex-wrap: wrap; gap: 8px; }
  .selection-panel > p { flex: 1; min-width: 160px; }
  .selection-panel.has-selection { padding: 10px 13px; }
  .selection-fields { align-items: end; gap: 13px; }
  .selection-actions { width: 100%; margin: 0; }
  .selection-actions button, .remove-control { min-height: 44px; }
  .selection-heading { gap: 5px 10px; }
  .selection-fields .field-pair { max-width: none; width: 100%; }
  .planner-studio .plan-result { padding: 12px 17px; }
  .planner-studio .plan-result strong { font-size: 34px; }
  .planner-studio .plan-result div > span { font-size: 11px; }
  .planner-studio .plan-result .button { font-size: 13px; }
  .plan-export-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .plan-export-pdf { grid-column: 1 / -1; }
  .planner-studio .plan-export button { font-size: 14px; gap: 8px; padding: 12px 10px; }
  .planner-studio:fullscreen { --room-height-limit: 75vh; }
}
@media print {
  .planner-studio .plan-export { display: none !important; }
  .planner-studio { box-shadow: none; border: 0; }
  .planner-studio .planner-preview { display: block; padding: 0; }
  .plan-expand, .plan-editbar, .plan-workspace-hint, .selection-panel, .plan-add-panel { display: none !important; }
  .planner-studio .plan-preview-title h3 { font-size: 20px; }
  .planner-studio .plan-preview-title { margin-bottom: 5px; }
  .planner-studio .room-stage { padding-top: 20px; break-inside: avoid; }
  .planner-studio .plan-canvas { width: min(100%, calc(105mm * var(--room-ratio))); height: auto; min-height: 0; }
  .planner-studio .plan-result { margin-top: 5px; padding: 7px 14px; flex-wrap: nowrap; }
  .planner-studio .plan-result strong { font-size: 24px; }
  .planner-studio .plan-result div > span { font-size: 10px; }
  .planner-studio .plan-disclaimer { font-size: 8px; line-height: 1.5; }
  .planner-studio .plan-furniture .plan-hit { fill: transparent; stroke: transparent; }
  .planner-studio .plan-furniture.has-spacing-warning .plan-hit { fill: transparent; stroke: #bc7040; stroke-dasharray: .22 .14; }
  .planner-studio .is-selected .plan-table { fill: #f2eee5; stroke: #a09478; }
  .planner-studio .plan-zone.is-selected rect,
  .planner-studio .plan-zone:focus-visible rect { stroke: #b59968; stroke-width: 1.5; stroke-dasharray: 4 3; }
  .plan-warning-group { break-inside: avoid; margin: 4px 0; padding: 5px 10px; }
  .planner-studio .plan-warning { font-size: 9px; }
}
