*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--clr-bg: #f0f2f5;--clr-surface: #ffffff;--clr-border: #dde1e7;--clr-border-hover: #b0b8c4;--clr-primary: #3b82f6;--clr-primary-hover: #2563eb;--clr-primary-light: #eff6ff;--clr-danger: #ef4444;--clr-danger-hover: #dc2626;--clr-text: #1e293b;--clr-text-muted: #64748b;--clr-text-faint: #94a3b8;--sidebar-width: 200px;--props-width: 230px;--toolbar-height: 48px;--radius: 6px;--shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.04)}html,body,#root{width:100%;height:100%;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:13px;color:var(--clr-text);background:var(--clr-bg);overflow:hidden}.app{display:flex;flex-direction:column;width:100%;height:100%}.app-body{display:flex;flex:1;overflow:hidden}.toolbar{height:var(--toolbar-height);display:flex;align-items:center;gap:4px;padding:0 12px;background:var(--clr-surface);border-bottom:1px solid var(--clr-border);box-shadow:var(--shadow-sm);flex-shrink:0;overflow-x:auto}.toolbar-btn{display:flex;align-items:center;gap:4px;height:30px;padding:0 10px;border:1px solid var(--clr-border);border-radius:var(--radius);background:var(--clr-surface);color:var(--clr-text);cursor:pointer;font-size:12px;font-family:inherit;white-space:nowrap;transition:all .1s}.toolbar-btn:hover:not(:disabled){background:var(--clr-bg);border-color:var(--clr-border-hover)}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-btn.primary{background:var(--clr-primary);color:#fff;border-color:var(--clr-primary)}.toolbar-btn.primary:hover:not(:disabled){background:var(--clr-primary-hover)}.toolbar-btn.danger{background:var(--clr-danger);color:#fff;border-color:var(--clr-danger)}.toolbar-btn.danger:hover:not(:disabled){background:var(--clr-danger-hover)}.toolbar-sep{width:1px;height:24px;background:var(--clr-border);margin:0 4px;flex-shrink:0}.plan-name-input{height:30px;padding:0 10px;border:1px solid var(--clr-border);border-radius:var(--radius);font-family:inherit;font-size:13px;font-weight:600;color:var(--clr-text);background:var(--clr-surface);width:180px;min-width:120px}.plan-name-input:focus{outline:none;border-color:var(--clr-primary);box-shadow:0 0 0 2px #3b82f626}.zoom-display{font-size:12px;color:var(--clr-text-muted);min-width:38px;text-align:center}.sidebar{width:var(--sidebar-width);background:var(--clr-surface);border-right:1px solid var(--clr-border);display:flex;flex-direction:column;overflow-y:auto;flex-shrink:0}.sidebar-section{padding:10px;border-bottom:1px solid var(--clr-border)}.sidebar-section-title{font-size:10px;font-weight:600;color:var(--clr-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.sidebar-hint{font-size:10px;color:var(--clr-text-faint);margin-top:6px;line-height:1.4}.tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}.tool-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:7px 4px;border:1px solid var(--clr-border);border-radius:var(--radius);background:var(--clr-surface);cursor:pointer;font-family:inherit;transition:all .1s;position:relative}.tool-btn:hover{background:var(--clr-primary-light);border-color:var(--clr-primary)}.tool-btn.active{background:var(--clr-primary);border-color:var(--clr-primary);color:#fff}.tool-icon{font-size:16px;line-height:1}.tool-label{font-size:10px;font-weight:500}.tool-shortcut{position:absolute;top:3px;right:4px;font-size:8px;color:var(--clr-text-faint);font-family:monospace}.tool-btn.active .tool-shortcut{color:#fff9}.shape-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.shape-tile{display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 4px 7px;border:1px solid var(--clr-border);border-radius:var(--radius);background:var(--clr-surface);cursor:pointer;font-family:inherit;transition:all .12s;-webkit-user-select:none;user-select:none}.shape-tile:hover{background:var(--clr-primary-light);border-color:var(--clr-primary);box-shadow:var(--shadow-sm)}.shape-tile:hover svg path:last-child{fill:#607d8b}.shape-tile:active{transform:scale(.96)}.shape-label{font-size:9px;color:var(--clr-text-muted);text-align:center;line-height:1.2}.fixture-library{flex:1}.category-tabs{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:8px}.cat-tab{font-size:10px;padding:3px 7px;border:1px solid var(--clr-border);border-radius:100px;background:var(--clr-surface);cursor:pointer;font-family:inherit;color:var(--clr-text-muted);transition:all .1s}.cat-tab:hover{background:var(--clr-bg)}.cat-tab.active{background:var(--clr-primary);border-color:var(--clr-primary);color:#fff}.fixture-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}.fixture-tile{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 4px;border:1px solid var(--clr-border);border-radius:var(--radius);background:var(--clr-surface);cursor:grab;transition:all .1s;-webkit-user-select:none;user-select:none}.fixture-tile:hover{background:var(--clr-primary-light);border-color:var(--clr-primary);box-shadow:var(--shadow-sm)}.fixture-tile:active{cursor:grabbing}.fixture-icon{font-size:18px}.fixture-name{font-size:9px;color:var(--clr-text-muted);text-align:center;line-height:1.2}.scale-info{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--clr-text-muted)}.canvas-container{flex:1;position:relative;overflow:hidden;background:#f0f2f5}.canvas-overlay{position:absolute;bottom:12px;left:50%;transform:translate(-50%);pointer-events:none}.canvas-hint{display:inline-block;background:#1e293bbf;color:#fff;font-size:11px;padding:5px 12px;border-radius:100px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);white-space:nowrap}.props-panel{width:var(--props-width);background:var(--clr-surface);border-left:1px solid var(--clr-border);overflow-y:auto;flex-shrink:0;padding:12px}.props-panel-title{font-size:10px;font-weight:600;color:var(--clr-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}.prop-section-title{font-size:13px;font-weight:600;color:var(--clr-text);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--clr-border)}.prop-field{margin-bottom:10px}.prop-label{display:block;font-size:11px;color:var(--clr-text-muted);margin-bottom:4px;font-weight:500}.prop-control{display:flex;align-items:center}.prop-input{width:100%;height:28px;padding:0 8px;border:1px solid var(--clr-border);border-radius:var(--radius);font-family:inherit;font-size:12px;color:var(--clr-text);background:var(--clr-surface);transition:border-color .1s}.prop-input:focus{outline:none;border-color:var(--clr-primary);box-shadow:0 0 0 2px #3b82f626}.prop-textarea{width:100%;padding:6px 8px;border:1px solid var(--clr-border);border-radius:var(--radius);font-family:inherit;font-size:12px;color:var(--clr-text);background:var(--clr-surface);resize:vertical}.prop-textarea:focus{outline:none;border-color:var(--clr-primary);box-shadow:0 0 0 2px #3b82f626}.prop-select{width:100%;height:28px;padding:0 8px;border:1px solid var(--clr-border);border-radius:var(--radius);font-family:inherit;font-size:12px;color:var(--clr-text);background:var(--clr-surface);cursor:pointer}.prop-color{width:36px;height:28px;border:1px solid var(--clr-border);border-radius:var(--radius);cursor:pointer;padding:2px}.num-input-wrap{display:flex;align-items:center;gap:4px;width:100%}.prop-unit{font-size:11px;color:var(--clr-text-faint);white-space:nowrap;min-width:24px}.prop-slider{flex:1;accent-color:var(--clr-primary)}.prop-readonly{font-size:12px;color:var(--clr-text);font-weight:500}.prop-checkbox{width:16px;height:16px;accent-color:var(--clr-primary);cursor:pointer}.prop-openings-count{font-size:11px;color:var(--clr-text-muted);margin-bottom:10px}.prop-delete-btn{width:100%;height:30px;margin-top:8px;border:1px solid var(--clr-danger);border-radius:var(--radius);background:#fff;color:var(--clr-danger);cursor:pointer;font-family:inherit;font-size:12px;font-weight:500;transition:all .1s}.prop-delete-btn:hover{background:var(--clr-danger);color:#fff}.props-empty{color:var(--clr-text-muted);font-size:12px;line-height:1.5}.props-empty p{margin-bottom:12px}.props-help{display:flex;flex-direction:column;gap:5px;font-size:11px;background:var(--clr-bg);border-radius:var(--radius);padding:10px}.props-help div{color:var(--clr-text-muted)}.props-help b{color:var(--clr-text)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--clr-border);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--clr-border-hover)}
