/* r245 — visual audit: contrast, color matrix and readable surfaces
   Loaded last. Do not add business logic here. */

:root{
  color-scheme: dark;
  --bg: #0f172a;
  --bg2: #111827;
  --surface: #182235;
  --surface2: #202b3f;
  --text: #f8fafc;
  --text1: #f8fafc;
  --text2: #d6deea;
  --text3: #a7b4c7;
  --line: rgba(226,232,240,.16);
  --line2: rgba(226,232,240,.26);
  --surface-a: rgba(255,255,255,.055);
  --surface-b: rgba(255,255,255,.095);
  --surface-c: rgba(255,255,255,.14);
  --surface-d: rgba(255,255,255,.22);
  --orange: #ff7a1a;
  --orange-l: #ff9a4d;
  --orange-dim: rgba(255,122,26,.16);
  --orange-brd: rgba(255,122,26,.34);

  --ui-page-bg: radial-gradient(circle at 12% 0%, rgba(255,122,26,.10), transparent 34%), linear-gradient(180deg, #101827 0%, #0f172a 100%);
  --ui-surface: #182235;
  --ui-surface-2: #202b3f;
  --ui-surface-strong: rgba(24,34,53,.94);
  --ui-surface-soft: rgba(255,255,255,.055);
  --ui-border: 1px solid rgba(226,232,240,.16);
  --ui-border-strong: 1px solid rgba(226,232,240,.26);
  --ui-muted-bg: rgba(226,232,240,.08);
  --ui-hover: rgba(255,122,26,.12);
  --ui-active: linear-gradient(135deg, #ff7a1a, #ff9a4d);
  --ui-on-accent: #ffffff;
  --ui-shadow-soft: 0 14px 36px rgba(2,6,23,.28);
  --ui-shadow-card: 0 16px 42px rgba(2,6,23,.26);
  --ui-shadow-float: 0 24px 70px rgba(2,6,23,.38);

  --kareta-card-bg: linear-gradient(180deg, rgba(24,34,53,.98) 0%, rgba(17,24,39,.96) 100%);
  --kareta-card-border: rgba(226,232,240,.14);
  --kareta-card-accent: rgba(255,122,26,.13);
}

[data-theme="light"],
[data-theme="auto"]{
  color-scheme: light;
  --bg: #f6f8fb;
  --bg2: #ffffff;
  --surface: #ffffff;
  --surface2: #f3f6fa;
  --text: #111827;
  --text1: #111827;
  --text2: #334155;
  --text3: #64748b;
  --line: rgba(15,23,42,.10);
  --line2: rgba(15,23,42,.16);
  --surface-a: rgba(15,23,42,.035);
  --surface-b: rgba(15,23,42,.065);
  --surface-c: rgba(15,23,42,.105);
  --surface-d: rgba(15,23,42,.17);
  --orange: #f97316;
  --orange-l: #fb923c;
  --orange-dim: rgba(249,115,22,.12);
  --orange-brd: rgba(249,115,22,.30);

  --ui-page-bg: radial-gradient(circle at 12% 0%, rgba(249,115,22,.11), transparent 34%), linear-gradient(180deg, #fffaf5 0%, #f6f8fb 38%, #f8fafc 100%);
  --ui-surface: #ffffff;
  --ui-surface-2: #f8fafc;
  --ui-surface-strong: rgba(255,255,255,.96);
  --ui-surface-soft: rgba(15,23,42,.035);
  --ui-border: 1px solid rgba(15,23,42,.10);
  --ui-border-strong: 1px solid rgba(15,23,42,.16);
  --ui-muted-bg: #f1f5f9;
  --ui-hover: rgba(249,115,22,.08);
  --ui-active: linear-gradient(135deg, #f97316, #fb923c);
  --ui-on-accent: #ffffff;
  --ui-shadow-soft: 0 10px 26px rgba(15,23,42,.07);
  --ui-shadow-card: 0 16px 38px rgba(15,23,42,.09), 0 1px 0 rgba(255,255,255,.82) inset;
  --ui-shadow-float: 0 28px 80px rgba(15,23,42,.18);

  --kareta-card-bg: linear-gradient(180deg, #ffffff 0%, #fffaf6 100%);
  --kareta-card-border: rgba(15,23,42,.10);
  --kareta-card-accent: rgba(249,115,22,.105);
}

@media (prefers-color-scheme: dark){
  [data-theme="auto"]{
    color-scheme: dark;
    --bg: #0f172a;
    --bg2: #111827;
    --surface: #182235;
    --surface2: #202b3f;
    --text: #f8fafc;
    --text1: #f8fafc;
    --text2: #d6deea;
    --text3: #a7b4c7;
    --line: rgba(226,232,240,.16);
    --line2: rgba(226,232,240,.26);
    --surface-a: rgba(255,255,255,.055);
    --surface-b: rgba(255,255,255,.095);
    --surface-c: rgba(255,255,255,.14);
    --surface-d: rgba(255,255,255,.22);
    --ui-page-bg: radial-gradient(circle at 12% 0%, rgba(255,122,26,.10), transparent 34%), linear-gradient(180deg, #101827 0%, #0f172a 100%);
    --ui-surface: #182235;
    --ui-surface-2: #202b3f;
    --ui-surface-strong: rgba(24,34,53,.94);
    --ui-surface-soft: rgba(255,255,255,.055);
    --ui-border: 1px solid rgba(226,232,240,.16);
    --ui-border-strong: 1px solid rgba(226,232,240,.26);
    --ui-muted-bg: rgba(226,232,240,.08);
    --ui-shadow-card: 0 16px 42px rgba(2,6,23,.26);
    --kareta-card-bg: linear-gradient(180deg, rgba(24,34,53,.98) 0%, rgba(17,24,39,.96) 100%);
    --kareta-card-border: rgba(226,232,240,.14);
  }
}

html, body{
  background: var(--ui-page-bg, var(--bg)) !important;
  color: var(--text1) !important;
}
body{ text-rendering: optimizeLegibility; }

/* Base readability: do not let old hard-coded colors win inside surfaces. */
.page-shell,
.spa-page,
.spa-content,
.home-catalog,
.masters-content,
.msng-full-page,
.container.msng-page-content,
.cabinet-page,
.parts-page,
.legal-page,
.admin-page{
  color: var(--text1) !important;
}

.page-shell p,
.spa-page p,
.home-catalog p,
.masters-content p,
.msng-full-page p,
.cabinet-page p,
.parts-page p,
.legal-page p,
.admin-page p{
  color: var(--text2);
}

/* Shared surfaces — cards, panels, sticky tools, tables, modals. */
.surface-card,
.page-hero,
.page-sticky-tools,
.spa-page-hero .spa-hero-body,
.spa-hero-body,
.home-hero,
.legal-hero,
.legal-rich-stat,
.legal-info-card,
.msng-item.msng-item--v2,
.master-card,
.master-contact-row,
.mo-card,
.parts-category-card,
.hcat-card,
.cab-tab,
.cab-mini-stat,
.mprof-tab,
.mprof-pane-modal-card,
.cab-pane-modal-card,
.cmodal-box,
.cmodal-card,
.spec-svc-panel,
.notifs-panel,
#notifs-panel,
.msng-empty-cta.card,
.msng-page-sections,
.msng-messages,
.ui-data-card,
.ui-table tr,
.k-dialog,
.modal-dialog-v2,
.vehicle-add-modal-box,
.svc-attach-row,
.svc-attach-thumb,
.svc-attach-modal-card{
  background: var(--ui-surface-strong, var(--ui-surface)) !important;
  color: var(--text1) !important;
  border: var(--ui-border) !important;
  box-shadow: var(--ui-shadow-card) !important;
}

[data-theme="light"] .surface-card,
[data-theme="light"] .page-hero,
[data-theme="light"] .page-sticky-tools,
[data-theme="light"] .spa-page-hero .spa-hero-body,
[data-theme="light"] .spa-hero-body,
[data-theme="light"] .home-hero,
[data-theme="light"] .legal-hero,
[data-theme="light"] .legal-rich-stat,
[data-theme="light"] .legal-info-card,
[data-theme="light"] .msng-item.msng-item--v2,
[data-theme="light"] .master-card,
[data-theme="light"] .master-contact-row,
[data-theme="light"] .mo-card,
[data-theme="light"] .parts-category-card,
[data-theme="light"] .hcat-card,
[data-theme="light"] .cab-tab,
[data-theme="light"] .cab-mini-stat,
[data-theme="light"] .mprof-tab,
[data-theme="light"] .msng-empty-cta.card,
[data-theme="light"] .msng-page-sections,
[data-theme="light"] .msng-messages,
[data-theme="light"] .svc-attach-row,
[data-theme="light"] .svc-attach-thumb{
  background: var(--kareta-card-bg) !important;
}

/* Text hierarchy inside cards. */
.surface-card h1,.surface-card h2,.surface-card h3,.surface-card h4,
.page-hero h1,.page-hero h2,.page-hero h3,
.spa-hero-body h1,.spa-hero-body h2,.spa-hero-body h3,
.home-hero h1,.home-hero h2,.home-hero h3,
.legal-rich-stat b,.legal-rich-stat strong,
.legal-info-card b,.legal-info-card strong,
.msng-item b,.msng-item strong,
.master-card b,.master-card strong,
.mo-card b,.mo-card strong,
.parts-category-card b,.parts-category-card strong,
.hcat-card b,.hcat-card strong,
.cab-tab b,.cab-tab strong,
.mprof-tab b,.mprof-tab strong,
.cmodal-box h1,.cmodal-box h2,.cmodal-box h3,
.cab-pane-modal-card h1,.cab-pane-modal-card h2,.cab-pane-modal-card h3,
.mprof-pane-modal-card h1,.mprof-pane-modal-card h2,.mprof-pane-modal-card h3{
  color: var(--text1) !important;
}

.surface-card p,.surface-card small,.surface-card span,
.legal-info-card p,.legal-info-card small,
.msng-item small,.msng-item .msng-item-preview,
.master-card small,.master-card .master-card__meta,
.mo-card small,.mo-card .mo-card-sub,
.parts-category-card p,.parts-category-card small,
.hcat-card p,.hcat-card small,
.cab-tab p,.cab-tab small,
.mprof-tab p,.mprof-tab small,
.cmodal-box p,.cmodal-box small,
.cab-pane-modal-card p,.cab-pane-modal-card small,
.mprof-pane-modal-card p,.mprof-pane-modal-card small{
  color: var(--text2) !important;
}

/* Sticky blocks and filters. */
.masters-sticky-tools,
.msng-sticky-tools,
.myorders-sticky-tools,
.parts-sticky-tools,
#myorders-sticky-tools,
#parts-sticky-tools{
  background: var(--ui-surface-strong) !important;
  border: var(--ui-border) !important;
  box-shadow: var(--ui-shadow-card) !important;
}
.mo-filter-bar,
.mo-filter-tabs{
  color: var(--text1) !important;
}
.mo-filter-tab{
  background: var(--ui-surface-2) !important;
  border: var(--ui-border) !important;
  color: var(--text2) !important;
  min-height: 34px;
}
.mo-filter-tab:hover{
  background: var(--ui-hover) !important;
  color: var(--text1) !important;
  border-color: var(--orange-brd) !important;
}
.mo-filter-tab.active,
.mo-filter-tab.is-active,
.mo-filter-tab[aria-selected="true"]{
  background: var(--ui-active) !important;
  color: var(--ui-on-accent) !important;
  border-color: transparent !important;
}
.mo-filter-tab.active *,
.mo-filter-tab.is-active *,
.mo-filter-tab[aria-selected="true"] *{
  color: var(--ui-on-accent) !important;
}
.mo-filter-cnt{
  background: color-mix(in srgb, var(--orange) 16%, transparent) !important;
  color: var(--text1) !important;
  border: 1px solid var(--orange-brd) !important;
}
.mo-filter-tab.active .mo-filter-cnt,
.mo-filter-tab.is-active .mo-filter-cnt{
  background: rgba(255,255,255,.22) !important;
  color: #fff !important;
  border-color: rgba(255,255,255,.28) !important;
}

/* Search controls: remove hard-coded white/black pairs. */
.mo-search-toggle,
.mo-search-panel,
.mo-search-input,
.mo-search-clear,
.svc-attach-btn,
.svc-attach-empty{
  background: var(--ui-surface-2) !important;
  color: var(--text1) !important;
  border: var(--ui-border) !important;
}
.mo-search-input::placeholder{
  color: var(--text3) !important;
}
.mo-search-clear{
  color: var(--text2) !important;
}

/* Buttons. */
.btn,
button,
.ui-btn,
.cmodal-close,
.modal-close-v2,
.news-modal-close{
  color: inherit;
}
.btn-primary,
.ui-btn--primary,
.svc-urgent-cta,
.home-catalog-custom-request,
.auth-btn,
.mo-search-toggle.is-active{
  background: var(--ui-active) !important;
  color: var(--ui-on-accent) !important;
  border-color: transparent !important;
  box-shadow: 0 14px 30px rgba(249,115,22,.24) !important;
}
.btn-primary *,
.ui-btn--primary *,
.svc-urgent-cta *,
.home-catalog-custom-request *,
.auth-btn *{
  color: var(--ui-on-accent) !important;
}
.btn-ghost,
.ui-btn--ghost,
.btn-secondary,
.ui-btn--secondary{
  background: var(--ui-surface-2) !important;
  color: var(--text1) !important;
  border: var(--ui-border) !important;
}
.btn-danger,
.ui-btn--danger{
  background: #ef4444 !important;
  color: #fff !important;
  border-color: #ef4444 !important;
}

/* Inputs and form readability. */
input,
textarea,
select,
.auth-input,
.k-input,
.k-textarea,
.pof-input,
.owiz-field input,
.owiz-field textarea,
.owiz-field select{
  background: var(--ui-surface-2) !important;
  color: var(--text1) !important;
  border: var(--ui-border) !important;
}
input::placeholder,
textarea::placeholder{
  color: var(--text3) !important;
}
label,
.auth-label,
.k-label,
.pof-label,
.owiz-field label{
  color: var(--text2) !important;
}

/* Service/category cards. */
.hcat-card::before{ display:none !important; content:none !important; }
.spec-svc-item{
  background: var(--ui-surface-strong) !important;
  color: var(--text1) !important;
  border: var(--ui-border) !important;
}
.spec-svc-item:hover{
  background: var(--ui-hover) !important;
  border-color: var(--orange-brd) !important;
}
.spec-svc-item.active,
.spec-svc-item--selected{
  background: color-mix(in srgb, var(--orange) 13%, var(--ui-surface) 87%) !important;
  border-color: var(--orange-brd) !important;
}
.spec-svc-label{ color: var(--text1) !important; }
.spec-svc-sub{ color: var(--text2) !important; }
.spec-svc-price{
  background: var(--orange-dim) !important;
  color: var(--orange-l) !important;
  border: 1px solid var(--orange-brd) !important;
}

/* Message bubbles and media. */
.msng-bubble{
  color: var(--text1) !important;
}
.msng-bubble:not(.me){
  background: var(--ui-surface-2) !important;
  border: var(--ui-border) !important;
}
.msng-bubble.me{
  background: var(--ui-active) !important;
  color: #fff !important;
}
.msng-bubble.me *{ color:#fff !important; }
.msng-bubble.file-bubble{
  background: var(--ui-surface-2) !important;
  color: var(--text1) !important;
  border: var(--ui-border) !important;
}
.msng-bubble.file-bubble img,
.msng-bubble.file-bubble video{
  background:#0f172a !important;
}
.msng-quick-actions button,
.msng-attach-preview-card,
.msng-empty-preview,
.msng-loading-state{
  background: var(--ui-surface-2) !important;
  color: var(--text1) !important;
  border: var(--ui-border) !important;
}

/* Legal and information pages: stronger CTA/readability. */
.legal-rich-stat .legal-card-more,
.legal-rich-stat [class*="more"],
.legal-info-card .legal-card-more,
.legal-info-card [class*="more"]{
  background: var(--ui-active) !important;
  color: #fff !important;
  border-color: transparent !important;
}
.legal-rich-stat .legal-card-more *,
.legal-rich-stat [class*="more"] *,
.legal-info-card .legal-card-more *,
.legal-info-card [class*="more"] *{ color:#fff !important; }

/* Old dark chips/hard-coded fragments that broke light theme. */
.master-profile-chip,
.master-profile-page .chip,
.master-profile-page .badge,
.booking-picked-chip,
.booking-picked-clear,
.vehicle-editor-steps .step span,
.profile-hint,
.pof-sel-sku{
  background: var(--ui-surface-2) !important;
  color: var(--text1) !important;
  border: var(--ui-border) !important;
}
.booking-multi-picked__title,
.booking-prefill-note__title,
.booking-prefill-note__emoji{
  color: var(--text1) !important;
}
.booking-prefill-note{
  background: var(--ui-surface-strong) !important;
  color: var(--text1) !important;
  border: var(--ui-border) !important;
}

/* Attach preview modal and service attachments. */
.svc-attach-label,
.svc-attach-thumb-meta,
.svc-attach-modal-head b,
.svc-attach-thumb-meta b{
  color: var(--text1) !important;
}
.svc-attach-thumb-meta em,
.svc-attach-modal-head span{
  color: var(--text3) !important;
}
.svc-attach-modal-body{
  background: var(--ui-surface-2) !important;
}
.svc-attach-modal-actions,
.svc-attach-modal-head{
  border-color: color-mix(in srgb, var(--line) 100%, transparent) !important;
}

/* Tables: readable desktop only, card-like rows. */
.ui-table th{ color: var(--text2) !important; }
.ui-table td{ color: var(--text1) !important; background: var(--ui-surface-strong) !important; }
.ui-table tr{ background: transparent !important; box-shadow:none !important; }

/* Status colors: modern but readable on both themes. */
.status-badge,
.mo-status-badge,
.modal-status,
[class*="status-badge"]{
  color: var(--text1);
  border: var(--ui-border);
}
.status-badge--done,
.mo-status-badge.done,
.modal-status--done{ background: rgba(34,197,94,.14) !important; color:#22c55e !important; border-color:rgba(34,197,94,.30) !important; }
.status-badge--danger,
.mo-status-badge.danger,
.modal-status--error{ background: rgba(239,68,68,.14) !important; color:#ef4444 !important; border-color:rgba(239,68,68,.30) !important; }
.status-badge--wait,
.mo-status-badge.wait,
.modal-status--wait{ background: rgba(245,158,11,.14) !important; color:#f59e0b !important; border-color:rgba(245,158,11,.30) !important; }
.status-badge--new,
.mo-status-badge.new,
.modal-status--new{ background: rgba(96,165,250,.14) !important; color:#60a5fa !important; border-color:rgba(96,165,250,.30) !important; }

/* Font scale audit: keep mobile readable, avoid tiny gray captions. */
@media (max-width: 767px){
  body{ font-size: 16px; }
  .mo-filter-tab,
  .bnav-item,
  .msng-item-preview,
  .spec-svc-sub,
  .hcat-card small,
  .cab-tab small,
  .mprof-tab small,
  .legal-info-card p,
  .parts-category-card p{ font-size: max(12.5px, .82rem) !important; }
  .msng-item b,
  .mo-card b,
  .master-card b,
  .spec-svc-label,
  .hcat-card b{ font-size: max(15px, .96rem) !important; }
}

/* Desktop visual rhythm: cleaner blocks, no gray wash. */
@media (min-width: 1024px){
  .container{ max-width: 1890px; }
  .page-hero,
  .spa-hero-body,
  .masters-sticky-tools,
  .msng-sticky-tools,
  .myorders-sticky-tools,
  .parts-sticky-tools{ backdrop-filter: saturate(1.12) blur(14px); }
  .msng-item.msng-item--v2,
  .master-card,
  .mo-card,
  .parts-category-card,
  .hcat-card{ min-height: auto; }
}

/* r246 — interface cohesion pass: unified rhythm for remaining screens
   Keeps mobile lightweight: cards first, tables only on wider screens. */
:root{
  --ui-section-gap: clamp(14px, 1.5vw, 24px);
  --ui-section-pad: clamp(14px, 1.6vw, 24px);
  --ui-list-gap: clamp(10px, 1vw, 16px);
  --ui-control-h: 42px;
  --ui-control-h-sm: 36px;
  --ui-card-title-weight: 850;
  --ui-card-sub-size: clamp(13px, .86vw, 15px);
  --ui-icon-box: 44px;
}

/* Page rhythm: every route should feel like the same product shell. */
#app > section,
.spa-page,
.home-catalog,
.masters-content,
.msng-full-page,
.parts-page,
.cabinet-page,
.legal-page,
.admin-page,
.myorders-page{
  color: var(--text1) !important;
}

.spa-content,
.masters-content,
.msng-full-page,
.parts-page,
.cabinet-page,
.legal-page,
.admin-page,
.myorders-page{
  --route-max-readable: min(100%, 1480px);
}

.spa-content > .container,
.masters-content > .container,
.container.msng-page-content,
.parts-page .container,
.cabinet-page .container,
.legal-page .container,
.admin-page .container,
.myorders-page .container{
  display:flex;
  flex-direction:column;
  gap:var(--ui-section-gap);
}

/* Shared route headers and inner block titles. */
.page-title-row,
.section-title-row,
.card-head,
.mo-head,
.msng-section-head,
.parts-section-head,
.admin-section-head,
.cab-section-head,
.mprof-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  color:var(--text1) !important;
}
.page-title-row h1,
.section-title-row h2,
.card-head h2,
.mo-head h2,
.msng-section-head h2,
.parts-section-head h2,
.admin-section-head h2,
.cab-section-head h2,
.mprof-section-head h2{
  margin:0;
  color:var(--text1) !important;
  font-weight:900;
  letter-spacing:-.025em;
  line-height:1.15;
}
.page-title-row p,
.section-title-row p,
.card-head p,
.mo-head p,
.msng-section-head p,
.parts-section-head p,
.admin-section-head p,
.cab-section-head p,
.mprof-section-head p{
  margin:.25rem 0 0;
  color:var(--text2) !important;
  font-size:var(--ui-card-sub-size);
  line-height:1.45;
}

/* Icon language: same square icon system in nav, hero, cards and stat blocks. */
.nav-link-ico,
.spa-hero-ico,
.legal-rich-stat > i,
.legal-info-card > i,
.cab-tab-ico,
.mprof-tab-ico,
.hcat-card .hcat-ico,
.spec-svc-ico,
.parts-category-card .parts-category-ico,
.msng-empty-ico,
.empty-state__icon{
  display:inline-grid;
  place-items:center;
  width:var(--ui-icon-box);
  height:var(--ui-icon-box);
  min-width:var(--ui-icon-box);
  border-radius:var(--ui-radius-btn, 10px);
  background:color-mix(in srgb, var(--orange) 12%, var(--ui-surface-2) 88%) !important;
  color:var(--orange-l) !important;
  border:1px solid var(--orange-brd) !important;
  box-shadow:0 10px 24px rgba(249,115,22,.10);
}
.nav-link .nav-link-ico,
.bnav-item .nav-link-ico{
  width:30px;
  height:30px;
  min-width:30px;
  border-radius:var(--ui-radius-md,10px);
  font-size:16px;
}

/* Card internals: consistent spacing, no oversized gray empty zones. */
.msng-item.msng-item--v2,
.master-card,
.mo-card.card,
.parts-category-card,
.hcat-card,
.legal-info-card,
.legal-rich-stat,
.cab-tab,
.mprof-tab,
.master-contact-row.reveal.in{
  position:relative;
  overflow:hidden;
  padding:var(--ui-section-pad) !important;
}
.msng-item.msng-item--v2::after,
.master-card::after,
.mo-card.card::after,
.parts-category-card::after,
.hcat-card::after,
.legal-info-card::after,
.legal-rich-stat::after,
.cab-tab::after,
.mprof-tab::after{
  content:'';
  position:absolute;
  inset:auto 16px 0 16px;
  height:3px;
  border-radius:999px 999px 0 0;
  background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--orange) 34%, transparent), transparent);
  opacity:.38;
  pointer-events:none;
}
.msng-item.msng-item--v2:hover,
.master-card:hover,
.mo-card.card:hover,
.parts-category-card:hover,
.hcat-card:hover,
.legal-info-card:hover,
.legal-rich-stat:hover,
.cab-tab:hover,
.mprof-tab:hover{
  transform:translateY(-1px);
  border-color:var(--orange-brd) !important;
  box-shadow:var(--ui-shadow-float) !important;
}

/* Unified controls: keep practical height and hit area. */
.btn,
.ui-btn,
.mo-search-toggle,
.mo-filter-tab,
.svc-attach-btn,
.cab-av-camera,
.cmodal-close,
.msng-quick-actions button,
button[type="button"],
button[type="submit"]{
  min-height:var(--ui-control-h-sm);
  font-weight:800;
  letter-spacing:-.01em;
}
.btn-primary,
.ui-btn--primary,
.svc-urgent-cta,
.home-catalog-custom-request{
  min-height:var(--ui-control-h);
}

/* Forms and content tables: same sizing and contrast. */
input,
textarea,
select,
.mo-search-input,
.auth-input,
.k-input,
.k-textarea{
  min-height:var(--ui-control-h-sm);
  border-radius:var(--ui-radius-input, var(--ui-radius-btn, 10px)) !important;
  font-size:15px;
}
textarea{line-height:1.45;}

.ui-table,
.admin-table,
.data-table{
  max-width:100%;
  overflow:hidden;
  border-radius:var(--ui-radius-card, 18px);
}

/* Modal content rhythm. */
.cmodal-body,
.cab-pane-modal-body,
.mprof-pane-modal-body,
.legal-detail-modal-body,
.spec-svc-body,
.msng-media-modal-body{
  color:var(--text1) !important;
  line-height:1.5;
}
.cmodal-body p,
.cab-pane-modal-body p,
.mprof-pane-modal-body p,
.legal-detail-modal-body p{
  color:var(--text2) !important;
}

/* Messages and orders: keep list cards readable but compact. */
.msng-page-sections,
#mo-list,
.masters-grid,
.parts-grid-v2,
.home-catalog__grid{
  align-items:start;
}
.msng-item-preview,
.mo-card-sub,
.master-card__meta,
.parts-category-card p,
.hcat-card small{
  color:var(--text2) !important;
  line-height:1.42;
}

/* Phone: no tables, no heavy split panes, larger readable text. */
@media (max-width: 767px){
  :root{
    --ui-section-gap: 12px;
    --ui-section-pad: 14px;
    --ui-icon-box: 40px;
    --ui-control-h: 42px;
    --ui-control-h-sm: 36px;
  }
  .spa-content > .container,
  .masters-content > .container,
  .container.msng-page-content,
  .parts-page .container,
  .cabinet-page .container,
  .legal-page .container,
  .admin-page .container,
  .myorders-page .container{gap:12px;}
  .page-title-row,
  .section-title-row,
  .card-head,
  .mo-head,
  .msng-section-head,
  .parts-section-head,
  .admin-section-head,
  .cab-section-head,
  .mprof-section-head{
    flex-direction:column;
    gap:8px;
  }
  .msng-item.msng-item--v2,
  .master-card,
  .mo-card.card,
  .parts-category-card,
  .hcat-card,
  .legal-info-card,
  .legal-rich-stat,
  .cab-tab,
  .mprof-tab,
  .master-contact-row.reveal.in{
    padding:14px !important;
    transform:none!important;
  }
  .msng-item.msng-item--v2:hover,
  .master-card:hover,
  .mo-card.card:hover,
  .parts-category-card:hover,
  .hcat-card:hover,
  .legal-info-card:hover,
  .legal-rich-stat:hover,
  .cab-tab:hover,
  .mprof-tab:hover{transform:none!important;}
  .nav-link-ico,
  .spa-hero-ico,
  .legal-rich-stat > i,
  .legal-info-card > i,
  .cab-tab-ico,
  .mprof-tab-ico,
  .hcat-card .hcat-ico,
  .spec-svc-ico,
  .parts-category-card .parts-category-ico,
  .msng-empty-ico,
  .empty-state__icon{
    width:40px;
    height:40px;
    min-width:40px;
    font-size:20px;
  }
  .desktop-table,
  .ui-table,
  .admin-table,
  .data-table{display:none!important;}
  .ui-data-card{display:block!important;}
}

/* Tablet: two-column cards where useful; still no heavy admin tables by default. */
@media (min-width: 768px) and (max-width: 1023px){
  .masters-grid,
  .parts-grid-v2,
  .home-catalog__grid,
  #mo-list,
  .msng-page-sections,
  .cab-tabs,
  .mprof-tabs{
    grid-template-columns:repeat(2, minmax(0,1fr)) !important;
  }
  .ui-table{display:none!important;}
  .ui-data-card{display:block!important;}
}

/* Desktop: use width, not huge cards. */
@media (min-width: 1024px) and (max-width: 1439px){
  .masters-grid,
  .parts-grid-v2,
  .home-catalog__grid{
    grid-template-columns:repeat(3, minmax(260px, 1fr)) !important;
    max-width:var(--ui-panel-max, 1320px);
  }
  #mo-list,
  .msng-page-sections{
    max-width:var(--ui-readable, 1180px);
  }
  .desktop-only{display:initial!important;}
  .mobile-only{display:none!important;}
}

/* Wide desktop: master-detail ready, still capped and readable. */
@media (min-width: 1440px){
  .masters-grid,
  .parts-grid-v2,
  .home-catalog__grid{
    grid-template-columns:repeat(4, minmax(260px, 1fr)) !important;
    max-width:var(--ui-readable-wide, 1480px);
  }
  #mo-list,
  .msng-page-sections{
    max-width:var(--ui-readable-wide, 1480px);
  }
  .page-master-detail,
  .admin-master-detail,
  .messages-master-detail{
    display:grid;
    grid-template-columns:minmax(360px, 520px) minmax(0, 1fr);
    gap:var(--ui-section-gap);
    align-items:start;
  }
  .desktop-only{display:initial!important;}
  .mobile-only{display:none!important;}
}
