.mode-tabs {
  display: flex;
  gap: 6px;
  padding: 4px;
  margin: 14px 0;
  background: var(--surface-soft);
  border-radius: 12px;
}
[hidden] { display:none !important; }
.brand-copy { min-width:0; }
.brand-logo { display:block; max-width:100%; width:239px; height:auto; }
.progress-step:not(.current) span { filter:grayscale(1);opacity:.42;transform:scale(.92); }
.progress-step.current span { background:#f9c900;box-shadow:0 0 0 3px #f9c90030;outline:2px solid #bd9300;transform:scale(1.08); }
.progress-step.current small { color:var(--text);font-weight:800;font-size:10px; }
body.modal-open { overflow:hidden; }
body:not([data-screen="menu"]) .phone-pill { position:static;transform:none;width:max-content;margin:20px auto 12px; }
body:not([data-screen="menu"]) .app-footer { position:static;transform:none;justify-content:center;padding:4px 0 16px; }
#accessory-dialog { width:min(440px,calc(100% - 32px));max-height:85vh;max-height:85dvh;overflow:auto;padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--text);box-shadow:0 18px 60px #0003; }
#accessory-dialog::backdrop { background:#11182780; }
.detail-heading { display:flex;align-items:center;gap:12px;justify-content:space-between; }
.detail-heading h2 { margin:0;font-size:19px; }
.detail-heading button { width:44px;height:44px;flex:none;border:0;border-radius:50%;background:var(--surface-soft);color:var(--text);font-size:26px; }
#accessory-description { font-size:14px;line-height:1.65; }
.accessory-photo { margin:16px 0 12px; }
.accessory-photo img { display:block;width:100%;height:190px;object-fit:contain;border:1px solid var(--line);border-radius:12px;background:#fff; }
.accessory-photo figcaption { margin-top:5px;font-size:10px;line-height:1.4;color:var(--muted); }
.accessory-prices { margin:8px 0 16px;font-size:12px; }
.accessory-prices>div { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line); }
.accessory-prices dt { min-width:0; }
.accessory-prices dt small { display:block;margin-top:3px;color:var(--muted);font-size:10px; }
.accessory-prices dd { flex:none;margin:0;font-weight:700; }
.accessory-no-price { display:block;margin:14px 0; }
.delivery-map { height:300px;margin:14px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden; }
@media(max-width:600px) { #accessory-dialog { width:100%;max-width:none;margin:auto 0 0;border-radius:20px 20px 0 0;padding:20px 20px calc(20px + env(safe-area-inset-bottom)); } }
.required-mark { color:#b6372f; }
.field [aria-invalid="true"], [data-error-key][aria-invalid="true"] { border:2px solid #b6372f; background:#fff6f4; }
.field [aria-invalid="true"]:focus { border-color:#b6372f;box-shadow:0 0 0 3px #b6372f20; }
.field-error { display:block; color:#b6372f; font-size:12px; line-height:1.5; }
html[data-theme="dark"] .field [aria-invalid="true"] { background:#4a302e; }
html[data-theme="dark"] .field-error { color:#ffc3b5; }
.price-preview { margin-top:18px; padding:13px; background:var(--surface-soft); border:1px solid var(--line); border-radius:11px; font-size:12px; line-height:1.5; }
.price-preview strong,.price-preview small { display:block; }
.price-preview small { margin-top:7px; color:var(--muted); font-size:11px; }
.price-preview a { color:#8a6800; }
.extras-list .extra-card { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.extras-list .extra-card label { display:flex; align-items:flex-start; gap:10px; }
.extras-list .extra-card a { flex:none; display:inline-flex; align-items:center; min-height:44px; color:#8a6800; font-size:11px; }
.extras-list .extra-card button { flex:none;min-height:44px;padding:8px;border:0;background:transparent;color:#8a6800;font-size:12px; }
.address-suggestions { display:flex; flex-direction:column; gap:4px; }
.address-suggestions button { min-height:44px; padding:10px; text-align:left; border:1px solid var(--line); border-radius:8px; background:var(--surface); font-size:12px; }
.mode-tabs button { flex: 1; min-height: 42px; border: 0; border-radius: 9px; background: transparent; font-size: 12px; }
.mode-tabs button.selected { background: var(--accent); color: #302800; font-weight: 700; }
.catalog-caption { display: flex; justify-content: space-between; gap: 10px; margin: 16px 0 10px; font-size: 11px; }
.catalog-caption small { color: var(--muted); }
.type-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.type-card { display: flex; flex-direction: column; gap: 7px; min-height: 126px; padding: 13px 11px; text-align: left; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); }
.type-card strong { font-size: 13px; line-height: 1.4; }
.type-card small { color: var(--muted); font-size: 11px; line-height: 1.45; }
.type-card > span { margin-top: auto; padding-top: 5px; color: #9a7400; font-size: 10px; font-weight: 700; }
.type-card:hover, .variant-card:hover { border-color: #d8b400; }
.selected-product { display: flex; flex-direction: column; gap: 7px; padding: 14px; margin: 15px 0 4px; border: 1px solid #e5c850; background: var(--surface-soft); border-radius: 12px; font-size: 12px; }
.selected-product strong { font-size: 15px; }
.selected-product .inline-link { margin: 0; }
.eyebrow { color: var(--muted); text-transform: uppercase; font-size: 9px; letter-spacing: .9px; }
.variant-list { display: flex; flex-direction: column; gap: 9px; }
.variant-card { display: flex; flex-direction: column; gap: 7px; width: 100%; padding: 15px; text-align: left; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.variant-card strong { font-size: 13px; line-height: 1.4; }
.variant-card span, .variant-card small { color: var(--muted); font-size: 11px; }
.help-variant { background: var(--surface-soft); }
.source-link { display: inline-block; margin: 14px 0 4px; font-size: 11px; color: #9a7400; text-decoration: none; }
.section-label { margin: 24px 0 10px; font-size: 14px; }
.change-variant { text-align: left; margin: 4px 0 15px; }
.check-row, .extra-card { display: flex; align-items: flex-start; gap: 10px; font-size: 12px; line-height: 1.5; }
.check-row { margin: 17px 0; }
input[type="checkbox"] { width: 18px; height: 18px; flex: none; accent-color: #d8b400; margin: 1px 0 0; }
.parameter-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 10px; }
.parameter-grid .field > span { min-height: 32px; font-size: 11px; }
.measurement-card { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 13px; border-radius: 11px; background: var(--surface-soft); font-size: 11px; }
.measurement-card strong { font-size: 14px; }
.measurement-card small { grid-column: 1/-1; color: var(--muted); font-size: 10px; line-height: 1.5; }
.project-attachment { margin: 18px 0; border: 1px dashed var(--line); padding: 12px; border-radius: 11px; font-size: 12px; }
.project-attachment summary { cursor: pointer; }
.project-attachment input { width: 100%; font-size: 11px; }
.project-attachment li { overflow-wrap: anywhere; }
.extras-list { display: flex; flex-direction: column; gap: 7px; }
.extra-card { padding: 11px; border: 1px solid var(--line); border-radius: 11px; }
.extra-card span { display: flex; flex-direction: column; gap: 4px; }
.extra-card strong { font-size: 12px; }
.extra-card small { color: var(--muted); font-size: 10px; }
.expert-note { margin: 18px 0 5px; padding: 12px; border-left: 3px solid var(--accent); background: var(--surface-soft); border-radius: 0 9px 9px 0; font-size: 12px; }
.expert-note p { margin: 7px 0 0; color: var(--muted); line-height: 1.5; font-size: 11px; }
.map-route-button { width: 100%; padding: 13px 9px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); font-size: 12px; color: #9a7400; }
.delivery-explanation { font-size: 11px; line-height: 1.5; color: var(--muted); }
.quote-preview { margin: 15px 0; padding: 15px; border: 1px solid var(--line); border-radius: 12px; }
.quote-sheet { font-size: 11px; line-height: 1.55; overflow-wrap: anywhere; }
.quote-brand { border-bottom: 4px solid var(--accent); padding-bottom: 9px; font-size: 15px; font-weight: 800; }
.quote-brand span { display: block; font-size: 9px; font-weight: 400; color: var(--muted); }
.quote-sheet h2 { font-size: 17px; margin: 14px 0 8px; }
.quote-sheet h3 { font-size: 12px; margin: 19px 0 7px; }
.quote-meta, .quote-footnote { font-size: 9px; color: var(--muted); }
.quote-status { padding: 9px; border-radius: 8px; background: var(--surface-soft); }
.quote-details { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.quote-details dt { color: var(--muted); }
.quote-details dd { margin: 0; }
.quote-table-wrap { overflow-x: auto; }
.quote-sheet table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 9px; }
.quote-sheet th, .quote-sheet td { border: 1px solid var(--line); text-align: left; vertical-align: top; padding: 7px; }
.quote-total { font-weight: 700; padding-top: 12px; border-top: 1px solid var(--line); }
.quote-actions { display: flex; flex-direction: column; gap: 9px; }
.knowledge-search { margin-top: 22px; padding-top: 12px; border-top: 1px solid var(--line); }
.knowledge-search h3 { font-size: 14px; }
.knowledge-result { display: block; padding: 12px; margin: 8px 0; border: 1px solid var(--line); border-radius: 10px; text-decoration: none; color: var(--text); }
.knowledge-result strong { font-size: 12px; }
.knowledge-result p { color: var(--muted); font-size: 11px; line-height: 1.5; }
.knowledge-result small { color: #9a7400; font-size: 10px; }
#print-root { display: none; }
button:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid #a38b25; outline-offset: 3px; }
@media (max-width: 360px) {
  .type-card { padding: 11px 9px; }
  .type-card strong { font-size: 12px; }
  .parameter-grid { grid-template-columns: 1fr; }
  .parameter-grid .field > span { min-height: 0; }
}
@media print {
  @page { size: A4; margin: 16mm; }
  body { background: #fff; color: #162132; font-family: Arial, sans-serif; }
  .app-shell { display: none !important; }
  #print-root { display: block !important; }
  .quote-sheet { font-size: 12px; }
  .quote-sheet h2 { font-size: 23px; }
  .quote-sheet h3 { font-size: 15px; break-after: avoid; }
  .quote-sheet table { font-size: 11px; }
  .quote-sheet tr { break-inside: avoid; }
  .quote-meta, .quote-footnote { font-size: 10px; }
  .quote-table-wrap { overflow: visible; }
}
