:root{--color-primary: #CC0000;--color-primary-hover: #AA0000;--color-primary-soft: #FFF0F0;--color-primary-row-hover: #FFF8F8;--color-text: #1A1A1A;--color-muted: #6B7280;--color-bg: #F5F5F5;--color-card: #FFFFFF;--color-border: #E0E0E0;--color-row-divider: #F0F0F0;--color-table-head: #F5F5F5;--color-placeholder: #9CA3AF;--color-danger: #CC0000;--color-secondary-border: #E0E0E0;--color-dark: #0A0A0A;--color-dark-hover: #1A1A1A;--color-yellow: #FFB800;--color-success: #16A34A;--transition: all .2s ease;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Helvetica Neue,Roboto,sans-serif;font-size:14px;font-weight:400;color:var(--color-text);background:var(--color-bg)}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:20px;font-weight:600;margin-top:0;color:var(--color-text)}h2{font-size:16px;font-weight:600;margin-top:2rem;color:var(--color-text)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-body{flex:1;display:flex;min-height:0}.topbar{height:60px;background:var(--color-dark);color:#fff;display:flex;align-items:center;gap:.75rem;padding:0 1.5rem}.topbar .spacer{flex:1}.topbar .user{color:#d1d1d1;font-size:13px;padding:0 .25rem}.topbar-link{color:#d1d1d1;font-size:14px;padding:.5rem .85rem;border-radius:var(--radius-sm);border:1px solid transparent;transition:var(--transition)}.topbar-link:hover{color:#fff;text-decoration:none}.topbar-link.active{color:var(--color-primary)}.topbar-btn{background:transparent;color:#fff;border:1px solid #D1D1D1;padding:.5rem .85rem;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;transition:var(--transition)}.topbar-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent}.brand-mark svg{display:block}.brand-text{color:#fff;font-size:22px;font-weight:600;letter-spacing:-.5px}.app-sidebar{width:200px;flex:0 0 200px;background:var(--color-card);border-right:1px solid var(--color-border);padding:1.25rem 1rem;min-height:0}.sidebar-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-muted);margin-bottom:1rem}.sidebar-nav{display:flex;flex-direction:column}.sidebar-item{display:block;font-size:14px;color:var(--color-text);padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:6px;cursor:pointer;transition:var(--transition);text-decoration:none}.sidebar-item:hover{background:var(--color-primary-soft);color:var(--color-primary);text-decoration:none}.sidebar-item.active{background:var(--color-primary);color:#fff;font-weight:500}.app-main{flex:1;min-width:0;background:var(--color-bg)}.container{max-width:1200px;margin:0 auto;padding:2rem;width:100%}.card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 1px 4px #0000000f}.form-section-band{background:var(--color-dark);color:#fff;padding:10px 14px;border-left:3px solid var(--color-primary);border-radius:var(--radius-sm);font-size:14px;font-weight:600;margin:1.5rem 0 .75rem;letter-spacing:.2px}button{font-family:inherit}button.primary{background:var(--color-primary);color:#fff;border:none;padding:10px 20px;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:500;transition:var(--transition)}button.primary:hover{background:var(--color-primary-hover)}button.primary:disabled{background:var(--color-border);color:#9ca3af;cursor:not-allowed}button.secondary{background:#fff;color:var(--color-text);border:1px solid var(--color-secondary-border);padding:10px 20px;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:500;transition:var(--transition)}button.secondary:hover{background:var(--color-bg)}button.secondary:disabled{color:#9ca3af;cursor:not-allowed;background:#fafafa}button.danger{background:var(--color-danger);color:#fff;border:none;padding:8px 16px;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:500;transition:var(--transition)}button.danger:hover{background:var(--color-primary-hover)}button.danger:disabled{background:var(--color-border);color:#9ca3af;cursor:not-allowed}input,select,textarea{font:inherit;font-size:14px;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;background:#fff;color:var(--color-text);transition:var(--transition)}input::placeholder,textarea::placeholder{color:var(--color-placeholder)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #cc00001f}label{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-muted);margin-bottom:.4rem;margin-top:.75rem}.row{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap}.row>*{flex:1;min-width:150px}table{width:100%;border-collapse:collapse;margin-top:.5rem;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--color-row-divider);font-size:14px}th{background:var(--color-table-head);color:var(--color-muted);font-weight:600;border-bottom:2px solid var(--color-border);text-transform:uppercase;letter-spacing:.4px;font-size:12px}tbody tr{transition:background .15s ease}tbody tr:hover{background:var(--color-primary-row-hover)}tbody tr:last-child td{border-bottom:none}tr.material-section-header td{background:var(--color-dark);color:#fff;font-weight:600;letter-spacing:.3px;padding:12px;border-bottom:none;text-transform:none;font-size:14px;cursor:pointer;-webkit-user-select:none;user-select:none}tr.material-section-header td:first-child{text-transform:none;box-shadow:inset 3px 0 0 var(--color-primary)}tr.material-section-header:hover td{background:var(--color-dark-hover)}tr.material-section-header .section-chevron{color:var(--color-yellow)}tr.material-row td:nth-child(3){color:var(--color-primary);font-weight:600}tr.material-row .muted{color:var(--color-placeholder)}tr.material-row.deleted-row td{background:var(--color-primary-soft);text-decoration:line-through}.tabs{display:flex;gap:0;border-bottom:2px solid var(--color-border);margin-top:1rem;background:#fff;border-radius:0}.tabs .tab{background:transparent;border:none;border-bottom:3px solid transparent;padding:12px 24px;cursor:pointer;color:var(--color-muted);font-size:14px;font-weight:500;margin-bottom:-2px;transition:var(--transition)}.tabs .tab:hover{color:var(--color-primary)}.tabs .tab.active{color:var(--color-primary);border-bottom-color:var(--color-yellow);background:transparent}.sketch-toolbar{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--color-border);border-bottom:none;border-radius:var(--radius-md) var(--radius-md) 0 0;padding:.6rem .85rem}.sketch-toolbar label{margin:0}.sketch-area{display:flex;gap:.75rem;align-items:flex-start}.sketch-canvas-wrap{flex:1;min-width:0;border:1px solid var(--color-border);border-top:none;background:#fafafa;border-radius:0 0 var(--radius-md) var(--radius-md);overflow:hidden}.sketch-canvas-wrap canvas{outline:none}.wall-editor{width:280px;flex:0 0 280px;margin-bottom:0}.muted{color:var(--color-muted);font-size:13px}.error{color:var(--color-danger);margin:.5rem 0;background:var(--color-primary-soft);border:1px solid #FECACA;padding:.6rem .85rem;border-radius:var(--radius-sm);font-size:14px}.toolbar{display:flex;gap:.5rem;align-items:center;margin:.75rem 0;flex-wrap:wrap}.right{margin-left:auto}.login-page{min-height:100vh;background:var(--color-dark);display:flex;align-items:center;justify-content:center;padding:2rem}.login-page-inner{width:100%;max-width:380px;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.login-brand{display:flex;align-items:center;gap:12px;color:#fff}.login-brand .brand-text{font-size:26px;font-weight:600;letter-spacing:-.5px}.login-wrap{width:100%;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000004d}.assembly-items th,.assembly-items td{font-size:13px}.assembly-items input{padding:6px 8px}.storey-badge{display:inline-block;margin-left:.5rem;padding:.15rem .55rem;border-radius:999px;background:var(--color-yellow);color:var(--color-dark);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;vertical-align:middle}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .15s ease-out}.modal{background:#fff;border-radius:12px;padding:2rem;width:100%;max-width:540px;box-shadow:0 8px 32px #0000002e;max-height:90vh;overflow-y:auto}.modal h2{margin-top:0;font-size:18px;font-weight:600;color:var(--color-dark)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}tr.material-row td:first-child{color:var(--color-text)}@media (max-width: 768px){.app-sidebar{display:none}.container{padding:1rem}.topbar{padding:0 1rem}.brand-text{font-size:18px}}
