/* Castlance v10.0.17 — final public + portal contrast and spacing layer */
html[data-theme="dark"] body.castlance-public-v8,
html[data-theme="dark"] body.castlance-portal-v8{
  --final-bg:#07111f;--final-surface:#0d1b2d;--final-surface2:#122238;--final-line:#2a415c;--final-text:#f2f6fb;--final-muted:#9fb0c4;--final-input:#0b1727;
  color:var(--final-text)!important;background:var(--final-bg)!important;
}
html[data-theme="light"] body.castlance-public-v8,
html[data-theme="light"] body.castlance-portal-v8{
  --final-bg:#f4f7fb;--final-surface:#ffffff;--final-surface2:#f7f9fc;--final-line:#d7e2ee;--final-text:#102033;--final-muted:#607187;--final-input:#ffffff;
  color:var(--final-text)!important;background:var(--final-bg)!important;
}

/* Generic surfaces: keep text and surface paired in both themes. */
html[data-theme="dark"] body.castlance-public-v8 :where(.card,.login-card,.delivery-grid>div,.license-delivery-box,.wait-state,.pricing-card,.checkout-card,.panel,.modal-card),
html[data-theme="dark"] body.castlance-portal-v8 :where(.card,.stat,.row,.download-card,.portal-fold,.portal-accordion,.portal-accordion-body,.profile-collapse,.quota-saas-grid>div,.portal-pop,.login-card,.login-note,.portal-action-required){
  background:var(--final-surface)!important;background-color:var(--final-surface)!important;border-color:var(--final-line)!important;color:var(--final-text)!important;
}
html[data-theme="light"] body.castlance-public-v8 :where(.card,.login-card,.delivery-grid>div,.license-delivery-box,.wait-state,.pricing-card,.checkout-card,.panel,.modal-card),
html[data-theme="light"] body.castlance-portal-v8 :where(.card,.stat,.row,.download-card,.portal-fold,.portal-accordion,.portal-accordion-body,.profile-collapse,.quota-saas-grid>div,.portal-pop,.login-card,.login-note,.portal-action-required){
  background:var(--final-surface)!important;background-color:var(--final-surface)!important;border-color:var(--final-line)!important;color:var(--final-text)!important;
}

/* Typography contrast: never inherit a legacy color from the opposite theme. */
body.castlance-public-v8 :where(.card,.login-card,.delivery-grid>div,.license-delivery-box,.wait-state) :where(h1,h2,h3,h4,b,strong,code,label),
body.castlance-portal-v8 :where(.card,.stat,.row,.download-card,.portal-fold,.portal-accordion,.profile-collapse,.quota-saas-grid>div,.portal-pop,.login-card,.portal-action-required) :where(h1,h2,h3,h4,b,strong,label,code){color:var(--final-text)!important;-webkit-text-fill-color:var(--final-text)!important}
body.castlance-public-v8 :where(.card,.login-card,.delivery-grid>div,.license-delivery-box,.wait-state) :where(p,small,.muted,.delivery-note),
body.castlance-portal-v8 :where(.card,.stat,.row,.download-card,.portal-fold,.portal-accordion,.profile-collapse,.quota-saas-grid>div,.portal-pop,.login-card,.portal-action-required) :where(p,small,.muted){color:var(--final-muted)!important;-webkit-text-fill-color:var(--final-muted)!important}

/* Public payment success page */
body.castlance-public-v8 .payment-success-card{max-width:760px;margin-inline:auto;border:1px solid var(--final-line)!important;box-shadow:0 24px 70px rgba(0,0,0,.18)!important}
body.castlance-public-v8 .payment-success-card h1{max-width:680px;margin:18px auto 12px;line-height:1.05}
body.castlance-public-v8 .payment-success-card>p{max-width:650px;margin-inline:auto}
body.castlance-public-v8 .license-delivery-box{max-width:620px!important}
body.castlance-public-v8 .license-key-row code{color:var(--final-text)!important;-webkit-text-fill-color:var(--final-text)!important}
html[data-theme="dark"] body.castlance-public-v8 .delivery-grid>div{background:#122238!important}
html[data-theme="dark"] body.castlance-public-v8 .delivery-grid>div small{color:#9fb0c4!important}
html[data-theme="dark"] body.castlance-public-v8 .delivery-grid>div b{color:#f2f6fb!important;-webkit-text-fill-color:#f2f6fb!important}
html[data-theme="dark"] body.castlance-public-v8 .license-delivery-box{background:#0a1727!important}
html[data-theme="light"] body.castlance-public-v8 .payment-success-card{background:#fff!important;color:#102033!important}
html[data-theme="light"] body.castlance-public-v8 .delivery-grid>div{background:#f8fafc!important}

/* Portal login */
body.castlance-portal-v8 .login-card{border:1px solid var(--final-line)!important;box-shadow:0 26px 75px rgba(0,0,0,.22)!important}
body.castlance-portal-v8 .login-brand{color:var(--final-text)!important;-webkit-text-fill-color:var(--final-text)!important}
body.castlance-portal-v8 .login-card h1{color:var(--final-text)!important;-webkit-text-fill-color:var(--final-text)!important}
body.castlance-portal-v8 .field label{color:var(--final-muted)!important;-webkit-text-fill-color:var(--final-muted)!important}
body.castlance-portal-v8 :where(input:not([type="checkbox"]):not([type="radio"]),textarea,select){background:var(--final-input)!important;color:var(--final-text)!important;border-color:var(--final-line)!important;-webkit-text-fill-color:var(--final-text)!important}
body.castlance-portal-v8 :where(input,textarea)::placeholder{color:var(--final-muted)!important;-webkit-text-fill-color:var(--final-muted)!important;opacity:.82!important}
html[data-theme="dark"] body.castlance-portal-v8 .login-shell{background:radial-gradient(circle at 50% 0,#15385f 0,#07182b 46%,#050d17 100%)!important}
html[data-theme="light"] body.castlance-portal-v8 .login-shell{background:radial-gradient(circle at 50% 0,#e8f0fb 0,#f5f7fb 54%,#edf2f7 100%)!important}

/* Portal action-required compact card */
body.castlance-portal-v8 .portal-action-required{padding:0!important;overflow:hidden;margin-bottom:16px!important}
body.castlance-portal-v8 .portal-action-required>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px}
body.castlance-portal-v8 .portal-action-required>summary::-webkit-details-marker{display:none}
body.castlance-portal-v8 .portal-action-required .action-summary-copy{min-width:0;display:grid;gap:2px}
body.castlance-portal-v8 .portal-action-required .action-summary-copy .eyebrow{margin:0;font-size:9px}
body.castlance-portal-v8 .portal-action-required .action-summary-copy h2{margin:0!important;font-size:18px!important;line-height:1.2}
body.castlance-portal-v8 .portal-action-required .action-summary-copy p{margin:2px 0 0!important;font-size:11px!important}
body.castlance-portal-v8 .portal-action-required .action-summary-side{display:flex;align-items:center;gap:10px;flex:0 0 auto}
body.castlance-portal-v8 .portal-action-required .action-chevron{width:30px;height:30px;border:1px solid var(--final-line);border-radius:9px;display:grid;place-items:center;font-weight:900;transition:transform .18s}
body.castlance-portal-v8 .portal-action-required[open] .action-chevron{transform:rotate(180deg)}
body.castlance-portal-v8 .portal-action-required .saas-notification-center{display:grid;gap:8px;padding:0 14px 14px;border-top:1px solid var(--final-line)}
body.castlance-portal-v8 .portal-action-required .saas-notice{margin-top:10px;display:grid!important;grid-template-columns:minmax(0,1fr) 28px;align-items:center;gap:12px;padding:12px 13px!important;border:1px solid var(--final-line)!important;border-radius:11px!important;background:var(--final-surface2)!important;color:var(--final-text)!important}
body.castlance-portal-v8 .portal-action-required .saas-notice>div{min-width:0;display:grid;gap:2px}
body.castlance-portal-v8 .portal-action-required .saas-notice b{display:block!important;font-size:12px!important;line-height:1.35!important}
body.castlance-portal-v8 .portal-action-required .saas-notice small{display:block!important;font-size:10px!important;line-height:1.45!important}
body.castlance-portal-v8 .portal-action-required .saas-notice>span{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:rgba(77,125,244,.12);color:#79a1ff!important}

/* Avoid oversized empty cards/grids in portal */
body.castlance-portal-v8 .grid2{align-items:start!important}
body.castlance-portal-v8 .card{height:auto!important;min-height:0!important}
body.castlance-portal-v8 :where(.portal-fold-body,.profile-collapse-body){color:var(--final-text)!important}

/* Notification dropdown theme */
html[data-theme="dark"] body.castlance-portal-v8 .portal-pop{background:#0d1b2d!important;color:#f2f6fb!important}
html[data-theme="dark"] body.castlance-portal-v8 .portal-pop a{background:#122238!important;color:#f2f6fb!important;border:1px solid #2a415c!important}
html[data-theme="light"] body.castlance-portal-v8 .portal-pop{background:#fff!important;color:#102033!important}
html[data-theme="light"] body.castlance-portal-v8 .portal-pop a{background:#f7f9fc!important;color:#102033!important;border:1px solid #d7e2ee!important}

@media(max-width:700px){
  body.castlance-portal-v8 .portal-action-required>summary{align-items:flex-start;padding:14px}
  body.castlance-portal-v8 .portal-action-required .action-summary-side{gap:6px}
  body.castlance-portal-v8 .portal-action-required .action-summary-copy p{display:none}
  body.castlance-public-v8 .payment-success-card{padding:22px!important}
  body.castlance-public-v8 .payment-success-card h1{font-size:clamp(28px,9vw,46px)!important}
}
