@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap');
:root{--font-public:"DM Sans",Inter,"Segoe UI",Arial,sans-serif;--font-hero:"Playfair Display",serif;--font-ui:Inter,"Segoe UI",Arial,sans-serif;--font-code:"SFMono-Regular",Consolas,"Liberation Mono",monospace;--line-height-tight:1.08;--line-height-normal:1.5;--line-height-loose:1.65}

/* Public website */
body.ic-public{font-family:var(--font-public)!important;font-size:16px;line-height:var(--line-height-loose)}
body.ic-public *{font-family:var(--font-public)!important}
body.ic-public :is(input,select,textarea,button){font-family:var(--font-public)!important}
body.ic-public main h1,body.ic-public .hero-heading{font-family:var(--font-hero)!important;font-size:clamp(28px,calc(2vw + 16px),46px)!important;font-weight:700!important;line-height:1.15!important;overflow-wrap:anywhere}
body.ic-public main h2,body.ic-public .page-heading{font-family:var(--font-hero)!important;font-size:clamp(23px,calc(1vw + 16px),32px)!important;font-weight:700!important;line-height:1.25!important;overflow-wrap:anywhere}
body.ic-public main h3,body.ic-public .section-heading{font-family:var(--font-public)!important;font-size:clamp(18px,calc(.4vw + 16px),22px)!important;font-weight:700!important;line-height:1.3!important;overflow-wrap:anywhere}
body.ic-public main h4,body.ic-public .card-heading{font-family:var(--font-public)!important;font-size:clamp(16px,calc(.25vw + 15px),19px)!important;font-weight:600!important;line-height:1.35!important}
/* Component titles should fit their cards, independent of heading level. */
body.ic-public main :is(.ic-creator-card h3,.ic-result-card h2,.ic-filter-panel h2){font-family:var(--font-public)!important;font-size:clamp(17px,calc(.2vw + 16px),20px)!important;line-height:1.3!important;margin-top:0;letter-spacing:-.015em;overflow-wrap:anywhere}
body.ic-public .ic-result-info>header{flex-wrap:wrap;gap:10px}
body.ic-public .ic-result-info>header>div:first-child{flex:1 1 130px;min-width:0}
body.ic-public .ic-result-metrics{flex-wrap:wrap;gap:10px;max-width:100%}
body.ic-public :is(.ic-creator-body,.ic-result-info,.ic-heading-row>div,.public-inner-hero__copy){min-width:0}
body.ic-public .ic-heading-row{flex-wrap:wrap;gap:12px}
body.ic-public main :is(.ic-result-card p,.ic-creator-card p){font-size:14px!important;line-height:1.5!important}
body.ic-public main p,body.ic-public .body-text{font-family:var(--font-public)!important;font-size:clamp(15px,calc(1vw + 4px),17px)!important;font-weight:400;line-height:var(--line-height-loose)}
body.ic-public :is(.public-site-header a,.public-mobile-dock a,.public-mobile-dock button,.nav-link){font-family:var(--font-public)!important;font-size:clamp(14px,calc(.8vw + 4px),16px);font-weight:600}
body.ic-public :is(.button,button[type="submit"]){font-family:var(--font-public)!important;font-size:clamp(15px,calc(.8vw + 4px),17px);font-weight:600}
body.ic-public :is(.tag,.status,.badge){font-family:var(--font-public)!important;font-size:clamp(12px,calc(.5vw + 3px),14px);font-weight:600}

/* Member and company user panels */
/* Category tiles grow with wrapped labels, including expanded mobile categories. */
body.ic-public .ic-mobile-category-quick:not([hidden]){display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;align-items:stretch}
body.ic-public :is(.ic-mobile-category-quick,.ic-mobile-all-categories>div)>a{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:88px;height:auto!important;padding:10px 6px!important;text-align:center;white-space:normal;overflow:visible}
body.ic-public :is(.ic-mobile-category-quick,.ic-mobile-all-categories>div)>a>span{display:block;width:100%;min-width:0;font-size:12px!important;line-height:1.35!important;white-space:normal!important;overflow-wrap:anywhere;text-align:center}
body.ic-public :is(.ic-mobile-category-quick,.ic-mobile-all-categories>div)>a>i{flex-shrink:0;line-height:1.2;font-style:normal}
body.ic-public .ic-category-grid>a{min-width:0;height:auto;overflow-wrap:anywhere}
body.ic-public .ic-category-grid>a>b{white-space:normal;line-height:1.4}
@media(max-width:380px){body.ic-public .ic-mobile-category-quick:not([hidden]){grid-template-columns:repeat(3,minmax(0,1fr))}body.ic-public .ic-mobile-all-categories>div{grid-template-columns:repeat(3,minmax(0,1fr))}}

body.member-reference-body,body:has(>header.header){font-family:var(--font-ui)!important;font-size:15px;line-height:var(--line-height-normal)}
body.member-reference-body *,body:has(>header.header) *{font-family:var(--font-ui)!important}
body.member-reference-body :is(h1,.page-heading),body:has(>header.header) :is(h1,.page-heading){font-family:var(--font-ui)!important;font-size:clamp(26px,calc(2.5vw + 8px),45px)!important;font-weight:600!important;line-height:1.2!important}
body.member-reference-body :is(h2,.section-heading),body:has(>header.header) :is(h2,.section-heading){font-family:var(--font-ui)!important;font-size:clamp(20px,calc(1.8vw + 6px),28px)!important;font-weight:600!important}
body.member-reference-body :is(h3,.card-heading),body:has(>header.header) :is(h3,.card-heading){font-family:var(--font-ui)!important;font-size:clamp(16px,calc(1.2vw + 4px),22px)!important;font-weight:500!important}
body.member-reference-body :is(p,.body-text),body:has(>header.header) :is(p,.body-text){font-family:var(--font-ui)!important;font-size:clamp(15px,calc(.8vw + 4px),16px);font-weight:400;line-height:var(--line-height-normal)}
body.member-reference-body :is(nav a,.nav-link),body:has(>header.header) :is(nav a,.nav-link){font-size:clamp(13px,calc(.6vw + 3px),15px);font-weight:500}
body.member-reference-body :is(button,.button),body:has(>header.header) :is(button,.button){font-family:var(--font-ui)!important;font-size:clamp(14px,calc(.6vw + 3px),16px);font-weight:600}

/* Company payment-list cards previously retained legacy 7–10px labels. */
body:has(>header.header) .pcc-campaign b{font-size:clamp(13px,1vw,15px)!important;font-weight:600!important;line-height:1.3!important}
body:has(>header.header) .pcc-campaign span small{font-size:clamp(11px,.8vw,13px)!important;line-height:1.35!important}
body:has(>header.header) .pcc-campaign em{font-size:clamp(10px,.7vw,12px)!important;font-weight:600!important}
body:has(>header.header) .pcc-campaign>strong{font-size:clamp(13px,1vw,15px)!important;font-weight:700!important}
body:has(>header.header) .pcc-campaign>strong small{font-size:clamp(10px,.7vw,12px)!important;font-weight:400!important}
body.member-reference-body :is(.metric,.metric-value,.amount),body:has(>header.header) :is(.metric,.metric-value,.amount){font-size:clamp(20px,calc(2vw + 6px),32px);font-weight:700}
body.member-reference-body :is(.status,.active-pill),body:has(>header.header) :is(.status,.active-pill){font-size:clamp(11px,calc(.5vw + 3px),13px);font-weight:600}

/* Admin and employee panels */
body:has(.agency-app){font-family:var(--font-ui)!important;font-size:14px;line-height:var(--line-height-normal)}
body:has(.agency-app) *{font-family:var(--font-ui)!important}
body:has(.agency-app) :is(input,select,textarea,button){font-family:var(--font-ui)!important}
body:has(.agency-app) .agency-content :is(h1,.page-heading),body:has(.agency-app) .agency-content>section>div>h2{font-family:var(--font-ui)!important;font-size:clamp(23px,calc(2vw + 6px),34px)!important;font-weight:700!important;line-height:1.2!important}
body:has(.employee-home) .agency-content :is(h1,.page-heading),body:has(.employee-home) .employee-welcome h2{font-size:clamp(24px,calc(2vw + 6px),36px)!important}
body:has(.agency-app) .agency-content :is(.section-heading,h2){font-family:var(--font-ui)!important;font-size:clamp(18px,calc(1.5vw + 5px),24px);font-weight:600}
body:has(.employee-home) .agency-content :is(.section-heading,h2){font-size:clamp(19px,calc(1.5vw + 5px),26px)}
body:has(.agency-app) .agency-content :is(.card-heading,h3){font-family:var(--font-ui)!important;font-size:clamp(15px,calc(1vw + 4px),20px);font-weight:600}
body:has(.agency-app) .agency-content :is(p,.body-text){font-size:clamp(14px,calc(.6vw + 3px),16px);font-weight:400;line-height:var(--line-height-normal)}
body:has(.agency-app) :is(.agency-nav a,.sidebar-link){font-size:clamp(12px,calc(.5vw + 3px),14px);font-weight:500}
body:has(.agency-app) :is(button,.button){font-size:clamp(13px,calc(.5vw + 3px),15px);font-weight:600}
body:has(.employee-home) :is(button,.button,.agency-nav a){font-size:clamp(13px,calc(.6vw + 3px),16px)}
body:has(.agency-app) :is(th,.table-header){font-size:clamp(12px,calc(.5vw + 3px),14px);font-weight:600}
body:has(.agency-app) :is(td,.table-cell){font-size:clamp(12px,calc(.5vw + 3px),14px);font-weight:400}
body:has(.agency-app) :is(.status,.status-tag){font-size:clamp(11px,calc(.4vw + 3px),13px);font-weight:600}
body:has(.agency-app) :is(code,.technical-id){font-family:var(--font-code)!important;font-size:clamp(11px,calc(.4vw + 3px),13px);font-weight:400}

/* Company partnership dashboard: cards, comparison, charts and status panels. */
body:has(>header.header) .cp-panel-head>div>span{font-size:clamp(16px,1.2vw,19px)!important}
body:has(>header.header) :is(.cp-panel-head small,.cp-panel-head a,.cp-panel-head button){font-size:clamp(12px,.72vw,14px)!important}
body:has(>header.header) .cp-creator h3{font-size:clamp(15px,1vw,18px)!important}
body:has(>header.header) .cp-creator p{height:auto!important;font-size:clamp(12px,.72vw,14px)!important;white-space:normal!important}
body:has(>header.header) .cp-creator>div b{font-size:clamp(13px,.8vw,15px)!important}
body:has(>header.header) .cp-creator>div small{font-size:clamp(12px,.7vw,13px)!important}
body:has(>header.header) .cp-creator footer :is(a,button){font-size:clamp(12px,.72vw,14px)!important}
body:has(>header.header) .cp-saved-row b{font-size:clamp(13px,.8vw,15px)!important}
body:has(>header.header) .cp-saved-row small{font-size:clamp(12px,.7vw,13px)!important}
body:has(>header.header) .cp-outline-action{font-size:clamp(12px,.72vw,14px)!important}
body:has(>header.header) .cp-compare-table>*{font-size:clamp(12px,.72vw,14px)!important}
body:has(>header.header) :is(.cp-chart-key,.cp-performance-column strong,.cp-performance-column span){font-size:clamp(12px,.7vw,13px)!important}
body:has(>header.header) .cp-status-row b{font-size:clamp(13px,.8vw,15px)!important}
body:has(>header.header) .cp-status-row small{font-size:clamp(12px,.7vw,13px)!important}

/* Map the reference typography roles onto legacy component markup. */
body.ic-public main :is(label,.form-label){font-size:clamp(14px,calc(.6vw + 4px),15px)!important;font-weight:500!important}
body.ic-public main :is(small,.metadata,time){font-size:clamp(11px,calc(.4vw + 3px),13px)!important}
body.ic-public main :is(.tag,[class*="-tag"],[class*="-chip"],[class*="badge"]){font-size:clamp(12px,calc(.5vw + 3px),14px)!important;font-weight:600!important}

body.member-reference-body main :is(li,dt,dd,time,.body-text),
body:has(>header.header) main :is(li,dt,dd,time,.body-text){font-size:clamp(15px,calc(.8vw + 4px),16px)!important;line-height:var(--line-height-normal)!important}
body.member-reference-body main :is(label,.form-label),
body:has(>header.header) main :is(label,.form-label){font-size:clamp(14px,calc(.6vw + 4px),15px)!important;font-weight:500!important}
body.member-reference-body main :is(.tag,[class*="-tag"],[class*="-chip"],[class*="badge"]),
body:has(>header.header) main :is(.tag,[class*="-tag"],[class*="-chip"],[class*="badge"]){font-size:clamp(10px,calc(.4vw + 3px),12px)!important;font-weight:500!important}
body.member-reference-body main :is(.status,[class*="status"],[class*="-pill"]),
body:has(>header.header) main :is(.status,[class*="status"],[class*="-pill"]){font-size:clamp(11px,calc(.5vw + 3px),13px)!important;font-weight:600!important}

/* Member security and pricing are data-dense user-panel views. */
body.member-reference-body .sa-history>article,
body.member-reference-body .sa-history>article :is(time,span){font-size:clamp(15px,calc(.8vw + 4px),16px)!important}
body.member-reference-body .sa-table-head,
body.member-reference-body .sa-table :is(b,small,time){font-size:clamp(13px,calc(.6vw + 3px),15px)!important}
body.member-reference-body .sa-session-detail :is(dt,dd){font-size:clamp(13px,calc(.6vw + 3px),15px)!important}
body.member-reference-body .pricing-package .package-summary textarea{font-size:clamp(15px,calc(.8vw + 4px),16px)!important}
body.member-reference-body .pricing-package :is(.package-facts label,.package-overview dt){font-size:clamp(14px,calc(.6vw + 4px),15px)!important}
body.member-reference-body .pricing-package :is(.package-facts input,.package-facts select,.package-overview dd){font-size:clamp(15px,calc(.8vw + 4px),16px)!important}

/* Company delivery, promotion review and refund tables use user-panel roles. */
body:has(>header.header) .pcc-delivery-person :is(p,dt,dd),
body:has(>header.header) .pcc-member-note :is(small,p,a),
body:has(>header.header) .pcc-delivery form :is(label,textarea,button){font-size:clamp(14px,calc(.6vw + 4px),16px)!important}
body:has(>header.header) .pcc-history-table>.head{font-size:clamp(13px,calc(.6vw + 3px),15px)!important}
body:has(>header.header) .pcc-history-table>article,
body:has(>header.header) .pcc-history-table>article :is(span,strong,b,small){font-size:clamp(14px,calc(.7vw + 3px),16px)!important}

/* Admin and employee semantic mappings from the supplied scale. */
body:has(.agency-app) .agency-content :is(label,legend){font-size:clamp(13px,calc(.5vw + 3px),15px)!important}
body:has(.agency-app) .agency-content :is(dt,dd,time,li){font-size:clamp(14px,calc(.6vw + 3px),16px)!important;line-height:var(--line-height-normal)!important}
body:has(.agency-app) .agency-content :is(th,.table-header){font-size:clamp(12px,calc(.5vw + 3px),14px)!important}
body:has(.agency-app) .agency-content :is(td,.table-cell){font-size:clamp(12px,calc(.5vw + 3px),14px)!important}

/* Slightly tighter type scale on phones across public and signed-in panels. */
@media(max-width:767px){
 body.ic-public{font-size:14px}
 body.ic-public main h1,body.ic-public .hero-heading{font-size:clamp(27px,9vw,34px)!important;line-height:1.14!important}
 body.ic-public main h2,body.ic-public .page-heading{font-size:clamp(22px,7vw,27px)!important;line-height:1.2!important}
 body.ic-public main h3,body.ic-public .section-heading{font-size:18px!important;line-height:1.3!important}
 body.ic-public main h4,body.ic-public .card-heading{font-size:16px!important}
 body.ic-public main p,body.ic-public .body-text{font-size:14px!important;line-height:1.55!important}
 body.ic-public :is(.public-site-header a,.public-mobile-dock a,.public-mobile-dock button,.nav-link){font-size:12px!important}
 body.ic-public :is(.button,button[type="submit"]){font-size:13px!important}
 body.ic-public main :is(label,.form-label){font-size:12px!important}
 body.ic-public main :is(small,.metadata,time,.tag,.status,.badge,[class*="-tag"],[class*="-chip"]){font-size:11px!important}
 body.ic-public main :is(.ic-creator-card h3,.ic-result-card h2,.ic-filter-panel h2){font-size:17px!important}
 body.ic-public main :is(.ic-result-card p,.ic-creator-card p){font-size:13px!important}

 body.member-reference-body,body:has(>header.header){font-size:13px}
 body.member-reference-body :is(h1,.page-heading),body:has(>header.header) :is(h1,.page-heading){font-size:23px!important}
 body.member-reference-body :is(h2,.section-heading),body:has(>header.header) :is(h2,.section-heading){font-size:19px!important}
 body.member-reference-body :is(h3,.card-heading),body:has(>header.header) :is(h3,.card-heading){font-size:16px!important}
 body.member-reference-body :is(p,.body-text),body:has(>header.header) :is(p,.body-text),body.member-reference-body main :is(li,dt,dd,time),body:has(>header.header) main :is(li,dt,dd,time){font-size:13px!important;line-height:1.45!important}
 body.member-reference-body main :is(label,.form-label),body:has(>header.header) main :is(label,.form-label){font-size:12px!important}
 body.member-reference-body :is(button,.button,nav a),body:has(>header.header) :is(button,.button,nav a){font-size:12px!important}

 body:has(.agency-app){font-size:13px}
 body:has(.agency-app) .agency-content :is(h1,.page-heading),body:has(.agency-app) .agency-content>section>div>h2{font-size:22px!important}
 body:has(.agency-app) .agency-content :is(.section-heading,h2){font-size:18px!important}
 body:has(.agency-app) .agency-content :is(.card-heading,h3){font-size:15px!important}
 body:has(.agency-app) .agency-content :is(p,.body-text,dt,dd,time,li){font-size:13px!important;line-height:1.45!important}
 body:has(.agency-app) .agency-content :is(label,legend,button,.button,input,select,textarea){font-size:12px!important}
 body:has(.agency-app) :is(.agency-nav a,.sidebar-link){font-size:12px!important}
 body:has(.agency-app) :is(th,td,.table-header,.table-cell,.status,.status-tag){font-size:11px!important}
}
