:root {
  --bg: #0d1326;
  --bg-soft: #121a31;
  --surface: rgba(24, 34, 61, .86);
  --surface-solid: #18223d;
  --line: rgba(163, 178, 211, .14);
  --text: #f5f7ff;
  --muted: #91a0c1;
  --yellow: #f9d423;
  --orange: #ff8a3d;
  --red: #ff4e50;
  --green: #42d7a5;
  --shadow: 0 24px 70px rgba(2, 5, 16, .36);
}

* { box-sizing: border-box; }
html { font-size: 17px; }
html, body { min-height: 100%; }
body {
  margin: 0;
  background: radial-gradient(circle at 50% -20%, #26345e 0, var(--bg) 42%, #090e1d 100%);
  color: var(--text);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: .01em;
}
button, input, select { font: inherit; }
button { color: inherit; }
[hidden] { display: none !important; }
.muted { color: var(--muted); }
.eyebrow { margin: 0 0 8px; color: var(--yellow); font-size: .68rem; font-weight: 800; letter-spacing: .18em; }

.brand-mark { display: grid; grid-template-columns: repeat(2, 23px); gap: 4px; width: max-content; margin: 0 auto 22px; transform: rotate(-2deg); }
.brand-mark span { width: 23px; height: 23px; border-radius: 5px; box-shadow: inset 0 -4px 0 rgba(0,0,0,.18); }
.brand-mark span:nth-child(1) { background: var(--yellow); }
.brand-mark span:nth-child(2) { background: var(--red); }
.brand-mark span:nth-child(3) { background: #39b5ff; }
.brand-mark span:nth-child(4) { background: var(--green); }
.brand-mark.small { grid-template-columns: repeat(2, 14px); gap: 3px; margin: 0; }
.brand-mark.small span { width: 14px; height: 14px; border-radius: 3px; }
.brand-logo { width: 31px; height: 31px; object-fit: contain; }

.login-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.login-card { width: min(440px, 100%); padding: 46px; border: 1px solid var(--line); border-radius: 24px; background: #121a31; box-shadow: var(--shadow); }
.login-card h1 { margin: 0; text-align: center; font-size: 2.55rem; letter-spacing: -.045em; }
.login-card h1 em { color: var(--yellow); font-style: normal; }
.login-card > p { text-align: center; }
.login-card form { display: grid; gap: 18px; margin-top: 32px; }
.login-membership-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.login-membership-actions button { min-height: 42px; padding-inline: 10px; font-size: .68rem; }
label { display: grid; gap: 8px; color: #c9d1e7; font-size: .82rem; font-weight: 700; }
input, select { width: 100%; min-width: 0; border: 1px solid var(--line); border-radius: 10px; padding: 12px 13px; outline: 0; color: var(--text); background: rgba(7, 12, 28, .72); transition: border-color .2s, box-shadow .2s; }
input:focus, select:focus { border-color: rgba(249, 212, 35, .68); box-shadow: 0 0 0 3px rgba(249, 212, 35, .08); }
.status { min-height: 20px; color: #ff989a; font-size: .84rem; }

button { border: 0; cursor: pointer; transition: transform .15s, background .15s, border-color .15s, opacity .15s; }
button:active { transform: translateY(1px); }
button:disabled { cursor: not-allowed; opacity: .55; }
.primary { padding: 13px 18px; border-radius: 10px; color: #17170d; background: linear-gradient(100deg, var(--yellow), #ffb32d); font-weight: 850; box-shadow: 0 10px 30px rgba(249, 212, 35, .12); }
.wide { width: 100%; display: flex; justify-content: center; gap: 10px; }
.secondary, .danger-ghost { padding: 9px 12px; border: 1px solid var(--line); border-radius: 9px; background: rgba(255,255,255,.035); font-size: .78rem; font-weight: 750; }
.secondary:hover { border-color: rgba(249,212,35,.45); background: rgba(249,212,35,.07); }
.danger-ghost { color: #ff9a9c; }
.danger-ghost:hover { border-color: rgba(255,78,80,.45); background: rgba(255,78,80,.08); }
.icon-button { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 9px; background: rgba(255,255,255,.035); }
.icon-button.accent { color: #16150a; background: var(--yellow); font-size: 1.35rem; }

.app-shell { min-height: 100vh; }
.topbar { height: 72px; position: sticky; top: 0; z-index: 20; display: grid; grid-template-columns: 210px 1fr 230px; align-items: center; padding: 0 26px; border-bottom: 1px solid var(--line); background: #0b1224; }
.brand { display: flex; align-items: center; gap: 12px; padding: 0; color: inherit; text-align: left; background: transparent; }
.brand:focus-visible { outline: 2px solid var(--yellow); outline-offset: 5px; border-radius: 8px; }
.brand strong { display: block; font-size: 1.06rem; }
.brand small { display: block; margin-top: 2px; color: var(--muted); font-size: .53rem; font-weight: 800; letter-spacing: .16em; }
#main-nav { display: flex; min-width: 0; justify-content: center; gap: 4px; overflow-x: auto; }
.nav-item { padding: 26px 13px 23px; border-bottom: 3px solid transparent; background: transparent; color: var(--muted); font-size: .72rem; font-weight: 750; white-space: nowrap; }
.nav-item:hover { color: var(--text); }
.nav-item.active { color: var(--yellow); border-bottom-color: var(--yellow); }
.account { min-width: 0; display: flex; justify-content: flex-end; align-items: center; gap: 9px; color: #d9def0; font-size: .78rem; font-weight: 700; }
.account #account-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.membership-chip { max-width: 132px; min-height: 25px; display: inline-flex; align-items: center; justify-content: center; padding: 4px 8px; overflow: hidden; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: rgba(255,255,255,.04); font-size: .56rem; font-weight: 850; line-height: 1; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.membership-chip[data-state="active"] { color: #aaf3d5; border-color: rgba(66,215,165,.3); background: rgba(66,215,165,.1); }
.membership-chip[data-state="admin"] { color: #ffe878; border-color: rgba(249,212,35,.32); background: rgba(249,212,35,.09); }
.membership-chip[data-state="development"] { color: #b7d6ff; border-color: rgba(57,181,255,.3); background: rgba(57,181,255,.09); }
.membership-chip[data-state="inactive"] { color: #ffb7b8; border-color: rgba(255,78,80,.3); background: rgba(255,78,80,.09); }

.workspace { max-width: 1720px; margin: auto; padding: 24px; }
#app-view .page[hidden] { display: none; }
#wanted-lists-page, #inventory-page, #set-builder-page, #buy-list-page, #part-id-page { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 20px; min-height: calc(100vh - 120px); }
.panel-surface { border: 1px solid var(--line); border-radius: 16px; background: var(--surface-solid); box-shadow: 0 16px 50px rgba(3, 7, 20, .18); }
.lists-panel { display: flex; flex-direction: column; min-height: 0; padding: 18px; }
.panel-heading { display: flex; align-items: center; justify-content: space-between; }
.panel-heading h2 { margin: 0; font-size: 1.28rem; }
.list-tools { display: grid; margin: 17px 0 12px; }
.wanted-list-nav { min-height: 120px; max-height: calc(100vh - 350px); overflow: auto; margin: 0 -6px; padding: 2px 6px; }
.wanted-list-entry { width: 100%; display: grid; grid-template-columns: 1fr auto; gap: 6px 10px; padding: 12px; margin-bottom: 6px; text-align: left; border: 1px solid transparent; border-radius: 10px; background: transparent; }
.wanted-list-entry strong { overflow: hidden; text-overflow: ellipsis; font-size: .84rem; }
.wanted-list-entry small { color: var(--muted); font-size: .68rem; }
.wanted-list-entry .count { grid-row: 1 / span 2; grid-column: 2; align-self: center; padding: 4px 7px; border-radius: 20px; color: var(--muted); background: rgba(255,255,255,.05); font-size: .65rem; white-space: nowrap; }
.wanted-list-entry:hover { background: rgba(255,255,255,.035); }
.wanted-list-entry.active { border-color: rgba(249,212,35,.28); background: rgba(249,212,35,.08); }
.wanted-list-entry.active strong { color: var(--yellow); }
.format-note { display: grid; gap: 5px; margin-top: auto; padding: 13px; border-radius: 10px; background: rgba(66,215,165,.07); color: var(--green); font-size: .7rem; }
.format-note span { color: var(--muted); line-height: 1.45; }
.loading-line { padding: 18px 10px; color: var(--muted); font-size: .78rem; }

.detail-panel { min-width: 0; }
.empty-state { min-height: 460px; display: grid; align-content: center; justify-items: center; text-align: center; padding: 40px; }
.empty-state h2 { margin: 14px 0 6px; }
.empty-state p { max-width: 430px; color: var(--muted); }
.empty-bricks { color: rgba(249,212,35,.75); font-size: 3.5rem; }
.detail-header { min-height: 78px; display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 15px; padding: 0 4px; }
.detail-header h1 { margin: 0; font-size: 1.75rem; letter-spacing: -.025em; }
.detail-header p:last-child { margin: 7px 0 0; font-size: .75rem; }
.header-actions { display: flex; gap: 8px; }
#list-detail .header-actions { flex-wrap: wrap; justify-content: flex-end; }
#inventory-detail .header-actions { flex-wrap: wrap; justify-content: flex-end; }
#inventory-part-id-batch { width: min(250px, 24vw); padding: 8px 9px; font-size: .67rem; }
.search-card { position: relative; z-index: 5; display: grid; grid-template-columns: minmax(220px, .8fr) minmax(260px, 1.2fr); align-items: center; gap: 20px; padding: 16px 18px; border-color: rgba(249,212,35,.18); }
.search-copy { display: flex; align-items: center; gap: 12px; }
.search-copy strong, .search-copy small { display: block; }
.search-copy strong { font-size: .8rem; }
.search-copy small { margin-top: 4px; color: var(--muted); font-size: .65rem; }
.search-icon { color: var(--yellow); font-size: 1.65rem; }
.search-results { position: absolute; z-index: 15; top: calc(100% + 7px); right: 0; width: min(720px, 100%); max-height: 430px; overflow: auto; padding: 8px; border: 1px solid var(--line); border-radius: 13px; background: #121a31; box-shadow: var(--shadow); }
.search-result { display: grid; grid-template-columns: 48px 1fr minmax(130px, 190px) auto; align-items: center; gap: 10px; padding: 9px; border-bottom: 1px solid var(--line); }
.search-result:last-child { border-bottom: 0; }
.search-thumb { display: grid; width: 46px; height: 46px; place-items: center; overflow: hidden; border-radius: 7px; background: #f8f8f8; }
.search-thumb img { width: 100%; height: 100%; object-fit: contain; }
.search-thumb.missing::after { content: "▦"; color: #7d87a5; font-size: 1.2rem; }
.search-result strong, .search-result small { display: block; }
.search-result small { margin-top: 3px; color: var(--muted); font-size: .66rem; }
.search-result select { padding: 8px; font-size: .7rem; }
.add-result { padding: 8px 10px; border-radius: 8px; color: #15150b; background: var(--yellow); font-size: .7rem; font-weight: 850; }
.catalog-search-load-more, .buy-set-search-load-more { width: 100%; margin: 8px 0 0; }

.inventory-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 16px 4px 10px; }
.inventory-selection, .bulk-actions, .inventory-metrics { display: flex; align-items: center; gap: 8px; }
.inventory-selection { min-width: 0; }
.line-item-search { width: min(250px, 24vw); padding: 8px 10px; font-size: .7rem; }
.line-item-sort { width: 150px; padding: 8px 10px; font-size: .68rem; }
.metric-toggle-menu { position: relative; z-index: 12; }.metric-toggle-menu summary { min-height: 34px; display: flex; align-items: center; padding: 8px 10px; border: 1px solid var(--line); border-radius: 9px; color: var(--muted); background: rgba(255,255,255,.035); cursor: pointer; font-size: .68rem; font-weight: 750; list-style: none; white-space: nowrap; }.metric-toggle-menu summary::-webkit-details-marker { display: none; }.metric-toggle-menu summary::after { content: '⌄'; margin-left: 7px; color: var(--yellow); font-size: .78rem; }.metric-toggle-menu[open] summary { border-color: rgba(249,212,35,.45); color: var(--text); }.metric-toggle-options { position: absolute; z-index: 20; top: calc(100% + 5px); right: 0; width: 170px; display: grid; gap: 2px; padding: 7px; border: 1px solid var(--line); border-radius: 9px; background: #121a31; box-shadow: 0 14px 34px rgba(0,0,0,.46); }.metric-toggle-options label { display: flex; align-items: center; gap: 7px; padding: 7px; border-radius: 6px; color: var(--muted); cursor: pointer; font-size: .65rem; text-transform: none; }.metric-toggle-options label:hover { color: var(--text); background: rgba(249,212,35,.07); }.metric-toggle-options input { width: 15px; min-width: 15px; height: 15px; margin: 0; padding: 0; accent-color: var(--yellow); }
.filter-status { color: var(--muted); font-size: .62rem; white-space: nowrap; }
.inventory-metrics { margin-left: auto; gap: 7px; }
.inventory-metrics > div { min-width: 76px; padding: 7px 9px; text-align: right; border-radius: 8px; background: rgba(5,9,21,.34); }
.inventory-metrics > div:nth-child(n+3) { min-width: 118px; }
.inventory-metrics small, .inventory-metrics strong { display: block; }
.inventory-metrics small { color: var(--muted); font-size: .52rem; text-transform: uppercase; white-space: nowrap; }
.inventory-metrics strong { margin-top: 3px; font-size: .76rem; }
.select-all-control { display: flex; grid-auto-flow: column; align-items: center; gap: 7px; white-space: nowrap; color: var(--muted); font-size: .68rem; }
.select-all-control input, .item-select input { width: 16px; min-width: 16px; height: 16px; margin: 0; padding: 0; accent-color: var(--yellow); }
.bulk-actions { padding-left: 9px; border-left: 1px solid var(--line); }
.bulk-actions > strong { min-width: 70px; color: var(--yellow); font-size: .68rem; }
.bulk-actions select { width: min(190px, 22vw); padding: 8px 9px; font-size: .7rem; }
.bulk-actions button { padding: 8px 10px; font-size: .7rem; }
.legend { display: flex; gap: 12px; }
.legend span { display: flex; align-items: center; gap: 5px; color: var(--muted); font-size: .62rem; }
.dot { width: 6px; height: 6px; border-radius: 50%; background: var(--muted); }
.dot.new { background: var(--green); }.dot.used { background: var(--orange); }.dot.any { background: #8796bd; }
.parts-list { max-height: calc(100vh - 330px); min-height: 280px; overflow: auto; padding-right: 4px; }
.part-row { display: grid; grid-template-columns: 24px 72px minmax(170px, 1.5fr) minmax(180px, .9fr) 95px 112px 42px; align-items: center; gap: 13px; min-height: 102px; margin-bottom: 8px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 13px; background: rgba(24,34,61,.74); content-visibility: auto; contain-intrinsic-size: auto 102px; }
.part-row:hover { border-color: rgba(145,160,193,.28); }
.part-row.selected { border-color: rgba(249,212,35,.38); background: rgba(38,45,65,.94); }
.part-row.relationship-in-inventory { border-color: rgba(66,215,165,.68); box-shadow: 0 0 0 1px rgba(66,215,165,.12); }
.part-row.relationship-in-inventory.selected { border-color: var(--yellow); }
.item-select { display: grid; place-items: center; }
.part-thumb { width: 68px; height: 68px; display: grid; place-items: center; border-radius: 10px; background: linear-gradient(145deg, #fff, #e9edf5); overflow: hidden; }
.part-thumb img { width: 62px; height: 62px; object-fit: contain; }
.part-identity { min-width: 0; }
.part-identity h3 { margin: 0 0 6px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .88rem; }
.part-identity p { margin: 0; color: var(--muted); font-size: .68rem; }
.part-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; }
.tag { padding: 3px 6px; border-radius: 5px; color: #bac5df; background: rgba(255,255,255,.055); font-size: .58rem; }
.tag.pcc { color: var(--yellow); background: rgba(249,212,35,.08); }
.tag.relationship-badge { font-weight: 800; text-transform: uppercase; letter-spacing: .025em; }
.tag.in-inventory { color: #9cf0ce; background: rgba(66,215,165,.13); }
.tag.on-wanted { color: #ffe878; background: rgba(249,212,35,.13); }
.tag.source-set { color: #ffd86a; background: rgba(255,138,61,.13); }
.pricing { display: grid; grid-template-columns: repeat(2, minmax(65px, 1fr)); gap: 7px; }
.pricing { grid-template-columns: repeat(var(--wanted-price-metric-count, 2), minmax(65px, 1fr)); }.part-row.no-price-metrics { grid-template-columns: 24px 72px minmax(170px, 1.5fr) 95px 112px 42px; }
.price-cell { padding: 7px; border-radius: 7px; background: rgba(5,9,21,.35); }
.price-cell small, .price-cell strong { display: block; }
.price-cell small { color: var(--muted); font-size: .54rem; text-transform: uppercase; }
.price-cell strong { margin-top: 3px; font-size: .72rem; }
.editor-field { display: grid; gap: 5px; }
.editor-field label { font-size: .58rem; color: var(--muted); }
.editor-field input, .editor-field select { padding: 8px 9px; font-size: .72rem; }
.remove-item { width: 34px; height: 34px; border-radius: 8px; color: #ff8e90; background: rgba(255,78,80,.07); font-size: 1rem; }
.remove-item:hover { background: rgba(255,78,80,.16); }
.no-items { padding: 60px 20px; text-align: center; color: var(--muted); border: 1px dashed var(--line); border-radius: 14px; }

.buy-set-search-card { margin-bottom: 15px; }
.buy-list-header { margin-top: 2px; }
.buy-list-header-actions { display: flex; align-items: center; gap: 9px; }
.buy-list-propagate { display: flex; align-items: center; gap: 9px; }
.buy-list-propagate select { min-width: 210px; }
.buy-list-propagate button { display: inline-flex; flex: 0 0 160px; width: 160px; height: 42px; align-items: center; justify-content: center; padding: 8px 12px; text-align: center; font-size: .78rem; line-height: 1.15; white-space: nowrap; }
.buy-list-items { max-height: calc(100vh - 285px); min-height: 280px; overflow: auto; padding-right: 4px; }
.buy-list-item-row { display: grid; grid-template-columns: 64px minmax(190px, 1fr) 70px 165px repeat(4, 78px); align-items: center; gap: 10px; min-width: 990px; min-height: 98px; margin-bottom: 8px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 13px; background: rgba(24,34,61,.74); content-visibility: auto; contain-intrinsic-size: auto 98px; }
.buy-list-item-row.missing { border-color: rgba(255,138,61,.42); background: rgba(65,43,38,.54); }
.buy-required { text-align: right; }
.buy-required small, .buy-required strong { display: block; }
.buy-required small { color: var(--muted); font-size: .54rem; text-transform: uppercase; }
.buy-required strong { margin-top: 4px; font-size: .9rem; }
.buy-missing-editor { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 9px; }
.buy-missing-editor label { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: .62rem; white-space: nowrap; }
.buy-missing-editor input[type="checkbox"] { width: 17px; height: 17px; margin: 0; padding: 0; accent-color: var(--orange); }
.buy-missing-editor input[type="number"] { padding: 8px 9px; font-size: .72rem; }
.buy-list-item-row .price-metric { padding: 7px; border-radius: 7px; background: rgba(5,9,21,.35); }
.buy-list-item-row .price-metric small, .buy-list-item-row .price-metric strong { display: block; }
.buy-list-item-row .price-metric small { color: var(--muted); font-size: .52rem; text-transform: uppercase; }
.buy-list-item-row .price-metric strong { margin-top: 4px; font-size: .72rem; }
.missing-badge { display: inline-flex; margin-top: 7px; padding: 3px 7px; border-radius: 6px; color: #ffd5b8; background: rgba(255,138,61,.17); font-size: .58rem; font-weight: 850; text-transform: uppercase; }

.inventory-filter-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 9px; }
.inventory-filter-bar .line-item-search { width: min(420px, 100%); }
.inventory-overview { display: flex; justify-content: flex-end; gap: 8px; margin-bottom: 10px; padding: 12px; }
.inventory-overview > div { min-width: 110px; padding: 8px 10px; text-align: right; border-radius: 8px; background: rgba(5,9,21,.34); }
.inventory-overview > .inventory-overview-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; margin-right: auto; padding: 0; text-align: left; background: transparent; }
.inventory-overview-actions select { width: auto; max-width: 190px; padding: 8px 9px; font-size: .68rem; }
.inventory-overview-actions button { padding: 8px 10px; font-size: .68rem; }
.inventory-selected-count { min-width: 64px; color: var(--yellow); font-size: .68rem; }
.inventory-overview small, .inventory-overview strong { display: block; }
.inventory-overview small { color: var(--muted); font-size: .54rem; text-transform: uppercase; }
.inventory-overview strong { margin-top: 4px; font-size: .82rem; }
.inventory-items { height: max(280px, calc(100dvh - 360px)); overflow: auto; padding-right: 4px; scrollbar-gutter: stable; }
.inventory-lot-row { display: grid; grid-template-columns: 24px 64px minmax(190px, 1.5fr) minmax(100px, .7fr) 72px 88px 100px 96px repeat(4, 86px); align-items: center; gap: 12px; min-width: 1420px; min-height: 88px; margin-bottom: 7px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: rgba(24,34,61,.74); content-visibility: auto; contain-intrinsic-size: auto 88px; }
.inventory-lot-row:hover { border-color: rgba(145,160,193,.28); }
.inventory-lot-row.selected { border-color: rgba(249,212,35,.38); background: rgba(38,45,65,.94); }
.inventory-lot-row.relationship-on-wanted { border-color: rgba(249,212,35,.7); box-shadow: 0 0 0 1px rgba(249,212,35,.12); }
.inventory-lot-row.relationship-on-wanted.selected { border-color: var(--yellow); }
.inventory-lot-row .part-thumb { width: 60px; height: 60px; }
.inventory-lot-row .part-thumb img { width: 55px; height: 55px; }
.inventory-lot-row .part-identity h3 { font-size: .82rem; }
.inventory-lot-row .lot-cell { min-width: 0; }
.inventory-lot-row .lot-cell small, .inventory-lot-row .lot-cell strong { display: block; }
.inventory-lot-row .lot-cell small { color: var(--muted); font-size: .52rem; text-transform: uppercase; }
.inventory-lot-row .lot-cell strong { margin-top: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .72rem; }
.inventory-lot-row .inventory-editor input, .inventory-lot-row .inventory-editor select { width: 100%; margin-top: 4px; padding: 7px; font-size: .7rem; }
.inventory-lot-row .price-metric { padding: 7px; border-radius: 7px; background: rgba(5,9,21,.35); }
.inventory-load-more { display: block; margin: 10px auto 0; }

.builder-controls { display: grid; gap: 14px; margin-top: 10px; }
.builder-controls label { display: grid; gap: 6px; color: var(--muted); font-size: .62rem; text-transform: uppercase; }
.builder-controls select { width: 100%; padding: 10px; font-size: .72rem; }
.builder-controls .builder-filter { display: flex; grid-auto-flow: column; align-items: center; justify-content: flex-start; gap: 8px; text-transform: none; }
.builder-filter input { width: 16px; min-width: 16px; height: 16px; margin: 0; padding: 0; accent-color: var(--yellow); }
.set-builder-results { max-height: calc(100vh - 180px); overflow: auto; padding-right: 4px; }
.set-candidate { margin-bottom: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 13px; background: rgba(24,34,61,.82); box-shadow: 0 10px 28px rgba(3,7,20,.12); content-visibility: auto; contain-intrinsic-size: auto 154px; }
.set-candidate-main { display: grid; grid-template-columns: 62px minmax(230px, 1fr) repeat(3, 105px); align-items: center; gap: 12px; }
.set-thumb { display: grid; width: 58px; height: 58px; place-items: center; overflow: hidden; border-radius: 8px; background: linear-gradient(145deg, #fff, #e9edf5); }
.set-thumb img { width: 52px; height: 52px; object-fit: contain; }
.set-identity h3 { margin: 3px 0 9px; font-size: .9rem; }
.eyebrow .set-id-link { color: var(--yellow); text-decoration: none; }
.set-id-link:hover, .set-id-link:focus-visible { text-decoration: underline; }
.bricklink-item-link { color: var(--yellow); font-weight: 700; text-decoration: none; }
.bricklink-item-link:hover, .bricklink-item-link:focus-visible { text-decoration: underline; }
.set-identity > small { color: var(--muted); font-size: .62rem; }
.completion-track { height: 7px; margin-bottom: 6px; overflow: hidden; border-radius: 10px; background: rgba(255,255,255,.08); }
.completion-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--yellow), var(--green)); }
.builder-metric { padding: 9px; text-align: right; border-radius: 8px; background: rgba(5,9,21,.35); }
.builder-metric small, .builder-metric strong { display: block; }
.builder-metric small { color: var(--muted); font-size: .52rem; text-transform: uppercase; }
.builder-metric strong { margin-top: 4px; font-size: .78rem; }
.set-candidate-footer { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin-top: 12px; padding-top: 11px; border-top: 1px solid var(--line); }
.missing-preview strong, .missing-preview span { display: block; }
.missing-preview strong { margin-bottom: 4px; color: var(--yellow); font-size: .62rem; text-transform: uppercase; }
.missing-preview span { color: var(--muted); font-size: .61rem; line-height: 1.45; }
.missing-preview { padding: 0; text-align: left; background: transparent; }
.missing-preview:not(:disabled):hover strong { text-decoration: underline; text-underline-offset: 3px; }
.missing-preview:disabled { cursor: default; opacity: 1; }
.builder-actions { display: flex; align-items: center; gap: 8px; }
.builder-actions select { width: 170px; padding: 8px; font-size: .68rem; }
.builder-actions button { padding: 8px 10px; font-size: .67rem; }

.modal-backdrop { position: fixed; z-index: 60; inset: 0; display: grid; place-items: center; padding: 24px; background: rgba(3, 7, 19, .82); }
#missing-parts-modal { z-index: 80; }
.missing-parts-modal { width: min(1080px, 96vw); max-height: min(760px, 90vh); display: flex; flex-direction: column; padding: 18px; background: #121a31; box-shadow: 0 30px 90px rgba(0,0,0,.55); }
.missing-parts-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 4px 4px 14px; border-bottom: 1px solid var(--line); }
.missing-parts-heading-actions { display: flex; align-items: flex-end; gap: 12px; }
.missing-parts-heading-actions label { color: var(--muted); font-size: .58rem; text-transform: uppercase; }
.missing-parts-heading-actions select { display: block; min-width: 150px; margin-top: 5px; }
.missing-parts-heading h2 { margin: 0; font-size: 1.3rem; }
.missing-parts-heading .muted { margin: 6px 0 0; font-size: .7rem; }
.missing-parts-list { min-height: 160px; overflow: auto; padding: 12px 4px 0; }
.missing-parts-load-more { width: 100%; margin: 10px 0 2px; }
.missing-part-row { display: grid; grid-template-columns: 64px minmax(220px, 1fr) repeat(5, 88px); align-items: center; gap: 10px; min-height: 88px; margin-bottom: 7px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: rgba(24,34,61,.74); }
.missing-part-row .part-thumb { width: 60px; height: 60px; }
.missing-part-row .part-thumb img { width: 55px; height: 55px; }
.missing-part-row .part-identity h3 { font-size: .82rem; }
.missing-part-metric { padding: 8px; text-align: right; border-radius: 7px; background: rgba(5,9,21,.35); }
.missing-part-metric small, .missing-part-metric strong { display: block; }
.missing-part-metric small { color: var(--muted); font-size: .5rem; text-transform: uppercase; }
.missing-part-metric strong { margin-top: 4px; font-size: .76rem; }
.missing-part-metric.needed strong { color: var(--yellow); }

/* BrickLink Account */
#bricklink-account-page { min-height: calc(100vh - 120px); }
.bricklink-account-detail { min-width: 0; }
.bricklink-account-header { margin-bottom: 16px; }
.bricklink-status-chip { display: inline-flex; align-items: center; min-height: 27px; padding: 5px 9px; border: 1px solid var(--line); border-radius: 20px; color: var(--muted); background: rgba(255,255,255,.04); font-size: .61rem; font-weight: 850; white-space: nowrap; }
.bricklink-status-chip.configured { color: #ffe878; border-color: rgba(249,212,35,.28); background: rgba(249,212,35,.08); }
.bricklink-status-chip.verified { color: #aaf3d5; border-color: rgba(66,215,165,.3); background: rgba(66,215,165,.1); }
.bricklink-security-note { display: grid; grid-template-columns: minmax(185px, .34fr) minmax(0, 1fr); align-items: center; gap: 16px; margin-bottom: 14px; padding: 15px 17px; border-color: rgba(249,212,35,.22); background: rgba(249,212,35,.055); }
.bricklink-security-note strong { color: var(--yellow); font-size: .75rem; }
.bricklink-security-note span { color: var(--muted); font-size: .68rem; line-height: 1.5; }
.bricklink-account-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.bricklink-credential-card, .bricklink-actions-card { min-width: 0; padding: 18px; }
.bricklink-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.bricklink-card-heading h2 { margin: 0; font-size: 1.1rem; }
.bricklink-card-heading .eyebrow { margin-bottom: 5px; }
.bricklink-header-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }.bricklink-header-actions button { padding: 8px 10px; font-size: .63rem; }
.bricklink-credential-card > .muted { min-height: 33px; margin: 10px 0 15px; font-size: .67rem; line-height: 1.45; }
.bricklink-credential-form { display: grid; gap: 11px; }
.bricklink-credential-form label { gap: 5px; color: var(--muted); font-size: .63rem; text-transform: uppercase; }
.bricklink-credential-form input { padding: 10px 11px; font-size: .76rem; letter-spacing: .04em; }
.bricklink-credential-form input.credential-saved-mask::placeholder { color: #c9d1e7; letter-spacing: .15em; opacity: 1; }
.bricklink-form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 3px; }
.bricklink-form-actions button { padding: 9px 11px; font-size: .68rem; }
.bricklink-credential-hint { min-height: 30px; margin: 13px 0 0; color: var(--muted); font-size: .6rem; line-height: 1.45; }
.part-id-training-card { display: flex; flex-direction: column; }.part-id-training-card > .muted { min-height: auto; }.part-id-training-toggle { display: flex; grid-template-columns: none; align-items: center; gap: 9px; margin-top: auto; padding: 11px 12px; border: 1px solid rgba(249,212,35,.2); border-radius: 10px; color: #e5eaf7; background: rgba(249,212,35,.055); font-size: .69rem; text-transform: none; }.part-id-training-toggle input { width: 36px; height: 20px; min-width: 36px; margin: 0; padding: 0; accent-color: var(--yellow); }
.bricklink-actions-card { margin-top: 14px; }
.bricklink-action-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 16px; }
.bricklink-action-grid article { display: grid; align-content: start; gap: 8px; min-height: 154px; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: rgba(5,9,21,.26); }
.bricklink-action-grid strong { font-size: .74rem; }
.bricklink-action-grid span { min-height: 38px; color: var(--muted); font-size: .61rem; line-height: 1.45; }
.bricklink-action-grid button { align-self: end; padding: 8px 9px; font-size: .63rem; }
.bricklink-inline-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; }
.bricklink-inline-actions button { flex: 1 1 120px; }
.bricklink-account-results { min-height: 54px; margin-top: 14px; padding: 12px 13px; border: 1px solid rgba(66,215,165,.18); border-radius: 10px; color: #bdf7e4; background: rgba(66,215,165,.055); font-size: .67rem; line-height: 1.45; }
.bricklink-account-results.error { border-color: rgba(255,78,80,.25); color: #ffc0c1; background: rgba(255,78,80,.07); }
.help-detail { min-width: 0; }.help-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }.help-card, .help-faq { padding: 18px; }.help-card h2, .help-faq h2 { margin: 0; font-size: 1.08rem; }.help-card > .eyebrow, .help-faq > .eyebrow { margin-bottom: 5px; }.help-card p, .help-card li { color: var(--muted); font-size: .7rem; line-height: 1.55; }.help-card ol { margin: 12px 0 0; padding-left: 21px; }.help-card li + li { margin-top: 6px; }.help-card button { margin-top: 10px; font-size: .67rem; }.help-coming-soon { display: inline-flex; margin-top: 9px; padding: 6px 8px; border: 1px solid rgba(249,212,35,.18); border-radius: 7px; color: #ffe878; background: rgba(249,212,35,.055); font-size: .61rem; font-weight: 800; }.help-faq { margin-top: 14px; }.help-faq details { padding: 12px 0; border-top: 1px solid var(--line); }.help-faq details:first-of-type { margin-top: 12px; }.help-faq summary { cursor: pointer; color: #e7ebf7; font-size: .74rem; font-weight: 800; }.help-faq details p { margin: 8px 0 0; color: var(--muted); font-size: .68rem; line-height: 1.5; }
.bricklink-results-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 8px; color: #bdf7e4; font-size: .72rem; font-weight: 850; }
.bricklink-toggle-purged { flex: 0 0 auto; padding: 6px 8px; font-size: .6rem; white-space: nowrap; }
.bricklink-order-row { display: grid; grid-template-columns: minmax(160px, 1fr) auto minmax(190px, auto); align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid var(--line); }
.bricklink-order-row small { display: block; margin-top: 4px; color: var(--muted); font-size: .66rem; line-height: 1.42; }.bricklink-account-results .bricklink-order-id, .bricklink-account-results .bricklink-order-id:visited { display: inline-block; color: #ffe878 !important; font-size: .74rem; font-weight: 850; text-decoration: none; }.bricklink-order-id:hover { color: var(--yellow) !important; text-decoration: underline; }.bricklink-order-meta { color: #b7c2db !important; }
.bricklink-order-total { color: #ffe878; font-size: .7rem; font-weight: 800; white-space: nowrap; }
.bricklink-order-actions { display: flex; align-items: center; gap: 6px; }.bricklink-order-actions select { width: 118px; padding: 7px 8px; font-size: .61rem; }.bricklink-order-actions button { padding: 7px 8px; font-size: .61rem; }
.bricklink-cart-row { display: grid; gap: 7px; padding: 8px 0; border-top: 1px solid var(--line); }.bricklink-cart-row > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.bricklink-cart-row strong { font-size: .67rem; }.bricklink-cart-row span { color: var(--muted); font-size: .6rem; text-align: right; }.bricklink-cart-lots summary { cursor: pointer; color: #ffe878; font-size: .6rem; font-weight: 800; }.bricklink-cart-lots ul { display: grid; gap: 4px; max-height: 210px; overflow: auto; margin: 7px 0 0; padding: 0; list-style: none; }.bricklink-cart-lots li { display: flex; justify-content: space-between; gap: 10px; padding: 5px 7px; border-radius: 6px; background: rgba(5,9,21,.28); }.bricklink-cart-lots li strong { font-size: .59rem; }.bricklink-cart-lots li span { font-size: .55rem; }.bricklink-cart-load-more, .bricklink-cart-lots-load-more { width: 100%; margin: 8px 0 0; }
.bricklink-modal { width: min(760px, 96vw); max-height: min(720px, 90vh); display: flex; flex-direction: column; padding: 18px; background: #121a31; box-shadow: 0 30px 90px rgba(0,0,0,.55); }
.bricklink-modal-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 4px 4px 14px; border-bottom: 1px solid var(--line); }.bricklink-modal-heading h2 { margin: 0; font-size: 1.28rem; }.bricklink-modal-heading .muted { margin: 6px 0 0; font-size: .68rem; }
.bricklink-credential-help-modal { width: min(690px, 96vw); }.bricklink-credential-help-content { display: grid; gap: 10px; overflow: auto; padding: 14px 4px 0; }.bricklink-credential-help-content article { padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: rgba(5,9,21,.26); }.bricklink-credential-help-content .eyebrow { margin: 0 0 5px; }.bricklink-credential-help-content h3 { margin: 0; font-size: .76rem; }.bricklink-credential-help-content p:not(.eyebrow) { margin: 8px 0 0; color: var(--muted); font-size: .66rem; line-height: 1.48; }.bricklink-credential-help-content a { display: inline-block; margin-top: 10px; color: #ffe878; font-size: .67rem; font-weight: 850; text-decoration: none; }.bricklink-credential-help-content a:hover, .bricklink-credential-help-content a:focus-visible { text-decoration: underline; }.bricklink-credential-help-note { padding: 0 3px; color: #b7c2db !important; }
.bricklink-wanted-import-list, .bricklink-sync-preview { min-height: 130px; overflow: auto; padding: 12px 4px 0; }
.bricklink-wanted-import-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 11px 10px; border: 1px solid var(--line); border-radius: 10px; background: rgba(5,9,21,.26); }.bricklink-wanted-import-row + .bricklink-wanted-import-row { margin-top: 7px; }.bricklink-wanted-import-row strong, .bricklink-wanted-import-row small { display: block; }.bricklink-wanted-import-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .72rem; }.bricklink-wanted-import-row small { margin-top: 4px; color: var(--muted); font-size: .58rem; }.bricklink-wanted-import-row button { padding: 8px 10px; font-size: .63rem; }
.bricklink-sync-counts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }.bricklink-sync-counts > div { padding: 11px; text-align: center; border-radius: 9px; background: rgba(5,9,21,.34); }.bricklink-sync-counts small, .bricklink-sync-counts strong { display: block; }.bricklink-sync-counts small { color: var(--muted); font-size: .55rem; text-transform: uppercase; }.bricklink-sync-counts strong { margin-top: 5px; color: var(--yellow); font-size: 1rem; }.bricklink-sync-blockers { display: grid; gap: 5px; margin: 12px 3px 0; padding: 9px 11px 9px 25px; border: 1px solid rgba(255,138,61,.27); border-radius: 8px; color: #ffd37c; background: rgba(255,138,61,.07); font-size: .61rem; line-height: 1.4; }.bricklink-sync-blockers-load-more { width: 100%; margin: 8px 3px 0; }.bricklink-sync-note { margin: 13px 3px 0; color: var(--muted); font-size: .64rem; line-height: 1.45; }
.bricklink-modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }.bricklink-modal-actions button { padding: 9px 12px; font-size: .68rem; }
.part-id-batch-menu-popover { position: fixed; z-index: 70; width: min(390px, calc(100vw - 24px)); padding: 13px; background: #121a31; box-shadow: 0 18px 46px rgba(0,0,0,.52); }.part-id-batch-menu-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding-top: 12px; }.part-id-batch-menu-actions button { min-height: 39px; font-size: .67rem; }.part-id-batch-menu-consolidate, .part-id-batch-menu-add-inventory { grid-column: 1 / -1; }
.part-id-inventory-destination-popover { position: fixed; z-index: 75; width: min(390px, calc(100vw - 24px)); padding: 13px; background: #121a31; box-shadow: 0 22px 52px rgba(0,0,0,.6); }.part-id-inventory-destination-content { display: grid; gap: 9px; padding-top: 12px; }.part-id-inventory-destination-content label { display: grid; gap: 5px; color: var(--muted); font-size: .62rem; font-weight: 750; }.part-id-inventory-destination-content select, .part-id-inventory-destination-content input { width: 100%; min-height: 37px; padding: 8px 9px; font-size: .69rem; }.part-id-inventory-destination-content button { min-height: 39px; font-size: .67rem; }.part-id-inventory-destination-divider { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 8px; color: var(--muted); font-size: .57rem; text-transform: uppercase; letter-spacing: .05em; }.part-id-inventory-destination-divider::before, .part-id-inventory-destination-divider::after { content: ''; height: 1px; background: var(--line); }
.workspace-menu-popover { position: fixed; z-index: 100; width: min(330px, calc(100vw - 24px)); padding: 13px; background: #121a31; box-shadow: 0 22px 52px rgba(0,0,0,.6); }.workspace-menu-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 4px 4px 12px; border-bottom: 1px solid var(--line); }.workspace-menu-heading h2 { margin: 0; font-size: 1.08rem; }.workspace-menu-heading .eyebrow { margin: 0 0 5px; }.workspace-auth-summary { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 9px; padding: 11px 4px 0; }.workspace-auth-summary .muted { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .63rem; }.workspace-menu-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding-top: 12px; }.workspace-menu-actions button { min-height: 39px; font-size: .67rem; }.workspace-menu-actions #workspace-menu-logout { grid-column: 1 / -1; }
.collection-menu-popover { position: fixed; z-index: 95; width: min(390px, calc(100vw - 24px)); padding: 13px; background: #121a31; box-shadow: 0 22px 52px rgba(0,0,0,.6); }.collection-menu-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 4px 4px 12px; border-bottom: 1px solid var(--line); }.collection-menu-heading h2 { margin: 0; font-size: 1.08rem; }.collection-menu-heading .eyebrow { margin: 0 0 5px; }.collection-menu-heading .muted { margin: 6px 0 0; font-size: .66rem; line-height: 1.4; }.collection-menu-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding-top: 12px; }.collection-menu-actions button { min-height: 39px; font-size: .67rem; }.collection-menu-actions .danger-ghost { grid-column: 1 / -1; }#wanted-list-menu-popover .collection-menu-actions .coming-soon, #wanted-list-menu-popover .collection-menu-actions .danger-ghost { grid-column: auto; }
.part-id-completion-modal { width: min(1120px, 96vw); max-height: min(800px, 90vh); display: flex; flex-direction: column; padding: 18px; background: #121a31; box-shadow: 0 30px 90px rgba(0,0,0,.55); }.part-id-completion-results { min-height: 160px; overflow: auto; padding: 12px 4px 0; }.part-id-completion-candidate { margin-bottom: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: rgba(5,9,21,.26); }.part-id-completion-load-more { width: 100%; margin: 2px 0 0; }.part-id-completion-candidate-main { display: grid; grid-template-columns: 64px minmax(230px, 1fr) repeat(2, 112px); align-items: center; gap: 11px; }.part-id-completion-candidate-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; margin-top: 10px; }.part-id-completion-candidate-actions select, .part-id-completion-candidate-actions button { min-height: 34px; padding: 7px 9px; font-size: .63rem; }.part-id-completion-candidate-actions select { min-width: 170px; }
.part-id-set-modal { width: min(1160px, 96vw); max-height: min(760px, 90vh); display: flex; flex-direction: column; padding: 18px; background: #121a31; box-shadow: 0 30px 90px rgba(0,0,0,.55); }.part-id-set-content { display: grid; grid-template-columns: minmax(250px, .72fr) minmax(0, 1.48fr); min-height: 260px; overflow: hidden; }.part-id-set-results { min-height: 150px; overflow: auto; padding: 12px 12px 0 4px; border-right: 1px solid var(--line); }.part-id-set-results .bag-id-set-match + .bag-id-set-match { margin-top: 8px; }.part-id-set-results-load-more { width: 100%; margin: 8px 0 0; }.part-id-set-match { cursor: pointer; }.part-id-set-match:focus-visible { outline: 2px solid var(--yellow); outline-offset: 2px; }.part-id-set-match.selected { border-color: rgba(249,212,35,.48); background: rgba(249,212,35,.08); }.part-id-set-match h3 { margin: 3px 0 5px; }.part-id-set-match small { color: var(--muted); font-size: .61rem; }.part-id-set-detail { min-width: 0; overflow: auto; padding: 12px 4px 0 16px; }.part-id-set-detail-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 0 4px 11px; border-bottom: 1px solid var(--line); }.part-id-set-detail-heading h3 { margin: 3px 0 5px; font-size: .89rem; }.part-id-set-detail-heading small { color: var(--muted); font-size: .61rem; }.part-id-set-detail-heading small strong { color: var(--yellow); }.part-id-set-detail-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; padding: 10px 4px; }.part-id-set-detail-actions select, .part-id-set-detail-actions button { min-height: 34px; padding: 7px 9px; font-size: .63rem; }.part-id-set-detail-actions select { min-width: 165px; }.part-id-set-inventory-list { display: grid; gap: 7px; padding: 0 4px 4px; }.part-id-set-inventory-row { display: grid; grid-template-columns: 52px minmax(160px, 1fr) repeat(4, 74px); align-items: center; gap: 8px; min-height: 72px; padding: 8px 9px; border: 1px solid var(--line); border-radius: 9px; background: rgba(5,9,21,.26); }.part-id-set-inventory-row.in-batch { border-color: rgba(66,215,165,.3); background: rgba(66,215,165,.055); }.part-id-set-inventory-row .part-thumb { width: 48px; height: 48px; }.part-id-set-inventory-row .part-thumb img { width: 45px; height: 45px; }.part-id-set-inventory-row .part-identity h3 { font-size: .71rem; }.part-id-set-inventory-row .part-identity p { font-size: .59rem; }.part-id-set-inventory-row .missing-part-metric { padding: 6px; }.part-id-set-inventory-row .missing-part-metric strong { font-size: .68rem; }.part-id-set-inventory-load-more { width: 100%; margin: 8px 0 2px; }

/* Part ID Processing */
.part-id-batch-format { margin: 17px 0 12px; color: var(--muted); font-size: .62rem; text-transform: uppercase; }
.part-id-batch-format select { margin-top: 6px; padding: 10px; font-size: .72rem; }
.part-id-batch-row { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 4px; align-items: stretch; }
.part-id-batch-select { display: grid; place-items: center; align-self: stretch; margin: 0; padding-bottom: 6px; }
.part-id-batch-select input { width: 16px; height: 16px; margin: 0; padding: 0; accent-color: var(--yellow); }
.part-id-batch-row.selected .part-id-batch-entry { border-color: rgba(66,215,165,.32); background: rgba(66,215,165,.055); }
.part-id-batch-row.selected .part-id-batch-entry.active { border-color: rgba(249,212,35,.42); background: rgba(249,212,35,.09); }
.part-id-batch-entry-wrap { position: relative; min-width: 0; }.part-id-batch-entry { padding-right: 41px; }.part-id-batch-menu-trigger { position: absolute; top: 50%; right: 7px; width: 25px; height: 25px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.13); border-radius: 6px; color: var(--muted); background: rgba(5,9,21,.36); font-size: 1rem; font-weight: 850; line-height: 1; transform: translateY(-50%); }.part-id-batch-menu-trigger:hover, .part-id-batch-menu-trigger:focus-visible { color: #17170d; border-color: var(--yellow); background: var(--yellow); }
.collection-entry-wrap { position: relative; min-width: 0; }.collection-entry { padding-right: 41px; }.collection-menu-trigger { position: absolute; top: 50%; right: 7px; width: 25px; height: 25px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.13); border-radius: 6px; color: var(--muted); background: rgba(5,9,21,.36); font-size: 1rem; font-weight: 850; line-height: 1; transform: translateY(-50%); }.collection-menu-trigger:hover, .collection-menu-trigger:focus-visible { color: #17170d; border-color: var(--yellow); background: var(--yellow); }
.part-id-batch-entry small { display: flex; align-items: center; gap: 5px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.part-id-format-badge { flex: 0 0 auto; padding: 2px 5px; border-radius: 4px; color: var(--green); background: rgba(66,215,165,.1); font-size: .53rem; font-weight: 850; letter-spacing: .04em; }
.part-id-header { margin-bottom: 16px; }.part-id-header .header-actions { flex-wrap: wrap; justify-content: flex-end; }
.part-id-workbench { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 245px); align-items: stretch; gap: 14px; }
.part-id-side-rail { display: grid; gap: 14px; min-width: 0; }
.part-id-capture-work, .part-id-camera-card, .part-id-selected-view, .part-id-identify-panel, .part-id-saved-panel { min-width: 0; padding: 16px; }
.part-id-capture-work { display: flex; flex-direction: column; }
.part-id-mode-heading, .part-id-camera-heading, .part-id-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.part-id-mode-heading h2, .part-id-camera-heading h2, .part-id-section-heading h2 { margin: 0; font-size: 1.08rem; }
.part-id-mode-heading .eyebrow, .part-id-camera-heading .eyebrow, .part-id-section-heading .eyebrow { margin-bottom: 5px; }
.part-id-mode-toggle { display: inline-flex; flex: 0 0 auto; padding: 3px; border: 1px solid var(--line); border-radius: 9px; background: rgba(5,9,21,.34); }
.part-id-mode { padding: 7px 9px; border-radius: 6px; color: var(--muted); background: transparent; font-size: .63rem; font-weight: 800; }
.part-id-mode.active { color: #1b190b; background: var(--yellow); }
.part-id-crop-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-bottom: 10px; }
.part-id-crop-toolbar button { padding: 7px 9px; font-size: .64rem; }
.part-id-zoom-controls { position: absolute; top: 9px; right: 9px; z-index: 5; display: inline-flex; align-items: center; overflow: hidden; border: 1px solid rgba(255,255,255,.18); border-radius: 7px; background: rgba(5,9,21,.82); box-shadow: 0 5px 16px rgba(0,0,0,.25); line-height: normal; }
.part-id-zoom-controls button { min-width: 28px; padding-inline: 8px; border-radius: 0; }
.part-id-zoom-controls output { min-width: 42px; padding: 0 5px; color: var(--muted); font-size: .59rem; font-weight: 800; line-height: 28px; text-align: center; }
.part-id-image-stage { position: relative; flex: 1 1 auto; min-height: 360px; overflow: auto; border: 1px solid rgba(249,212,35,.16); border-radius: 12px; background: #090f20; line-height: 0; }
.part-id-image-canvas { position: relative; width: 100%; }
#part-id-captured-image { display: block; width: 100%; height: auto; background: #090f20; }
.part-id-image-placeholder { min-height: 100%; display: grid; align-content: center; justify-items: center; gap: 7px; padding: 30px; color: var(--muted); line-height: normal; text-align: center; }
.part-id-image-placeholder span { color: rgba(249,212,35,.75); font-size: 2.5rem; }
.part-id-image-placeholder strong { color: var(--text); font-size: .8rem; }
.part-id-image-placeholder small { font-size: .65rem; }
.part-id-crop-overlay { position: absolute; inset: 0; pointer-events: none; }
.part-id-crop-rect { position: absolute; min-width: 18px; min-height: 18px; border: 2px solid var(--green); border-radius: 5px; pointer-events: auto; touch-action: none; cursor: move; }
.part-id-crop-rect.selected { z-index: 2; border-color: var(--yellow); box-shadow: 0 0 0 2px rgba(249,212,35,.18); }
.part-id-crop-rect.added { border-color: rgba(66,215,165,.58); cursor: not-allowed; }
.part-id-crop-label { position: absolute; top: -23px; left: -2px; padding: 4px 6px; border-radius: 5px 5px 5px 0; color: #0f1a18; background: var(--green); font-size: .58rem; font-weight: 900; line-height: 1; }
.part-id-crop-rect.selected .part-id-crop-label { color: #17170d; background: var(--yellow); }
.part-id-crop-handle { position: absolute; z-index: 3; width: 11px; height: 11px; border: 1px solid #16150a; border-radius: 50%; background: var(--yellow); }
.part-id-crop-handle.nw { top: -6px; left: -6px; cursor: nwse-resize; }.part-id-crop-handle.ne { top: -6px; right: -6px; cursor: nesw-resize; }.part-id-crop-handle.sw { bottom: -6px; left: -6px; cursor: nesw-resize; }.part-id-crop-handle.se { right: -6px; bottom: -6px; cursor: nwse-resize; }
.part-id-crop-rect:not(.selected) .part-id-crop-handle { display: none; }
.part-id-action-row { display: flex; align-items: center; gap: 12px; margin-top: 12px; }
.part-id-action-row .primary { flex: 0 0 auto; padding: 10px 13px; font-size: .7rem; }
.part-id-camera-card { display: grid; gap: 9px; padding: 12px; }
.part-id-camera-heading { align-items: center; }
.part-id-camera-status { display: inline-flex; align-items: center; min-height: 22px; padding: 4px 7px; border-radius: 20px; color: var(--muted); background: rgba(255,255,255,.055); font-size: .57rem; font-weight: 800; }
.part-id-camera-status.ready { color: #aaf3d5; background: rgba(66,215,165,.12); }.part-id-camera-status.error { color: #ffb7b8; background: rgba(255,78,80,.11); }
.part-id-video-frame { position: relative; display: grid; min-height: 147px; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: #090f20; }
.part-id-video-frame video { width: 100%; min-height: 147px; height: 100%; object-fit: cover; background: #090f20; }
.part-id-video-placeholder { position: absolute; inset: 0; display: grid; align-content: center; padding: 16px; color: var(--muted); background: linear-gradient(140deg, rgba(34,48,82,.65), rgba(9,15,32,.88)); font-size: .61rem; line-height: 1.4; text-align: center; }
.part-id-camera-card .wide { min-height: 34px; align-items: center; font-size: .65rem; }
.part-id-capture-button { min-height: 37px; align-items: center; }
.part-id-capture-button svg { width: 15px; height: 15px; fill: currentColor; }
kbd { display: inline-grid; min-width: 17px; min-height: 17px; place-items: center; padding: 1px 4px; border: 1px solid rgba(18,24,38,.38); border-radius: 4px; background: rgba(255,255,255,.34); color: inherit; font-family: inherit; font-size: .58rem; font-weight: 900; line-height: 1; }
.part-id-selected-view { display: grid; gap: 10px; min-height: 0; padding: 12px; }
.part-id-selected-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.part-id-selected-heading .eyebrow { margin: 0; cursor: help; }
.part-id-selected-view-content { min-height: 0; }
.part-id-selected-render { display: grid; gap: 9px; }
.part-id-model-stage { position: relative; min-height: 260px; display: grid; place-items: center; overflow: hidden; border: 1px solid rgba(249,212,35,.16); border-radius: 10px; background: radial-gradient(circle at 50% 24%, #233b73, #090f20 68%); touch-action: none; }
.part-id-model-stage canvas { display: block; width: 100%; height: 100%; cursor: grab; }.part-id-model-stage canvas:active { cursor: grabbing; }
.part-id-model-message { margin: 0; padding: 16px; color: var(--muted); font-size: .62rem; line-height: 1.4; text-align: center; }
.part-id-selected-info { display: grid; gap: 5px; }
.part-id-selected-info h3 { margin: 0; font-size: .72rem; line-height: 1.3; }
.part-id-selected-info p { margin: 0; color: var(--muted); font-size: .61rem; line-height: 1.4; }
.part-id-selected-info .part-id-item-link { color: var(--yellow); font-weight: 850; text-decoration: none; }
.part-id-selected-info .part-id-item-link:hover { text-decoration: underline; }
.part-id-selected-meta { display: flex; flex-wrap: wrap; gap: 5px; }
.part-id-selected-meta span { padding: 3px 5px; border: 1px solid rgba(255,255,255,.08); border-radius: 5px; color: var(--muted); background: rgba(255,255,255,.035); font-size: .53rem; }
.part-id-identify-panel, .part-id-saved-panel { margin-top: 14px; }
.part-id-section-heading { margin-bottom: 12px; }
.part-id-section-heading .muted { margin: 5px 0 0; font-size: .65rem; }
.part-id-section-heading .primary { padding: 9px 11px; font-size: .67rem; white-space: nowrap; }
.part-id-review-actions { display: flex; align-items: flex-end; gap: 8px; }.part-id-color-all-control { position: relative; z-index: 3; min-width: 182px; }.part-id-color-all-control label { display: block; margin: 0 0 4px; color: var(--muted); font-size: .54rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }.part-id-color-all-control input { width: 100%; padding: 8px 9px; font-size: .65rem; }.part-id-color-all-results { position: fixed; z-index: 85; width: 230px; overflow-y: auto; overscroll-behavior: contain; border: 1px solid var(--line); border-radius: 8px; background: #121a31; box-shadow: 0 12px 30px rgba(0,0,0,.42); scrollbar-gutter: stable; }.part-id-color-all-results button { display: block; width: 100%; padding: 8px 10px; border-radius: 0; color: var(--text); background: transparent; font-size: .63rem; text-align: left; }.part-id-color-all-results button:hover, .part-id-color-all-results button:focus-visible { color: #17170d; background: var(--yellow); }.part-id-color-all-results small { color: inherit; opacity: .72; }
.part-id-identify-results { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; }
.part-id-identification-card { display: grid; grid-template-columns: 108px minmax(0, 1fr); overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: rgba(5,9,21,.26); cursor: pointer; content-visibility: auto; contain-intrinsic-size: auto 210px; }
.part-id-identification-card.view-selected { border-color: var(--yellow); box-shadow: 0 0 0 2px rgba(249,212,35,.15); }
.part-id-identification-card.saved { border-color: rgba(66,215,165,.25); opacity: .78; }
.part-id-crop-preview { min-height: 145px; display: grid; align-content: center; gap: 7px; padding: 8px; background: #0b1122; }
.part-id-crop-preview > img { width: 100%; height: 78px; object-fit: contain; }.part-id-crop-preview span { color: var(--muted); font-size: .6rem; }
.part-id-catalog-preview { display: grid; place-items: center; gap: 3px; padding-top: 6px; border-top: 1px solid rgba(255,255,255,.08); }
.part-id-catalog-preview img { width: 100%; height: 48px; object-fit: contain; }.part-id-catalog-preview small { color: var(--muted); font-size: .47rem; line-height: 1; text-align: center; }
.part-id-identification-body { display: grid; align-content: start; gap: 8px; padding: 11px; }
.part-id-card-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: .72rem; }
.part-id-saved-badge { padding: 3px 6px; border-radius: 6px; color: #aaf3d5; background: rgba(66,215,165,.14); font-size: .55rem; font-weight: 850; }
.part-id-identification-body label { gap: 4px; color: var(--muted); font-size: .56rem; text-transform: uppercase; }
.part-id-identification-body select { padding: 7px 8px; font-size: .65rem; text-transform: none; }
.part-id-candidate-summary { min-width: 0; }
.part-id-candidate-summary strong, .part-id-candidate-summary small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.part-id-candidate-summary strong { font-size: .65rem; }.part-id-candidate-summary small { margin-top: 3px; color: var(--muted); font-size: .55rem; }
.part-id-identifying { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: .64rem; }.part-id-spinner { width: 15px; height: 15px; border: 2px solid rgba(249,212,35,.2); border-top-color: var(--yellow); border-radius: 50%; animation: part-id-spin .8s linear infinite; }
@keyframes part-id-spin { to { transform: rotate(360deg); } }
.part-id-identify-error { margin: 0; color: #ffb2b4; font-size: .61rem; line-height: 1.35; }
.part-id-card-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.part-id-card-actions button { padding: 7px 9px; font-size: .62rem; }
.part-id-saved-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.part-id-saved-actions > strong { min-width: 70px; color: var(--yellow); font-size: .68rem; white-space: nowrap; }
.part-id-saved-actions select { width: min(190px, 20vw); padding: 8px 9px; font-size: .67rem; }
.part-id-saved-actions button { padding: 8px 10px; font-size: .67rem; }
.part-id-saved-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(265px, 1fr)); gap: 8px; }
.part-id-saved-item { display: grid; grid-template-columns: 16px 60px minmax(0, 1fr); align-items: center; gap: 10px; min-height: 76px; padding: 8px; border: 1px solid var(--line); border-radius: 10px; background: rgba(5,9,21,.26); cursor: pointer; content-visibility: auto; contain-intrinsic-size: auto 76px; }
.part-id-saved-item.selected { border-color: rgba(249,212,35,.38); background: rgba(249,212,35,.055); }
.part-id-saved-item.relationship-on-wanted { border-color: rgba(249,212,35,.7); box-shadow: 0 0 0 1px rgba(249,212,35,.12); }
.part-id-saved-item.view-selected { border-color: var(--yellow); box-shadow: 0 0 0 2px rgba(249,212,35,.15); }
.part-id-item-select { align-self: center; }
.part-id-saved-thumb { width: 58px; height: 58px; display: grid; place-items: center; overflow: hidden; border-radius: 7px; color: var(--muted); background: #0b1122; }.part-id-saved-thumb img { width: 100%; height: 100%; object-fit: contain; }
.part-id-saved-item .part-identity h3 { font-size: .72rem; }.part-id-saved-item .part-tags { margin-top: 6px; }

/* Bag Identification */
#bag-identification-page { min-height: calc(100vh - 120px); }
.bag-id-detail { min-width: 0; }
.bag-id-header { margin-bottom: 16px; }
.bag-id-workbench { display: grid; grid-template-columns: minmax(0, 1fr) minmax(286px, 350px); align-items: start; gap: 14px; }
.bag-id-capture-work, .bag-id-camera-card, .bag-id-identify-panel, .bag-id-results-panel { min-width: 0; padding: 16px; }
.bag-id-section-heading, .bag-id-camera-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.bag-id-section-heading h2, .bag-id-camera-heading h2 { margin: 0; font-size: 1.08rem; }
.bag-id-section-heading .eyebrow, .bag-id-camera-heading .eyebrow { margin-bottom: 5px; }
.bag-id-section-heading .muted { margin: 5px 0 0; font-size: .65rem; }
.bag-id-section-heading .primary { padding: 9px 11px; font-size: .67rem; white-space: nowrap; }
.bag-id-crop-count { display: inline-flex; flex: 0 0 auto; align-items: center; min-height: 24px; padding: 4px 8px; border-radius: 20px; color: #aaf3d5; background: rgba(66,215,165,.12); font-size: .58rem; font-weight: 850; }
.bag-id-crop-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-bottom: 10px; }
.bag-id-crop-toolbar button { padding: 7px 9px; font-size: .64rem; }
.bag-id-image-stage { min-height: 318px; overflow: hidden; border: 1px solid rgba(249,212,35,.16); border-radius: 12px; background: #090f20; line-height: 0; }
.bag-id-image-canvas { position: relative; width: 100%; }
#bag-id-captured-image { display: block; width: 100%; height: auto; background: #090f20; }
.bag-id-image-placeholder { min-height: 318px; display: grid; align-content: center; justify-items: center; gap: 7px; padding: 30px; color: var(--muted); line-height: normal; text-align: center; }
.bag-id-image-placeholder span { color: rgba(249,212,35,.75); font-size: 2.5rem; }
.bag-id-image-placeholder strong { color: var(--text); font-size: .8rem; }
.bag-id-image-placeholder small { font-size: .65rem; }
.bag-id-crop-overlay { position: absolute; inset: 0; cursor: crosshair; touch-action: none; }
.bag-id-crop-rect { position: absolute; min-width: 18px; min-height: 18px; border: 2px solid var(--green); border-radius: 5px; cursor: move; touch-action: none; }
.bag-id-crop-rect.selected { z-index: 2; border-color: var(--yellow); box-shadow: 0 0 0 2px rgba(249,212,35,.18); }
.bag-id-crop-label { position: absolute; top: -23px; left: -2px; padding: 4px 6px; border-radius: 5px 5px 5px 0; color: #0f1a18; background: var(--green); font-size: .58rem; font-weight: 900; line-height: 1; }
.bag-id-crop-rect.selected .bag-id-crop-label { color: #17170d; background: var(--yellow); }
.bag-id-crop-handle { position: absolute; z-index: 3; width: 11px; height: 11px; border: 1px solid #16150a; border-radius: 50%; background: var(--yellow); }
.bag-id-crop-handle.nw { top: -6px; left: -6px; cursor: nwse-resize; }.bag-id-crop-handle.ne { top: -6px; right: -6px; cursor: nesw-resize; }.bag-id-crop-handle.sw { bottom: -6px; left: -6px; cursor: nesw-resize; }.bag-id-crop-handle.se { right: -6px; bottom: -6px; cursor: nwse-resize; }
.bag-id-crop-rect:not(.selected) .bag-id-crop-handle { display: none; }
.bag-id-crop-status:empty { display: none; }.bag-id-crop-status { min-height: 18px; margin: 9px 0 0; color: var(--muted); font-size: .65rem; line-height: 1.35; }
.bag-id-action-row { display: flex; align-items: center; gap: 12px; margin-top: 12px; }
.bag-id-action-row .primary { flex: 0 0 auto; padding: 10px 13px; font-size: .7rem; }
.bag-id-camera-card { display: grid; gap: 11px; }
.bag-id-camera-heading { align-items: center; }
.bag-id-camera-status { display: inline-flex; align-items: center; min-height: 22px; padding: 4px 7px; border-radius: 20px; color: var(--muted); background: rgba(255,255,255,.055); font-size: .57rem; font-weight: 800; }
.bag-id-camera-status.ready { color: #aaf3d5; background: rgba(66,215,165,.12); }.bag-id-camera-status.error { color: #ffb7b8; background: rgba(255,78,80,.11); }
.bag-id-video-frame { position: relative; display: grid; min-height: 210px; overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: #090f20; }
.bag-id-video-frame video { width: 100%; min-height: 210px; height: 100%; object-fit: cover; background: #090f20; }
.bag-id-video-placeholder { position: absolute; inset: 0; display: grid; align-content: center; padding: 24px; color: var(--muted); background: linear-gradient(140deg, rgba(34,48,82,.65), rgba(9,15,32,.88)); font-size: .67rem; line-height: 1.45; text-align: center; }
.bag-id-camera-card .wide { min-height: 38px; align-items: center; }
.bag-id-capture-button { min-height: 42px; align-items: center; }.bag-id-capture-button svg { width: 17px; height: 17px; fill: currentColor; }
.bag-id-identify-panel, .bag-id-results-panel { margin-top: 14px; }
.bag-id-section-heading { margin-bottom: 12px; }
.bag-id-identify-results { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; }
.bag-id-identification-card { display: grid; grid-template-columns: 108px minmax(0, 1fr); overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: rgba(5,9,21,.26); content-visibility: auto; contain-intrinsic-size: auto 190px; }
.bag-id-crop-preview { min-height: 145px; display: grid; place-items: center; padding: 8px; background: #0b1122; }
.bag-id-crop-preview img { width: 100%; height: 128px; object-fit: contain; }.bag-id-crop-preview span { color: var(--muted); font-size: .6rem; }
.bag-id-identification-body { display: grid; align-content: start; gap: 8px; padding: 11px; }
.bag-id-card-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: .72rem; }
.bag-id-ready-badge { padding: 3px 6px; border-radius: 6px; color: #aaf3d5; background: rgba(66,215,165,.14); font-size: .55rem; font-weight: 850; }
.bag-id-identification-body label { gap: 4px; color: var(--muted); font-size: .56rem; text-transform: uppercase; }
.bag-id-identification-body select { padding: 7px 8px; font-size: .65rem; text-transform: none; }
.bag-id-candidate-summary { min-width: 0; }.bag-id-candidate-summary strong, .bag-id-candidate-summary small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.bag-id-candidate-summary strong { font-size: .65rem; }.bag-id-candidate-summary small { margin-top: 3px; color: var(--muted); font-size: .55rem; }
.bag-id-identifying { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: .64rem; }.bag-id-spinner { width: 15px; height: 15px; border: 2px solid rgba(249,212,35,.2); border-top-color: var(--yellow); border-radius: 50%; animation: bag-id-spin .8s linear infinite; }
@keyframes bag-id-spin { to { transform: rotate(360deg); } }
.bag-id-identify-error { margin: 0; color: #ffb2b4; font-size: .61rem; line-height: 1.35; }
.bag-id-set-results { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; }
.bag-id-set-matches-load-more { grid-column: 1 / -1; width: 100%; margin: 2px 0 0; }
.bag-id-set-match { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 12px; min-height: 92px; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: rgba(5,9,21,.26); }
.bag-id-set-match h3 { margin: 5px 0 0; font-size: .82rem; }.bag-id-set-match .eyebrow { margin: 0; font-size: .57rem; }
.bag-id-set-link { color: var(--yellow); font-size: .67rem; font-weight: 850; text-decoration: none; }.bag-id-set-link:hover, .bag-id-set-link:focus-visible { text-decoration: underline; }
.bag-id-color-suggestion { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 118px; padding: 13px; border: 1px solid rgba(249,212,35,.32); border-radius: 11px; background: rgba(249,212,35,.055); }
.bag-id-color-suggestion h3 { margin: 5px 0 7px; font-size: .78rem; }.bag-id-color-suggestion .eyebrow { margin: 0; font-size: .57rem; color: var(--yellow); }
.bag-id-color-suggestion .muted { margin: 0; font-size: .61rem; line-height: 1.4; }.bag-id-color-suggestion button { padding: 8px 10px; font-size: .62rem; white-space: nowrap; }
.bag-id-suggestion-sets { margin: 8px 0 0; color: var(--muted); font-size: .6rem; line-height: 1.45; }.bag-id-suggestion-sets a { color: var(--yellow); text-decoration: none; }.bag-id-suggestion-sets a:hover, .bag-id-suggestion-sets a:focus-visible { text-decoration: underline; }
.bag-id-suggestion-note { margin: 8px 0 0; color: #ffd87d; font-size: .58rem; line-height: 1.4; }

.toast { position: fixed; z-index: 50; right: 22px; bottom: 22px; max-width: 360px; padding: 12px 16px; border: 1px solid rgba(66,215,165,.28); border-radius: 10px; background: #172b31; color: #bdf7e4; box-shadow: var(--shadow); font-size: .76rem; }
.toast.error { border-color: rgba(255,78,80,.3); background: #351d2a; color: #ffc0c1; }

@media (max-width: 1100px) {
  .topbar { grid-template-columns: 180px 1fr 190px; }
  .nav-item { padding-inline: 7px; font-size: .63rem; }
  .part-row { grid-template-columns: 22px 65px minmax(140px, 1.3fr) minmax(150px, 1fr) 82px 100px 36px; gap: 8px; }
  .legend { display: none; }
  .part-id-workbench { grid-template-columns: minmax(0, 1fr) 245px; }
  .part-id-identification-card { grid-template-columns: 92px minmax(0, 1fr); }
  .part-id-crop-preview { min-height: 130px; }.part-id-crop-preview > img { height: 72px; }
  .bag-id-workbench { grid-template-columns: minmax(0, 1fr) 300px; }
  .bag-id-identification-card { grid-template-columns: 92px minmax(0, 1fr); }
  .bag-id-crop-preview { min-height: 130px; }.bag-id-crop-preview img { height: 112px; }
  .bricklink-account-grid, .help-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bricklink-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .topbar { height: auto; grid-template-columns: 1fr auto; padding: 13px 16px; }
  .account { justify-self: end; max-width: 42vw; }
  .account #account-name { display: none; }
  .membership-chip { max-width: 120px; }
  #main-nav { grid-column: 1 / -1; justify-content: flex-start; overflow-x: auto; }
  .nav-item { padding: 14px 9px 10px; }
  .workspace { padding: 14px; }
  #wanted-lists-page, #inventory-page, #set-builder-page, #buy-list-page, #part-id-page { grid-template-columns: 1fr; }
  .wanted-list-nav { max-height: 220px; }
  .format-note { display: none; }
  .search-card { grid-template-columns: 1fr; }
  .detail-header { align-items: flex-start; flex-direction: column; }
  #list-detail .header-actions { width: 100%; justify-content: flex-start; }
  #inventory-detail .header-actions { width: 100%; justify-content: flex-start; }
  #inventory-part-id-batch { flex: 1 1 190px; width: auto; }
  .inventory-toolbar { align-items: flex-start; flex-wrap: wrap; }
  .inventory-selection, .bulk-actions, .inventory-metrics { flex-wrap: wrap; }
  .line-item-search { width: min(300px, 68vw); }
  .inventory-metrics { width: 100%; justify-content: flex-end; }
  .bulk-actions select { width: 170px; }
  .part-row { grid-template-columns: 22px 58px 1fr 34px; }
  .part-thumb { width: 56px; height: 56px; }.part-thumb img { width: 52px; height: 52px; }
  .pricing, .editor-field { grid-column: 3; }
  .remove-item { grid-column: 4; grid-row: 1; }
  .search-result { grid-template-columns: 42px 1fr auto; }
  .search-result select { grid-column: 2; }
  .inventory-overview { flex-wrap: wrap; }
  .inventory-items { height: auto; max-height: none; }
  .inventory-lot-row { grid-template-columns: 24px 58px 1fr; min-width: 0; }
  .set-candidate-main { grid-template-columns: 70px 1fr; }
  .builder-metric { grid-column: span 1; }
  .set-candidate-footer, .builder-actions { align-items: stretch; flex-direction: column; }
  .buy-list-header-actions, .buy-list-propagate { width: 100%; align-items: stretch; flex-direction: column; }
  .buy-list-propagate button { flex-basis: auto; width: 100%; }
  .buy-list-item-row { grid-template-columns: 58px 1fr; min-width: 0; }
  .buy-required, .buy-missing-editor { grid-column: 2; }
  .buy-list-item-row .price-metric { grid-column: 2; }
  .missing-part-row { grid-template-columns: 58px 1fr repeat(2, 70px); }
  .missing-part-metric:nth-last-child(-n+2) { grid-row: 2; }
  .inventory-lot-row .part-identity, .inventory-lot-row .lot-cell { grid-column: 3; }
  .part-id-workbench { grid-template-columns: 1fr; }
  .part-id-side-rail { grid-row: 1; }
  .part-id-capture-work { grid-row: 2; }
  .part-id-header, .part-id-mode-heading, .part-id-section-heading { align-items: flex-start; flex-direction: column; }
  .part-id-review-actions { width: 100%; align-items: stretch; flex-wrap: wrap; }.part-id-color-all-control { flex: 1 1 190px; }.part-id-review-actions .primary { flex: 0 0 auto; }
  .part-id-completion-modal { width: min(96vw, 720px); padding: 14px; }.part-id-completion-candidate-main { grid-template-columns: 58px minmax(0, 1fr); }.part-id-completion-candidate-main .builder-metric { grid-column: span 1; }.part-id-completion-candidate-actions { align-items: stretch; flex-direction: column; }.part-id-completion-candidate-actions select { width: 100%; min-width: 0; }
  .part-id-set-modal { width: min(96vw, 720px); padding: 14px; }.part-id-set-content { grid-template-columns: 1fr; overflow: auto; }.part-id-set-results { max-height: 250px; padding-right: 4px; border-right: 0; border-bottom: 1px solid var(--line); }.part-id-set-detail { overflow: visible; padding: 12px 4px 0; }.part-id-set-inventory-row { grid-template-columns: 50px minmax(130px, 1fr) repeat(4, 62px); gap: 6px; }.part-id-set-inventory-row .missing-part-metric { padding: 5px; }
  .part-id-header .header-actions, .part-id-saved-actions { width: 100%; justify-content: flex-start; }
  .part-id-saved-actions select { flex: 1 1 170px; width: auto; }
  .part-id-mode-toggle { width: 100%; }.part-id-mode { flex: 1; }
  .part-id-action-row { align-items: stretch; flex-direction: column; }.part-id-action-row .primary { width: 100%; }
  .part-id-identification-card { grid-template-columns: 96px minmax(0, 1fr); }
  .bag-id-workbench { grid-template-columns: 1fr; }
  .bag-id-camera-card { grid-row: 1; }
  .bag-id-capture-work { grid-row: 2; }
  .bag-id-header, .bag-id-section-heading { align-items: flex-start; flex-direction: column; }
  .bag-id-action-row { align-items: stretch; flex-direction: column; }.bag-id-action-row .primary { width: 100%; }
  .bag-id-identification-card { grid-template-columns: 96px minmax(0, 1fr); }
  .bag-id-color-suggestion { grid-template-columns: 1fr; }.bag-id-color-suggestion button { width: 100%; }
  .bricklink-security-note, .bricklink-account-grid { grid-template-columns: 1fr; }
  .help-grid { grid-template-columns: 1fr; }
  .bricklink-security-note { gap: 7px; }
  .bricklink-action-grid { grid-template-columns: 1fr; }
  .bricklink-action-grid article { min-height: 0; }
  .bricklink-order-row { grid-template-columns: 1fr; gap: 7px; }
  .bricklink-order-actions { flex-wrap: wrap; }
  .bricklink-order-actions select { flex: 1 1 130px; }
  .bricklink-cart-row > div { align-items: flex-start; flex-direction: column; gap: 4px; }.bricklink-cart-row span { text-align: left; }
  .bricklink-sync-counts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bricklink-modal-actions { justify-content: stretch; }.bricklink-modal-actions button { flex: 1; }
}
