/* Shared text hierarchy: reference-blue control names, white dark-mode copy.
   Semantic risk/success/error colors remain independent. No behavior changes. */
:root{--ui-control-text:#0369a1;--ui-copy-text:#17221e;--ui-control-fill:#e6f3ff;--ui-control-line:#2d709e}
[data-theme="dark"]{--ui-control-text:#67b5f6;--ui-copy-text:#ffffff;--ui-control-fill:#132c46;--ui-control-line:#4272a3;--sl-ink:#ffffff;--sl-muted:#ffffff;--sl-faint:#ffffff;--ink:#ffffff;--ink-muted:#ffffff;--ink-faint:#ffffff}
/* Copy stays white in dark mode; light mode keeps its accessible dark copy. */
html[data-theme="dark"] body{color:var(--ui-copy-text)}
html[data-theme="dark"] :is(.text-ink,.text-ink-muted,.text-ink-faint,.ui-help,.auth-intro,.auth-method,.auth-help,.auth-support p,.auth-footer,.auth-expiry,.auth-delivery p,.auth-instructions li){color:var(--ui-copy-text)!important}
html[data-theme="dark"] :is(h1,h2,h3,h4,p,small,dt,dd,td,pre,blockquote):not(:where([class*="text-signal-"],[class*="text-signal-"] *,[class*="risk-tone-"],[class*="risk-tone-"] *,[role="alert"],[role="alert"] *,[role="status"],[role="status"] *,.ae-attention,.ae-improved,.aw-verified,.state-verified,[class*="error"],[class*="error"] *,[class*="danger"],[class*="danger"] *,[class*="success"],[class*="success"] *,[class*="warning"],[class*="warning"] *,.auth-error,.auth-error *,.auth-notice,.auth-notice *,.auth-field-error,.aw-error,.workflow-notice,.workflow-notice *,.status-chip,.status-chip *,.badge,.badge *,.ae-badge,.ae-badge *,.indexation-badge,.indexation-badge *)){color:var(--ui-copy-text)}
/* Form and metric labels, control names, navigation, tabs and disclosure names. */
html[data-theme] :is(label,legend,th,dt,.label,.aw-label,.ae-facts dt,.audit-gauge-title,.s4-context-label,.s4-nav-title,.s4-project-switcher label,.auth-eyebrow,.admin-eyebrow,.s4-eyebrow,.cu-kicker,.release-kicker,.local-kicker,[class$="-label"],[class*="-label "],.uppercase):not(:where([class*="risk-tone-"],[class*="risk-tone-"] *,[class*="text-signal-"],[class*="text-signal-"] *,[role="alert"],[role="alert"] *)){color:var(--ui-control-text)!important}
html[data-theme] :is(button,[role="button"],[role="tab"],[role="menuitem"],input[type="submit"],input[type="button"],nav a,a[class*="btn"],a[class*="button"],a[class*="action"],a[class*="primary"],a[class*="secondary"],a[class*="rounded"],.s4-context-card b,.s4-nav a,.s4-admin-group>summary,.s4-nav-group>summary,summary,.btn-primary,.btn-secondary,.btn-quiet,.ui-button,.admin-primary,.admin-secondary,.aw-primary,.ae-primary,.bs-button,.content-library-action,.content-library-action-link,.auth-password-links a,.auth-support a,.auth-different,.aw-header-actions a,.aw-actions>a,.aw-filter-actions a,.aw-filter-actions button,.aw-all-urls,.aw-back,.s4-return-platform,.s4-admin-disabled):not(:where([class*="risk-tone-"],[class*="risk-tone-"] *,[class*="text-signal-"],[class*="text-signal-"] *,.ed-danger,.ed-danger *,.kr-btn-danger,.quiet-danger,[data-destructive])){color:var(--ui-control-text)!important}
/* Do not leave white utility text on a colored control's child spans. */
html[data-theme] :is(button,[role="button"],[role="tab"],[role="menuitem"],nav a,summary,.btn-primary,.btn-secondary,.btn-quiet,.aw-primary,.ae-primary,.auth-primary) :is(span,b,strong,svg):not(:where([class*="risk-tone-"],[class*="risk-tone-"] *,[class*="text-signal-"],[class*="text-signal-"] *,.ed-danger,.ed-danger *,.status-chip,.status-chip *,.badge,.badge *,.agent-count,.agent-badge)){color:inherit!important}
/* Entered values and help copy are not labels. */
html[data-theme] :is(input:not([type="submit"]):not([type="button"]),select,textarea){color:var(--ui-copy-text)!important}
html[data-theme] label :is(input,select,textarea,small),html[data-theme] nav a small,html[data-theme] .aw-observation-nav a>span{color:var(--ui-copy-text)!important}
/* Darker filled actions keep the requested blue legible, including hover. */
html[data-theme] :is(.btn-primary,.ui-button.primary,.admin-primary,.aw-primary,.ae-primary,.auth-primary,.kr-btn-primary,.provider-primary,.audit-action-primary,.coworker-tabs a.selected,button[class~="bg-violet"],a[class~="bg-violet"],button[class~="bg-violet-glow"],a[class~="bg-violet-glow"]):not(:where([class*="risk-tone-"],[class*="text-signal-"],.ed-danger,.kr-btn-danger,.quiet-danger)){background:var(--ui-control-fill)!important;border-color:var(--ui-control-line)!important;color:var(--ui-control-text)!important}
html[data-theme] :is(.btn-primary,.aw-primary,.ae-primary,.auth-primary,button[class~="bg-violet"],a[class~="bg-violet"]):hover{box-shadow:inset 0 0 0 1px var(--ui-control-text)}
html[data-theme] :is(.fh-trigger,.feature-help-panel .fh-close){color:var(--ui-control-text)!important}
html[data-theme] :is(a,button,summary,input,select,textarea):focus-visible{outline-color:var(--ui-control-text)!important}
/* Risk and success remain recognizable after the control hierarchy rules. */
html[data-theme] [class*="risk-tone-"] :is(button,a,span,small){color:var(--audit-risk-color)!important}
html[data-theme] :is(.ed-danger,.kr-btn-danger,.quiet-danger,[data-destructive]){color:var(--signal-red,#f87171)!important}
@media print{html[data-theme] :is(body,p,small,input,select,textarea){color:#111!important}html[data-theme] :is(label,th,nav a,button,summary){color:#111!important}}

/* Filled directory buttons and recommendation badges need the same contrast. */
html[data-theme] :is(.wd-button.primary,.directory-button.primary,button.primary,a.primary){background:var(--ui-control-fill)!important;border-color:var(--ui-control-line)!important;color:var(--ui-control-text)!important}
html[data-theme] .s4-ai-button .s4-ai-unread{color:var(--ui-copy-text)!important;background:var(--ui-control-fill)!important;border:1px solid var(--ui-control-line)}
html[data-theme] .audit-risk-circle-link .audit-risk-category-label{color:var(--ui-control-text)!important}
html[data-theme] .score-gauge .score-gauge-health{color:var(--gauge-health-color,var(--ui-copy-text))!important}

html[data-theme] .score-gauge .score-gauge-values span{color:var(--ui-control-text)!important}

html[data-theme] :is(.wd-stat>span,.directory-stats>article>span,.directory-metric>span,.cu-metric>span,.cu-metrics>div>small:first-child,.bs-stat>span,.bs-metric>span,.score-gauge-inline-label){color:var(--ui-control-text)!important}

/* Health is a positive score; risk keeps its own independent severity color. */
.health-good{--gauge-health-color:#34d399}.health-warning{--gauge-health-color:#fb923c}.health-poor{--gauge-health-color:#f87171}
[data-theme="light"] .health-good{--gauge-health-color:#047857}[data-theme="light"] .health-warning{--gauge-health-color:#c2410c}[data-theme="light"] .health-poor{--gauge-health-color:#b91c1c}

/* Dual-score values and labels match their own ring segments. */
html[data-theme] .score-gauge{--gauge-health-segment-color:var(--signal-green,#34d399)}
html[data-theme] .score-gauge .score-gauge-health-track{stroke:var(--gauge-health-segment-color)}
html[data-theme] .score-gauge .score-gauge-health-segment{color:var(--gauge-health-segment-color)!important}
html[data-theme] .score-gauge .score-gauge-values-dual .score-gauge-risk span{color:var(--gauge-color)!important}
html[data-theme] .score-gauge .score-gauge-values-dual .score-gauge-health span{color:var(--gauge-health-segment-color)!important}
html[data-theme="light"] .score-gauge{--gauge-health-segment-color:#047857}

/* Public scan actions: explicit foregrounds override shared control-name colors. */
html[data-theme] body :is(.home-scan button,.home-cta-primary,.scan-button){background:#6d28d9!important;color:#ffffff!important;border:1px solid #a78bfa!important;transition:background-color .15s,border-color .15s}
html[data-theme] body :is(.home-scan button,.home-cta-primary,.scan-button):hover{background:#5b21b6!important;color:#ffffff!important;border-color:#c4b5fd!important}
html[data-theme] body :is(.home-scan button,.home-cta-primary,.scan-button):active{background:#4c1d95!important;color:#ffffff!important}
html[data-theme] body :is(.home-scan button,.home-cta-primary,.scan-button):focus-visible{outline:3px solid #e9d5ff!important;outline-offset:4px}
html[data-theme] body :is(.home-scan button,.home-cta-primary,.scan-button):disabled{opacity:1;background:#3b285d!important;color:#ede9fe!important;border-color:#a78bfa!important;cursor:wait}
html[data-theme] body .home-cta-secondary{background:#16141f!important;color:#f5f3ff!important;border-color:#716b85!important}
html[data-theme] body .home-cta-secondary:hover{background:#252032!important;color:#ffffff!important;border-color:#c4b5fd!important}
html[data-theme] body :is(.home-scan input,.scan-form input)::placeholder{color:#bdb5ce;opacity:1}

/* Shared control contrast contract. Important declarations in this named layer
   win over legacy unlayered overrides without increasing selector specificity.
   Every control receives a foreground/background pair, including state changes. */
@layer control-contrast {
:root{--cc-bg:#f6f0e5;--cc-fg:#075985;--cc-hover:#e8dfd0;--cc-line:#8b8171;--cc-ring:#6d28d9;--cc-disabled-bg:#e9e2d7;--cc-disabled-fg:#515c6c;--cc-selected-bg:#e8dcff;--cc-selected-fg:#492084;--cc-danger-bg:#fff0f0;--cc-danger-fg:#9f1239;--cc-danger-hover:#ffe0e4}
html[data-theme="dark"]{--cc-bg:#22272f;--cc-fg:#b5dcff;--cc-hover:#303846;--cc-line:#69768a;--cc-ring:#c4b5fd;--cc-disabled-bg:#292e37;--cc-disabled-fg:#b8c1cf;--cc-selected-bg:#352756;--cc-selected-fg:#ede4ff;--cc-danger-bg:#42232b;--cc-danger-fg:#ffb4c1;--cc-danger-hover:#592b37}
html[data-theme] body :is(button,[role="button"],[role="tab"],[role="menuitem"],input[type="submit"],input[type="button"],input[type="reset"],a.btn,a.button,a.primary,a.secondary,a[class*="-btn"],a[class*="-button"],a[class*="-primary"],a[class*="-secondary"],a[class*="-action"],a[class~="bg-violet"],a[class~="bg-violet-glow"]){background:var(--cc-bg)!important;color:var(--cc-fg)!important;border-color:var(--cc-line)!important;text-shadow:none!important}
html[data-theme] body :is(button,[role="button"],[role="tab"],[role="menuitem"],input[type="submit"],input[type="button"],input[type="reset"],a.btn,a.button,a.primary,a.secondary,a[class*="-btn"],a[class*="-button"],a[class*="-primary"],a[class*="-secondary"],a[class*="-action"],a[class~="bg-violet"],a[class~="bg-violet-glow"]):hover{background:var(--cc-hover)!important;color:var(--cc-fg)!important}
html[data-theme] body :is(button,[role="button"],[role="tab"],[role="menuitem"],input[type="submit"],input[type="button"],input[type="reset"],a.btn,a.button,a.primary,a.secondary,a[class*="-btn"],a[class*="-button"],a[class*="-primary"],a[class*="-secondary"],a[class*="-action"],a[class~="bg-violet"],a[class~="bg-violet-glow"]):is([aria-selected="true"],[aria-pressed="true"],.selected,.active,[aria-current="page"]){background:var(--cc-selected-bg)!important;color:var(--cc-selected-fg)!important}
html[data-theme] body :is(.primary,.btn-primary,.admin-primary,.aw-primary,.ae-primary,.auth-primary,.auth-submit,.provider-primary,.audit-action-primary,.audit-primary-link,.audit-run-button,.kr-btn-primary,.gp-primary,.sss-primary,.ug-primary,.ma-primary,.cu-primary,.rl-primary,.ww-primary,.registry-action-primary,.settings-primary-button,.home-cta-primary,.scan-button,.home-scan button,[class~="bg-violet"],[class~="bg-violet-glow"]){background:#6d28d9!important;color:#fff!important;border-color:#a78bfa!important}
html[data-theme] body :is(.primary,.btn-primary,.admin-primary,.aw-primary,.ae-primary,.auth-primary,.auth-submit,.provider-primary,.audit-action-primary,.audit-primary-link,.audit-run-button,.kr-btn-primary,.gp-primary,.sss-primary,.ug-primary,.ma-primary,.cu-primary,.rl-primary,.ww-primary,.registry-action-primary,.settings-primary-button,.home-cta-primary,.scan-button,.home-scan button,[class~="bg-violet"],[class~="bg-violet-glow"]):hover{background:#5b21b6!important;color:#fff!important;border-color:#c4b5fd!important}
html[data-theme] body :is(.primary,.btn-primary,.admin-primary,.aw-primary,.ae-primary,.auth-primary,.auth-submit,.provider-primary,.audit-action-primary,.audit-primary-link,.audit-run-button,.kr-btn-primary,.gp-primary,.sss-primary,.ug-primary,.ma-primary,.cu-primary,.rl-primary,.ww-primary,.registry-action-primary,.settings-primary-button,.home-cta-primary,.scan-button,.home-scan button,[class~="bg-violet"],[class~="bg-violet-glow"]):active{background:#4c1d95!important;color:#fff!important}
html[data-theme] body :is(button,[role="button"],[role="tab"],[role="menuitem"],input[type="submit"],input[type="button"],input[type="reset"],a.btn,a.button,a.primary,a.secondary,a[class*="-btn"],a[class*="-button"],a[class*="-primary"],a[class*="-secondary"],a[class*="-action"],a[class~="bg-violet"],a[class~="bg-violet-glow"]):is(.danger,.ed-danger,.kr-btn-danger,.quiet-danger,.agent-danger,[data-destructive],[class~="bg-red-500"],[class~="bg-red-600"],[class~="bg-signal-red"]){background:var(--cc-danger-bg)!important;color:var(--cc-danger-fg)!important;border-color:var(--cc-danger-fg)!important}
html[data-theme] body :is(button,[role="button"],[role="tab"],[role="menuitem"],input[type="submit"],input[type="button"],input[type="reset"],a.btn,a.button,a.primary,a.secondary,a[class*="-btn"],a[class*="-button"],a[class*="-primary"],a[class*="-secondary"],a[class*="-action"],a[class~="bg-violet"],a[class~="bg-violet-glow"]):is(.danger,.ed-danger,.kr-btn-danger,.quiet-danger,.agent-danger,[data-destructive],[class~="bg-red-500"],[class~="bg-red-600"],[class~="bg-signal-red"]):hover{background:var(--cc-danger-hover)!important;color:var(--cc-danger-fg)!important}
html[data-theme] body :is(button,[role="button"],[role="tab"],[role="menuitem"],input[type="submit"],input[type="button"],input[type="reset"],a.btn,a.button,a.primary,a.secondary,a[class*="-btn"],a[class*="-button"],a[class*="-primary"],a[class*="-secondary"],a[class*="-action"],a[class~="bg-violet"],a[class~="bg-violet-glow"]):focus-visible{outline:3px solid var(--cc-ring)!important;outline-offset:3px!important}
html[data-theme] body :is(button,[role="button"],[role="tab"],[role="menuitem"],input[type="submit"],input[type="button"],input[type="reset"],a.btn,a.button,a.primary,a.secondary,a[class*="-btn"],a[class*="-button"],a[class*="-primary"],a[class*="-secondary"],a[class*="-action"],a[class~="bg-violet"],a[class~="bg-violet-glow"]):is(:disabled,[aria-disabled="true"],.disabled){background:var(--cc-disabled-bg)!important;color:var(--cc-disabled-fg)!important;border-color:var(--cc-line)!important;opacity:1!important;filter:none!important;text-shadow:none!important;box-shadow:none!important;cursor:not-allowed!important}
html[data-theme] body :is(button,[role="button"],[role="tab"],[role="menuitem"],input[type="submit"],input[type="button"],input[type="reset"],a.btn,a.button,a.primary,a.secondary,a[class*="-btn"],a[class*="-button"],a[class*="-primary"],a[class*="-secondary"],a[class*="-action"],a[class~="bg-violet"],a[class~="bg-violet-glow"]) :is(span,b,strong,svg,small):not(:where(.badge,.badge *,.status-chip,.status-chip *,.agent-count,.agent-badge,.s4-ai-unread)){color:inherit!important;opacity:1!important}
@media(forced-colors:active){html[data-theme] body :is(button,[role="button"],[role="tab"],[role="menuitem"],input[type="submit"],input[type="button"],input[type="reset"],a.btn,a.button,a.primary,a.secondary,a[class*="-btn"],a[class*="-button"],a[class*="-primary"],a[class*="-secondary"],a[class*="-action"],a[class~="bg-violet"],a[class~="bg-violet-glow"]){forced-color-adjust:auto!important}}
}

/* Disconnect actions retain the destructive-action treatment. */
@layer control-contrast {
html[data-theme] body .provider-disconnect{background:var(--cc-danger-bg)!important;color:var(--cc-danger-fg)!important;border-color:var(--cc-danger-fg)!important}
html[data-theme] body .provider-disconnect:hover{background:var(--cc-danger-hover)!important;color:var(--cc-danger-fg)!important}
html[data-theme] body .provider-disconnect:is(:disabled,[aria-disabled="true"]){background:var(--cc-disabled-bg)!important;color:var(--cc-disabled-fg)!important;border-color:var(--cc-line)!important}
}
