:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #007bff;--secondary-color: #6c757d;--success-color: #28a745;--warning-color: #ffc107;--danger-color: #dc3545;--info-color: #17a2b8;--light-bg: #f8f9fa;--border-color: #dee2e6}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--light-bg)}.app{min-height:100vh;display:flex;flex-direction:column}.navbar{background-color:#fff;box-shadow:0 2px 4px #0000001a;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;gap:2rem}.nav-brand h2{color:var(--primary-color);font-size:1.5rem}.nav-links{display:flex;gap:.5rem;flex:1}.nav-link{text-decoration:none;color:var(--secondary-color);padding:.5rem 1rem;border-radius:4px;transition:all .3s;font-weight:500}.nav-link:hover{background-color:var(--light-bg);color:var(--primary-color)}.nav-link.active{background-color:var(--primary-color);color:#fff}.nav-actions{display:flex;gap:.5rem}.nav-actions .btn-primary{background-color:var(--success-color);color:#fff;padding:.5rem 1rem;border-radius:4px;text-decoration:none;font-weight:500;transition:all .3s}.nav-actions .btn-primary:hover{background-color:#218838}.main-content{flex:1;padding:2rem;width:100%}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-header h1{font-size:2rem;color:#333}.page-header button{padding:.5rem 1rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s}.page-header button:hover:not(:disabled){background-color:#0056b3}.page-header button:disabled{opacity:.6;cursor:not-allowed}.filters{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{font-weight:600;color:#555;font-size:.9rem}.filter-group input,.filter-group select{padding:.5rem;border:1px solid var(--border-color);border-radius:4px;font-size:1rem;min-width:200px}.device-count{margin-bottom:1rem;color:#666;font-size:.9rem}.device-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.loading,.no-devices{text-align:center;padding:3rem;color:#666;font-size:1.1rem}.device-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden;transition:transform .3s,box-shadow .3s}.device-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.device-card-header{padding:1rem;background-color:var(--light-bg);display:flex;justify-content:space-between;align-items:center}.device-card-header h3{font-size:1.2rem;color:#333}.status-badge{padding:.25rem .75rem;border-radius:20px;color:#fff;font-size:.85rem;font-weight:600}.device-card-body{padding:1rem}.device-info{margin-bottom:.75rem}.device-info strong{display:block;margin-bottom:.25rem;color:#555;font-size:.9rem}.config-badges{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.25rem}.config-badge{background-color:var(--info-color);color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.8rem}.btn-link{background:none;border:none;color:var(--primary-color);cursor:pointer;text-decoration:underline;margin-left:.5rem;font-size:.85rem}.btn-link:hover{color:#0056b3}.qa-notes{margin-top:.25rem;color:#666;font-size:.9rem;white-space:pre-wrap}.device-dates{display:flex;justify-content:space-between;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border-color)}.device-dates small{color:#999;font-size:.8rem}.device-card-footer{padding:1rem;background-color:var(--light-bg);border-top:1px solid var(--border-color)}.status-select{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;font-size:.9rem;background-color:#fff;cursor:pointer}.order-form{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;max-width:600px}.order-form h2{margin-bottom:1.5rem;color:#333}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#555}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:4px;font-size:1rem;font-family:inherit}.form-group textarea{resize:vertical}.checkbox-group{display:flex;align-items:center}.checkbox-group label{display:flex;align-items:center;cursor:pointer;font-weight:400}.checkbox-group input[type=checkbox]{width:auto;margin-right:.5rem;cursor:pointer}.order-form button[type=submit]{width:100%;padding:.75rem;background-color:var(--success-color);color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .3s}.order-form button[type=submit]:hover:not(:disabled){background-color:#218838}.order-form button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.error-message{background-color:#f8d7da;color:#721c24;padding:1rem;border-radius:4px;margin-bottom:1rem;border:1px solid #f5c6cb}@media(max-width:768px){.navbar{flex-direction:column;gap:1rem}.device-grid{grid-template-columns:1fr}.filters{flex-direction:column}.filter-group input,.filter-group select{min-width:100%}}.header-actions{display:flex;gap:.5rem;align-items:center}.view-toggle{display:flex;gap:0;border:1px solid var(--border-color);border-radius:4px;overflow:hidden}.btn-view{background:#fff;border:none;padding:.5rem .75rem;cursor:pointer;color:#666;font-size:1.2rem;transition:background-color .3s,color .3s;border-right:1px solid var(--border-color)}.btn-view:last-child{border-right:none}.btn-view:hover{background-color:var(--light-bg)}.btn-view.active{background-color:var(--primary-color);color:#fff}.part-card,.subassembly-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden;transition:transform .3s,box-shadow .3s;display:flex;flex-direction:column;height:100%}.part-card:hover,.subassembly-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.part-card-header,.subassembly-card-header{padding:1rem;background-color:var(--light-bg)}.part-header-content{display:flex;flex-direction:column;gap:.5rem}.part-title-row{display:flex;align-items:flex-start;gap:.5rem;min-height:2.5rem}.part-title-row h3{flex:1;min-width:0}.part-meta-row{display:flex;align-items:center;gap:.5rem}.part-card-header h3,.subassembly-card-header h3{font-size:1.2rem;color:#333;margin:0}.part-number,.assembly-number{font-size:.85rem;color:#666;font-family:monospace;font-weight:500}.part-card-body,.subassembly-card-body{padding:1rem;flex:1;display:flex;flex-direction:column}.part-info,.subassembly-info{margin-bottom:.75rem}.part-info strong,.subassembly-info strong{display:block;margin-bottom:.25rem;color:#555;font-size:.9rem}.part-info p,.subassembly-info p,.part-info span,.subassembly-info span,.part-info small,.subassembly-info small{color:#333;margin:0;line-height:1.5}.sentinel-types,.type-badge{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.25rem}.type-badge{background-color:var(--info-color);color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.8rem}.low-stock{color:var(--danger-color);font-weight:600}.warning-badge{background-color:var(--warning-color);color:#333;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;margin-left:.5rem}.vendor-urls{list-style:none;margin-top:.5rem}.vendor-urls li{margin-bottom:.25rem}.vendor-urls a{color:var(--primary-color);text-decoration:none}.vendor-urls a:hover{text-decoration:underline}.parts-list ul{list-style:none;margin-top:.5rem}.parts-list li{padding:.25rem 0;display:flex;justify-content:space-between}.part-quantity{font-weight:600;color:#666}.part-dates,.subassembly-dates{display:flex;justify-content:space-between;margin-top:auto;padding-top:.75rem;border-top:1px solid var(--border-color)}.part-dates small,.subassembly-dates small{color:#999;font-size:.8rem}.part-card-footer,.subassembly-card-footer{padding:1rem;background-color:var(--light-bg);border-top:1px solid var(--border-color);margin-top:auto}.part-form,.form-container{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;max-width:700px}.checkbox-label{display:flex;align-items:center;margin-right:1rem;margin-bottom:.5rem;cursor:pointer}.checkbox-label input{margin-right:.5rem;cursor:pointer}.error-text{color:var(--danger-color);font-size:.85rem;display:block;margin-top:.25rem}.vendor-url-input{display:flex;gap:.5rem;margin-bottom:.5rem}.vendor-url-input input{flex:1}.btn-remove{background-color:var(--danger-color);color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer}.btn-remove:hover:not(:disabled){background-color:#c82333}.btn-remove:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background-color:var(--secondary-color);color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:background-color .3s}.btn-secondary:hover{background-color:#545b62}.form-actions{display:flex;gap:.5rem;margin-top:1.5rem}.btn-primary{background-color:var(--primary-color);color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:background-color .3s;font-weight:500}.btn-primary:hover:not(:disabled){background-color:#0056b3}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.parts-grid,.subassemblies-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.subassemblies-count{margin-bottom:1rem;color:#666;font-size:.9rem}.no-subassemblies{text-align:center;padding:3rem;color:#666;font-size:1.1rem}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:8px;padding:1.5rem;max-width:500px;width:90%;box-shadow:0 4px 20px #0003}.modal h3{margin-top:0;margin-bottom:.5rem;color:#333}.modal p{color:#666;margin-bottom:1rem}.modal textarea{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:4px;font-size:1rem;font-family:inherit;resize:vertical;box-sizing:border-box}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.order-notes{margin-top:.25rem;color:#666;font-size:.9rem;white-space:pre-wrap}.quantity-adjust{display:flex;align-items:center;gap:.25rem;margin-top:.5rem}.quantity-input{width:60px;padding:.25rem .5rem;border:1px solid var(--border-color);border-radius:4px;text-align:center;font-size:.9rem}.btn-adjust{width:32px;height:32px;border:none;border-radius:4px;cursor:pointer;font-size:1.2rem;font-weight:700;display:flex;align-items:center;justify-content:center}.btn-minus{background-color:var(--danger-color);color:#fff}.btn-minus:hover:not(:disabled){background-color:#c82333}.btn-plus{background-color:var(--success-color);color:#fff}.btn-plus:hover{background-color:#218838}.btn-adjust:disabled{opacity:.5;cursor:not-allowed}.device-types-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:1.5rem}.device-types-count{margin-bottom:1rem;color:#666;font-size:.9rem}.no-device-types{text-align:center;padding:3rem;color:#666;font-size:1.1rem}.device-type-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden;transition:transform .3s,box-shadow .3s}.device-type-card.inactive{opacity:.7}.device-type-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.device-type-card-header{padding:1rem;background-color:var(--light-bg);display:flex;justify-content:space-between;align-items:flex-start}.device-type-card-header h3{font-size:1.2rem;color:#333;margin:0}.revision-badge{font-size:.8rem;color:#666;background-color:#fff;padding:.15rem .5rem;border-radius:4px;margin-top:.25rem;display:inline-block}.status-badge.active{background-color:var(--success-color)}.status-badge.inactive{background-color:var(--secondary-color)}.device-type-card-body{padding:1rem}.device-type-info{margin-bottom:.75rem}.device-type-info strong{display:block;margin-bottom:.25rem;color:#555;font-size:.9rem}.bom-list{list-style:none;margin:.5rem 0 0;padding:0}.bom-list li{display:flex;justify-content:space-between;padding:.35rem 0;border-bottom:1px solid var(--border-color)}.bom-list li:last-child{border-bottom:none}.bom-list .part-number{font-weight:600;color:var(--primary-color);min-width:100px}.bom-list .part-name{flex:1;color:#666;margin:0 .5rem}.bom-list .part-qty{font-weight:600;color:#333}.device-type-dates{display:flex;justify-content:space-between;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border-color)}.device-type-dates small{color:#999;font-size:.8rem}.device-type-card-footer{padding:1rem;background-color:var(--light-bg);border-top:1px solid var(--border-color);display:flex;gap:.5rem}.btn-warning{background-color:var(--warning-color);color:#333;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:background-color .3s}.btn-warning:hover{background-color:#e0a800}.btn-success{background-color:var(--success-color);color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:background-color .3s}.btn-success:hover{background-color:#218838}.part-selector select{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;font-size:1rem;margin-bottom:1rem}.selected-parts-list{list-style:none;padding:0;margin:0}.selected-parts-list li{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background-color:var(--light-bg);border-radius:4px;margin-bottom:.5rem}.selected-parts-list .part-info{flex:1}.part-quantity-control{display:flex;align-items:center;gap:.5rem}.part-quantity-control input{width:60px;padding:.25rem;text-align:center}.btn-remove-small{background-color:var(--danger-color);color:#fff;border:none;padding:.25rem .5rem;border-radius:4px;cursor:pointer;font-size:.85rem}.btn-remove-small:hover{background-color:#c82333}.no-parts-selected{color:#666;font-style:italic;padding:1rem;background-color:var(--light-bg);border-radius:4px;text-align:center}.help-text{display:block;color:#666;font-size:.85rem;margin-top:.25rem}.low-stock-alert{background-color:#fff3cd;border:1px solid #ffc107;border-radius:8px;padding:1rem 1.5rem;margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center}.alert-content{display:flex;align-items:center;gap:.75rem;color:#856404}.alert-content span,.alert-content strong{color:#856404}.alert-icon{font-size:1.5rem}.low-stock-report-header{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.low-stock-report-header h2{margin:0 0 .5rem;color:#721c24}.low-stock-report-header p{margin:0 0 1rem;color:#721c24}.category-badge{display:inline-block;background-color:var(--info-color);color:#fff;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;white-space:nowrap;flex-shrink:0}.eco-link{padding-top:.5rem;border-top:1px solid var(--border-color)}.part-card-footer{display:flex;gap:.5rem;padding:1rem;background-color:var(--light-bg);border-top:1px solid var(--border-color)}.ecos-list-page{padding:0}.ecos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:1.5rem}.eco-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden;transition:transform .3s,box-shadow .3s;cursor:pointer}.eco-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.eco-card-header{padding:1rem;background-color:var(--light-bg);display:flex;justify-content:space-between;align-items:flex-start}.eco-number{font-size:.85rem;color:var(--primary-color);font-weight:600;display:block;margin-bottom:.25rem}.eco-card-header h3{font-size:1.1rem;color:#333;margin:0}.eco-status-badge{padding:.25rem .75rem;border-radius:20px;color:#fff;font-size:.8rem;font-weight:600;white-space:nowrap}.eco-card-body{padding:1rem}.eco-info{margin-bottom:.75rem}.eco-info strong{display:block;margin-bottom:.25rem;color:#555;font-size:.9rem}.eco-info p{margin:0;color:#666;font-size:.9rem}.part-count{background-color:var(--light-bg);padding:.25rem .5rem;border-radius:4px;font-size:.85rem;color:#666}.eco-dates{display:flex;justify-content:space-between;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border-color)}.eco-dates small{color:#999;font-size:.8rem}.eco-card-footer{padding:1rem;background-color:var(--light-bg);border-top:1px solid var(--border-color)}.eco-form{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;max-width:700px}.modal-content{background:#fff;border-radius:8px;max-width:500px;width:90%;box-shadow:0 4px 20px #0003;overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background-color:var(--light-bg);border-bottom:1px solid var(--border-color)}.modal-header h2{margin:0;font-size:1.25rem;color:#333}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:0;line-height:1}.modal-close:hover{color:#333}.modal-body{padding:1.5rem}.revision-info,.part-info-summary{background-color:var(--light-bg);padding:1rem;border-radius:4px;margin-bottom:1rem}.revision-info p,.part-info-summary p{margin:.25rem 0;color:#333}.warning-text{color:var(--warning-color);font-size:.9rem}.error-banner{background-color:#f8d7da;color:#721c24;padding:.75rem 1rem;border-radius:4px;margin-bottom:1rem;border:1px solid #f5c6cb}.empty-state{text-align:center;padding:3rem;color:#666;font-size:1.1rem}.filter-select{padding:.5rem;border:1px solid var(--border-color);border-radius:4px;font-size:1rem;min-width:200px}.parts-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.parts-table{width:100%;border-collapse:collapse}.parts-table thead{background-color:var(--light-bg);border-bottom:2px solid var(--border-color)}.parts-table th{padding:1rem;text-align:left;font-weight:600;color:#555;font-size:.9rem;white-space:nowrap}.parts-table tbody tr{border-bottom:1px solid var(--border-color);transition:background-color .2s}.parts-table tbody tr:hover{background-color:var(--light-bg)}.parts-table tbody tr:last-child{border-bottom:none}.parts-table td{padding:1rem;color:#333;font-size:.9rem}.parts-table .part-number-cell{font-family:monospace;font-weight:600;color:var(--primary-color)}.parts-table .part-name-cell{font-weight:500}.parts-table .category-cell{color:#666}.parts-table .quantity-cell{font-weight:600;text-align:center}.parts-table .reorder-cell{color:#666;text-align:center}.parts-table .description-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#666}.parts-table .actions-cell{text-align:right;white-space:nowrap}.parts-table .low-stock-row{background-color:#fff3cd}.parts-table .low-stock-row:hover{background-color:#ffe8a1}.warning-badge-inline{margin-left:.5rem;font-size:.9rem}.btn-table{border:none;padding:.35rem .6rem;border-radius:4px;cursor:pointer;font-size:.9rem;margin-left:.25rem;transition:opacity .3s}.btn-table:hover{opacity:.8}.btn-table.btn-primary{background-color:var(--primary-color);color:#fff;font-weight:700;font-size:1.1rem}.btn-table.btn-secondary{background-color:var(--secondary-color);color:#fff}
