/* BIY Client Portal: shared readable typography, approved 2026-10-11. */
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap');
:root { --biy-portal-body-font:'IBM Plex Sans',sans-serif; --biy-portal-heading-font:'Plus Jakarta Sans',sans-serif; --biy-portal-meta-font:'IBM Plex Mono',monospace; }
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { font-family:var(--biy-portal-body-font); font-size:15px; line-height:1.55; }
body :is(p, li, dd, dt, blockquote, article, section, aside, label, input, select, textarea) { overflow-wrap:break-word; }
body :is(h1,h2,h3,h4,h5,h6) { font-family:var(--biy-portal-heading-font); line-height:1.28; }
body :is(button,input,textarea,select,option) { font-family:var(--biy-portal-body-font); font-size:max(14px,1em); }
body :is(input,textarea,select) { line-height:1.5; }
body :is(.eyebrow,.kicker,.badge,.status-pill,.rail-title>span,.section-head>span,.section-head div>span,.field>span,.field-label,.meta,.label,.caption) { font-size: max(12px,1em); line-height:1.45; }
body :is(.main,.portal-main,.dashboard-main,.page-main,.intake-main,.services-main,.booking-main,.project-main,.payments-main,.messages-main,.automation-main,.discovery-main) p { font-size:clamp(14px,1rem,16px); line-height:1.6; }
body :is(.main,.portal-main,.dashboard-main,.page-main,.intake-main,.services-main,.booking-main,.project-main,.payments-main,.messages-main,.automation-main,.discovery-main) li { font-size:14px; line-height:1.55; }
body :is(.main,.portal-main,.dashboard-main,.page-main,.intake-main,.services-main,.booking-main,.project-main,.payments-main,.messages-main,.automation-main,.discovery-main) :is(h1,h2,h3) { font-family:var(--biy-portal-heading-font); }
body :is(.main,.portal-main,.dashboard-main,.page-main,.intake-main,.services-main,.booking-main,.project-main,.payments-main,.messages-main,.automation-main,.discovery-main) h2 { font-size:clamp(20px,1.4rem,24px); }
body :is(.main,.portal-main,.dashboard-main,.page-main,.intake-main,.services-main,.booking-main,.project-main,.payments-main,.messages-main,.automation-main,.discovery-main) h3 { font-size:19px; }
body :is(.main,.portal-main,.dashboard-main,.page-main,.intake-main,.services-main,.booking-main,.project-main,.payments-main,.messages-main,.automation-main,.discovery-main) :is(button,.button,.btn,.small-btn,.primary-btn,.secondary-btn,.nav-item,.book) { font-size:14px; line-height:1.4; }
body :is(.main,.portal-main,.dashboard-main,.page-main,.intake-main,.services-main,.booking-main,.project-main,.payments-main,.messages-main,.automation-main,.discovery-main) :is(.card-title,.tile-title,.service-card h3,.modal-head h2,.request-modal-head h2) { font-family:var(--biy-portal-heading-font); font-size:19px; }
body :is(.main,.portal-main,.dashboard-main,.page-main,.intake-main,.services-main,.booking-main,.project-main,.payments-main,.messages-main,.automation-main,.discovery-main) :is(.price,.amount,.total-amount) { font-family:var(--biy-portal-heading-font); font-size:22px; }
body :is(.modal,.portal-modal,.request-modal,.booking-modal,[role="dialog"]) p { font-size:15px; line-height:1.6; }
body :is(.modal,.portal-modal,.request-modal,.booking-modal,[role="dialog"]) :is(li,.detail-grid li) { font-size:14px; line-height:1.55; }
body :is(.modal,.portal-modal,.request-modal,.booking-modal,[role="dialog"]) :is(label,.field>span) { font-size:14px; }
body :is(.modal,.portal-modal,.request-modal,.booking-modal,[role="dialog"]) :is(button,.primary-btn,.secondary-btn) { font-size:14px; }
body :is(.modal,.portal-modal,.request-modal,.booking-modal,[role="dialog"]) :is(.detail-price,.price) { font-size:26px; }
body .sidebar .nav-item,body .topbar .account-copy { font-family:var(--biy-portal-body-font); font-size:14px; }
body .sidebar .sidebar-foot,body .topbar .top-center { font-family:var(--biy-portal-meta-font); font-size:12px; }
body :is(.main,.portal-main,.dashboard-main) :is(.field small,.hint,.helper-text,.secondary-text) { font-size:13px;line-height:1.5; }
@media(max-width:680px){
 body {font-size:15px}
 body :is(.modal,.portal-modal,.request-modal,.booking-modal,[role="dialog"]) {max-width:100vw}
 body :is(.modal,.portal-modal,.request-modal,.booking-modal,[role="dialog"]) :is(input,textarea,select){font-size:16px}
 body :is(.main,.portal-main,.dashboard-main,.page-main) :is(h2,h3) {overflow-wrap:anywhere}
}
