:root{--sidebar-width:60px;--bg-app:#141d2b;--bg-sidebar:#0d1520;--bg-panel:#1c2a3a;--bg-panel-hover:#243447;--bg-input:#1a2636;--border:#253344;--border-light:#2d4057;--text-primary:#e2e8f0;--text-secondary:#7a8fa6;--text-muted:#4a6278;--bg-section-header:#0d1520;--bg-hover:rgba(255,255,255,0.05);--accent:#3b82f6;--accent-hover:#2563eb;--status-green:#22c55e;--status-amber:#f59e0b;--status-red:#ef4444;--status-blue:#3b82f6;--status-purple:#8b5cf6;--status-grey:#64748b}[data-theme=light]{--bg-app:#f3f2f1;--bg-panel:#ffffff;--bg-panel-hover:#edebe9;--bg-input:#ffffff;--border:#e1dfdd;--border-light:#edebe9;--text-primary:#323130;--text-secondary:#605e5c;--text-muted:#a19f9d;--accent:#0078d4;--accent-hover:#106ebe;--bg-hover:rgba(0,0,0,0.04);--bg-section-header:#edebe9;--text-muted:#797775;--border:#c8c6c4;--border-light:#e1dfdd}[data-theme=light] .project-list-panel{box-shadow:4px 0 12px rgba(0,0,0,.1)}[data-theme=light] .project-accordion{box-shadow:0 2px 4px -1px rgba(0,0,0,.08)}[data-theme=light] .project-card{background-color:#ffffff}[data-theme=light] .project-accordion-header{color:var(--text-primary)}[data-theme=light] .project-accordion-icon{color:var(--text-secondary)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-app);color:var(--text-primary);line-height:1.5;font-size:14px;-webkit-font-smoothing:antialiased}.app-shell{display:flex;height:100vh;overflow:hidden}.app-content{flex:1 1;overflow-y:auto;min-width:0}.app-content,.sidebar{display:flex;flex-direction:column}.sidebar{width:var(--sidebar-width);background-color:var(--bg-sidebar);border-right:1px solid var(--border);padding:12px 0;z-index:100}.sidebar,.sidebar-logo{align-items:center;flex-shrink:0}.sidebar-logo{width:36px;height:36px;display:flex;justify-content:center;margin-bottom:20px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.sidebar-nav{flex-direction:column;gap:4px;flex:1 1;width:100%;padding:0 10px}.sidebar-nav,.sidebar-nav-item{display:flex;align-items:center}.sidebar-nav-item{justify-content:center;width:40px;height:40px;border-radius:8px;color:#7a9bb8;text-decoration:none;transition:background-color .15s,color .15s;cursor:pointer;border:none;background:none;padding:0}.sidebar-nav-item:hover{background-color:rgba(255,255,255,.08);color:#e2e8f0}.sidebar-nav-item.active{background-color:var(--accent);color:#fff}.icon-dark-only{display:block}.icon-light-only,[data-theme=light] .icon-dark-only{display:none}[data-theme=light] .icon-light-only{display:block}.sidebar-bottom{display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 10px}.sidebar-version{font-size:.6rem;color:var(--text-secondary);opacity:.45;letter-spacing:.03em;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:default}.sidebar-avatar-wrap{position:relative}.sidebar-avatar{width:32px;height:32px;border-radius:50%;background-color:var(--bg-panel);border:1px solid var(--border-light);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--text-primary);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:0;transition:border-color .15s}.sidebar-avatar:hover{border-color:var(--accent)}.sidebar-avatar-photo{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}.sidebar-profile-popover{position:absolute;bottom:0;left:calc(100% + 10px);transform:none;width:220px;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:1rem;box-shadow:0 8px 24px rgba(0,0,0,.25);display:flex;flex-direction:column;align-items:center;gap:.6rem;z-index:200}.sidebar-profile-avatar{width:52px;height:52px;border-radius:50%;background-color:var(--bg-secondary);border:1px solid var(--border-light);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;color:var(--text-primary);overflow:hidden;flex-shrink:0}.sidebar-profile-info{display:flex;flex-direction:column;align-items:center;gap:.2rem;text-align:center}.sidebar-profile-name{font-size:.85rem;font-weight:600;color:var(--text-primary)}.sidebar-profile-email{font-size:.72rem;color:var(--text-muted);word-break:break-all}.sidebar-signout-btn{margin-top:.25rem;width:100%;padding:.4rem 0;font-size:.8rem;font-weight:500;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s}.sidebar-signout-btn:hover{background:color-mix(in srgb,var(--status-red) 12%,transparent);border-color:var(--status-red);color:var(--status-red)}.home-page{position:relative;flex:1 1;overflow:hidden;min-height:0}.home-map-fullbg{position:absolute;inset:0;z-index:0}.home-overlay{position:absolute;top:0;left:0;z-index:1;display:flex;flex-direction:column;gap:1rem;padding:1.25rem;height:100%;overflow:hidden;pointer-events:none}.home-overlay>*{pointer-events:auto}.home-logo-card{width:450px}.task-panel{width:300px;min-height:300px;max-height:750px;flex-shrink:0;background:var(--bg-panel);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;overflow:hidden}.task-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem .875rem .5rem;border-bottom:1px solid var(--border);gap:.5rem}.task-panel-title{font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}.task-panel-header-actions{display:flex;align-items:center;gap:.4rem}.task-add-btn{background:var(--accent);color:#fff;border:none;border-radius:5px;width:24px;height:24px;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}.task-add-btn:hover{background:var(--accent-hover)}.task-panel-tabs{display:flex;gap:.25rem;padding:.5rem .875rem 0}.task-tab-btn{background:none;border:none;font-size:.75rem;color:var(--text-secondary);cursor:pointer;padding:.2rem .5rem;border-radius:4px;transition:background .15s,color .15s}.task-tab-btn--active,.task-tab-btn:hover{background:var(--bg-row);color:var(--text-primary)}.task-tab-btn--active{font-weight:600}.task-list{flex:1 1;overflow-y:auto;padding:.5rem 0}.task-empty-msg{font-size:.8rem;color:var(--text-secondary);text-align:center;padding:1.5rem 1rem}.task-item{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem .875rem;border-bottom:1px solid var(--border);transition:background .1s}.task-item:hover{background:var(--bg-row)}.task-item:hover .task-delete-btn{opacity:1}.task-item--complete{opacity:.5}.task-checkbox{width:18px;height:18px;padding:0;flex-shrink:0;margin-top:1px;border:1.5px solid var(--border);border-radius:4px;background:var(--bg-app);color:var(--accent);font-size:.7rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,border-color .15s}.task-checkbox:hover{border-color:var(--accent)}.task-item-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.task-title{font-size:.82rem;color:var(--text-primary);line-height:1.35;word-break:break-word}.task-item--complete .task-title{text-decoration:line-through}.task-meta{display:flex;flex-wrap:wrap;gap:.35rem;font-size:.7rem;color:var(--text-secondary)}.task-meta-project{font-weight:500}.task-meta-due--overdue{color:#e05252;font-weight:600}.task-meta-assignee{color:var(--accent)}.task-delete-btn{opacity:0;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:2px;border-radius:4px;flex-shrink:0;transition:opacity .15s,color .15s}.task-delete-btn:hover{color:#e05252}.task-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:200}.task-modal-box{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;width:420px;max-width:95vw;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.task-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .75rem;border-bottom:1px solid var(--border)}.task-modal-title{font-size:.9rem;font-weight:600;color:var(--text-primary)}.task-modal-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:1rem;padding:0 .25rem}.task-modal-close:hover{color:var(--text-primary)}.task-modal-form{display:flex;flex-direction:column;gap:.875rem;padding:1rem 1.25rem 1.25rem}.task-modal-field{display:flex;flex-direction:column;gap:.3rem}.task-modal-label{font-size:.75rem;color:var(--text-secondary);font-weight:500;display:flex;align-items:center;gap:.5rem}.task-modal-input,.task-modal-select,.task-modal-textarea{background:var(--bg-app);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.82rem;padding:.45rem .6rem;outline:none;transition:border-color .15s;font-family:inherit;width:100%;box-sizing:border-box}.task-modal-input:focus,.task-modal-select:focus,.task-modal-textarea:focus{border-color:var(--accent)}.task-modal-input:disabled{opacity:.5;cursor:not-allowed}.task-modal-textarea{resize:vertical;min-height:72px}.task-modal-clear-btn{background:none;border:none;color:var(--text-secondary);font-size:.7rem;cursor:pointer;padding:0}.task-modal-clear-btn:hover{color:#e05252}.task-modal-project-results{position:absolute;top:100%;left:0;right:0;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;margin-top:2px;z-index:10;max-height:200px;overflow-y:auto}.task-modal-project-result{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.45rem .75rem;background:none;border:none;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;gap:.5rem}.task-modal-project-result:last-child{border-bottom:none}.task-modal-project-result:hover{background:var(--bg-row)}.task-modal-project-name{font-size:.8rem;color:var(--text-primary)}.task-modal-project-order{font-size:.72rem;color:var(--text-secondary)}.task-modal-error{font-size:.78rem;color:#e05252}.task-modal-actions{display:flex;gap:.5rem;justify-content:flex-end;padding-top:.25rem}.task-detail-body{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem 1.25rem}.task-detail-row{display:flex;align-items:baseline;gap:.75rem}.task-detail-row--col{flex-direction:column;gap:.3rem}.task-detail-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);min-width:90px;flex-shrink:0}.task-detail-value{font-size:.85rem;color:var(--text-primary)}.task-detail-value--desc{font-size:.83rem;color:var(--text-secondary);line-height:1.5;white-space:pre-wrap}.task-detail-status{font-size:.75rem;font-weight:600;padding:.15rem .6rem;border-radius:12px}.task-detail-status--open{background:rgba(59,130,246,.15);color:#3b82f6}.task-detail-status--complete{background:rgba(34,197,94,.15);color:#22c55e}.task-status-toggle{display:flex;gap:.4rem}.task-status-toggle-btn{font-size:.75rem;font-weight:600;padding:.2rem .7rem;border-radius:12px;border:1px solid transparent;background:none;color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s}.task-status-toggle-btn--open.active{background:rgba(59,130,246,.15);color:#3b82f6;border-color:rgba(59,130,246,.3)}.task-status-toggle-btn--complete.active{background:rgba(34,197,94,.15);color:#22c55e;border-color:rgba(34,197,94,.3)}.task-status-toggle-btn:not(.active):hover{background:var(--bg-hover);color:var(--text-primary)}.task-item-body{cursor:pointer}.task-chip,.task-item-body:hover .task-title{color:var(--accent)}.task-chip{display:inline-flex;align-items:center;gap:.25rem;font-size:.7rem;background:none;border:1px solid var(--accent);border-radius:12px;padding:.1rem .5rem;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.task-chip:hover{background:var(--accent);color:#fff}.access-gate{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg-app);z-index:200}.access-gate-box{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:2.5rem 3rem;max-width:420px;text-align:center;box-shadow:0 8px 32px rgba(0,0,0,.3);display:flex;flex-direction:column;gap:.75rem}.access-gate-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0}.access-gate-msg{font-size:.875rem;color:var(--text-secondary);margin:0;line-height:1.5}.home-signin-overlay{position:absolute;inset:0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:rgba(0,0,0,.35);justify-content:center;z-index:100;padding:2rem}.home-signin-box,.home-signin-overlay{display:flex;flex-direction:column;align-items:center;gap:1.25rem}.home-signin-box{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:2rem 2.5rem;box-shadow:0 8px 32px rgba(0,0,0,.3)}.home-signin-prompt{font-size:.95rem;color:var(--text-secondary);margin:0}.home-signin-btn{padding:.55rem 1.5rem;font-size:.875rem;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:opacity .15s}.home-signin-btn:hover{opacity:.88}.mat-page{display:flex;flex-direction:column;flex:1 1;min-height:0;overflow:hidden}.mat-toolbar{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-panel);border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap}.mat-filter-dropdown-wrap{position:relative}.mat-filter-dropdown-btn{display:flex;align-items:center;gap:.5rem;padding:.35rem .65rem;font-size:.8rem;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);cursor:pointer;white-space:nowrap}.mat-filter-dropdown-btn:hover{border-color:var(--accent)}.mat-filter-dropdown-arrow{font-size:.6rem;color:var(--text-muted)}.mat-filter-dropdown-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:100;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.3);padding:.5rem .75rem;display:flex;flex-direction:column;gap:.4rem;min-width:220px}.mat-filter-select-all{font-size:.75rem;color:var(--accent);background:none;border:none;padding:0 0 .3rem;cursor:pointer;text-align:left;border-bottom:1px solid var(--border);margin-bottom:.1rem}.mat-filter-select-all:hover{text-decoration:underline}.mat-filter-checkbox{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-secondary);cursor:pointer;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.mat-filter-checkbox input[type=checkbox]{accent-color:var(--accent);cursor:pointer;width:13px;height:13px}.mat-search{flex:1 1;max-width:280px;padding:.35rem .65rem;font-size:.8rem;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);color-scheme:dark}[data-theme=light] .mat-search{color-scheme:light}.mat-filter-select{padding:.35rem .65rem;font-size:.8rem;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);color-scheme:dark}[data-theme=light] .mat-filter-select{color-scheme:light}.mat-count{font-size:.75rem;color:var(--text-muted);margin-left:auto}.mat-table-wrap{flex:1 1;overflow:auto}.mat-table{width:100%;border-collapse:collapse;font-size:.8rem;table-layout:fixed}.mat-th{position:-webkit-sticky;position:sticky;top:0;background:var(--bg-panel);border-bottom:2px solid var(--border);padding:.6rem .75rem;text-align:left;font-size:.8rem;font-weight:600;color:var(--text-secondary);white-space:nowrap;z-index:1}.mat-th--link{width:52px}.mat-th--site{width:160px}.mat-th--order{width:120px}.mat-th--status{width:190px;text-align:center}.mat-th--desc{width:200px}.mat-th--shipdate{width:160px;text-align:center}.mat-th--majpct,.mat-th--minpct{width:120px;text-align:center}.mat-th--notes{width:400px}.mat-pending-badge{display:inline-block;margin-left:.35rem;padding:.1rem .35rem;font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;background:color-mix(in srgb,var(--status-amber) 15%,transparent);color:var(--status-amber);border-radius:3px;vertical-align:middle}.mat-cell{padding:.45rem .75rem;border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text-primary);overflow:hidden}.mat-table tbody tr:hover .mat-cell{background:color-mix(in srgb,var(--accent) 4%,transparent)}.mat-row--saving .mat-cell{opacity:.6}.mat-row--error .mat-cell{background:color-mix(in srgb,var(--status-red) 6%,transparent)}.mat-cell--link{width:52px;text-align:center;padding:0}.mat-cell--link-wrap{display:flex;align-items:center;justify-content:center;gap:2px}.mat-cell--site{font-weight:600;white-space:nowrap;text-overflow:ellipsis}.mat-cell--order{font-size:.75rem}.mat-cell--desc,.mat-cell--order{white-space:nowrap;text-overflow:ellipsis;color:var(--text-secondary)}.mat-cell--placeholder,.mat-cell--status{text-align:center}.mat-cell--notes-wrap{position:relative;cursor:pointer;overflow:visible}.mat-notes-popover{position:absolute;top:0;left:0;width:100%;z-index:200;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.3);padding:6px}.mat-notes-popover-textarea{width:100%;height:150px;resize:none;background:var(--bg-input);border:1px solid var(--border);border-radius:5px;color:var(--text-primary);font-size:.8rem;font-family:inherit;padding:.4rem .5rem;outline:none;line-height:1.5}.mat-notes-popover-textarea:focus{border-color:var(--accent)}.mat-placeholder{color:color-mix(in srgb,var(--text-muted) 50%,transparent);font-size:.75rem}.mat-status-select{width:100%;min-width:160px;padding:.3rem .5rem;font-size:.78rem;font-weight:500;border-radius:5px;border:1px solid transparent;background:transparent;cursor:pointer;color-scheme:dark}[data-theme=light] .mat-status-select{color-scheme:light}.mat-status-select--green{color:var(--status-green);background:color-mix(in srgb,var(--status-green) 12%,transparent);border-color:color-mix(in srgb,var(--status-green) 30%,transparent)}.mat-status-select--amber{color:var(--status-amber);background:color-mix(in srgb,var(--status-amber) 12%,transparent);border-color:color-mix(in srgb,var(--status-amber) 30%,transparent)}.mat-status-select--red{color:var(--status-red);background:color-mix(in srgb,var(--status-red) 12%,transparent);border-color:color-mix(in srgb,var(--status-red) 30%,transparent)}.mat-status-select--blue{color:var(--status-blue);background:color-mix(in srgb,var(--status-blue) 12%,transparent);border-color:color-mix(in srgb,var(--status-blue) 30%,transparent)}.mat-status-select--purple{color:var(--status-purple);background:color-mix(in srgb,var(--status-purple) 12%,transparent);border-color:color-mix(in srgb,var(--status-purple) 30%,transparent)}.mat-status-select--grey{color:var(--text-muted);background:color-mix(in srgb,var(--status-grey) 12%,transparent);border-color:color-mix(in srgb,var(--status-grey) 30%,transparent)}.mat-notes-input{width:100%;padding:.3rem .5rem;font-size:.78rem;background:transparent;border:1px solid transparent;border-radius:5px;color:var(--text-primary);transition:border-color .15s,background .15s;color-scheme:dark}[data-theme=light] .mat-notes-input{color-scheme:light}input[type=date].mat-notes-input{text-align:center;min-width:unset;width:100%;color-scheme:dark;font-weight:600;color:var(--text-primary)}[data-theme=light] input[type=date].mat-notes-input{color-scheme:light}input[type=date].mat-date-input[value=""]:not(:focus){color:transparent}input[type=date].mat-date-input[value=""]:not(:focus)::-webkit-datetime-edit{color:transparent}.mat-notes-input:focus,.mat-notes-input:hover{background:var(--bg-input);border-color:var(--border);outline:none}.mat-pct-wrap{display:flex;align-items:center;justify-content:center;gap:1px;border-radius:5px;border:1px solid transparent;padding:.2rem .35rem;font-weight:500;font-size:.78rem;width:-moz-fit-content;width:fit-content;margin:0 auto}.mat-pct-input{width:3ch;min-width:unset;text-align:center;font-weight:inherit;font-size:inherit;color:inherit;background:transparent;border:none;outline:none;padding:0;cursor:text;-moz-appearance:textfield}.mat-pct-input::-webkit-inner-spin-button,.mat-pct-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.mat-pct-symbol{font-weight:inherit;font-size:inherit;color:inherit;line-height:1}.mat-message{padding:2rem;text-align:center;color:var(--text-muted);font-size:.85rem}.mat-message--error{color:var(--status-red)}.mat-project-link{display:flex;align-items:center;justify-content:center;color:var(--text-muted);padding:.25rem;border-radius:4px;transition:color .15s}.mat-project-link:hover{color:var(--accent)}.mat-att-btn{background:none;border:none;cursor:pointer;padding:0}.mat-att-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:300;display:flex;align-items:center;justify-content:center}.mat-att-modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;width:540px;max-height:70vh;display:flex;flex-direction:column;box-shadow:0 8px 32px rgba(0,0,0,.4)}.mat-att-header{justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border);flex-shrink:0}.mat-att-header,.mat-att-title{display:flex;align-items:center}.mat-att-title{gap:.5rem;font-size:.85rem;font-weight:600;color:var(--text-primary)}.mat-att-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;display:flex;align-items:center;border-radius:4px;transition:color .15s}.mat-att-close:hover{color:var(--text-primary)}.mat-att-header-actions{display:flex;align-items:center;gap:.5rem}.mat-att-upload-btn{display:flex;align-items:center;gap:.4rem;padding:.3rem .7rem;font-size:.78rem;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:opacity .15s}.mat-att-upload-btn:hover:not(:disabled){opacity:.85}.mat-att-upload-btn:disabled{opacity:.5;cursor:default}.mat-att-body{flex:1 1;overflow-y:auto;padding:.5rem;display:flex;flex-direction:column;gap:2px}.mat-att-status{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-muted);padding:.5rem}.mat-att-status--error{color:var(--status-red)}.mat-att-file-row{display:flex;align-items:center;gap:.65rem;padding:.5rem .65rem;background:none;border:1px solid transparent;border-radius:7px;cursor:pointer;text-align:left;width:100%;transition:background .15s,border-color .15s}.mat-att-file-row:hover{background:var(--bg-panel-hover);border-color:var(--border)}.mat-att-file-row:disabled{opacity:.6;cursor:default}.mat-att-file-icon{flex-shrink:0}.mat-att-file-info{flex:1 1;display:flex;flex-direction:column;min-width:0}.mat-att-file-name{font-size:.82rem;color:var(--text-primary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-att-file-size{font-size:.72rem;color:var(--text-muted)}.mat-att-row-spinner{color:var(--text-muted);flex-shrink:0}.mat-att-file-row-wrap{display:flex;align-items:center;gap:.5rem}.mat-att-file-row{flex:1 1}.mat-att-calc-row{display:flex;align-items:center;flex-shrink:0}.mat-att-calc-btn{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.25rem;font-size:.72rem;line-height:1.3;text-align:center;color:var(--accent);background:none;border:1px solid var(--accent);border-radius:5px;padding:.3rem .55rem;cursor:pointer;transition:background .15s;white-space:normal}.mat-att-calc-btn:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.mat-att-calc-status{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--text-muted)}.mat-att-calc-result{color:var(--text-secondary);flex-wrap:wrap}.mat-att-calc-pcts{display:flex;gap:.75rem;font-size:.8rem}.mat-pct-sentinel{font-size:.75rem;color:var(--text-muted);font-style:italic;padding:0 .25rem}.mat-att-calc-saved{color:var(--status-green)}.mat-att-calc-error{color:var(--status-red);max-width:340px;flex-wrap:wrap}.mat-att-calc-error-msg{font-size:.75rem;line-height:1.4;word-break:break-word}.mat-att-save-btn{display:flex;align-items:center;gap:.25rem;font-size:.72rem;color:var(--status-green);background:color-mix(in srgb,var(--status-green) 10%,transparent);border:1px solid color-mix(in srgb,var(--status-green) 30%,transparent);border-radius:4px;padding:.15rem .45rem;cursor:pointer;transition:background .15s}.mat-att-save-btn:hover{background:color-mix(in srgb,var(--status-green) 20%,transparent)}.mat-att-calc-reset{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:0;display:flex;align-items:center}.mat-att-calc-reset:hover{color:var(--text-primary)}.mat-preview-overlay{position:fixed;inset:0;z-index:400;background:var(--bg-app);display:flex;flex-direction:column}.mat-preview-bar{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:var(--bg-panel);border-bottom:1px solid var(--border);flex-shrink:0}.mat-preview-name{font-size:.85rem;font-weight:600;color:var(--text-primary);flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-preview-edit-btn{display:flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:500;color:var(--accent);text-decoration:none;padding:.25rem .6rem;border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:5px;white-space:nowrap;transition:background .15s}.mat-preview-edit-btn:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.mat-preview-loading{flex:1 1;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.mat-preview-frame{flex:1 1;width:100%;border:none}.mat-calcall-btn{display:flex;align-items:center;gap:.4rem;padding:.35rem .75rem;font-size:.8rem;color:var(--accent);background:none;border:1px solid var(--accent);border-radius:6px;cursor:pointer;white-space:nowrap;transition:background .15s}.mat-calcall-btn:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.mat-info-wrap{position:relative}.mat-info-popover{position:absolute;top:calc(100% + 8px);right:0;width:425px;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:1rem 1.1rem;box-shadow:0 8px 24px rgba(0,0,0,.25);z-index:100}.mat-info-title{font-size:.85rem;font-weight:700;color:var(--text-primary);margin:0 0 .6rem}.mat-info-text{margin:.5rem 0;line-height:1.5}.mat-info-list,.mat-info-text{font-size:.78rem;color:var(--text-secondary)}.mat-info-list{margin:.4rem 0 .4rem 1.1rem;line-height:1.8}.mat-info-formula{font-size:.8rem;font-family:monospace;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);border-radius:5px;padding:.3rem .6rem;margin:.4rem 0}.mat-info-codes{display:flex;flex-direction:column;gap:.3rem;margin-top:.6rem;padding-top:.6rem;border-top:1px solid var(--border)}.mat-info-code{font-size:.75rem;color:var(--text-muted);line-height:1.4}.mat-reload-btn{display:flex;align-items:center;justify-content:center;padding:.35rem .5rem;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-muted);cursor:pointer;transition:color .15s,background .15s}.mat-reload-btn:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover)}.mat-reload-btn:disabled{opacity:.4;cursor:default}@keyframes mat-spin{to{transform:rotate(1turn)}}.mat-reload-spinning{animation:mat-spin .8s linear infinite}.mat-calcall-modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;width:560px;max-height:75vh;display:flex;flex-direction:column;box-shadow:0 8px 32px rgba(0,0,0,.4)}.mat-calcall-progress-wrap{height:4px;background:var(--bg-input);flex-shrink:0}.mat-calcall-progress-bar{height:100%;background:var(--accent);transition:width .3s ease}.mat-calcall-stats{display:flex;align-items:center;gap:1rem;padding:.5rem 1rem;font-size:.78rem;color:var(--text-secondary);border-bottom:1px solid var(--border);flex-shrink:0}.mat-calcall-stat-saved{color:var(--status-green);display:flex;align-items:center;gap:.25rem}.mat-calcall-stat-skip{color:var(--text-muted);display:flex;align-items:center;gap:.25rem}.mat-calcall-stat-err{color:var(--status-red);display:flex;align-items:center;gap:.25rem}.mat-calcall-list{flex:1 1;overflow-y:auto;padding:.35rem .5rem}.mat-calcall-row{display:flex;align-items:center;gap:.75rem;padding:.3rem .5rem;border-radius:5px;font-size:.78rem}.mat-calcall-row--processing{background:color-mix(in srgb,var(--accent) 6%,transparent)}.mat-calcall-row--done{color:var(--text-secondary)}.mat-calcall-row--skipped{color:var(--text-muted)}.mat-calcall-row--error{color:var(--status-red)}.mat-calcall-site{font-weight:600;width:160px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-calcall-order{color:var(--text-muted);font-size:.72rem;flex:1 1}.mat-calcall-status{display:flex;align-items:center;gap:.3rem;flex-shrink:0;width:90px;justify-content:flex-end}.mat-calcall-pending{color:var(--text-muted)}.mat-calcall-footer{display:flex;justify-content:flex-end;padding:.65rem 1rem;border-top:1px solid var(--border);flex-shrink:0}.mat-calcall-cancel-btn{padding:.35rem .9rem;font-size:.8rem;background:none;border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);cursor:pointer}.mat-calcall-cancel-btn:hover{border-color:var(--status-red);color:var(--status-red)}.home-map-wrapper{width:100%;height:100%;overflow:hidden;background:#1d2c4d;position:relative}.home-map-header{position:absolute;bottom:2.5rem;right:5.5rem;z-index:1;display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;padding:.6rem .875rem;background:rgba(29,44,77,.88);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:8px;border:1px solid rgba(255,255,255,.1)}.home-map-title{font-size:.85rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#8ec3b9}.home-map-legend{display:flex;flex-wrap:wrap;gap:.75rem}.home-map-legend-item{display:flex;align-items:center;gap:.35rem;font-size:.72rem;color:#8ec3b9}.home-map-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.home-map-container,.home-map-loading{width:100%;height:100%}.home-map-loading{display:flex;align-items:center;justify-content:center;background:#1d2c4d;color:#8ec3b9;font-size:.85rem;border-radius:12px;border:1px solid var(--border)}.home-map-infowindow{font-family:inherit;min-width:160px;padding:4px 2px}.home-map-info-site{font-size:.85rem;font-weight:700;color:#1d2c4d;margin-bottom:2px}.home-map-info-order{font-size:.75rem;color:#555;margin-bottom:4px}.home-map-info-status{font-size:.75rem;font-weight:600;margin-bottom:6px}.home-map-info-btn{display:block;width:100%;margin-top:6px;padding:4px 8px;font-size:.75rem;font-weight:600;background:#1d2c4d;color:#8ec3b9;border:none;border-radius:4px;cursor:pointer}.home-map-info-btn:hover{background:#2c3e6b}.auth-card{background-color:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:2.5rem;width:100%;max-width:660px}.auth-card-logo{margin-bottom:.75rem}.auth-card-sub{font-size:.8rem;color:var(--text-muted);margin-bottom:2rem}.auth-card-user{margin-bottom:1.5rem}.auth-card-user p{font-size:.875rem;color:var(--text-secondary);margin-bottom:.35rem}.auth-card-user strong{color:var(--text-primary);font-weight:500}button{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.25rem;font-size:.875rem;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:background-color .15s;background-color:var(--accent);color:#fff}button:hover{background-color:var(--accent-hover)}button.btn-ghost{background-color:transparent;color:var(--text-secondary);border:1px solid var(--border-light)}button.btn-ghost:hover{background-color:var(--bg-panel-hover);color:var(--text-primary)}.projects-layout{display:flex;flex:1 1;min-height:0;overflow:hidden;height:100%}.project-list-panel{width:260px;flex-shrink:0;border-right:1px solid var(--border);box-shadow:4px 0 12px rgba(0,0,0,.25);display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:10}.project-list-header{padding:10px;border-bottom:1px solid var(--border);flex-shrink:0}.project-search-row{display:flex;gap:6px;align-items:center}.project-search{flex:1 1;background-color:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.8rem;padding:.4rem .75rem;outline:none}.project-search::placeholder{color:var(--text-muted)}.project-search:focus{border-color:var(--accent)}.project-cog-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:none;border:1px solid transparent;border-radius:6px;color:var(--text-muted);cursor:pointer;transition:color .15s,background-color .15s;flex-shrink:0}.project-cog-btn:hover{background-color:var(--bg-panel-hover);color:var(--text-primary)}.project-cog-btn.active{color:var(--accent);border-color:var(--accent)}.project-filter-panel{margin-top:8px;display:flex;flex-direction:column;gap:8px}.project-filter-toggle{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;color:var(--text-secondary);cursor:pointer}.toggle-track{width:32px;height:18px}.toggle-track input{opacity:0;width:0;height:0;position:absolute}.toggle-thumb{inset:0;background-color:var(--border-light);border-radius:18px;transition:background-color .2s;cursor:pointer}.toggle-thumb:before{content:"";position:absolute;width:12px;height:12px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s}.toggle-track input:checked+.toggle-thumb{background-color:var(--accent)}.toggle-track input:checked+.toggle-thumb:before{transform:translateX(14px)}.project-filter-selects{display:flex;gap:6px}.project-filter-select{flex:1 1;background-color:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.72rem;padding:.3rem .5rem;outline:none;cursor:pointer}.project-filter-select:focus{border-color:var(--accent)}.project-list-body{flex:1 1;overflow-y:auto;display:flex;flex-direction:column;scrollbar-width:none}.project-list-body::-webkit-scrollbar{display:none}.project-accordion{border-bottom:1px solid var(--border);box-shadow:0 6px 12px -2px rgba(0,0,0,.6);position:relative;z-index:1}.project-accordion-header{width:100%;display:flex;align-items:center;gap:6px;padding:8px 10px;background-color:var(--bg-section-header);border:none;border-radius:0;color:var(--text-secondary);font-size:.75rem;font-weight:500;cursor:pointer;text-align:left;transition:background-color .1s,color .1s}.project-accordion-header:hover{background-color:var(--bg-panel-hover);color:var(--text-primary)}.project-accordion-icon{flex-shrink:0;color:var(--text-muted)}.project-accordion-icon--star{color:#f59e0b}.project-accordion-label{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-accordion-count{margin-left:auto;font-size:.7rem;color:var(--text-muted);background-color:var(--bg-panel);padding:1px 6px;border-radius:10px}.project-accordion-body{display:flex;flex-direction:column}.project-accordion-body--scrollable{max-height:248px;overflow-y:auto;scrollbar-width:none}.project-accordion-body--scrollable::-webkit-scrollbar{display:none}.project-accordion-body--scrollable-lg{max-height:496px;overflow-y:auto;scrollbar-width:none}.project-accordion-body--scrollable-lg::-webkit-scrollbar{display:none}.project-accordion-body--scrollable-sm{max-height:248px;overflow-y:auto;scrollbar-width:none}.project-accordion-body--scrollable-sm::-webkit-scrollbar{display:none}.project-accordion--fill{flex:1 1;display:flex;flex-direction:column;overflow:hidden}.project-accordion-body--fill{flex:1 1;overflow-y:auto;scrollbar-width:none}.project-accordion-body--fill::-webkit-scrollbar{display:none}.project-list-message{padding:1rem 12px;font-size:.75rem;color:var(--text-muted);text-align:center}.project-list-error{color:var(--status-red)}.project-card{width:100%;background:none;border:none;border-bottom:1px solid var(--border);border-radius:0;padding:8px 12px;text-align:left;cursor:pointer;transition:background-color .1s;display:flex;flex-direction:column;gap:3px;color:var(--text-primary);overflow:hidden;min-width:0;flex-shrink:0}.project-card:hover{background-color:var(--bg-panel-hover)}.project-card.selected{background-color:var(--bg-panel);border-left:3px solid var(--accent);padding-left:9px}.project-card-site-row{font-size:.82rem;font-weight:700;color:var(--text-primary);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.project-card-meta-row{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:3px}.project-card-order{font-weight:500}.project-card-desc,.project-card-order{font-size:.72rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card-desc{width:100%;margin-top:2px;text-align:center}.bid-deadline--warning{color:var(--status-amber);font-weight:500}.bid-deadline--urgent{color:var(--status-red);font-weight:600}.project-card-badges{display:flex;align-items:center;gap:4px;flex-shrink:0}.quote-direct-badge{font-size:.65rem;font-weight:600;padding:1px 5px;border-radius:3px;background:color-mix(in srgb,var(--status-amber) 15%,transparent);color:var(--status-amber);border:1px solid color-mix(in srgb,var(--status-amber) 35%,transparent);white-space:nowrap}.quote-bid-type-badge{font-size:.75rem;font-weight:600;padding:2px 7px;border-radius:4px;white-space:nowrap}.quote-bid-type-badge--competitive{background:color-mix(in srgb,var(--status-blue) 12%,transparent);color:var(--status-blue);border:1px solid color-mix(in srgb,var(--status-blue) 30%,transparent)}.quote-bid-type-badge--direct{background:color-mix(in srgb,var(--status-amber) 12%,transparent);color:var(--status-amber);border:1px solid color-mix(in srgb,var(--status-amber) 30%,transparent)}.project-section-link{width:100%;background:none;border:none;border-radius:0;padding:6px 12px 6px 28px;text-align:left;font-size:.75rem;color:var(--text-secondary);cursor:pointer;transition:background-color .1s,color .1s}.project-section-link:hover{background-color:var(--bg-panel-hover);color:var(--text-primary)}.project-section-link.active{color:var(--accent);background-color:color-mix(in srgb,var(--accent) 10%,transparent)}.project-detail-panel{flex:1 1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.project-detail-empty{align-items:center;justify-content:center}.project-detail-header{gap:10px;padding:12px 20px;border-bottom:1px solid var(--border);width:100%;max-width:1100px}.project-detail-header,.project-star-btn{display:flex;align-items:center;flex-shrink:0}.project-star-btn{justify-content:center;width:30px;height:30px;padding:0;background:none;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;transition:color .15s}.project-star-btn.favorited,.project-star-btn:hover{color:#f59e0b}.project-header-task-btn{margin-left:auto;padding:.25rem .75rem;font-size:.75rem;font-weight:600;border-radius:6px;border:1px solid var(--accent);color:var(--accent);background:transparent;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.project-header-task-btn:hover{background:var(--accent);color:#fff}.project-detail-title{font-size:1rem;font-weight:700;color:var(--text-primary);flex:1 1}.project-status-bar{display:flex;gap:6px;padding:6px 20px;border-bottom:1px solid var(--border);flex-shrink:0;max-width:1100px}.project-status-item{display:flex;flex-direction:column;gap:3px;align-items:stretch;flex:1 1;min-width:110px}.project-status-label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;text-align:center}.project-detail-content{flex:1 1;overflow-y:auto;padding:20px;max-width:1100px;display:flex;flex-direction:column}.project-detail-content--wide{max-width:none;overflow:hidden;padding:12px;display:flex;flex-direction:column}.materials-section-root{flex:1 1;min-height:0;min-width:0;overflow:hidden;display:flex;flex-direction:column}.materials-detail-box,.materials-inner{flex:1 1;min-height:0;min-width:0;overflow:hidden}.materials-inner{display:flex;flex-direction:column;gap:1rem}.materials-table-wrap{flex:1 1;min-height:0;min-width:0;overflow:auto}.project-status-card{flex:1 1;min-width:110px;display:flex;flex-direction:column;gap:2px;padding:5px 10px;border-radius:8px;border:1px solid transparent}.project-status-card-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-status-card-body{flex:1 1;display:flex;align-items:center;justify-content:center;min-height:1.375rem}.project-status-card-value{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-status-card-select,.project-status-card-value{font-size:.7rem;font-weight:600;line-height:1.3;text-align:center}.project-status-card-select{width:100%;background:transparent;border:none;outline:none;color:inherit;cursor:pointer;padding:0;color-scheme:dark;-moz-appearance:none;appearance:none;-webkit-appearance:none;white-space:normal;word-break:break-word}[data-theme=light] .project-status-card-select{color-scheme:light}.project-status-card--saving{opacity:.6;pointer-events:none}.project-status-card--green{background:color-mix(in srgb,var(--status-green) 18%,var(--bg-panel));border-color:color-mix(in srgb,var(--status-green) 40%,transparent);color:var(--status-green)}.project-status-card--amber{background:color-mix(in srgb,var(--status-amber) 18%,var(--bg-panel));border-color:color-mix(in srgb,var(--status-amber) 40%,transparent);color:var(--status-amber)}.project-status-card--red{background:color-mix(in srgb,var(--status-red) 18%,var(--bg-panel));border-color:color-mix(in srgb,var(--status-red) 40%,transparent);color:var(--status-red)}.project-status-card--blue{background:color-mix(in srgb,var(--status-blue) 18%,var(--bg-panel));border-color:color-mix(in srgb,var(--status-blue) 40%,transparent);color:var(--status-blue)}.project-status-card--purple{background:color-mix(in srgb,var(--status-purple) 18%,var(--bg-panel));border-color:color-mix(in srgb,var(--status-purple) 40%,transparent);color:var(--status-purple)}.project-status-card--grey{background:color-mix(in srgb,var(--status-grey) 18%,var(--bg-panel));border-color:color-mix(in srgb,var(--status-grey) 40%,transparent);color:var(--status-grey)}.project-status-card--active{border-width:2px;border-color:currentColor;box-shadow:0 0 8px color-mix(in srgb,currentColor 50%,transparent)}.status-badge{display:flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:500;white-space:normal;word-break:break-word;width:100%;text-align:center}.status-badge--green{background-color:color-mix(in srgb,var(--status-green) 20%,transparent);color:var(--status-green)}.status-badge--amber{background-color:color-mix(in srgb,var(--status-amber) 20%,transparent);color:var(--status-amber)}.status-badge--red{background-color:color-mix(in srgb,var(--status-red) 20%,transparent);color:var(--status-red)}.status-badge--blue{background-color:color-mix(in srgb,var(--status-blue) 20%,transparent);color:var(--status-blue)}.status-badge--purple{background-color:color-mix(in srgb,var(--status-purple) 20%,transparent);color:var(--status-purple)}.status-badge--grey{background-color:color-mix(in srgb,var(--status-grey) 20%,transparent);color:var(--status-grey)}.status-badge--sm{display:inline-flex;width:auto;padding:1px 6px;font-size:.68rem;border-radius:3px;white-space:nowrap;flex-shrink:0}.projects-page{display:flex;align-items:center;justify-content:center;flex:1 1;height:100%}.projects-placeholder{color:var(--text-muted);font-size:.875rem}.section-content{gap:16px}.detail-col,.section-content{display:flex;flex-direction:column}.detail-col{gap:8px}.detail-group-title{font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;padding-bottom:4px;border-bottom:1px solid var(--border);margin-bottom:2px}.detail-grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.detail-grid-4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;grid-gap:8px;gap:8px}.detail-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:8px;gap:8px}.detail-box{background-color:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:7px}.detail-box-title{font-size:.72rem;font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:.06em;padding-bottom:5px;border-bottom:1px solid var(--border);text-align:center}.section-general-layout{display:grid;grid-template-columns:1fr 1fr 1.5fr;grid-template-rows:auto 1fr;grid-gap:12px;gap:12px;flex:1 1}.section-general-layout>.detail-box:first-child{grid-column:1;grid-row:1}.section-general-layout>.detail-col:nth-child(2){grid-column:2;grid-row:1;gap:12px;align-self:stretch}.section-general-layout>.detail-col:nth-child(2)>.detail-box:nth-child(2){flex:1 1}.section-general-layout>.detail-col:nth-child(3){grid-column:3;grid-row:1;min-width:0;overflow:hidden}.section-date-grid-wrapper{grid-column:1/3;grid-row:2;min-height:200px}.section-customer-note-wrapper{grid-column:3;grid-row:2;display:flex;flex-direction:column}.section-customer-note-wrapper .detail-field{flex:1 1;display:flex;flex-direction:column;min-height:0}.section-customer-note-wrapper .detail-field-value{flex:1 1;overflow-y:auto;padding:6px 8px}.section-audit-layout{display:flex;flex-direction:column;gap:12px;flex:1 1;min-height:780px}.section-audit-layout>.detail-box:first-child{flex:0 0 280px;overflow-y:auto;display:flex;flex-direction:column}.section-audit-layout>.detail-box:last-child{flex:1 1;overflow-y:auto;display:flex;flex-direction:column}.section-audit-layout .detail-field-value--multiline{height:125px}.audit-side-row{display:flex;flex-direction:row;gap:12px;margin-top:8px}.audit-side-row>*{flex:1 1}.audit-side-row .attachments-panel{margin-top:0;padding-top:0;border-top:none}.audit-side-row .detail-field-label{height:28px;display:flex;align-items:center}.audit-side-row .attachments-header{height:28px;margin-bottom:3px}.audit-side-row .attach-file-list{height:125px;max-height:125px}.audit-fill-row{display:flex;flex-direction:row;min-height:150px;gap:12px;margin-top:8px}.audit-fill-row,.audit-fill-row>*{flex:1 1;min-height:0}.audit-fill-row .detail-field{display:flex;flex-direction:column;min-height:0}.audit-fill-row .detail-field-value--multiline{flex:1 1;height:auto}.audit-fill-row .attachments-panel{display:flex;flex-direction:column;min-height:0;margin-top:0;padding-top:0;border-top:none}.audit-fill-row .detail-field-label{height:28px;display:flex;align-items:center}.audit-fill-row .attachments-header{height:28px;margin-bottom:3px}.audit-fill-row .attach-file-list{flex:1 1;min-height:0;max-height:none;overflow-y:auto}.closeout-note-row{display:flex;flex-direction:row;gap:12px;margin-top:8px}.closeout-note-row>*{flex:1 1}.section-changeorder-layout{min-height:776px}.section-changeorder-layout>.detail-box{overflow-y:visible}.co-mini-note{height:60px}.co-bottom-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-top:4px}.co-bottom-row .detail-field-label{height:28px;display:flex;align-items:center}.co-bottom-row .attachments-header{height:28px;margin-bottom:3px}.co-bottom-row .detail-field-value--multiline{height:125px}.co-bottom-row .attachments-panel{display:flex;flex-direction:column;margin-top:0;border-top:none;padding-top:0}.co-bottom-row .attach-file-list{height:125px;overflow-y:auto}.co-billing-box{margin-top:12px}.co-billing-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.co-billing-table-wrap{overflow-x:auto}.co-billing-table{width:100%;border-collapse:collapse;font-size:.78rem}.co-billing-table th{text-align:left;color:var(--text-secondary);font-weight:600;white-space:nowrap}.co-billing-table td,.co-billing-table th{padding:5px 8px;border-bottom:1px solid var(--border)}.co-billing-table td{color:var(--text-primary);vertical-align:top}.co-cell-top{padding-top:9px}.co-billing-table tbody tr:last-child td{border-bottom:none}.co-billing-table tbody tr:hover{background:var(--bg-hover)}.co-row--editing{background:color-mix(in srgb,var(--accent) 5%,var(--bg-card))}.co-row--confirm{background:color-mix(in srgb,var(--status-red) 6%,var(--bg-card))}.co-confirm-msg{font-size:.78rem;color:var(--text-primary);padding-top:9px!important}.co-table-empty{text-align:center;color:var(--text-secondary);padding:16px!important}.co-cell-title{white-space:nowrap;font-weight:500}.co-cell-desc{max-width:300px}.co-cell-actions{white-space:nowrap;text-align:right;width:1%}.co-status{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.72rem;font-weight:600}.co-status--none{background:var(--bg-hover);color:var(--text-secondary)}.co-status--needed{background:color-mix(in srgb,var(--status-amber) 20%,transparent);color:var(--status-amber)}.co-status--billed{background:color-mix(in srgb,var(--status-green) 20%,transparent);color:var(--status-green)}.co-date-input,.co-desc-input,.co-select{background:var(--bg-input);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:.78rem;padding:3px 6px;width:100%}.co-desc-input{resize:none;height:62px;font-family:inherit}.co-desc-body{background:var(--bg-input);border:1px solid var(--border);border-radius:4px;font-size:.78rem;padding:4px 6px;height:62px;overflow-y:auto;white-space:pre-wrap;color:var(--text-primary)}.co-desc-body--empty{color:var(--text-secondary)}.co-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:4px;border:1px solid;cursor:pointer;margin-left:4px;flex-shrink:0;overflow:visible}.co-btn--edit{background:color-mix(in srgb,var(--accent) 12%,var(--bg-input));color:var(--accent);border-color:var(--accent)}.co-btn--delete{background:color-mix(in srgb,var(--status-red) 12%,var(--bg-input));color:var(--status-red);border-color:var(--status-red)}.co-btn--save{background:color-mix(in srgb,var(--status-green) 12%,var(--bg-input));color:var(--status-green);border-color:var(--status-green)}.co-btn--cancel{background:color-mix(in srgb,var(--text-secondary) 12%,var(--bg-input));color:var(--text-secondary);border-color:var(--border)}.co-btn--edit:hover{background:var(--accent);color:#fff}.co-btn--delete:hover{background:var(--status-red);color:#fff}.co-btn--save:hover{background:var(--status-green);color:#fff}.co-btn--cancel:hover{background:var(--text-secondary);color:#fff}.co-btn:disabled{opacity:.4;cursor:default}.co-btn span{font-size:15px;line-height:1}.new-project-btn{display:flex;align-items:center;gap:5px;width:100%;padding:6px 10px;margin-bottom:8px;background:var(--accent);color:#fff;border:none;border-radius:5px;font-size:12px;font-weight:600;cursor:pointer;transition:opacity .15s}.new-project-btn:hover{opacity:.85}.new-project-btn.active{background:var(--status-amber)}.project-form-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.project-form-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.form-error{font-size:11px}.form-error,.form-required{color:var(--status-red)}.form-btn{padding:4px 14px;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:opacity .15s}.form-btn:disabled{opacity:.4;cursor:default}.form-btn--save{background:var(--status-green);color:#fff}.form-btn--cancel{background:var(--text-secondary);color:#fff}.form-btn--delete{background:var(--status-red,#e05252);color:#fff}.form-btn--edit{background:color-mix(in srgb,var(--accent) 12%,var(--bg-input));color:var(--accent);border:1px solid var(--accent)}.form-btn--cancel:not(:disabled):hover,.form-btn--delete:not(:disabled):hover,.form-btn--save:not(:disabled):hover{opacity:.85}.form-input{width:100%;padding:3px 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg-panel);color:var(--text-primary);font-size:12px;font-family:inherit;box-sizing:border-box;color-scheme:dark}[data-theme=light] .form-input{color-scheme:light}.form-input:focus{outline:none;border-color:var(--accent)}.form-textarea{width:100%;padding:4px 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:12px;font-family:inherit;resize:vertical;box-sizing:border-box}.form-textarea:focus{outline:none;border-color:var(--accent)}.form-info-icon{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:var(--text-secondary);color:#fff;font-size:10px;font-weight:700;cursor:help;margin-left:5px;position:relative;flex-shrink:0;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.form-info-tooltip{display:none;position:absolute;left:20px;top:50%;transform:translateY(-50%);width:300px;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;padding:9px 11px;font-size:11px;color:var(--text-primary);line-height:1.65;z-index:200;white-space:normal;box-shadow:0 4px 16px rgba(0,0,0,.35);pointer-events:none}.form-info-icon:hover .form-info-tooltip{display:block}.form-tooltip-intro{margin-bottom:8px;line-height:1.4}.form-tooltip-intro,.form-tooltip-table{font-size:11px;color:var(--text-primary)}.form-tooltip-table{display:grid;grid-template-columns:1fr 1fr;grid-gap:3px 12px;gap:3px 12px}.form-tooltip-col-header{font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);padding-bottom:4px;border-bottom:1px solid var(--border);margin-bottom:2px}.form-info-icon--below .form-info-tooltip{left:0;top:calc(100% + 6px);transform:none}.form-info-icon--below:hover .form-info-tooltip{display:block}.dialog-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:500;display:flex;align-items:center;justify-content:center}.dialog-box{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:20px 24px;width:480px;max-width:95vw;box-shadow:0 8px 32px rgba(0,0,0,.4)}.dialog-title{font-size:14px;font-weight:700;color:var(--text-primary);margin:0 0 16px;padding-bottom:10px;border-bottom:1px solid var(--border)}.dialog-row{display:grid;grid-template-columns:1fr auto 1fr;grid-gap:16px;gap:16px;align-items:start;margin-bottom:16px}.dialog-field{display:flex;flex-direction:column;gap:4px}.dialog-field,.dialog-field--id{text-align:center}.dialog-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;line-height:1.3;min-height:32px;display:flex;align-items:flex-start;justify-content:center}.dialog-id-value{padding:4px 0}.dialog-id-value,.form-input--dialog{font-size:22px;font-weight:700;color:var(--accent);text-align:center;letter-spacing:.02em}.form-input--dialog{text-transform:uppercase;padding:2px 6px;background:var(--bg-app);border-color:var(--border-light)}.dialog-preview{display:flex;align-items:center;justify-content:space-between;background:var(--bg-app);border:1px solid var(--border);border-radius:6px;padding:8px 12px;margin-bottom:16px}.dialog-preview-label{font-size:11px;color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.dialog-preview-value{font-size:15px;font-weight:700;color:var(--text-primary);letter-spacing:.04em}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}.form-orderno-row{display:flex;align-items:center;gap:6px}.form-orderno-display{flex:1 1;padding:3px 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg-app);font-size:12px;color:var(--text-primary);font-weight:600;min-height:24px;display:flex;align-items:center}.form-orderno-placeholder{color:var(--text-muted);font-weight:400;font-style:italic}.form-btn--orderno{background:var(--accent);color:#fff;white-space:nowrap}.form-btn--orderno:hover{opacity:.85}.closeout-archive-card .form-status-card-label{font-size:.75rem;font-weight:500;text-transform:none;letter-spacing:0;color:var(--text-secondary)}.closeout-saving{color:var(--text-muted)}.closeout-save-error,.closeout-saving{font-size:9px;font-weight:400;text-transform:none;margin-left:4px}.closeout-save-error{color:var(--status-red)}.form-status-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px}.form-status-grid-span{grid-column:span 2}.form-status-card{border-radius:5px;padding:5px 7px;display:flex;flex-direction:column;gap:3px}.form-status-card--green{background:color-mix(in srgb,var(--status-green) 15%,transparent)}.form-status-card--amber{background:color-mix(in srgb,var(--status-amber) 15%,transparent)}.form-status-card--red{background:color-mix(in srgb,var(--status-red) 15%,transparent)}.form-status-card--blue{background:color-mix(in srgb,var(--status-blue) 15%,transparent)}.form-status-card--purple{background:color-mix(in srgb,var(--status-purple) 15%,transparent)}.form-status-card--grey{background:color-mix(in srgb,var(--status-grey) 10%,transparent)}.form-status-card-label{font-size:.75rem;font-weight:500;color:var(--text-secondary);display:flex;align-items:center;gap:4px}.form-status-select{width:100%;border:none;background:transparent;font-size:.875rem;font-weight:600;color:var(--text-primary);cursor:pointer;padding:0;font-family:inherit;color-scheme:dark}[data-theme=light] .form-status-select{color-scheme:light}.form-status-select:focus{outline:none}.form-status-card--green .form-status-select{color:var(--status-green)}.form-status-card--amber .form-status-select{color:var(--status-amber)}.form-status-card--red .form-status-select{color:var(--status-red)}.form-status-card--blue .form-status-select{color:var(--status-blue)}.form-status-card--purple .form-status-select{color:var(--status-purple)}.form-status-card--grey .form-status-select{color:var(--text-secondary)}.form-map-placeholder{display:flex;flex-direction:column;justify-content:center;min-height:120px}.form-map-note{text-align:center;padding:12px 0}.form-map-note,.form-media-note{font-size:11px;color:var(--text-secondary)}.form-media-note{margin-top:8px}.section-billing-layout{min-height:776px}.section-billing-layout>.detail-box{overflow-y:visible}.billing-notes-span{grid-column:span 2}.section-billing-layout .detail-field-value--multiline{height:125px}.section-survey-layout{min-height:776px}.section-survey-layout>.detail-box{display:flex;flex-direction:column;height:100%;overflow-y:visible}.section-survey-layout .detail-grid-4{align-items:start}.survey-notes-span{grid-column:span 2}.section-survey-layout .detail-field-value--multiline{height:125px}.survey-media-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.section-survey-layout .attachments-panel,.section-survey-layout .pictures-panel{display:flex;flex-direction:column}.section-survey-layout .attach-file-list,.section-survey-layout .pictures-grid-container{height:125px;overflow-y:auto}.section-engineering-layout{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;flex:1 1;min-height:776px}.section-engineering-layout>.detail-box{overflow-y:visible}.section-engineering-layout>.detail-box:first-child{display:flex;flex-direction:column}.section-engineering-layout>.detail-box:first-child .attachments-panel{flex:1 1;min-height:0;display:flex;flex-direction:column}.section-engineering-layout>.detail-box:first-child .attach-file-list{flex:1 1;min-height:0;max-height:none;overflow-y:auto}.section-engineering-layout .detail-field-value--multiline{height:150px}.installation-hours-row{display:grid;grid-template-columns:1fr 1fr 2fr;grid-gap:8px;gap:8px}.installation-hours-pair{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.section-installation-layout{display:flex;flex-direction:column;gap:12px;flex:1 1;min-height:780px}.section-installation-layout .detail-field-value--multiline{height:150px}.installation-pictures-wrapper{width:50%}.installation-pictures-wrapper .pictures-panel{margin-top:0;border-top:none;padding-top:0;min-height:200px}.toggle-field{display:flex;align-items:center;gap:8px;padding:5px 8px;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;min-height:28px}.toggle-track{width:36px;height:20px;border-radius:99px;background:var(--text-muted);position:relative;flex-shrink:0;transition:background .2s}.toggle-track--on{background:var(--status-green)}.toggle-thumb{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .2s}.toggle-track--on .toggle-thumb{transform:translateX(16px)}.toggle-label{font-size:.875rem;color:var(--text-primary)}.hours-bar-wrapper{display:flex;flex-direction:column;gap:4px}.hours-bar-track{height:10px;background:var(--bg-input);border:1px solid var(--border);border-radius:99px;overflow:hidden}.hours-bar-fill{height:100%;border-radius:99px;transition:width .3s ease}.hours-bar-label{font-size:.75rem;font-weight:500}.section-material-layout{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;flex:1 1;min-height:776px}.section-material-layout>.detail-box{overflow-y:auto}.note-label-row{display:flex;align-items:center;gap:5px}.note-stamp-btn{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;flex-shrink:0;padding:0;transition:color .15s}.note-stamp-btn:hover{color:var(--accent)}.section-date-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:8px;gap:8px}.detail-field{display:flex;flex-direction:column;gap:3px}.detail-field-label{font-size:.75rem;color:var(--text-secondary);font-weight:500}.detail-field-value{background-color:var(--bg-input);border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:.875rem;color:var(--text-primary);min-height:28px;display:flex;align-items:center}.detail-field-value--empty{color:var(--text-muted);font-style:italic}.editable-input,.editable-textarea{background-color:var(--bg-input);border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:.875rem;font-family:inherit;color:var(--text-primary);min-height:28px;width:100%;outline:none;transition:border-color .15s}.editable-input:focus,.editable-textarea:focus{border-color:var(--accent)}.editable-textarea{resize:vertical;display:block;line-height:1.5}.field-saving{color:var(--text-muted)}.field-saved,.field-saving{font-size:.68rem;margin-left:4px}.field-saved{color:var(--status-green)}.field-error{font-size:.68rem;color:var(--status-red);margin-left:4px}.detail-box-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:0}.detail-box-title-row .detail-box-title{margin-bottom:0}.teo-import-btn{display:inline-flex;align-items:center;gap:4px;font-size:.68rem;padding:2px 7px;border-radius:4px;border:1px solid var(--border);background:var(--bg-input);color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s}.teo-import-btn:hover{border-color:var(--accent);color:var(--accent)}.teo-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:1000}.teo-modal-box{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;width:min(520px,94vw);max-height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,.3)}.teo-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 12px;border-bottom:1px solid var(--border)}.teo-modal-title{font-size:.95rem;font-weight:600;color:var(--text-primary);margin:0}.teo-modal-close{background:none;border:none;font-size:1rem;color:var(--text-muted);cursor:pointer;padding:2px 6px;border-radius:4px}.teo-modal-close:hover{color:var(--text-primary);background:var(--bg-input)}.teo-modal-intro{font-size:.8rem;color:var(--text-secondary);padding:12px 18px 0;margin:0}.teo-modal-error{font-size:.78rem;color:var(--status-red);padding:8px 18px 0;margin:0}.teo-drop-zone{margin:14px 18px;border:2px dashed var(--border);border-radius:8px;padding:32px 20px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;transition:border-color .15s,background .15s}.teo-drop-zone--active,.teo-drop-zone:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent)}.teo-drop-icon{font-size:2rem}.teo-drop-label{font-size:.82rem;color:var(--text-secondary)}.teo-modal-spinner-wrap{display:flex;flex-direction:column;align-items:center;gap:14px;padding:40px 18px}.teo-modal-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:teo-spin .7s linear infinite}@keyframes teo-spin{to{transform:rotate(1turn)}}.teo-modal-spinner-label{font-size:.82rem;color:var(--text-secondary)}.teo-modal-fields{overflow-y:auto;padding:10px 18px 4px;display:flex;flex-direction:column;gap:6px;flex:1 1;min-height:0}.teo-field-row-wrap{display:flex;flex-direction:column;gap:4px}.teo-field-row{display:grid;grid-template-columns:20px 1fr 1fr;align-items:center;grid-gap:8px;gap:8px}.teo-address-suggestion{display:flex;align-items:center;gap:8px;padding:5px 8px;margin-left:28px;background:rgba(99,102,241,.08);border:1px solid rgba(99,102,241,.25);border-radius:6px;font-size:.78rem}.teo-address-suggestion-label{color:var(--text-secondary);white-space:nowrap;font-weight:600}.teo-address-suggestion-value{color:var(--text-primary);flex:1 1}.teo-address-suggestion-btn{background:var(--accent);color:#fff;border:none;border-radius:4px;padding:3px 10px;font-size:.75rem;font-weight:600;cursor:pointer;white-space:nowrap}.teo-address-suggestion-btn:hover{background:var(--accent-hover)}.teo-field-check{cursor:pointer;accent-color:var(--accent)}.teo-field-label{font-size:.78rem;color:var(--text-secondary)}.teo-field-input{font-size:.82rem;font-family:inherit;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border);border-radius:4px;padding:4px 7px;width:100%;outline:none;transition:border-color .15s}.teo-field-input:focus{border-color:var(--accent)}.teo-field-input--disabled{opacity:.4}.teo-modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px 16px;border-top:1px solid var(--border)}.detail-field-value--multiline{display:block;white-space:pre-wrap;overflow-y:auto}.section-material-layout .detail-field-value--multiline{height:150px}.section-material-layout .attach-file-list{min-height:150px}.attach-placeholder{min-height:60px}.detail-db-id-row{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:8px}.detail-db-id{font-size:.65rem;color:var(--text-muted)}.detail-qr-btn{background:none;border:none;cursor:pointer;padding:2px 4px;color:var(--text-muted);opacity:.5;border-radius:4px;display:flex;align-items:center;transition:opacity .15s}.detail-qr-btn:hover{opacity:1}.detail-qr-copied{font-size:.65rem;color:#22c55e}.map-panel{display:flex;flex-direction:column;gap:8px;flex:1 1;min-width:0}.map-img{width:100%;flex:1 1;min-height:0;object-fit:cover;object-position:center;border-radius:8px;display:block}.map-img,.map-placeholder{border:1px solid var(--border)}.map-placeholder{background-color:var(--bg-input);border-radius:8px;padding:20px;color:var(--text-muted);text-align:center;min-height:160px;display:flex}.map-directions-btn,.map-placeholder{font-size:.75rem;align-items:center;justify-content:center}.map-directions-btn{display:inline-flex;padding:6px 14px;background-color:var(--status-green);color:#fff;font-weight:600;border-radius:6px;text-decoration:none;transition:opacity .15s}.map-directions-btn:hover{opacity:.85}p{margin-bottom:0}.attachments-panel{margin-top:16px;border-top:1px solid var(--border);padding-top:12px}.attach-file-list{background-color:var(--bg-input);border:1px solid var(--border);border-radius:6px;padding:4px 2px;max-height:400px;overflow-y:auto}.attachments-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.attachments-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-primary)}.attach-upload-btn{display:flex;align-items:center;gap:5px;height:26px;padding:0 10px;white-space:nowrap;border-radius:4px;border:1px solid var(--border);background:var(--bg-input);color:var(--text-secondary);font-size:.75rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.attach-upload-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.attach-upload-btn--busy{opacity:.7;cursor:default}.attach-status{font-size:.8rem;color:var(--text-muted);padding:4px 0}.attach-status--error{color:var(--status-red)}.attach-row{display:flex;align-items:center;gap:8px;padding:5px 4px;border-radius:6px;transition:background .1s}.attach-row:hover{background:var(--bg-hover)}.attach-file-icon{flex-shrink:0;display:flex;align-items:center}.attach-file-info{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:1px}.attach-file-name{font-size:.8rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attach-file-size{font-size:.68rem;color:var(--text-muted)}.attach-actions{gap:2px;flex-shrink:0}.attach-actions,.attach-btn{display:flex;align-items:center}.attach-btn{justify-content:center;width:24px;height:24px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:4px;padding:0;transition:background .1s,color .1s;text-decoration:none}.attach-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.attach-btn:disabled{opacity:.4;cursor:default}.attach-btn--delete:hover{color:var(--status-red)}.attach-btn--confirm:hover{color:var(--status-green)}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.pictures-panel{margin-top:16px;border-top:1px solid var(--border);padding-top:12px;flex:1 1;min-height:0;display:flex;flex-direction:column}.pictures-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.pictures-header-actions{display:flex;align-items:center;gap:6px}.attach-upload-btn--danger{background:color-mix(in srgb,var(--status-red) 15%,var(--bg-input));border-color:color-mix(in srgb,var(--status-red) 40%,transparent);color:var(--status-red)}.attach-upload-btn--danger:hover{background:var(--status-red);color:#fff;border-color:var(--status-red)}.pictures-grid-container{min-height:80px;flex:1 1;min-height:0;max-height:none}.pictures-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));grid-gap:8px;gap:8px;padding:8px}.picture-thumb{position:relative;display:flex;flex-direction:column;gap:4px;border-radius:6px;padding:4px;transition:background .1s}.picture-thumb:hover{background:var(--bg-hover)}.picture-thumb--selected{background:color-mix(in srgb,var(--accent) 15%,transparent);outline:2px solid var(--accent);outline-offset:-2px;border-radius:6px}.picture-thumb-check{position:absolute;top:8px;left:8px;z-index:1;width:16px;height:16px;cursor:pointer;opacity:0;transition:opacity .1s;accent-color:var(--accent)}.picture-thumb--selected .picture-thumb-check,.picture-thumb:hover .picture-thumb-check{opacity:1}.picture-thumb-img-wrap{width:100%;aspect-ratio:1;border-radius:4px;overflow:hidden;background:var(--bg-hover);display:flex;align-items:center;justify-content:center;cursor:pointer}.picture-thumb-img{width:100%;height:100%;object-fit:cover;transition:opacity .15s}.picture-thumb-img:hover{opacity:.85}.picture-thumb-placeholder{color:var(--text-muted);display:flex;align-items:center;justify-content:center;width:100%;height:100%}.picture-thumb-name{font-size:.65rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.pictures-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:1000}.lightbox-close,.pictures-lightbox{display:flex;align-items:center;justify-content:center}.lightbox-close{position:absolute;top:16px;right:16px;background:rgba(255,255,255,.15);border:2px solid rgba(255,255,255,.4);color:#fff;width:64px;height:64px;border-radius:50%;cursor:pointer;transition:background .15s;z-index:1}.lightbox-close:hover{background:rgba(255,255,255,.3)}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);border:2px solid rgba(255,255,255,.3);color:#fff;width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s;z-index:1}.lightbox-nav:hover:not(:disabled){background:rgba(255,255,255,.25)}.lightbox-nav:disabled{opacity:.25;cursor:default}.lightbox-nav--prev{left:16px}.lightbox-nav--next{right:16px}.lightbox-img-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;max-width:90vw}.lightbox-img{max-width:90vw;max-height:82vh;object-fit:contain;border-radius:4px}.lightbox-filename{color:rgba(255,255,255,.85);font-size:.875rem;text-align:center;margin:0}.lightbox-counter{color:rgba(255,255,255,.45);font-size:.75rem;text-align:center;margin:0}.pictures-dialog-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:1001;display:flex;align-items:center;justify-content:center}.pictures-dialog{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:28px 32px;min-width:300px;display:flex;flex-direction:column;gap:20px;box-shadow:0 8px 32px rgba(0,0,0,.4)}.pictures-dialog-msg{font-size:.95rem;color:var(--text-primary);text-align:center;line-height:1.6}.pictures-dialog-actions{display:flex;gap:10px;justify-content:center}.settings-page{max-width:640px;gap:2rem}.bom-page,.settings-page{padding:2rem 2.5rem;display:flex;flex-direction:column}.bom-page{gap:1.5rem;height:100%}.bom-catalog-wrap,.bom-page{overflow-y:auto;overflow-x:hidden}.bom-catalog-wrap{border-radius:8px;border:1px solid var(--border);max-height:calc(100vh - 200px);width:100%}.bom-catalog-table{width:100%;min-width:1720px;border-collapse:collapse;font-size:.82rem;table-layout:fixed}.bom-catalog-table td,.bom-catalog-table th{border-right:1px solid var(--border)}.bom-catalog-table td:last-child,.bom-catalog-table th:last-child{border-right:none}.bom-catalog-table th{position:-webkit-sticky;position:sticky;top:0;z-index:1;padding:.6rem .75rem;text-align:left;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--bg-panel);border-bottom:1px solid var(--border);white-space:normal;overflow:visible;vertical-align:bottom;text-align:center;line-height:1.2;min-height:2.4rem}.bom-catalog-table td{padding:.45rem .75rem;color:var(--text-primary);border-bottom:1px solid var(--border);vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bom-catalog-table tbody tr:not(.bom-catalog-group-row):nth-child(2n) td{background:rgba(255,255,255,.03)}.bom-catalog-group-row td{background:rgba(59,130,246,.12);font-weight:700;font-size:.78rem;color:var(--text-primary);padding:.35rem .75rem;border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em}.bom-catalog-group-desc{color:var(--text-secondary);font-weight:600;text-transform:none;letter-spacing:0}.bom-catalog-table td.center{text-align:center}.bom-catalog-table td.right{text-align:right}.bom-catalog-table td.bom-price-expiring{background:rgba(245,158,11,.18);color:var(--status-amber)}.bom-catalog-table td.bom-price-expired{background:rgba(239,68,68,.18);color:var(--status-red)}.catalog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.catalog-search-wrap{position:relative;display:flex;align-items:center;width:360px}.catalog-search-icon{position:absolute;left:.65rem;width:15px;height:15px;color:var(--text-muted);pointer-events:none;flex-shrink:0}.catalog-search-input{width:100%;padding:.45rem 2rem .45rem 2.1rem;background:var(--bg-input);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:.83rem;outline:none;transition:border-color .15s}.catalog-search-input::placeholder{color:var(--text-muted)}.catalog-search-input:focus{border-color:var(--accent)}.catalog-search-clear{position:absolute;right:.5rem;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.75rem;padding:.1rem .2rem;line-height:1}.catalog-search-clear:hover{color:var(--text-primary)}.bom-catalog-check-th{text-align:center!important;padding:0!important;cursor:default!important}.bom-catalog-check-th:hover{background:none!important}.bom-catalog-checkbox{width:15px;height:15px;cursor:pointer;accent-color:var(--accent)}.catalog-selection-bar{gap:.75rem;padding:.6rem 1rem;margin-top:.5rem;background:var(--bg-panel)}.catalog-selection-bar,.catalog-selection-group{display:flex;align-items:center;border:1px solid var(--accent);border-radius:8px}.catalog-selection-group{gap:.5rem;padding:.3rem .5rem .3rem .75rem}.catalog-selection-count{font-size:.83rem;font-weight:600;color:var(--text-primary)}.catalog-selection-clear{background:none;border:none;color:var(--text-secondary);font-size:.8rem;cursor:pointer;padding:.2rem .4rem}.catalog-selection-clear:hover{color:var(--text-primary)}.pricing-req-modal{width:640px;max-width:95vw}.pricing-req-item-scroll{max-height:220px;overflow-y:auto;border:1px solid var(--border);border-radius:6px}.pricing-req-item-table{width:100%;border-collapse:collapse;font-size:.78rem}.pricing-req-item-table td,.pricing-req-item-table th{padding:.35rem .65rem;border-bottom:1px solid var(--border);color:var(--text-primary);text-align:left;white-space:nowrap}.pricing-req-item-table th{background:var(--bg-panel);color:var(--text-muted);font-size:.7rem;text-transform:uppercase;font-weight:600;position:-webkit-sticky;position:sticky;top:0}.pricing-req-item-table tbody tr:last-child td{border-bottom:none}.pricing-req-item-table td.right{text-align:right}.pricing-req-item-table td.center{text-align:center}.pricing-req-desc{max-width:240px;overflow:hidden;text-overflow:ellipsis}.pricing-req-error{font-size:.8rem;color:var(--status-red);margin:0}.price-import-modal{width:760px;max-width:95vw}.price-import-trigger-btn{padding:.4rem .85rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.8rem;font-weight:500;cursor:pointer;white-space:nowrap}.price-import-trigger-btn:hover{background:var(--bg-panel-hover)}.price-import-meta{font-size:.78rem;color:var(--text-secondary);margin:0}.price-import-meta strong{color:var(--text-primary)}.price-import-col-map{display:grid;grid-template-columns:1fr 1fr;grid-gap:.75rem;gap:.75rem}.price-import-preview-wrap{display:flex;flex-direction:column;gap:.35rem}.price-import-preview-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:6px}.price-import-preview-table{width:100%;border-collapse:collapse;font-size:.75rem}.price-import-preview-table td,.price-import-preview-table th{padding:.3rem .6rem;border-bottom:1px solid var(--border);white-space:nowrap;color:var(--text-primary);text-align:left}.price-import-preview-table th{color:var(--text-muted);font-weight:600;text-transform:uppercase;font-size:.7rem;background:var(--bg-panel)}.price-import-preview-table tbody tr:last-child td{border-bottom:none}.price-import-col-highlight{background:rgba(59,130,246,.1)!important}.price-import-col-tag{display:inline-block;margin-left:.35rem;padding:.05rem .3rem;background:var(--accent);color:#fff;border-radius:3px;font-size:.65rem;font-weight:600;text-transform:none;letter-spacing:0;vertical-align:middle}.price-import-col-more{color:var(--text-muted);font-style:italic}.price-import-review-scroll{overflow-y:auto;max-height:50vh;border-top:1px solid var(--border)}.price-import-review-table{width:100%;border-collapse:collapse;font-size:.8rem}.price-import-review-table td,.price-import-review-table th{padding:.4rem .75rem;border-bottom:1px solid var(--border);color:var(--text-primary);text-align:left}.price-import-review-table th{position:-webkit-sticky;position:sticky;top:0;background:var(--bg-panel);color:var(--text-muted);font-size:.7rem;text-transform:uppercase;font-weight:600}.price-import-review-table td.right,.price-import-review-table th.right{text-align:right}.price-import-desc{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.price-import-row-same td{color:var(--text-muted)}.price-import-review-table td.price-import-up{color:var(--status-red);font-weight:600}.price-import-review-table td.price-import-down{color:var(--status-green);font-weight:600}.price-import-review-table td.price-import-same{color:var(--text-muted)}.price-import-stats{display:flex;align-items:center;gap:.4rem;font-size:.75rem}.price-import-stat-change{color:var(--status-amber);font-weight:600}.price-import-stat-same,.price-import-stat-sep{color:var(--text-muted)}.price-import-dates{display:flex;gap:2rem;padding:.65rem 1.25rem;border-top:1px solid var(--border);background:var(--bg-input)}.price-import-date-field{display:flex;align-items:center;gap:.5rem}.price-import-date-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.price-import-date-value{font-size:.82rem;color:var(--text-primary)}.price-import-date-auto{font-size:.72rem;color:var(--text-muted)}.price-import-date-input{padding:.3rem .5rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.82rem;outline:none}.price-import-date-input:focus{border-color:var(--accent)}.price-import-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:.75rem 1.25rem;border-top:1px solid var(--border)}.price-import-btn-primary{padding:.45rem 1rem;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:.82rem;font-weight:500;cursor:pointer}.price-import-btn-primary:hover:not(:disabled){background:var(--accent-hover)}.price-import-btn-primary:disabled{opacity:.5;cursor:not-allowed}.price-import-btn-ghost{padding:.45rem 1rem;background:none;color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;font-size:.82rem;cursor:pointer}.price-import-btn-ghost:hover{color:var(--text-primary);background:var(--bg-panel-hover)}.price-import-done{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 1.25rem;text-align:center}.price-import-done-icon{font-size:2.5rem;color:var(--status-green)}.price-import-done-text{font-size:.9rem;color:var(--text-primary);margin:0}.bom-catalog-row td{cursor:cell}.bom-catalog-row td:hover{background:var(--bg-panel-hover)}.bom-catalog-editing{padding:0!important}.bom-catalog-cell-input{width:100%;height:100%;min-height:2rem;padding:.45rem .5rem;background:var(--bg-input);color:var(--text-primary);border:2px solid var(--accent);border-radius:0;font-size:.82rem;font-family:inherit;outline:none;box-sizing:border-box}[data-theme=light] .bom-catalog-table tbody tr:not(.bom-catalog-group-row):nth-child(2n) td{background:rgba(0,0,0,.04)}[data-theme=light] .bom-catalog-group-row td{background:rgba(59,130,246,.1)}.bom-tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border)}.bom-tab-btn{background:none;font-size:.82rem;color:var(--text-secondary);cursor:pointer;padding:.4rem .875rem;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.bom-tab-btn:hover{color:var(--text-primary)}.bom-tab-btn--active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.bom-project-selector{position:relative;max-width:420px}.bom-project-input{width:100%;padding:.4rem .7rem;font-size:.85rem;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);color-scheme:dark}[data-theme=light] .bom-project-input{color-scheme:light}.bom-project-input:focus{outline:none;border-color:var(--accent)}.bom-project-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;z-index:50;max-height:240px;overflow-y:auto;box-shadow:0 6px 20px rgba(0,0,0,.3)}.bom-project-option{display:block;width:100%;padding:.5rem .75rem;text-align:left;background:none;border:none;border-bottom:1px solid var(--border);cursor:pointer;font-size:.83rem;color:var(--text-primary)}.bom-project-option:last-child{border-bottom:none}.bom-project-option:hover{background:var(--bg-row)}.bom-rev-pills{display:flex;gap:.35rem;flex-wrap:wrap}.bom-rev-pill{padding:.25rem .7rem;border-radius:999px;font-size:.78rem;border:1px solid var(--border);background:none;color:var(--text-secondary);cursor:pointer;transition:all .15s}.bom-rev-pill:hover{background:var(--bg-row);color:var(--text-primary)}.bom-rev-pill--active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.bom-meta{display:flex;gap:1.5rem;flex-wrap:wrap;font-size:.8rem;color:var(--text-secondary)}.bom-meta strong{color:var(--text-primary)}.bom-actions{display:flex;gap:.75rem;align-items:center}.bom-add-item-btn{padding:.38rem .875rem;font-size:.82rem;background:color-mix(in srgb,var(--accent) 14%,var(--bg-input));color:var(--accent);border:1px solid var(--accent);border-radius:6px;cursor:pointer;transition:opacity .15s}.bom-add-item-btn:hover{opacity:.8}.bom-add-section-btn{padding:.38rem .875rem;font-size:.82rem;background:color-mix(in srgb,#fb923c 14%,var(--bg-input));color:#fb923c;border:1px solid #fb923c;border-radius:6px;cursor:pointer;transition:opacity .15s}.bom-add-section-btn:hover{opacity:.8}[data-theme=light] .bom-add-section-btn{background:color-mix(in srgb,#c2410c 14%,var(--bg-input));color:#c2410c;border-color:#c2410c}.bom-rev-btn{padding:.38rem .875rem;font-size:.82rem;background:none;color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all .15s}.bom-rev-btn:hover{color:var(--text-primary);border-color:var(--text-secondary)}.bom-purge-btn{padding:.38rem .875rem;font-size:.82rem;background:var(--bg-input);color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:opacity .15s;margin-left:auto}.bom-purge-btn:hover{color:var(--text-primary);border-color:var(--text-secondary)}.bom-delete-bom-btn{padding:.38rem .875rem;font-size:.82rem;background:color-mix(in srgb,var(--status-red) 14%,var(--bg-input));color:var(--status-red);border:1px solid var(--status-red);border-radius:6px;cursor:pointer;transition:opacity .15s}.bom-delete-bom-btn:hover{opacity:.8}.bom-view-toggle{display:flex;gap:.2rem;margin-left:.75rem;padding-left:.75rem;border-left:1px solid var(--border)}.bom-view-toggle-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:4px;border:1px solid var(--border);background:var(--bg-input);color:var(--text-secondary);font-size:1rem;line-height:1;cursor:pointer}.bom-view-toggle-btn:hover{color:var(--text-primary);border-color:var(--text-secondary)}.bom-view-toggle-btn--active{background:color-mix(in srgb,var(--accent) 15%,var(--bg-input));border-color:var(--accent);color:var(--accent)}.bom-view-toggle-sep{width:1px;background:var(--border);margin:2px .3rem}.bom-section-block{margin-bottom:2rem}.bom-section-block-title{font-size:.92rem;font-weight:600;color:var(--text-primary);padding:.45rem .75rem;background:var(--bg-row);border:1px solid var(--border);border-bottom:none;border-radius:6px 6px 0 0;letter-spacing:.02em}.bom-section-block .bom-items-wrap{border-radius:0 0 6px 6px}.bom-cost-cell{cursor:default}.bom-cost-display{display:flex;align-items:center;justify-content:flex-end;gap:.3rem;cursor:pointer;min-width:70px}.bom-cost-display:hover{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.bom-price-stale{color:#f59e0b;font-size:.6rem;line-height:1;flex-shrink:0;cursor:help}.bom-cost-edit-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem}.bom-cost-input{width:80px;text-align:right;padding:.1rem .25rem;font-size:.8rem;background:var(--bg-input);border:1px solid var(--accent);border-radius:3px;color:var(--text-primary);outline:none}.bom-cost-sync-btn{font-size:.7rem;padding:.1rem .35rem;background:color-mix(in srgb,#f59e0b 15%,var(--bg-input));border:1px solid #f59e0b;border-radius:3px;color:#f59e0b;cursor:pointer;white-space:nowrap}.bom-cost-sync-btn:hover{background:color-mix(in srgb,#f59e0b 28%,var(--bg-input))}.bom-create-btn{align-self:flex-start;padding:.4rem 1rem;font-size:.83rem;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:opacity .15s}.bom-create-btn:hover{opacity:.85}.bom-create-btn:disabled{opacity:.5;cursor:not-allowed}.bom-items-wrap{border:1px solid var(--border);border-radius:8px;overflow-x:auto;padding-top:12px;background:var(--bg-panel)}.bom-items-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.82rem;table-layout:fixed}.bom-items-table th{background:var(--bg-panel);padding:.55rem .75rem 8px;text-align:left;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-primary);border-bottom:1px solid var(--border);border-right:1px solid var(--border);vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;line-height:1.25}.bom-items-table th:last-child{border-right:none}.bom-items-table .bom-qty-col{width:55px;min-width:55px;max-width:55px}.bom-items-table .bom-notes-col{min-width:200px}.bom-items-table td.right,.bom-items-table th.right{text-align:right}.bom-items-table td.center,.bom-items-table th.center{text-align:center}.bom-items-table td{padding:.4rem .75rem;border-bottom:1px solid var(--border);border-right:1px solid var(--border);color:var(--text-primary);vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bom-items-table td:last-child{border-right:none}.bom-items-table tbody tr:hover td{background:var(--bg-row)}.bom-items-table tfoot td{padding:.5rem .75rem;font-weight:600;font-size:.85rem;border-top:none!important;border-bottom:none!important;border-right:none!important;color:var(--text-primary)}.bom-qty-input{width:100%;padding:.2rem 1px;font-size:.82rem;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);color-scheme:dark;text-align:center}[data-theme=light] .bom-qty-input{color-scheme:light}.bom-qty-input:focus{outline:none;border-color:var(--accent)}.bom-qty-input::-webkit-inner-spin-button,.bom-qty-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.bom-qty-input[type=number]{-moz-appearance:textfield}.bom-desc-cell{position:relative}.bom-desc-wrap{display:flex;align-items:center;gap:.4rem}.bom-desc-wrap>span{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bom-swap-btn{opacity:0;flex-shrink:0;padding:.1rem .35rem;border-radius:3px;border:1px solid var(--border);background:var(--bg-input);color:var(--text-secondary);font-size:.78rem;cursor:pointer;transition:opacity .1s,color .15s;line-height:1.4}.bom-item-row:hover .bom-swap-btn{opacity:1}.bom-swap-btn:hover{color:var(--accent);border-color:var(--accent)}.bom-remove-btn{display:block;margin:0 auto;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px 6px;border-radius:4px;font-size:1rem;line-height:1;transition:color .15s}.bom-remove-btn:hover{color:#ef4444}.bom-empty{font-size:.85rem;color:var(--text-secondary);padding:.5rem 0}.bom-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:300}.bom-modal-box{position:relative;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;width:560px;max-width:95vw;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px rgba(0,0,0,.4)}.bom-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border);flex-shrink:0}.bom-modal-title{font-size:.88rem;font-weight:600;color:var(--text-primary)}.bom-modal-body{flex:1 1;display:flex;flex-direction:column;overflow:hidden;padding:.75rem 1rem;gap:.75rem}.bom-modal-search{width:100%;padding:.4rem .7rem;font-size:.83rem;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);color-scheme:dark;flex-shrink:0}[data-theme=light] .bom-modal-search{color-scheme:light}.bom-modal-search:focus{outline:none;border-color:var(--accent)}.bom-modal-results{flex:1 1;overflow-y:auto;border:1px solid var(--border);border-radius:6px}.bom-modal-result-row{display:flex;align-items:center;gap:.75rem;width:100%;padding:.5rem .75rem;border:none;background:none;text-align:left;cursor:pointer;border-bottom:1px solid var(--border)}.bom-modal-result-row:last-child{border-bottom:none}.bom-modal-result-row:hover:not(:disabled){background:var(--bg-row)}.bom-modal-result-row--selected{background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:var(--accent);color:var(--accent)}.bom-modal-result-row--added{opacity:.45;cursor:not-allowed}.bom-modal-result-desc{flex:1 1;font-size:.82rem;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bom-modal-result-meta{font-size:.76rem;color:var(--text-secondary);white-space:nowrap}.bom-modal-result-cost{font-size:.78rem;color:var(--text-muted);white-space:nowrap}.bom-modal-selected{display:flex;flex-direction:column;gap:.6rem}.bom-modal-clear-btn{background:none;border:none;color:var(--accent);font-size:.8rem;cursor:pointer;padding:0;align-self:flex-start}.bom-modal-clear-btn:hover{text-decoration:underline}.bom-modal-selected-info{background:var(--bg-input);border:1px solid var(--border);border-radius:6px;padding:.6rem .75rem;font-size:.82rem;display:flex;flex-direction:column;gap:.3rem;color:var(--text-primary)}.bom-modal-qty-row{display:flex;align-items:center;gap:.75rem}.bom-modal-qty-label{font-size:.82rem;color:var(--text-secondary)}.bom-modal-qty-input{width:90px;padding:.3rem .5rem;font-size:.83rem;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);color-scheme:dark;text-align:right}[data-theme=light] .bom-modal-qty-input{color-scheme:light}.bom-modal-qty-input:focus{outline:none;border-color:var(--accent)}.bom-modal-error{font-size:.8rem;color:#ef4444}.bom-modal-tabs{display:flex;border-bottom:1px solid var(--border);padding:0 1rem;gap:0;flex-shrink:0}.bom-modal-tab{padding:.5rem 1rem;font-size:.82rem;color:var(--text-secondary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .15s,border-color .15s}.bom-modal-tab:hover{color:var(--text-primary)}.bom-modal-tab--active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.bom-modal-kit-items{margin-top:.75rem;display:flex;flex-direction:column;gap:.25rem}.bom-modal-kit-items-label{font-size:.78rem;color:var(--text-secondary);margin-bottom:.25rem}.bom-modal-kit-item-row{display:flex;align-items:center;gap:.5rem;padding:.3rem .5rem;border-radius:4px;background:var(--bg-row);font-size:.8rem}.bom-modal-kit-item-desc{flex:1 1;color:var(--text-primary)}.bom-modal-kit-item-pn{color:var(--text-secondary);font-size:.75rem}.bom-modal-kit-item-qty{color:var(--accent);font-weight:600;min-width:2rem;text-align:right}.bom-swap-from-banner{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--bg-row);border-bottom:1px solid var(--border);font-size:.8rem;flex-shrink:0}.bom-swap-from-label{color:var(--text-muted);white-space:nowrap}.bom-swap-from-desc{color:var(--text-primary);font-weight:500;flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bom-swap-from-pn{color:var(--text-secondary);white-space:nowrap;font-size:.75rem}.bom-swap-preserve-note{margin-top:.5rem;font-size:.75rem;color:var(--text-muted);font-style:italic}.bom-modal-footer{padding:.75rem 1rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.5rem;flex-shrink:0}.bom-qty-input--act{background:transparent;border-color:transparent}.bom-qty-input--act:hover{border-color:var(--border)}.bom-qty-input--act:focus{background:var(--bg-input);border-color:var(--accent)}.bom-qty-input--act-default{opacity:.45}.bom-qty-input--act-default:focus{opacity:1}.bom-est-qty-val{display:block;text-align:center;font-size:.82rem;padding:0 .25rem;color:var(--text-primary)}.bom-items-table th.bom-pre-section,.bom-section-header{border-right:none!important}.bom-section-header{height:var(--sec-hdr-h,72px);padding:4px 2px 8px!important;vertical-align:bottom;position:relative;overflow:visible!important;-webkit-clip-path:inset(-16px -200px 0 -200px);clip-path:inset(-16px -200px 0 -200px)}.bom-section-header--first:before{left:0}.bom-section-header--first:before,.bom-section-header:after{content:"";position:absolute;bottom:0;width:2px;height:calc(var(--sec-hdr-h, 72px) * 1.221);background:var(--border);transform-origin:bottom center;transform:rotate(35deg);pointer-events:none;z-index:3}.bom-section-header:after{right:0}.bom-section-angle-wrap{height:100%;padding-top:18px;display:flex;align-items:flex-end;justify-content:flex-start;padding-left:38.5px;overflow:visible}.bom-section-name{display:inline-block;transform:rotate(-55deg);transform-origin:left bottom;white-space:nowrap;cursor:pointer;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#fb923c}[data-theme=light] .bom-section-name{color:#c2410c}.bom-section-name:hover{color:var(--accent)}.bom-section-name-input{display:inline-block;width:72px;transform:rotate(-55deg);transform-origin:left bottom;background:var(--bg-input);border:1px solid var(--accent);border-radius:3px;color:var(--text-primary);font-size:.72rem;padding:.1rem .3rem}.bom-section-name-input:focus{outline:none}.bom-section-del{position:absolute;top:-9px;left:calc(50% + var(--sec-hdr-h, 72px) * .7);transform:translateX(-50%);background:#ef4444;border:2px solid var(--bg-panel);border-radius:50%;cursor:pointer;color:#fff;font-size:.8rem;font-weight:700;padding:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;line-height:1;opacity:0;transition:opacity .15s,background .15s}.bom-section-del:hover,.bom-section-header:hover .bom-section-del{opacity:1}.bom-section-del:hover{background:#dc2626}.bom-section-del:before{content:"";position:absolute;inset:-16px -20px}.bom-items-table td.bom-sec-qty-cell{padding-left:2px;padding-right:2px}.bom-section-qty-input{width:100%;background:transparent;border:1px solid transparent;border-radius:3px;padding:.2rem;font-size:.8rem;color:var(--text-primary);color-scheme:dark;text-align:center;transition:border-color .15s}[data-theme=light] .bom-section-qty-input{color-scheme:light}.bom-section-qty-input:hover{border-color:var(--border)}.bom-section-qty-input:focus{outline:none;border-color:var(--accent);background:var(--bg-input)}.bom-section-qty-input::-webkit-inner-spin-button,.bom-section-qty-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.bom-section-qty-input[type=number]{-moz-appearance:textfield}.bom-items-table td.bom-cell-minor,.bom-items-table th.bom-minor-header{color:#4ade80}.bom-items-table td.bom-cell-major,.bom-items-table th.bom-major-header{color:#60a5fa}[data-theme=light] .bom-items-table td.bom-cell-minor,[data-theme=light] .bom-items-table th.bom-minor-header{color:#16a34a}[data-theme=light] .bom-items-table td.bom-cell-major,[data-theme=light] .bom-items-table th.bom-major-header{color:#1d4ed8}.bom-group-header-row td{background:var(--bg-section-header);padding:.2rem .75rem;font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-primary);border-bottom:1px solid var(--border);border-right:1px solid var(--border)}.bom-group-header-row td:last-child{border-right:none}.bom-items-table .bom-totals-border{border-top:2px solid #fff!important;border-bottom:2px solid #fff!important}.bom-items-table .bom-totals-start{border-left:2px solid #fff!important}.bom-items-table .bom-totals-end{border-right:2px solid #fff!important}.bom-totals-label{font-weight:700;font-size:.8rem;letter-spacing:.05em;color:var(--text-secondary)}.bom-totals-value{font-weight:700}.bom-items-table .bom-summary-row td{padding-top:.25rem!important;padding-bottom:.25rem!important}.bom-summary-label,.bom-summary-value{font-weight:700;white-space:nowrap;color:var(--text-primary)}.bom-items-table td.bom-summary-tl{border-left:2px solid var(--text-primary)!important}.bom-items-table td.bom-summary-tl,.bom-items-table td.bom-summary-tr{border-top:2px solid var(--text-primary)!important;border-bottom:1px solid var(--border)!important}.bom-items-table td.bom-summary-tr{border-right:2px solid var(--text-primary)!important}.bom-items-table td.bom-summary-mid{border-top:2px solid var(--text-primary)!important;border-bottom:1px solid var(--border)!important}.bom-items-table td.bom-summary-bl{border-bottom:2px solid var(--text-primary)!important;border-left:2px solid var(--text-primary)!important}.bom-items-table td.bom-summary-br{border-bottom:2px solid var(--text-primary)!important;border-right:2px solid var(--text-primary)!important}.bom-items-table td.bom-summary-tl-inner{border-bottom:2px solid var(--text-primary)!important;border-left:2px solid var(--text-primary)!important}.bom-items-table td.bom-summary-tr-inner{border-bottom:2px solid var(--text-primary)!important;border-right:2px solid var(--text-primary)!important}.bom-so-select{width:100%;background:transparent;border:1px solid transparent;border-radius:4px;padding:.2rem 2px;font-size:.8rem;color:var(--text-primary);font-family:inherit;text-align:center;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color .15s}.bom-so-select:hover{border-color:var(--border)}.bom-so-select:focus{outline:none;border-color:var(--accent);background:var(--bg-input)}.bom-notes-input{width:100%;background:transparent;border:1px solid transparent;border-radius:4px;padding:.2rem .4rem;font-size:.8rem;color:var(--text-primary);color-scheme:dark;font-family:inherit;transition:border-color .15s;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-theme=light] .bom-notes-input{color-scheme:light}.bom-notes-input::placeholder{color:var(--text-muted)}.bom-notes-col--wrap{position:relative;cursor:pointer;overflow:visible}.bom-notes-col--wrap:hover .bom-notes-input{border-color:var(--border)}.bom-notes-popover{position:fixed;z-index:1000;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.3);padding:6px}.bom-notes-popover-textarea{width:100%;height:120px;resize:none;background:var(--bg-input);border:1px solid var(--border);border-radius:5px;color:var(--text-primary);font-size:.8rem;font-family:inherit;padding:.4rem .5rem;outline:none;line-height:1.5}.bom-notes-popover-textarea:focus{border-color:var(--accent)}.bom-desc-cell--clickable{cursor:pointer}.bom-desc-popover{position:fixed;z-index:1000;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.3);padding:6px;min-width:320px;max-width:480px}.bom-desc-popover--sm{min-width:auto;max-width:260px}.bom-desc-popover-text{color:var(--text-primary);font-size:.8rem;font-family:inherit;line-height:1.5;white-space:pre-wrap;word-break:break-word;-webkit-user-select:text;-moz-user-select:text;user-select:text;cursor:text;padding:.4rem .5rem;max-height:200px;overflow-y:auto}.bom-items-table tfoot tr:nth-child(-n+2) td{border-top:none;padding-top:.35rem;padding-bottom:.2rem}.bom-items-table tfoot tr:last-child td{border-top:1px solid var(--border);padding-top:.5rem}.admin-page{padding:2rem 2.5rem;max-width:860px;display:flex;flex-direction:column;gap:2rem}.settings-title{font-size:1.4rem;font-weight:600;color:var(--text-primary);margin:0}.settings-section{display:flex;flex-direction:column;gap:1rem}.settings-section-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.settings-account-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem}.settings-account-info{display:flex;flex-direction:column;gap:.25rem}.settings-account-name{font-size:1rem;font-weight:600;color:var(--text-primary)}.settings-account-email{font-size:.8rem;color:var(--text-muted)}.settings-account-badges{display:flex;flex-direction:column;gap:.4rem;margin-top:.4rem}.settings-badge{font-size:.7rem;font-weight:600;padding:.15rem .55rem;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.settings-badge--role{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.settings-badge--status--active{background:rgba(34,197,94,.15);color:#22c55e}.settings-badge--status--inactive{background:rgba(239,68,68,.15);color:#ef4444}.settings-badge-row{display:flex;align-items:center;gap:.5rem}.settings-badge-label{font-size:.75rem;color:var(--text-muted);min-width:44px}.settings-row{display:flex;align-items:center;gap:1.5rem;padding:.75rem 0;border-bottom:1px solid var(--border)}.settings-row:last-child{border-bottom:none}.settings-row-label{font-size:.85rem;color:var(--text-primary);min-width:110px}.settings-theme-toggle{display:flex;gap:.5rem}.settings-theme-btn{display:flex;align-items:center;gap:.4rem;padding:.35rem .85rem;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:.8rem;cursor:pointer;transition:all .15s}.settings-theme-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.settings-theme-btn:not(.active):hover{border-color:var(--accent);color:var(--accent)}.settings-accent-swatches{display:flex;gap:.5rem;flex-wrap:wrap}.settings-accent-swatch{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .15s,border-color .15s}.settings-accent-swatch:hover{transform:scale(1.15)}.settings-accent-swatch.active{border-color:var(--text-primary);transform:scale(1.15)}.admin-search-row{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.admin-refresh-btn{display:flex;align-items:center;gap:.4rem;padding:.4rem .85rem;font-size:.8rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-panel);color:var(--text-secondary);cursor:pointer;white-space:nowrap}.admin-refresh-btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--accent)}.admin-refresh-btn:disabled{opacity:.5;cursor:default}.admin-add-user-btn{border-color:var(--accent)!important;color:var(--accent)!important}.admin-add-user-btn:hover:not(:disabled){background:var(--accent)!important;color:#fff!important}.admin-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200}.admin-modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;width:100%;max-width:480px;box-shadow:0 8px 32px rgba(0,0,0,.3);display:flex;flex-direction:column}.admin-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.admin-modal-title{display:flex;align-items:center;gap:.5rem;font-size:.95rem;font-weight:600;color:var(--text-primary)}.admin-modal-body{padding:1.25rem;display:flex;flex-direction:column;gap:.75rem}.admin-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.25rem;border-top:1px solid var(--border)}.mat-att-close-btn{padding:.4rem 1rem;font-size:.85rem;border-radius:6px;border:1px solid var(--border);background:none;color:var(--text-secondary);cursor:pointer}.mat-att-close-btn:hover{color:var(--text-primary)}.admin-add-search-wrap{position:relative;display:flex;align-items:center;width:100%}.admin-add-search-icon{position:absolute;left:.6rem;color:var(--text-secondary);pointer-events:none}.admin-add-search{width:100%;padding:.4rem 2rem;background:var(--bg-input,var(--bg-row));border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.85rem}.admin-add-search:focus{outline:none;border-color:var(--accent)}.admin-add-search-spinner{position:absolute;right:.6rem;color:var(--text-secondary)}.admin-add-results{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 16px rgba(0,0,0,.25);z-index:50;overflow:hidden}.admin-add-result-row{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;width:100%;padding:.5rem .75rem;background:none;border:none;border-bottom:1px solid var(--border);cursor:pointer;text-align:left}.admin-add-result-row:last-child{border-bottom:none}.admin-add-result-row:hover{background:var(--bg-row)}.admin-add-result-name{font-size:.85rem;color:var(--text-primary);font-weight:500}.admin-add-result-email{font-size:.75rem;color:var(--text-secondary)}.admin-add-btn{display:flex;align-items:center;gap:.4rem;padding:.4rem 1rem;font-size:.85rem;border-radius:6px;border:none;background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap}.admin-add-btn:hover:not(:disabled){background:var(--accent-hover)}.admin-add-btn:disabled{opacity:.5;cursor:default}.admin-add-selected{font-size:.8rem;color:var(--text-secondary);margin:0}.admin-add-selected strong{color:var(--text-primary)}.admin-add-error{font-size:.8rem;color:var(--color-red,#ef4444);margin:0}.admin-info-text{font-size:.825rem;color:var(--text-secondary);margin:0 0 .5rem;line-height:1.5}.admin-side-by-side{display:flex;gap:1.5rem;align-items:flex-start;flex-wrap:wrap}.admin-side-by-side .settings-section{flex:1 1;min-width:280px}.admin-perm-table-wrap{overflow-x:auto;border-radius:8px;border:1px solid var(--border);min-width:0}.admin-perm-table{width:100%;border-collapse:collapse;font-size:.82rem}.admin-perm-table tbody tr,.admin-perm-table thead{display:table;width:100%;table-layout:fixed}.admin-perm-table tbody{display:block;overflow-y:auto;max-height:210px}.admin-perm-th--group{padding:.6rem 1rem .3rem}.admin-perm-th,.admin-perm-th--group{text-align:center;color:var(--text-muted);font-weight:600;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;background:var(--bg-panel);border-bottom:1px solid var(--border)}.admin-perm-th{padding:.6rem 1rem;white-space:nowrap}.admin-perm-th--page{text-align:left;min-width:100px}.admin-perm-td{padding:.55rem 1rem;text-align:center;color:var(--text-primary);border-bottom:1px solid var(--border);vertical-align:middle;white-space:nowrap}.admin-perm-row:last-child td{border-bottom:none}.admin-perm-td--page{text-align:left;color:var(--text-primary);font-weight:500}.admin-perm-check{color:#22c55e;font-weight:700;font-size:1rem}.admin-perm-cross{color:var(--text-secondary);opacity:.4}.admin-lists{display:flex;flex-direction:column;gap:.5rem}.admin-list-row{display:flex;align-items:baseline;gap:.75rem;padding:.5rem .75rem;border-radius:6px;background:var(--bg-row);border:1px solid var(--border)}.admin-list-name{font-size:.85rem;font-weight:600;color:var(--text-primary);min-width:120px}.admin-list-desc{font-size:.8rem;color:var(--text-secondary)}.admin-table-wrap{overflow-x:auto;border-radius:8px;border:1px solid var(--border);min-width:0}.admin-table{width:100%;border-collapse:collapse;font-size:.82rem}.admin-table tbody tr,.admin-table thead{display:table;width:100%;table-layout:fixed}.admin-table tbody{display:block;overflow-y:auto;max-height:210px}.admin-th{padding:.6rem 1rem;text-align:left;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--bg-panel)}.admin-td,.admin-th{border-bottom:1px solid var(--border);white-space:nowrap}.admin-td{padding:.55rem 1rem;color:var(--text-primary);vertical-align:middle;overflow:hidden;text-overflow:ellipsis}.admin-td--email{color:var(--text-muted);font-size:.78rem}.admin-td--actions{text-align:center;padding:.55rem .25rem}.admin-delete-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:3px 5px;border-radius:4px;opacity:.4;transition:opacity .15s,color .15s}.admin-delete-btn:hover{opacity:1;color:#ef4444}.admin-delete-confirm-btn{padding:.4rem 1rem;border-radius:6px;border:1px solid rgba(239,68,68,.5);background:rgba(239,68,68,.15);color:#ef4444;font-size:.82rem;font-weight:600;cursor:pointer}.admin-delete-confirm-btn:hover{background:rgba(239,68,68,.25)}.admin-table tbody td:first-child,.admin-table thead th:first-child{width:18%}.admin-table tbody td:nth-child(2),.admin-table thead th:nth-child(2){width:33%}.admin-table tbody td:nth-child(3),.admin-table tbody td:nth-child(4),.admin-table thead th:nth-child(3),.admin-table thead th:nth-child(4){width:20%}.admin-table tbody td:nth-child(5),.admin-table thead th:nth-child(5){width:9%}.admin-select{background:var(--bg-input);border:1px solid var(--border);border-radius:5px;color:var(--text-primary);font-size:.78rem;padding:.25rem .5rem;cursor:pointer;width:100%;min-width:0}.admin-select--active{color:#22c55e;border-color:rgba(34,197,94,.4)}.admin-select--inactive{color:#ef4444;border-color:rgba(239,68,68,.4)}.admin-select--role-admin{color:#a78bfa;border-color:rgba(167,139,250,.4)}.admin-select--role-manager{color:#38bdf8;border-color:rgba(56,189,248,.4)}.admin-select--role-installer{color:#fb923c;border-color:rgba(251,146,60,.4)}.admin-select--role-basic{color:#4ade80;border-color:rgba(74,222,128,.4)}.tasks-drawer-backdrop{position:fixed;inset:0;z-index:199}.tasks-drawer{position:fixed;top:0;left:60px;height:100vh;width:320px;z-index:200;display:flex;flex-direction:column;box-shadow:4px 0 24px rgba(0,0,0,.35);animation:tasks-drawer-in .18s ease}@keyframes tasks-drawer-in{0%{transform:translateX(-16px);opacity:0}to{transform:translateX(0);opacity:1}}.tasks-drawer .task-panel{width:100%;height:100%;max-height:100vh;min-height:100vh;border-radius:0;border-left:none;border-top:none;border-bottom:none}.sidebar-nav-item--admin{color:#f59e0b}.sidebar-nav-item--admin:hover{color:#fbbf24;background:rgba(245,158,11,.1)}.sidebar-nav-item--admin.active{color:#fbbf24;background:rgba(245,158,11,.15)}.sidebar-nav-item--bom{color:#14b8a6}.sidebar-nav-item--bom:hover{color:#2dd4bf;background:rgba(20,184,166,.1)}.sidebar-nav-item--bom.active{color:#2dd4bf;background:rgba(20,184,166,.15)}.sidebar-profile-role{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin-top:.15rem}.sched-page{display:flex;flex:1 1;height:100%;overflow:hidden}.sched-filter-status-section{display:flex;flex-direction:column;gap:.25rem}.sched-filter-status-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.1rem}.sched-filter-status-label{font-size:.72rem;color:var(--text-secondary);font-weight:500}.sched-scheduled-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#22c55e;margin-left:.4rem;vertical-align:middle;flex-shrink:0}.project-card--dragging{opacity:.45}.sched-list-hint{font-size:.7rem;color:var(--text-secondary);text-align:center;padding:.5rem .75rem;border-top:1px solid var(--border)}.sched-card-wrap{position:relative}.sched-card-tooltip{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:.6rem .75rem;min-width:260px;box-shadow:0 4px 16px rgba(0,0,0,.3);pointer-events:none}.sched-card-tooltip-row{display:flex;gap:.75rem;margin-bottom:.5rem}.sched-card-tooltip-row:last-child{margin-bottom:0}.sched-card-tooltip-cell{display:flex;flex-direction:column;align-items:center;gap:.2rem;flex:1 1}.sched-card-tooltip-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);text-align:center}.sched-card-tooltip-value{font-size:.78rem;color:var(--text-primary);text-align:center}.sched-card-tooltip-empty{font-size:.78rem;color:var(--text-secondary);text-align:center}.sched-chart-wrap{flex:1 1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-app)}.sched-toolbar{display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem;border-bottom:1px solid var(--border);flex-shrink:0}.sched-nav-btn{background:var(--bg-panel);border:1px solid var(--border);color:var(--text-primary);font-size:.85rem;padding:.35rem .8rem;border-radius:5px;cursor:pointer;transition:background .12s}.sched-nav-btn:hover{background:rgba(255,255,255,.06)}.sched-nav-btn--today{margin-left:.25rem;color:var(--accent);border-color:var(--accent)}.sched-range-label{font-size:.95rem;font-weight:600;color:var(--text-primary);flex:1 1;text-align:center}.sched-loading-hint{font-size:.72rem;color:var(--text-secondary)}.sched-grid-outer{flex:1 1;overflow:auto;padding-bottom:1rem}.sched-grid{min-width:900px;display:flex;flex-direction:column;position:relative}.sched-grid-header{display:flex;border-bottom:2px solid var(--border);position:-webkit-sticky;position:sticky;top:0;background:var(--bg-panel);z-index:10}.sched-date-header{flex:1 1;display:flex;flex-direction:column;align-items:center;padding:.3rem .1rem;border-left:1px solid var(--border);min-width:60px}.sched-date-day{font-size:.72rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.sched-date-num{font-size:.78rem;color:var(--text-primary);white-space:nowrap}.sched-col-weekend{background:rgba(0,0,0,.06)}.sched-date-header.sched-col-weekend,.sched-drop-cell.sched-col-weekend{flex:0.5 1;min-width:32px}.sched-crew-row{display:flex;border-bottom:1px solid var(--border);min-height:100px}.sched-crew-label{display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;color:var(--text-secondary);border-right:1px solid var(--border);flex-shrink:0;position:-webkit-sticky;position:sticky;left:0;background:var(--bg-panel);z-index:5}.sched-crew-label,.sched-crew-label--header{width:70px;min-width:70px}.sched-drop-area{flex:1 1;display:flex;position:relative}.sched-drop-cell{flex:1 1;min-width:60px;border-left:1px solid var(--border);transition:background .1s}.sched-drop-cell--droppable:hover{background:rgba(99,102,241,.06)}.sched-drop-cell--active{background:rgba(99,102,241,.2)!important}.sched-block{position:absolute;top:6px;bottom:6px;border-radius:6px;display:flex;align-items:stretch;overflow:visible;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.25);transition:box-shadow .12s;z-index:2}.sched-block:hover{box-shadow:0 2px 8px rgba(0,0,0,.4);z-index:3}.sched-block--row1{background:rgba(59,130,246,.65);border:1px solid rgba(96,165,250,.7)}.sched-block--row2{background:rgba(16,185,129,.65);border:1px solid rgba(52,211,153,.7)}.sched-block--row3{background:rgba(249,115,22,.65);border:1px solid rgba(251,146,60,.7)}.sched-block--row4{background:rgba(168,85,247,.65);border:1px solid rgba(192,132,252,.7)}.sched-block--row5{background:rgba(239,68,68,.65);border:1px solid rgba(248,113,113,.7)}.sched-block-inner{flex:1 1;display:flex;flex-direction:column;justify-content:center;padding:.35rem .6rem;overflow:hidden;min-width:0}.sched-block-name{font-size:.82rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}.sched-add-installer-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:1px dashed rgba(255,255,255,.5);background:rgba(0,0,0,.15);color:rgba(255,255,255,.8);cursor:pointer;flex-shrink:0;padding:0;transition:background .12s,border-color .12s}.sched-add-installer-btn:hover{background:rgba(0,0,0,.3);border-color:rgba(255,255,255,.9);color:#fff}.sched-block--unpublished{opacity:.45}.sched-unpublished-notice{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.5);color:#ef4444;padding:6px 16px;border-radius:6px;font-size:.8rem;pointer-events:none;z-index:200}.sched-publish-all-btn{margin-left:auto;background:var(--accent);color:#fff;border-color:transparent}.sched-publish-all-btn:hover{background:var(--accent-hover)}.sched-publish-all-btn:disabled{opacity:.6;cursor:default}.sched-block-inner--movable{cursor:-webkit-grab;cursor:grab}.sched-block-inner--moving{cursor:-webkit-grabbing;cursor:grabbing}.sched-block-order{font-weight:600;color:rgba(255,255,255,.75)}.sched-block-desc,.sched-block-order{display:block;font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sched-block-desc{color:rgba(255,255,255,.65)}.sched-resize-handle{width:8px;cursor:col-resize;flex-shrink:0;border-radius:6px;opacity:.4;transition:opacity .12s}.sched-block:hover .sched-resize-handle{opacity:1}.sched-resize-handle--left{border-radius:6px 0 0 6px;background:rgba(255,255,255,.3)}.sched-resize-handle--right{border-radius:0 6px 6px 0;background:rgba(255,255,255,.3)}.sched-delete-btn{position:absolute;top:-6px;right:-6px;width:16px;height:16px;border-radius:50%;background:#ef4444;color:#fff;font-size:.75rem;line-height:1;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;opacity:0;transition:opacity .12s;z-index:10;padding:0}.sched-block:hover .sched-delete-btn{opacity:1}.sched-block-footer{display:flex;align-items:center;gap:4px;margin-top:4px}.sched-block-footer .sched-add-installer-btn{flex-shrink:0}.sched-avatars{display:flex;align-items:center;flex:1 1;overflow:hidden;min-width:0}.sched-avatar{position:relative;width:28px;height:28px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.5);flex-shrink:0}.sched-avatars .sched-avatar+.sched-avatar{margin-left:calc(4px - var(--avatar-overlap, 0px))}.sched-avatars .sched-avatar:first-child{z-index:4}.sched-avatars .sched-avatar:nth-child(2){z-index:3}.sched-avatars .sched-avatar:nth-child(3){z-index:2}.sched-avatars .sched-avatar:nth-child(4){z-index:1}.sched-avatar--initials,.sched-avatar--overflow{color:#fff;font-size:.65rem;font-weight:700;display:flex;align-items:center;justify-content:center}.sched-avatar--overflow{background:rgba(0,0,0,.45)}.sched-installer-pop{position:fixed;z-index:1000;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 32px rgba(0,0,0,.4);width:320px;display:flex;flex-direction:column;max-height:480px;overflow:hidden}.sched-installer-pop-header{display:flex;align-items:flex-start;justify-content:space-between;padding:.85rem 1rem .6rem;border-bottom:1px solid var(--border)}.sched-installer-pop-title{font-size:.85rem;font-weight:600;color:var(--text-primary)}.sched-installer-pop-dates{font-size:.72rem;color:var(--text-secondary);margin-top:.15rem}.sched-installer-pop-close{background:none;border:none;color:var(--text-secondary);font-size:1.1rem;cursor:pointer;padding:0;line-height:1}.sched-installer-search{margin:.5rem .75rem;padding:.35rem .6rem;background:var(--bg-app);border:1px solid var(--border);border-radius:5px;color:var(--text-primary);font-size:.8rem;outline:none}.sched-installer-search:focus{border-color:var(--accent)}.sched-installer-list{flex:1 1;overflow-y:auto;padding:.25rem 0}.sched-installer-freq{padding:.4rem .75rem .3rem;border-bottom:1px solid var(--border)}.sched-installer-freq-label{font-size:.68rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.35rem}.sched-installer-freq-list{display:flex;flex-wrap:wrap;gap:.3rem}.sched-installer-freq-chip{font-size:.75rem;padding:.2rem .55rem;border-radius:999px;border:1px solid var(--border);background:var(--bg-row);color:var(--text-primary);cursor:pointer;transition:background .1s,border-color .1s}.sched-installer-freq-chip:hover{background:rgba(255,255,255,.08)}.sched-installer-freq-chip--active{background:var(--accent);border-color:var(--accent);color:#fff}.sched-installer-empty{font-size:.78rem;color:var(--text-secondary);text-align:center;padding:1rem}.sched-installer-chips{display:flex;flex-wrap:wrap;gap:.3rem;padding:.4rem .75rem;border-bottom:1px solid var(--border)}.sched-installer-chip{display:inline-flex;align-items:center;gap:.25rem;background:var(--accent);color:#fff;font-size:.75rem;border-radius:999px;padding:.15rem .5rem .15rem .6rem}.sched-installer-chip button{background:none;border:none;color:inherit;cursor:pointer;font-size:.85rem;line-height:1;padding:0;opacity:.8}.sched-installer-chip button:hover{opacity:1}.sched-installer-row{display:flex;align-items:center;gap:.6rem;padding:.4rem .75rem;cursor:pointer;transition:background .1s}.sched-installer-row:hover{background:rgba(255,255,255,.04)}.sched-installer-row--checked{background:rgba(99,102,241,.1)}.sched-installer-checkbox{cursor:pointer}.sched-installer-info{display:flex;flex-direction:column;min-width:0}.sched-installer-name{font-size:.8rem;color:var(--text-primary)}.sched-installer-email,.sched-installer-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sched-installer-email{font-size:.67rem;color:var(--text-secondary)}.sched-installer-pop-footer{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;border-top:1px solid var(--border);gap:.5rem}.sched-installer-count{font-size:.72rem;color:var(--text-secondary)}.sched-installer-pop-actions{display:flex;gap:.5rem}.sched-block--moving,.sched-today-line{pointer-events:none}.sched-today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);opacity:.7;z-index:1}.sched-col-today{background:rgba(99,102,241,.07)!important}.sched-col-today.sched-col-weekend{background:rgba(99,102,241,.1)!important}.sched-conflict-toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);background:#ef4444;color:#fff;font-size:.82rem;font-weight:500;padding:.5rem 1.2rem;border-radius:999px;box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:9999;pointer-events:none;animation:sched-toast-in .15s ease}@keyframes sched-toast-in{0%{opacity:0;transform:translateX(-50%) translateY(8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.sched-publish-toast{position:fixed;bottom:4rem;left:50%;transform:translateX(-50%);background:#22c55e;color:#fff;font-size:.82rem;font-weight:500;padding:.5rem 1.2rem;border-radius:999px;box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:9999;pointer-events:none;animation:sched-toast-in .15s ease}.sched-publish-toast--error{background:#ef4444}.sched-crew-label-text{cursor:text;border-radius:3px;padding:1px 3px}.sched-crew-label-text:hover{background:rgba(255,255,255,.08)}.sched-crew-label-input{width:58px;font-size:.8rem;font-weight:600;text-align:center;background:var(--bg-app);border:1px solid var(--accent);border-radius:4px;color:var(--text-primary);padding:2px 4px;outline:none}.sched-block-datetip{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);background:rgba(0,0,0,.85);color:#fff;font-size:.7rem;white-space:nowrap;padding:.2rem .5rem;border-radius:4px;pointer-events:none;z-index:50}.bom-add-install-type-btn{padding:.38rem .875rem;font-size:.82rem;background:color-mix(in srgb,var(--accent) 14%,var(--bg-input));color:var(--accent);border:1px solid var(--accent);border-radius:6px;cursor:pointer;transition:opacity .15s}.bom-add-install-type-btn:hover{opacity:.8}.bom-add-bay-builder-btn{padding:.38rem .875rem;font-size:.82rem;background:color-mix(in srgb,var(--accent) 14%,var(--bg-input));color:var(--accent);border:1px solid var(--accent);border-radius:6px;cursor:pointer;transition:opacity .15s}.bom-add-bay-builder-btn:hover{opacity:.8}.bay-builder-type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-auto-rows:1fr;grid-gap:.75rem;gap:.75rem;padding:.25rem 0}.bay-builder-type-card{display:flex;flex-direction:column;gap:0;padding:0;overflow:hidden;background:var(--bg-input);border:1px solid var(--border);border-radius:8px;cursor:pointer;text-align:left;transition:border-color .15s,background .15s}.bay-builder-type-card:hover{border-color:var(--accent)}.bay-builder-type-card:hover .bay-builder-type-card-body{background:color-mix(in srgb,var(--accent) 8%,var(--bg-input))}.bay-builder-type-card--soon{cursor:default}.bay-builder-type-card--soon:hover{border-color:var(--border)}.bay-builder-type-card--soon:hover .bay-builder-type-card-body{background:var(--bg-input)}.bay-builder-type-card--soon .bay-builder-type-desc,.bay-builder-type-card--soon .bay-builder-type-name,.bay-builder-type-card--soon .bay-builder-type-subtitle{opacity:.5}.bay-builder-type-card-img{width:100%;aspect-ratio:318/280;object-fit:contain;object-position:center;display:block;background:#ffffff;border-bottom:1px solid var(--border)}.bay-builder-type-card-body{display:flex;flex-direction:column;gap:.3rem;padding:.75rem 1rem;align-items:center;text-align:center;background:var(--bg-input);flex:1 1}.bay-builder-type-card-top{display:flex;align-items:center;justify-content:center;gap:.4rem}.bay-builder-type-name{font-size:1rem;font-weight:600;color:var(--text-primary)}.bay-builder-type-subtitle{font-size:.8rem;font-weight:500;color:var(--text-secondary);margin-top:.1rem}.bay-builder-type-desc{font-size:.78rem;color:var(--text-secondary)}.bay-builder-soon-badge{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:.15rem .4rem;border-radius:4px;background:var(--bg-row);color:var(--text-primary);border:1px solid var(--border);white-space:nowrap;align-self:flex-end;margin-top:auto}.dist-bay-v2{flex-direction:column;gap:1rem}.dist-bay-rack-row,.dist-bay-v2{display:flex;align-items:flex-start}.dist-bay-rack-row{gap:.75rem}.dist-bay-sec-label,.dist-bay-section-labels{display:flex;flex-direction:column}.dist-bay-sec-label{justify-content:center;gap:.2rem;padding-left:.5rem;border-left:2px solid var(--border)}.dist-bay-sec-label--fixed{border-left-color:#4a5568;opacity:.6}.dist-bay-sec-label-name{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);white-space:nowrap}.dist-bay-sec-status{font-size:.7rem;color:var(--text-muted);white-space:nowrap}.dist-bay-sec-status--ok{color:#22c55e;font-weight:600}.dist-bay-sec-status--warn{color:#e07b39;font-weight:600}.dist-bay-sec-status--error{color:#ef4444;font-weight:600}.dist-bay-action{width:100%;max-width:480px;border:1px solid var(--border);border-radius:8px;background:var(--bg-panel);overflow:hidden}.dist-bay-action-hdr{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:var(--bg-row);border-bottom:1px solid var(--border);gap:.75rem}.dist-bay-action-title{font-size:.8rem;font-weight:600;color:var(--text-primary)}.dist-bay-action-remove-btn{font-size:.72rem;color:#e07b39;background:none;border:1px solid color-mix(in srgb,#e07b39 40%,transparent);border-radius:4px;padding:.15rem .5rem;cursor:pointer;transition:background .1s}.dist-bay-action-remove-btn:hover{background:color-mix(in srgb,#e07b39 12%,transparent)}.dist-bay-action-close-btn{font-size:.8rem;color:var(--text-muted);background:none;border:none;cursor:pointer;padding:0 .25rem;line-height:1;flex-shrink:0}.dist-bay-inline-picker{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:5px 4px;background:#a8a8a0;box-sizing:border-box;overflow:hidden}.dist-bay-inline-header{display:flex;align-items:center;justify-content:space-between;width:100%;gap:2px}.dist-bay-inline-label{font-size:10px;font-weight:600;color:#2c2c24;text-align:center;flex:1 1}.dist-bay-inline-nav{font-size:11px;background:none;border:none;cursor:pointer;color:#3c3c30;padding:0 2px;line-height:1;flex-shrink:0}.dist-bay-inline-nav:hover{color:#000}.dist-bay-inline-nav-ph{width:16px;flex-shrink:0}.dist-bay-cover-pill{opacity:0;transition:opacity .15s ease}.dist-bay-cover-g:hover .dist-bay-cover-pill{opacity:1}.dist-bay-rpm-picker{justify-content:flex-start;gap:2px;padding:4px 5px}.dist-bay-rpm-row{display:flex;align-items:center;width:100%;gap:3px}.dist-bay-rpm-name{flex:1 1;font-size:9px;color:#2c2c24;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dist-bay-rpm-count{width:14px;text-align:center;font-size:9px;font-weight:600;color:#2c2c24}.dist-bay-rpm-btn{width:16px;height:16px;font-size:11px;line-height:1;padding:0;background:#e0e0d8;border:1px solid #b0b0a0;border-radius:2px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dist-bay-rpm-btn:disabled{opacity:.35;cursor:not-allowed}.dist-bay-rpm-footer{display:flex;gap:5px;width:100%;margin-top:5px;flex-shrink:0}.dist-bay-rpm-footer-btn{flex:1 1;font-size:10px;font-weight:600;padding:5px 0;border-radius:6px;border:1px solid #16a34a;background:#22c55e;color:#ffffff;cursor:pointer;letter-spacing:.01em;display:flex;align-items:center;justify-content:center;text-align:center}.dist-bay-rpm-footer-btn:hover{background:#16a34a;border-color:#15803d}.dist-bay-rpm-footer-btn--remove{background:#eab308;border-color:#ca8a04;color:#1c1400}.dist-bay-rpm-footer-btn--remove:hover{background:#ca8a04;border-color:#a16207;color:#1c1400}.dist-bay-inline-row{display:flex;flex-direction:row;gap:4px;flex-wrap:nowrap;justify-content:center;width:100%}.dist-bay-inline-btn{font-size:9px;width:calc(25% - 3px);flex-shrink:0;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;text-align:center;padding:0;background:#e8e8e0;border:1px solid #a0a098;border-radius:6px;cursor:pointer;color:#2c2c24;white-space:normal;word-break:break-word;line-height:1.25}.dist-bay-inline-btn:hover:not(:disabled){background:#d4e0f0;border-color:#2272b8;color:#1a4a80}.dist-bay-inline-btn:disabled{opacity:.38;cursor:not-allowed}.dist-bay-action-sublabel{font-size:.68rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;padding:.4rem .75rem .1rem}.dist-bay-picker-grid{display:flex;flex-direction:column}.dist-bay-picker-card{display:flex;align-items:center;gap:.75rem;width:100%;background:none;border:none;border-top:1px solid var(--border);padding:.45rem .75rem;cursor:pointer;text-align:left;transition:background .1s}.dist-bay-picker-card:hover{background:color-mix(in srgb,var(--accent) 7%,var(--bg-input))}.dist-bay-picker-card--active{background:color-mix(in srgb,var(--accent) 12%,var(--bg-input))}.dist-bay-picker-card-name{flex:1 1;font-size:.78rem;color:var(--text-primary)}.dist-bay-picker-card-size{font-size:.7rem;color:var(--text-muted);flex-shrink:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dist-bay-picker-empty{font-size:.75rem;color:var(--text-muted);padding:.5rem .75rem;font-style:italic}.dist-bay-validation-error{font-size:.75rem;color:#e07b39;padding:.4rem .6rem;background:color-mix(in srgb,#e07b39 10%,var(--bg-panel));border:1px solid color-mix(in srgb,#e07b39 30%,transparent);border-radius:5px}.bay-builder-configure{display:flex;flex-direction:column;gap:1.5rem;padding:.25rem 3px;overflow:auto;flex:1 1;width:100%;max-width:800px;margin:0 auto}.bay-builder-configure--wide{max-width:1300px}.bay-builder-question{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}.bay-builder-dual-revealed,.bay-builder-pair{display:grid;grid-template-columns:1fr 1fr;grid-gap:2.5rem;gap:2.5rem}.bay-builder-dual-revealed{align-items:start}.bay-builder-load-grid{display:grid;grid-template-columns:1fr 1fr;grid-column-gap:0;column-gap:0;grid-row-gap:.75rem;row-gap:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.bay-builder-load-grid-cell{display:flex;flex-direction:column;gap:.4rem;align-items:center}.bay-builder-load-grid-cell:nth-child(odd){border-right:1px solid var(--border);padding-right:.75rem}.bay-builder-load-grid-cell:nth-child(2n){padding-left:.75rem}.bay-builder-load-grid .bay-builder-question-label{text-align:center;justify-content:center}.bay-builder-question-label{display:flex;align-items:center;font-size:.82rem;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.04em;width:100%;overflow-wrap:break-word;word-break:break-word}.bay-builder-radio-group{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:.5rem}.bay-builder-radio-opt{display:flex;flex-direction:column;gap:.2rem;padding:.55rem 1.1rem;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:.9rem;color:var(--text-primary);transition:border-color .15s,background .15s;text-align:left}.bay-builder-radio-opt:hover{border-color:var(--accent)}.bay-builder-radio-opt--active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--bg-input));color:var(--accent)}.bay-builder-radio-opt--disabled{opacity:.35;cursor:default}.bay-builder-radio-opt--disabled:hover{border-color:var(--border)}.bay-builder-radio-opt-desc{font-size:.74rem;color:var(--text-muted);font-weight:400}.bay-builder-counter{gap:.2rem}.bay-builder-counter,.bay-builder-counter-btn{display:flex;align-items:center;justify-content:center}.bay-builder-counter-btn{width:34px;height:34px;aspect-ratio:1;flex-shrink:0;padding:0;font-size:1.1rem;line-height:1;background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;border-radius:6px;transition:border-color .15s,color .15s}.bay-builder-counter-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.bay-builder-counter-btn:disabled{opacity:.35;cursor:default}.bay-builder-counter-val{min-width:40px;text-align:center;font-size:1rem;font-weight:600;color:var(--accent);padding:.35rem .6rem;border-radius:6px;border:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--bg-input))}.bay-builder-stacked-layout{display:grid;grid-template-columns:1fr 1fr;grid-gap:2.5rem;gap:2.5rem;align-items:start;max-width:800px;margin:0 auto}.bay-builder-stack-col{display:flex;flex-direction:column;gap:1.5rem;min-width:0}.bay-builder-left-revealed,.bay-builder-right-revealed{display:grid;grid-template-columns:1fr 1fr;grid-gap:2.5rem;gap:2.5rem}.bay-builder-revealed-content{background:color-mix(in srgb,var(--accent) 12%,var(--bg-input));border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:8px;padding:.875rem 1rem;display:flex;flex-direction:column;gap:.75rem}.bay-builder-revealed-content--center{align-items:center;max-width:285px;width:100%;justify-self:center}.bay-builder-revealed-content--center .bay-builder-question{align-items:center}.bay-builder-revealed-content--center .bay-builder-question-label{justify-content:center;width:auto}.bay-builder-computed-warning{display:flex;align-items:flex-start;gap:.5rem;background:color-mix(in srgb,#f59e0b 12%,var(--bg-input));border:1px solid color-mix(in srgb,#f59e0b 40%,var(--border));border-radius:8px;padding:.6rem .875rem;font-size:.82rem;color:#f59e0b;line-height:1.45}.bay-builder-computed-warning-icon{flex-shrink:0;font-size:.95rem;margin-top:.05rem}.bay-builder-computed-display{display:flex;align-items:center;justify-content:center;gap:.75rem}.bay-builder-computed-value{font-size:.9rem;font-weight:600;color:var(--accent);padding:.4rem 1rem;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--accent) 14%,var(--bg-input));letter-spacing:.02em}.bay-builder-cable-tooltip-wrap{position:relative;display:inline-flex}.bay-builder-cable-tooltip-trigger{width:20px;height:20px;border-radius:50%;border:1px solid var(--text-muted);color:var(--text-muted);font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:help;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:border-color .15s,color .15s}.bay-builder-cable-tooltip-trigger:hover{border-color:var(--accent);color:var(--accent)}.bay-builder-cable-tooltip{display:none;position:absolute;top:calc(100% + 8px);left:0;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:.875rem 1rem;z-index:300;white-space:nowrap;box-shadow:0 8px 30px rgba(0,0,0,.45)}.bay-builder-cable-tooltip-wrap:hover .bay-builder-cable-tooltip{display:block}.bay-builder-cable-tooltip-title{font-size:.72rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.6rem;text-align:center}.bay-builder-cable-table{border-collapse:collapse;font-size:.82rem}.bay-builder-cable-table td,.bay-builder-cable-table th{padding:.28rem .65rem;text-align:center;border:1px solid var(--border);color:var(--text-secondary)}.bay-builder-cable-table th{background:var(--bg-input);font-weight:600;color:var(--text-primary)}.bay-builder-cable-table th.active{background:color-mix(in srgb,var(--accent) 20%,var(--bg-input));color:var(--accent)}.bay-builder-cable-table td.active-row{font-weight:600;color:var(--text-primary)}.bay-builder-cable-table td.active-cell{background:color-mix(in srgb,var(--accent) 22%,var(--bg-input));color:var(--accent);font-weight:700}.bay-builder-info-wrap{position:relative}.bay-builder-info-trigger,.bay-builder-info-wrap{display:inline-flex;align-items:center;flex-shrink:0}.bay-builder-info-trigger{justify-content:center;width:.75rem;height:.75rem;border-radius:50%;background:var(--text-secondary);color:var(--bg-panel);font-size:.45rem;font-weight:700;font-style:normal;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none;line-height:1}.bay-builder-bracket-row{display:flex;align-items:center;justify-content:center;gap:.5rem}.dist-bay-left-scroll{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}.dist-bay-left-scroll::-webkit-scrollbar{width:4px}.dist-bay-left-scroll::-webkit-scrollbar-track{background:transparent}.dist-bay-left-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22);border-radius:2px}.bay-builder-bracket-side{display:flex;align-items:center;gap:.35rem}.bay-builder-bracket-divider{color:var(--text-muted);font-size:1.1rem;font-weight:300;padding:0 .1rem}.bay-builder-text-tooltip-fixed{border:1px solid var(--border);border-radius:6px;padding:.4rem .65rem;font-size:.78rem;color:var(--text-primary);box-shadow:0 4px 14px rgba(0,0,0,.45);max-width:220px;white-space:normal}.bay-builder-info-tooltip-fixed,.bay-builder-text-tooltip-fixed{position:fixed;z-index:99999;background:var(--bg-panel);pointer-events:none}.bay-builder-info-tooltip-fixed{border:1px solid var(--border);border-radius:8px;padding:.5rem;box-shadow:0 8px 30px rgba(0,0,0,.55);width:560px}.bay-builder-info-tooltip-fixed img{width:100%;height:auto;display:block;border-radius:4px;background:#ffffff}.bay-builder-number-wrap{display:flex;align-items:center;justify-content:center;gap:.5rem}.bay-builder-number-input{width:90px;padding:.45rem .6rem;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.95rem;text-align:center;-moz-appearance:textfield}.bay-builder-number-input::-webkit-inner-spin-button,.bay-builder-number-input::-webkit-outer-spin-button{-webkit-appearance:none}.bay-builder-number-input:focus{outline:none;border-color:var(--accent)}.bay-builder-number-unit{font-size:.85rem;color:var(--text-secondary);font-weight:500}.bay-builder-question-note{font-size:.75rem;color:var(--text-muted);font-style:italic;text-align:center}.bay-builder-close-overlay{position:absolute;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:10;border-radius:inherit}.bay-builder-close-confirm{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:1.75rem 2rem;max-width:380px;width:100%;display:flex;flex-direction:column;gap:.6rem;box-shadow:0 8px 32px rgba(0,0,0,.4)}.bay-builder-close-confirm-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}.bay-builder-close-confirm-body{font-size:.85rem;color:var(--text-secondary);margin:0 0 .5rem}.bay-builder-close-confirm-actions{display:flex;gap:.5rem;justify-content:flex-end}.crh-add-btn{display:flex;align-items:center;gap:.4rem;padding:.45rem .9rem;font-size:.78rem;font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--bg-input));border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:6px;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap}.crh-add-btn:hover{background:color-mix(in srgb,var(--accent) 18%,var(--bg-input))}.crh-selected-list{display:flex;flex-direction:column;gap:.35rem}.crh-selected-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.crh-selected-label{font-size:.74rem;color:var(--text-secondary);flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crh-selected-controls{display:flex;align-items:center;gap:.2rem;flex-shrink:0}.crh-selected-qty{min-width:1.5rem;text-align:center;font-size:.85rem;font-weight:600;color:var(--accent)}.crh-selected-remove{width:22px;height:22px;aspect-ratio:1;padding:0;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-muted);cursor:pointer;margin-left:.15rem;transition:color .15s,border-color .15s}.crh-selected-remove:hover{color:var(--status-red,#e53935);border-color:var(--status-red,#e53935)}.crh-picker-overlay{position:absolute;inset:0;background:var(--bg-panel);border-radius:inherit;display:flex;flex-direction:column;z-index:5;overflow:hidden}.crh-picker-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);flex-shrink:0}.crh-picker-title{font-size:.9rem;font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em}.crh-picker-done{padding:.3rem .8rem;font-size:.78rem;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:opacity .15s}.crh-picker-done:hover{opacity:.85}.crh-picker-list{flex:1 1;overflow-y:auto;padding:.5rem 0}.crh-picker-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.4rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.04);transition:background .1s}.crh-picker-row:hover{background:rgba(255,255,255,.03)}.crh-picker-info{display:flex;flex-direction:column;gap:.1rem;flex:1 1;min-width:0}.crh-picker-desc{font-size:.8rem;color:var(--text-primary)}.crh-picker-pn{font-size:.68rem;color:var(--text-secondary);font-family:monospace}.crh-picker-add-btn{padding:.25rem .65rem;font-size:.74rem;font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--bg-input));border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:5px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .15s}.crh-picker-add-btn:hover{background:color-mix(in srgb,var(--accent) 18%,var(--bg-input))}.crh-picker-added{display:flex;align-items:center;gap:.2rem;flex-shrink:0}.crh-picker-pdf-link{display:inline-flex;align-items:center;color:var(--text-secondary);opacity:.55;background:transparent;border:none;padding:0;cursor:pointer;transition:opacity .15s,color .15s;line-height:1}.crh-picker-pdf-link:hover{opacity:1;color:var(--accent)}.crh-pdf-viewer{position:absolute;inset:0;top:2.75rem;background:var(--bg-panel);display:flex;flex-direction:column;z-index:6}.crh-pdf-viewer--standalone{top:0;z-index:7}.crh-pdf-bar{display:flex;align-items:center;padding:.4rem .75rem;border-bottom:1px solid var(--border);flex-shrink:0}.crh-pdf-back{background:transparent;border:none;cursor:pointer;font-size:.78rem;font-weight:600;color:var(--text-secondary);padding:.2rem .4rem;border-radius:4px;transition:color .15s,background .15s}.crh-pdf-back:hover{color:var(--text-primary);background:rgba(255,255,255,.06)}.crh-pdf-frame{flex:1 1;width:100%;border:none}.bay-builder-review-table{width:100%;border-collapse:collapse;font-size:.82rem}.bay-builder-review-table th{position:-webkit-sticky;position:sticky;top:0;background:var(--bg-input);color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;padding:.45rem .6rem;border-bottom:1px solid var(--border);white-space:nowrap}.bay-builder-review-table td{padding:.38rem .6rem;color:var(--text-primary);border-bottom:1px solid var(--border);vertical-align:middle}.bay-builder-review-table tbody tr:hover td{background:var(--bg-hover)}.bay-builder-review-summary{font-size:.85rem;color:var(--text-secondary);background:color-mix(in srgb,var(--accent) 8%,var(--bg-input));border:1px solid color-mix(in srgb,var(--accent) 20%,var(--border));border-radius:7px;padding:.6rem 1rem;margin-bottom:.75rem;text-align:center;letter-spacing:.01em}.bay-builder-revealed-header{font-size:.78rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;text-align:center}.bay-builder-revealed-content .bay-builder-load-grid{border-top:none;padding-top:0}.cable-run-diagram{display:flex;flex-direction:column;gap:1rem;padding:.25rem 0}.cable-run-top-controls{display:flex;flex-wrap:wrap;gap:1.5rem 2.5rem}.cable-run-control-group{display:flex;flex-direction:column;gap:.35rem}.cable-run-control-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.cable-run-control-note{font-size:.72rem;color:var(--text-muted);font-style:italic}.cable-run-mixed-amps{display:flex;flex-direction:column;gap:.25rem;margin-top:.25rem}.cable-run-mixed-amp-row{display:flex;align-items:center;gap:.5rem}.cable-run-control-sublabel{font-size:.72rem;font-weight:600;color:var(--text-secondary);min-width:3.5rem}.cable-run-radio-row{display:flex;flex-wrap:wrap;gap:.35rem}.cable-run-radio-opt{display:flex;align-items:center;gap:.35rem;cursor:pointer;padding:.3rem .75rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-input);font-size:.82rem;color:var(--text-secondary);transition:border-color .12s,background .12s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cable-run-radio-opt input[type=radio]{display:none}.cable-run-radio-opt:hover{border-color:var(--border-light);background:var(--bg-panel-hover);color:var(--text-primary)}.cable-run-radio-opt--active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,var(--bg-input));color:var(--text-primary);font-weight:600}.cable-run-radio-label{display:flex;flex-direction:column;gap:.1rem}.cable-run-radio-desc{font-size:.68rem;font-weight:400;color:var(--text-muted)}.cable-run-radio-opt--active .cable-run-radio-desc{color:var(--text-secondary)}.cable-run-visual{display:grid;grid-template-columns:auto 1fr auto;border:1px solid var(--border);border-radius:8px;overflow:hidden}.cable-run-bay-box{display:flex;flex-direction:column;background:var(--bg-panel)}.cable-run-bay-box--left{border-right:1px solid var(--border)}.cable-run-bay-box--right{border-left:1px solid var(--border)}.cable-run-bay-box-header{height:36px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);background:var(--bg-input);white-space:nowrap}.cable-run-bay-box-header,.cable-run-breaker-row{display:flex;align-items:center;padding:0 .75rem;border-bottom:1px solid var(--border)}.cable-run-breaker-row{gap:.5rem;height:52px;min-width:120px}.cable-run-breaker-row:last-child{border-bottom:none}.cable-run-breaker-tag{font-size:.82rem;font-weight:600;color:var(--text-primary)}.cable-run-breaker-amp{font-size:.72rem;color:var(--text-secondary)}.cable-run-load-row{display:flex;align-items:center;height:52px;padding:0 .75rem;border-bottom:1px solid var(--border);font-size:.82rem;font-weight:600;color:var(--text-primary);white-space:nowrap}.cable-run-load-row:last-child{border-bottom:none}.cable-run-wires{display:flex;flex-direction:column;background:var(--bg-input)}.cable-run-wires-header{height:36px;border-bottom:1px solid var(--border)}.cable-run-wire-row{display:flex;align-items:center;height:52px;position:relative;padding:0 .5rem}.cable-run-wire-row--bordered{border-bottom:1px solid var(--border)}.cable-run-wire-row:before{content:"";position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);border-top:2px solid color-mix(in srgb,var(--accent) 55%,var(--border));z-index:0}.cable-run-htap-badge{flex-shrink:0;position:relative;z-index:1;background:var(--status-amber);color:#1a0d00;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:4px 8px;border-radius:4px;white-space:nowrap;margin-right:.25rem}.cable-run-wire{flex:1 1;display:flex;align-items:center;justify-content:center;position:relative;z-index:1}.cable-run-wire-label{padding:2px 10px;font-size:.76rem;font-weight:700;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border);border-radius:4px;white-space:nowrap;letter-spacing:.01em}.cable-run-wire-label--dim{color:var(--text-muted);font-weight:400}.cable-run-footer{display:flex;flex-direction:column;gap:.9rem}.cable-run-footage-row{display:flex;flex-wrap:wrap;gap:1rem 2rem}.cable-run-footage-field{display:flex;flex-direction:column;gap:.25rem}.cable-run-footage-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.cable-run-footage-input-wrap{display:flex;align-items:center;gap:.35rem}.cable-run-footage-input{width:90px;padding:.3rem .5rem;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.85rem;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.cable-run-footage-input::-webkit-inner-spin-button,.cable-run-footage-input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none}.cable-run-footage-input:focus{outline:none;border-color:var(--accent)}.cable-run-footage-unit{font-size:.78rem;color:var(--text-secondary)}.cable-run-summary-chip{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .75rem;padding:.45rem .9rem;border-radius:7px;font-size:.82rem;border:1px solid}.cable-run-summary-chip--ok{background:color-mix(in srgb,var(--status-green) 10%,var(--bg-input));border-color:color-mix(in srgb,var(--status-green) 25%,var(--border));color:var(--text-primary)}.cable-run-summary-chip--htap{background:color-mix(in srgb,var(--status-amber) 10%,var(--bg-input));border-color:color-mix(in srgb,var(--status-amber) 25%,var(--border));color:var(--text-primary)}.cable-run-summary-sep{color:var(--text-muted)}.cable-run-warning{font-size:.82rem;color:var(--text-primary);background:color-mix(in srgb,var(--status-amber) 12%,var(--bg-input));border:1px solid color-mix(in srgb,var(--status-amber) 35%,var(--border));border-radius:7px;padding:.5rem .85rem}.crg-grid{display:grid;grid-template-columns:110px 110px 1fr auto;border:1px solid var(--border);border-radius:8px;overflow:hidden}.crg-hdr{height:36px;display:flex;align-items:center;padding:0 .75rem;font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);background:var(--bg-input);border-bottom:1px solid var(--border);white-space:nowrap}.crg-hdr--run{height:auto;min-height:36px;flex-direction:column;align-items:flex-start;gap:.2rem}.crg-hdr--bay,.crg-hdr--run{border-right:1px solid var(--border)}.crg-hdr--bay{grid-column:span 2;justify-content:center}.crg-hdr--wire{justify-content:flex-end}.crg-hdr--bdfb{border-left:1px solid var(--border);justify-content:center}.crg-cell{display:flex;align-items:center;min-height:68px;padding:.5rem .75rem}.crg-cell--row-border{border-bottom:1px solid var(--border)}.crg-cell--run{background:var(--bg-panel);border-right:1px solid var(--border);padding:0;align-items:stretch}.crg-cell--breaker,.crg-cell--panel{background:var(--bg-panel);justify-content:center}.crg-cell--breaker{border-left:1px solid var(--border);border-right:1px solid var(--border)}.crg-cell--wire{background:var(--bg-input);padding:0;align-items:stretch}.crg-cell--bdfb{background:var(--bg-panel);border-left:1px solid var(--border);padding:0;align-items:stretch;min-width:72px}.crg-run-stack{display:flex;flex-direction:column;gap:.25rem}.crg-run-field{display:flex;align-items:center;gap:.3rem}.crg-run-lbl{font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary);width:32px;flex-shrink:0}.crg-run-field--htap .crg-run-lbl{color:var(--status-amber)}.crg-run-input{width:64px;padding:.2rem .4rem;background:var(--bg-input);border:1px solid var(--border);border-radius:5px;color:var(--text-primary);font-size:.82rem;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.crg-run-input::-webkit-inner-spin-button,.crg-run-input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none}.crg-run-input:focus{outline:none;border-color:var(--accent)}.crg-run-unit{font-size:.72rem;color:var(--text-muted)}.crg-add-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:.35rem .6rem;border:1px dashed var(--border-light);border-radius:6px;background:transparent;color:var(--text-muted);font-size:.78rem;cursor:pointer;transition:border-color .12s,color .12s,background .12s;white-space:nowrap}.crg-add-btn:hover{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.crg-selected-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:.4rem .5rem;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--border));border-radius:6px;background:color-mix(in srgb,var(--accent) 10%,var(--bg-input));color:var(--text-primary);font-size:.75rem;font-weight:600;cursor:pointer;text-align:center;white-space:normal;line-height:1.25;gap:.05rem;transition:background .12s}.crg-selected-btn:hover{background:color-mix(in srgb,var(--accent) 18%,var(--bg-input))}.crg-selected-static{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:.4rem .5rem;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--border));border-radius:6px;background:color-mix(in srgb,var(--accent) 10%,var(--bg-input));color:var(--text-primary);font-size:.75rem;font-weight:600;text-align:center;white-space:normal;line-height:1.25;gap:.05rem}.crg-dim-label{font-size:.78rem;color:var(--text-muted);font-style:italic}.crg-panel-cell-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;padding:.4rem .5rem;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--border));border-radius:6px;background:color-mix(in srgb,var(--accent) 10%,var(--bg-input));color:var(--text-primary);cursor:pointer;gap:.05rem;transition:background .12s}.crg-panel-cell-btn:hover{background:color-mix(in srgb,var(--accent) 18%,var(--bg-input))}.crg-panel-cell-btn--ghost{opacity:.45;border-style:dashed}.crg-panel-line{font-size:.75rem;font-weight:600;line-height:1.25;text-align:center}.crg-overlay-hint{font-size:.78rem;color:var(--text-secondary);margin:-.1rem 0 .4rem}.crg-panel-num{margin-top:.1rem}.crg-panel-num,.crg-panel-sub{font-size:.65rem;color:var(--text-secondary)}.crg-panel-sub{margin-top:.2rem;text-align:center;line-height:1.3;white-space:nowrap}.crg-panel-sub--ghost{font-style:italic}.crg-breaker-preset{flex-direction:column;justify-content:center;height:100%;padding:.4rem .5rem;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--border));border-radius:6px;background:color-mix(in srgb,var(--accent) 10%,var(--bg-input));gap:.05rem}.crg-breaker-preset,.crg-wire{display:flex;align-items:center;width:100%}.crg-wire{min-height:68px;position:relative;padding:0 .5rem}.crg-wire:before{content:"";position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);border-top:2px solid color-mix(in srgb,var(--accent) 55%,var(--border));z-index:0}.crg-wire-line{flex:1 1;position:relative;z-index:1}.crg-overlay,.crg-wire-line{display:flex;align-items:center;justify-content:center}.crg-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:1000}.crg-overlay-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:1.25rem;max-width:340px;width:90%;display:flex;flex-direction:column;gap:.45rem;box-shadow:0 8px 32px rgba(0,0,0,.45)}.crg-overlay-card--wide{max-width:520px}.crg-info-btn{background:none!important;border:none;color:var(--text-secondary);font-size:.95rem;cursor:pointer;padding:0;line-height:1;opacity:.7;border-radius:50%;transition:opacity .15s,color .15s;width:1.4rem;height:1.4rem;display:flex;align-items:center;justify-content:center}.crg-info-btn:hover{background:none!important;opacity:1;color:var(--status-blue,#4a9eff)}.crg-calc-formula{font-family:monospace;background:rgba(255,255,255,.04);border-radius:4px;padding:.3rem .5rem;margin:0 0 .5rem}.crg-calc-formula,.crg-calc-na{font-size:.75rem;color:var(--text-secondary)}.crg-calc-na{font-style:italic}.crg-overlay-card--calc{max-width:580px}.crg-calc-table{width:100%;border-collapse:collapse;font-size:.76rem;margin:0 0 .5rem}.crg-calc-table th{text-align:left;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);padding:.2rem .5rem .3rem;border-bottom:1px solid var(--border);white-space:nowrap}.crg-calc-table td{padding:.3rem .5rem;color:var(--text-primary);border-bottom:1px solid rgba(255,255,255,.04);white-space:nowrap}.crg-calc-td-load{font-weight:700;color:var(--text-secondary);width:2rem}.crg-calc-n--ok{color:var(--status-green,#4caf50)}.crg-overlay-title{font-size:.88rem;font-weight:600;color:var(--text-primary);margin:0 0 .35rem}.crg-overlay-opt{display:flex;flex-direction:column;gap:.1rem;width:100%;padding:.55rem .75rem;border:1px solid var(--border);border-radius:7px;background:var(--bg-input);cursor:pointer;text-align:left;transition:border-color .12s,background .12s}.crg-overlay-opt:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg-input))}.crg-overlay-opt--active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,var(--bg-input))}.crg-overlay-opt--dim{opacity:.4;cursor:not-allowed;pointer-events:none}.crg-overlay-opt-label{font-size:.82rem;font-weight:600;color:var(--text-primary)}.crg-overlay-opt-part{font-size:.68rem;color:var(--text-secondary);font-family:monospace}.crg-overlay-cancel{margin-top:.2rem;padding:.38rem;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);font-size:.82rem;cursor:pointer;transition:background .12s,color .12s}.crg-overlay-cancel:hover{background:var(--bg-hover);color:var(--text-primary)}.crg-run-warn{font-size:.72rem;color:var(--status-warning,#f0a830);margin:.1rem 0 .2rem;padding:0}.crg-run-overlay-btns{display:flex;gap:.5rem;margin-top:.2rem}.crg-overlay-save{padding:.38rem 1rem;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:.82rem;font-weight:600;cursor:pointer;transition:opacity .12s}.crg-overlay-save:disabled{opacity:.35;cursor:not-allowed}.crg-run-add-btn{width:26px;height:26px;padding:0;flex-shrink:0;align-self:center;border-radius:50%;border:1.5px solid var(--border);background:var(--bg-input);color:var(--text-secondary);font-size:1rem;line-height:1;cursor:pointer;position:relative;z-index:1;display:flex;align-items:center;justify-content:center;transition:border-color .12s,color .12s}.crg-run-add-btn:hover{border-color:var(--accent);color:var(--accent)}.crg-wire-label-clickable{cursor:pointer;border-color:transparent;transition:border-color .12s,color .12s}.crg-wire-label-clickable:hover{border-color:var(--accent);color:var(--accent)}.crg-run-price-diff{font-size:.68rem;color:var(--text-secondary);white-space:nowrap;align-self:center}.crg-run-overlay-fields{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.crg-run-overlay-row{display:flex;align-items:center;gap:.5rem}.crg-run-overlay-lbl{font-size:.8rem;color:var(--text-secondary);min-width:130px;flex-shrink:0;display:flex;align-items:center;gap:.3rem}.crg-run-overlay-sublbl{font-size:.72rem;color:var(--text-secondary);white-space:nowrap}.crg-run-overlay-row--calc{border-bottom:1px solid var(--border);padding-bottom:.5rem;margin-bottom:.1rem}.crg-calc-run-info{font-size:.72rem;color:var(--text-secondary);cursor:default;position:relative;display:inline-block}.crg-calc-run-info[data-tooltip]:after{content:attr(data-tooltip);position:absolute;top:calc(100% + 6px);left:0;background:var(--bg-panel,#1e2330);border:1px solid var(--border);color:var(--text-primary);font-size:.7rem;padding:.4rem .6rem;border-radius:6px;white-space:pre;width:max-content;max-width:320px;pointer-events:none;opacity:0;z-index:100;transition:opacity .15s}.crg-calc-run-info[data-tooltip]:hover:after{opacity:1}.crg-cable-options{display:flex;align-items:flex-start;gap:.5rem;margin-top:.15rem}.crg-cable-opts-row{display:flex;flex-wrap:wrap;gap:.35rem;flex:1 1}.crg-cable-opt-btn{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.3rem .6rem;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-secondary);cursor:pointer;min-width:80px}.crg-cable-opt-btn:hover{border-color:var(--accent);color:var(--text-primary);background:transparent!important}.crg-cable-opt-btn[data-tooltip]{position:relative}.crg-cable-opt-btn[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--bg-panel,#1e2330);border:1px solid var(--border);border-radius:6px;padding:.45rem .65rem;font-size:.72rem;color:var(--text-primary);white-space:pre;width:max-content;line-height:1.55;opacity:0;pointer-events:none;transition:opacity .15s;z-index:200;box-shadow:0 4px 16px rgba(0,0,0,.4);text-align:left}.crg-cable-opt-btn[data-tooltip]:hover:after{opacity:1}.crg-cable-opt-btn--active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,var(--bg-input))!important;color:var(--text-primary)}.crg-cable-opt-size{font-size:.78rem;font-weight:600}.crg-cable-opt-meta{font-size:.67rem;white-space:nowrap}.crg-cable-opt-btn--active .crg-cable-opt-meta,.crg-cable-opt-meta{color:var(--text-secondary)}.crg-cable-type-toggle{display:flex;gap:.25rem;margin-left:1.2rem}.crg-htap-override-toggle{margin-left:0}.crg-cable-type-btn{font-size:.7rem;padding:.2rem .5rem;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text-secondary);cursor:pointer;white-space:nowrap}.crg-cable-type-btn--active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,var(--bg-input));color:var(--text-primary);font-weight:500}.crg-run-overlay-sync{gap:.5rem;font-size:.82rem;color:var(--text-secondary);margin-bottom:.75rem}.crg-run-overlay-sync,.crg-sync-row{display:flex;align-items:center;cursor:pointer}.crg-sync-row{gap:.3rem}.crg-sync-check{width:12px;height:12px;cursor:pointer;accent-color:var(--accent);flex-shrink:0}.crg-sync-label{font-size:.64rem;color:var(--text-muted);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.crg-lane-pair{display:flex;flex-direction:column;width:100%;flex:1 1}.crg-lane-sep{height:1px;background:var(--border);flex-shrink:0}.crg-lane-section{flex:1 1;display:flex;flex-direction:column;justify-content:center;gap:.25rem;padding:.4rem .75rem}.crg-run-lbl--grd{color:var(--text-muted)}.crg-lane-wire{flex:1 1;display:flex;align-items:center;position:relative;padding:0 .5rem;min-height:46px}.crg-lane-wire:before{content:"";position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);z-index:0}.crg-lane-wire--grd:before,.crg-lane-wire--neg48:before{border-top:2px solid color-mix(in srgb,var(--accent) 55%,var(--border))}.crg-lane-wire--grd .crg-wire-line .cable-run-wire-label{position:absolute;top:50%;left:50%;transform:translate(-50%,calc(-100% - 3px))}.crg-lane-wire--htap{padding:0}.crg-lane-wire--htap:before{display:none}.crg-htap-line--near{left:0;width:28%;top:50%}.crg-htap-line--main,.crg-htap-line--near{position:absolute;height:2px;transform:translateY(-50%);background:color-mix(in srgb,var(--accent) 55%,var(--border));z-index:0}.crg-htap-line--main{left:18%;width:64%;top:calc(50% + 12px)}.crg-htap-line--main.crg-htap-line--extend-right{left:18%;right:0;width:auto}.crg-htap-line--main.crg-htap-line--extend-left{left:0;width:82%}.crg-htap-line--far{position:absolute;left:72%;right:0;top:50%;height:2px;transform:translateY(-50%);background:color-mix(in srgb,var(--accent) 55%,var(--border));z-index:0}.crg-htap-badge--left{left:23%}.crg-htap-badge--left,.crg-htap-badge--right{position:absolute;top:calc(50% + 6px);transform:translate(-50%,-50%);min-height:20px;display:flex;align-items:center;margin-right:0;z-index:2}.crg-htap-badge--right{left:77%}.crg-htap-lbl--near{left:11%;top:calc(50% - 3px)}.crg-htap-lbl--mid,.crg-htap-lbl--near{position:absolute;transform:translate(-50%,-100%);z-index:1}.crg-htap-lbl--mid{left:50%;top:calc(50% + 9px)}.crg-htap-lbl--far{position:absolute;left:89%;top:calc(50% - 3px);transform:translate(-50%,-100%);z-index:1}.crg-lane-bdfb{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.12rem;padding:.25rem .75rem}.crg-bdfb-load-name{font-size:.82rem;font-weight:600;color:var(--text-primary);white-space:nowrap}.crg-bdfb-panel-desc{font-size:.62rem;color:var(--text-muted);text-align:center;white-space:normal;line-height:1.25;max-width:110px}.crg-lane-bdfb--grd{font-size:.72rem;font-weight:400;color:var(--text-muted);font-style:italic}.bom-modal-box--wide{width:980px;height:calc(100vh - 100px);max-height:calc(100vh - 100px)}.bom-modal-box--cable-run{width:min(1240px,calc(100vw - 48px));height:calc(100vh - 80px);max-height:calc(100vh - 80px)}.it-wizard-breadcrumb{font-size:.78rem;color:var(--text-secondary);margin-bottom:.25rem}.it-wizard-breadcrumb strong{color:var(--text-primary)}.it-wizard-step-label{font-size:.74rem;color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-bottom:.5rem}.it-wizard-section-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:.4rem .5rem .2rem}.it-wizard-group-table{width:100%;border-collapse:collapse;font-size:.81rem}.it-wizard-group-table th{text-align:left;font-weight:600;font-size:.71rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:.3rem .5rem;border-bottom:1px solid var(--border)}.it-wizard-group-table td{padding:.35rem .5rem;border-bottom:1px solid var(--border);color:var(--text-primary);vertical-align:middle}.it-wizard-group-table tr:last-child td{border-bottom:none}.it-wizard-group-name-row td{background:color-mix(in srgb,var(--bg-panel) 70%,var(--bg-input));font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);padding:.3rem .5rem}.it-wizard-qty-cell{text-align:center}.it-wizard-qty-wrap{display:inline-flex;gap:.3rem}.it-wizard-qty-inc,.it-wizard-qty-wrap{align-items:center;justify-content:center}.it-wizard-qty-inc{width:24px;height:24px;display:flex;font-size:.9rem;font-weight:700;line-height:1;background:var(--bg-input);border:1px solid var(--border);border-radius:3px;color:var(--text-secondary);cursor:pointer;flex-shrink:0;padding:0}.it-wizard-qty-inc:hover{border-color:var(--accent);color:var(--accent)}.it-wizard-qty-input{width:60px;padding:.25rem .4rem;font-size:.82rem;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);color-scheme:dark;text-align:right;-moz-appearance:textfield}.it-wizard-qty-input::-webkit-inner-spin-button,.it-wizard-qty-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}[data-theme=light] .it-wizard-qty-input{color-scheme:light}.it-wizard-qty-input:focus{outline:none;border-color:var(--accent)}.it-wizard-review-count{font-size:.8rem;color:var(--text-secondary);margin-bottom:.5rem}.it-wizard-review-section{font-size:.82rem;color:var(--text-secondary);margin-bottom:.5rem}.it-wizard-review-section strong{color:var(--text-primary)}.it-wizard-section-list{display:flex;flex-direction:column;gap:.25rem;padding:.25rem 0}.it-wizard-section-row{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:4px;font-size:.85rem;cursor:pointer;border:1px solid transparent;color:var(--text-primary);background:none;text-align:left;width:100%}.it-wizard-section-row:hover{background:var(--bg-row)}.it-wizard-section-row--active{background:color-mix(in srgb,var(--accent) 12%,var(--bg-input));border-color:var(--accent);color:var(--text-primary)}.it-wizard-section-new-btn{display:flex;align-items:center;gap:.4rem;padding:.5rem .75rem;border-radius:4px;font-size:.85rem;cursor:pointer;border:1px dashed var(--border);color:var(--text-secondary);background:none;text-align:left;width:100%;margin-top:.25rem}.it-wizard-section-new-btn--active,.it-wizard-section-new-btn:hover{border-color:var(--accent);color:var(--accent)}.it-wizard-section-input{flex:1 1;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:.85rem;padding:.35rem .6rem}.it-wizard-section-input:focus{outline:none;border-color:var(--accent)}.it-admin-panels{display:grid;grid-template-columns:300px 400px 400px 1fr;grid-gap:0;gap:0;border:1px solid var(--border);border-radius:8px;height:calc(100vh - 180px);width:1770px;margin-top:1rem;overflow:hidden}.it-admin-panel{display:flex;flex-direction:column;border-right:1px solid var(--border);overflow:hidden;min-height:0}.it-admin-panel-header{display:flex;align-items:center;justify-content:space-between;padding:0 .75rem;height:2.1rem;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg-panel) 60%,var(--bg-input));flex-shrink:0;gap:.5rem;overflow:hidden}.it-admin-panel-title{font-size:.78rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1}.it-admin-panel-body{flex:1 1;min-height:0;overflow-y:auto;display:flex;flex-direction:column}.it-admin-list-row{display:flex;align-items:flex-start;gap:.2rem;padding:.4rem .75rem;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s;min-height:36px}.it-admin-list-row:last-child{border-bottom:none}.it-admin-list-row:hover{background:var(--bg-row)}.it-admin-list-row--active{background:color-mix(in srgb,var(--accent) 12%,var(--bg-input));border-left:2px solid var(--accent)}.it-admin-list-row-name{flex:1 1;font-size:.82rem;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.it-admin-model-label{flex:1 1;display:flex;flex-direction:column;gap:.1rem;overflow:hidden;min-width:0}.it-admin-model-label-desc{font-size:.8rem;color:var(--text-primary);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3}.it-admin-model-label-row2{display:flex;align-items:center;gap:.25rem}.it-admin-model-label-pn{font-size:.71rem;flex:1 1}.it-admin-list-row-meta,.it-admin-model-label-pn{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.it-admin-list-row-meta{font-size:.73rem;max-width:100px}.it-admin-row-btn{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:.73rem;padding:.15rem .25rem;border-radius:3px;line-height:1;transition:color .1s,background .1s;flex-shrink:0}.it-admin-row-btn:hover{color:var(--text-primary);background:var(--bg-row)}.it-admin-row-btn--danger:hover{color:var(--status-red);background:color-mix(in srgb,var(--status-red) 10%,transparent)}.it-admin-add-row{display:flex;gap:.4rem;padding:.5rem .75rem;border-top:1px solid var(--border);flex-shrink:0;align-items:center}.it-admin-add-input{flex:1 1;padding:.3rem .5rem;font-size:.81rem;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);color-scheme:dark}[data-theme=light] .it-admin-add-input{color-scheme:light}.it-admin-add-input:focus{outline:none;border-color:var(--accent)}.it-admin-add-btn{padding:.3rem .6rem;font-size:.79rem;background:color-mix(in srgb,var(--accent) 14%,var(--bg-input));color:var(--accent);border:1px solid var(--accent);border-radius:4px;cursor:pointer;white-space:nowrap;flex-shrink:0}.it-admin-add-btn:hover{opacity:.8}.it-admin-add-btn:disabled{opacity:.4;cursor:default}.it-admin-group-section{border-bottom:1px solid var(--border)}.it-admin-group-section:last-child{border-bottom:none}.it-admin-group-toggle{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:.65rem;padding:0 .1rem;flex-shrink:0;line-height:1}.it-admin-group-toggle:hover{color:var(--text-primary)}.it-admin-group-header{display:flex;align-items:center;gap:.3rem;padding:.35rem .75rem;background:color-mix(in srgb,var(--bg-panel) 75%,var(--bg-input));border-bottom:1px solid var(--border)}.it-admin-group-header,.it-admin-group-name-input{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.it-admin-group-name-input{flex:1 1;background:transparent;border:1px solid transparent;padding:.1rem .2rem;border-radius:3px;outline:none;cursor:text;min-width:0}.it-admin-group-name-input:focus{background:var(--bg-input);border-color:var(--accent);text-transform:none;letter-spacing:normal}.it-admin-group-item-row{display:flex;align-items:flex-start;gap:.4rem;padding:.28rem .75rem .28rem 1.1rem;font-size:.8rem;color:var(--text-primary);border-bottom:1px solid var(--border)}.it-admin-group-item-row:last-child{border-bottom:none}.it-admin-group-item-desc{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.it-admin-group-item-meta{font-size:.72rem;color:var(--text-secondary);white-space:nowrap}.it-admin-default-qty-input{width:55px;padding:.2rem .35rem;font-size:.79rem;background:var(--bg-input);border:1px solid var(--border);border-radius:3px;color:var(--text-primary);color-scheme:dark;text-align:right;-moz-appearance:textfield}.it-admin-default-qty-input::-webkit-inner-spin-button,.it-admin-default-qty-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}[data-theme=light] .it-admin-default-qty-input{color-scheme:light}.it-admin-default-qty-input:focus{outline:none;border-color:var(--accent)}.it-admin-picker-wrap{position:relative;flex:1 1;min-width:0}.it-admin-picker-input{width:100%;padding:.3rem .5rem;font-size:.8rem;background:var(--bg-input);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);color-scheme:dark;box-sizing:border-box}[data-theme=light] .it-admin-picker-input{color-scheme:light}.it-admin-picker-input:focus{outline:none;border-color:var(--accent)}.it-admin-picker-results{position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:100;background:var(--bg-panel);border:1px solid var(--border);border-radius:0 0 6px 6px;max-height:200px;overflow-y:auto;box-shadow:0 4px 16px rgba(0,0,0,.3)}.it-admin-picker-row{display:flex;flex-direction:column;gap:.05rem;padding:.35rem .6rem;cursor:pointer;border-bottom:1px solid var(--border);font-size:.79rem}.it-admin-picker-row:last-child{border-bottom:none}.it-admin-picker-row:hover{background:var(--bg-row)}.it-admin-picker-row-desc{color:var(--text-primary)}.it-admin-picker-row-meta{color:var(--text-secondary);font-size:.71rem}.it-admin-panel-placeholder{flex:1 1;display:flex;align-items:center;justify-content:center;font-size:.8rem;color:var(--text-muted);font-style:italic;padding:1.5rem;text-align:center}.it-admin-rename-input{flex:1 1;background:var(--bg-input);border:1px solid var(--accent);border-radius:3px;padding:.15rem .35rem;font-size:.82rem;color:var(--text-primary);outline:none;min-width:0}.it-admin-panels--4col{grid-template-columns:300px 400px 400px 400px 1fr;width:1770px}.it-admin-group-item-row--active{background:color-mix(in srgb,var(--accent) 10%,var(--bg-input))}.it-wizard-item-row--active td{background:color-mix(in srgb,var(--accent) 18%,var(--bg-input))}.it-wizard-item-row--active td:first-child{border-left:3px solid var(--accent)}.it-wizard-subgroup-header-row td{background:color-mix(in srgb,var(--accent) 8%,var(--bg-input));font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);padding:.3rem .5rem .3rem 1rem;border-top:1px solid color-mix(in srgb,var(--accent) 25%,var(--border));border-bottom:none}.it-wizard-subgroup-header-row td:first-child{border-left:3px solid var(--accent)}.it-wizard-subgroup-item-row.it-wizard-item-row--active td{background:color-mix(in srgb,var(--accent) 18%,var(--bg-input))}.it-wizard-subgroup-item-row.it-wizard-item-row--active td:first-child{border-left:3px solid var(--accent)}.it-wizard-subgroup-item-row td{background:color-mix(in srgb,var(--accent) 8%,var(--bg-input));border-bottom:1px solid color-mix(in srgb,var(--accent) 12%,var(--border))}.it-wizard-subgroup-item-row td:first-child{padding-left:1.25rem;border-left:3px solid color-mix(in srgb,var(--accent) 40%,var(--border))}.it-wizard-subgroup-item-row:last-of-type td{border-bottom:2px solid color-mix(in srgb,var(--accent) 20%,var(--border))}.it-admin-move-btn{padding:.1rem .3rem;font-size:.78rem;background:transparent;color:var(--text-muted);border:1px solid transparent;border-radius:3px;cursor:pointer;flex-shrink:0;line-height:1}.it-admin-move-btn:hover{border-color:var(--border);color:var(--accent)}.it-admin-group-select{font-size:.72rem;padding:.1rem .2rem;background:var(--bg-input);color:var(--text-secondary);border:1px solid var(--accent);border-radius:3px;cursor:pointer;flex-shrink:0}.it-admin-group-select:focus{outline:none}.it-admin-copy-btn{padding:.2rem .5rem;font-size:.74rem;background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:4px;cursor:pointer}.it-admin-copy-btn:hover{border-color:var(--accent);color:var(--accent)}.it-copy-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:400}.it-copy-modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;width:420px;display:flex;flex-direction:column}.it-copy-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border);font-weight:600;font-size:.88rem}.it-copy-modal-body{flex-direction:column;max-height:360px;overflow-y:auto}.it-copy-modal-body,.it-copy-modal-footer{padding:.75rem 1rem;display:flex;gap:.5rem}.it-copy-modal-footer{justify-content:flex-end;border-top:1px solid var(--border)}.it-copy-group-row,.it-copy-model-row{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;border-radius:4px;font-size:.82rem;cursor:pointer}.it-copy-group-row:hover,.it-copy-model-row:hover{background:var(--bg-row)}.it-copy-section-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-top:.5rem}.it-copy-select-all{font-size:.76rem;color:var(--accent);background:none;border:none;cursor:pointer;padding:0}.it-admin-panel--ghost{border-left:1px solid var(--border);background:transparent;pointer-events:none}.it-admin-panel--ghost .it-admin-panel-header{pointer-events:all}.it-info-icon-btn{background:none;border:none;cursor:pointer;font-size:1.35rem;font-weight:700;color:var(--text-secondary);padding:0;line-height:1}.it-info-icon-btn:hover{color:var(--accent)}.it-info-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:400}.it-info-modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;width:480px;max-width:90vw;display:flex;flex-direction:column}.it-info-modal-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border);font-weight:600;font-size:.88rem}.it-info-modal-body{padding:.75rem 1rem;font-size:.81rem;color:var(--text-secondary);line-height:1.6}.it-info-modal-body strong{color:var(--text-primary)}.it-info-hierarchy{display:flex;flex-direction:column;gap:.2rem;margin:.5rem 0 .5rem .5rem;font-family:monospace;font-size:.79rem}.kit-admin-panels{display:grid;grid-template-columns:300px 400px 1fr;grid-gap:0;gap:0;height:100%;overflow:hidden}.kit-part-number-badge{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.05em;font-family:monospace;padding:.12rem .4rem;background:color-mix(in srgb,var(--accent) 14%,var(--bg-input));border:1px solid var(--accent);border-radius:3px;color:var(--accent);white-space:nowrap}.kit-panel3-header{display:flex;align-items:center;gap:.5rem;padding:.45rem .75rem;border-bottom:1px solid var(--border);background:var(--bg-row);flex-shrink:0}.kit-panel3-name{font-weight:600;font-size:.88rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kit-panel3-total{margin-left:auto;font-size:.85rem;color:var(--accent);font-weight:700;white-space:nowrap}.kit-items-table{width:100%;border-collapse:collapse;font-size:.8rem}.kit-items-table th{position:-webkit-sticky;position:sticky;top:0;z-index:1;text-align:left;padding:.35rem .5rem;border-bottom:1px solid var(--border);background:var(--bg-panel);color:var(--text-secondary);font-weight:600;font-size:.73rem;letter-spacing:.03em;white-space:nowrap}.kit-items-table th.right{text-align:right}.kit-items-table td{padding:.3rem .5rem;border-bottom:1px solid var(--border-subtle);vertical-align:middle;color:var(--text-primary)}.kit-items-table td.right{text-align:right}.kit-items-table tbody tr:hover td{background:var(--bg-row)}.kit-items-table tfoot td{font-weight:600;border-top:2px solid var(--border);border-bottom:none;padding-top:.45rem}.kit-admin-panels .it-admin-panel:last-child .it-admin-add-row .it-admin-picker-results{top:auto;bottom:calc(100% + 2px)}.kit-qty-input{width:54px;text-align:center;padding:.15rem .25rem;font-size:.8rem;background:var(--bg-input);border:1px solid var(--border);border-radius:3px;color:var(--text-primary);outline:none}.kit-qty-input:focus{border-color:var(--accent)}.materials-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.materials-revision-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.materials-revision-select{background:var(--bg-input);border:1px solid var(--border);border-radius:5px;color:var(--text-primary);font-size:.8rem;padding:.25rem .5rem;outline:none}.materials-revision-select:focus{border-color:var(--accent)}.materials-bom-meta{font-size:.75rem;color:var(--text-muted);margin-left:auto}.materials-bom-scroll{overflow-x:auto;overflow-y:auto;max-height:70vh;border:1px solid var(--border);border-radius:6px}.materials-bom-table{width:100%;border-collapse:collapse;font-size:.8rem;table-layout:auto}.materials-bom-table td,.materials-bom-table th{padding:.35rem .65rem;border-bottom:1px solid var(--border);white-space:nowrap}.materials-bom-table th{position:-webkit-sticky;position:sticky;top:0;background:var(--bg-panel);color:var(--text-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600;text-align:left;z-index:1}.materials-bom-table td.right,.materials-bom-table th.right{text-align:right}.materials-bom-table td.materials-desc{white-space:normal;min-width:220px;max-width:360px}.materials-bom-table tbody tr:hover td{background:var(--bg-hover)}.materials-group-row td{background:rgba(59,130,246,.1);font-weight:700;font-size:.72rem;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em;padding:.3rem .65rem;border-bottom:1px solid var(--border)}.materials-empty{padding:2.5rem 1rem;text-align:center;color:var(--text-muted);font-size:.85rem}body.light .materials-bom-table th{background:#f8fafc}body.light .materials-group-row td{background:rgba(59,130,246,.08);color:#1e293b}.bom-modal-overlay{gap:1rem}.bom-preview-panel{width:290px;height:calc(100vh - 100px);flex-shrink:0;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;overflow:hidden}.bom-preview-header{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1rem;border-bottom:1px solid var(--border);flex-shrink:0}.bom-preview-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary)}.bom-preview-count,.bom-preview-loading{font-size:.7rem;color:var(--text-muted)}.bom-preview-loading{font-style:italic}.bom-preview-list{flex:1 1;overflow-y:auto;padding:.35rem 0}.bom-preview-empty{display:block;padding:1rem;font-size:.74rem;color:var(--text-muted);font-style:italic;text-align:center}@keyframes bom-preview-flash{0%{background:color-mix(in srgb,var(--accent) 28%,transparent)}to{background:transparent}}.bom-preview-row{display:flex;align-items:baseline;gap:.5rem;padding:.22rem 1rem}.bom-preview-row:hover{background:rgba(255,255,255,.03)}.bom-preview-row--flash{animation:bom-preview-flash 3.5s ease-out forwards}.bom-preview-qty{font-size:.72rem;font-weight:700;color:var(--accent);min-width:1.6rem;text-align:right;flex-shrink:0;display:inline-block}@keyframes bom-preview-qty-bounce{0%{transform:scale(1)}25%{transform:scale(1.55)}55%{transform:scale(.88)}75%{transform:scale(1.18)}to{transform:scale(1)}}.bom-preview-qty--bounce{animation:bom-preview-qty-bounce .45s ease-out forwards}.bom-preview-desc{font-size:.72rem;color:var(--text-primary);line-height:1.35}body.light .materials-revision-select{background:#fff;border-color:#cbd5e1;color:#1e293b}