:root{--bg:#f6f7f9;--surface:#fff;--text:#1c2330;--muted:#6a7384;--border:#dde1e8;--accent:#2557d6;--accent-text:#fff;--danger:#c4302b;--row-hover:#f1f4fa;--draft-bg:#fff4d6;--draft-fg:#8a5a00;--released-bg:#dcf5e3;--released-fg:#17693a;--obsolete-bg:#eceef2;--obsolete-fg:#687083;--added-bg:#e6f6ea;--removed-bg:#fdeceb;--changed-bg:#fff7e0;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#12151b;--surface:#1a1f28;--text:#e3e7ee;--muted:#8e97a8;--border:#2e3542;--accent:#5c8bff;--accent-text:#0b1020;--danger:#ff6b63;--row-hover:#222936;--draft-bg:#3d3112;--draft-fg:#ffcf6b;--released-bg:#143523;--released-fg:#7be0a1;--obsolete-bg:#2a303b;--obsolete-fg:#9aa3b4;--added-bg:#15301e;--removed-bg:#3a1b1a;--changed-bg:#352d14;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;font-size:1.5rem;display:flex}h2{margin:0 0 .6rem;font-size:1.1rem}h3{margin:0 0 .5rem;font-size:.95rem}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;align-items:center;gap:1.5rem;padding:.7rem 1.5rem;display:flex;position:sticky;top:0}.brand{color:var(--text);font-size:1.05rem;font-weight:700}.topbar nav{gap:.25rem;display:flex}.topbar nav a{color:var(--muted);border-radius:6px;padding:.35rem .75rem}.topbar nav a.active{background:var(--row-hover);color:var(--text);font-weight:600}.topbar nav a:hover{color:var(--text);text-decoration:none}.user{color:var(--muted);margin-left:auto;font-size:.85rem}main{max-width:1280px;margin:0 auto;padding:1.5rem}section{margin-top:1.75rem}.page-head,.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.section-head h2{margin:0}.crumbs{color:var(--muted);margin-bottom:.3rem;font-size:.85rem}.subtitle{margin:-.25rem 0 .75rem}.muted{color:var(--muted)}.pre{white-space:pre-wrap}.nowrap{white-space:nowrap}.pn{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-weight:600}.empty{color:var(--muted);padding:1rem 0}td.empty{text-align:center;padding:1.5rem}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:.4rem .85rem}button:hover:not(:disabled){border-color:var(--muted)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.danger{color:var(--danger)}button.icon{background:0 0;border:none;padding:0 .4rem;font-size:1.4rem;line-height:1}.actions{justify-content:flex-end;gap:.5rem;display:flex}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px;width:100%;padding:.4rem .55rem}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}input:disabled{opacity:.6}input.narrow{width:5.5rem}input[type=checkbox]{width:auto}.search{max-width:520px;margin-bottom:1rem}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:.5rem .6rem}th{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:var(--bg);font-size:.78rem;font-weight:600}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--row-hover)}.num{text-align:right;font-variant-numeric:tabular-nums}tr.assy-row td{font-weight:600}tr.editing td{background:var(--row-hover)}.row-actions{white-space:nowrap;text-align:right}.row-actions button{margin-left:.3rem;padding:.2rem .55rem}.badge{text-transform:uppercase;letter-spacing:.03em;vertical-align:middle;border-radius:999px;padding:.1rem .45rem;font-size:.72rem;font-weight:600;display:inline-block}.badge.draft{background:var(--draft-bg);color:var(--draft-fg)}.badge.released{background:var(--released-bg);color:var(--released-fg)}.badge.obsolete{background:var(--obsolete-bg);color:var(--obsolete-fg)}.badge.diff.added{background:var(--released-bg);color:var(--released-fg)}.badge.diff.removed{background:var(--removed-bg);color:var(--danger)}.badge.diff.changed{background:var(--draft-bg);color:var(--draft-fg)}tr.diff-added td{background:var(--added-bg)}tr.diff-removed td{background:var(--removed-bg)}tr.diff-changed td{background:var(--changed-bg)}.tag{color:var(--muted);border:1px solid var(--border);border-radius:4px;margin-left:.4rem;padding:0 .3rem;font-size:.72rem;font-weight:400}.rev-link{align-items:center;gap:.35rem;display:inline-flex}.rev-pills{flex-wrap:wrap;gap:.35rem;margin-bottom:1rem;display:flex}.pill{border:1px solid var(--border);color:var(--text);background:var(--surface);border-radius:999px;align-items:center;gap:.35rem;padding:.15rem .6rem;font-weight:600;display:inline-flex}.pill.active{border-color:var(--accent);color:var(--accent)}.pill:hover{border-color:var(--muted);text-decoration:none}.dot{border-radius:50%;width:.5rem;height:.5rem;display:inline-block}.dot.draft{background:var(--draft-fg)}.dot.released{background:var(--released-fg)}.dot.obsolete{background:var(--obsolete-fg)}.tabs{border-bottom:1px solid var(--border);gap:.25rem;margin-bottom:1rem;display:flex}.tabs button{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:.5rem .9rem}.tabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.segmented{display:inline-flex}.segmented button{border-radius:0}.segmented button:first-child{border-radius:6px 0 0 6px}.segmented button:last-child{border-left:none;border-radius:0 6px 6px 0}.segmented button[aria-pressed=true]{background:var(--row-hover);font-weight:600}.total{font-size:1rem}.warn{color:var(--draft-fg);font-size:.85rem}.inline-label{align-items:center;gap:.5rem;display:flex}.inline-label select{width:auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem}.props{grid-template-columns:max-content 1fr;gap:.4rem 1.5rem;margin:0;display:grid}.props dt{color:var(--muted)}.props dd{margin:0}.form-grid{grid-template-columns:1fr 1fr;gap:.8rem 1rem;display:grid}.form-grid label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.form-grid label.check{color:var(--text);flex-direction:row;align-items:center;gap:.5rem}.span-2{grid-column:span 2}.add-line{margin-top:1rem}.add-line-fields{flex-wrap:wrap;align-items:flex-end;gap:.6rem;display:flex}.add-line-fields label{color:var(--muted);flex-direction:column;gap:.2rem;font-size:.8rem;display:flex}.add-line-fields label.grow{flex:1;min-width:180px}.error{background:var(--removed-bg);color:var(--danger);border-radius:6px;margin:.5rem 0;padding:.55rem .8rem}.error.inline{padding:.2rem .4rem;font-size:.8rem}.notice{background:var(--changed-bg);border-radius:6px;padding:.55rem .8rem}.modal-backdrop{z-index:20;background:#00000059;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:10px;width:min(640px,100%);max-height:90vh;padding:1.25rem 1.5rem;overflow:auto;box-shadow:0 10px 40px #00000040}.modal-head{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.modal-head h2{margin:0}@media (width<=640px){.topbar{flex-wrap:wrap;gap:.5rem 1rem;padding:.6rem 1rem}main{padding:1rem}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}}.rev{color:var(--muted);font-size:1.1rem;font-weight:600}.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.9em}.small{font-size:.8rem}.count{margin:0 0 .5rem;font-size:.85rem}.refdes{overflow-wrap:anywhere;min-width:9rem;max-width:22rem;font-size:.85rem}.filters{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.filters select{width:auto}.filters .search{flex:1;min-width:240px;margin:0}.badge.phase{background:var(--obsolete-bg);color:var(--obsolete-fg);text-transform:none;letter-spacing:0}.badge.phase-production{background:var(--released-bg);color:var(--released-fg)}.badge.phase-preliminary,.badge.phase-design{background:var(--draft-bg);color:var(--draft-fg)}.tag.warn-tag{color:var(--draft-fg);border-color:var(--draft-fg)}tr.alt-row td{color:var(--muted);font-style:italic}button.link{color:var(--accent);background:0 0;border:none;padding:0 .3rem;font-size:.8rem}button.link:hover{text-decoration:underline}a.button{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:.4rem .85rem;display:inline-block}a.button:hover{border-color:var(--muted);text-decoration:none}label.check{align-items:center;gap:.5rem;display:flex}.inline-form{gap:.5rem;max-width:520px;margin-top:1rem;display:flex}.narrow-table{max-width:720px}.user .tag{margin-left:.5rem}.part-header{align-items:flex-start;gap:1.25rem;display:flex}.part-header-main{flex:1;min-width:0}.part-image{flex-direction:column;flex:0 0 160px;gap:.25rem;display:flex}.part-image img{object-fit:contain;border:1px solid var(--border);background:#fff;border-radius:8px;width:160px;height:160px;display:block}.image-placeholder{border:2px dashed var(--border);background:var(--surface);width:160px;height:160px;color:var(--muted);border-radius:8px}.image-placeholder:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.image-actions{gap:.25rem;display:flex}.image-actions button.link{margin-right:.5rem;padding:0}button.link.danger{color:var(--danger)}th.thumb,td.thumb{width:48px;padding:.25rem .4rem}td.thumb img{object-fit:contain;border:1px solid var(--border);background:#fff;border-radius:4px;width:40px;height:40px;display:block}@media (width<=640px){.part-header{flex-direction:column}}tr.has-refdes td{border-bottom:none}tr.refdes-row td{color:var(--muted);padding-top:0;padding-bottom:1.1rem;font-size:.82rem}.refdes-list{display:block;overflow:hidden}.refdes-inner{margin-left:-.75em;display:block}.refdes-item{white-space:nowrap}.refdes-item:before{content:", ";white-space:pre;width:.75em;display:inline-block}tr.has-refdes:hover+tr.refdes-row,tr.has-refdes:hover+tr.refdes-row td{background:var(--row-hover)}.refdes-label{color:var(--muted);margin-right:.4rem;font-size:.78rem;font-weight:600}.refdes-edit{align-items:center;gap:.4rem;display:flex}.refdes-edit input{max-width:40rem}.details-section{margin-top:1.25rem}.details-section h2{font-size:1rem}:root{--stripe:#dfe6f2;--stripe-hover:#cfd9ea}@media (prefers-color-scheme:dark){:root{--stripe:#303b50;--stripe-hover:#3a475f}}tr.stripe td{background:var(--stripe)}tbody tr.stripe:hover td,tr.has-refdes.stripe:hover+tr.refdes-row td{background:var(--stripe-hover)}.supplier-line{white-space:nowrap;line-height:1.6}button.link.company{font-size:inherit;text-align:left;padding:0}.modal-actions{margin-top:1rem}.bom-table th.col-desc{width:40%}.bom-table th.col-notes{width:20%}.bom-table th.col-pn{width:calc(201.6px + 1.2rem)}.bom-table td.pn-cell{max-width:calc(201.6px + 1.2rem)}.bom-table td.pn-cell .tag{margin:.15rem .3rem 0 0;display:inline-block}tr.refdes-row td>.refdes-label{margin-bottom:.15rem;display:block}.export-status{color:var(--accent);margin:-.25rem 0 .75rem;font-size:.85rem}.file-drop{border-radius:8px}.file-drop.dragging{outline:2px dashed var(--accent);outline-offset:4px;background:var(--row-hover)}.header-actions{flex-direction:column;flex:none;align-self:flex-start;align-items:stretch;width:10rem}.header-actions>button,.header-actions>a.button{text-align:center;width:100%}.page-head:has(.header-actions){align-items:flex-start}.part-title{margin:0 0 .35rem;font-size:1.6rem;font-weight:600;line-height:1.25}.part-header-main .page-head{margin-bottom:.2rem}.rev-line{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.part-header-main h1{font-size:1.1rem}.part-header-main h1 .pn{color:var(--muted);font-weight:600}.rev-line{flex-direction:column;align-items:flex-start;gap:.3rem}.badge.as-written{text-transform:none;letter-spacing:0}.phase-menu{display:inline-block;position:relative}.phase-trigger{color:var(--muted);background:0 0;border:none;align-items:center;gap:.25rem;padding:0;display:inline-flex}.phase-trigger:hover .badge{outline:1px solid}.phase-trigger .caret{font-size:.7rem}.phase-options{z-index:15;background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;min-width:11rem;padding:.3rem;display:flex;position:absolute;top:calc(100% + .3rem);left:0;box-shadow:0 6px 24px #00000040}.phase-options button{text-align:left;background:0 0;border:none;align-items:center;gap:.5rem;padding:.35rem .5rem;display:flex}.phase-options button:hover:not(:disabled){background:var(--row-hover)}.files-heading{margin:0 0 .5rem;font-size:1rem}tr.group-row td{background:var(--bg);padding-top:.7rem;font-size:.85rem}td.file-title{padding-left:1.4rem}.form-status{align-self:center;margin-right:auto}.add-line{margin:0 0 1rem}.bom-table th.col-pn{min-width:calc(201.6px + 1.2rem)}.filters{flex-direction:column;align-items:stretch;gap:.6rem}.filter-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.filter-row select{width:auto}.view-tab[aria-pressed=true]{background:var(--row-hover);border-color:var(--accent);font-weight:600}.view-tab-right{margin-left:auto}.filters .search{flex:none;width:100%;max-width:none}.admin-tabs a{color:var(--muted);border-bottom:2px solid #0000;padding:.5rem .9rem}.admin-tabs a:hover{color:var(--text);text-decoration:none}.admin-tabs a.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.refdes-change{margin-top:.3rem;font-size:.85rem}.refdes-change .refdes-label{margin-bottom:.1rem;display:block}.refdes-change.added{color:var(--released-fg)}.refdes-change.removed{color:var(--danger)}.refdes-change.added .refdes-label,.refdes-change.removed .refdes-label{color:inherit}tr.history-row>td{background:var(--bg);padding:.5rem .8rem .9rem}.file-history table{width:auto;min-width:60%}.file-history th,.file-history td{padding:.3rem .6rem;font-size:.85rem}.auth-page{justify-content:center;align-items:center;min-height:70vh;padding:2rem 1rem;display:flex}.auth-card{flex-direction:column;gap:.8rem;width:100%;max-width:24rem;display:flex}main .auth-card{margin:1rem 0}.auth-card h1{font-size:1.35rem}.auth-card p{margin:0}.auth-card label{flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:600;display:flex}.auth-card button.primary{margin-top:.3rem;padding:.55rem}.small{font-size:.8rem;font-weight:400}.link-button{color:var(--accent);font-size:inherit;cursor:pointer;background:0 0;border:none;margin-left:.6rem;padding:0 .2rem}.link-button:hover{text-decoration:underline}.topbar .user{align-items:center;gap:.2rem;display:flex}.topbar .user a{color:var(--text)}.add-user{margin-bottom:1rem}.add-user-fields{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.add-user-fields label{color:var(--muted);flex-direction:column;flex:12rem;gap:.3rem;font-size:.8rem;font-weight:600;display:flex}.add-user-fields label:has(select){flex:0 0 9rem}.users-table select{width:auto}.users-table tr.inactive td{color:var(--muted)}.users-table .link-button{font-size:.8rem}.inline-edit{align-items:center;gap:.3rem;display:flex}.inline-edit input{min-width:10rem}.badge.warn{background:var(--draft-bg);color:var(--draft-fg)}.user-actions{flex-wrap:wrap;justify-content:flex-end;gap:.3rem;display:flex}.user-actions button{margin:0}div.image-placeholder{justify-content:center;align-items:center;font-size:.85rem;display:flex}.language-switch{justify-content:center;gap:.2rem;font-size:.8rem;display:flex}.language-switch .link-button{color:var(--muted);margin:0}.language-switch .link-button[aria-pressed=true]{color:var(--text);cursor:default;font-weight:600;text-decoration:none}
