
.editor{display:grid;grid-template-columns:minmax(300px,380px) 1fr;gap:28px;padding:28px 0 60px;align-items:start}
@media(max-width:900px){.editor{grid-template-columns:1fr}#main{order:-1}}
.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:16px}
.panel h2{font-size:18px;margin:0 0 10px}.panel h3{font-size:15px;margin:14px 0 6px}
.field{margin:0 0 10px}.field label{display:block;font-size:13px;font-weight:600;margin-bottom:3px}.field small{color:var(--muted);font-size:12px}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;margin-bottom:8px}.row .field{flex:1 1 70px;margin:0}
.editor input[type=text],.editor input[type=number],.editor input[type=time],.editor select,.editor textarea{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font:inherit;font-size:15px}
.editor textarea{min-height:140px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.45}
.editor button{padding:9px 14px;border-radius:999px;border:0;background:var(--accent);color:var(--accent-fg);font:600 14px system-ui;cursor:pointer}
.editor button.secondary{background:transparent;color:var(--fg);border:1px solid var(--line)}.editor button.danger{background:transparent;color:var(--err);border:1px solid var(--err)}
.editor button:disabled{opacity:.5;cursor:not-allowed}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.status{font-size:14px;color:var(--muted);margin:0}.status.ok{color:var(--ok)}.status.err{color:var(--err)}
.banner{background:var(--card);border-left:4px solid var(--accent);padding:10px 14px;border-radius:0 10px 10px 0;margin-bottom:14px;font-size:15px}
.canvas{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px;touch-action:none;user-select:none}
.canvas svg{display:block;max-width:100%;height:auto}
.canvas .rp-piece,.canvas .rp-seatg{cursor:grab}.canvas .rp-sel rect:first-child{stroke:var(--accent);stroke-width:3}
.rchecks{list-style:none;padding:0;margin:8px 0 0}.rchecks li{padding:4px 0 4px 24px;position:relative;font-size:14px}
.rchecks li:before{position:absolute;left:0;font-weight:700}.rchecks .ok:before{content:"\2713";color:var(--ok)}.rchecks .no:before{content:"\2717";color:var(--err)}
.rchecks .no{color:var(--err)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;font-size:14px}.kv dt{color:var(--muted)}.kv dd{margin:0;font-variant-numeric:tabular-nums}
.help{font-size:13px;color:var(--muted)}
.editor{--rp-floor:var(--floor);--rp-wall:var(--fg);--rp-text:var(--fg);--rp-muted:var(--muted);--rp-item:var(--item);--rp-item-big:var(--item2);--rp-item-line:var(--item-line);--rp-accent:var(--accent2);--rp-bg:var(--bg);--rp-g1:var(--g1,#7b2d5b);--rp-g2:var(--g2,#d98aa6);--rp-g3:var(--g3,#3f8f8a);--rp-g4:var(--g4,#c99a3e);--rp-g5:var(--g5,#6b7fb3)}
.dragging{opacity:.85}.drop{stroke:var(--accent)!important;stroke-width:3!important}
@media print{header.top,footer,.panel,.toolbar,.banner{display:none!important}.editor{display:block}.canvas{border:0}}
.rp-plan{width:100%;height:auto;font:12px system-ui,sans-serif}
.rp-floor{fill:var(--rp-floor,#f1ece2)}.rp-wall{fill:none;stroke:var(--rp-wall,#1f2a2b);stroke-width:5}
.rp-swing{fill:var(--rp-accent,#c9633a);fill-opacity:.14;stroke:var(--rp-accent,#c9633a);stroke-dasharray:5 4}
.rp-window{stroke:var(--rp-window,#3a86c8);stroke-width:6}.rp-door{stroke:var(--rp-floor,#f1ece2);stroke-width:8}
.rp-piece rect:first-child{fill:var(--rp-item,#cfd9d6);stroke:var(--rp-item-line,#7d9490);stroke-width:1.5}
.rp-sofa rect:first-child,.rp-bed rect:first-child{fill:var(--rp-item-big,#b9c9c5)}
.rp-bad rect:first-child{fill:#f4c7c0;stroke:#b4412f;stroke-width:2.5}
.rp-front{fill:var(--rp-item-line,#7d9490)}
.rp-piece text{fill:var(--rp-text,#2a3a3b);font-size:11px;pointer-events:none}
.rp-dim{fill:var(--rp-muted,#5a6868);font-size:13px}
.rp-badge{fill:#2c7f52}.rp-badge-bad{fill:#b4412f}.rp-badge-t{fill:#fff;font-weight:700;font-size:14px}
.rp-wall,.rp-floor,.rp-swing,.rp-door,.rp-window,.rp-dim,.rp-badge,.rp-badge-t,.rp-front{pointer-events:none}