*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,Helvetica,Arial,sans-serif;font-size:14px;color:#1a1a1a;background:#f0f0f0;overflow:hidden}.app{display:flex;flex-direction:column;height:100vh;width:100vw}.workspace{display:flex;flex:1;overflow:hidden}.toolbar{display:flex;align-items:center;gap:12px;padding:0 16px;height:44px;background:#1a1a2e;flex-shrink:0}.toolbar-brand{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;letter-spacing:-.01em;color:#fff}.toolbar-logo{width:24px;height:24px;color:#3b82f6;flex-shrink:0}.toolbar-dirty{display:inline-block;width:10px;font-size:18px;line-height:1;text-align:center;color:#fbbf24;visibility:hidden}.toolbar-dirty.visible{visibility:visible}.toolbar-chart-name{min-width:120px;max-width:360px;padding:4px 8px;font-size:14px;font-weight:500;background:#ffffff0f;border:1px solid transparent;border-radius:4px;color:#fff}.toolbar-chart-name::placeholder{color:#fff6}.toolbar-chart-name:hover{background:#ffffff1a;border-color:#ffffff26}.toolbar-chart-name:focus{outline:none;background:#ffffff26;border-color:#ffffff4d}.toolbar-actions{display:flex;gap:6px}.toolbar-actions-right{margin-left:auto}.toolbar-actions button{padding:4px 12px;font-size:13px;background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:4px;cursor:pointer}.toolbar-actions button:hover:not(:disabled){background:#fff3}.toolbar-actions button:disabled{opacity:.35;cursor:default}.toolbar-actions button.active{background:#3b82f6;border-color:#3b82f6}.menu{position:relative}.menu-trigger.open{background:#ffffff40;border-color:#ffffff59}.menu-caret{display:inline-block;margin-left:4px;font-size:10px;opacity:.8}.menu-panel{position:absolute;top:calc(100% + 6px);left:0;min-width:200px;padding:4px;background:#fff;color:#1a1a1a;border:1px solid #e0e0e0;border-radius:6px;box-shadow:0 6px 20px #0000002e;z-index:50;display:flex;flex-direction:column;gap:1px}.toolbar .menu-panel .menu-item{display:flex;align-items:center;gap:4px;width:100%;padding:7px 10px;background:transparent;border:none;border-radius:4px;font-size:13px;color:#1a1a1a;text-align:left;cursor:pointer}.toolbar .menu-panel .menu-item:hover{background:#f0f4ff;color:#1d4ed8;border-color:transparent}.menu-check{width:16px;display:inline-block;text-align:center;color:#3b82f6;font-weight:600}.menu-separator{height:1px;background:#e0e0e0;margin:4px 0}.shape-palette{width:160px;flex-shrink:0;background:#fff;border-right:1px solid #e0e0e0;padding:12px 8px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.palette-heading{font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#888;padding:4px 6px 8px}.palette-item{width:100%;padding:8px 10px;text-align:left;font-size:13px;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:5px;cursor:pointer}.palette-item:hover:not(:disabled){background:#eef2ff;border-color:#a5b4fc}.palette-item:disabled{opacity:.5;cursor:default}.palette-item.active{border-color:#3b82f6;background:#eff6ff;color:#1d4ed8}.canvas-container{flex:1;overflow:hidden;background:#e8e8e8}.side-panel{width:240px;flex-shrink:0;background:#fff;border-left:1px solid #e0e0e0;overflow-y:auto}.side-panel-empty{padding:24px 16px;color:#999;font-size:13px;text-align:center}.side-panel-tabs{display:flex;border-bottom:1px solid #e0e0e0;background:#f9fafb;flex-shrink:0}.side-panel-tabs .tab{flex:1;padding:10px 12px;background:transparent;border:none;border-bottom:2px solid transparent;font-size:13px;font-weight:500;color:#666;cursor:pointer}.side-panel-tabs .tab:hover{color:#1a1a1a}.side-panel-tabs .tab.active{color:#3b82f6;border-bottom-color:#3b82f6;background:#fff}.bulk-list{display:flex;flex-direction:column}.bulk-group{border-bottom:1px solid #f0f0f0;padding:8px 0}.bulk-group-header{padding:4px 16px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#888}.bulk-row{display:grid;grid-template-columns:60px 1fr;gap:8px;align-items:center;padding:4px 16px}.bulk-row-label{font-size:12px;color:#555;font-weight:500}.bulk-row input{padding:4px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:12px;min-width:0}.bulk-row input:focus{outline:none;border-color:#3b82f6}.side-panel-header{padding:12px 16px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#666;border-bottom:1px solid #e0e0e0}.seat-editor{padding:16px;display:flex;flex-direction:column;gap:12px;border-bottom:1px solid #f0f0f0}.seat-editor.compact{gap:8px;padding:12px 16px}.seat-editor-id{font-weight:600;font-size:14px;color:#1a1a1a}.seat-editor.compact .seat-editor-id{font-size:13px;color:#555}.seat-editor-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#555}.seat-editor-field input{padding:6px 10px;border:1px solid #d1d5db;border-radius:4px;font-size:13px}.seat-editor-field input:focus{outline:none;border-color:#3b82f6}.seat-editor-group-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid #f0f0f0;background:#fafafa}.seat-count-control{display:flex;align-items:center;gap:6px;font-size:12px;color:#555}.seat-count-control button{width:24px;height:24px;padding:0;border:1px solid #d1d5db;background:#fff;border-radius:4px;cursor:pointer;font-size:14px;line-height:1;color:#555}.seat-count-control button:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af;color:#1a1a1a}.seat-count-control button:disabled{opacity:.4;cursor:default}.custom-props{display:flex;flex-direction:column;gap:6px}.custom-props-header{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#888}.custom-props-empty{font-size:12px;color:#aaa;font-style:italic}.custom-prop-row{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;align-items:center}.custom-prop-key{font-size:12px;color:#555;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-prop-row input{padding:4px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:12px;min-width:0}.custom-prop-remove{width:22px;height:22px;padding:0;border:1px solid #e0e0e0;background:#fff;border-radius:4px;cursor:pointer;font-size:14px;line-height:1;color:#999}.custom-prop-remove:hover{background:#fef2f2;border-color:#fca5a5;color:#dc2626}.custom-prop-add{display:flex;flex-direction:column;gap:6px;padding:8px;background:#f9fafb;border-radius:4px}.custom-prop-add input{padding:4px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:12px}.custom-prop-add-actions{display:flex;gap:6px}.custom-prop-add-actions button{flex:1;padding:4px 8px;font-size:12px;border:1px solid #d1d5db;border-radius:4px;background:#fff;cursor:pointer}.custom-prop-add-actions button:disabled{opacity:.5;cursor:default}.custom-prop-add-btn{padding:6px;font-size:12px;border:1px dashed #d1d5db;border-radius:4px;background:#fff;color:#555;cursor:pointer}.custom-prop-add-btn:hover{border-color:#3b82f6;color:#3b82f6}.guest-picker-dropdown{position:fixed;max-height:220px;overflow-y:auto;background:#fff;border:1px solid #d1d5db;border-radius:4px;box-shadow:0 6px 20px #00000026;z-index:200;display:flex;flex-direction:column;padding:2px}.guest-picker-option{display:block;padding:6px 10px;background:transparent;border:none;border-radius:3px;text-align:left;font-size:13px;color:#1a1a1a;cursor:pointer}.guest-picker-option:hover{background:#f0f4ff;color:#1d4ed8}.guest-picker-option.current{background:#eff6ff;color:#1d4ed8;font-weight:500}.guest-picker-option.create{margin-top:2px;border-top:1px solid #f0f0f0;color:#3b82f6;font-style:italic}.guest-picker-option-meta{margin-left:8px;font-size:11px;color:#d97706;font-weight:500}.guest-picker-option:hover .guest-picker-option-meta{color:#b45309}.print-modal-options{display:flex;flex-direction:column;gap:8px}.print-modal-options label{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.print-modal-options input[type=checkbox]{width:16px;height:16px;cursor:pointer}.prompt-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.prompt-card{background:#fff;padding:24px;border-radius:8px;min-width:260px;display:flex;flex-direction:column;gap:16px;box-shadow:0 8px 32px #0003}.prompt-card input[type=number]{width:100%;padding:8px 10px;border:1px solid #d1d5db;border-radius:5px;font-size:14px}
