/* UPJET / Typography System / 2026-10-10
 * Single terminal typography layer for both layouts: storefront and admin.
 * This intentionally changes font metrics only; NO brand palette, display/grid,
 * dimensions or JS operations are changed. No font binaries are bundled.
 * Tiny numeric badges, decorative glyphs and icon-only actions are excluded.
 */
:root {
  --up-type-body: 14px;
  --up-type-label: 13px;
  --up-type-secondary: 12.5px;
  --up-type-table: 13px;
  --up-type-button: 13.5px;
  --up-type-product: 13.5px;
  --up-type-section: 19px;
}

/* --- 1. CUSTOMER FACING PAGES --- */
body.site-body {
  font-size: var(--up-type-body) !important;
  line-height: 1.8;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body.site-body :is(.site-main,.site-footer,.store-footer) {font-size:var(--up-type-body);}
body.site-body .site-main small {font-size:12px!important;line-height:1.75!important;}
body.site-body .site-main :is(p,.product-description,.product-summary,.description,.contact-description,.post-content,.article-content,.rich-content,.faq-answer) {
  font-size:14px!important;line-height:1.95!important;
}
body.site-body .site-main :is(.ui-page-head,.page-title,.taxonomy-hero,.upjet-catalog-head-v21,.account-page-head-v829,.upjet-cart-hero-v990,.checkout-hero) h1 {
  font-size:clamp(23px,2.1vw,30px)!important;
  line-height:1.6!important;
}
body.site-body .site-main :is(.section-head,.v5-section-heading,.account-panel-head-v829,.panel-heading) h2,
body.site-body .site-main :is(.form-card,.contact-info-card,.cart-summary,.checkout-summary,.account-panel-v829) > h2 {
  font-size:clamp(17px,1.6vw,21px)!important;
  line-height:1.6!important;
}
body.site-body .site-main :is(.breadcrumbs,.category-child-links a,.filter-count,.result-count,.review-date,.order-date,.form-hint,.field-help,.help-text,.text-muted,.muted,.empty-hint),
body.site-body .site-main :is(.panel-form,.form-card,.account-panel-v829,.checkout-summary,.cart-summary) small {
  font-size:var(--up-type-secondary)!important;line-height:1.8!important;
}
body.site-body .site-main :is(.form-card,.panel-form,.account-address-form-v829,.checkout-grid,.checkout-form,.cart-summary,.auth-card,.upjet-auth-card,.account-panel-v829,.review-form-v5) label:not(.check):not(.checkbox):not(.switch):not(.v-label) {
  font-size:var(--up-type-label)!important;line-height:1.75!important;
}
body.site-body .site-main :is(.form-card,.panel-form,.account-address-form-v829,.checkout-grid,.checkout-form,.review-form-v5,.auth-card,.upjet-auth-card,.account-panel-v829)
 :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=color]):not([type=file]),select,textarea):not(.v-field__input) {
  font-size:14px!important;line-height:1.7!important;
}
body.site-body .site-main :is(input:not([type=hidden]),textarea)::placeholder {font-size:13px!important;}
body.site-body .site-main :is(.btn:not(.card-cart-button):not(.home-card-cart-cta):not(.icon-btn),.checkout-action,.checkout-submit,.account-action,.add-to-cart:not(.icon-only),.filter-apply) {
  font-size:var(--up-type-button)!important;line-height:1.55!important;
}
body.site-body .site-main .btn.small:not(.card-cart-button):not(.icon-btn) {font-size:12.5px!important;}
body.site-body .site-main :is(.table-wrap,.table-responsive,.cart-table,.compare-scroll,.order-table) :is(th,td) {
  font-size:var(--up-type-table)!important;line-height:1.8!important;
}
body.site-body .site-main :is(.table-wrap,.table-responsive,.cart-table,.compare-scroll,.order-table) th {font-weight:750!important;}

/* Header/footer: text navigation only; badge/icon typography untouched. */
body.site-body :is(.main-nav,.main-nav .nav-inner,.mega-menu,.mobile-menu,.store-footer,.site-footer) :is(a:not(.icon-only),.nav-label,.footer-link) {
  font-size:13px!important;line-height:1.75!important;
}
body.site-body :is(.store-search input,.header-search input) {font-size:14px!important;}
body.site-body .store-brand small {font-size:12px!important;line-height:1.6!important;}
body.site-body :is(.top-notice,.benefits-bar) :is(span,small,b) {font-size:12px!important;line-height:1.75!important;}

/* Actual shared product cards; preserve their 2-line clamp and small icon buttons. */
body.site-body .site-main :is(.unified-product-card-v9935,.store-product-card) :is(.product-card-title>a,.product-body h3) {
  font-size:var(--up-type-product)!important;
  line-height:1.65!important;
  overflow-wrap:anywhere;
}
body.site-body .site-main :is(.unified-product-card-v9935,.store-product-card) .product-brand-name {
  font-size:11.5px!important;line-height:1.6!important;
}
body.site-body .site-main :is(.unified-product-card-v9935,.store-product-card) :is(.stock,.product-rating,.no-rating) {
  font-size:12px!important;line-height:1.6!important;
}
body.site-body .site-main :is(.unified-product-card-v9935,.store-product-card) .price-row strong {
  font-size:clamp(14px,1.15vw,16px)!important;line-height:1.65!important;
}
body.site-body .site-main :is(.unified-product-card-v9935,.store-product-card) .price-row del {
  font-size:11.5px!important;line-height:1.6!important;
}
body.site-body .site-main :is(.unified-product-card-v9935,.store-product-card) .product-ribbon-v879 {
  font-size:10.5px!important;line-height:1.55!important;
}
/* Other catalog / home metadata, not touch hero ornament or numeric overlays */
body.site-body .site-main :is(.v5-section-heading,.section-head) :is(span:not(.upjet-ui-icon),small) {font-size:12.5px!important;line-height:1.7!important;}
body.site-body .site-main :is(.v5-section-heading,.section-head) > a {font-size:13px!important;line-height:1.65!important;}
body.site-body .site-main :is(.catalog-filter,.filter-panel,.catalog-sidebar,.taxonomy-sidebar) :is(label,.filter-label,.filter-option) {font-size:13px!important;line-height:1.7!important;}
body.site-body .site-main :is(.post-card,.category-directory-card,.brand-directory-card) :is(p,small,.card-description) {font-size:12.5px!important;line-height:1.75!important;}

/* PC builder: keep dense slot controls and numeric step bubbles compact. */
body.site-body .site-main :is(.pcb-v28,.pc-builder-page,.tw-pcb-workspace) :is(.pcb-step-v31 span:not(.pcb-step-no-v31),.tw-pcb-slot-status,.tw-pcb-mode-card small,.pcb-slot-help,.pcb-product-subtitle) {
  font-size:12px!important;line-height:1.75!important;
}
body.site-body .site-main :is(.pcb-v28,.pc-builder-page,.tw-pcb-workspace) :is(.tw-pcb-slot-actions .btn,.pcb-add-button,.pcb-select-btn) {
  font-size:12.5px!important;line-height:1.6!important;
}

/* --- 2. ADMIN / VUETIFY + BLADE HYBRID PAGES --- */
body.admin-body {font-size:var(--up-type-body);line-height:1.8;-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body.admin-body :is(.admin-content,.legacy-page-host,.dashboard-content) {font-size:var(--up-type-body)!important;line-height:1.8;}
body.admin-body :is(.admin-top,.admin-sidebar,.admin-main) :is(.admin-nav-items a,.admin-quick-nav a,.admin-top-title b,.admin-global-search input,.admin-top-actions a:not(.admin-top-store)) {
  font-size:13px!important;line-height:1.7!important;
}
body.admin-body #upjet-vuetify-dashboard :is(.v-list-item-title,.upjet-xui-menu-result,.dashboard-drawer .v-list-item-title) {
  font-size:13px!important;line-height:1.7!important;
}
body.admin-body #upjet-vuetify-dashboard :is(.v-field__input,.v-select__selection-text,.v-autocomplete__selection-text,.v-combobox__selection-text) {
  font-size:14px!important;line-height:1.7!important;
}
body.admin-body #upjet-vuetify-dashboard :is(.v-field-label,.v-label,.v-list-item-subtitle,.v-card-subtitle,.v-input__details,.v-messages__message) {
  font-size:12.5px!important;line-height:1.7!important;
}
body.admin-body #upjet-vuetify-dashboard :is(.v-card-title,.v-dialog .v-card-title) {font-size:18px!important;line-height:1.6!important;}
body.admin-body #upjet-vuetify-dashboard :is(.v-data-table,.v-table) :is(th,td) {font-size:13px!important;line-height:1.7!important;}
body.admin-body #upjet-vuetify-dashboard .v-btn .v-btn__content {font-size:13px!important;line-height:1.6!important;}
body.admin-body #upjet-vuetify-dashboard .v-btn--icon .v-btn__content {font-size:inherit!important;}

/* General small/caption floor for Blade widgets still using 8–10px rules. */
html[data-admin-skin="vuetify"] body.admin-body #upjet-vuetify-dashboard .legacy-page-host
  :is(small,.text-muted,.muted,.help,.hint,.form-hint,.field-hint) {
  font-size:12px!important;line-height:1.75!important;
}

/* Scoped legacy pages: text and forms without changing their functional layout. */
body.admin-body .upjet-synced-page :is(.admin-page-intro,.order-parity-page-head-v1010,.clarity-head,.product-page-head-v9923) h1 {
  font-size:clamp(21px,1.8vw,26px)!important;line-height:1.6!important;
}
body.admin-body .upjet-synced-page :is(.admin-card-head,.panel-heading,.section-heading,.card-header) h2,
body.admin-body .upjet-synced-page :is(.admin-card,.form-card,.content-box) > h2 {
  font-size:18px!important;line-height:1.65!important;
}
body.admin-body .upjet-synced-page :is(.admin-page-intro,.admin-card-head,.section-heading,.panel-heading,.order-parity-page-head-v1010) :is(p,small,.subheading,.subtitle) {
  font-size:12.5px!important;line-height:1.85!important;
}
body.admin-body .upjet-synced-page :is(.admin-card,.form-card,.content-box,.admin-panel,.panel-form,.quick-editor-v9925,.ai-batch-v13) :is(p,small,.hint,.help,.muted,.text-muted,.form-help,.field-hint,.admin-description) {
  font-size:12.5px!important;line-height:1.85!important;
}
body.admin-body .upjet-synced-page :is(.admin-form,.admin-card,.form-card,.panel-form,.admin-products-search,.product-filter-v9923,.clarity-filter,.quick-editor-v9925,.ai-batch-config-v13) label:not(.v-label):not(.check) {
  font-size:13px!important;line-height:1.7!important;
}
body.admin-body .upjet-synced-page :is(.admin-form,.admin-card,.form-card,.panel-form,.admin-products-search,.product-filter-v9923,.clarity-filter,.quick-editor-v9925,.ai-batch-config-v13) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]):not([type=hidden]),select,textarea):not(.v-field__input) {
  font-size:14px!important;line-height:1.7!important;
}
body.admin-body .upjet-synced-page :is(input:not([type=hidden]),textarea)::placeholder {font-size:13px!important;}
body.admin-body .upjet-synced-page :is(.btn:not(.icon-only),.cmd-btn,.quick-action-v9925,.row-actions button,.row-actions a,.admin-actions button,.admin-actions a):not(.v-btn):not(.product-thumb-v9923) {
  font-size:13px!important;line-height:1.55!important;
}
body.admin-body .upjet-synced-page .btn.small:not(.icon-only) {font-size:12.5px!important;}
body.admin-body .upjet-synced-page :is(.table-wrap,.admin-table-wrap,.table-responsive,.clarity-table-card,.product-table-card-v9923,.v-table) :is(th,td) {
  font-size:13px!important;line-height:1.7!important;
}
body.admin-body .upjet-synced-page :is(.table-wrap,.admin-table-wrap,.table-responsive,.clarity-table-card,.product-table-card-v9923) :is(th,td) :is(small,.muted,.text-muted) {
  font-size:12px!important;line-height:1.65!important;
}
body.admin-body .upjet-synced-page :is(.product-name-v9923,.order-number-link-v9923,.product-main-cell-v9923 a:not(.product-thumb-v9923)) {
  font-size:13.5px!important;line-height:1.7!important;
}
/* Order and product KPI labels/values already have robust sizing in stat-card-fix.css;
   only standardize their supporting descriptions, not the bold metric numerals. */
body.admin-body .upjet-synced-page :is(.order-kpi-grid-v9923,.product-kpi-grid-v9923) > a > :is(small,span) {
  font-size:12.5px!important;line-height:1.7!important;
}
body.admin-body .upjet-synced-page :is(.status-badge,.status-ok,.status-alert,.badge,.v-chip) {
  font-size:12px!important;line-height:1.5!important;
}

/* Keep mobile fonts readable without enlarging fixed icon/counter boxes. */
@media(max-width:640px){
  body.site-body .site-main :is(.unified-product-card-v9935,.store-product-card) :is(.product-card-title>a,.product-body h3){font-size:13px!important;line-height:1.65!important;}
  body.site-body .site-main :is(.unified-product-card-v9935,.store-product-card) .price-row strong{font-size:14px!important;}
  body.admin-body .upjet-synced-page :is(.admin-page-intro,.order-parity-page-head-v1010) h1{font-size:21px!important;}
}

/* Final cascade for high-specificity historical admin rules (#dashboard). */
html[data-admin-skin="vuetify"] body.admin-body #upjet-vuetify-dashboard .legacy-page-host {
  font-size:14px!important;line-height:1.8!important;
}
html[data-admin-skin="vuetify"] body.admin-body #upjet-vuetify-dashboard .legacy-page-host
  :is(.admin-form,.admin-card,.form-card,.panel-form,.admin-products-search,.product-filter-v9923,.clarity-filter,.quick-editor-v9925,.ai-batch-config-v13)
  label:not(.v-label):not(.check) {
  font-size:13px!important;line-height:1.75!important;
}
html[data-admin-skin="vuetify"] body.admin-body #upjet-vuetify-dashboard .legacy-page-host
  :is(.admin-form,.admin-card,.form-card,.panel-form,.admin-products-search,.product-filter-v9923,.clarity-filter,.quick-editor-v9925,.ai-batch-config-v13)
  :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]):not([type=hidden]),select,textarea):not(.v-field__input) {
  font-size:14px!important;line-height:1.7!important;
}
html[data-admin-skin="vuetify"] body.admin-body #upjet-vuetify-dashboard .legacy-page-host
  :is(.btn:not(.icon-only),.cmd-btn,.quick-action-v9925,.row-actions button,.row-actions a):not(.v-btn):not(.product-thumb-v9923) {
  font-size:13px!important;line-height:1.6!important;
}
html[data-admin-skin="vuetify"] body.admin-body #upjet-vuetify-dashboard .legacy-page-host
  .btn.small:not(.icon-only){font-size:12.5px!important;}
@media(max-width:640px) {
  html[data-admin-skin="vuetify"] body.admin-body #upjet-vuetify-dashboard .legacy-page-host
    :is(.order-kpi-grid-v9923,.product-kpi-grid-v9923) > a > strong {
      font-size:17px!important;
      line-height:1.5!important;
      overflow-wrap:anywhere!important;
      white-space:normal!important;
    }
}

/* --- 3. Standalone 4xx/5xx pages --- */
body.theme-unified:is(.public-error,.admin-error) :is(.brand small,.domain,.eyebrow,.detail,.hint,.footer) {
  font-size:12px!important;line-height:1.75!important;
}
body.theme-unified:is(.public-error,.admin-error) .btn {font-size:13px!important;line-height:1.6!important;}
body.theme-unified:is(.public-error,.admin-error) .message {font-size:14px!important;line-height:1.95!important;}
