:root{--bg: #f4f6f8;--surface: #ffffff;--panel: #fbfcfd;--line: #e4e8ee;--ink: #1c2530;--ink-2: #54616f;--ink-3: #8a97a6;--canvas: #fcfdfe;--brand: #2f6df0;--brand-ink: #1a4cc0;--brand-tint: #eaf1ff;--cat-table: #2f6df0;--cat-seat: #11a36b;--cat-feature: #8b5cf6;--cat-structure: #64748b;--ok: #11a36b;--warn: #e0820a;--warn-fill: #fff3e0;--danger: #dc4c4c;--r: 10px;--shadow: 0 1px 2px rgba(16, 30, 54, .06), 0 4px 16px rgba(16, 30, 54, .06);--shadow-lift: 0 8px 30px rgba(16, 30, 54, .16);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{font-family:var(--font);background:var(--bg);color:var(--ink);font-size:14px;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}.page{height:100%;overflow:auto;background:var(--bg)}.page-inner{max-width:1080px;margin:0 auto;padding:34px 30px 60px}.page-head{display:flex;align-items:center;gap:14px;margin-bottom:24px}.sub{color:var(--ink-2);font-size:14px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:16px}.plan-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow);transition:.14s;cursor:pointer}.plan-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift);border-color:var(--brand)}.plan-thumb{height:140px;background:var(--canvas);border-bottom:1px solid var(--line)}.plan-card .meta{padding:13px 15px}.plan-card .meta h3{font-size:15px}.plan-card .meta .det{font-size:12px;color:var(--ink-3);margin-top:4px}.plan-card .meta .acts{display:flex;gap:6px;margin-top:11px}.plan-card .meta .acts button{font-size:12px;padding:6px 10px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink-2);font-weight:600}.plan-card .meta .acts button:hover{border-color:var(--brand);color:var(--brand-ink)}.new-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:2px dashed var(--line);border-radius:14px;color:var(--brand);font-weight:650;min-height:215px;cursor:pointer;background:#fff}.new-card:hover{border-color:var(--brand);background:var(--brand-tint)}.new-card .plus{width:46px;height:46px;border-radius:50%;background:var(--brand-tint);display:flex;align-items:center;justify-content:center;font-size:26px}.empty-full{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:30px}.empty-full h2{font-size:21px;margin:18px 0 6px}.empty-full p{color:var(--ink-2);max-width:380px;margin:0 0 20px}.empty-illo{width:170px;height:130px}.editor{display:grid;grid-template-rows:auto 1fr;height:100%}.topbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;row-gap:6px;background:var(--surface);border-bottom:1px solid var(--line);padding:8px 16px;min-height:54px}.logo{display:flex;align-items:center;gap:9px;font-weight:750;letter-spacing:-.02em;font-size:16px}.logo .mark{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,var(--brand),#7aa2ff);position:relative}.logo .mark:after{content:"";position:absolute;top:7px;right:7px;bottom:7px;left:7px;border:2px solid #fff;border-radius:2px}.plan-title{display:flex;align-items:center;gap:8px;padding-left:14px;border-left:1px solid var(--line)}.plan-title input{font:inherit;font-weight:650;font-size:15px;border:1px solid transparent;background:transparent;border-radius:6px;padding:5px 8px;color:var(--ink);width:clamp(120px,20vw,230px);min-width:0}.plan-title input:hover{background:var(--panel)}.plan-title input:focus{outline:none;border-color:var(--brand);background:#fff}.save-state{font-size:12px;color:var(--ink-3);display:flex;align-items:center;gap:5px}.save-state.saved{color:var(--ok)}.save-state .dot{width:7px;height:7px;border-radius:50%;background:currentColor}.spacer{flex:1}.btn{border:1px solid var(--line);background:#fff;color:var(--ink);padding:8px 13px;border-radius:8px;font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:7px}.btn:hover{border-color:var(--ink-3)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-ink)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--panel)}.history-group{display:flex;gap:6px}.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--line);background:#fff;border-radius:9px;color:var(--ink);font-size:19px;line-height:1}.iconbtn:hover:not(:disabled){border-color:var(--brand);color:var(--brand);background:var(--brand-tint)}.iconbtn:disabled{opacity:.3;cursor:default}.editor-body{display:flex;min-height:0}.panel.left{flex:0 0 248px}.panel.right{flex:0 0 280px}@media (max-width: 1100px){.panel.left{flex-basis:212px}.panel.right{flex-basis:250px}}@media (max-width: 900px){.panel.left{flex-basis:184px}.panel.right{flex-basis:214px}}@media (max-width: 760px){.panel.left{flex-basis:158px}.panel.right{flex-basis:188px}.palette-grid{grid-template-columns:1fr}}.panel{background:var(--surface);overflow-y:auto;position:relative}.panel-h-row{display:flex;align-items:center;justify-content:space-between}.fold-btn{margin:8px 10px 0 0;border:1px solid var(--brand);background:var(--brand-tint);color:var(--brand-ink);font-size:15px;font-weight:800;line-height:1;width:30px;height:30px;border-radius:8px}.fold-btn:hover{background:var(--brand);border-color:var(--brand);color:#fff}.fold-btn.right{position:absolute;top:12px;right:10px;z-index:3;margin:0}.unfold-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:6;width:28px;height:72px;border:1px solid var(--brand);background:var(--brand);color:#fff;font-size:16px;font-weight:800;box-shadow:var(--shadow-lift, 0 8px 30px rgba(16, 30, 54, .16))}.unfold-btn.left{left:0;border-left:0;border-radius:0 10px 10px 0}.unfold-btn.right{right:0;border-right:0;border-radius:10px 0 0 10px}.unfold-btn:hover{background:var(--brand-ink)}.panel.left{border-right:1px solid var(--line)}.panel.right{border-left:1px solid var(--line)}.panel-h{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);padding:14px 16px 6px}.stub{padding:4px 16px;color:var(--ink-3);font-size:12.5px}.cat-group{padding:2px 12px 8px}.cat-label{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--ink-2);padding:9px 4px 6px}.cat-swatch{width:9px;height:9px;border-radius:3px}.palette-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.pal-item{border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px 8px 8px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:grab;transition:.12s}.pal-item:hover{border-color:var(--brand);box-shadow:var(--shadow);transform:translateY(-1px)}.pal-item:active{cursor:grabbing}.pal-icon{width:38px;height:38px;display:flex;align-items:center;justify-content:center}.pal-shape{border:2px solid;display:block}.pal-shape.round{width:30px;height:30px;border-radius:50%}.pal-shape.rect{width:32px;max-height:32px;border-radius:4px}.pal-name{font-size:11.5px;font-weight:600;color:var(--ink-2);line-height:1.2}.pal-seats{font-size:10px;color:var(--ink-3);min-height:12px}.prop-section{padding:6px 16px 16px;border-bottom:1px solid var(--line)}.muted{font-size:11.5px;color:var(--ink-3);margin:10px 0 0;line-height:1.4}.field{margin-top:11px}.field label{display:block;font-size:11.5px;font-weight:600;color:var(--ink-2);margin-bottom:5px}.field input,.field select{width:100%;border:1px solid var(--line);border-radius:7px;padding:8px 10px;font:inherit;font-size:13px;color:var(--ink);background:#fff}.field input:focus,.field select:focus{outline:none;border-color:var(--brand)}.field input:disabled{background:var(--panel);color:var(--ink-3)}.row2{display:grid;grid-template-columns:1fr 1fr;gap:9px}.slider-row{display:flex;align-items:center;gap:10px}.slider-row input[type=range]{flex:1;accent-color:var(--brand)}.slider-row .val{font-size:12px;font-weight:600;color:var(--ink-2);width:42px;text-align:right}.prop-actions{display:flex;gap:8px;margin-top:14px}.align-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.align-grid .btn{justify-content:center;padding:7px 4px}.prop-actions .btn{flex:1;justify-content:center}.btn.danger{color:var(--danger);border-color:#f1cccc}.btn.danger:hover{background:#fdf0f0;border-color:var(--danger)}.swatch-tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:20px}.placing-ghost{position:absolute;z-index:6;pointer-events:none;transform:translate(14px,10px);display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;padding:4px 11px 4px 8px;font-size:12px;font-weight:650;color:var(--ink-2)}.placing-ghost .ic{font-size:15px}.templates{position:relative}.templates-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.templates-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:41;width:280px;max-height:360px;overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lift, 0 8px 30px rgba(16, 30, 54, .16));padding:6px}.templates-head{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);padding:8px 10px 6px}.templates-empty{padding:12px 10px;font-size:12.5px;color:var(--ink-3)}.export-row{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:0;background:transparent;padding:9px 10px;border-radius:8px;font-size:13px;font-weight:600;color:var(--ink)}.export-row:hover{background:var(--brand-tint);color:var(--brand-ink)}.templates-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;cursor:pointer}.templates-row:hover{background:var(--panel)}.templates-row.cur{background:var(--brand-tint)}.templates-row .t-info{flex:1;min-width:0}.templates-row .t-name{font-size:13px;font-weight:650;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.templates-row .t-meta{font-size:11px;color:var(--ink-3)}.templates-row .t-del{border:0;background:transparent;font-size:13px;opacity:.6;padding:4px;border-radius:6px}.templates-row .t-del:hover{opacity:1;background:#fdf0f0}.label-edit{position:absolute;z-index:7;font:600 14px var(--font);color:var(--ink);background:#fff;border:2px solid var(--brand);border-radius:6px;padding:3px 6px;min-width:80px;box-shadow:var(--shadow);outline:none}.floating-toolbar{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:6;display:flex;gap:4px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:5px;box-shadow:var(--shadow-lift, 0 8px 30px rgba(16, 30, 54, .16))}.floating-toolbar .ft-grip{display:flex;align-items:center;padding:0 4px;margin-right:2px;font-size:16px;color:var(--ink-3);cursor:grab;-webkit-user-select:none;user-select:none;border-right:1px solid var(--line)}.floating-toolbar .ft-grip:active{cursor:grabbing}.floating-toolbar button{display:flex;flex-direction:column;align-items:center;gap:1px;border:0;background:transparent;border-radius:8px;padding:6px 10px;color:var(--ink-2)}.floating-toolbar button:hover{background:var(--panel)}.floating-toolbar button.on{background:var(--brand)}.floating-toolbar button.on .ft-ico,.floating-toolbar button.on .ft-key{color:#fff}.floating-toolbar .ft-ico{font-size:17px;line-height:1}.floating-toolbar .ft-key{font-size:9px;font-weight:700;color:var(--ink-3)}.draw-hint{position:absolute;top:64px;left:50%;transform:translate(-50%);z-index:5;background:var(--brand);color:#fff;font-size:12.5px;font-weight:600;padding:7px 14px;border-radius:20px;box-shadow:var(--shadow);pointer-events:none;white-space:nowrap}.mode-toggle{display:flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--panel)}.mode-toggle button{border:0;background:transparent;padding:8px 14px;font-size:13px;font-weight:650;color:var(--ink-2);display:inline-flex;align-items:center;gap:6px}.mode-toggle button.on{background:var(--brand);color:#fff}.tool-list{display:flex;flex-direction:column;gap:7px;padding:0 4px}.tool-btn{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:9px 11px;text-align:left}.tool-btn:hover{border-color:var(--brand)}.tool-btn.on{border-color:var(--brand);background:var(--brand-tint)}.tool-ico{font-size:20px}.tool-name{display:block;font-size:13px;font-weight:650;color:var(--ink)}.tool-sub{display:block;font-size:11px;color:var(--ink-3)}.preset-row{display:flex;gap:7px;flex-wrap:wrap}.preset{border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:12px;font-weight:600;color:var(--ink-2);background:#fff}.preset:hover{border-color:var(--brand);color:var(--brand-ink)}.preset.on{background:var(--brand-tint);border-color:var(--brand);color:var(--brand-ink)}.center{flex:1 1 0;display:flex;flex-direction:column;min-width:0;background:var(--bg);position:relative}.resize-toast{position:absolute;bottom:70px;left:50%;transform:translate(-50%);z-index:8;display:flex;align-items:center;gap:12px;background:var(--ink);color:#fff;font-size:13px;font-weight:550;padding:9px 12px 9px 16px;border-radius:10px;box-shadow:var(--shadow-lift, 0 8px 30px rgba(16, 30, 54, .16))}.resize-toast .rt-apply{border:0;background:var(--brand);color:#fff;font-weight:650;font-size:12.5px;padding:6px 12px;border-radius:7px}.resize-toast .rt-apply:hover{background:#4a82ff}.resize-toast .rt-close{border:0;background:transparent;color:#9aa6b8;font-size:13px;padding:4px 6px;border-radius:6px}.resize-toast .rt-close:hover{color:#fff}.canvas-wrap{flex:1;position:relative;overflow:hidden}.statsbar{flex:0 0 auto;display:flex;align-items:center;flex-wrap:wrap;gap:8px;row-gap:6px;background:var(--surface);border-top:1px solid var(--line);padding:9px 14px}.stat{display:flex;align-items:center;gap:8px;padding:5px 12px;border-radius:8px;background:var(--panel)}.stat .num{font-size:17px;font-weight:750;line-height:1}.stat .cap{font-size:11px;color:var(--ink-3);font-weight:600}.cap-pill{display:flex;align-items:center;gap:7px;padding:6px 13px;border-radius:8px;font-weight:650;font-size:13px}.cap-pill.ok{background:var(--cat-seat-fill, #d8f4e7);color:#0a6e49}.cap-pill.warn{background:var(--warn-fill);color:#9a5a08}.cap-pill .ico{font-size:14px}.cap-input{width:46px;border:1px solid currentColor;background:#fff9;color:inherit;font:inherit;font-weight:700;border-radius:5px;padding:1px 2px;text-align:center;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.cap-input::-webkit-outer-spin-button,.cap-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.seg{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{border:0;background:#fff;padding:7px 11px;font-size:12.5px;font-weight:600;color:var(--ink-2)}.seg button.on{background:var(--brand-tint);color:var(--brand-ink)}.seg button:disabled{opacity:.35;cursor:default}.seg button+button{border-left:1px solid var(--line)}.zoom{display:flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:8px;background:#fff}.zoom button{border:0;background:transparent;width:30px;height:32px;font-size:16px;color:var(--ink-2)}.zoom .lvl{font-size:12px;font-weight:600;width:46px;text-align:center;color:var(--ink-2)}.client-page{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:#eef1f5;z-index:50}.client-bar{display:flex;align-items:center;gap:10px;padding:12px 20px;background:#fff;border-bottom:1px solid var(--line, #e4e8ee)}.client-scroll{flex:1;overflow:auto;padding:30px 20px 50px}.client-doc{max-width:980px;margin:0 auto;background:#fff;border:1px solid var(--line, #e4e8ee);border-radius:14px;box-shadow:0 10px 40px #1c253014;padding:32px 34px 26px}.client-head h1{font-size:25px;margin:0 0 3px}.client-head .date{color:var(--ink-3, #68727f);font-size:13px}.client-stats{display:flex;gap:14px;margin:20px 0 24px}.client-stats .stat{flex:1;border:1px solid var(--line, #e4e8ee);border-radius:10px;padding:12px 16px}.client-stats .num{display:block;font-size:24px;font-weight:700;line-height:1.1}.client-stats .cap{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3, #68727f)}.client-body{display:flex;gap:24px;align-items:flex-start}.client-figure{flex:1;min-width:0}.client-figure img{width:100%;height:auto;border:1px solid var(--line, #e4e8ee);border-radius:10px;display:block}.client-empty{padding:60px;text-align:center;color:var(--ink-3, #68727f);border:1px dashed var(--line, #e4e8ee);border-radius:10px}.client-legend{width:220px;flex:none}.client-legend h3{font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3, #68727f);margin:4px 0 10px}.client-legend ul{list-style:none;margin:0;padding:0}.client-legend li{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid #eef1f5;font-size:13px}.client-legend .seats{color:var(--ink-3, #68727f)}.client-foot{margin-top:22px;padding-top:16px;border-top:1px solid var(--line, #e4e8ee)}.client-foot input{width:100%;border:1px solid transparent;border-radius:8px;padding:8px 10px;font-size:13px;color:var(--ink-2, #3a4654);background:#f7f9fb}.client-foot input:focus{outline:none;border-color:var(--brand, #2f6df0);background:#fff}@media (max-width: 720px){.client-body{flex-direction:column}.client-legend{width:100%}}
