:root {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  color: #172135;
  background: #f3f5f8;
  font-size: 16px;
  font-synthesis: none;
  --muted: #647087;
  --line: #dce1e8;
  --red: #d63e25;
  --navy: #131d30;
  --paper: #ffffff;
}

* { box-sizing: border-box; }
body { margin: 0; }
button, input { font: inherit; }
button, a, summary, input { -webkit-tap-highlight-color: transparent; }
button, summary { cursor: pointer; }
button:focus-visible, a:focus-visible, summary:focus-visible, input:focus-visible { outline: 3px solid #e57f53; outline-offset: 3px; }
a { color: #264e83; text-underline-offset: 3px; }

.topbar { display: flex; justify-content: space-between; align-items: center; padding: 19px max(28px, calc((100vw - 1440px) / 2)); background: var(--navy); color: white; }
.brand { display: flex; align-items: center; gap: 13px; font-size: 18px; }
.mark { font: 800 13px ui-monospace, monospace; letter-spacing: .06em; background: #ed4e33; border-radius: 4px; padding: 9px 7px; color: #fff; }
.edition { font-size: 12px; letter-spacing: .17em; color: #b6c0d2; }

main { max-width: 1440px; margin: auto; padding: 30px 28px 24px; }
.intro { display: flex; justify-content: space-between; gap: 20px; align-items: center; margin-bottom: 22px; }
.eyebrow { color: var(--red); font-size: 12px; font-weight: 750; letter-spacing: .15em; margin: 0 0 8px; }
h1 { font-size: 32px; letter-spacing: -1px; margin: 0 0 7px; font-weight: 680; }
h2 { font-size: 18px; font-weight: 680; margin: 0; letter-spacing: -.3px; }
.lead { color: var(--muted); margin: 0; line-height: 1.55; }
.dataset { text-align: right; display: grid; gap: 4px; }
.dataset strong { font-size: 28px; font-weight: 580; font-variant-numeric: tabular-nums; }
.dataset span { font-size: 13px; color: var(--muted); }

.decoder-tabs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 7px; padding: 6px; background: #e7ebf0; border: 1px solid #d7dde6; border-radius: 9px; margin-bottom: 22px; }
.decoder-tab { border: 0; border-radius: 6px; background: transparent; color: #59667a; padding: 12px 16px; text-align: left; font-weight: 650; }
.decoder-tab:hover { background: #f2f4f7; }
.decoder-tab.active { background: white; color: var(--navy); box-shadow: 0 1px 5px #17213513; }
.decoder-view[hidden] { display: none; }

.workspace { display: grid; grid-template-columns: minmax(390px, .86fr) minmax(560px, 1.14fr); gap: 24px; align-items: start; }
.input-panel, .results-panel { min-width: 0; }
.section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 40px; margin-bottom: 11px; }
.section-head.compact { margin: 0; min-height: auto; }
.section-head > div { display: flex; align-items: center; gap: 10px; }
.step { font: 13px ui-monospace, monospace; color: #758197; }
.text-button { background: transparent; border: 0; padding: 8px 0; color: var(--muted); font-size: 14px; }
.text-button:hover { color: var(--red); }

.sticker { background: white; border: 1px solid #ced5df; border-radius: 8px; padding: 19px; box-shadow: 0 4px 12px #17213504; }
.sticker-head { display: flex; justify-content: space-between; border-bottom: 2px solid #182237; padding-bottom: 13px; font: 600 13px ui-monospace, monospace; letter-spacing: .1em; }
.sticker-head span:last-child { color: #748095; letter-spacing: 0; }
.column-labels { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 7px; text-align: center; font: 12px ui-monospace, monospace; color: #8490a2; padding: 10px 0 7px; }
.code-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 7px; }
.code-grid input { width: 100%; min-width: 0; min-height: 39px; border: 1px solid #dce2ea; border-radius: 4px; background: #f6f8fa; text-align: center; font: 650 17px/1.3 ui-monospace, SFMono-Regular, Consolas, monospace; color: var(--navy); padding: 5px 1px; caret-color: var(--red); transition: background .1s, border .1s; }
.code-grid input:hover { border-color: #9aa7b8; }
.code-grid input.found { background: #eef5f4; border-color: #bbd4cd; }
.code-grid input.unknown { background: #fff3e9; border-color: #e5bb8c; }
.code-grid input:focus { outline: 2px solid var(--red); outline-offset: 1px; background: white; position: relative; z-index: 1; }
.sticker-footer { display: flex; justify-content: space-between; gap: 8px; margin-top: 15px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 12px; color: var(--muted); }
.sticker-footer span:first-child { font-variant-numeric: tabular-nums; font-weight: 650; }
.input-help { font-size: 14px; line-height: 1.55; color: var(--muted); margin: 12px 1px; }
kbd { font: 12px ui-monospace, monospace; border: 1px solid #cdd4df; border-radius: 3px; padding: 1px 4px; box-shadow: 0 1px #cdd4df; }
code { font-family: ui-monospace, monospace; }
.example-button { display: flex; justify-content: space-between; align-items: center; width: 100%; padding: 11px 14px; background: #e9edf3; border: 1px solid #dae1eb; border-radius: 5px; font-size: 14px; color: #33455d; }
.example-button:hover { background: #dfe6ef; }
.group-guide { border-top: 1px solid #d5dce6; margin-top: 18px; padding: 14px 0; line-height: 1.55; }
.group-guide summary { font-weight: 650; font-size: 14px; }
.guide-body { font-size: 14px; color: #56637a; }
.guide-body dl { display: grid; grid-template-columns: 50px 1fr; gap: 5px 12px; }
.guide-body dt { font-family: ui-monospace, monospace; font-weight: 700; }
.guide-body dd { margin: 0; }
.source-links { font-size: 12px; }

.results-panel { position: sticky; top: 16px; max-height: calc(100vh - 32px); display: flex; flex-direction: column; background: #f3f5f8; }
.results-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 11px; }
.count-label { font-size: 12px; color: var(--muted); background: #e4e9ef; padding: 4px 8px; border-radius: 4px; white-space: nowrap; }
.pdf-button { border: 1px solid #263750; border-radius: 5px; color: white; background: var(--navy); padding: 9px 12px; font-size: 13px; font-weight: 650; white-space: nowrap; }
.pdf-button:hover { background: #24344f; }
.pdf-button:disabled { cursor: not-allowed; opacity: .45; }
.pdf-button.busy { cursor: wait; }
.results-grid { flex: 1; min-height: 0; overflow: auto; padding-right: 5px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; align-content: start; scrollbar-gutter: stable; }
.result { min-width: 0; border: 1px solid var(--line); background: white; border-radius: 6px; padding: 10px 12px; border-left: 3px solid #8da4b4; }
.result.active { border-left-color: var(--red); box-shadow: 0 0 0 1px #d63e2524; }
.result-line { display: grid; grid-template-columns: auto auto 1fr; align-items: baseline; gap: 7px; }
.result-code { font: 750 15px ui-monospace, monospace; color: var(--navy); }
.group-badge { font: 700 11px ui-monospace, monospace; background: #edf0f5; color: #40516a; border-radius: 3px; padding: 2px 4px; }
.description { min-width: 0; font-size: 14px; line-height: 1.4; margin: 0; color: #334158; overflow-wrap: anywhere; }
.result-meta { display: flex; justify-content: space-between; gap: 8px; margin-top: 5px; color: #8a94a3; font-size: 11px; }
.result details { margin-top: 5px; color: #68758a; font-size: 12px; }
.result summary { width: max-content; }
.result details p { margin: 6px 0 0; line-height: 1.4; }
.unknown-card { border-left-color: #c18e4c; background: #fffaf5; }
.unknown-card .description { color: #7e582b; }
.empty { grid-column: 1 / -1; border: 1px dashed #bfc9d6; border-radius: 7px; padding: 42px 26px; background: #edf1f5; color: var(--muted); text-align: center; line-height: 1.6; }
.empty strong { display: block; color: #465770; margin-bottom: 6px; }
.empty p { margin: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }

.lookup-layout { display: grid; grid-template-columns: minmax(330px, .75fr) minmax(0, 1.25fr); gap: 24px; align-items: start; }
.lookup-form, .lookup-result { background: white; border: 1px solid var(--line); border-radius: 8px; padding: 28px; min-height: 330px; }
.lookup-form h2 { font-size: 25px; margin-bottom: 10px; }
.lookup-form > p:not(.eyebrow):not(.field-note) { color: var(--muted); line-height: 1.6; margin: 0 0 26px; }
.lookup-form label { display: block; font-size: 13px; font-weight: 700; margin-bottom: 7px; }
.search-line { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.search-line input { width: 100%; min-width: 0; border: 1px solid #cbd3de; border-radius: 5px; padding: 13px 14px; text-transform: uppercase; font: 700 21px ui-monospace, monospace; letter-spacing: .08em; color: var(--navy); }
.search-line button { border: 0; border-radius: 5px; padding: 0 22px; background: var(--red); color: white; font-weight: 700; }
.search-line button:hover { background: #be351f; }
.vin-line input { font-size: 18px; letter-spacing: .06em; }
.field-note { font-size: 13px; color: var(--muted); line-height: 1.55; margin: 13px 0 0; }
.compact-empty { height: 100%; display: grid; place-content: center; }
.lookup-card h3 { font: 750 30px ui-monospace, monospace; margin: 0 0 4px; color: var(--navy); }
.lookup-card .subhead { color: var(--red); margin: 0 0 22px; font-weight: 650; }
.spec-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.spec { padding: 13px 15px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.spec dt { color: #7a8698; font-size: 11px; letter-spacing: .07em; text-transform: uppercase; margin-bottom: 4px; }
.spec dd { margin: 0; line-height: 1.4; font-size: 14px; }
.notice { border-left: 3px solid #d89a44; background: #fff8ec; padding: 11px 13px; margin-top: 18px; color: #6d522c; font-size: 13px; line-height: 1.5; }
.vin-segments { display: grid; grid-template-columns: 3fr 6fr 1fr 1fr 6fr; gap: 3px; margin: 18px 0 20px; }
.vin-segments span { background: #eef1f5; padding: 9px 3px; text-align: center; font: 700 13px ui-monospace, monospace; border-radius: 3px; }
.error-state { border-left: 4px solid #c18e4c; background: #fffaf5; padding: 18px; }
.error-state strong { display: block; margin-bottom: 6px; }

footer { display: flex; justify-content: space-between; gap: 15px; border-top: 1px solid #dce2ea; margin-top: 28px; padding-top: 18px; font-size: 12px; color: #7c8798; }

@media (max-width: 1080px) {
  .workspace { grid-template-columns: minmax(350px, .9fr) minmax(430px, 1.1fr); }
  .results-grid { grid-template-columns: 1fr; }
  .results-toolbar { align-items: flex-end; }
}

@media (max-width: 800px) {
  .topbar { padding: 15px 18px; }
  .edition { display: none; }
  main { padding: 24px 16px; }
  .intro { align-items: flex-start; flex-direction:column; gap:18px; }
  .dataset { text-align:left; }
  h1 { font-size: 28px; }
  .lead { font-size: 15px; }
  .decoder-tab { text-align: center; padding: 11px 7px; font-size: 14px; }
  .decoder-tab span { display: none; }
  .workspace, .lookup-layout { grid-template-columns: 1fr; gap: 19px; }
  .results-panel { position: static; max-height: none; }
  .results-grid { overflow: visible; grid-template-columns: 1fr; }
  .lookup-form, .lookup-result { min-height: auto; padding: 22px; }
  .lookup-result { min-height: 290px; }
  footer { flex-direction: column; gap: 7px; }
}

@media (max-width: 460px) {
  .sticker { padding: 14px; }
  .code-grid { gap: 5px; }
  .code-grid input { min-height: 38px; font-size: 16px; }
  .results-toolbar { align-items: stretch; flex-direction: column; }
  .pdf-button { width: 100%; }
  .spec-grid { grid-template-columns: 1fr; }
  .search-line { grid-template-columns: 1fr; }
  .search-line button { padding: 12px; }
}

@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* Functional label diagram. All text stays selectable, scalable and accessible. */
.welcome-guide { grid-column: 1 / -1; }
.welcome-heading { padding: 4px 0 12px; }
.welcome-heading h3 { font-size: 20px; margin: 0 0 5px; }
.welcome-heading p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.vehicle-label { margin: 0 0 12px; padding: 17px; border: 1px solid #c5cedb; border-radius: 8px; background: #fff; box-shadow: 0 5px 16px #17213508; }
.vehicle-label figcaption { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding-bottom: 12px; margin-bottom: 9px; border-bottom: 2px solid var(--navy); font-size: 12px; letter-spacing: .055em; }
.vehicle-label figcaption span { color: var(--red); }
.label-zone { width: 100%; min-width: 0; text-align: left; padding: 9px 7px; display: flex; gap: 7px; align-items: flex-start; background: #f6f8fb; border: 1px solid #e0e5ec; border-radius: 4px; color: var(--navy); margin-bottom: 6px; }
.label-zone:hover, .label-zone.selected { border-color: var(--red); background: #fff5ef; }
.label-zone > span:last-child { min-width: 0; flex: 1; }
.label-zone b { display: block; font: 650 16px/1.4 ui-monospace, SFMono-Regular, Consolas, monospace; overflow-wrap: anywhere; }
.label-zone small { display: block; margin-top: 2px; color: #59677c; font-size: 12px; line-height: 1.4; }
.zone-number { flex: none; color: var(--red); font: 650 12px/1.4 ui-monospace, monospace; padding-top: 2px; }
.label-row { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 6px; }
.label-row.three { grid-template-columns: repeat(3, minmax(0,1fr)); }
.label-zone .sample-pr-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 5px 8px; }
.uncertain-zone { border-style: dashed; background: #f8f8f8; }
.label-caption { font-size: 12px; line-height: 1.5; color: var(--muted); margin: 8px 0 0; }
.guide-heading { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: flex-start; gap: 16px; margin: 4px 0 22px; }
.guide-heading h2 { font-size: 26px; }
.guide-heading p:not(.eyebrow) { color: var(--muted); margin: 8px 0 0; }
.label-explorer { display: grid; grid-template-columns: minmax(380px,.95fr) minmax(0,1.05fr); gap: 25px; align-items: start; }
.label-detail { background: white; padding: 28px; border: 1px solid var(--line); border-radius: 8px; position: sticky; top: 18px; }
.label-detail h3 { font-size: 25px; margin: 5px 0 12px; }
.label-detail h4 { margin-bottom: 0; font-size: 16px; }
.label-detail p { line-height: 1.65; }
.label-detail .eyebrow { margin: 0; }
.field-example { display: inline-block; padding: 8px 12px; background: #eaf0f6; border-radius: 4px; font-size: 17px; overflow-wrap: anywhere; max-width: 100%; }
.field-source { color: var(--muted); font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.wide-input { display: block; width: 100%; border: 1px solid #cbd3de; border-radius: 5px; padding: 12px; margin-bottom: 20px; font: 650 18px ui-monospace, monospace; color: var(--navy); text-transform: uppercase; }
.lookup-result > article + article, .lookup-result > .error-state + article, .lookup-result > article + .error-state { margin-top: 22px; border-top: 1px solid var(--line); padding-top: 22px; }
.lookup-card h3 { overflow-wrap: anywhere; }
.all-fields, .guide-sources { border: 1px solid var(--line); background: white; border-radius: 6px; padding: 16px 20px; margin-top: 20px; }
.all-fields summary, .guide-sources summary { font-size: 14px; font-weight: 650; }
.all-fields-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin-top: 24px; }
.all-fields-grid article { padding: 15px; border: 1px solid var(--line); border-radius: 6px; }
.all-fields-grid h3 { margin-top: 0; }
.all-fields-grid h4 { margin-bottom: 0; }
.all-fields-grid p, .guide-sources p { line-height: 1.6; }
.label-utilities { margin-top: 22px; padding: 24px; border: 1px solid var(--line); border-radius: 8px; background: #e9eef5; }
.label-utilities > p { color: var(--muted); margin-top: 8px; }
.utility-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; margin-top: 22px; }
.utility-grid label { display: block; font-weight: 650; font-size: 14px; margin-bottom: 8px; }
.utility-grid input { width: 100%; min-width: 0; padding: 12px; border: 1px solid #c5cfdd; border-radius: 5px; background: white; }
.utility-grid output { display: block; margin-top: 10px; font-size: 14px; line-height: 1.55; color: #334158; }
@media (max-width: 1080px) { .decoder-tab { font-size: 14px; padding: 12px 9px; } .decoder-tab span { display: none; } }
@media (max-width: 800px) {
  .decoder-tabs { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .label-explorer { grid-template-columns: 1fr; }
  .label-detail { position: static; }
  .all-fields-grid, .utility-grid { grid-template-columns: 1fr; }
  .label-detail, .label-utilities { padding: 20px; }
}
@media (max-width: 460px) {
  .vehicle-label { padding: 11px; }
  .label-zone { padding: 8px 5px; gap: 4px; }
  .label-zone b { font-size: 14px; }
  .label-zone .sample-pr-grid { gap: 4px; }
  .label-row.three { grid-template-columns: 1fr; }
  .label-row.three .label-zone > span:last-child { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
  .label-row.three .label-zone small { text-align: right; }
}
.catalog-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.catalog-heading h3 { margin:0; font-size:24px; letter-spacing:.03em; }
.optional { font-weight:400; color:var(--muted); }
.catalog-pdf { margin-top:16px; }
.catalog-scroll { max-height:60vh; overflow:auto; border:1px solid var(--line); border-radius:6px; scrollbar-gutter:stable; }
.catalog-table { width:100%; border-collapse:collapse; font-size:12px; text-align:left; }
.catalog-table th { position:sticky; top:0; background:#f0f3f6; z-index:1; padding:12px; font-size:11px; }
.catalog-table td { padding:12px; border-top:1px solid var(--line); vertical-align:top; line-height:1.5; }
.catalog-table td:first-child { width:41%; }
.catalog-table strong,.catalog-table span,.catalog-table small { display:block; }
.catalog-table small { color:var(--muted); font-size:10px; margin-top:5px; }
.paint-code-section + .paint-code-section { margin-top:24px; }
.paint-match { position:relative; border-bottom:1px solid var(--line); padding:16px 0; }
.paint-match h4 { margin:0 0 4px; font-size:16px; }
.paint-kind { font-size:11px; color:var(--muted); }
.paint-match .field-source { margin:8px 0; font-size:11px; }
.review-tag { display:inline-block; background:#fff2d8; color:#80550d; font-size:10px; border-radius:3px; padding:3px 6px; margin-top:7px; }
.paint-applications summary { cursor:pointer; font-size:12px; color:#43526a; }
.paint-applications ul { padding-left:18px; font-size:12px; max-height:260px; overflow:auto; line-height:1.7; }
.paint-applications li + li { margin-top:10px; }
.catalog-source { border-top:1px solid var(--line); padding-top:12px; margin-top:12px; font-size:12px; }
.catalog-source p { margin:5px 0; line-height:1.65; }
#finish-result { max-height:76vh; overflow:auto; scrollbar-gutter:stable; }
@media(max-width:700px) { #finish-result { max-height:none; } .catalog-scroll { max-height:65vh; } .catalog-table td,.catalog-table th { padding:9px; } }
.feedback-panel { display:flex; justify-content:space-between; align-items:center; gap:24px; background:white; border:1px solid var(--line); border-radius:8px; padding:24px; margin-top:28px; }
.feedback-panel p { margin-bottom:0; color:var(--muted); line-height:1.5; }
.feedback-panel .eyebrow { margin-bottom:8px; color:var(--red); }
.report-code-button { border:0; background:transparent; color:#a93320; font-size:12px; padding:6px 0; text-decoration:underline; text-underline-offset:3px; }
.error-state .report-code-button { align-self:start; }
#feedback-dialog { width:min(560px,calc(100% - 32px)); max-height:calc(100dvh - 40px); overflow:auto; padding:28px; border:1px solid var(--line); border-radius:12px; color:var(--navy); box-shadow:0 24px 80px #131d3033; }
#feedback-dialog::backdrop { background:#131d3080; }
.feedback-dialog-head { display:flex; justify-content:space-between; align-items:center; gap:16px; }
#feedback-dialog > p { color:var(--muted); font-size:14px; line-height:1.6; }
.feedback-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
#feedback-form label { display:block; margin:16px 0 7px; font-size:14px; font-weight:650; }
#feedback-form input,#feedback-form select,#feedback-form textarea { width:100%; padding:11px 12px; border:1px solid #cbd3df; border-radius:6px; color:var(--navy); background:white; font:inherit; }
#feedback-form textarea { resize:vertical; }
#feedback-code { text-transform:uppercase; }
.feedback-status { font-size:14px; line-height:1.6; min-height:22px; }
.feedback-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
@media(max-width:600px) { .feedback-panel { align-items:flex-start; flex-direction:column; gap:16px; } .feedback-fields { grid-template-columns:1fr; gap:0; } #feedback-dialog { padding:20px; } .feedback-dialog-head h2 { font-size:17px; } }
