:root{color-scheme:light;--bg: #ffffff;--panel: #ffffff;--surface: #f0f2f6;--surface-muted: #e8ecf2;--panel-border: #dfe3ea;--text: #1a1f28;--muted: #5c6578;--accent: #1d6fd0;--accent-dim: #185a9e;--danger: #c42b36;--ok: #1f7a45;--shadow-popover: 0 12px 32px rgba(15, 23, 42, .1);--shadow-popover-lg: 0 16px 40px rgba(15, 23, 42, .12);--radius: 12px;--font: "DM Sans", system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace;--category-block-bg:#f4f7fb;--category-block-border:#d8e0ec;--category-block-shadow:0 1px 3px rgba(15,23,42,.05);--category-block-selected-bg:linear-gradient(165deg,#e3f0ff 0%,#cfe4f8 55%,#b8d9f8 100%);--category-block-selected-border:#1d6fd0;--category-block-selected-shadow:0 0 0 1px rgba(29,111,208,.28),0 6px 20px rgba(29,111,208,.16);--category-block-pending-bg:linear-gradient(180deg,#f5f6f8,#e8eaef);--category-block-pending-border:#c5cad3}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.5}body{overflow-x:hidden}code{font-family:var(--mono);font-size:.9em}.app-shell{min-height:100vh;display:flex;flex-direction:column}.top-nav{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right));padding-top:max(1rem,env(safe-area-inset-top));border-bottom:1px solid var(--panel-border);background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:10;-webkit-tap-highlight-color:transparent}.brand{color:var(--text);text-decoration:none;display:flex;flex-direction:row;align-items:center;gap:.65rem;min-width:0}.brand-mark{width:40px;height:40px;flex-shrink:0;object-fit:contain;display:block}.brand-text-col{display:flex;flex-direction:column;gap:.08rem;line-height:1.15;min-width:0}.brand-title{font-weight:700;letter-spacing:-.02em;font-size:1.12rem}.brand-sub{font-size:.75rem;font-weight:500;color:var(--muted)}.nav-links{display:flex;gap:1.25rem;align-items:center}.nav-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--muted);text-decoration:none;font-weight:500}.nav-link-icon{width:1.125rem;height:1.125rem;flex-shrink:0}.nav-links a.nav-link:hover{color:var(--accent)}.main{flex:1;padding:1.5rem;padding-left:max(1.5rem,env(safe-area-inset-left));padding-right:max(1.5rem,env(safe-area-inset-right));padding-bottom:max(1.5rem,env(safe-area-inset-bottom));max-width:1200px;margin:0 auto;width:100%}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);padding:1.25rem 1.5rem}.panel-head h1{margin:0 0 .35rem;font-size:1.65rem;letter-spacing:-.03em}.config-panel .panel-head h1 .config-panel-title-bike{color:var(--accent);font-weight:inherit}.muted{color:var(--muted)}.small{font-size:.875rem}.layout-two{display:grid;grid-template-columns:1fr minmax(280px,340px);gap:1.25rem;align-items:start}.config-panel{min-height:200px}.bom-panel{position:sticky;top:5.5rem}@media (max-width: 768px){.layout-two{grid-template-columns:1fr;gap:1rem}.bom-panel{position:static;top:auto}.main{padding:1rem;padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right));padding-bottom:max(1rem,env(safe-area-inset-bottom))}.panel{padding:1rem 1.1rem}.panel-head h1{font-size:1.35rem}.config-panel .panel-head>p{font-size:.82rem;line-height:1.45}.chip{min-height:44px;padding:.45rem 1rem;align-items:center;display:inline-flex}.chip-row{gap:.45rem}.chip-bike-type .bike-type-icon,.chip-bike-type .bike-type-icon--img{width:1.875rem;height:1.875rem}.chip.chip-bike-type{width:2.85rem;height:2.85rem}.nav-links{gap:.35rem}.brand-mark{width:34px;height:34px}.brand-title{font-size:1.02rem}.nav-link{min-height:44px;padding:.35rem .65rem;border-radius:8px}.nav-link-icon{width:1.2rem;height:1.2rem}.btn{min-height:44px;padding:.6rem 1rem}.part-picker-trigger{min-height:44px;padding:.5rem .65rem}.part-picker-item{min-height:48px;padding:.5rem .55rem}.bom-stats{gap:.65rem}.stat-value{font-size:1.2rem}.bom-actions{flex-direction:column;align-items:stretch}.bom-actions .btn{width:100%;justify-content:center}.tab{min-height:44px;padding:.5rem 1rem}.category-grid{grid-template-columns:1fr;gap:1rem}button,.btn,.chip,.nav-link{touch-action:manipulation}}.bom-panel h2{margin-top:0}.bom-panel .bom-note-accent{color:var(--accent);font-weight:600}.bom-preview{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--panel-border)}.bom-preview-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.55rem}.bom-preview-title{font-size:.8rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.bom-preview-mat{border-radius:10px;background:linear-gradient(165deg,rgba(255,255,255,.12) 0%,transparent 42%),linear-gradient(180deg,#ebe8e2,#ddd9d1 48%,#cfc9be);box-shadow:inset 0 1px #ffffff8c,inset 0 -1px #0000000a,0 2px 10px #0f172a0f;padding:.65rem .45rem .85rem;min-height:8.5rem;max-height:min(280px,48vh);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-right:2px}.bom-preview-scatter{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:.25rem .35rem}.bom-preview-cell{display:flex;flex-direction:column;align-items:center;gap:.2rem;width:4.85rem;flex-shrink:0;position:relative;transition:transform .2s ease}.bom-preview-cell:nth-child(3n+1){transform:rotate(-3.5deg);z-index:2;margin-top:.15rem}.bom-preview-cell:nth-child(3n+2){transform:rotate(2.2deg);z-index:1;margin-top:.45rem}.bom-preview-cell:nth-child(3n+3){transform:rotate(-1.2deg);z-index:3;margin-top:0}.bom-preview-cell:hover{transform:rotate(0) scale(1.03);z-index:10}.bom-preview-cell-btn{width:100%;margin:0;padding:0;border:none;background:transparent;color:inherit;font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.2rem;text-align:center;border-radius:8px}.bom-preview-cell-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bom-preview-thumb{width:4.75rem;height:4.75rem;border-radius:7px;border:1px solid rgba(15,23,42,.06);background:linear-gradient(180deg,#ffffff73,#ffffff1f);overflow:hidden;display:flex;align-items:center;justify-content:center;padding:.2rem;box-shadow:0 4px 14px #0f172a1f,0 1px 3px #0f172a14}.bom-preview-img{width:100%;height:100%;object-fit:contain;display:block;mix-blend-mode:multiply;filter:drop-shadow(0 2px 3px rgba(0,0,0,.12))}.bom-preview-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:.35rem;color:#1d6fd066}.bom-preview-placeholder .category-icon svg{width:1.65rem;height:1.65rem}.bom-preview-caption{font-size:.65rem;line-height:1.25;color:var(--muted);text-align:center;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}.bom-preview-empty{text-align:center;padding:.85rem .5rem;line-height:1.45;border:1px dashed var(--panel-border);border-radius:var(--radius);background:var(--surface)}.part-detail-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10050;display:flex;align-items:center;justify-content:center;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.part-detail-modal{position:relative;width:min(420px,100%);max-height:min(90vh,720px);overflow:auto;border-radius:12px;border:1px solid var(--panel-border);background:var(--panel);box-shadow:var(--shadow-popover-lg);padding:1.1rem 1.15rem 1.15rem}.part-detail-close{position:absolute;top:.5rem;right:.5rem;width:2.25rem;height:2.25rem;border:none;border-radius:8px;background:transparent;color:var(--muted);font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.part-detail-close:hover{background:var(--surface-muted);color:var(--text)}.part-detail-heading{margin:0 2rem .85rem 0;font-size:1.05rem;font-weight:600;line-height:1.35;color:var(--text)}.part-detail-body{display:flex;flex-direction:column;gap:1rem}.part-detail-hero{border-radius:10px;border:1px solid var(--panel-border);background:var(--surface);display:flex;align-items:center;justify-content:center;min-height:9rem;max-height:min(42vh,320px);padding:.75rem}.part-detail-hero img{max-width:100%;max-height:min(320px,50vh);width:auto;height:auto;object-fit:contain;display:block}.part-detail-placeholder{display:flex;align-items:center;justify-content:center;width:100%;min-height:8rem;color:#1d6fd059}.part-detail-placeholder .category-icon svg{width:4rem;height:4rem}.part-detail-specs{margin:0;display:flex;flex-direction:column;gap:.35rem}.part-detail-row{display:grid;grid-template-columns:6.5rem 1fr;gap:.5rem .75rem;font-size:.88rem;line-height:1.45;align-items:start}.part-detail-row dt{margin:0;color:var(--muted);font-weight:500}.part-detail-row dd{margin:0;color:var(--text);font-variant-numeric:tabular-nums}.part-detail-row-note dd{white-space:pre-wrap;word-break:break-word}.field-label{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:1rem 0 .5rem}.chip-row{display:flex;flex-wrap:wrap;gap:.5rem}.bike-type-row{display:flex;flex-wrap:wrap;align-items:center;margin:1rem 0 .5rem}.chip-row--bike-types{flex-wrap:nowrap;gap:.5rem}.chip{border:1px solid var(--panel-border);background:transparent;color:var(--text);padding:.45rem .85rem;border-radius:999px;cursor:pointer;font-family:inherit;font-size:.9rem}.chip:hover{border-color:var(--accent-dim)}.chip-active{background:#1d6fd01f;border-color:var(--accent);color:var(--accent-dim)}.chip.chip-bike-type{min-width:unset;min-height:unset;width:3.35rem;height:3.35rem;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.chip-bike-type .bike-type-icon{width:2.1875rem;height:2.1875rem;display:block;flex-shrink:0}.chip-bike-type .bike-type-icon--img{object-fit:contain;object-position:center;flex-shrink:0}.category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.25rem;margin-top:1.25rem;align-items:start}.category-grid .category-block{margin-top:0;padding:1rem;border:1px solid var(--category-block-border);border-radius:var(--radius);background:var(--category-block-bg);box-shadow:var(--category-block-shadow);transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.category-grid .category-block--pending,.category-grid .category-block--unavailable{border-color:var(--category-block-pending-border);background:var(--category-block-pending-bg);box-shadow:none}.category-grid .category-block--selected{border-color:var(--category-block-selected-border);background:var(--category-block-selected-bg);box-shadow:var(--category-block-selected-shadow)}.category-block--pending .part-picker-trigger{background:var(--bg);border-color:var(--panel-border)}.category-block--selected .part-picker-trigger{background:#fff;border-color:#93c5fd;box-shadow:0 1px 2px #0f172a0a}.category-block--pending .part-picker-trigger:hover{border-color:var(--accent-dim)}.category-block--selected .part-picker-trigger:hover{border-color:var(--accent);box-shadow:0 2px 6px #1d6fd01f}.category-picker-row{display:flex;align-items:center;gap:.65rem;min-width:0}.category-picker-row .category-title{margin-bottom:0;flex:0 1 42%;min-width:0}.category-picker-row .part-picker{flex:1 1 0;min-width:0}.category-picker-empty{flex:1 1 0;min-width:0;min-height:2.75rem;display:flex;align-items:center;gap:.5rem;padding:.45rem .65rem;border-radius:8px;border:1px dashed var(--panel-border);background:var(--surface-muted);color:var(--muted);font-size:.88rem;line-height:1.3;box-sizing:border-box;cursor:default}.category-block--unavailable .category-picker-empty{border:none;background:transparent;padding:0;padding-left:.15rem}.category-picker-empty-slot{flex-shrink:0;width:32px;height:32px;border-radius:5px;border:1px dashed var(--panel-border);background:var(--bg);opacity:.55;box-sizing:border-box}.category-block>.category-remark{margin-top:.45rem}.category-title{font-weight:600;margin-bottom:.5rem}.category-title-label{display:inline-flex;align-items:center;gap:.35rem}.category-icon{display:inline-flex;flex-shrink:0;align-items:center;color:#1d6fd073;vertical-align:middle}.category-icon svg{width:.95em;height:.95em;display:block}.category-remark{margin-top:.3rem;font-size:.8rem;font-weight:400;color:var(--muted);line-height:1.45;white-space:pre-wrap;word-break:break-word}.td-remark{max-width:16rem;font-size:.82rem;color:var(--muted);white-space:pre-wrap;word-break:break-word;vertical-align:top}.part-picker{position:relative;width:100%;max-width:100%}.part-picker-trigger{width:100%;min-height:2.75rem;display:flex;align-items:center;gap:.5rem;padding:.45rem .65rem;border-radius:8px;border:1px solid var(--panel-border);background:var(--surface);color:var(--text);font-family:inherit;font-size:.88rem;text-align:left;cursor:pointer;box-sizing:border-box}.part-picker-thumb-slot{flex-shrink:0;width:32px;height:32px;border-radius:5px;border:1px dashed var(--panel-border);background:var(--surface-muted);opacity:.45;box-sizing:border-box}.part-picker-row-empty{flex:1;min-width:0}.part-picker-row-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;line-height:1.3}.part-picker-row-p{flex-shrink:0;display:inline-flex;align-items:center;gap:.2rem;font-size:.82rem;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums}.part-picker-row-p .category-icon{color:#1d6fd08c}.thumb-hover-anchor{position:relative;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.thumb-hover-sm{width:32px;height:32px;object-fit:cover;border-radius:5px;border:1px solid var(--panel-border);background:var(--surface-muted);display:block}.thumb-hover-popover{padding:4px;border-radius:10px;border:1px solid var(--panel-border);background:var(--panel);box-shadow:var(--shadow-popover-lg);pointer-events:auto}.thumb-hover-popover img{display:block;max-width:min(260px,70vw);max-height:min(260px,55vh);width:auto;height:auto;object-fit:contain;border-radius:6px}.part-picker-noimg{display:inline-block;width:32px;height:32px;border-radius:5px;background:var(--surface-muted);border:1px dashed var(--panel-border);flex-shrink:0}.part-picker-chevron{flex-shrink:0;font-size:.65rem;color:var(--muted);margin-left:auto}.part-picker-panel{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;max-height:min(320px,55vh);overflow-y:auto;border-radius:8px;border:1px solid var(--panel-border);background:var(--panel);box-shadow:var(--shadow-popover)}.part-picker-item{width:100%;display:flex;align-items:center;gap:.5rem;padding:.4rem .55rem;border:none;border-bottom:1px solid var(--panel-border);background:transparent;color:var(--text);font-family:inherit;font-size:.86rem;text-align:left;cursor:pointer}.part-picker-item:last-child{border-bottom:none}.part-picker-item:hover{background:#1d6fd00f}.part-picker-item-active{background:#1d6fd01a}.select,.input,.textarea{width:100%;max-width:100%;border-radius:8px;border:1px solid var(--panel-border);background:var(--surface);color:var(--text);padding:.55rem .75rem;font-family:inherit;font-size:.95rem}.textarea.mono{font-family:var(--mono);font-size:.82rem}.select:focus,.input:focus,.textarea:focus{outline:2px solid rgba(29,111,208,.28);border-color:var(--accent)}.btn{border:1px solid var(--panel-border);background:var(--surface);color:var(--text);padding:.55rem 1rem;border-radius:8px;cursor:pointer;font-family:inherit;font-weight:500}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:linear-gradient(180deg,var(--accent),var(--accent-dim));border-color:transparent;color:#fff}.btn.primary:hover:not(:disabled){filter:brightness(1.06)}.btn.danger{border-color:#c42b3659;color:var(--danger);background:#c42b360f}.btn.danger:hover:not(:disabled){background:#c42b361f}.btn.linkish{border:none;background:none;padding:.2rem .4rem;color:var(--accent)}.btn.linkish.danger{color:var(--danger)}.alert{padding:.65rem .85rem;border-radius:8px;margin:.75rem 0;font-size:.9rem}.alert-error{background:#c42b3614;border:1px solid rgba(196,43,54,.28);color:#9a1f28}.alert-ok{background:#1f7a4514;border:1px solid rgba(31,122,69,.28);color:#145a2e}.part-detail{margin-top:.65rem;padding:.75rem;background:var(--surface);border-radius:8px;border:1px solid var(--panel-border)}.kv{display:grid;grid-template-columns:88px 1fr;gap:.35rem .75rem;margin:0;font-size:.88rem}.kv dt{margin:0;color:var(--muted)}.kv dd{margin:0}.kv-price-val{display:flex;align-items:center;gap:.3rem}.extras{margin-top:.65rem}.extras-list{margin:.35rem 0 0;padding-left:1.1rem;font-size:.85rem}.bom-stats{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:1rem 0}.stat-label{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:1.35rem;font-weight:700;letter-spacing:-.02em}.bom-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.bom-table-wrap{position:relative;margin:.75rem 0 1rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.bom-table-watermark{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;user-select:none;-webkit-user-select:none;background-repeat:repeat;-webkit-print-color-adjust:exact;print-color-adjust:exact}.bom-table-wrap .bom-table{position:relative;z-index:2;width:max-content;min-width:100%;font-size:.75rem;line-height:1.2}.bom-table-wrap .bom-table th,.bom-table-wrap .bom-table td{padding:.22rem .4rem;white-space:nowrap;vertical-align:middle}.bom-table-wrap .bom-table th{padding-top:.28rem;padding-bottom:.28rem;font-size:.7rem;letter-spacing:.02em}.bom-row-empty td{font-style:italic}.bom-foot-label{font-weight:600;color:var(--muted)}.bom-foot-mid{border-bottom:1px solid var(--panel-border)}.bom-foot-value{font-weight:700;font-size:.88rem;white-space:nowrap}.part-detail-img-wrap{margin-bottom:.65rem;border-radius:8px;overflow:hidden;border:1px solid var(--panel-border);max-height:200px;background:var(--surface)}.part-detail-img{display:block;width:100%;max-height:200px;object-fit:contain}.field-label-inline{font-size:.8rem;color:var(--muted);margin-bottom:.45rem}.image-upload-hint{margin:0 0 .5rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.image-dropzone{border:1px dashed var(--panel-border);border-radius:8px;padding:1rem;min-height:120px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:var(--surface);transition:border-color .15s,background .15s}.image-dropzone:hover,.image-dropzone-active{border-color:var(--accent);background:#1d6fd00f}.image-dropzone-placeholder{text-align:center;font-size:.9rem}.image-dropzone-preview{width:100%;text-align:center}.image-dropzone-preview img{max-width:100%;max-height:160px;object-fit:contain;border-radius:6px}.image-dropzone-hint{margin-top:.5rem;font-size:.8rem;color:var(--muted)}.image-url-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-end;margin-top:.65rem}.image-url-label{flex:1;min-width:200px;display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--muted)}.parts-list-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem;margin:.5rem 0 .65rem}.parts-list-toolbar-actions{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.parts-list-hint{opacity:.85}.td-check{width:36px;text-align:center;vertical-align:middle}.td-check input[type=checkbox]{width:1rem;height:1rem;cursor:pointer;accent-color:var(--accent)}.td-thumb{width:52px;padding:.35rem!important}.part-thumb{width:44px;height:44px;object-fit:cover;border-radius:6px;border:1px solid var(--panel-border);display:block}.admin-page{display:flex;flex-direction:column;gap:1rem}.admin-token-panel code{color:var(--accent-dim)}.token-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.token-row .input{flex:1;min-width:200px}.admin-tabs{display:flex;gap:.35rem}.tab{border:1px solid var(--panel-border);background:var(--surface);color:var(--muted);padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-family:inherit}.tab-active{color:var(--text);border-color:var(--accent);background:#1d6fd01a}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.85rem 1rem;margin-top:.75rem}.form-grid label{display:flex;flex-direction:column;gap:.35rem;font-size:.88rem;color:var(--muted)}.span-2{grid-column:span 2}@media (max-width: 700px){.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}}.form-actions{display:flex;flex-wrap:wrap;gap:.5rem}.types-fieldset{border:1px dashed var(--panel-border);border-radius:8px;margin:0;padding:.65rem .85rem}.types-fieldset legend{padding:0 .35rem;color:var(--muted);font-size:.85rem}.mt-lg{margin-top:1.75rem}.table-wrap{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;margin-top:.75rem;border:1px solid var(--panel-border);border-radius:8px;max-width:100%}.table{width:100%;border-collapse:collapse;font-size:.85rem}.table th,.table td{padding:.5rem .65rem;text-align:left;border-bottom:1px solid var(--panel-border);vertical-align:top;overflow-wrap:anywhere;word-break:break-word}.table th{background:var(--surface-muted);color:var(--muted);font-weight:600}.table-actions{white-space:nowrap}.admin-upload-preview{margin-top:.5rem;display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.admin-upload-preview img{max-height:120px;border-radius:8px;border:1px solid var(--panel-border);background:var(--surface)}.admin-part-fields{display:flex;flex-direction:column;gap:1rem;margin-top:.5rem;padding:1rem 1.15rem;border:1px solid var(--panel-border);border-radius:var(--radius);background:var(--surface)}.admin-part-row{display:grid;gap:1rem 1.25rem}.admin-part-row-main{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-part-row-desc{grid-template-columns:1fr;padding-top:1rem;border-top:1px solid var(--panel-border)}.admin-part-row label{display:flex;flex-direction:column;gap:.4rem;font-size:.82rem;font-weight:500;letter-spacing:.02em;color:var(--muted)}.admin-part-desc-label{width:100%}.admin-part-desc-label textarea{min-height:4.5rem;resize:vertical;width:100%}@media (max-width:960px){.admin-part-row-main{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.admin-part-row-main{grid-template-columns:1fr}}.admin-part-image-dropzone{cursor:pointer;border:1px dashed var(--panel-border);border-radius:8px;padding:1rem;min-height:140px;background:var(--surface);transition:border-color .15s,background .15s;outline:none}.admin-part-image-dropzone:focus-visible{outline:2px solid rgba(29,111,208,.35);outline-offset:2px}.admin-part-image-dropzone--active{border-color:var(--accent);background:#1d6fd00f}.admin-part-image-dropzone-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;text-align:center;min-height:100px}.admin-part-image-preview{max-width:100%;max-height:min(200px,40vh);object-fit:contain;border-radius:8px;border:1px solid var(--panel-border);background:var(--bg)}.admin-part-image-actions{margin-top:.25rem}.admin-parts-filters{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,12rem);gap:1rem;align-items:end;margin:1rem 0 .35rem;padding:0 .05rem}@media (max-width:600px){.admin-parts-filters{grid-template-columns:1fr}}.admin-filter-field{display:flex;flex-direction:column;gap:.4rem;font-size:.82rem;font-weight:500;color:var(--muted)}.admin-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20000;display:flex;align-items:center;justify-content:center;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.admin-modal{width:min(480px,100%);max-height:min(90vh,720px);overflow:auto;border-radius:12px;border:1px solid var(--panel-border);background:var(--panel);box-shadow:var(--shadow-popover-lg);padding:1.15rem 1.25rem 1.25rem}.admin-modal-title{margin:0 0 1rem;font-size:1.15rem;font-weight:600;letter-spacing:-.02em}.admin-modal-form{display:flex;flex-direction:column;gap:.85rem}.admin-modal-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.82rem;color:var(--muted)}.admin-modal-row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width:480px){.admin-modal-row2{grid-template-columns:1fr}}.admin-modal-image-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.admin-modal-image-preview{max-width:100%;max-height:160px;object-fit:contain;border-radius:8px;border:1px solid var(--panel-border);margin-top:.35rem}.admin-modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.35rem;padding-top:.5rem;border-top:1px solid var(--panel-border)}.table .table-actions{white-space:nowrap}.table .table-actions .btn{padding:.35rem .5rem;min-height:auto}.admin-list-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin:1rem 0 .5rem;padding:0 .05rem}.table-wrap+.admin-list-toolbar{margin-top:.75rem;margin-bottom:.5rem}.admin-page-size{display:inline-flex;align-items:center;gap:.45rem;font-size:.88rem;color:var(--muted)}.admin-page-size-select{width:auto;min-width:4.5rem;padding:.4rem .55rem;font-size:.9rem}.admin-pagination{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.45rem}.admin-page-indicator{min-width:6.75rem;text-align:center}@media (max-width:520px){.admin-list-toolbar{flex-direction:column;align-items:stretch}.admin-pagination{justify-content:center}}.visually-hidden-file{position:absolute;width:0;height:0;opacity:0;pointer-events:none;overflow:hidden}.part-detail-backdrop.part-detail-backdrop--pass-through{pointer-events:none}.part-detail-backdrop.part-detail-backdrop--pass-through .part-detail-modal{pointer-events:auto}.part-detail-hero.part-detail-hero--carousel{padding:0;overflow:hidden}.part-detail-carousel-frame{position:relative;width:100%;min-height:9rem;max-height:min(48vh,360px)}.part-detail-carousel-main{display:flex;align-items:center;justify-content:center;width:100%;min-height:9rem;max-height:min(48vh,360px);padding:.35rem .25rem}.part-detail-carousel-main img{max-width:100%;max-height:min(360px,52vh);width:auto;height:auto;object-fit:contain;display:block}.part-detail-carousel-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:2.35rem;height:2.35rem;min-width:2.35rem;min-height:2.35rem;padding:0;display:flex;align-items:center;justify-content:center;border:1px solid var(--panel-border);border-radius:999px;background:#ffffffeb;color:var(--text);font-size:1.35rem;line-height:1;font-weight:600;cursor:pointer;box-shadow:0 1px 6px #0f172a1f;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.part-detail-carousel-btn:hover{background:#fff;border-color:var(--accent-dim)}.part-detail-carousel-btn--prev{left:.4rem}.part-detail-carousel-btn--next{right:.4rem}.admin-part-image-grid{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-start;max-width:100%}.admin-part-image-grid-item{display:flex;flex-direction:column;align-items:center;gap:.35rem}.admin-part-image-thumb{width:80px;height:80px;object-fit:cover;border-radius:8px;border:1px solid var(--panel-border);background:var(--bg)}.admin-part-image-remove{font-size:.8rem;padding:.15rem .35rem;min-height:auto}.admin-modal-image-grid{margin-top:.5rem;justify-content:flex-start}.site-footer{flex-shrink:0;width:100%;max-width:1200px;margin:0 auto;padding:1rem 1.5rem 1.35rem;padding-left:max(1.5rem,env(safe-area-inset-left));padding-right:max(1.5rem,env(safe-area-inset-right));padding-bottom:max(1.35rem,env(safe-area-inset-bottom));border-top:1px solid var(--panel-border);background:linear-gradient(180deg,var(--surface) 0%,var(--surface-muted) 100%);box-sizing:border-box}.site-footer-inner{max-width:100%;margin:0 auto;min-width:0;text-align:center;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:thin}.site-footer-inner::-webkit-scrollbar{height:3px}.site-footer-inner::-webkit-scrollbar-thumb{background:var(--panel-border);border-radius:99px}.site-footer-row{display:inline-flex;flex-wrap:nowrap;align-items:baseline;justify-content:center;gap:.3rem .4rem;margin:0;padding:.15rem .15rem .25rem;white-space:nowrap;font-size:clamp(.74rem,2.1vw,.875rem);line-height:1.45;vertical-align:middle}.site-footer-row--record{display:flex;width:100%;justify-content:center;padding-top:0}.site-footer-lead{flex-shrink:0}.site-footer-sep{flex-shrink:0;-webkit-user-select:none;user-select:none;font-weight:300;opacity:.5}.site-footer-pill{display:inline-flex;flex-direction:row;flex-wrap:nowrap;align-items:baseline;gap:.28rem;padding:.12rem .45rem .14rem;border-radius:999px;border:1px solid var(--panel-border);background:var(--bg);flex-shrink:0;box-shadow:0 1px 2px #0f172a0a}.site-footer-pill-k{font-size:.92em;font-weight:400;line-height:1.2}.site-footer-pill-val{font-weight:700;font-size:1.02em;letter-spacing:-.015em;color:var(--accent-dim);line-height:1.2}.site-footer-pill-val--copy{-webkit-user-select:all;user-select:all;font-variant-numeric:tabular-nums}@media (max-width: 768px){.site-footer{padding:.85rem 1rem 1.1rem;padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right));padding-bottom:max(1.1rem,env(safe-area-inset-bottom))}.site-footer-row{gap:.25rem .32rem;padding-bottom:.35rem;font-size:clamp(.7rem,3.1vw,.82rem)}.site-footer-pill{padding:.1rem .38rem .12rem;gap:.22rem}}.table .td-check,.table .table-actions{vertical-align:middle}@media (max-width: 720px){.table-wrap{overflow-x:auto}.table-wrap>.table{width:100%;max-width:100%;min-width:0;table-layout:auto}.table-wrap>.table th,.table-wrap>.table td{word-break:break-word;overflow-wrap:break-word}.bom-table-wrap{overflow-x:auto}.bom-table-wrap .bom-table{width:100%;min-width:0;max-width:100%;table-layout:fixed}.bom-table-wrap .bom-table th,.bom-table-wrap .bom-table td{white-space:normal;vertical-align:top;word-break:break-word;overflow-wrap:break-word}.bom-table-wrap .bom-table th:nth-child(1),.bom-table-wrap .bom-table td:nth-child(1){width:22%}.bom-table-wrap .bom-table th:nth-child(2),.bom-table-wrap .bom-table td:nth-child(2){width:36%}.bom-table-wrap .bom-table th:nth-child(3),.bom-table-wrap .bom-table td:nth-child(3){width:24%}.bom-table-wrap .bom-table th:nth-child(4),.bom-table-wrap .bom-table td:nth-child(4){width:18%}.bom-table-wrap .bom-table td.bom-table-cell-price,.bom-table-wrap .bom-table .bom-foot-value{white-space:nowrap;vertical-align:middle}.bom-table-wrap .bom-table td.bom-table-cell-img{vertical-align:middle}.table-wrap.tools-tire-table-wrap{overflow-x:visible}.table-wrap.tools-tire-table-wrap>.table.tools-tire-table{table-layout:fixed;width:100%;min-width:0}.table-wrap.tools-tire-table-wrap>.table.tools-tire-table thead th:nth-child(1),.table-wrap.tools-tire-table-wrap>.table.tools-tire-table tbody td:nth-child(1){width:54%}.table-wrap.tools-tire-table-wrap>.table.tools-tire-table thead th:nth-child(2),.table-wrap.tools-tire-table-wrap>.table.tools-tire-table tbody td:nth-child(2){width:22%}.table-wrap.tools-tire-table-wrap>.table.tools-tire-table thead th:nth-child(3),.table-wrap.tools-tire-table-wrap>.table.tools-tire-table tbody td:nth-child(3){width:24%}.table-wrap.tools-tire-table-wrap>.table.tools-tire-table tbody td:nth-child(2){white-space:nowrap}.table-wrap.tools-tire-table-wrap>.table.tools-tire-table thead th:nth-child(1),.table-wrap.tools-tire-table-wrap>.table.tools-tire-table thead th:nth-child(2),.table-wrap.tools-tire-table-wrap>.table.tools-tire-table thead th:nth-child(3){max-width:none;min-width:0}.table-wrap.tools-torque-table-wrap,.table-wrap.tools-cassette-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-wrap.tools-torque-table-wrap>.table.tools-torque-table,.table-wrap.tools-torque-table-wrap>.table.tools-cable-table,.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table,.table-wrap.tools-torque-table-wrap>.table.tools-kit-table,.table-wrap.tools-cassette-table-wrap>.table.tools-cassette-table{width:max-content;min-width:100%;max-width:none;table-layout:auto;font-size:.78rem;line-height:1.3}.table-wrap.tools-torque-table-wrap>.table.tools-torque-table th,.table-wrap.tools-torque-table-wrap>.table.tools-torque-table td,.table-wrap.tools-torque-table-wrap>.table.tools-cable-table th,.table-wrap.tools-torque-table-wrap>.table.tools-cable-table td,.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table th,.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table td,.table-wrap.tools-torque-table-wrap>.table.tools-kit-table th,.table-wrap.tools-torque-table-wrap>.table.tools-kit-table td,.table-wrap.tools-cassette-table-wrap>.table.tools-cassette-table th,.table-wrap.tools-cassette-table-wrap>.table.tools-cassette-table td{padding:.3rem .4rem;vertical-align:top}.table-wrap.tools-torque-table-wrap .tools-torque-note-text{line-height:1.32}.table-wrap.tools-torque-table-wrap>.table.tools-torque-table--bands th:nth-child(1),.table-wrap.tools-torque-table-wrap>.table.tools-torque-table--bands td:nth-child(1),.table-wrap.tools-torque-table-wrap>.table.tools-torque-table--bands th:nth-child(3),.table-wrap.tools-torque-table-wrap>.table.tools-torque-table--bands td:nth-child(3){white-space:nowrap;word-break:normal;overflow-wrap:normal}.table-wrap.tools-torque-table-wrap>.table.tools-cable-table th:nth-child(1),.table-wrap.tools-torque-table-wrap>.table.tools-cable-table td:nth-child(1),.table-wrap.tools-torque-table-wrap>.table.tools-cable-table th:nth-child(2),.table-wrap.tools-torque-table-wrap>.table.tools-cable-table td:nth-child(2),.table-wrap.tools-torque-table-wrap>.table.tools-cable-table th:nth-child(4),.table-wrap.tools-torque-table-wrap>.table.tools-cable-table td:nth-child(4),.table-wrap.tools-torque-table-wrap>.table.tools-cable-table th:nth-child(5),.table-wrap.tools-torque-table-wrap>.table.tools-cable-table td:nth-child(5){white-space:nowrap;word-break:normal;overflow-wrap:normal}.table-wrap.tools-cassette-table-wrap>.table.tools-cassette-table th:nth-child(2),.table-wrap.tools-cassette-table-wrap>.table.tools-cassette-table td:nth-child(2),.table-wrap.tools-cassette-table-wrap>.table.tools-cassette-table th:nth-child(3),.table-wrap.tools-cassette-table-wrap>.table.tools-cassette-table td:nth-child(3){white-space:nowrap;word-break:normal;overflow-wrap:normal}.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table th:nth-child(1),.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table td:nth-child(1),.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table th:nth-child(3),.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table td:nth-child(3),.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table th:nth-child(4),.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table td:nth-child(4),.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table th:nth-child(5),.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table td:nth-child(5),.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table th:nth-child(6),.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table td:nth-child(6),.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table th:nth-child(7),.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table td:nth-child(7),.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table th:nth-child(8),.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table td:nth-child(8),.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table th:nth-child(9),.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table td:nth-child(9),.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table th:nth-child(10),.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table td:nth-child(10),.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table th:nth-child(11),.table-wrap.tools-torque-table-wrap>.table.tools-groupset-table td:nth-child(11){white-space:nowrap;word-break:normal;overflow-wrap:normal}.table-wrap.tools-torque-table-wrap>.table.tools-kit-table th:nth-child(1),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table td:nth-child(1),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table th:nth-child(2),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table td:nth-child(2),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table th:nth-child(4),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table td:nth-child(4),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table th:nth-child(5),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table td:nth-child(5),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table th:nth-child(6),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table td:nth-child(6),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table th:nth-child(7),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table td:nth-child(7),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table th:nth-child(8),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table td:nth-child(8),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table th:nth-child(9),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table td:nth-child(9),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table th:nth-child(10),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table td:nth-child(10),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table th:nth-child(11),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table td:nth-child(11),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table th:nth-child(12),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table td:nth-child(12),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table th:nth-child(13),.table-wrap.tools-torque-table-wrap>.table.tools-kit-table td:nth-child(13){white-space:nowrap;word-break:normal;overflow-wrap:normal}}@media (max-width: 640px){.category-picker-row{flex-direction:column;align-items:stretch;gap:.5rem}.category-picker-row .category-title{flex:none;width:100%;max-width:none}.category-picker-row .part-picker{width:100%;min-width:0}.part-picker-row-empty{font-size:.74rem;white-space:nowrap;letter-spacing:-.02em}.category-picker-empty{font-size:.78rem;white-space:nowrap}}@media (max-width: 480px){.app-shell{min-height:100dvh;min-height:-webkit-fill-available}.top-nav{flex-wrap:wrap;row-gap:.45rem;padding-left:max(.65rem,env(safe-area-inset-left));padding-right:max(.65rem,env(safe-area-inset-right));padding-top:max(.55rem,env(safe-area-inset-top));padding-bottom:.6rem}.brand-mark{width:32px;height:32px}.brand-title{font-size:1rem}.brand-sub{font-size:.68rem;max-width:11rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-links{flex:1 1 100%;justify-content:flex-end;gap:.2rem}.nav-link{font-size:.86rem;padding:.38rem .5rem;border-radius:8px}.main{padding:.65rem .75rem;padding-bottom:max(.85rem,env(safe-area-inset-bottom))}.panel{padding:.85rem .95rem;border-radius:10px}.panel-head h1{font-size:1.18rem;line-height:1.28}.config-panel .panel-head>p{font-size:.8rem;line-height:1.42}.bike-type-row{margin:.65rem 0 .4rem}.chip-row--bike-types{flex-wrap:wrap;justify-content:flex-start;gap:.35rem}.category-grid{gap:.85rem;margin-top:1rem}.category-grid .category-block{padding:.85rem .9rem}.category-title{font-size:.95rem}.part-picker-row-empty{font-size:.68rem;letter-spacing:-.03em}.category-picker-empty{font-size:.72rem}.bom-preview{margin-bottom:.85rem;padding-bottom:.85rem}.bom-preview-mat{max-height:min(200px,40svh);padding:.5rem .4rem .65rem;border-radius:8px}.bom-preview-cell{width:4.35rem}.bom-preview-thumb{width:4.35rem;height:4.35rem}.bom-preview-caption{font-size:.62rem}.bom-stats{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.5rem .65rem;margin:.85rem 0}.stat-value{font-size:1.12rem}.bom-panel h2{font-size:1.05rem}.bom-panel .muted.small{font-size:.78rem}.part-detail-modal{width:calc(100% - 1rem);max-width:100%;max-height:min(92dvh,100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 1.25rem);padding:1rem .9rem;border-radius:12px}.part-detail-heading{font-size:.95rem;margin-right:1.75rem}.part-detail-row{grid-template-columns:1fr;gap:.12rem;font-size:.86rem}.part-detail-row dt{font-size:.74rem;margin-bottom:.05rem}.part-detail-carousel-btn{width:2.75rem;height:2.75rem;min-width:2.75rem;min-height:2.75rem;padding:0}.part-detail-carousel-btn--prev{left:max(.3rem,env(safe-area-inset-left))}.part-detail-carousel-btn--next{right:max(.3rem,env(safe-area-inset-right))}.admin-page{gap:.85rem}.admin-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:.3rem;padding-bottom:4px;margin:0 -.15rem;padding-left:.15rem;padding-right:.15rem;scrollbar-width:thin}.admin-tabs .tab{flex:0 0 auto;padding:.45rem .85rem;font-size:.88rem}.token-row .input{min-width:0;width:100%}.admin-modal{width:calc(100vw - 1rem);max-width:min(480px,calc(100vw - 1rem));max-height:min(88dvh,100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 1rem);padding:1rem .95rem 1.1rem;margin:0 auto}.admin-modal-title{font-size:1.05rem;padding-right:1.5rem}.admin-modal-actions{flex-direction:column-reverse;align-items:stretch;gap:.45rem}.admin-modal-actions .btn{width:100%;justify-content:center;min-height:44px}.table{font-size:.78rem}.table th,.table td{padding:.4rem .45rem}.admin-part-fields{padding:.85rem .9rem}.admin-part-image-dropzone{padding:.85rem;min-height:120px}.admin-parts-filters{margin:.85rem 0 .3rem;gap:.75rem}}.analytics-page .analytics-back-link{color:var(--accent);text-decoration:none;font-weight:500}.analytics-page .analytics-back-link:hover{text-decoration:underline}.admin-analytics-back{margin:.25rem 0 .75rem}.admin-analytics-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin:.5rem 0 1.25rem}.admin-analytics-range{display:inline-flex;align-items:center;gap:.5rem;font-size:.9rem}.analytics-stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.85rem;margin-bottom:1.5rem}.analytics-stat-card{background:var(--surface);border:1px solid var(--panel-border);border-radius:var(--radius);padding:1rem 1.1rem}.analytics-stat-label{font-size:.78rem;color:var(--muted);margin-bottom:.35rem}.analytics-stat-value{font-size:1.45rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.analytics-stat-sub{margin-top:.35rem;line-height:1.35}.analytics-section{margin-bottom:1.5rem}.analytics-section-title{font-size:1rem;font-weight:600;margin:0 0 .65rem}.analytics-day-chart{display:flex;flex-direction:column;gap:.35rem}.analytics-day-row{display:grid;grid-template-columns:3.25rem 1fr auto;align-items:center;gap:.5rem;font-size:.82rem}.analytics-day-label{color:var(--muted);font-variant-numeric:tabular-nums}.analytics-day-bars{display:flex;flex-direction:column;gap:2px;min-height:1.5rem;justify-content:center}.analytics-day-bar{height:6px;border-radius:3px;min-width:2px;transition:width .15s ease}.analytics-day-bar--pv{background:linear-gradient(90deg,var(--accent-dim),var(--accent))}.analytics-day-bar--click{background:linear-gradient(90deg,#6b7280,#9ca3af)}.analytics-day-bar--uv{background:linear-gradient(90deg,#0f766e,#2dd4bf)}.analytics-legend-uv{color:#0d9488}.analytics-day-num{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.78rem;text-align:right}.analytics-legend{margin:.5rem 0 0}.analytics-legend-pv{color:var(--accent)}.analytics-legend-click{color:#6b7280}.mono-inline{font-family:var(--mono, ui-monospace, monospace);font-size:.88em}.analytics-city-hint{margin:0 0 .75rem}.analytics-city-chart{display:flex;flex-direction:column;gap:.5rem}.analytics-city-row{display:grid;grid-template-columns:minmax(4.5rem,7.5rem) 1fr auto;align-items:center;gap:.5rem .65rem;font-size:.88rem}.analytics-city-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.analytics-city-bar-wrap{min-width:0;height:1.35rem;background:var(--surface-muted);border-radius:6px;overflow:hidden;border:1px solid var(--panel-border)}.analytics-city-bar{height:100%;min-width:4px;border-radius:5px;background:linear-gradient(90deg,#0d9488,#14b8a6);transition:width .18s ease}.analytics-city-count{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.82rem;min-width:3rem;text-align:right}.analytics-part-pop-hint{margin:0 0 1rem}.analytics-part-category{margin-bottom:1.35rem}.analytics-part-category:last-child{margin-bottom:0}.analytics-part-category-title{font-size:.95rem;font-weight:600;margin:0 0 .5rem;color:var(--text)}.analytics-part-rank-table .analytics-part-rank-col{width:2.25rem;text-align:right;font-variant-numeric:tabular-nums}.analytics-two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.25rem}.analytics-mini-table .analytics-path-cell{max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analytics-part-table-wrap{margin-top:0}@media (max-width: 480px){.analytics-day-row{grid-template-columns:2.75rem 1fr auto;font-size:.78rem}.analytics-mini-table .analytics-path-cell{max-width:none;white-space:normal;overflow:visible;text-overflow:unset;overflow-wrap:anywhere;word-break:break-word}.analytics-city-row{grid-template-columns:minmax(3.5rem,5.5rem) 1fr auto;font-size:.82rem}}.category-block--unavailable .category-picker-empty{border:1px dashed var(--panel-border);background:var(--surface-muted);padding:.45rem .65rem;min-height:2.75rem;align-items:center;box-sizing:border-box}@media (max-width: 768px){.part-picker-trigger,.category-picker-empty{min-height:44px;padding:.5rem .65rem;box-sizing:border-box}.category-block--unavailable .category-picker-empty{border:1px dashed var(--panel-border);background:var(--surface-muted);min-height:44px;padding:.5rem .65rem;align-items:center}}.part-picker-panel{left:0;right:auto;min-width:100%;width:min(max(100%,26rem),calc(100vw - 1.5rem));max-width:min(36rem,calc(100vw - 1rem))}.part-picker-panel .part-picker-row-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 768px){.part-picker-panel{left:0;right:auto;transform:none;min-width:100%;width:min(max(100%,26rem),calc(100vw - max(1rem,env(safe-area-inset-left,0px)) - max(1rem,env(safe-area-inset-right,0px)) - 1.5rem));max-width:min(36rem,calc(100vw - max(1rem,env(safe-area-inset-left,0px)) - max(1rem,env(safe-area-inset-right,0px)) - 1.5rem))}}.bom-image-capture-host{position:fixed;left:-10000px;top:0;width:min(560px,100vw);z-index:0;pointer-events:none;box-sizing:border-box}.bom-image-capture-sheet{position:relative;padding:1.25rem 1.35rem;background:#fff;border-radius:10px;border:1px solid var(--panel-border);box-shadow:0 1px #0f172a0a}.bom-image-capture-watermark{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;border-radius:inherit;background-repeat:repeat;-webkit-print-color-adjust:exact;print-color-adjust:exact}.bom-image-capture-title{position:relative;z-index:1;font-size:1.05rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .85rem;color:var(--text)}.bom-image-capture-table{position:relative;z-index:1;width:100%;border-collapse:collapse;font-size:.95rem;line-height:1.45;color:var(--text)}.bom-image-capture-table th,.bom-image-capture-table td{border:1px solid var(--panel-border);padding:.45rem .55rem;text-align:left;vertical-align:top}.bom-image-capture-table thead th{background:var(--surface-muted);font-weight:600;font-size:.82rem;color:var(--muted)}.bom-image-capture-muted{color:var(--muted);font-style:italic}.bom-image-capture-mid{border-color:var(--panel-border)}.bom-image-capture-foot-label{font-weight:600;color:var(--muted)}.bom-image-capture-foot-value{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.bom-image-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10060;display:flex;align-items:center;justify-content:center;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));background:#0f172a73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.bom-image-modal{position:relative;width:min(520px,100%);max-height:min(92vh,900px);overflow:auto;border-radius:12px;border:1px solid var(--panel-border);background:var(--panel);box-shadow:var(--shadow-popover-lg);padding:1.1rem 1.15rem 1.15rem;box-sizing:border-box}.bom-image-modal-heading{margin:0 2.25rem .65rem 0;font-size:1.08rem;font-weight:600;line-height:1.35}.bom-image-modal-loading{margin:.5rem 0 0}.bom-image-modal-hint{margin:0 0 .75rem;line-height:1.5}.bom-image-modal-scroll{border-radius:8px;border:1px solid var(--panel-border);background:var(--surface);overflow:auto;-webkit-overflow-scrolling:touch;max-height:min(58vh,480px);margin-bottom:.85rem}.bom-image-modal-img{display:block;width:100%;height:auto;vertical-align:top}.bom-image-modal-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.bom-image-modal-actions .btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}@media (max-width: 768px){.bom-image-modal-actions{flex-direction:column;align-items:stretch}.bom-image-modal-actions .btn{width:100%;justify-content:center}}.bom-table-wrap .bom-table td.bom-table-cell-price{font-variant-numeric:tabular-nums;white-space:nowrap}.bom-table-wrap .bom-table td.bom-table-cell-img{white-space:normal;padding:.28rem .35rem;vertical-align:middle}.bom-table-thumb{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:6px;border:1px solid var(--panel-border);background:var(--surface);overflow:hidden;flex-shrink:0}.bom-table-thumb img{width:100%;height:100%;object-fit:contain;display:block}.bom-table-thumb-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#1d6fd066}.bom-table-thumb-placeholder .category-icon svg{width:1.35rem;height:1.35rem}.bom-image-capture-cell-price{font-variant-numeric:tabular-nums;white-space:nowrap!important;vertical-align:middle!important}.bom-image-capture-cell-img{padding:.35rem!important;vertical-align:middle!important;white-space:normal!important}.bom-image-capture-table .bom-table-thumb{width:56px;height:56px}.tools-page .panel-head h1{margin-bottom:.25rem}.tools-tab-bar{display:flex;flex-wrap:wrap;gap:.45rem;margin:1rem 0 1.1rem}.tools-tab{border:1px solid var(--panel-border);background:var(--surface);color:var(--text);padding:.45rem 1rem;border-radius:999px;font-family:inherit;font-size:.9rem;font-weight:500;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.tools-tab:hover{border-color:var(--accent-dim)}.tools-tab--active{border-color:var(--accent);background:#1d6fd01a;color:var(--accent-dim)}.tools-tab-panels{margin-top:.25rem}.tools-tire-table-wrap{margin-top:0}.tools-tire-legend{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .55rem;margin-bottom:.55rem;font-size:.74rem;color:var(--muted)}.tools-tire-legend-title{font-weight:600;color:var(--text);margin-right:.15rem;flex-basis:100%}@media (min-width: 520px){.tools-tire-legend-title{flex-basis:auto}}.tools-tire-legend-item{display:inline-flex;align-items:center;gap:.35rem}.tools-tire-legend-item:before{content:"";width:.6rem;height:.6rem;border-radius:3px;flex-shrink:0;box-shadow:inset 0 0 0 1px #0f172a14}.tools-tire-legend-item--0:before{background:#1d4ed8}.tools-tire-legend-item--1:before{background:#c2410c}.tools-tire-legend-item--2:before{background:#6d28d9}.tools-tire-legend-item--3:before{background:#0f766e}.tools-tire-legend-item--4:before{background:#be123c}.tools-tire-legend-item--5:before{background:#b45309}.tools-tire-legend-item--6:before{background:#4338ca}.tools-tire-legend-item--7:before{background:#db2777}.tools-tire-legend-item--8:before{background:#047857}.tools-tire-legend-item--9:before{background:#475569}.tools-tire-table tbody tr.tools-tire-row{transition:filter .12s ease}.tools-tire-table tbody tr.tools-tire-row:hover{filter:brightness(.965)}.tools-tire-table tbody tr.tools-tire-row td{border-bottom-color:#0f172a1a}.tools-tire-table tbody tr.tools-tire-row--0{background:linear-gradient(90deg,#1d4ed8 0,#1d4ed8 5px,#93c5fd 5px,#dbeafe)}.tools-tire-table tbody tr.tools-tire-row--1{background:linear-gradient(90deg,#c2410c 0,#c2410c 5px,#fdba74 5px,#ffedd5)}.tools-tire-table tbody tr.tools-tire-row--2{background:linear-gradient(90deg,#6d28d9 0,#6d28d9 5px,#c4b5fd 5px,#ede9fe)}.tools-tire-table tbody tr.tools-tire-row--3{background:linear-gradient(90deg,#0f766e 0,#0f766e 5px,#5eead4 5px,#ccfbf1)}.tools-tire-table tbody tr.tools-tire-row--4{background:linear-gradient(90deg,#be123c 0,#be123c 5px,#fda4af 5px,#ffe4e6)}.tools-tire-table tbody tr.tools-tire-row--5{background:linear-gradient(90deg,#b45309 0,#b45309 5px,#fcd34d 5px,#fef3c7)}.tools-tire-table tbody tr.tools-tire-row--6{background:linear-gradient(90deg,#4338ca 0,#4338ca 5px,#a5b4fc 5px,#e0e7ff)}.tools-tire-table tbody tr.tools-tire-row--7{background:linear-gradient(90deg,#db2777 0,#db2777 5px,#f9a8d4 5px,#fce7f3)}.tools-tire-table tbody tr.tools-tire-row--8{background:linear-gradient(90deg,#047857 0,#047857 5px,#6ee7b7 5px,#d1fae5)}.tools-tire-table tbody tr.tools-tire-row--9{background:linear-gradient(90deg,#475569 0,#475569 5px,#94a3b8 5px,#e2e8f0)}.tools-tire-table tbody tr.tools-tire-row--na{background:linear-gradient(90deg,#64748b 0,#64748b 5px,#c9d4e3 5px,#dfe6ef)}.tools-tire-table{font-size:.82rem;border-collapse:collapse;border:1px solid var(--panel-border)}.tools-tire-table th,.tools-tire-table td{vertical-align:top;border:1px solid var(--panel-border);padding:.45rem .5rem}.tools-tire-table thead th{vertical-align:top;font-weight:600;background:var(--surface-muted)}.tools-tire-table thead th:nth-child(1){max-width:15rem}.tools-tire-table thead th:nth-child(2){max-width:16rem}.tools-tire-table thead th:nth-child(3){max-width:24rem}.tools-tire-th-title{display:block;font-weight:700;font-size:.84rem;letter-spacing:-.02em;margin-bottom:.35rem;color:var(--text)}.tools-tire-th-desc{display:block;font-weight:400;font-size:.72rem;line-height:1.42;color:var(--muted)}.tools-tire-th-desc strong{color:var(--text);font-weight:600}.tools-tire-iso{font-size:.9em;font-variant-numeric:tabular-nums}.tools-tire-mm{font-variant-numeric:tabular-nums;white-space:nowrap}.tools-cassette-toolbar{margin-bottom:.85rem}.tools-cassette-toolbar .tools-cassette-brand-chips{flex:1 1 auto}.tools-cassette-table-wrap{margin-top:0}.tools-cassette-table{font-size:.82rem;border-collapse:collapse;border:1px solid var(--panel-border)}.tools-cassette-table th,.tools-cassette-table td{vertical-align:top;border:1px solid var(--panel-border);padding:.45rem .5rem}.tools-cassette-table thead th{vertical-align:top;font-weight:600;background:var(--surface-muted)}.tools-cassette-table thead th:nth-child(1){max-width:18rem}.tools-cassette-table thead th:nth-child(2){max-width:7rem}.tools-cassette-table thead th:nth-child(3){max-width:8rem}.tools-cassette-table thead th:nth-child(4){max-width:22rem}.tools-cassette-table thead th:nth-child(5){max-width:16rem}.tools-cassette-legend{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .65rem;margin-bottom:.55rem;font-size:.78rem;color:var(--muted)}.tools-cassette-legend-title{font-weight:600;color:var(--text);margin-right:.15rem}.tools-cassette-legend-item{display:inline-flex;align-items:center;gap:.35rem}.tools-cassette-legend-item:before{content:"";width:.6rem;height:.6rem;border-radius:3px;flex-shrink:0;box-shadow:inset 0 0 0 1px #0f172a14}.tools-cassette-legend-item--6:before{background:#1d4ed8}.tools-cassette-legend-item--7:before{background:#6d28d9}.tools-cassette-legend-item--8:before{background:#a21caf}.tools-cassette-legend-item--9:before{background:#be123c}.tools-cassette-legend-item--10:before{background:#c2410c}.tools-cassette-legend-item--11:before{background:#b45309}.tools-cassette-legend-item--12:before{background:#047857}.tools-cassette-legend-item--13:before{background:#0f766e}.tools-cassette-table tbody tr.tools-cassette-speed-row{transition:filter .12s ease}.tools-cassette-table tbody tr.tools-cassette-speed-row:hover{filter:brightness(.965)}.tools-cassette-table tbody tr.tools-cassette-speed-row td{border-bottom-color:#0f172a1a}.tools-cassette-table tbody tr.tools-cassette-speed-row--6{background:linear-gradient(90deg,#1d4ed8 0,#1d4ed8 5px,#93c5fd 5px,#dbeafe)}.tools-cassette-table tbody tr.tools-cassette-speed-row--7{background:linear-gradient(90deg,#6d28d9 0,#6d28d9 5px,#c4b5fd 5px,#ede9fe)}.tools-cassette-table tbody tr.tools-cassette-speed-row--8{background:linear-gradient(90deg,#a21caf 0,#a21caf 5px,#f0abfc 5px,#fae8ff)}.tools-cassette-table tbody tr.tools-cassette-speed-row--9{background:linear-gradient(90deg,#be123c 0,#be123c 5px,#fda4af 5px,#ffe4e6)}.tools-cassette-table tbody tr.tools-cassette-speed-row--10{background:linear-gradient(90deg,#c2410c 0,#c2410c 5px,#fdba74 5px,#ffedd5)}.tools-cassette-table tbody tr.tools-cassette-speed-row--11{background:linear-gradient(90deg,#b45309 0,#b45309 5px,#fcd34d 5px,#fef3c7)}.tools-cassette-table tbody tr.tools-cassette-speed-row--12{background:linear-gradient(90deg,#047857 0,#047857 5px,#6ee7b7 5px,#d1fae5)}.tools-cassette-table tbody tr.tools-cassette-speed-row--13{background:linear-gradient(90deg,#0f766e 0,#0f766e 5px,#5eead4 5px,#ccfbf1)}.tools-cassette-table tbody tr.tools-cassette-speed-row--na{background:linear-gradient(90deg,#64748b 0,#64748b 5px,#c9d4e3 5px,#dfe6ef)}.tools-cassette-name{font-weight:500;line-height:1.4}.tools-cassette-range{font-size:.9em;font-variant-numeric:tabular-nums}.tools-cassette-cogs{font-size:.78rem;line-height:1.45;font-variant-numeric:tabular-nums;color:var(--muted);word-break:break-word;min-width:12rem}.tools-cassette-note{font-size:.8rem;color:var(--muted)}.tools-panel-lead{margin:0 0 1rem;line-height:1.5;max-width:42rem}.tools-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem;margin-bottom:1rem;max-width:36rem}.tools-form-grid label{display:flex;flex-direction:column;gap:.35rem;font-size:.88rem;color:var(--muted)}.tools-span-2{grid-column:span 2}.tools-gear-tire-select{width:100%;max-width:100%;cursor:pointer}.tools-result-card{max-width:22rem;padding:1rem 1.1rem;border-radius:var(--radius);border:1px solid var(--panel-border);background:var(--surface);display:flex;flex-direction:column;gap:.55rem}.tools-result-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-size:.95rem}.tools-result-row--highlight{padding-top:.35rem;margin-top:.15rem;border-top:1px dashed var(--panel-border);font-size:1.05rem}.tools-torque-export-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1rem;margin-bottom:.75rem}.tools-torque-export-actions--below-table{margin-top:1rem;margin-bottom:0}.tools-torque-export-actions--stacked{flex-direction:column;align-items:stretch;gap:.75rem}.tools-torque-export-action-line{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1rem;width:100%}.tools-torque-export-hint{flex:1 1 12rem;line-height:1.45}.tools-torque-export-capture{position:fixed;left:-9999px;top:0;pointer-events:none;width:max-content;max-width:min(1240px,100vw);padding:1.4rem 1.45rem 2.85rem;background:#fff;border:1px solid var(--panel-border);border-radius:10px;box-sizing:border-box}.tools-torque-export-capture .table-wrap{overflow:visible;max-width:none}.tools-torque-export-capture .tools-torque-table{font-size:1.045rem;line-height:1.45;table-layout:auto;width:max-content;max-width:none}.tools-torque-export-capture .tools-torque-table th,.tools-torque-export-capture .tools-torque-table td{padding:.5rem .58rem}.tools-torque-export-capture .tools-torque-note-img--export{max-width:13.75rem}.tools-torque-export-capture td.tools-torque-category-cell--export{min-width:5.25rem;max-width:none;white-space:normal;word-break:keep-all;line-height:1.42}.tools-torque-export-capture .tools-torque-table th:nth-child(4),.tools-torque-export-capture .tools-torque-table td:nth-child(4){min-width:12rem;max-width:none}.tools-torque-export-capture .tools-torque-table-watermark-layer{background-size:440px 202px}.tools-torque-export-capture .tools-torque-table .muted.small{font-size:.9em}.tools-torque-export-capture .tools-torque-note,.tools-torque-export-capture .tools-torque-note-stack{max-width:none;min-width:0}.tools-torque-export-capture.tools-torque-export-capture--social{max-width:min(1820px,100vw);padding:1rem 1.2rem 1.35rem}.tools-torque-export-capture--social .tools-torque-table{font-size:1.41075rem;font-weight:600}.tools-torque-export-capture--social .tools-torque-table thead th{font-weight:700}.tools-torque-export-capture--social .tools-torque-table th,.tools-torque-export-capture--social .tools-torque-table td{padding:.675rem .783rem}.tools-torque-export-capture--social .tools-torque-note-img--export{max-width:18.5625rem}.tools-torque-export-capture--social td.tools-torque-category-cell--export{min-width:7.0875rem;max-width:none}.tools-torque-export-capture--social .tools-torque-table th:nth-child(4),.tools-torque-export-capture--social .tools-torque-table td:nth-child(4){min-width:13.5rem;max-width:none}.tools-torque-export-capture--social .tools-torque-table-watermark-layer{background-size:594px calc(202px * 1.35)}.tools-torque-search{display:block;margin-bottom:.85rem;max-width:24rem}.tools-torque-table-wrap{margin-top:0}.tools-torque-table-watermark-inner{position:relative;display:inline-block;min-width:100%;vertical-align:top}.tools-torque-table-watermark-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background-repeat:repeat;background-size:379px 174px}.tools-torque-table{font-size:.82rem;border-collapse:collapse;border:1px solid var(--panel-border)}.tools-torque-table th,.tools-torque-table td{vertical-align:top;border:1px solid var(--panel-border)}.tools-torque-table thead th{vertical-align:middle}.tools-torque-table thead th:first-child{text-align:start}.tools-torque-table td.tools-torque-category-cell{text-align:start;vertical-align:top}.tools-torque-note{max-width:14rem;white-space:pre-wrap;word-break:break-word}.tools-torque-note-stack{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;max-width:14rem}.tools-torque-note-text{display:block;line-height:1.45}.tools-torque-note-img{display:block;max-width:11rem;width:100%;height:auto;border-radius:8px;border:1px solid var(--panel-border);background:var(--surface)}.tools-torque-note-thumb-anchor{cursor:help}.tools-torque-note-img--thumb{max-width:5.5rem;max-height:3.5rem;width:auto;object-fit:contain}.tools-torque-note-preview-popover{position:fixed;z-index:20050;padding:.45rem;border-radius:10px;border:1px solid var(--panel-border);background:var(--panel);box-shadow:var(--shadow-popover-lg);pointer-events:auto}.tools-torque-note-img--popover{display:block;max-width:min(400px,calc(100vw - 2rem));max-height:min(340px,calc(100vh - 2rem));width:auto;height:auto;object-fit:contain;border:none;background:transparent}.tools-torque-note-img--export{max-width:11rem}.tools-cable-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1rem;margin-bottom:.85rem}.tools-cable-search{flex:1 1 12rem;margin-bottom:0;max-width:24rem}.tools-cable-brand-chips{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.tools-cable-brand-chip{min-height:40px;padding:.35rem .85rem;font-size:.86rem}.tools-cable-table .tools-torque-note{max-width:18rem}.tools-cable-legend{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .75rem;margin-bottom:.55rem;font-size:.78rem;color:var(--muted)}.tools-cable-legend-title{font-weight:600;color:var(--text);margin-right:.15rem}.tools-cable-legend-item{display:inline-flex;align-items:center;gap:.35rem}.tools-cable-legend-item:before{content:"";width:.6rem;height:.6rem;border-radius:3px;flex-shrink:0;box-shadow:inset 0 0 0 1px #0f172a14}.tools-cable-legend-item--road:before{background:#1d6fd0}.tools-cable-legend-item--mtb:before{background:#059669}.tools-cable-legend-item--grx:before{background:#c27803}.tools-cable-table tbody tr.tools-cable-row{transition:filter .12s ease,box-shadow .12s ease}.tools-cable-table tbody tr.tools-cable-row:hover{filter:brightness(.965)}.tools-cable-table tbody tr.tools-cable-row td{border-bottom-color:#0f172a1a}.tools-cable-row--road{background:linear-gradient(90deg,#1d6fd0 0,#1d6fd0 5px,#c5ddf8 5px,#e3eefc)}.tools-cable-row--mtb{background:linear-gradient(90deg,#059669 0,#059669 5px,#b8ead4 5px,#daf5ea)}.tools-cable-row--grx{background:linear-gradient(90deg,#c27803 0,#c27803 5px,#f0d9a8 5px,#f7ead0)}.tools-cable-row--misc{background:linear-gradient(90deg,#64748b 0,#64748b 5px,#c9d4e3 5px,#dfe6ef)}.tools-groupset-lead-note{display:block;margin-top:.45rem}.tools-groupset-legend{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .75rem;margin-bottom:.55rem;font-size:.78rem;color:var(--muted)}.tools-groupset-legend-title{font-weight:600;color:var(--text);margin-right:.15rem}.tools-groupset-table tbody tr.tools-groupset-row{transition:filter .12s ease}.tools-groupset-table tbody tr.tools-groupset-row:hover{filter:brightness(.965)}.tools-groupset-table tbody tr.tools-groupset-row td{border-bottom-color:#0f172a1a;font-variant-numeric:tabular-nums}.tools-groupset-row--road{background:linear-gradient(90deg,#1d6fd0 0,#1d6fd0 5px,#c5ddf8 5px,#e3eefc)}.tools-groupset-row--mtb{background:linear-gradient(90deg,#059669 0,#059669 5px,#b8ead4 5px,#daf5ea)}.tools-groupset-kit{min-width:10.5rem;max-width:22rem}.tools-kit-legend{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .75rem;margin-bottom:.55rem;font-size:.78rem;color:var(--muted)}.tools-kit-legend-title{font-weight:600;color:var(--text);margin-right:.15rem}.tools-kit-table tbody tr.tools-kit-row{transition:filter .12s ease}.tools-kit-table tbody tr.tools-kit-row:hover{filter:brightness(.965)}.tools-kit-table tbody tr.tools-kit-row td{border-bottom-color:#0f172a1a}.tools-kit-row--road{background:linear-gradient(90deg,#1d6fd0 0,#1d6fd0 5px,#c5ddf8 5px,#e3eefc)}.tools-kit-row--mtb{background:linear-gradient(90deg,#059669 0,#059669 5px,#b8ead4 5px,#daf5ea)}.tools-kit-row--gravel{background:linear-gradient(90deg,#c27803 0,#c27803 5px,#f0d9a8 5px,#f7ead0)}.tools-kit-shimano-guide{margin-top:.85rem;padding:.8rem .9rem;border:1px solid var(--panel-border);border-radius:.8rem;background:linear-gradient(180deg,#1d6fd012,#1d6fd005)}.tools-kit-shimano-guide-title{margin:0 0 .5rem;font-size:.95rem}.tools-kit-shimano-lead{margin:0 0 .55rem}.tools-kit-shimano-diagram{display:grid;gap:.55rem;margin-bottom:.55rem}.tools-kit-shimano-node{display:inline-flex;justify-self:start;align-items:center;padding:.22rem .55rem;border-radius:.45rem;font-weight:700;font-size:.88rem;color:#114b8d;background:#dbeafe;border:1px solid #93c5fd}.tools-kit-shimano-breakdown{display:grid;gap:.35rem}.tools-kit-shimano-item{display:grid;grid-template-columns:5.1rem 1fr;gap:.45rem;align-items:baseline}.tools-kit-shimano-key{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.78rem;color:#1e3a8a}.tools-kit-shimano-val{font-size:.79rem;color:var(--muted)}.tools-kit-shimano-prefix-wrap{margin-bottom:.55rem}.tools-kit-shimano-prefix-table th,.tools-kit-shimano-prefix-table td{padding:.3rem .45rem}.tools-kit-shimano-prefix-table code{font-size:.78rem}.tools-torque-legend{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .65rem;margin-bottom:.55rem;font-size:.75rem;color:var(--muted)}.tools-torque-legend-title{font-weight:600;color:var(--text);margin-right:.15rem}.tools-torque-legend-item{display:inline-flex;align-items:center;gap:.35rem}.tools-torque-legend-item:before{content:"";width:.6rem;height:.6rem;border-radius:3px;flex-shrink:0;box-shadow:inset 0 0 0 1px #0f172a14}.tools-torque-legend-item--cat-bar:before{background:#1d6fd0}.tools-torque-legend-item--cat-seat:before{background:#059669}.tools-torque-legend-item--cat-drivetrain:before{background:#7c3aed}.tools-torque-legend-item--cat-wheel:before{background:#64748b}.tools-torque-legend-item--cat-brake:before{background:#dc2626}.tools-torque-legend-item--cat-acc:before{background:#be185d}.tools-torque-legend-item--cat-shift:before{background:#0d9488}.tools-torque-table--bands tbody tr.tools-torque-row{transition:filter .12s ease}.tools-torque-table--bands tbody tr.tools-torque-row:hover{filter:brightness(.965)}.tools-torque-table--bands tbody tr.tools-torque-row td{border-color:var(--panel-border)}.tools-torque-row--cat-bar{background:linear-gradient(90deg,#1d6fd0 0,#1d6fd0 5px,#c5ddf8 5px,#e3eefc)}.tools-torque-row--cat-seat{background:linear-gradient(90deg,#059669 0,#059669 5px,#b8ead4 5px,#daf5ea)}.tools-torque-row--cat-drivetrain{background:linear-gradient(90deg,#7c3aed 0,#7c3aed 5px,#ddcbfa 5px,#ebe0fc)}.tools-torque-row--cat-wheel{background:linear-gradient(90deg,#64748b 0,#64748b 5px,#c9d4e3 5px,#dfe6ef)}.tools-torque-row--cat-brake{background:linear-gradient(90deg,#dc2626 0,#dc2626 5px,#fecaca 5px,#fee2e2)}.tools-torque-row--cat-acc{background:linear-gradient(90deg,#be185d 0,#be185d 5px,#fbcfe8 5px,#fce7f3)}.tools-torque-row--cat-shift{background:linear-gradient(90deg,#0d9488 0,#0d9488 5px,#99f6e4 5px,#ccfbf1)}.tools-torque-row--cat-misc{background:linear-gradient(90deg,#475569 0,#475569 5px,#cbd5e1 5px,#e2e8f0)}@media (max-width: 640px){.tools-form-grid{grid-template-columns:1fr}.tools-span-2{grid-column:span 1}.tools-tab-bar{gap:.35rem}.tools-tab{padding:.42rem .85rem;font-size:.85rem}.tools-torque-note,.tools-torque-note-stack{max-width:none}.tools-torque-table,.tools-cable-table,.tools-cassette-table,.tools-groupset-table,.tools-kit-table{table-layout:auto}.tools-torque-table .tools-torque-note-img,.tools-torque-table .tools-torque-note-img--thumb{max-width:min(11rem,100%)}.tools-kit-shimano-item{grid-template-columns:1fr;gap:.2rem}.tools-kit-shimano-prefix-table{min-width:100%}}
