:root {
  --ink: #1d252b;
  --ink-soft: #536069;
  --muted: #8b969e;
  --line: #dfe4e7;
  --line-strong: #cbd2d6;
  --paper: #f6f7f6;
  --panel: #ffffff;
  --canvas: #edf0f0;
  --lime: #d5f878;
  --lime-deep: #b8df51;
  --coral: #f4baa3;
  --lavender: #cec5f5;
  --aqua: #a7dedb;
  --sand: #f4deae;
  --mono: "DM Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --sans: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-width: 1120px;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
}

button, input { font: inherit; }
button { border: 0; cursor: pointer; color: inherit; }

.app-shell { min-height: 100vh; display: flex; flex-direction: column; }
.project-modes{height:46px;flex-shrink:0;display:flex;align-items:center;gap:6px;padding:6px 20px;background:#fff;border-bottom:1px solid var(--line)}
.project-modes button{font-size:12px;font-weight:700;padding:8px 13px;border-radius:7px;background:transparent;color:var(--ink-soft);white-space:nowrap}.project-modes button:hover{background:#f0f3f3}.project-modes button.active{background:var(--ink);color:var(--lime)}
.project-modes button span{margin-left:5px;font-family:var(--mono);font-size:10px}.project-file-actions{display:flex;margin-left:auto;gap:3px}.project-file-actions button{font-size:11px}
#constructorWorkspace{height:calc(100vh - 126px);position:relative;background:var(--paper)}#constructorWorkspace[hidden]{display:none}#constructorFrame{border:0;width:100%;height:100%;display:block}#constructorLoading{position:absolute;inset:0;background:var(--paper);display:grid;place-content:center;font-size:14px}#constructorLoading[hidden]{display:none}
body.constructor-mode .workspace{display:none}body.constructor-mode .top-actions>:not(.save-state){display:none}
.project-modes~.workspace{height:calc(100vh - 126px)}
.custom-library-heading{display:flex;align-items:center;justify-content:space-between;font-size:12px;padding:7px}.custom-library-heading button{background:var(--lime);width:25px;height:25px;border-radius:6px;font-size:18px}
#customFurnitureGroup{margin:9px 0 13px;padding:4px;border:1px solid #dce8c7;border-radius:9px;background:#fbfdf7}.custom-library-empty{font-size:11px;line-height:1.6;padding:0 8px;color:var(--ink-soft)}
.custom-card{padding:7px;display:grid;grid-template-columns:1fr 27px;gap:4px;border-radius:7px}.custom-card:hover{background:white}.custom-card-main{display:flex;gap:8px;align-items:center;text-align:left;background:transparent;min-width:0}.custom-card-main svg{width:38px;height:38px;flex-shrink:0}.custom-card b{font-size:11px;display:block;overflow:hidden;text-overflow:ellipsis;max-width:119px}.custom-card small{font-size:9px;color:var(--muted);display:block;margin-top:3px}.custom-card-edit{background:#eef2e8;border-radius:5px;font-size:12px;height:27px;align-self:center}
.custom-card[hidden]{display:none}
.custom-inspector{padding:10px;background:#f5f9ed;border:1px solid #dce8c7;border-radius:8px;margin:10px 0;font-size:11px;line-height:1.6}.custom-inspector button{display:block;width:100%;background:var(--lime);border-radius:6px;padding:9px;margin-top:7px;font-weight:700}
@media(max-width:900px){.project-modes{padding:5px 8px;overflow-x:auto}.project-modes button{font-size:11px;padding:8px}.project-file-actions button{font-size:10px}}

.topbar {
  height: 80px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--line);
  background: rgba(255,255,255,0.88);
  padding: 0 26px 0 28px;
  gap: 32px;
}

.brand-block { width: 218px; display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.brand-mark { width: 29px; height: 29px; display: flex; gap: 3px; align-items: flex-end; transform: rotate(-11deg); }
.brand-mark span { display: block; width: 7px; border-radius: 4px 4px 1px 1px; background: var(--ink); }
.brand-mark span:nth-child(1) { height: 17px; opacity: .55; }
.brand-mark span:nth-child(2) { height: 25px; background: var(--lime-deep); }
.brand-mark span:nth-child(3) { height: 12px; opacity: .8; }
.brand-name { font-size: 18px; line-height: 19px; letter-spacing: -.7px; font-weight: 800; }
.brand-name span { color: var(--lime-deep); font-size: 22px; }
.brand-caption { color: var(--muted); font-size: 9px; letter-spacing: .13em; text-transform: uppercase; margin-top: 3px; }

.project-title { flex: 1; min-width: 270px; display: flex; align-items: center; gap: 14px; }
.back-button { width: 29px; height: 29px; border-radius: 50%; color: var(--ink-soft); background: #f0f2f2; font-size: 18px; transition: .18s ease; }
.back-button:hover { background: var(--lime); color: var(--ink); transform: translateX(-2px); }
.eyebrow, .section-kicker { font-family: var(--mono); color: var(--muted); font-size: 9px; line-height: 13px; letter-spacing: .12em; }
.title-row { display: flex; align-items: center; gap: 8px; }
.title-row h1 { font-size: 15px; line-height: 18px; margin: 2px 0 0; font-weight: 700; letter-spacing: -.2px; outline: 0; }
.title-row h1:focus { border-bottom: 1px solid var(--lime-deep); }
.title-edit { color: var(--muted); font-family: var(--mono); font-size: 9px; border: 1px solid var(--line); padding: 3px 5px; border-radius: 4px; }

.top-actions { display: flex; align-items: center; gap: 8px; }
.save-state { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; margin-right: 8px; white-space: nowrap; }
.save-dot { width: 6px; height: 6px; border-radius: 50%; background: #89bd63; box-shadow: 0 0 0 3px #e9f3e1; }
.save-dot.saving { background: #e2ad4d; box-shadow: 0 0 0 3px #fbf0dc; }
.ghost-button, .outline-button, .primary-button, .avatar-button { height: 35px; border-radius: 8px; display: flex; align-items: center; justify-content: center; transition: .18s ease; }
.ghost-button { width: 29px; background: transparent; color: var(--muted); font-size: 21px; }
.ghost-button:hover { background: #eff2f2; color: var(--ink); }
.outline-button { gap: 7px; border: 1px solid var(--line-strong); background: #fff; padding: 0 13px; color: var(--ink-soft); font-size: 11px; font-weight: 700; }
.outline-button:hover { border-color: var(--ink); color: var(--ink); }
.new-project-button { border-color: #d6e7b4; background: #fbfff3; color: #5e7544; }.new-project-button:hover { border-color: var(--lime-deep); background: var(--lime); }.new-project-icon { color: #7ca34b; font-size: 16px; line-height: 0; }
.download-icon { font-size: 18px; line-height: 0; font-family: var(--mono); font-weight: 400; }
.primary-button { background: var(--lime); padding: 0 14px; font-size: 11px; font-weight: 800; gap: 10px; }
.primary-button span { font-size: 16px; font-weight: 500; }
.primary-button:hover { background: var(--lime-deep); transform: translateY(-1px); }
.avatar-button { width: 35px; border-radius: 50%; background: var(--ink); color: var(--lime); font-weight: 800; font-size: 12px; margin-left: 2px; }

.workspace { display: grid; grid-template-columns: 218px minmax(500px, 1fr) 296px; height: calc(100vh - 80px); min-height: 0; }
.workspace.inspector-open { grid-template-columns: 218px minmax(500px, 1fr) 296px; }
.panel { background: var(--panel); }
.left-panel { border-right: 1px solid var(--line); padding: 23px 14px 14px; display: flex; flex-direction: column; overflow-y: auto; }
.right-panel { min-width: 0; width: 296px; overflow-y: auto; border-left: 1px solid var(--line); padding: 24px 19px; }
.workspace.inspector-open .right-panel { border-left-color: var(--line); padding: 24px 19px; opacity: 1; transform: translateX(0); pointer-events: auto; }
.panel-topline { padding: 0 8px 12px; display: flex; justify-content: space-between; align-items: center; }
.collapse-button { width: 22px; height: 22px; border-radius: 5px; background: #f3f5f5; color: var(--muted); font-size: 20px; line-height: 18px; }
.collapse-button:hover { background: var(--lime); color: var(--ink); }
.tool-list { display: flex; flex-direction: column; gap: 3px; }
.tool-button { height: 36px; border-radius: 7px; display: grid; grid-template-columns: 26px 1fr auto; align-items: center; padding: 0 9px; background: transparent; color: var(--ink-soft); text-align: left; font-size: 11px; font-weight: 600; transition: .15s ease; }
.tool-button:hover { background: #f4f6f5; color: var(--ink); }
.tool-button.active { background: var(--ink); color: #fff; box-shadow: 0 3px 8px rgba(29,37,43,.13); }
.tool-icon { width: 19px; height: 19px; display: inline-flex; justify-content: center; align-items: center; font-family: var(--mono); font-size: 14px; color: var(--ink-soft); }
.active .tool-icon { color: var(--lime); }
.select-icon { font-size: 21px; transform: translateY(-1px); }
.room-icon { border: 1.5px solid currentColor; border-radius: 2px; width: 14px; height: 14px; }
.wall-icon { font-size: 22px; transform: rotate(5deg); }
.door-icon { font-size: 24px; font-family: var(--sans); transform: translateY(-1px); }
.window-icon { font-size: 18px; }
.furniture-icon { border: 1px solid currentColor; font-size: 14px; border-radius: 2px; }
.text-icon { font-size: 14px; font-weight: 800; }
kbd { border: 1px solid #dfe4e4; background: rgba(255,255,255,.45); color: var(--muted); border-radius: 4px; font-family: var(--mono); font-size: 9px; font-weight: 400; padding: 2px 5px; }
.active kbd { background: rgba(255,255,255,.12); color: #d8e1df; border-color: rgba(255,255,255,.16); }

.library-section { border-top: 1px solid var(--line); margin-top: 22px; padding: 18px 8px 0; }
.selection-tool { margin: 0 8px; width: calc(100% - 16px); }
.palette-section { margin-top: 17px; padding-top: 17px; }
.palette-instruction { margin: 7px 0 13px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.palette-group { border-bottom: 1px solid #eef1f1; }
.palette-group:last-child { border-bottom: 0; }
.palette-group-header { width: 100%; height: 38px; padding: 0 1px; display: grid; grid-template-columns: 23px 1fr auto 16px; align-items: center; gap: 5px; background: transparent; color: var(--ink-soft); text-align: left; font-size: 10px; font-weight: 700; }
.palette-group-header:hover { color: var(--ink); }
.palette-group-icon { width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center; border-radius: 5px; font-family: var(--mono); font-size: 12px; }
.room-group-icon { background: #f9e2d8; color: #a86f5d; }.opening-group-icon { background: #dff1ef; color: #4d8788; }.furniture-group-icon { background: #fff1d1; color: #9a7e45; }.accessory-group-icon { background: #e8e4fa; color: #776ba8; }.construction-group-icon { background: #e7ecec; color: #66767c; }
.group-count { min-width: 17px; padding: 3px 5px; border-radius: 4px; background: #f2f4f4; color: var(--muted); font-family: var(--mono); font-size: 8px; text-align: center; }
.group-chevron { color: var(--muted); font-size: 14px; line-height: 1; transition: transform .2s ease; }.palette-group.expanded .group-chevron { transform: rotate(180deg); color: var(--ink-soft); }
.palette-items { display: none; grid-template-columns: 1fr 1fr; gap: 6px; padding: 0 0 10px; }.palette-group.expanded .palette-items { display: grid; }
.palette-card { min-width: 0; min-height: 75px; display: flex; flex-direction: column; align-items: stretch; justify-content: space-between; gap: 5px; padding: 7px; border: 1px solid var(--line); border-radius: 7px; background: #fcfdfc; text-align: left; color: var(--ink-soft); transition: border-color .15s ease, background .15s ease, transform .15s ease, box-shadow .15s ease; user-select: none; }
.palette-card:hover { border-color: var(--lime-deep); background: #fbfff1; transform: translateY(-1px); box-shadow: 0 4px 10px rgba(49,64,63,.05); }.palette-card:active, .palette-card.dragging { opacity: .58; transform: scale(.98); }.palette-card.attention { border-color: var(--lime-deep); box-shadow: 0 0 0 3px rgba(213,248,120,.25); }.palette-card b { display: block; overflow: hidden; color: var(--ink); font-size: 9px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }.palette-card small { display: block; overflow: hidden; color: var(--muted); font-size: 8px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.palette-art { height: 34px; display: flex; align-items: center; justify-content: center; border-radius: 5px; color: #758489; font-family: var(--mono); font-size: 19px; }.room-art { border: 1px solid #dae1de; background: #f7faf5; position: relative; }.room-art::after { content: ""; width: 36px; height: 20px; border: 2px solid currentColor; border-radius: 2px; opacity: .5; }.living-art { color: #d0886d; background: #fff2ed; }.kitchen-art { color: #5d9c9c; background: #edfafa; }.bedroom-art { color: #8b7fb8; background: #f4f1ff; }.bath-art { color: #b48d45; background: #fff9e6; }.hall-art { color: #87966e; background: #f5f8ee; }.door-art, .window-art, .wall-art, .text-art, .angle-art, .protrusion-art, .recess-art { background: #f3f6f5; }.door-art { color: #7c9996; font-size: 25px; }.window-art { color: #659a9b; font-size: 18px; }.wall-art { color: #66767c; font-size: 24px; }.angle-art, .protrusion-art, .recess-art { color: #66767c; font-size: 25px; }.protrusion-art { background: #f1f6e6; color: #78964b; }.recess-art { background: #f8f1e8; color: #a27f5d; }.text-art { color: #68777a; font-size: 16px; font-weight: 800; }.sofa-art, .bed-art, .table-art, .furniture-kitchen-art, .rug-art, .wardrobe-art { position: relative; background: #fbf5e9; }.sofa-art::before { content: ""; width: 40px; height: 17px; border-radius: 5px; border: 2px solid #b9a98a; box-shadow: inset 0 -5px 0 #f1dfb7; }.bed-art { background: #f8eff2; }.bed-art::before { content: ""; width: 40px; height: 25px; border-radius: 4px; border: 2px solid #b9a0aa; box-shadow: inset 0 7px 0 #fff; }.table-art::before { content: ""; width: 27px; height: 18px; border-radius: 50%; border: 2px solid #b9a46c; }.furniture-kitchen-art { background: #edf8f7; }.furniture-kitchen-art::before { content: ""; width: 44px; height: 17px; border-radius: 3px; border: 2px solid #7ba8a8; }.rug-art { background: #fbf0e2; }.rug-art::before { content: ""; width: 42px; height: 22px; border: 2px dashed #d0a37c; border-radius: 4px; }.plant-art, .lamp-art { background: #f1f5e8; color: #7f9b63; font-size: 23px; }.lamp-art { background: #fff8e7; color: #c29a4a; font-size: 22px; }.wardrobe-art { background: #f1f2f3; }.wardrobe-art::before { content: ""; width: 29px; height: 24px; border: 2px solid #94a1a3; border-radius: 2px; }
.compact-card { min-height: 67px; }
.section-heading { display: flex; align-items: center; justify-content: space-between; font-family: var(--mono); color: var(--muted); font-size: 9px; letter-spacing: .11em; }
.tiny-add { width: 20px; height: 20px; border-radius: 4px; background: #f2f4f4; color: var(--ink-soft); font-size: 17px; line-height: 17px; }
.tiny-add:hover { background: var(--lime); }
.library-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 12px; }
.library-card { height: 74px; border-radius: 7px; border: 1px solid var(--line); background: #fcfdfc; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; padding: 8px; color: var(--ink-soft); font-size: 9px; text-align: left; transition: .16s ease; }
.library-card:hover { border-color: var(--lime-deep); background: #fbfff2; transform: translateY(-1px); }
.furniture-preview { width: 100%; height: 38px; display: block; position: relative; }
.sofa-preview::before { content: ""; position: absolute; left: 11px; top: 12px; width: 39px; height: 17px; border: 2px solid #b8c1c2; border-radius: 5px 5px 3px 3px; box-shadow: inset 0 -5px 0 #e9eded; }
.sofa-preview::after { content: ""; position: absolute; left: 7px; top: 10px; width: 5px; height: 21px; border-radius: 4px; background: #cad2d3; box-shadow: 49px 0 0 #cad2d3; }
.bed-preview::before { content: ""; position: absolute; left: 11px; top: 7px; width: 42px; height: 27px; border: 2px solid #b8c1c2; border-radius: 4px; background: #f2dddd; box-shadow: inset 0 7px 0 #cad8d7; }
.bed-preview::after { content: ""; position: absolute; left: 15px; top: 10px; width: 13px; height: 7px; border-radius: 2px; background: #fff; box-shadow: 17px 0 0 #fff; }
.table-preview::before { content: ""; position: absolute; left: 16px; top: 11px; width: 34px; height: 19px; border: 2px solid #bfbeae; border-radius: 50%; background: #f8e8bb; }
.table-preview::after { content: ""; position: absolute; left: 12px; top: 8px; width: 8px; height: 8px; border-radius: 50%; background: #d2d8d6; box-shadow: 36px 0 #d2d8d6, 0 26px #d2d8d6, 36px 26px #d2d8d6; }
.kitchen-preview::before { content: ""; position: absolute; left: 10px; top: 10px; width: 49px; height: 22px; border: 2px solid #aebdc0; border-radius: 3px; background: #d7e7e5; }
.kitchen-preview::after { content: "◦  ◦  ◦"; position: absolute; left: 16px; top: 13px; font-size: 11px; letter-spacing: 2px; color: #71898d; }
.sidebar-footer { margin-top: auto; padding: 14px 8px 1px; display: flex; justify-content: space-between; align-items: center; color: var(--muted); }
.shortcut-hint { font-size: 9px; display: flex; gap: 5px; align-items: center; }.shortcut-hint span { width: 15px; height: 15px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: #e9eeee; color: var(--ink-soft); font-weight: 800; }.version-label { font-family: var(--mono); font-size: 8px; }

.canvas-panel { min-width: 0; display: flex; flex-direction: column; background: var(--canvas); }
.canvas-toolbar { height: 57px; padding: 0 21px; display: flex; align-items: center; justify-content: space-between; background: rgba(255,255,255,.72); border-bottom: 1px solid var(--line); }
.breadcrumbs { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 9px; font-family: var(--mono); letter-spacing: .08em; }.breadcrumbs i { color: var(--line-strong); font-style: normal; }.breadcrumbs .current { color: var(--ink-soft); }
.canvas-actions { display: flex; gap: 4px; }.canvas-action { height: 30px; display: flex; align-items: center; gap: 7px; padding: 0 9px; border-radius: 5px; background: transparent; color: var(--ink-soft); font-size: 10px; }.canvas-action:hover { background: #e5e9e9; color: var(--ink); }.canvas-action.icon-only { font-size: 15px; letter-spacing: 2px; padding: 0 11px; }.grid-action-icon { font-size: 17px; line-height: 0; }.chevron { color: var(--muted); font-size: 13px; }
.canvas-action.selected { background: #e3eade; color: var(--ink); }
.canvas-action.view-3d-button { background: var(--lime); color: var(--ink); font-size: 12px; font-weight: 700; gap: 6px; white-space: nowrap; }
.canvas-action.view-3d-button:hover { background: var(--lime-deep); }
.view-3d-button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linejoin: round; }
.canvas-toolbar { gap: 12px; }
.canvas-actions { flex-shrink: 0; }
@media (max-width: 1450px) { .breadcrumbs > span:first-child, .breadcrumbs > i { display: none; } }

body.viewing-3d { overflow: hidden; }
.project-3d-dialog { position: fixed; inset: 0; width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: #edf0ec; color: var(--ink); }
.project-3d-dialog[open] { display: flex; flex-direction: column; }
.project-3d-dialog::backdrop { background: var(--paper); }
.project-3d-header { height: 80px; flex-shrink: 0; padding: 0 28px; display: flex; align-items: center; justify-content: space-between; gap: 24px; background: #fff; border-bottom: 1px solid var(--line); }
.project-3d-heading { display: flex; align-items: center; gap: 14px; min-width: 0; }
.project-3d-heading h2 { font-size: 18px; margin: 3px 0 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-3d-heading > div { min-width: 0; }
.project-3d-badge { display: grid; place-items: center; flex-shrink: 0; width: 42px; height: 42px; border-radius: 12px; background: var(--lime); font-family: var(--mono); font-size: 16px; }
.project-3d-header .outline-button { gap: 10px; height: 40px; flex-shrink: 0; font-size: 14px; }
.project-3d-header kbd { color: var(--muted); font-size: 11px; }
.project-3d-stage { position: relative; flex: 1; min-height: 0; overflow: hidden; background: radial-gradient(ellipse at 50% 42%,#f3f4f5,#d5d8dc); }
.project-3d-stage canvas { display: block; width: 100%; height: 100%; touch-action: none; cursor: grab; outline: none; }
.project-3d-stage canvas:active { cursor: grabbing; }
.project-3d-stage canvas:focus-visible { outline: 2px solid var(--lime-deep); outline-offset: -3px; }
.project-3d-tools { position: absolute; z-index: 2; top: 22px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.project-3d-tools[hidden] { display: none; }
.project-3d-segmented, .project-3d-zoom, .project-3d-control { background: rgba(255,255,255,.96); border: 1px solid #d8dfd6; border-radius: 9px; box-shadow: 0 3px 12px #28332308; }
.project-3d-segmented { display: flex; padding: 3px; }
.project-3d-tools button { font-size: 14px; font-weight: 600; }
.project-3d-segmented button { height: 32px; padding: 0 14px; border-radius: 6px; background: transparent; color: var(--ink-soft); }
.project-3d-segmented button[aria-pressed="true"] { background: var(--ink); color: #fff; }
.project-3d-control { height: 40px; padding: 0 15px; }
.project-3d-control[aria-pressed="true"] { background: var(--lime); border-color: var(--lime-deep); }
.project-3d-capture { display: flex; align-items: center; gap: 7px; }
.project-3d-capture svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linejoin: round; }
.project-3d-capture:disabled { opacity: .55; cursor: progress; }
.project-3d-zoom { display: flex; padding: 3px; }
.project-3d-zoom button { width: 33px; height: 32px; background: transparent; border-radius: 5px; font-size: 21px; font-weight: 400; }
.project-3d-tools button:hover { filter: brightness(.95); }
.project-3d-dialog button:focus-visible { outline: 2px solid #739b23; outline-offset: 3px; }
.project-3d-message { position: absolute; top: 40%; left: 50%; transform: translate(-50%,-50%); width: min(430px,90%); text-align: center; font-size: 16px; line-height: 1.8; color: var(--ink-soft); }
.project-3d-message[hidden] { display: none; }
.project-3d-note { position: absolute; bottom: 24px; left: 50%; transform: translateX(-50%); font-size: 12px; color: var(--ink-soft); background: #ffffffdb; padding: 8px 12px; border-radius: 6px; white-space: nowrap; pointer-events: none; }
.project-3d-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-shrink: 0; min-height: 48px; padding: 10px 28px; background: #fff; border-top: 1px solid var(--line); color: var(--ink-soft); font-size: 12px; }
.project-3d-footer p { margin: 0; }
.project-3d-footer > span { color: var(--muted); white-space: nowrap; }
@media (max-width: 1120px) {
  .project-3d-tools { width: calc(100% - 24px); justify-content: center; flex-wrap: wrap; top: 12px; gap: 6px; }
  .project-3d-footer { flex-wrap: wrap; gap: 4px; }
}
@media (max-width: 800px) {
  .project-3d-header { padding: 0 16px; }.project-3d-heading h2 { font-size: 15px; }.project-3d-header kbd { display: none; }
  .project-3d-tools { width: calc(100% - 24px); justify-content: center; flex-wrap: wrap; top: 12px; gap: 6px; }
  .project-3d-tools button { font-size: 12px; }.project-3d-footer { padding: 10px 16px; font-size: 11px; }.project-3d-footer > span { white-space: normal; }
}
.canvas-stage { position: relative; flex: 1; min-height: 480px; display: flex; align-items: center; justify-content: center; overflow: hidden; transition: background .18s ease; }.canvas-stage.drag-active { background: #e8efdf; }.canvas-stage.drag-over { background: #e3f1d4; box-shadow: inset 0 0 0 2px rgba(184,223,81,.7); }
#planCanvas { width: min(92%, 1080px); max-height: calc(100vh - 207px); min-height: 440px; overflow: visible; transition: transform .18s ease; transform-origin: center; }
.canvas-background { cursor: crosshair; }.plan-room { cursor: move; transition: filter .14s ease; pointer-events: all; }.plan-room:hover { filter: brightness(.985); }.room-fill { filter: none; }.object-selectable { cursor: move; pointer-events: all; }.selectable:hover { opacity: .9; }
.room-label { font-family: var(--mono); font-size: 12px; letter-spacing: .08em; fill: #435158; pointer-events: none; }.room-size { font-family: var(--mono); font-size: 10px; fill: #839095; pointer-events: none; }.room-number { font-family: var(--mono); font-size: 10px; fill: #758188; pointer-events: none; }
.wall { stroke: #28343a; stroke-linecap: square; pointer-events: stroke; }.wall-inner { stroke: #fff; pointer-events: none; }
.door-leaf { fill: none; stroke: #44545a; stroke-width: 2; }.door-arc { fill: none; stroke: #92a0a3; stroke-width: 1.2; stroke-dasharray: 4 3; }.window-frame { stroke: #6a9a9d; stroke-width: 9; }.window-line { stroke: #fff; stroke-width: 4; }.object-stroke { stroke: #a3aeaf; stroke-width: 2; }.furniture-fill { fill: #f8e7ba; }.furniture-soft { fill: #ead7d2; }.kitchen-fill { fill: #d5e8e6; }.rug-fill { fill: #f4dfbf; stroke: #ba916f; stroke-width: 2; stroke-dasharray: 5 4; }.plant-fill { fill: #98bb74; stroke: #75965b; stroke-width: 1.5; }.plant-pot { fill: #d5a987; stroke: #ad8062; stroke-width: 1.5; }.lamp-fill { fill: #f5db91; stroke: #c59c4c; stroke-width: 1.5; }.lamp-center { fill: #fff9e8; stroke: #c59c4c; stroke-width: 1; }.wardrobe-fill { fill: #d8dadd; }.column-fill { fill: #687579; stroke: #26353a; stroke-width: 2; }.column-cross { stroke: #d5f878; stroke-width: 2; opacity: .88; pointer-events: none; }.structural-object { cursor: move; }.object-text { font-family: var(--mono); font-size: 9px; fill: #7c888b; pointer-events: none; }
.selection-rect { fill: none; stroke: #2c3b3d; stroke-width: 2; stroke-dasharray: 6 4; pointer-events: none; }.selection-handle { fill: var(--lime); stroke: #2c3b3d; stroke-width: 1.5; }
.canvas-note { position: absolute; left: 23px; top: 18px; display: flex; gap: 8px; align-items: center; color: #95a0a3; font-size: 10px; }.note-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--lime-deep); }
.scale-chip { position: absolute; left: 24px; bottom: 25px; display: flex; align-items: flex-end; gap: 7px; color: #77858a; font-family: var(--mono); font-size: 9px; }.scale-line { width: 54px; height: 7px; display: block; border: 1px solid #8d9a9e; border-top: 0; }
.zoom-control { position: absolute; right: 23px; bottom: 22px; height: 32px; padding: 3px; border-radius: 7px; background: rgba(255,255,255,.87); border: 1px solid var(--line); display: flex; align-items: center; box-shadow: 0 3px 8px rgba(36,49,54,.05); }.zoom-control button { width: 25px; height: 24px; border-radius: 4px; background: transparent; color: var(--ink-soft); font-size: 17px; line-height: 20px; }.zoom-control button:hover { background: var(--lime); color: var(--ink); }.zoom-control span { width: 48px; text-align: center; font-family: var(--mono); font-size: 9px; color: var(--ink-soft); }.fit-button { position: absolute; right: 23px; bottom: 65px; width: 32px; height: 32px; border-radius: 7px; background: rgba(255,255,255,.87); border: 1px solid var(--line); color: var(--ink-soft); font-size: 17px; box-shadow: 0 3px 8px rgba(36,49,54,.05); }.fit-button:hover { background: var(--lime); color: var(--ink); }
.canvas-status { height: 35px; background: rgba(255,255,255,.86); border-top: 1px solid var(--line); padding: 0 21px; display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: center; color: var(--muted); font-family: var(--mono); font-size: 9px; }.status-key { display: inline-flex; align-items: center; justify-content: center; width: 17px; height: 17px; border-radius: 3px; background: #edf0f0; color: var(--ink-soft); margin-right: 5px; font-size: 8px; }.status-key:nth-of-type(2) { margin-left: 10px; }.status-center { text-align: center; color: #829095; }.status-right { display: flex; justify-content: flex-end; align-items: center; gap: 9px; }.status-divider { height: 13px; width: 1px; background: var(--line); }

.inspector-header { display: flex; align-items: flex-start; justify-content: space-between; padding-bottom: 19px; border-bottom: 1px solid var(--line); }.inspector-header h2 { font-size: 17px; margin: 4px 0 0; letter-spacing: -.4px; }.close-inspector { width: 25px; height: 25px; border-radius: 5px; background: #f4f6f6; color: var(--muted); font-size: 19px; line-height: 18px; }.close-inspector:hover { background: var(--lime); color: var(--ink); }
.empty-inspector { text-align: center; padding: 46px 19px 28px; }.empty-icon { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 50%; margin: auto; background: #f3f6f4; color: #9ca9aa; font-size: 25px; }.empty-inspector h3 { font-size: 13px; margin: 15px 0 7px; }.empty-inspector p { color: var(--muted); font-size: 10px; line-height: 1.6; margin: 0; }
.quick-start-card { border: 1px solid #e0e9ca; border-radius: 8px; background: #fbfff1; padding: 13px 14px; }.quick-start-title { font-size: 10px; font-weight: 800; display: flex; align-items: center; gap: 7px; }.sparkle { color: var(--lime-deep); font-size: 16px; }.quick-start-card p { color: #7b866f; font-size: 9px; line-height: 1.55; margin: 8px 0 0; }.quick-start-card kbd { background: #fff; border-color: #dce7c5; color: #81925b; }
.object-properties { padding-top: 18px; }.object-type { display: flex; align-items: center; gap: 9px; color: var(--ink-soft); font-size: 10px; margin-bottom: 18px; }.type-badge { width: 25px; height: 25px; border-radius: 6px; display: flex; align-items: center; justify-content: center; font-family: var(--mono); font-size: 12px; background: var(--coral); color: #624c45; }.property-label { display: block; color: var(--muted); font-family: var(--mono); font-size: 9px; letter-spacing: .07em; margin: 0 0 6px; }.property-input { width: 100%; height: 35px; border: 1px solid var(--line); border-radius: 6px; outline: 0; background: #fff; color: var(--ink); font-size: 11px; padding: 0 10px; }.property-input:focus { border-color: var(--lime-deep); box-shadow: 0 0 0 3px rgba(213,248,120,.22); }.property-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 13px; }.property-footer { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--line); margin-top: 21px; padding-top: 16px; }.delete-button { color: #b7796a; background: transparent; font-size: 10px; padding: 5px 0; }.delete-button:hover { color: #9e5141; }.duplicate-button { color: var(--ink-soft); background: #f4f6f6; border-radius: 5px; padding: 7px 9px; font-size: 9px; }.duplicate-button:hover { background: var(--lime); color: var(--ink); }.attachment-hint { display: flex; align-items: center; gap: 7px; margin-top: 14px; padding: 9px 10px; border-radius: 6px; background: #f5f8ec; color: #78875a; font-size: 9px; }.attachment-hint span { color: var(--lime-deep); font-size: 15px; }.hint-text { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line); color: var(--muted); font-size: 9px; line-height: 1.55; }.hint-text strong { color: var(--ink-soft); }
.wall-actions { margin-top: 17px; padding-top: 15px; border-top: 1px solid var(--line); }.wall-actions-title { display: block; margin-bottom: 8px; color: var(--muted); font-family: var(--mono); font-size: 9px; letter-spacing: .07em; }.wall-actions-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 5px; }.wall-action { min-height: 42px; border: 1px solid var(--line); border-radius: 6px; background: #fbfcfc; color: var(--ink-soft); font-size: 9px; line-height: 1.25; }.wall-action:hover { border-color: var(--lime-deep); background: #fbfff0; color: var(--ink); }.wall-action span { display: block; color: var(--lime-deep); font-size: 17px; line-height: 17px; margin-bottom: 2px; }

.toast { position: fixed; z-index: 30; left: 50%; bottom: 27px; transform: translate(-50%, 20px); opacity: 0; pointer-events: none; display: flex; align-items: center; gap: 9px; padding: 10px 14px 10px 10px; background: var(--ink); color: #fff; border-radius: 8px; font-size: 11px; box-shadow: 0 8px 20px rgba(26,33,38,.18); transition: .22s ease; }.toast.visible { transform: translate(-50%, 0); opacity: 1; }.toast-mark { width: 18px; height: 18px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--lime); color: var(--ink); font-size: 11px; font-weight: 800; }
.left-panel.compact { width: 64px; padding-left: 9px; padding-right: 9px; }.left-panel.compact .panel-topline { padding-left: 5px; }.left-panel.compact .panel-topline .section-kicker, .left-panel.compact .tool-button span:not(.tool-icon), .left-panel.compact .tool-button kbd, .left-panel.compact .library-section, .left-panel.compact .sidebar-footer { display: none; }.left-panel.compact .tool-button { grid-template-columns: 1fr; justify-items: center; padding: 0; }.left-panel.compact .collapse-button { transform: rotate(180deg); }
.modal-backdrop { position: fixed; inset: 0; display: flex; justify-content: center; align-items: center; background: rgba(24,31,35,.26); opacity: 0; pointer-events: none; transition: .2s ease; z-index: 20; }.modal-backdrop.visible { opacity: 1; pointer-events: auto; }.share-modal { width: 380px; position: relative; border-radius: 14px; background: #fff; padding: 28px; box-shadow: 0 20px 60px rgba(31,42,48,.2); }.modal-close { position: absolute; top: 15px; right: 15px; width: 25px; height: 25px; border-radius: 6px; background: #f3f5f5; color: var(--muted); font-size: 18px; }.modal-icon { width: 38px; height: 38px; border-radius: 10px; display: flex; align-items: center; justify-content: center; background: var(--lime); font-size: 21px; margin-bottom: 19px; }.share-modal h2 { margin: 6px 0 9px; font-size: 21px; letter-spacing: -.7px; }.share-modal p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }.share-link { height: 40px; display: flex; align-items: center; justify-content: space-between; gap: 10px; background: #f5f7f7; border-radius: 7px; margin-top: 20px; padding: 0 6px 0 10px; color: var(--ink-soft); font-family: var(--mono); font-size: 9px; }.share-link button { border-radius: 5px; background: var(--ink); color: #fff; height: 28px; padding: 0 10px; font-size: 9px; }.share-link button:hover { background: #3f5058; }

@media (max-width: 1240px) { .workspace, .workspace.inspector-open { grid-template-columns: 200px minmax(450px, 1fr) 270px; }.right-panel { width: 270px; }.topbar { padding-left: 20px; padding-right: 20px; gap: 20px; }.brand-block { width: 190px; }.save-state { display: none; } }

.column-art, .column-round-art { background: #edf2f0; color: #53656b; font-size: 22px; }.column-art { border: 1px solid #9eabad; }.column-round-art { border-radius: 50%; }
.property-input:is(select) { appearance: auto; padding-right: 6px; }
.area-summary { display: flex; align-items: center; justify-content: space-between; margin-top: 15px; padding: 10px 11px; border-radius: 6px; background: #f6f8f3; color: var(--muted); font-family: var(--mono); font-size: 8px; letter-spacing: .06em; }.area-summary strong { color: var(--ink-soft); font-size: 12px; letter-spacing: 0; }
.room-actions { display: grid; gap: 6px; margin-top: 15px; }.connect-button, .disconnect-button { min-height: 34px; border-radius: 6px; font-size: 9px; }.connect-button { background: var(--lime); color: var(--ink); font-weight: 800; }.connect-button:hover { background: var(--lime-deep); }.disconnect-button { background: #f1f4f3; color: var(--ink-soft); }.disconnect-button:hover { background: #e6ebea; }

/* Stable canvas coordinates; sidebars scroll without moving the plan. */
.topbar, .canvas-toolbar, .canvas-status { flex-shrink: 0; }
.canvas-panel, .left-panel, .right-panel { min-height: 0; }
.canvas-stage { min-height: 0; }
#planCanvas { position:absolute; inset:0; display:block; width:100%; height:100%; min-height:0; max-height:100%; overflow:hidden; transition:none; transform:none; touch-action:none; user-select:none; }
.object-text, .room-label, .room-size, .room-number { pointer-events: all; cursor: pointer; }
.selection-handle { pointer-events: none; }
circle.selection-handle { pointer-events: all; cursor: move; }
#drawingLayer { pointer-events: none; }
.snap-preview { fill: #cfeaa522; stroke: #78a52d; stroke-width: 3; stroke-dasharray: 9 5; pointer-events: none; }
.canvas-note { pointer-events: none; }

.room-tools { margin-top: 18px; }
.room-tool-section { border-top: 1px solid var(--line); padding: 10px 0; }
.room-tool-section summary { cursor: pointer; color: var(--ink); font-size: 11px; font-weight: 700; padding: 4px 0; }
.room-tool-section summary span { float: right; color: var(--muted); font-size: 9px; font-weight: 500; }
.room-palette { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 8px; }
.room-palette .palette-card { width: 100%; }
.room-tool-help { color: var(--muted); font-size: 10px; line-height: 1.55; margin: 9px 0; }
.contour-actions { display: grid; gap: 6px; margin-top: 10px; }
.contour-button { text-align: left; border: 1px solid var(--line); border-radius: 6px; padding: 9px 10px; font-size: 10px; background: #f8faf7; }
.contour-button:hover, .contour-button.active { background: var(--lime); border-color: var(--lime-deep); }
.contour-button:disabled, .delete-button:disabled { cursor: default; opacity: .4; background: #f6f7f6; }
.room-shapes { margin-top: 8px; }
.vertex-properties { padding: 10px; border: 1px solid #deebc8; border-radius: 6px; background: #fbfff5; font-size: 10px; }
.vertex-properties .property-row { margin-top: 8px; }
.room-vertex { fill: #fff; stroke: #52731e; stroke-width: 2px; vector-effect: non-scaling-stroke; cursor: grab; pointer-events: all; }
.room-vertex:hover, .room-vertex.active { fill: var(--lime); stroke: #273d0a; }
.room-vertex:active { cursor: grabbing; }
.room-edge-add { cursor: copy; pointer-events: all; }
.room-edge-add circle { fill: #f7ffee; stroke: #8caa63; stroke-width: 1px; vector-effect: non-scaling-stroke; }
.room-edge-add text { fill: #52731e; pointer-events: none; }
.room-edge-add:hover circle { fill: var(--lime); }
.back-to-room { width: 100%; text-align: left; margin-bottom: 14px; padding: 9px; border-radius: 5px; background: #f0f5e9; color: #536c38; font-size: 10px; }
.shared-elements { display: grid; gap: 5px; }
.shared-elements button { padding: 9px; text-align: left; background: #f2f7eb; border: 1px solid #dce8cb; border-radius: 5px; font-size: 10px; }
.shared-elements button:hover { background: var(--lime); }
.corner-snap-target { fill: #d5f87866; stroke: #628b25; stroke-width: 2; pointer-events: none; }

/* The catalog remains one compact, searchable sidebar regardless of item count. */
.library-search { display:flex; align-items:center; border:1px solid var(--line); border-radius:7px; background:#f8faf9; }
.library-search:focus-within { border-color:#9ab966; box-shadow:0 0 0 2px #d5f87844; }
.library-search input { min-width:0; width:100%; border:0; background:none; outline:none; padding:10px 8px; font:inherit; font-size:11px; color:var(--ink); }
.library-search input::-webkit-search-cancel-button { display:none; }
.library-search button { background:none; padding:4px 8px; color:var(--muted); font-size:18px; }
.library-results { color:var(--muted); font-size:9px; line-height:1.5; margin:8px 0 10px; }
.library-empty { color:var(--ink-soft); padding:16px 4px; font-size:11px; line-height:1.6; }
#palette [hidden] { display:none !important; }
#palette.searching .palette-items { display:grid; }
.catalog-art { height:44px; padding:2px; }
.catalog-art svg { width:100%; height:100%; pointer-events:none; }
#interiorLibrary .palette-items { grid-template-columns:1fr; }
.interior-card { min-height:65px; display:grid; grid-template-columns:48px minmax(0,1fr); align-items:center; gap:9px; }
.interior-card b { white-space:normal; font-size:10px; line-height:1.4; overflow-wrap:break-word; }
.interior-card small { margin-top:3px; font-family:var(--mono); font-size:8px; }
.preset-edit-hint { display:block; margin-top:4px; font-size:9px; color:#68794e; }
.interior-card[aria-expanded="true"] { border-color:#899b6d; background:#f4f8ee; }
.interior-card.invalid-size { border-color:#b47760; }
.preset-editor { min-width:0; border:1px solid #d7dfce; border-radius:8px; background:#f6f9f1; padding:10px; margin-top:-3px; }
.preset-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; font-size:11px; }
.preset-heading button { width:24px; height:24px; border-radius:5px; background:transparent; font-size:18px; color:var(--ink-soft); }
.preset-dimensions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.preset-dimensions.single { grid-template-columns:1fr; }
.preset-dimensions label { min-width:0; font-size:10px; color:var(--ink-soft); }
.preset-dimensions label > span { display:flex; align-items:center; gap:3px; margin-top:5px; padding:0 6px; border:1px solid var(--line); border-radius:5px; background:white; }
.preset-dimensions input { width:100%; min-width:0; height:32px; border:0; background:transparent; color:var(--ink); font:12px var(--mono); }
.preset-dimensions input { appearance:textfield; -moz-appearance:textfield; }
.preset-dimensions input::-webkit-inner-spin-button, .preset-dimensions input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.preset-dimensions input[aria-invalid="true"] { color:#9b4729; }
.preset-dimensions small { color:var(--muted); font-size:9px; }
.preset-dimensions:is(.tv-dimensions,.mirror-dimensions) { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--control-gap); align-items:end; }
.preset-dimensions.mirror-dimensions { grid-template-columns:repeat(3,minmax(0,1fr)); }
.preset-dimensions:is(.tv-dimensions,.mirror-dimensions) label { display:grid; grid-template-rows:auto var(--control-compact-height); gap:4px; letter-spacing:normal; font:var(--control-weight) var(--text-description)/1.4 var(--font-ui); }
.preset-dimensions:is(.tv-dimensions,.mirror-dimensions) :is(input,select) { box-sizing:border-box; width:100%; min-width:0; height:var(--control-compact-height); padding:0 6px; border:1px solid var(--line); border-radius:var(--radius-compact); background:var(--panel); font:var(--control-weight) var(--text-ui)/1.4 var(--font-ui); }
.preset-actions { display:flex; flex-wrap:wrap; gap:6px; margin-top:9px; }
.preset-actions button { padding:7px 6px; border:1px solid var(--line); border-radius:5px; background:white; font-size:10px; }
.preset-actions button:hover, .preset-heading button:hover { background:var(--lime); }
.preset-actions button:disabled { opacity:.45; cursor:not-allowed; }
.preset-help, .preset-error { margin:9px 0 0; font-size:10px; line-height:1.5; color:#68754f; }
.preset-error { color:#9b4729; }
.interior-art { pointer-events:none; }
.interior-options { margin-top:16px; padding-top:5px; border-top:1px solid var(--line); }
.interior-turns { display:flex; gap:6px; margin-top:7px; }
.interior-turns button { flex:1; padding:9px 3px; border:1px solid var(--line); border-radius:6px; background:#f7faf3; font-size:11px; }
.interior-turns button:hover, .interior-turns button[aria-pressed="true"] { background:var(--lime); border-color:#a5bf78; }
.interior-appearance { display:flex; justify-content:space-between; gap:10px; margin-top:12px; }
.interior-appearance label { display:flex; align-items:center; gap:6px; color:var(--ink-soft); font-size:10px; }
.interior-appearance input[type="color"] { border:1px solid var(--line); width:32px; height:24px; border-radius:4px; padding:1px; background:white; }
.interior-appearance input[type="checkbox"] { accent-color:#90ac57; }
.interior-size-help { margin:16px 0 6px; color:#65744f; }
.interior-dimensions { padding:10px; border:1px solid #dce6ce; border-radius:7px; background:#f8fbf3; margin-top:0; }
.interior-dimensions .property-label { margin-bottom:0; }
.room-palette-help { display:none; font-size:9px; margin:0 0 9px; }
.palette-group.expanded .room-palette-help, #palette.searching .room-palette-help { display:block; }
.door-controls { margin:14px 0; padding:12px; border:1px solid #dce6ce; border-radius:8px; background:#f8fbf3; }
.door-controls > strong { display:block; margin-bottom:14px; font-size:12px; }
.door-controls .room-tool-help { margin-bottom:0; }
.angle-snap-label { fill:#416b37; font-size:14px; font-weight:700; paint-order:stroke; stroke:white; stroke-width:4px; pointer-events:none; }
.navigation-help { position:absolute; bottom:27px; left:150px; right:155px; text-align:center; font-size:9px; line-height:1.4; color:#78868a; pointer-events:none; }
.canvas-note { z-index:1; pointer-events:none; }
.scale-chip { pointer-events:none; }
.pan-ready #planCanvas, .pan-ready #planCanvas *, .panning #planCanvas, .panning #planCanvas * { cursor:grab !important; }
.panning #planCanvas, .panning #planCanvas * { cursor:grabbing !important; }
.zoom-control button:disabled { opacity:.3; cursor:default; }
@media(max-width:1240px) { .navigation-help { bottom:63px; left:20px; right:65px; font-size:8px; } }

/* Compact, consistent property panels without hiding editable fields. */
.workspace .right-panel, .workspace.inspector-open .right-panel { padding:16px 14px; }
.right-panel .inspector-header { padding-bottom:12px; }
.right-panel .inspector-header h2 { font-size:16px; }
.compact-properties { padding-top:10px; }
.compact-properties .property-label { font-size:9px; letter-spacing:.035em; margin-bottom:3px; line-height:16px; }
.compact-properties .property-input { height:30px; padding:0 8px; font-size:11px; }
.compact-properties .property-row { margin-top:8px; gap:8px; }
.compact-properties .back-to-room { margin-bottom:9px; padding:6px 8px; }
.compact-properties .area-summary { margin-top:8px; padding:7px 9px; }
.compact-properties .attachment-hint { margin-top:7px; padding:6px 8px; line-height:1.4; }
.compact-properties .room-tools { margin-top:10px; }
.compact-properties .room-tool-section { margin-top:7px; padding-top:7px; }
.compact-properties .room-tool-section summary { padding:3px 0; font-size:11px; }
.compact-properties .room-tool-help { font-size:9px; line-height:1.45; margin:6px 0; }
.compact-properties .contour-actions { grid-template-columns:1fr 1fr; gap:5px; margin-top:7px; }
.compact-properties [data-contour="edit"] { grid-column:1/-1; }
.compact-properties .contour-button { padding:7px 6px; font-size:10px; min-height:30px; }
.compact-properties .wall-actions { margin-top:10px; padding-top:10px; }
.compact-properties .wall-action { min-height:30px; }
.compact-properties .room-palette { gap:5px; margin-top:6px; }
.compact-properties .room-palette .palette-card { display:grid; grid-template-columns:25px 1fr; gap:6px; align-items:center; padding:6px; min-height:44px; }
.compact-properties .room-palette .palette-art { width:25px; height:25px; margin:0; font-size:17px; }
.compact-properties .room-palette b { font-size:10px; }
.compact-properties .room-palette small { font-size:8px; margin-top:2px; }
.compact-properties .vertex-properties { padding:7px; }
.compact-properties .room-actions { margin-top:8px; }
.compact-properties .connect-button { min-height:30px; }
.compact-properties .shared-elements { gap:4px; }
.compact-properties .shared-elements button { padding:6px; }
.compact-properties .interior-dimensions { padding:7px; }
.compact-properties .interior-options { margin-top:9px; padding-top:8px; }
.interior-orientation { display:grid; grid-template-columns:1fr 72px; align-items:end; gap:8px; }
.compact-properties .interior-turns { margin:0 0 3px; gap:5px; }
.compact-properties .interior-turns button { height:30px; padding:5px; display:grid; place-items:center; }
.interior-turns svg, .history-button svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.mirror-button { width:100%; margin-top:5px; min-height:28px; background:#f7faf3; border:1px solid var(--line); border-radius:5px; font-size:10px; }
.mirror-button:hover, .mirror-button[aria-pressed="true"] { background:var(--lime); }
.compact-properties .interior-appearance { margin-top:8px; }
.compact-properties .door-controls { margin:9px 0; padding:8px; }
.compact-properties .door-controls > strong { font-size:11px; margin-bottom:6px; }
.compact-properties .door-controls .property-label + .property-label { margin-top:5px; }
.property-help { margin-top:10px; border-top:1px solid var(--line); padding-top:7px; color:var(--muted); }
.property-help summary { font-size:10px; cursor:pointer; }
.property-help .hint-text { margin:6px 0; border:0; padding:0; }
.compact-properties .property-footer { margin-top:9px; padding-top:9px; }
.compact-properties .property-footer button { font-size:10px; min-height:28px; padding:5px 7px; }
.history-button { width:34px; height:34px; border:1px solid var(--line); background:#f8faf9; color:var(--ink-soft); }
.history-button:hover:not(:disabled) { background:var(--lime); border-color:#b7cc94; }
.history-button:disabled { opacity:.35; cursor:default; }
.wall-surfaces, .wall-surfaces * { pointer-events:none; }
.wall-surfaces .wall-inner { stroke-linecap:round; }
.wall-dimension { font-family:var(--mono); font-size:12px; fill:#26363b; paint-order:stroke; stroke:#f3f5f3; stroke-width:5px; stroke-linejoin:round; cursor:pointer; pointer-events:all; }
.wall-split-controls { margin-top:10px; padding-top:10px; border-top:1px solid var(--line); }
.wall-split-controls > strong { font-size:12px; }
.wall-split-controls .property-row { align-items:end; }
.wall-split-controls button { min-height:30px; padding:5px 7px; border-radius:5px; background:#f2f6e9; color:var(--ink-soft); font-size:11px; }
.wall-split-controls button:hover, .wall-split-controls button[aria-pressed="true"] { background:var(--lime); }
.wall-split-actions { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-top:6px; }
.wall-split-controls button:disabled { opacity:.4; cursor:default; }
.plan-annotation { paint-order:stroke; stroke:#f3f5f3; stroke-linejoin:round; }
.room-caption .room-label { font-weight:500; fill:#3f4e49; }
.room-caption .room-size { fill:#68776f; }
.object-text.plan-annotation { fill:#67736d; }
.dimension-leader { stroke:#819089; stroke-width:1; vector-effect:non-scaling-stroke; pointer-events:none; }
.plan-zoom-entry { display:flex; align-items:center; gap:2px; padding:0 4px; }
.plan-zoom-entry #zoomValue { width:44px; min-width:0; height:24px; padding:2px; border:1px solid var(--line); border-radius:4px; background:transparent; color:var(--ink); text-align:center; font:400 12px var(--font-ui); }
.plan-zoom-entry #zoomValue:focus-visible { outline:2px solid #7b9462; outline-offset:0; }
.plan-zoom-entry #zoomValue::-webkit-inner-spin-button { appearance:none; }
.zoom-control .plan-zoom-entry span { width:auto; font:400 11px var(--font-ui); }
