/* One shared scale. Eight size tokens; table and data intentionally share 14px. */
@font-face{font-family:'IBM Plex Mono';src:url('/fonts/IBMPlexMono-Medium-latin.2b309434438f.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap;unicode-range:U+0020-00FF}
:root{--fs-display:36px;--fs-h2:22px;--fs-h3:17px;--fs-body:16px;--fs-table:14px;--fs-caption:13px;--fs-label:12px;--fs-data:14px;--text-heading:#222632;--text-body:#4b505e;--text-muted:#717785;--font-data:'IBM Plex Mono',SUIT,ui-monospace,monospace;--ink:var(--text-heading);--muted:var(--text-muted)}
html[data-theme=dark]{--text-heading:#edf3f0;--text-body:#cbd6d0;--text-muted:#a5b5ad;--text:var(--text-heading);--muted:var(--text-muted)}
html{font-size:var(--fs-body)}
body{font-family:SUIT,'Apple SD Gothic Neo',system-ui,sans-serif;font-size:var(--fs-body);font-weight:400;line-height:1.7;color:var(--text-body)}
body :is(h1,h2,h3,h4){color:var(--text-heading);overflow-wrap:anywhere;word-break:keep-all}
body h1{font-size:var(--fs-display);font-weight:800;letter-spacing:-.02em;line-height:1.25}
body h2{font-size:var(--fs-h2);font-weight:800;line-height:1.4;letter-spacing:normal;padding-bottom:12px;border-bottom:2px solid var(--text-heading)}
body :is(h3,h4){font-size:var(--fs-h3);font-weight:700;line-height:1.5;letter-spacing:normal}
body :is(p,li,dd){color:var(--text-body);font-weight:400}
body :is(input,textarea,select){font-size:var(--fs-body);color:var(--text-body);min-width:0;max-width:100%}
body :is(table,td){font-size:var(--fs-table);line-height:1.7;color:var(--text-body);font-weight:400}
body table :is(p,li,dd){font-size:var(--fs-table)}
body :is(th,dt,.eyebrow,.common-term-kicker,.field-label,.supplier-field>span){font-size:var(--fs-label);font-weight:600;letter-spacing:.04em;color:var(--text-muted)}
body :is(small,.muted,.subtle-caption,.surface-foot,.sync-method,.search-footnote,.section-desc,.reg-footnote,.property-source,.ingredient-dates,.ingredient-author,.ingredient-breadcrumb,.ingredient-card .source-links,.news-image-credit,.model-note,.legend,.grade-list,.source-footer,.country-source,.country-detail-link,.regulation-country-count,.result-regulation-countries,.ingredient-table+small){font-size:var(--fs-caption);font-weight:400;line-height:1.7;color:var(--text-muted)}
body :is(.data-value,code,kbd,time,input[type=number],.identity-cell strong,.result>span,.suggestion>span,.color-name small,#targetLabel,#hexInput,#pantoneNumber,.ratio-row strong,.ratio-row b,.delta,.delta-help,.ingredient-facts dd.data-value){font-family:var(--font-data);font-size:var(--fs-data);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:normal;color:var(--text-heading);overflow-wrap:anywhere}
body .ingredient-inci,body .ingredient-inci span{font-family:var(--font-data);font-size:var(--fs-data);font-weight:500;font-variant-numeric:tabular-nums;color:var(--text-muted);letter-spacing:normal;line-height:1.7}
body :is(.ingredient-summary,.definition,.newscard p,.card p,.board-hero p,.supplier-hero p,.hero p,.briefcover p,.search-intro p,.editor,.comments,.supplier p,.meta dd,.supplier-policy){font-size:var(--fs-body);font-weight:400;color:var(--text-body);line-height:1.7}
body :is(.ingredient-card h2,.card h2,.block-title h2,.sectionhead h2){font-size:var(--fs-h2);font-weight:800;color:var(--text-heading)}
body :is(.ingredient-heading h1,.tool-title h1,.board-hero h1,.supplier-hero h1,.search-intro h1){font-size:var(--fs-display);font-weight:800;letter-spacing:-.02em;color:var(--text-heading)}
body :is(.card h3,.newscard h3,.work-card h3,.community-banner h3,.detail-subhead,.ingredient-faq summary,.ingredient-faq h3){font-size:var(--fs-h3);font-weight:700;color:var(--text-heading)}
body .ingredient-faq h3{display:inline;margin:0;line-height:1.5}
body .search-intro em{color:var(--text-heading)}
body :is(.tag,.ingredient-status,.grade-badge,.micro-badge,.country-chip,.chips a,.chips button){font-size:var(--fs-label);font-weight:600;line-height:1.6}
body .ingredient-regulation-overview .ingredient-status{font-size:var(--fs-label)}
body .ingredient-regulation-overview .regulation-country-count{font-size:var(--fs-caption);color:var(--text-muted)}
body :is(.quality-header strong){font-size:var(--fs-h2);font-weight:800}
body .country-regulation-table tbody th{font-size:var(--fs-table);font-weight:700;letter-spacing:normal;color:var(--text-heading)}
body .country-regulation-table td::before{font-size:var(--fs-label);font-weight:600;color:var(--text-muted);letter-spacing:.04em}
body .country-absent>summary{font-size:var(--fs-caption);color:var(--text-muted)}
body .brand,body .tool-brand,body .footer-brand{color:var(--text-heading)}
body .brand b{font-size:var(--fs-h2);font-weight:800}
body :is(.brand b span,.tool-brand small){font-size:var(--fs-label);font-weight:600;letter-spacing:.04em;color:var(--text-muted)}
/* Prose is neutral; links and status/selection chips keep their semantic colors. */
body :is(.search-type>span,.hero,.briefcover,.hero aside,.detail-title .inci,.aliases span,.reference-item,.work-card p,.aside-note p,.data-row small,.meta,.check,dialog,.formgrid label){color:var(--text-body)}
body :is(.hero aside,.newsgrid small,.rankrow small,.reference-item small,.footer-brand span){color:var(--text-muted);font-size:var(--fs-caption)}
body .socialcard{background:#343345;color:#fff}
body .socialcard :is(h2,p,small,.eyebrow){color:#fff}
body .socialcard h2{border-color:#fff}
body :is(main,article,section,aside,.ingredient-main,.ingredient-heading,.ingredient-card,.supplier-card,.card,.bench-grid,.filters,.auth-panel,.detail-facts,.ingredient-facts,.tool-title>div){min-width:0}
body :is(p,li,dd,td,label,summary,.ingredient-inci,.source-links){overflow-wrap:anywhere}
body :is(.ingredient-facts dd,.detail-facts dd){margin-left:0}
body .ingredient-table-wrap,body .table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
@media(max-width:740px){:root{--fs-display:28px;--fs-h2:20px}body .search-intro h1{max-width:none}body .tool-title{align-items:start;gap:12px;flex-wrap:wrap}body .tool-title>div{flex:1 1 100%}body .tool-title small{max-width:100%}body .ingredient-heading{padding:22px}body .ingredient-card{padding:20px}body header{gap:12px}body .brand b span{letter-spacing:0}body .ingredient-actions{flex-wrap:wrap}body .ingredient-table th:first-child{min-width:0}body .retailer-standards .ingredient-table th:first-child{min-width:100px}body .supplier-hero h1{overflow-wrap:anywhere}body .legend{flex-wrap:wrap}body .quality-header{padding:14px}}
@media(max-width:400px){body .tool-header .tool-brand{font-size:var(--fs-h3)}body .tool-header .header-actions{min-width:0}body .tool-header .header-actions button{font-size:var(--fs-label);padding:8px}body .filters{grid-template-columns:minmax(0,1fr)}body .filters>div{min-width:0}body .tool-header .search-wrap{min-width:0}body .supplier-shell{padding-left:16px;padding-right:16px}body .table-toolbar{flex-wrap:wrap;gap:8px}body .table-toolbar>*{min-width:0;max-width:100%}body .ingredient-actions .secondary{font-size:var(--fs-table)}}

body .ingredient-status .data-value{color:inherit;font-size:var(--fs-data)}
body .formgrid :is(input,textarea,select){color:var(--text-body)}
body .ingredient-dates time{color:var(--text-muted)}
body :is(sub,sup){font-size:var(--fs-label)}
body table :is(p,li,dd,.country-condition){font-size:var(--fs-table);line-height:1.7}

body .notice{color:var(--text-body)}
body .notice b{color:var(--text-heading)}
body .supplier-shell :is(input,select,textarea){color:var(--text-body)}
body .rankrow b{font-family:var(--font-data);font-size:var(--fs-data);font-weight:500;font-variant-numeric:tabular-nums;color:var(--text-heading)}
