*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f172a;--surface: #1e293b;--surface-hover: #334155;--border: #334155;--text: #f1f5f9;--text-muted: #94a3b8;--primary: #3b82f6;--primary-hover: #2563eb;--danger: #ef4444;--accent: #06b6d4;--radius: 8px}html,body,#root{height:100%}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);overflow:hidden}.app{display:flex;flex-direction:column;height:100%}.toolbar{display:flex;align-items:center;gap:1rem;padding:.6rem 1rem;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.toolbar-brand{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:1rem;min-width:180px}.toolbar-logo{width:40px;height:40px;object-fit:contain;border-radius:4px;background:#000}.brand-text{display:flex;flex-direction:column;line-height:1.15}.brand-name{font-size:.9rem}.brand-org{font-size:.65rem;font-weight:600;letter-spacing:.04em;color:var(--accent);text-transform:uppercase}.user-chip{font-size:.75rem;color:var(--text-muted);padding:.25rem .55rem;border:1px solid var(--border);border-radius:999px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.login-screen{min-height:100%;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:radial-gradient(ellipse at top,#1e3a5f 0%,transparent 55%),linear-gradient(160deg,#0a0f1a,#0f172a 45%,#020617)}.login-card{width:min(400px,100%);background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1.75rem 1.5rem 1.25rem;text-align:center;box-shadow:0 24px 60px #00000073}.login-logo{width:140px;height:auto;margin:0 auto 1rem;display:block;border-radius:8px;background:#000}.login-card h1{font-size:1.35rem;margin-bottom:.25rem}.login-org{font-size:.8rem;color:var(--accent);font-weight:600;margin-bottom:.35rem}.login-lock{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:1.25rem}.login-form{display:flex;flex-direction:column;gap:.75rem;text-align:left}.login-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.75rem;color:var(--text-muted)}.login-form input{padding:.65rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.9rem}.login-form input:focus{outline:none;border-color:var(--primary)}.login-error{color:#f87171;font-size:.8rem;margin:0}.login-submit{width:100%;padding:.7rem 1rem;margin-top:.25rem;font-size:.9rem}.login-footer{margin-top:1.25rem;font-size:.7rem;color:var(--text-muted);line-height:1.4}.admin-users-modal{width:min(780px,100%)}.admin-notice{color:#34d399;font-size:.8rem;margin:0 0 .5rem}.admin-add-form,.admin-edit-form{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.75rem;margin:.75rem 0}.admin-add-form h3,.admin-list-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);margin-bottom:.5rem}.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.65rem}.admin-form-grid label{display:flex;flex-direction:column;gap:.25rem;font-size:.7rem;color:var(--text-muted)}.admin-form-grid input,.admin-form-grid select{padding:.45rem .55rem;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.8125rem}.admin-user-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5rem}.admin-user-item{display:flex;gap:.75rem;justify-content:space-between;align-items:flex-start;padding:.75rem;background:var(--bg);border:1px solid var(--border);border-radius:8px}.role-pill{margin-left:.4rem;font-size:.65rem;text-transform:uppercase;border-radius:999px;padding:.05rem .4rem;border:1px solid var(--border);color:var(--text-muted)}.role-pill.admin{color:#fbbf24;border-color:#fbbf24}@media(max-width:640px){.admin-form-grid{grid-template-columns:1fr}}.view-tabs{display:flex;gap:.25rem;background:var(--bg);padding:.2rem;border-radius:var(--radius)}.view-tab{padding:.4rem 1rem;border:none;background:transparent;color:var(--text-muted);border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .15s}.view-tab:hover{color:var(--text);background:var(--surface-hover)}.view-tab.active{background:var(--primary);color:#fff}.toolbar-actions{display:flex;gap:.5rem;margin-left:auto}.btn-primary,.btn-secondary,.btn-danger{padding:.4rem .85rem;border:none;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--surface-hover);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:#475569}.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--danger);width:100%;margin-top:.75rem;padding:.5rem}.btn-danger:hover{background:var(--danger);color:#fff}.workspace{display:flex;flex:1;overflow:hidden}.sidebar{width:280px;overflow-y:auto;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:0}.sidebar.right{border-right:none;border-left:1px solid var(--border)}.canvas-area{flex:1;display:flex;align-items:center;justify-content:center;padding:1rem;overflow:auto;background:#0c1222}.panel{padding:1rem;border-bottom:1px solid var(--border)}.panel h3{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin-bottom:.25rem}.panel h4{font-size:.8125rem;font-weight:600;margin:.75rem 0 .5rem;color:var(--text-muted)}.panel-subtitle{font-size:.75rem;color:var(--text-muted);margin-bottom:.75rem}.search-input,.category-select,.meta-section input{width:100%;padding:.5rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.8125rem;margin-bottom:.5rem}.search-input:focus,.category-select:focus,.meta-section input:focus{outline:none;border-color:var(--primary)}.category-tabs{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.5rem}.category-tab{padding:.2rem .5rem;font-size:.6875rem;border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:4px;cursor:pointer;transition:all .15s}.category-tab:hover{color:var(--text);border-color:var(--text-muted)}.category-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.vehicle-list{max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem}.vehicle-item{display:flex;flex-direction:column;align-items:flex-start;padding:.5rem .65rem;background:var(--bg);border:1px solid transparent;border-radius:6px;cursor:pointer;text-align:left;transition:all .15s;width:100%}.vehicle-item:hover{border-color:var(--border);background:var(--surface-hover)}.vehicle-item.selected{border-color:var(--primary);background:#3b82f626}.vehicle-make{font-size:.6875rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.vehicle-model{font-size:.8125rem;font-weight:500}.vehicle-years{font-size:.6875rem;color:var(--text-muted)}.bp-badge{color:#34d399;font-weight:500}.component-list{max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem}.component-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .65rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;cursor:grab;transition:all .15s}.component-item:hover{border-color:var(--primary);background:var(--surface-hover)}.component-item-alt-view{opacity:.72}.view-hints{color:var(--accent);font-size:.625rem}.component-icon{font-size:1rem;color:var(--accent);width:1.5rem;text-align:center}.component-info{display:flex;flex-direction:column}.component-name{font-size:.8125rem;font-weight:500}.component-part{font-size:.6875rem;color:var(--text-muted)}.canvas-wrapper{background:#fff;border-radius:var(--radius);box-shadow:0 8px 32px #0006;overflow:hidden;max-width:100%}.canvas-header{padding:1rem 1.5rem .5rem;border-bottom:2px solid #dc2626}.canvas-title .vehicle-name{font-size:1.25rem;font-weight:700;color:#dc2626}.canvas-title .view-name{font-size:1.25rem;font-weight:700;color:#1f2937}.canvas-meta{font-size:.8125rem;color:#6b7280;margin-top:.25rem}.mockup-canvas{width:800px;max-width:100%;height:auto;display:block}.canvas-footer{display:flex;justify-content:space-between;padding:.5rem 1.5rem;font-size:.75rem;color:#6b7280;border-top:1px solid #e5e7eb}.meta-section label,.component-props label{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:var(--text-muted);margin-bottom:.5rem}.component-props .part-number{font-size:.75rem;color:var(--text-muted);margin-bottom:.5rem}.hint{font-size:.6875rem;color:var(--text-muted);margin-bottom:.5rem}.segment-grid{display:flex;flex-direction:column;gap:.65rem;max-height:320px;overflow-y:auto}.module-editor{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.45rem .5rem .5rem}.module-editor-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem}.module-preview{display:flex;height:12px;width:52px;border-radius:2px;overflow:hidden;border:1px solid #111827}.module-preview-band{flex:1}.slot-row{display:flex;align-items:center;gap:.4rem;margin-top:.2rem}.slot-label{font-size:.625rem;color:var(--text-muted);width:1.4rem}.seg-label{font-size:.6875rem;color:var(--text-muted);width:1.5rem}.seg-colors{display:flex;gap:.2rem}.color-btn{width:18px;height:18px;border-radius:4px;border:2px solid transparent;cursor:pointer;transition:all .15s}.color-btn.active{border-color:#fff;box-shadow:0 0 0 1px var(--primary)}.color-btn:hover{transform:scale(1.15)}.none-btn{background:transparent!important;color:var(--text-muted);font-size:.75rem;line-height:1;border:1px dashed var(--border)!important}.bom-items{list-style:none;counter-reset:bom;padding:0}.bom-items li{counter-increment:bom;padding:.4rem 0;font-size:.8125rem;border-bottom:1px solid var(--border);line-height:1.4}.bom-items li:before{content:counter(bom) ". ";color:var(--text-muted)}.bom-color{color:var(--accent)}.bom-views{font-size:.6875rem;color:var(--text-muted)}.empty-msg{font-size:.8125rem;color:var(--text-muted);font-style:italic;padding:.5rem 0}.blueprint-upload{margin-top:.5rem;padding-top:.75rem;border-top:1px solid var(--border)}.blueprint-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem}.btn-sm{padding:.35rem .65rem!important;font-size:.75rem!important}.active-config-label{margin-left:.5rem;font-size:.75rem;font-weight:500;color:var(--accent);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-status{font-size:.75rem;color:#34d399;margin-right:.25rem}.toolbar-actions{flex-wrap:wrap}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#020617b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-card{width:min(720px,100%);max-height:min(80vh,700px);overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1rem 1.25rem 1.25rem;box-shadow:0 20px 50px #00000073}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem}.modal-header h2{font-size:1.1rem}.modal-actions{margin:.75rem 0}.saved-config-list{list-style:none;display:flex;flex-direction:column;gap:.6rem;padding:0}.saved-config-item{display:flex;gap:.75rem;justify-content:space-between;align-items:flex-start;padding:.75rem;background:var(--bg);border:1px solid var(--border);border-radius:8px}.saved-config-item.active{border-color:var(--primary)}.saved-config-main strong{font-size:.9rem}.active-pill{margin-left:.4rem;font-size:.65rem;color:#34d399;border:1px solid #34d399;border-radius:999px;padding:.05rem .4rem;vertical-align:middle}.saved-config-meta{margin-top:.25rem;font-size:.75rem;color:var(--text-muted);line-height:1.35}.saved-config-actions{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:flex-end;min-width:180px}.rename-form{display:flex;gap:.35rem;align-items:center;width:100%}.rename-form input{flex:1;padding:.35rem .5rem;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
