/* Hallmark · component: furniture editor · genre: modern-minimal · theme: Metella
 * states: default · hover · focus · active · disabled · loading · error · success
 * Contextual actions follow the selected object; no permanent editing panel.
 */
.furniture-editor{position:absolute;inset:0;z-index:35;pointer-events:none;color:var(--color-ink);font-family:var(--font-body)}
.furniture-editor[hidden],.furniture-editor [hidden]{display:none!important}
.furniture-editor button,.furniture-editor select{font:inherit;color:inherit;min-height:44px;cursor:pointer;white-space:nowrap;transition:background var(--dur-ui),transform var(--dur-ui),box-shadow var(--dur-ui)}
.furniture-editor button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:transparent;border-radius:14px;padding:10px 14px;font-size:14px}
.furniture-editor svg{width:22px;height:22px;flex:none}
.furniture-editor button:hover,.furniture-editor button.is-hover{background:var(--color-accent-soft)}
.furniture-editor button:focus-visible,.furniture-editor select:focus-visible,.furniture-editor button.is-focus{outline:3px solid var(--color-focus);outline-offset:3px}
.furniture-editor button:active,.furniture-editor button.is-active{transform:scale(.97)}
.furniture-editor button:disabled{opacity:.38;cursor:not-allowed;transform:none;background:transparent}
.furniture-editor-top{position:absolute;top:16px;left:20px;right:20px;display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:auto}
.furniture-editor-top>div{padding:10px 16px;background:var(--color-glass);border:1px solid var(--color-line);border-radius:18px;box-shadow:0 4px 20px var(--color-shadow)}
.furniture-editor-top strong{display:block;font-size:17px;font-weight:650}
.furniture-editor-top [data-total]{display:block;font-size:12px;color:var(--color-muted);margin-top:4px}
.furniture-editor .furniture-done{background:var(--color-accent);color:var(--color-inverse);padding:12px 20px;border-radius:25px;box-shadow:0 4px 20px var(--color-shadow);font-weight:600}
.furniture-editor .furniture-done:hover{background:var(--color-catalog-accent)}
.furniture-selection{position:absolute;top:97px;left:20px;display:flex;align-items:center;gap:8px;pointer-events:auto;background:var(--color-glass);padding:4px 6px 4px 14px;border-radius:28px;border:1px solid var(--color-line);box-shadow:0 4px 20px var(--color-shadow);font-size:12px}
.furniture-selection label{color:var(--color-muted)}
.furniture-selection select{font-size:13px;min-width:0;max-width:170px;background:transparent;border:0;padding:6px 22px 6px 4px}
.furniture-selection button{border-left:1px solid var(--color-line);border-radius:0 24px 24px 0}
.furniture-context{position:absolute;pointer-events:auto;width:264px;max-width:calc(100% - 24px);background:var(--color-ink);color:var(--color-inverse);border-radius:22px;box-shadow:0 10px 35px var(--color-shadow);animation:furniture-appear 180ms var(--ease-out)}
.furniture-item-name{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 16px;padding:12px 0 9px;border-bottom:1px solid #ffffff24;font-size:12px}
.furniture-item-name strong{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.furniture-item-name span{white-space:nowrap;color:#d6e0e5;font-size:11px}
.furniture-context-actions{display:flex;padding:5px;gap:2px}
.furniture-context-actions button{flex:1;flex-direction:column;gap:6px;padding:9px 8px;font-size:12px;min-height:67px}
.furniture-context-actions button:hover,.furniture-context-actions button.is-hover{background:#ffffff1c}
.furniture-context-actions button:focus-visible{outline-color:#80c8ff;outline-offset:-3px}
.furniture-context-actions [data-remove]:hover{background:#6a302f}
.furniture-feedback{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);text-align:center;background:var(--color-glass);padding:12px 18px;border:1px solid var(--color-line);border-radius:18px;box-shadow:0 6px 30px var(--color-shadow)}
.furniture-feedback p{margin:0;font-size:14px;font-weight:550;line-height:1.4}
.furniture-feedback small{display:block;color:var(--color-muted);font-size:11px;line-height:1.5;margin-top:5px}
.furniture-editor[data-state=error] .furniture-feedback{border-color:#bd554b;color:#9a3429}
.furniture-editor[data-state=success] .furniture-feedback p{color:var(--color-accent)}
.furniture-editor[data-state=loading] .furniture-context{opacity:.65;pointer-events:none}
.furniture-editor[data-state=loading] .furniture-feedback p::before{content:'';display:inline-block;width:12px;height:12px;border:2px solid var(--color-line);border-top-color:var(--color-accent);border-radius:50%;animation:furniture-spin 700ms linear infinite;margin-right:8px}
.arranging .mode-tabs,.arranging #hint,.arranging #helpButton,.arranging #landscapeToggle,.arranging #renderQuality,.arranging #interiorRooms,.arranging #interaction,.arranging #reticle{visibility:hidden}
.arranging canvas{touch-action:none;border-radius:inherit}.arranging canvas:focus-visible{outline:2px solid var(--color-accent);outline-offset:-3px}
@keyframes furniture-appear{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes furniture-spin{to{transform:rotate(360deg)}}
@media(max-width:900px){.arranging #viewport{height:100%!important}.furniture-editor-top{top:12px;left:12px;right:12px;gap:8px}.furniture-editor-top>div{padding:10px 12px}.furniture-editor-top strong{font-size:15px}.furniture-editor-top [data-total]{font-size:11px}.furniture-editor .furniture-done{padding:12px 15px}.furniture-selection{top:90px;left:12px;max-width:calc(100% - 24px)}.furniture-feedback{bottom:max(16px,env(safe-area-inset-bottom));padding:10px 12px}.furniture-feedback p{font-size:13px}.furniture-context{width:244px}.furniture-item-name{margin:0 13px}.furniture-context-actions button{min-height:63px}}
@media(prefers-reduced-motion:reduce){.furniture-editor *{transition:none!important;animation:none!important}}
.furniture-editor-views{position:absolute;top:96px;right:20px;display:flex;padding:4px;background:var(--color-glass);border:1px solid var(--color-line);border-radius:26px;pointer-events:auto;box-shadow:0 4px 20px var(--color-shadow)}
.furniture-editor-views button{border-radius:22px;min-width:64px}.furniture-editor-views button[aria-pressed=true]{background:var(--color-accent);color:var(--color-inverse)}
.quick-arrange{position:absolute;left:64px;top:12px;z-index:5;display:flex;align-items:center;gap:7px;background:var(--color-paper);border:1px solid var(--color-line);border-radius:24px;padding:10px 14px;min-height:44px;color:var(--color-accent);font:600 12px var(--font-body);box-shadow:0 3px 14px var(--color-shadow);cursor:pointer}.quick-arrange[hidden]{display:none}.quick-arrange svg{width:20px;height:20px}.arranging .quick-arrange,.landing .quick-arrange,.quote-open .quick-arrange{display:none}.quick-arrange:hover{background:var(--color-accent-soft)}.quick-arrange:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}
@media(max-width:600px){.furniture-selection{top:89px;max-width:calc(100% - 128px);gap:3px;padding-left:8px}.furniture-selection label{display:none}.furniture-selection select{max-width:120px}.furniture-selection button{padding:8px}.furniture-editor-views{top:90px;right:12px;gap:0}.furniture-editor-views button{min-width:44px;padding:8px;font-size:12px}.quick-arrange{left:12px;top:64px;font-size:11px}}
.socket-position-options{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:10px}
.socket-position-options button{border:1px solid #ffffff36;border-radius:50%;padding:8px;aspect-ratio:1}
.socket-position-options button[aria-pressed=true]{background:#fff;color:#184e6c}
.furniture-item-name:has(+.socket-position-options:not([hidden])){flex-direction:column;gap:4px}
.section-arrange{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid var(--color-line);background:white;border-radius:24px;white-space:nowrap;font:inherit;font-size:13px;cursor:pointer}
.section-arrange svg{width:18px;height:18px}.section-arrange[hidden]{display:none}
.restore-included{display:block;width:100%;padding:12px;text-align:left;border:1px solid var(--color-line);border-radius:14px;background:white;margin:8px 0;font:inherit;cursor:pointer}
@media(max-width:600px){.section-arrange{padding:8px 10px;font-size:12px}.panel-top{gap:8px}.panel-top h2{min-width:0;flex:1}}
