/* Shared density and typography for storefront, buyer and seller screens.
   Keep the root size intact: rem-based layout and browser zoom remain predictable. */
body.storefront-ui {
  --ui-text:14px;
  --ui-small:12px;
  --ui-title:24px;
  --ui-section:20px;
  --ui-control:42px;
  font-size:var(--ui-text);
  line-height:1.55;
}
body.storefront-ui :is(h1,.h1,.auth-title) { font-size:var(--ui-title); line-height:1.3; font-weight:700; letter-spacing:-.025em; }
body.storefront-ui :is(h2,.h2) { font-size:var(--ui-section); line-height:1.35; font-weight:700; }
body.storefront-ui :is(h3,.h3) { font-size:18px; line-height:1.4; font-weight:700; }
body.storefront-ui :is(h4,.h4) { font-size:16px; line-height:1.4; font-weight:650; }
body.storefront-ui :is(h5,.h5) { font-size:15px; line-height:1.45; font-weight:650; }
body.storefront-ui :is(h6,.h6) { font-size:14px; line-height:1.45; font-weight:650; }
body.storefront-ui :is(.display-1,.display-2,.display-3,.display-4,.display-5,.display-6) { font-size:var(--ui-title); line-height:1.3; font-weight:700; }
body.storefront-ui :is(.lead,.fs-4,.fs-5,.fs-6) { font-size:14px!important; line-height:1.65; }
body.storefront-ui :is(.fs-1,.fs-2,.fs-3) { font-size:var(--ui-title)!important; }
body.storefront-ui :is(.small,small,.form-text) { font-size:var(--ui-small); line-height:1.5; }
body.storefront-ui .btn { --bs-btn-font-size:13px; font-size:13px; line-height:1.4; font-weight:650; min-height:var(--ui-control); padding:10px 16px; border-radius:999px; }
body.storefront-ui .btn-sm { min-height:34px; padding:7px 12px; font-size:12px; }
body.storefront-ui .btn-lg { min-height:46px; padding:12px 20px; font-size:14px; }
body.storefront-ui .btn.rounded-circle { min-height:0; }
body.storefront-ui :is(.form-control,.form-select) { font-size:14px; line-height:1.5; min-height:var(--ui-control); padding:9px 12px; border-radius:12px; }
body.storefront-ui :is(.form-control-sm,.form-select-sm) { min-height:36px; padding:7px 10px; font-size:13px; }
body.storefront-ui :is(.form-label,.form-check-label) { font-size:13px; line-height:1.5; }
body.storefront-ui .form-label { margin-bottom:6px; font-weight:600; }
body.storefront-ui .form-text { margin-top:6px; }
body.storefront-ui .table { font-size:13px; line-height:1.5; }
body.storefront-ui .table th { font-size:12px; font-weight:650; }
body.storefront-ui .table :is(th,td) { vertical-align:middle; }
body.storefront-ui :is(.badge,.breadcrumb,.nav-tabs,.nav-pills) { font-size:12px; }
body.storefront-ui .alert { font-size:13px; line-height:1.6; padding:12px 16px; border-radius:12px; }
body.storefront-ui :is(.accordion-button,.list-group-item) { font-size:14px; line-height:1.5; }
body.storefront-ui .accordion-button { padding:14px 16px; }
body.storefront-ui .card { --bs-card-spacer-x:18px; --bs-card-spacer-y:18px; border-radius:16px; }
body.storefront-ui .card-header { padding:13px 18px; }
body.storefront-ui .modal-title { font-size:18px; }
body.storefront-ui .modal-body { font-size:14px; line-height:1.6; }
body.storefront-ui .sa-sec { margin-bottom:16px; }
body.storefront-ui .sa-sec h3 { font-size:20px; }
body.storefront-ui .sa-hero-kicker h2 { font-size:22px; }
body.storefront-ui .sa-home-cta h2 { font-size:22px; }
body.storefront-ui .sa-key__title { font-size:13px; line-height:1.45; }
body.storefront-ui .sa-key__price b { font-size:18px; }
body.storefront-ui :is(.sa-key__meta,.sa-key__rate,.sa-key__stock) { font-size:11px; }
body.storefront-ui .sa-plat span { font-size:13px; }
body.storefront-ui .auth-card { padding:24px; }
body.storefront-ui .auth-title { margin-bottom:12px; }
body.storefront-ui .sa-dash-hero { padding:20px; gap:16px; }
body.storefront-ui .sa-dash-hero h1 { font-size:20px; }
body.storefront-ui .sa-kpi > b,body.storefront-ui .seller-kpi .kpi-value { font-size:22px; }
body.storefront-ui .sa-short { padding:14px; }
body.storefront-ui .sa-short em { font-size:12px; }
body.storefront-ui .sa-dash__main > .container { padding-block:24px!important; }
body.storefront-ui .pd-page h1 { font-size:24px; }
body.storefront-ui .pd-page .price { font-size:28px; line-height:1.25; }
body.storefront-ui .pd-page .compare-price { font-size:13px; }
body.storefront-ui .pd-page .product-info { padding:24px; }
body.storefront-ui .pd-page :is(.pd-intro,.pd-description) { font-size:13px; line-height:1.7; }
body.storefront-ui .pd-page .pd-panel { padding:22px; }
body.storefront-ui .pd-page .action-buttons .btn { min-height:44px; font-size:13px; }
body.storefront-ui .pd-page .quantity .btn { padding:8px; }
body.storefront-ui .pd-page .quantity .form-control { padding:4px; }
body.storefront-ui .pd-page .card-header h6 { font-size:14px; }
body.storefront-ui .compact-content { padding-block:28px!important; }
body.storefront-ui .compact-content .mb-5 { margin-bottom:24px!important; }
body.storefront-ui .compact-content p { max-width:75ch; line-height:1.7; }
@media(max-width:767.98px) {
 body.storefront-ui { --ui-title:22px; --ui-section:18px; --ui-control:44px; }
 body.storefront-ui .sa-sec h3 { font-size:18px; }
 body.storefront-ui :is(.sa-hero-kicker h2,.sa-home-cta h2) { font-size:20px; }
 body.storefront-ui .sa-key__price b { font-size:16px; }
 body.storefront-ui .auth-card { padding:20px; }
 body.storefront-ui .sa-dash-hero { padding:16px; }
 body.storefront-ui .sa-dash-hero h1 { font-size:18px; }
 body.storefront-ui .pd-page h1 { font-size:22px; }
 body.storefront-ui .pd-page .price { font-size:26px; }
 body.storefront-ui .pd-page :is(.product-info,.pd-panel) { padding:18px; }
 body.storefront-ui .compact-content { padding-block:22px!important; }
 body.storefront-ui .compact-content .mb-5 { margin-bottom:20px!important; }
 /* Mobile fields stay 16px so focusing them does not zoom the viewport. */
 body.storefront-ui :is(input.form-control,textarea.form-control,select.form-select,.sa-select-search) { font-size:16px; }
 body.storefront-ui .btn:not(.btn-sm):not(.rounded-circle) { min-height:44px; }
}

/* Dashboard components share the storefront controls and density. */
body.page-dash .sa-dash__main { min-width:0; }
body.page-dash .sa-dash__main > .container { padding-block:0!important; }
.dash-menu { width:100%; min-width:0; }
.dash-menu > summary { display:none; }
.dash-menu-links { display:block; }
body.page-dash .sa-page-head { gap:12px; flex-wrap:wrap; align-items:center; margin-bottom:20px; }
body.page-dash .sa-page-head :is(h1,h2,h3) { font-size:22px; margin:0; }
body.page-dash :is(.nav-pills,.nav-tabs) { gap:6px; border:0; padding:5px; background:var(--paper-2); border-radius:16px; }
body.page-dash :is(.nav-pills,.nav-tabs) .nav-link { border:0; border-radius:999px; color:var(--muted); font-size:13px; font-weight:600; padding:10px 16px; white-space:nowrap; }
body.page-dash :is(.nav-pills,.nav-tabs) .nav-link.active { background:var(--navy); color:#fff; }
body.page-dash .table { margin-bottom:0; --bs-table-striped-bg:#f6efe24d; --bs-table-hover-bg:#efe4cc66; }
body.page-dash .table th { background:var(--paper); color:var(--muted); padding:12px 14px; white-space:nowrap; border-bottom:1px solid var(--line); }
body.page-dash .table td { padding:12px 14px; border-color:var(--line); }
body.page-dash .table td .btn { white-space:nowrap; }
body.page-dash .table-responsive { border-radius:12px; scrollbar-width:thin; scrollbar-color:var(--gold) transparent; }
body.page-dash .table-responsive:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
body.page-dash .pagination { gap:6px; flex-wrap:wrap; margin:0; }
body.page-dash .pagination .page-link { border:1px solid var(--line); border-radius:999px!important; min-width:36px; min-height:36px; padding:8px 12px; display:flex; align-items:center; justify-content:center; font-size:12px; color:var(--navy); background:var(--card-bg); box-shadow:none; }
body.page-dash .pagination .active .page-link { background:var(--navy); color:#fff; border-color:var(--navy); }
body.page-dash .pagination .disabled .page-link { color:var(--muted); opacity:.5; }
body.page-dash .pagination a.page-link:hover { background:var(--paper-2); }
body.page-dash .modal-content { background:#fffdf8; color:var(--ink); border:1px solid var(--line); border-radius:18px; overflow:hidden; box-shadow:var(--shadow); }
body.page-dash .modal-header { background:var(--paper); color:var(--navy); padding:16px 20px; border-color:var(--line); }
body.page-dash .modal-header .modal-title { color:var(--navy); font-size:17px; }
body.page-dash .modal-header .btn-close { filter:none; }
body.page-dash .modal-body { padding:20px; }
body.page-dash .modal-footer { padding:12px 20px; border-color:var(--line); gap:8px; }
body.page-dash :is(.form-control,.form-select) { border-color:var(--line); background-color:#fff; }
body.page-dash :is(.form-control,.form-select):focus { border-color:var(--gold); box-shadow:0 0 0 3px #d4b45a26; }
body.page-dash .badge { border-radius:999px; padding:5px 9px; line-height:1.35; font-weight:600; }
.dash-filters > summary { display:none; }
.dash-filters > form { margin:0!important; padding:4px 0; }
body.page-dash .sa-kpi { padding:16px; }
body.page-dash .sa-kpi > b { overflow-wrap:anywhere; }
@media(max-width:992px) {
 body.page-dash .sa-dash__nav { display:block; padding:0; }
 .dash-menu > summary { display:flex; align-items:center; gap:10px; padding:14px 16px; cursor:pointer; list-style:none; font-size:13px; font-weight:650; }
 .dash-menu > summary::-webkit-details-marker,.dash-filters > summary::-webkit-details-marker { display:none; }
 .dash-menu-current { margin-left:auto; max-width:55%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--muted); font-size:12px; font-weight:500; }
 .dash-menu-links { padding:0 10px 12px; }
 .dash-menu > summary > i:last-child { font-size:10px; }
 .dash-menu[open] > summary > i:last-child { transform:rotate(180deg); }
 body.page-dash .nav[role="tablist"] { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:thin; }
 body.page-dash .nav[role="tablist"] .nav-item { flex-shrink:0; }
 .dash-filters { border:1px solid var(--line); border-radius:12px; background:#fffdf8; }
 .dash-filters > summary { display:flex; align-items:center; gap:8px; padding:12px 14px; cursor:pointer; list-style:none; font-weight:600; font-size:13px; }
 .dash-filters > summary > i:last-child { margin-left:auto; font-size:10px; }
 .dash-filters[open] > summary > i:last-child { transform:rotate(180deg); }
 .dash-filters > form { padding:4px 12px 14px; }
 body.page-dash .sa-page-head :is(h1,h2,h3) { font-size:20px; }
}
@media(max-width:640px) {
 body.page-dash .sa-kpis,body.page-dash .sa-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 body.page-dash .sa-kpis > :last-child:nth-child(odd) { grid-column:1/-1; }
 body.page-dash .sa-kpi > b { font-size:20px; }
 body.page-dash .sa-kpi > span { letter-spacing:0; font-size:11px; }
 body.page-dash .sa-short { padding:12px; }
 body.page-dash .sa-short strong { font-size:13px; }
 body.page-dash .modal-dialog { margin:12px; }
 body.page-dash .modal-body { padding:16px; max-height:75dvh; overflow-y:auto; }
 body.page-dash .modal-header,body.page-dash .modal-footer { padding:14px 16px; }
}
body.page-dash .sa-dash-hero__meta .sa-chip { min-width:0; max-width:100%; height:auto; min-height:26px; padding:5px 9px; font-size:11px; box-shadow:none; }
body.page-dash .sa-dash-hero__meta .sa-chip span { padding:0; font:inherit; letter-spacing:0; text-transform:none; }
body.page-dash .sa-dash-hero__meta :is(.sa-chip--ghost,.sa-chip--green,.sa-chip--navy) { color:#f6efe2!important; }
body.page-dash :is(.nav-pills,.nav-tabs) .nav-link.active { color:#fff!important; }
body.page-dash .dash-category-shortcuts { padding:12px 0 0; }
body.page-dash .dash-category-shortcuts .badge { background:var(--paper)!important; color:var(--navy)!important; border:1px solid var(--line); font-size:11px; padding:7px 10px; }
body.page-dash .dash-category-shortcuts .badge.bg-primary { background:var(--navy)!important; color:#fff!important; }
@media(max-width:992px) { body.page-dash .dash-category-shortcuts { padding:0 12px 12px; } }
