/* Discount Movers — interactive space planner (architectural style) */
.sp-wrap{max-width:920px;margin:1.6rem auto;background:#fff;border:1px solid #e2ddd3;border-radius:14px;
  padding:1.1rem 1.1rem 1.4rem;box-shadow:0 8px 28px rgba(0,0,0,.08)}
.sp-fallback{font-size:.92rem;color:#3d4757;line-height:1.7}
.sp-ready .sp-fallback{display:none}

.sp-how{background:#eef4fb;border:1px solid #cfe0f2;border-radius:9px;padding:.7rem .9rem;font-size:.86rem;
  line-height:1.6;color:#33475e;margin-bottom:.85rem}

.sp-ctl{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;justify-content:space-between;margin-bottom:.7rem}
.sp-cur{display:flex;flex-direction:column;line-height:1.25}
.sp-cur-name{font-weight:700;font-size:.92rem;color:#0a1628}
.sp-cur-dim{font-size:.78rem;color:#8b93a0;font-variant-numeric:tabular-nums}
.sp-ctl-r{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.sp-modes{display:flex;gap:.35rem}
.sp-btn{font:inherit;font-size:.79rem;font-weight:700;background:#fff;color:#f4622a;border:1.5px solid #f4622a;
  border-radius:7px;padding:.38rem .7rem;cursor:pointer;white-space:nowrap}
.sp-btn:hover{background:#f4622a;color:#fff}
.sp-btn.sp-on{background:#f4622a;color:#fff}
.sp-btn:focus-visible,.sp-nudge:focus-visible{outline:3px solid #0a1628;outline-offset:2px}
.sp-pad{display:grid;grid-template-columns:repeat(3,1.6rem);grid-template-rows:repeat(2,1.6rem);gap:2px}
.sp-nudge{font:inherit;font-size:.6rem;background:#f5f0e8;border:1px solid #ddd6c8;border-radius:5px;color:#0a1628;cursor:pointer;padding:0}
.sp-nudge:hover{background:#e8e0d2}
.sp-nudge[data-n=up]{grid-column:2;grid-row:1}
.sp-nudge[data-n=left]{grid-column:1;grid-row:2}
.sp-nudge[data-n=down]{grid-column:2;grid-row:2}
.sp-nudge[data-n=right]{grid-column:3;grid-row:2}

.sp-unit{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#8b93a0;margin-bottom:.35rem}

/* ── the plan: white ground, heavy exterior wall, thin room outlines ── */
.sp-plan{position:relative;width:100%;background:#fff;border:5px solid #14202f;border-radius:3px;overflow:hidden;touch-action:none}
.sp-room{position:absolute;border:1px solid #dfe3e8;pointer-events:none;z-index:1}
.sp-wall{position:absolute;background:#14202f;pointer-events:none;z-index:2}
.sp-door{position:absolute;background:#f4622a;border-radius:1px;pointer-events:none;z-index:3}
/* room labels sit above the walls so a partition never clips the text */
/* white backing keeps the label legible where a partition runs under it */
.sp-lab{position:absolute;z-index:4;pointer-events:none;font-size:.66rem;color:#a8b0ba;line-height:1.3;
  letter-spacing:.02em;white-space:nowrap;background:rgba(255,255,255,.92);padding:1px 4px;border-radius:2px}
.sp-lab i{display:block;font-style:normal;font-size:.6rem;opacity:.85;font-variant-numeric:tabular-nums}

.sp-item{position:relative;z-index:5;font:inherit;font-size:.66rem;font-weight:700;color:#fff;border:2px solid rgba(0,0,0,.3);
  border-radius:3px;cursor:grab;padding:0;display:flex;align-items:center;justify-content:center;text-align:center;
  overflow:hidden;min-width:92px;min-height:40px;line-height:1.15;touch-action:none;-webkit-tap-highlight-color:transparent}
.sp-item span{padding:2px 4px;text-shadow:0 1px 2px rgba(0,0,0,.45)}
.sp-item i{display:block;font-style:normal;font-weight:400;font-size:.58rem;opacity:.9;font-variant-numeric:tabular-nums}
.sp-item:active{cursor:grabbing}
.sp-item.sp-sel{box-shadow:0 0 0 3px #f4622a;z-index:6}
.sp-item.v-fit{border-color:#1f8f4e}
.sp-item.v-tight{border-color:#d97706}
.sp-item.v-no{border-color:#cc2f2f}

.sp-traylab{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#8b93a0;margin:.9rem 0 .4rem}
.sp-tray{display:flex;flex-wrap:wrap;gap:.45rem}
.sp-tray:empty::after{content:"Every piece is on the plan \2014\20use Reset all to start over.";font-size:.8rem;color:#7b8494;font-style:italic}

.sp-tablewrap{overflow-x:auto;margin-top:1.1rem;border:1px solid #e2ddd3;border-radius:9px}
.sp-table{width:100%;border-collapse:collapse;min-width:22rem}
.sp-table caption{text-align:left;padding:.6rem .8rem;font-weight:700;font-size:.86rem;color:#0a1628;background:#f5f0e8}
.sp-table th[scope=col]{text-align:left;padding:.5rem .8rem;background:#14202f;color:#fff;font-size:.68rem;
  letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.sp-table th[scope=row]{text-align:left;padding:.55rem .8rem;border-top:1px solid #eae5da;font-size:.84rem;color:#0a1628;
  font-weight:700;white-space:nowrap;vertical-align:top}
.sp-table th[scope=row] i{display:block;font-style:normal;font-weight:400;font-size:.7rem;color:#9aa2ad;font-variant-numeric:tabular-nums}
.sp-table td{padding:.55rem .8rem;border-top:1px solid #eae5da;font-size:.84rem;color:#3d4757;line-height:1.65}
.sp-table td i{font-style:normal;color:#8b93a0;font-size:.79rem}
.sp-badge{display:inline-block;font-size:.63rem;font-weight:700;letter-spacing:.07em;padding:.12rem .38rem;border-radius:4px;
  vertical-align:.06em;margin-right:.15rem}
.b-fit{background:#dff3e6;color:#12673a}
.b-tight{background:#fdf0d8;color:#8a5a06}
.b-no{background:#fbe0e0;color:#9d2222}
.sp-empty{color:#7b8494;font-style:italic;font-size:.8rem}

.sp-note{margin-top:.9rem;font-size:.8rem;color:#8b93a0;line-height:1.6}
.sp-status{margin-top:.6rem;font-size:.84rem;color:#0a1628;background:#f5f0e8;border-radius:7px;padding:.5rem .7rem;
  font-variant-numeric:tabular-nums}

@media(max-width:640px){
  .sp-ctl{gap:.5rem}
  .sp-lab{font-size:.58rem}
  .sp-item{min-width:76px;min-height:36px;font-size:.6rem}
  .sp-plan{border-width:4px}
}
@media(prefers-reduced-motion:reduce){.sp-item{transition:none}}
