:root{--qm-bg:#f8fafc;--qm-text:#1e293b}.dark{--qm-bg:#34495e;--qm-text:#fff}.quick-menu{background:var(--qm-bg);z-index:200;border-radius:4px;gap:5px;padding:5px;transition:background .3s;display:flex;position:absolute;top:-40px;left:50%;transform:translate(-50%);box-shadow:0 2px 10px #0000004d}.quick-menu button{color:#fff;cursor:pointer;white-space:nowrap;background:#1abc9c;border:none;border-radius:2px;padding:5px 10px;font-size:11px}.quick-menu button:hover{background:#16a085}.quick-menu button.danger{background:#e74c3c}.quick-menu button.danger:hover{background:#c0392b}.placed-panel.editing{z-index:100;box-shadow:0 0 0 2px #f1c40f,0 0 15px #f1c40f80}:root{--ws-bg:#f1f5f9;--ws-grid-color:#cbd5e1;--ws-surface-bg:#fff;--ws-surface-shadow:#0000001f;--ws-info-color:#475569;--ws-panel-border:#f60}.dark{--ws-bg:#0f172a;--ws-grid-color:#334155;--ws-surface-bg:#1e293b;--ws-surface-shadow:#00000080;--ws-info-color:#e2e8f0;--ws-panel-border:#f60}.wall-workspace-container{background-color:var(--ws-bg);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:20px 0;transition:background-color .3s;display:flex;position:relative;overflow:hidden}.wall-header-info{color:var(--ws-info-color);z-index:10;align-items:center;gap:15px;margin-bottom:10px;font-size:14px;transition:color .3s;display:flex;position:absolute;top:10px;left:50%;transform:translate(-50%)}.btn-fit-screen{background-color:var(--color-accent);color:#fff;cursor:pointer;pointer-events:auto;border:none;border-radius:4px;padding:4px 10px;font-size:12px;font-weight:600;transition:background-color .2s}.btn-fit-screen:hover{background-color:#d35400}.wall-content-wrapper{pointer-events:auto}.wall-surface{background-color:var(--ws-surface-bg);box-shadow:0 0 20px var(--ws-surface-shadow);background-image:linear-gradient(var(--ws-grid-color) 1px, transparent 1px), linear-gradient(90deg, var(--ws-grid-color) 1px, transparent 1px);transform-origin:50%;background-size:100px 100px;flex-shrink:0;transition:background-color .3s,box-shadow .3s}.placed-panel{cursor:grab;box-sizing:border-box;transition:box-shadow .2s}.placed-panel:after{content:"";pointer-events:none;z-index:5;border:var(--stroke-outline) solid var(--color-pattern-line);transition:all .2s;position:absolute;inset:0}.placed-panel .panel-outline{stroke:none!important}.placed-panel.selected{z-index:100}@media (max-width:1023px){.wall-workspace-container:has(.placed-panel.selected) .placed-panel:not(.selected){filter:brightness(.8)saturate(.3);transition:filter .3s}}.placed-panel:active{cursor:grabbing}.placed-panel.colliding:after{border-color:var(--color-status-error);border-width:2px;box-shadow:inset 0 0 15px #e74c3c66}.placed-panel.snapped:after{border-color:var(--color-snap-corner);box-shadow:0 0 0 1px var(--color-snap-marker-ring), 0 0 12px var(--color-snap-glow), inset 0 0 4px var(--color-snap-glow);z-index:10;border-width:2px;border-radius:3px;transition:border-color .15s,box-shadow .15s;inset:-3px}.panel-drag-handle{pointer-events:auto;width:100%;height:100%}.panel-drag-handle svg{pointer-events:auto}.resize-handle{z-index:102;width:calc(var(--handle-radius) * 2);height:calc(var(--handle-radius) * 2);background-color:var(--color-handle-bg);border:1.5px solid var(--color-handle-accent);color:var(--color-handle-accent);pointer-events:auto;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;box-shadow:0 2px 4px #00000026}.resize-handle:hover,.resize-handle.hovered{background-color:var(--color-handle-accent);border-color:var(--color-handle-hover);color:#fff;box-shadow:0 0 15px var(--color-handle-glow)}.resize-handle:hover svg,.resize-handle.hovered svg{filter:drop-shadow(0 0 8px var(--color-handle-hover))}.resize-handle.n{top:0;left:50%}.resize-handle.s{top:100%;left:50%}.resize-handle.e{top:50%;left:100%}.resize-handle.w{top:50%;left:0}.quick-menu{pointer-events:auto!important}@keyframes snap-landed-pulse{0%{filter:brightness(1.15);transform:scale(1.04)}50%{filter:brightness(1.08);transform:scale(1.02)}to{filter:brightness();transform:scale(1)}}.placed-panel.snap-just-landed:after{animation:.3s ease-out snap-landed-pulse}