:root {
  --pvf-ink: #17343b;
  --pvf-paper: #f4f0e8;
  --pvf-panel: #fffaf0;
  --pvf-line: #d6d1c5;
  --pvf-moss: #335d54;
  --pvf-clay: #bc6245;
  --pvf-gold: #a77924;
  --pvf-muted: #68767a;
}
.pvf-catalog { color:var(--pvf-ink); font-family:ui-sans-serif,system-ui,sans-serif; background:var(--pvf-paper); min-height:100%; padding:clamp(16px,3vw,42px); }
.pvf-catalog *, .pvf-product-card * { box-sizing:border-box; }
.pvf-catalog button, .pvf-catalog input, .pvf-catalog select, .pvf-catalog textarea { font:inherit; }
.pvf-catalog button:focus-visible, .pvf-catalog input:focus-visible, .pvf-catalog select:focus-visible, .pvf-catalog textarea:focus-visible, .pvf-product-card a:focus-visible { outline:3px solid var(--pvf-clay); outline-offset:3px; }
.pvf-shell { max-width:1540px; margin:auto; }
.pvf-eyebrow { color:var(--pvf-clay); font-size:11px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.pvf-topline { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; border-bottom:1px solid var(--pvf-line); padding-bottom:24px; }
.pvf-title { font-family:Georgia,serif; font-size:clamp(31px,4vw,54px); font-weight:500; letter-spacing:-.045em; line-height:.95; margin:7px 0 0; }
.pvf-subtitle { color:var(--pvf-muted); font-size:14px; margin:10px 0 0; max-width:600px; }
.pvf-status { background:#dce8df; color:#214c42; border-radius:999px; padding:8px 12px; font-size:12px; font-weight:750; white-space:nowrap; }
.pvf-metrics { display:grid; grid-template-columns:repeat(4,1fr); margin:26px 0; border:1px solid var(--pvf-line); background:var(--pvf-panel); }
.pvf-metric { padding:15px 18px; border-right:1px solid var(--pvf-line); }.pvf-metric:last-child{border:0}
.pvf-metric b { display:block; font:500 25px/1 Georgia,serif; }.pvf-metric span { color:var(--pvf-muted); font-size:11px; text-transform:uppercase; letter-spacing:.09em; }
.pvf-toolbar { display:grid; grid-template-columns:minmax(180px,1fr) repeat(3,minmax(130px,.35fr)) auto; gap:9px; margin:18px 0; }
.pvf-field { border:1px solid var(--pvf-line); border-radius:3px; background:var(--pvf-panel); padding:11px 12px; color:var(--pvf-ink); min-width:0; }
.pvf-btn { cursor:pointer; border:1px solid var(--pvf-ink); background:var(--pvf-ink); color:#fffaf0; padding:10px 14px; border-radius:3px; font-size:13px; font-weight:750; }
.pvf-btn:hover { background:var(--pvf-moss); }.pvf-btn--quiet { background:transparent;color:var(--pvf-ink); }.pvf-btn--danger{border-color:#943f34;color:#943f34;background:transparent}
.pvf-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:24px; align-items:start; }.pvf-side { position:sticky;top:12px; }
.pvf-products { display:grid; grid-template-columns:repeat(auto-fill,minmax(244px,1fr)); gap:14px; }
.pvf-product-card { position:relative; display:flex; flex-direction:column; min-width:0; border:1px solid var(--pvf-line); background:var(--pvf-panel); border-radius:4px; overflow:hidden; box-shadow:0 1px 0 rgba(23,52,59,.05); }
.pvf-product-card__image { position:relative; aspect-ratio:4/3; background:#e2e2d8; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.pvf-product-card__image img { width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; }.pvf-product-card__fallback { color:#637376; font:700 10px/1 ui-monospace,monospace; text-align:center; letter-spacing:.08em; text-transform:uppercase; border:1px solid #aeb8b7; padding:13px 10px; }
.pvf-image-label { position:absolute;left:9px;bottom:9px;background:rgba(23,52,59,.92);color:#fffaf0;padding:5px 7px;border-radius:2px;font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase; }
.pvf-product-card__body { display:flex; flex:1; flex-direction:column; padding:15px; }.pvf-product-card h3 { margin:7px 0 10px; font:600 19px/1.08 Georgia,serif; letter-spacing:-.02em; }.pvf-product-card h3 button { text-align:left;border:0;background:none;color:inherit;cursor:pointer;padding:0;font:inherit; }
.pvf-part { font:600 11px/1.2 ui-monospace,SFMono-Regular,monospace; letter-spacing:.05em; color:var(--pvf-muted); }.pvf-specs { border-top:1px solid var(--pvf-line); margin-top:auto; padding-top:10px; color:#40575a; font-size:12px; line-height:1.5; }.pvf-card-foot { display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:8px; }.pvf-stock { font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--pvf-moss); }.pvf-stock--hold { color:#876119; }
.pvf-health { background:var(--pvf-ink);color:#edf0e6;padding:20px;border-radius:4px; }.pvf-health h2 { font:500 23px Georgia,serif;margin:0 0 15px; }.pvf-health-row { border-top:1px solid rgba(255,255,255,.14);padding:11px 0;display:flex;justify-content:space-between;gap:8px;font-size:13px; }.pvf-health-row small{color:#b7c7c1}.pvf-progress { height:6px;background:#526a68;margin:8px 0 16px;border-radius:8px;overflow:hidden}.pvf-progress i{display:block;height:100%;background:#e4b95e;width:0;transition:width .35s ease}
.pvf-empty,.pvf-error,.pvf-skeleton { border:1px dashed var(--pvf-line);padding:38px 18px;text-align:center;color:var(--pvf-muted);background:var(--pvf-panel); }.pvf-skeleton{height:300px;animation:pvf-pulse 1.5s infinite;background:linear-gradient(90deg,#eeebe2,#faf5ea,#eeebe2);background-size:200% 100%}@keyframes pvf-pulse{to{background-position:-200% 0}}
.pvf-dialog { border:0;padding:0;width:min(1180px,calc(100vw - 28px));max-height:calc(100dvh - 28px);background:var(--pvf-panel);color:var(--pvf-ink);box-shadow:0 30px 90px rgba(23,52,59,.35); }.pvf-dialog::backdrop{background:rgba(15,38,42,.62)}.pvf-dialog__head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--pvf-line);position:sticky;top:0;background:var(--pvf-panel);z-index:2}.pvf-dialog__head h2{font:500 25px Georgia,serif;margin:0}.pvf-close{border:0;background:transparent;cursor:pointer;color:var(--pvf-ink);font-size:25px;padding:3px 8px}.pvf-dialog__body{padding:24px;overflow:auto}.pvf-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.pvf-review-pane{border:1px solid var(--pvf-line);padding:18px;min-width:0}.pvf-review-pane h3{font:700 11px ui-sans-serif,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--pvf-muted);margin:0 0 14px}.pvf-detail-preview{border:1px solid var(--pvf-line);padding:18px;background:#f9f6ee}.pvf-detail-preview h4{font:500 29px/1 Georgia,serif;margin:10px 0}.pvf-spec-list{margin:0;padding:0;list-style:none}.pvf-spec-list li{display:grid;grid-template-columns:42% 1fr;gap:10px;border-top:1px solid var(--pvf-line);padding:9px 0;font-size:13px}.pvf-spec-list span{color:var(--pvf-muted)}.pvf-evidence{border-left:3px solid var(--pvf-gold);background:#fff5db;padding:11px 12px;margin:10px 0;font-size:12px}.pvf-conflict{border-left-color:#a84236;background:#f9e7e2}.pvf-actions{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--pvf-line);padding-top:17px;margin-top:18px;flex-wrap:wrap}.pvf-override{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:15px}.pvf-override textarea{grid-column:1/-1;min-height:74px}.pvf-notice{padding:10px 12px;background:#eaf1e9;border-left:3px solid var(--pvf-moss);font-size:13px;margin:12px 0}.pvf-hidden{display:none!important}
@media(max-width:900px){.pvf-layout{grid-template-columns:1fr}.pvf-side{position:static}.pvf-health{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.pvf-health h2,.pvf-progress{grid-column:1/-1}}
@media(max-width:650px){.pvf-catalog{padding:17px 13px}.pvf-topline{align-items:flex-start;flex-direction:column}.pvf-metrics{grid-template-columns:1fr 1fr}.pvf-metric:nth-child(2){border-right:0}.pvf-metric:nth-child(-n+2){border-bottom:1px solid var(--pvf-line)}.pvf-toolbar{grid-template-columns:1fr 1fr}.pvf-toolbar .pvf-search{grid-column:1/-1}.pvf-layout{gap:14px}.pvf-review-grid{grid-template-columns:1fr}.pvf-dialog__body{padding:14px}.pvf-override{grid-template-columns:1fr}.pvf-spec-list li{grid-template-columns:1fr}.pvf-health{display:block}}
.pvf-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}