/* Flat, table-first tools. Preserve the existing brand and price semantics. */
body.pc-tools { display:flex; flex-direction:column; min-height:100dvh; }
.tools-header { position:sticky; z-index:20; top:0; display:flex; width:min(1536px,100%); max-width:1536px; height:68px; min-height:68px; align-items:center; gap:42px; margin:0 auto; padding:0 24px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); border-left:1px solid var(--line); background:rgb(255 254 250 / 96%); backdrop-filter:blur(10px); }
.tools-header nav, .main-navigation { display:flex; align-items:center; gap:26px; }
.tools-header nav a, .main-navigation a { color:var(--ink-soft); text-decoration:none; font-size:14px; font-weight:750; padding:22px 0; border-bottom:2px solid transparent; white-space:nowrap; }
.tools-header nav a[aria-current], .main-navigation a[aria-current] { color:var(--accent-strong); border-color:var(--accent); }
.tools-main { width:min(1536px,100%); max-width:1536px; flex:1; margin:0 auto; padding:24px 24px 32px; border-right:1px solid var(--line); border-left:1px solid var(--line); background:var(--canvas); }
.tools-toolbar { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:12px 24px; margin-bottom:10px; }
.tools-summary { display:flex; flex-wrap:wrap; align-items:baseline; gap:14px 36px; margin-bottom:24px; }
.tools-toolbar .tools-summary { margin-bottom:0; }
.tools-summary-item { display:flex; flex-wrap:wrap; align-items:baseline; gap:7px; font-variant-numeric:tabular-nums; }
.tools-summary-item span { font-size:13px; color:var(--ink-soft); }
.tools-summary-item strong { font-size:20px; font-weight:750; }
.tools-quote-status { flex-basis:100%; margin:0; font-size:12px; line-height:1.6; color:var(--ink-soft); }
.tools-build-price { margin-top:6px; line-height:1.7; }
.tools-build-price > span { display:block; }
.tools-line-price > span { display:inline-block; white-space:nowrap; }
.tools-memory-total { color:var(--ink); }
.tools-reset { color:var(--ink-soft); }
.tools-actions { display:flex; gap:20px; align-items:center; }
.pc-tools button, .pc-tools select, .pc-tools input, .pc-tools textarea { font:inherit; font-size:13px; color:var(--ink); border:0; border-radius:0; box-shadow:none; background:transparent; }
.pc-tools button { min-height:36px; padding:7px 4px; white-space:nowrap; cursor:pointer; }
.pc-tools button:hover:not(:disabled) { color:var(--accent-strong); background:transparent; text-decoration:underline; text-underline-offset:5px; }
.pc-tools button:disabled { cursor:default; color:var(--muted); opacity:.5; }
.pc-tools button.primary, #save-build { color:var(--accent-strong); font-weight:750; }
.pc-tools :is(button,select,input,textarea,a):focus-visible { outline:2px solid var(--accent-strong); outline-offset:3px; }
.pc-tools select, .pc-tools input[type=date] { min-height:36px; padding:6px 4px; border-bottom:1px solid var(--line-strong); }
.pc-tools input[type=number] { width:44px; padding:4px; border-bottom:1px solid var(--line-strong); }
.pc-tools textarea { display:block; width:100%; padding:8px 0; border-bottom:1px solid var(--line); }
#share-output { max-width:760px; margin:10px 0 20px; font-size:12px; }
#tools-status:empty, .tools-caption:empty { display:none; }
#tools-status { margin:6px 0 12px; font-size:12px; color:var(--muted); }
#tools-status[data-error=true] { color:var(--danger); }
.tools-compatibility { display:flex; flex-wrap:wrap; gap:8px 24px; margin:4px 0 18px; font-size:12px; }
.tools-compatibility[hidden] { display:none; }
.tools-compatibility .conflict { color:var(--danger); font-weight:750; }
.tools-compatibility .match { color:var(--sold); }
.tools-compatibility .unknown { color:var(--muted); }
.tools-builder-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:40px; margin-top:26px; }
.tools-builder-layout > section { min-width:0; }
.pc-tools h2:not(.sr-only) { margin:0; font-size:21px; letter-spacing:-.3px; }
.tools-table-scroll { max-width:100%; overflow:auto; scrollbar-width:thin; scrollbar-color:var(--line-strong) transparent; }
#model-table { max-height:min(620px,65vh); }
.pc-tools table { width:100%; border-collapse:collapse; font-size:13px; text-align:left; }
.pc-tools th { position:sticky; top:0; z-index:1; padding:12px 8px; background:var(--bg,#f8f7f4); color:var(--ink-soft); font-size:12px; font-weight:650; border-bottom:1px solid var(--line-strong); white-space:nowrap; }
.pc-tools td { padding:12px 8px; border-bottom:1px solid var(--line); vertical-align:middle; }
.pc-tools td.price { white-space:nowrap; font-variant-numeric:tabular-nums; font-weight:650; }
.pc-tools td small { display:block; font-size:11px; font-weight:400; color:var(--muted); }
.pc-tools td.model-name { min-width:150px; }
.pc-tools .model-name { overflow-wrap:anywhere; }
.series-active { color:var(--accent-strong); }.series-sold { color:var(--sold); }.series-confirmed_transactions { color:var(--confirmed); }
.price.is-empty { color:var(--muted); font-weight:400; }
.tools-controls { display:flex; flex-wrap:wrap; gap:8px 20px; align-items:center; margin:0 0 14px; }
.tools-controls label { display:flex; align-items:center; gap:6px; min-width:90px; }
.tools-controls select { max-width:210px; }
.tools-controls .tools-search { min-width:180px; flex:1 1 200px; }
.tools-search input { width:100%; min-width:0; }
.tools-scope-note { font-size:12px; line-height:1.6; margin:4px 0 12px; opacity:.8; }
.tools-controls .tools-check { font-size:12px; }.tools-check input { accent-color:var(--accent-strong); }
.tools-pages { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:10px; margin:18px 0 4px; font-size:13px; }
.tools-pages[hidden] { display:none; }.tools-pages button { min-width:30px; }
.tools-pages button[aria-current=page] { color:var(--accent-strong); font-weight:750; text-decoration:underline; text-underline-offset:7px; }
.tools-pages span { color:var(--muted); }
.tools-tabs { display:flex; align-items:center; gap:22px; overflow-x:auto; scrollbar-width:thin; margin-bottom:20px; }
.tools-tabs button { flex-shrink:0; padding:10px 2px; border-bottom:2px solid transparent; }
.tools-tabs button[aria-pressed=true] { color:var(--accent-strong); border-color:var(--accent-strong); }
.tools-chart-heading, .tools-chart-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px 22px; flex-wrap:wrap; margin-bottom:12px; }
.tools-chart-controls { display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:12px; }
.tools-chart-controls input[type=date] { width:145px; }.tools-chart-toolbar .tools-tabs { margin-bottom:0; }
.tools-date-picker { display:inline-flex; position:relative; align-items:center; border-bottom:1px solid var(--line-strong); }
.tools-date-picker input[type=date] { width:124px; border:0; }
.tools-date-picker input::-webkit-calendar-picker-indicator { display:none; }
.tools-date-picker > button { width:30px; display:grid; place-items:center; }
.tools-range-field { display:grid; gap:2px; }
.tools-range-field > label { font-size:11px; color:var(--ink-soft); }
.tools-range-field input[type=date] { width:106px; }
.tools-range-field .tools-date-picker > button { width:26px; }
#chart-navigation { align-items:end; }
.tools-range-to .tools-calendar { left:auto; right:0; }
.tools-calendar { position:absolute; left:0; top:calc(100% + 6px); z-index:20; width:286px; padding:12px; background:var(--surface); border:1px solid var(--line-strong); }
.tools-calendar[hidden] { display:none; }
.calendar-heading { display:flex; align-items:center; gap:4px; margin-bottom:8px; }
.calendar-heading strong { margin-right:auto; font-size:14px; }
.calendar-heading button { min-width:32px; }
.calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:2px; text-align:center; }
.calendar-days span { padding:8px 0; font-size:11px; color:var(--muted); }
.calendar-days button { min-height:34px; padding:6px 0; }
.calendar-days button[aria-pressed=true] { color:var(--accent-strong); font-weight:750; text-decoration:underline; text-underline-offset:5px; }
.tools-chart { overflow-x:auto; scrollbar-width:thin; }
.tools-chart svg { display:block; width:100%; height:280px; min-width:560px; font-family:inherit; }
.tools-chart svg text { font-size:12px; fill:var(--muted); }
.tools-chart-plot { position:relative; min-width:560px; }
.tools-chart-tooltip { position:absolute; top:32px; z-index:3; padding:10px 14px; border:1px solid var(--line-strong); background:var(--surface,#fffefa); font-size:12px; line-height:1.8; pointer-events:none; white-space:nowrap; }
.tools-chart-tooltip time { color:var(--ink-soft); }
.tools-chart-legend { display:flex; gap:20px; padding:8px 0; font-size:12px; }
.tools-chart-legend > button { display:inline-flex; align-items:center; gap:6px; padding:6px 2px; background:none; border:0; font:inherit; cursor:pointer; }
.tools-chart-legend > button[aria-pressed=false] { opacity:.5; text-decoration:line-through; }
.tools-chart-legend > button:focus-visible { outline:2px solid currentColor; outline-offset:2px; }
.tools-chart-frame { position:relative; }
.tools-chart .tools-chart-fixed-axes { position:absolute; top:0; left:0; pointer-events:none; min-width:0; z-index:2; }
.tools-chart-swatch { width:18px; height:0; border-top:2px solid var(--series-color, currentColor); }
.tools-chart-swatch[data-dash="dashed"] { border-top-style:dashed; }
.analysis-chart-controls { min-width:0; }
.analysis-chart-controls .tools-chart { min-width:0; overflow:visible; }
.analysis-chart-controls .tools-chart-viewport { height:360px; overflow:auto; scrollbar-width:auto; scrollbar-gutter:stable; }
.analysis-chart-controls .tools-chart-plot { min-width:0; }
.analysis-chart-controls .tools-chart svg { min-width:0; max-width:none; }
.analysis-chart-controls .tools-chart-legend { flex-wrap:wrap; gap:6px 16px; }
.ui-a .sf-source-table-scroll { max-height:420px; overflow:auto; scrollbar-width:auto; }
.ui-a.pc-tools .sf-source-table-scroll .sf-price-table thead th { position:sticky; top:0; z-index:1; background:var(--surface,#fff); }
.analysis-context-row { display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; margin-bottom:12px; }
.analysis-context-row .analysis-heading { margin:0; gap:12px !important; }
.analysis-context-row .tools-chart-toolbar { flex:1; flex-wrap:nowrap; margin:0; gap:14px; }
.analysis-context-row .tools-summary { flex:none !important; gap:12px !important; }
.analysis-context-row .tools-summary-item { gap:5px; }
.analysis-context-row .tools-range-field { display:flex; align-items:center; gap:4px; }
.analysis-context-row #chart-navigation { flex-wrap:nowrap; align-items:center; gap:8px; }
.analysis-context-row .tools-source-selector { gap:10px; }
.analysis-context-row .tools-source-selector .tools-tabs { gap:14px; }
.build-result { padding-top:16px; }
.build-result .tools-summary { gap:8px 20px; margin-bottom:8px; }
.pc-tools[data-page=builder] .build-result .tools-summary-item strong { font-size:18px; }
.pc-tools[data-page=builder] .build-result .tools-summary-item span { font-size:12px; }
.tools-caption { margin:8px 0 18px; font-size:12px; color:var(--muted); }
.tools-empty { margin:0; padding:45px 12px; text-align:center; font-size:13px; color:var(--muted); }
.tools-models { margin-top:26px; }
.tools-change { display:block; font-size:11px; font-weight:400; margin-top:2px; }
.tools-change.up { color:var(--danger); }.tools-change.down { color:var(--confirmed); }
.tools-footer { display:flex; width:min(1536px,100%); max-width:1536px; justify-content:flex-end; gap:22px; margin:0 auto; padding:20px 24px; border-right:1px solid var(--line); border-left:1px solid var(--line); font-size:12px; }
.tools-footer a { color:var(--muted); }
.analysis-filter-bar { display:grid; grid-template-columns:minmax(560px,1fr) auto; align-items:center; gap:10px 24px; min-width:0; margin-bottom:20px; border-bottom:1px solid var(--line); }
.analysis-filter-bar > .tools-tabs { min-width:0; margin:0; }
.analysis-filter-bar #model-controls { min-width:0; }
.pc-tools[data-page=analysis] .analysis-filter-bar .tools-controls { justify-content:flex-end; flex-wrap:wrap; gap:8px 14px; margin:0; }
.pc-tools[data-page=analysis] .analysis-filter-bar .tools-controls label { min-width:0; }
.pc-tools[data-page=analysis] .analysis-filter-bar .tools-controls select { max-width:150px; }
.pc-tools[data-page=analysis] .analysis-heading { justify-content:flex-start; align-items:baseline; gap:10px 34px; min-height:42px; }
.pc-tools[data-page=analysis] .analysis-heading .tools-summary { flex:1 1 auto; gap:8px 28px; margin:0; }
.pc-tools[data-page=analysis] .analysis-heading .tools-summary-item strong { font-size:20px; }
.tools-source-selector { display:flex; max-width:100%; align-items:center; gap:16px; margin-left:auto; }
.tools-source-label { flex:0 0 auto; color:var(--ink-soft); font-size:12px; font-weight:750; }
.tools-source-selector .tools-tabs { max-width:100%; gap:22px; margin:0; }
/* Keep the builder readable and compact without stretching every empty column. */
.pc-tools[data-page=builder] .tools-toolbar { padding-bottom:14px; border-bottom:1px solid var(--line); }
.pc-tools[data-page=builder] .tools-summary-item strong { font-size:25px; }
.pc-tools[data-page=builder] .tools-summary-item span { font-size:14px; }
.pc-tools[data-page=builder] :is(button,select,input) { font-size:14px; }
.pc-tools[data-page=builder] table { font-size:14px; }
.pc-tools[data-page=builder] th { font-size:12px; padding:10px 8px; }
.pc-tools[data-page=builder] td { padding:7px 8px; }
.pc-tools[data-page=builder] .tools-controls { gap:8px 14px; margin-bottom:8px; }
.pc-tools[data-page=builder] .tools-builder-layout { margin-top:18px; gap:28px; }
.pc-tools[data-page=builder] #model-table { max-height:max(400px,calc(100dvh - 258px)); }
.pc-tools[data-page=builder] .tools-pages { margin-top:10px; }
.pc-tools[data-page=builder] #build-table table { table-layout:fixed; }
.pc-tools[data-page=builder] #build-table .build-col-part { width:22%; }
.pc-tools[data-page=builder] #build-table .build-col-model { width:60%; }
.pc-tools[data-page=builder] #build-table .build-col-action { width:18%; }
.pc-tools #build-table td:last-child:not([colspan]) { white-space:normal; }
.pc-tools[data-page=analysis] #model-table th:first-child { width:85%; }
.pc-tools[data-page=analysis] #model-table th:last-child { width:15%; }
@media(min-width:1101px) {
  .pc-tools[data-page=builder] .tools-builder-layout { grid-template-columns:minmax(560px,.8fr) minmax(0,1.2fr); }
}
@media(max-width:1100px) {
  .tools-builder-layout { grid-template-columns:minmax(0,1fr); gap:28px; }.tools-header { gap:24px; }
}
@media(max-width:1320px) {
  .analysis-filter-bar { grid-template-columns:minmax(0,1fr); padding-bottom:10px; }
  .pc-tools[data-page=analysis] .analysis-filter-bar .tools-controls { justify-content:flex-start; flex-wrap:wrap; }
}
@media(max-width:640px) {
  .analysis-context-row .tools-chart-toolbar { flex-basis:100%; flex-wrap:wrap; }
  .analysis-context-row .tools-range-field { display:grid; }
  .tools-header { position:static; height:auto; min-height:0; padding:0 12px 8px; flex-wrap:wrap; gap:0; }
  .tools-header .brand { height:48px; min-height:48px; }
  .tools-header nav { gap:22px; width:100%; }.tools-header nav a { padding:11px 0; font-size:12px; }
  .tools-main { padding:18px 14px 24px; }.tools-toolbar { align-items:flex-start; }
  .tools-toolbar .tools-actions { order:-1; width:100%; justify-content:flex-end; gap:22px; }
  .tools-summary { gap:10px 24px; }.tools-summary-item strong { font-size:18px; }
  .tools-controls { gap:6px 16px; }.tools-controls select { max-width:155px; }
  .tools-builder-layout { margin-top:18px; }.pc-tools table { min-width:590px; }.pc-tools td { padding:11px 8px; }
  .tools-table-scroll td:last-child:not([colspan]), .tools-table-scroll th:last-child { position:sticky; right:0; background:var(--bg,#f8f7f4); }
  .tools-table-scroll th:last-child { z-index:2; }.tools-pages { gap:4px; }
  .tools-chart-heading h2 { width:100%; }.tools-chart-toolbar { align-items:flex-start; }
  .tools-chart-controls { gap:6px 12px; }.tools-chart-toolbar .tools-tabs { max-width:100%; }
  .tools-chart-detail { gap:8px 16px; }.tools-footer { padding:18px 14px; gap:16px; justify-content:flex-start; }
  .main-navigation { gap:16px; }.main-navigation a { font-size:12px; }
  .pc-tools[data-page=builder] .tools-summary-item strong { font-size:20px; }
  .pc-tools[data-page=builder] #model-table { max-height:65dvh; }
  .analysis-filter-bar { gap:4px; margin-bottom:14px; }
  /* Keep the category strip inside the content box. Its own horizontal
     scrolling is intentional; extending it past the page border is not. */
  .pc-tools[data-page=analysis] .analysis-filter-bar > .tools-tabs { margin-right:0; max-width:100%; }
  .pc-tools[data-page=analysis] .analysis-filter-bar .tools-controls { gap:4px 12px; }
  .pc-tools[data-page=analysis] .analysis-filter-bar .tools-controls select { max-width:145px; }
  .pc-tools[data-page=analysis] .analysis-heading h2 { width:auto; }
  .pc-tools[data-page=analysis] .analysis-heading .tools-summary { flex-basis:100%; gap:6px 18px; }
  .tools-source-selector { width:100%; margin-left:0; overflow-x:auto; }
  .tools-source-selector .tools-tabs { overflow:visible; }
  .pc-tools[data-page=builder] #build-table table { min-width:0; width:100%; }
  .pc-tools td.model-name { min-width:0; }
  .pc-tools .tools-controls .tools-search { flex-basis:100%; min-width:0; }
  .pc-tools .tools-controls select { max-width:100%; }
  .pc-tools .tools-controls label { min-width:0; max-width:100%; }
  .pc-tools #chart-title { max-width:100%; overflow-wrap:anywhere; }
  .pc-tools .tools-line-price { font-size:12px; overflow-wrap:normal; }
  .pc-tools[data-page=builder] #build-table .build-col-part { width:24%; }
  .pc-tools[data-page=builder] #build-table .build-col-model { width:56%; }
  .pc-tools[data-page=builder] #build-table .build-col-action { width:20%; }
  .pc-tools[data-page=builder] #build-table td:last-child:not([colspan]) { position:static; }
  .pc-tools[data-page=builder] #model-table table { min-width:0; }
  .pc-tools[data-page=builder] #model-table th:first-child { width:42%; }
  .pc-tools[data-page=builder] #model-table th:last-child { width:14%; }
  .pc-tools[data-page=builder] #model-table th { white-space:normal; padding:8px 4px; }
  .pc-tools[data-page=builder] #model-table td { font-size:12px; padding:10px 4px; }
  .pc-tools[data-page=builder] #model-table td.model-name { font-size:13px; }
  .pc-tools[data-page=builder] #model-table td:last-child:not([colspan]) { position:static; }
  .pc-tools[data-page=builder] #model-table button { font-size:12px; padding:6px 0; }
  .pc-tools[data-page=analysis] #model-table table { min-width:0; }
  .pc-tools[data-page=analysis] #model-table th:first-child { width:78%; }
  .pc-tools[data-page=analysis] #model-table th:last-child { width:22%; }
  /* Price rows stack beneath their model; long amounts never compete with the
     model and action in four narrow columns on a 390px viewport. */
  .pc-tools[data-page=builder] #model-table table,
  .pc-tools[data-page=builder] #model-table tbody { display:block; width:100%; }
  .pc-tools[data-page=builder] #model-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .pc-tools[data-page=builder] #model-table tbody tr { display:grid; grid-template-columns:minmax(0,1fr) 56px; border-bottom:1px solid var(--line); }
  .pc-tools[data-page=builder] #model-table td { display:block; min-width:0; width:auto; border:0; text-align:left; height:auto; }
  .pc-tools[data-page=builder] #model-table td.model-name { grid-column:1; grid-row:1; }
  .pc-tools[data-page=builder] #model-table td.price { grid-column:1; white-space:normal; overflow-wrap:anywhere; padding-top:2px; padding-bottom:4px; }
  .pc-tools[data-page=builder] #model-table td.price::before { content:attr(data-label) ' · '; color:var(--ink-soft); font-weight:400; }
  .pc-tools[data-page=builder] #model-table td:last-child:not([colspan]) { grid-column:2; grid-row:1 / span 3; align-self:center; text-align:center; }
  .pc-tools[data-page=builder] #model-table td[colspan] { grid-column:1 / -1; }
}
