/* Castlance v10.0.18 — global light/dark contrast audit layer.
   Loaded last on every interactive surface. */
:root{
  --cl18-light-bg:#f4f7fb;--cl18-light-surface:#ffffff;--cl18-light-surface2:#f7f9fc;--cl18-light-text:#102033;--cl18-light-muted:#607187;--cl18-light-line:#d7e2ee;--cl18-light-input:#ffffff;
  --cl18-dark-bg:#07111f;--cl18-dark-surface:#0d1b2d;--cl18-dark-surface2:#122238;--cl18-dark-text:#f2f6fb;--cl18-dark-muted:#9fb0c4;--cl18-dark-line:#2a415c;--cl18-dark-input:#0a1727;
}
html[data-theme="light"]{color-scheme:light}
html[data-theme="dark"]{color-scheme:dark}

/* PUBLIC + PORTAL TOKENS */
html[data-theme="light"] body.castlance-public-v8,
html[data-theme="light"] body.castlance-portal-v8{--bg:var(--cl18-light-bg);--surface:var(--cl18-light-surface);--surface2:var(--cl18-light-surface2);--text:var(--cl18-light-text);--muted:var(--cl18-light-muted);--line:var(--cl18-light-line);--input:var(--cl18-light-input);background:var(--bg)!important;color:var(--text)!important}
html[data-theme="dark"] body.castlance-public-v8,
html[data-theme="dark"] body.castlance-portal-v8{--bg:var(--cl18-dark-bg);--surface:var(--cl18-dark-surface);--surface2:var(--cl18-dark-surface2);--text:var(--cl18-dark-text);--muted:var(--cl18-dark-muted);--line:var(--cl18-dark-line);--input:var(--cl18-dark-input);background:var(--bg)!important;color:var(--text)!important}

/* All ordinary content surfaces — excludes deliberate hero/nav dark canvases. */
body.castlance-public-v8 :where(.card,.panel,.checkout-card,.payment-success-card,.license-delivery-box,.delivery-grid>div,.wait-state,.pricing-card,.pricing-card-v43,.price-card,.plan-card,.package-card,.platform-card,.feature-card,.faq-card,.faq-item,.faq-box,.faq-sidebar-v43,.faq-support-card,.blog-card-v5,.article-content-v5,.article-side-v5,.legal-content-v5,.download-card,.download-platform,.download-box,.download-panel,.os-detect,.release-card,.release-note-card,.release-callout-box,.compare-table-wrap,.pricing-compare-v43,.demo-card,.demo-box,.roi-card,.try-card,.invoice-card,.transfer-form,.white-card,.surface-white,.bg-white,.floating,.app-shot,.value-bar),
body.castlance-portal-v8 :where(.card,.stat,.row,.portal-card,.portal-panel,.portal-box,.download-card,.portal-fold,.portal-accordion,.portal-accordion-body,.profile-collapse,.profile-collapse-body,.quota-saas-grid>div,.portal-pop,.portal-pop a,.login-card,.login-note,.portal-action-required,.portal-new-ticket,.portal-chat,.chat-bubble,.portal-invoice-row,.portal-invoice-summary,.portal-v64-quick,.account-card){background-color:var(--surface)!important;border-color:var(--line)!important;color:var(--text)!important}

body.castlance-public-v8 :where(.license-delivery-box,.wait-state,.plan-term-benefit,.pricing-duration-switch button,.os-detect),
body.castlance-portal-v8 :where(.portal-accordion-body,.profile-collapse-body,.portal-chat,.portal-pop a,.portal-new-ticket,.login-note,.quota-saas-grid>div){background-color:var(--surface2)!important}

/* Readable typography without overriding status/badge semantic colors. */
body.castlance-public-v8 :where(.card,.panel,.checkout-card,.payment-success-card,.pricing-card,.pricing-card-v43,.price-card,.plan-card,.package-card,.feature-card,.faq-card,.faq-item,.blog-card-v5,.article-content-v5,.legal-content-v5,.download-card,.download-platform,.invoice-card,.transfer-form,.white-card) :where(h1,h2,h3,h4,h5,h6,label,code),
body.castlance-portal-v8 :where(.card,.stat,.row,.portal-card,.portal-panel,.portal-box,.portal-fold,.portal-accordion,.profile-collapse,.quota-saas-grid>div,.portal-pop,.login-card,.account-card) :where(h1,h2,h3,h4,h5,h6,label,code){color:var(--text)!important;-webkit-text-fill-color:var(--text)!important}
body.castlance-public-v8 :where(.muted,.sub,.subtitle,.description,.delivery-note,.note,.helper,.help-text),
body.castlance-public-v8 :where(.card,.panel,.checkout-card,.payment-success-card,.pricing-card,.pricing-card-v43,.faq-card,.faq-item,.blog-card-v5,.download-card,.download-platform) :where(p,small),
body.castlance-portal-v8 :where(.muted,.sub,.subtitle,.description,.note,.helper,.help-text),
body.castlance-portal-v8 :where(.card,.stat,.row,.portal-card,.portal-panel,.portal-box,.portal-fold,.portal-accordion,.profile-collapse,.quota-saas-grid>div,.portal-pop,.login-card,.account-card) :where(p,small){color:var(--muted)!important;-webkit-text-fill-color:var(--muted)!important}

/* Inputs and native form controls. */
body.castlance-public-v8 :where(input:not([type="checkbox"]):not([type="radio"]),textarea,select),
body.castlance-portal-v8 :where(input:not([type="checkbox"]):not([type="radio"]),textarea,select){background:var(--input)!important;color:var(--text)!important;-webkit-text-fill-color:var(--text)!important;border-color:var(--line)!important}
body.castlance-public-v8 :where(input,textarea)::placeholder,
body.castlance-portal-v8 :where(input,textarea)::placeholder{color:var(--muted)!important;-webkit-text-fill-color:var(--muted)!important;opacity:.78!important}
body.castlance-public-v8 select option,body.castlance-portal-v8 select option{background:var(--surface)!important;color:var(--text)!important}

/* Tables must inherit the active theme. */
body.castlance-public-v8 :where(table,.table,.table-wrap),body.castlance-portal-v8 :where(table,.table,.table-wrap){background:var(--surface)!important;color:var(--text)!important;border-color:var(--line)!important}
body.castlance-public-v8 :where(th,td),body.castlance-portal-v8 :where(th,td){border-color:var(--line)!important;color:var(--text)!important}
body.castlance-public-v8 th,body.castlance-portal-v8 th{background:var(--surface2)!important}

/* Buttons: preserve semantic primary button contrast. */
body.castlance-public-v8 :where(.btn.primary,.nav-cta.primary,button.primary),body.castlance-portal-v8 :where(.btn.primary,button.primary){color:#fff!important;-webkit-text-fill-color:#fff!important}
html[data-theme="dark"] body.castlance-public-v8 :where(.btn.ghost,.btn.white,.pricing-duration-switch button:not(.active)),
html[data-theme="dark"] body.castlance-portal-v8 :where(.btn.ghost,.btn.secondary){background:#122238!important;color:#edf5ff!important;-webkit-text-fill-color:#edf5ff!important;border-color:#35506f!important}
html[data-theme="light"] body.castlance-public-v8 :where(.btn.ghost,.btn.white,.pricing-duration-switch button:not(.active)),
html[data-theme="light"] body.castlance-portal-v8 :where(.btn.ghost,.btn.secondary){background:#fff!important;color:#17314f!important;-webkit-text-fill-color:#17314f!important;border-color:#cbd8e6!important}

/* Known high-risk public pages/components. */
html[data-theme="dark"] body.castlance-public-v8 .delivery-grid>div{background:#122238!important}
html[data-theme="light"] body.castlance-public-v8 .delivery-grid>div{background:#f8fafc!important}
body.castlance-public-v8 .delivery-grid>div b,body.castlance-public-v8 .license-key-row code{color:var(--text)!important;-webkit-text-fill-color:var(--text)!important}
body.castlance-public-v8 .delivery-grid>div small,body.castlance-public-v8 .license-delivery-box small{color:var(--muted)!important;-webkit-text-fill-color:var(--muted)!important}
html[data-theme="dark"] body.castlance-public-v8 .success-check{background:#12372f!important;color:#8ee0c1!important}
html[data-theme="light"] body.castlance-public-v8 .success-check{background:#e9fbf4!important;color:#057a55!important}
html[data-theme="dark"] body.castlance-public-v8 .pending-icon{background:#10284c!important;color:#9fc0ff!important}
html[data-theme="light"] body.castlance-public-v8 .pending-icon{background:#eef4ff!important;color:#2457b6!important}
html[data-theme="dark"] body.castlance-public-v8 .copy-btn{background:#244a84!important;color:#fff!important}
html[data-theme="light"] body.castlance-public-v8 .copy-btn{background:#102038!important;color:#fff!important}

/* Pricing cards and savings. */
body.castlance-public-v8 .plan-term-benefit b{color:var(--text)!important;-webkit-text-fill-color:var(--text)!important}
body.castlance-public-v8 .plan-term-benefit small{color:var(--muted)!important;-webkit-text-fill-color:var(--muted)!important}
html[data-theme="dark"] body.castlance-public-v8 .plan-savings .old-price{color:#9fb0c4!important}
html[data-theme="light"] body.castlance-public-v8 .plan-savings .old-price{color:#6c7c8f!important}

/* Portal notification & action centre. */
body.castlance-portal-v8 .portal-pop{background:var(--surface)!important;color:var(--text)!important}
body.castlance-portal-v8 .portal-pop a{background:var(--surface2)!important;color:var(--text)!important;border:1px solid var(--line)!important}
body.castlance-portal-v8 .portal-pop a :where(b,strong){color:var(--text)!important;-webkit-text-fill-color:var(--text)!important}
body.castlance-portal-v8 .portal-pop a :where(small,span:not(.portal-badge)){color:var(--muted)!important;-webkit-text-fill-color:var(--muted)!important}
body.castlance-portal-v8 .portal-action-required .saas-notice{background:var(--surface2)!important;color:var(--text)!important;border-color:var(--line)!important}
body.castlance-portal-v8 .portal-action-required .saas-notice b{color:var(--text)!important;-webkit-text-fill-color:var(--text)!important}
body.castlance-portal-v8 .portal-action-required .saas-notice small{color:var(--muted)!important;-webkit-text-fill-color:var(--muted)!important}

/* ADMIN — final variable pairing for main Control Center and standalone QA pages. */
html[data-admin-theme="light"] body.castlance-admin-v8{--a18-bg:#f4f7fb;--a18-surface:#fff;--a18-surface2:#f7f9fc;--a18-text:#102138;--a18-muted:#64788f;--a18-line:#d7e2ee;--a18-input:#fff;background:var(--a18-bg)!important;color:var(--a18-text)!important;color-scheme:light}
html[data-admin-theme="dark"] body.castlance-admin-v8{--a18-bg:#07111f;--a18-surface:#0d1928;--a18-surface2:#101f31;--a18-text:#eef5fc;--a18-muted:#9cadc0;--a18-line:#29415c;--a18-input:#0a1624;background:var(--a18-bg)!important;color:var(--a18-text)!important;color-scheme:dark}
html[data-admin-theme] body.castlance-admin-v8 :where(.main,.admin-main,.wrap){color:var(--a18-text)!important}
html[data-admin-theme] body.castlance-admin-v8 :where(.section,.card,.saas-card,.an-card,.kpi,.finance-kpi,.lic-card,.table,.table-wrap,.support-thread,.ticket-item,.metric,.action){background:var(--a18-surface)!important;border-color:var(--a18-line)!important;color:var(--a18-text)!important}
html[data-admin-theme] body.castlance-admin-v8 :where(.lic-box,.lic-more,.empty,.support-empty,.invoice-empty,.an-empty){background:var(--a18-surface2)!important;border-color:var(--a18-line)!important;color:var(--a18-muted)!important}
html[data-admin-theme] body.castlance-admin-v8 :where(h1,h2,h3,h4,h5,h6,label,.lic-key,.lic-top>div>b){color:var(--a18-text)!important;-webkit-text-fill-color:var(--a18-text)!important}
html[data-admin-theme] body.castlance-admin-v8 :where(.muted,.sub,.note,.helper,.help,.lic-sub,.theme-note){color:var(--a18-muted)!important;-webkit-text-fill-color:var(--a18-muted)!important}
html[data-admin-theme] body.castlance-admin-v8 :where(input:not([type="checkbox"]):not([type="radio"]),textarea,select){background:var(--a18-input)!important;color:var(--a18-text)!important;-webkit-text-fill-color:var(--a18-text)!important;border-color:var(--a18-line)!important}
html[data-admin-theme] body.castlance-admin-v8 :where(input,textarea)::placeholder{color:var(--a18-muted)!important;-webkit-text-fill-color:var(--a18-muted)!important;opacity:.78!important}
html[data-admin-theme] body.castlance-admin-v8 select option{background:var(--a18-surface)!important;color:var(--a18-text)!important}
html[data-admin-theme] body.castlance-admin-v8 :where(th,td){border-color:var(--a18-line)!important;color:var(--a18-text)!important;-webkit-text-fill-color:var(--a18-text)!important}
html[data-admin-theme] body.castlance-admin-v8 th{background:var(--a18-surface2)!important}
html[data-admin-theme="light"] body.castlance-admin-v8 .side,html[data-admin-theme="light"] body.castlance-admin-v8 .admin-side{background:#fff!important;border-color:#d7e2ee!important;color:#29415b!important}
html[data-admin-theme="dark"] body.castlance-admin-v8 .side,html[data-admin-theme="dark"] body.castlance-admin-v8 .admin-side{background:#081322!important;border-color:#243a53!important;color:#d9e7f6!important}
html[data-admin-theme="light"] body.castlance-admin-v8 :where(.side,.admin-side) a{color:#526b84!important;-webkit-text-fill-color:#526b84!important}
html[data-admin-theme="dark"] body.castlance-admin-v8 :where(.side,.admin-side) a{color:#a9bdd2!important;-webkit-text-fill-color:#a9bdd2!important}
html[data-admin-theme] body.castlance-admin-v8 :where(.side,.admin-side) a.active{color:var(--a18-text)!important;-webkit-text-fill-color:var(--a18-text)!important}
html[data-admin-theme] body.castlance-admin-v8 .admin-notify-pop{background:var(--a18-surface)!important;border-color:var(--a18-line)!important;color:var(--a18-text)!important}
html[data-admin-theme] body.castlance-admin-v8 .admin-notify-item{color:var(--a18-text)!important;border-color:var(--a18-line)!important}
html[data-admin-theme] body.castlance-admin-v8 .admin-notify-item small{color:var(--a18-muted)!important;-webkit-text-fill-color:var(--a18-muted)!important}

/* Standalone usage-policy/test pages had dark-only inline CSS. */
html[data-admin-theme="light"] body.usage-policy-page,
html[data-admin-theme="light"] body.usage-test-page{background:#f4f7fb!important;color:#102138!important}
html[data-admin-theme="light"] body.usage-policy-page :where(.card,.metric,.action),
html[data-admin-theme="light"] body.usage-test-page :where(.card,.metric,.action){background:#fff!important;border-color:#d7e2ee!important;color:#102138!important}
html[data-admin-theme="light"] body.usage-policy-page :where(.field input,.field select),
html[data-admin-theme="light"] body.usage-test-page :where(.field input,.field select){background:#fff!important;color:#102138!important;border-color:#cbd8e6!important}
html[data-admin-theme="light"] body.usage-policy-page :where(.muted,.field label,.small,.note),
html[data-admin-theme="light"] body.usage-test-page :where(.muted,.field label,.note,.eyebrow,.kv div:nth-child(odd)){color:#64788f!important;-webkit-text-fill-color:#64788f!important}
html[data-admin-theme="light"] body.usage-test-page .side{background:#fff!important;border-color:#d7e2ee!important}
html[data-admin-theme="light"] body.usage-test-page .side a{color:#526b84!important}
html[data-admin-theme="light"] body.usage-test-page .side a.active{background:#eef4ff!important;color:#1d4fae!important}

/* STAFF + OWNER login pages. */
html[data-theme="light"] body.cast-staff-login,
html[data-theme="light"] body.cast-owner-login{--auth-bg:#f4f7fb;--auth-surface:#fff;--auth-text:#102138;--auth-muted:#607187;--auth-line:#d7e2ee;--auth-input:#fff;background:var(--auth-bg)!important;color:var(--auth-text)!important}
html[data-theme="dark"] body.cast-staff-login,
html[data-theme="dark"] body.cast-owner-login{--auth-bg:#07111f;--auth-surface:#0f1c2e;--auth-text:#eef6ff;--auth-muted:#a9bbcf;--auth-line:#2a405a;--auth-input:#071522;background:var(--auth-bg)!important;color:var(--auth-text)!important}
body.cast-staff-login :where(.card,.staff-login-card),body.cast-owner-login .card{background:var(--auth-surface)!important;color:var(--auth-text)!important;border-color:var(--auth-line)!important}
body.cast-staff-login :where(h1,h2,h3,label,.brand),body.cast-owner-login :where(h1,h2,h3,label,.brand){color:var(--auth-text)!important;-webkit-text-fill-color:var(--auth-text)!important}
body.cast-staff-login :where(.sub,.muted,p),body.cast-owner-login :where(.sub,.muted,.uri,p){color:var(--auth-muted)!important;-webkit-text-fill-color:var(--auth-muted)!important}
body.cast-staff-login :where(input,select,textarea),body.cast-owner-login :where(input,select,textarea){background:var(--auth-input)!important;color:var(--auth-text)!important;-webkit-text-fill-color:var(--auth-text)!important;border-color:var(--auth-line)!important}
body.cast-owner-login .secondary{background:color-mix(in srgb,var(--auth-surface) 82%,var(--auth-text) 18%)!important;color:var(--auth-text)!important;border-color:var(--auth-line)!important}

/* Standalone invoice/verification can use the same data-theme set by the audit boot JS. */
html[data-theme="light"] body.cast-standalone-theme{--st-bg:#f4f7fb;--st-surface:#fff;--st-text:#102138;--st-muted:#607187;--st-line:#d7e2ee;background:var(--st-bg)!important;color:var(--st-text)!important}
html[data-theme="dark"] body.cast-standalone-theme{--st-bg:#07111f;--st-surface:#0f1b2b;--st-text:#eef4fb;--st-muted:#9baec3;--st-line:#2a4057;background:var(--st-bg)!important;color:var(--st-text)!important}
body.cast-standalone-theme :where(.s,.card,.box){background:var(--st-surface)!important;color:var(--st-text)!important;border-color:var(--st-line)!important}
body.cast-standalone-theme :where(h1,h2,h3,h4,b,strong){color:var(--st-text)!important;-webkit-text-fill-color:var(--st-text)!important}
body.cast-standalone-theme :where(.muted,p,small){color:var(--st-muted)!important;-webkit-text-fill-color:var(--st-muted)!important}
body.cast-standalone-theme :where(.r,.box){border-color:var(--st-line)!important}

/* Accessibility: visible focus in both themes. */
:where(body.castlance-public-v8,body.castlance-portal-v8,body.castlance-admin-v8,body.cast-staff-login,body.cast-owner-login) :where(a,button,input,select,textarea):focus-visible{outline:3px solid rgba(47,103,232,.38)!important;outline-offset:2px!important}

@media(max-width:700px){
 body.castlance-public-v8 :where(.card,.checkout-card,.payment-success-card),body.castlance-portal-v8 :where(.card,.portal-card,.portal-panel){min-width:0!important}
}

/* Castlance v10.0.25 brand identity refresh */
.castlance-brand-logo{display:block;width:auto;max-width:230px;height:46px;object-fit:contain;border-radius:8px}
.site-header .brand .castlance-brand-logo{max-width:224px;height:48px}
.footer-brand .castlance-brand-logo{max-width:210px;height:46px}
.cast-brand-inline{display:inline-flex;align-items:center;gap:10px;min-width:0}
.cast-brand-inline img{width:38px;height:38px;border-radius:11px;object-fit:cover;flex:none;box-shadow:0 8px 24px rgba(18,71,255,.18)}
.cast-brand-inline .cast-brand-copy{display:grid;line-height:1.05}
.cast-brand-inline .cast-brand-copy b{font-size:15px;letter-spacing:.08em}
.cast-brand-inline .cast-brand-copy small{font-size:8px;letter-spacing:.14em;margin-top:5px;opacity:.68}
.login-brand.cast-brand-login{display:flex!important;align-items:center!important;gap:11px!important}
.login-brand.cast-brand-login img{width:46px;height:46px;border-radius:13px;object-fit:cover;box-shadow:0 10px 26px rgba(18,71,255,.2)}
.staff-login-brand.cast-brand-login,.brand.cast-brand-login{display:flex!important;align-items:center!important;gap:10px!important}
.staff-login-brand.cast-brand-login img,.brand.cast-brand-login img{width:44px;height:44px;border-radius:12px;object-fit:cover}
@media(max-width:720px){.site-header .brand .castlance-brand-logo{max-width:180px;height:42px}.footer-brand .castlance-brand-logo{max-width:190px;height:42px}}
