/* Shared Cloudpartner app skin, adapted from Azure Helper's design tokens. */
:root {
  color-scheme: dark;
  --cp-bg: #06100e; --cp-surface: #0b1917; --cp-surface-2: #0f211e; --cp-surface-3: #143029;
  --cp-inset: #050b0a; --cp-border: rgba(86,196,178,.22); --cp-text: #d2e8e2; --cp-text-2: #9bc0b8;
  --cp-muted: #6b908a; --cp-accent: #2dd4bf; --cp-accent-strong: #5eead4; --cp-gold: #e7d24e;
  --cp-danger: #f4757f; --cp-success: #48bb78; --cp-shadow: 0 12px 36px rgba(0,0,0,.22);
  --primary-color: var(--cp-accent); --primary-hover: var(--cp-accent-strong); --secondary-color: var(--cp-surface-2); --accent-color: var(--cp-gold);
  --text-primary: var(--cp-text); --text-secondary: var(--cp-text-2); --border-color: var(--cp-border); --background: var(--cp-bg);
  --sidebar-bg: var(--cp-inset); --sidebar-text: var(--cp-text); --sidebar-hover: var(--cp-surface-2);
  font-family: "IBM Plex Sans", Inter, system-ui, sans-serif;
}
:root[data-theme="light"] {
  color-scheme: light;
  --cp-bg: #eef3f1; --cp-surface: #fff; --cp-surface-2: #f4f8f6; --cp-surface-3: #e7efec;
  --cp-inset: #f1f5f4; --cp-border: rgba(13,120,108,.2); --cp-text: #0c2420; --cp-text-2: #335049;
  --cp-muted: #5e7b74; --cp-accent: #0c9e8d; --cp-accent-strong: #08786c; --cp-gold: #806400;
  --cp-danger: #c43e4b; --cp-success: #167849; --cp-shadow: 0 12px 36px rgba(22,57,49,.1);
  --primary-color: var(--cp-accent); --primary-hover: var(--cp-accent-strong); --secondary-color: var(--cp-surface-2); --accent-color: var(--cp-gold);
  --text-primary: var(--cp-text); --text-secondary: var(--cp-text-2); --border-color: var(--cp-border); --background: var(--cp-bg);
  --sidebar-bg: var(--cp-inset); --sidebar-text: var(--cp-text); --sidebar-hover: var(--cp-surface-2);
}
html, body { background: var(--cp-bg); color: var(--cp-text); font-family: "IBM Plex Sans", Inter, system-ui, sans-serif; }
body:has(.cp-login-main) { background: radial-gradient(ellipse at 50% -15%, #1a3836 0%, var(--cp-bg) 48%, #091818 100%); }
:root[data-theme="light"] body:has(.cp-login-main) { background: radial-gradient(ellipse at 50% 0%,#d9eeea,#eef3f1 68%); }
body { background-image: linear-gradient(rgba(45,212,191,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(45,212,191,.025) 1px,transparent 1px); background-size: 44px 44px; }
:root[data-theme="light"] body { background-image: linear-gradient(rgba(13,120,108,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(13,120,108,.045) 1px,transparent 1px); }
h1,h2,h3,h4,h5,h6,.page-title,.header-title { color: var(--cp-text) !important; }
p,li,label,.text-muted,.text-secondary,.lead,.page-subtitle { color: var(--cp-text-2); }
.sidebar,.layout-root .sidebar { color:var(--cp-text)!important; background:var(--cp-inset)!important; border-color:var(--cp-border)!important; box-shadow:inset -1px 0 var(--cp-border); }
.sidebar-header,.logo,.sidebar .logo,.user-profile { color:var(--cp-text)!important; background:var(--cp-inset)!important; border-color:var(--cp-border)!important; }
:root[data-theme="light"] .sidebar-header [style*="color: white"],
:root[data-theme="light"] .sidebar-header [style*="color:white"],
:root[data-theme="light"] .sidebar .user-name,
:root[data-theme="light"] .sidebar .user-info,
:root[data-theme="light"] .mobile-header .header-title { color:var(--cp-text)!important; }
:root[data-theme="light"] .sidebar .user-version { color:var(--cp-text-2)!important; }
.sidebar-menu a,.menu-link { color:var(--cp-text-2)!important; }
.sidebar-menu a:hover,.menu-link:hover { color:var(--cp-text)!important; background:var(--cp-surface-2)!important; }
.sidebar-menu a.active,.menu li.active .menu-link { color:#041414!important; background:var(--cp-accent)!important; }
.main-content,.main-wrapper { color:var(--cp-text); background:transparent!important; }
.header-bar,.mobile-header { color:var(--cp-text)!important; background:var(--cp-inset)!important; border-color:var(--cp-border)!important; box-shadow:none!important; }
a { color: var(--cp-accent-strong); }
.card,.modal-content,.dropdown-menu,.accordion-item,.list-group-item,.table,.data-table,.risk-card,.summary-card,.score-card,.content-card,.panel,.main-panel,.modal-body,.modal-header,.modal-footer {
  color: var(--cp-text); background-color: var(--cp-surface) !important; border-color: var(--cp-border) !important; box-shadow: var(--cp-shadow);
}
.card-header,.table-header,.section-header,.modal-header,.accordion-button { color: var(--cp-text) !important; background-color: var(--cp-surface-2) !important; border-color: var(--cp-border) !important; }
.card-body,.modal-body,.modal-footer { color: var(--cp-text); }
input,select,textarea,.form-control,.form-select { color: var(--cp-text) !important; background: var(--cp-inset) !important; border-color: var(--cp-border) !important; }
input::placeholder,textarea::placeholder { color: var(--cp-muted) !important; }
table, th, td { color: var(--cp-text-2); border-color: var(--cp-border) !important; }
th { color: var(--cp-accent) !important; background: var(--cp-surface-2) !important; }
.btn-primary,.btn-success,.btn-info,.btn-primary:visited { color: #041414 !important; background: var(--cp-accent) !important; border-color: var(--cp-accent) !important; }
.btn-primary:hover,.btn-success:hover,.btn-info:hover { color: #041414 !important; background: var(--cp-accent-strong) !important; }
.btn-secondary,.btn-outline-secondary { color: var(--cp-text) !important; background: var(--cp-surface-2) !important; border-color: var(--cp-border) !important; }
.btn-danger,.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger:disabled,.btn-danger.disabled { color:#fff!important; }
.text-danger { color:var(--cp-danger)!important; }
mark,.text-warning { color:var(--cp-gold)!important; }
:focus-visible { outline:2px solid var(--cp-gold)!important; outline-offset:2px; }
hr { border-color: var(--cp-border); opacity: 1; }
::selection { color: var(--cp-text); background: rgba(45,212,191,.25); }
.cp-commandbar { position: relative; z-index: 20; min-height: 54px; display:flex; align-items:center; justify-content:flex-end; gap:8px; padding:8px 18px; color:var(--cp-text-2); background:var(--cp-inset); border-bottom:1px solid var(--cp-border); font:12px "JetBrains Mono",monospace; }
.cp-commandbar-label { margin-right:auto; color:var(--cp-accent); letter-spacing:.08em; text-transform:uppercase; font-size:10px; }
.cp-control { min-height:34px; padding:7px 11px; color:var(--cp-text); background:var(--cp-surface-2); border:1px solid var(--cp-border); border-radius:6px; font:11px "JetBrains Mono",monospace; cursor:pointer; }
.cp-control:hover,.cp-control[aria-pressed="true"] { color:var(--cp-gold); border-color:var(--cp-gold); }
.cp-header-link { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; white-space:nowrap; }
.cp-help-overlay { position:fixed; inset:0; z-index:10000; display:grid; place-items:center; padding:18px; background:rgba(0,0,0,.7); }
.cp-help-dialog { width:min(720px,100%); max-height:85vh; overflow:auto; padding:26px; color:var(--cp-text); background:var(--cp-surface); border:1px solid var(--cp-border); box-shadow:var(--cp-shadow); }
.cp-help-dialog h2,.cp-help-dialog h3 { font-family:"JetBrains Mono",monospace; }
.cp-help-dialog h2 { margin:0 0 8px; font-size:22px; }
.cp-help-dialog h3 { margin:20px 0 6px; color:var(--cp-gold) !important; font-size:13px; }
.cp-help-dialog p,.cp-help-dialog li { color:var(--cp-text-2); line-height:1.65; }
.cp-help-close { float:right; }
.cp-snow { position:fixed; inset:-20px 0 0; z-index:2; pointer-events:none; overflow:hidden; }
.cp-snow span { position:absolute; top:-30px; color:rgba(222,240,236,.55); text-shadow:0 0 5px rgba(155,230,223,.35); animation:cp-fall linear infinite; }
@keyframes cp-fall { to { transform:translate3d(22px,110vh,0) rotate(360deg); } }
:root[data-season="christmas"] { --cp-accent:#37c9ad; --cp-accent-strong:#6be2bd; --cp-gold:#f3cf53; }
:root[data-season="christmas"] .cp-commandbar-label::after { content:" · Santa's access review is read-only (he checked twice)"; color:var(--cp-gold); text-transform:none; letter-spacing:0; }
:root[data-season="christmas"] .sidebar, :root[data-season="christmas"] .sidebar .top-row { box-shadow: inset 0 3px 0 #c74148; }
.cp-holiday-ribbon { display:none; width:min(calc(100% - 32px),1200px); margin:12px auto 0; padding:0!important; overflow:hidden; background:var(--cp-surface)!important; border:1px solid #c9434f!important; border-radius:6px; }
:root[data-season="christmas"] .cp-holiday-ribbon { display:block; }
@media(prefers-reduced-motion:reduce) { .cp-snow span { animation:none; } }
@media(max-width:700px) { .cp-commandbar { position:sticky; top:0; justify-content:flex-end; flex-wrap:wrap; padding:7px; } .cp-commandbar-label { display:none; } .cp-control { min-height:32px; padding:6px 8px; } }
@media(max-width:760px) { .cp-topbar-right { gap:5px !important; }.cp-topbar-right .cp-control { min-height:28px; padding:4px 6px; font-size:9px; } }
@media(max-width:560px) { .cp-topbar-right .cp-brand-controls { flex-wrap:wrap; justify-content:flex-end; } }
.cp-login-controls { gap:7px !important; }
.cp-topbar-right:has(#cp-theme-toggle) .cp-secure-status { display:none!important; }
.cp-topbar:has(#cp-theme-toggle) .cp-segment-app { display:none!important; }
.cp-topbar-right .cp-control { flex:0 0 auto; white-space:nowrap; }
.cp-topbar .cp-control { min-height:30px; padding:5px 8px; color:#d2e8e2; background:#0b1917; border-color:rgba(86,196,178,.3); font-size:10px; }
:root[data-theme="light"] .cp-topbar .cp-control { color:#0c2420; background:#fff; border-color:rgba(13,120,108,.25); }
:root[data-season="christmas"] .cp-topbar { border-bottom-color:#c74148; }
.cp-login-page[data-theme="light"], :root[data-theme="light"] .cp-login-page { --cp-bg:#eef3f1; --cp-bg-deep:#eef3f1; --cp-card:#fff; --cp-border:rgba(13,120,108,.2); --cp-text:#0c2420; --cp-muted:#47645d; background:radial-gradient(ellipse at 50% 0%,#d9eeea,#eef3f1 68%); }
:root[data-theme="light"] .cp-login-shell, :root[data-theme="light"] .cp-feature, :root[data-theme="light"] .cp-auth-panel { background:#fff !important; color:#0c2420; }
:root[data-theme="light"] .cp-shell-bar { background:#e7efec; color:#335049; }
:root[data-theme="light"] .cp-shell-path, :root[data-theme="light"] .cp-copy h1, :root[data-theme="light"] .cp-auth-panel h2, :root[data-theme="light"] .cp-feature h2 { color:#0c2420; }
:root[data-theme="light"] .cp-description, :root[data-theme="light"] .cp-feature p, :root[data-theme="light"] .cp-auth-panel>p { color:#335049; }

/* App-wide bridge for the older CA and Entra pages, which still contain
   literal light-theme colors in their markup and generated report dialogs. */
html,body { min-height:100%; background-color:var(--cp-bg)!important; color:var(--cp-text)!important; font-family:"IBM Plex Sans",Inter,system-ui,sans-serif!important; }
body *:not(i):not(svg):not(.bi):not(.oi):not([class^="icon"]):not([class*=" icon"]) { font-family:"IBM Plex Sans",Inter,system-ui,sans-serif!important; }
button,input,select,textarea { font:inherit; }
code,pre,.cp-commandbar,.cp-commandbar-label,.cp-control,.cp-shell-bar,.cp-eyebrow,.cp-panel-mark { font-family:"JetBrains Mono",monospace!important; }
:root[data-theme="dark"] body [style*="background: white"],:root[data-theme="dark"] body [style*="background:white"],:root[data-theme="dark"] body [style*="background: #fff"],:root[data-theme="dark"] body [style*="background:#fff"],:root[data-theme="dark"] body [style*="background-color: white"],:root[data-theme="dark"] body [style*="background-color: #fff"],:root[data-theme="dark"] body [style*="background: #f8fafc"],:root[data-theme="dark"] body [style*="background:#f8fafc"],:root[data-theme="dark"] body [style*="background: #f9fafb"],:root[data-theme="dark"] body [style*="background:#f9fafb"],:root[data-theme="dark"] body [style*="background: #f3f4f6"],:root[data-theme="dark"] body [style*="background:#f3f4f6"] { color:var(--cp-text)!important; background:var(--cp-surface)!important; border-color:var(--cp-border)!important; box-shadow:var(--cp-shadow)!important; }
:root[data-theme="dark"] body .bg-white,:root[data-theme="dark"] body .bg-light,:root[data-theme="dark"] body .card-header.bg-white,:root[data-theme="dark"] body .card-footer.bg-white,:root[data-theme="dark"] body .text-dark,:root[data-theme="dark"] body .text-black { color:var(--cp-text)!important; background-color:var(--cp-surface-2)!important; border-color:var(--cp-border)!important; }
:root[data-theme="light"] body .bg-white,:root[data-theme="light"] body .bg-light,:root[data-theme="light"] body .card-header.bg-white,:root[data-theme="light"] body .card-footer.bg-white { color:var(--cp-text)!important; background-color:var(--cp-surface-2)!important; border-color:var(--cp-border)!important; }
:root[data-theme="light"] body [style*="background: white"],:root[data-theme="light"] body [style*="background:white"],:root[data-theme="light"] body [style*="background: #fff"],:root[data-theme="light"] body [style*="background:#fff"],:root[data-theme="light"] body [style*="background-color: white"],:root[data-theme="light"] body [style*="background-color: #fff"] { color:var(--cp-text)!important; background:var(--cp-surface)!important; border-color:var(--cp-border)!important; }
:root[data-theme] body [style*="color: #1A1A1A"],:root[data-theme] body [style*="color:#1A1A1A"],:root[data-theme] body [style*="color: #111827"],:root[data-theme] body [style*="color:#111827"],:root[data-theme] body [style*="color: #374151"],:root[data-theme] body [style*="color:#374151"],:root[data-theme] body [style*="color: #475569"],:root[data-theme] body [style*="color:#475569"],:root[data-theme] body [style*="color: #64748b"],:root[data-theme] body [style*="color:#64748b"],:root[data-theme] body [style*="color: #6b7280"],:root[data-theme] body [style*="color:#6b7280"],:root[data-theme] body [style*="color: #9ca3af"],:root[data-theme] body [style*="color:#9ca3af"] { color:var(--cp-text-2)!important; }
:root[data-theme="dark"] body [style*="linear-gradient(135deg, #667eea"],:root[data-theme="dark"] body [style*="linear-gradient(135deg,#667eea"],:root[data-theme="dark"] body [style*="linear-gradient(135deg, #6366f1"],:root[data-theme="dark"] body [style*="linear-gradient(135deg, #667eea"] { color:var(--cp-text)!important; background:var(--cp-surface-2)!important; border:1px solid var(--cp-border)!important; }
:root[data-theme] body .modal-overlay [style*="background: white"],:root[data-theme] body .modal-overlay [style*="background:#fff"],:root[data-theme] body .modal-overlay [style*="background: #fff"] { color:var(--cp-text)!important; background:var(--cp-surface)!important; }
:root[data-theme] body .modal-overlay [style*="color: #"] { color:var(--cp-text-2)!important; }
.global-footer { color:var(--cp-text-2)!important; background:var(--cp-surface)!important; border:1px solid var(--cp-border)!important; border-top:2px solid var(--cp-accent)!important; box-shadow:none!important; font:12px "IBM Plex Sans",sans-serif!important; }
.global-footer .footer-links,.global-footer .footer-badges { color:var(--cp-text-2)!important; background:transparent!important; }
.global-footer .footer-links a { color:var(--cp-gold)!important; font-family:"JetBrains Mono",monospace!important; font-weight:600; text-decoration:none; }
.global-footer .footer-badges span { display:inline-block; margin:2px 5px!important; padding:1px 3px!important; color:var(--cp-gold)!important; background:transparent!important; border:0!important; border-radius:0!important; font:600 11px "JetBrains Mono",monospace!important; box-shadow:none!important; }
:root[data-theme="light"] .global-footer .footer-badges span { color:var(--cp-gold)!important; }
.support-banner,.legal-notice,.alert-warning,.bg-warning { color:var(--cp-text)!important; background:var(--cp-surface-2)!important; border:1px solid var(--cp-border)!important; border-left:3px solid var(--cp-gold)!important; box-shadow:none!important; }
.support-banner *, .legal-notice *, .alert-warning *, .bg-warning * { color:var(--cp-text-2)!important; }
.cp-avatar,.cp-sidebar-brand .sidebar-logo,.sidebar-logo-container img { object-fit:cover!important; object-position:50% 0%!important; }
.cp-avatar { width:40px!important; height:40px!important; flex-basis:40px!important; }
.cp-auth-footer { flex-wrap:wrap; }
.cp-login-support { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:12px 20px; width:min(100%,1100px); margin:12px auto 0; padding:10px 16px; color:var(--cp-text-2); background:var(--cp-surface); border:1px solid var(--cp-border); border-top:1px solid var(--cp-border); font:12px "IBM Plex Sans",sans-serif; }
.cp-login-support a { color:var(--cp-gold)!important; font:600 12px "JetBrains Mono",monospace; text-decoration:none; box-shadow:none!important; }
.cp-highlight { display:inline; padding:0; color:var(--cp-gold)!important; background:transparent!important; border:0!important; border-radius:0!important; font:600 11px "JetBrains Mono",monospace!important; text-decoration:none!important; box-shadow:none!important; }

.cp-holiday-ribbon { display:none; width:min(calc(100% - 32px),1200px); margin:12px auto 0; padding:0!important; overflow:hidden; background:var(--cp-surface)!important; border:1px solid #c9434f!important; border-radius:6px; }
.cp-holiday-art { display:block; width:100%; height:clamp(100px,12vw,160px); margin:0 auto; object-fit:cover; object-position:center 52%; }
.cp-holiday-caption { padding:8px 12px; color:var(--cp-text)!important; font:11px "JetBrains Mono",monospace; text-align:center; line-height:1.5; }
:root[data-season="christmas"] .cp-sidebar-brand::after { content:"🎅"; position:absolute; right:5px; top:-8px; font:20px sans-serif; filter:drop-shadow(0 1px 1px #000); }
@media(max-width:700px) { .cp-holiday-art { display:block; width:100%; height:clamp(100px,12vw,160px); margin:0 auto; object-fit:cover; object-position:center 52%; }.cp-login-support { margin:10px auto; padding:10px; font-size:11px; } }
.cp-holiday-avatar { position:relative; display:inline-flex; flex:none; overflow:visible; isolation:isolate; border-radius:50%; vertical-align:middle; }
.cp-holiday-avatar>img { display:block; border-radius:inherit; }
:root[data-season="christmas"] .cp-holiday-avatar { box-shadow:0 0 0 2px #c43d49,0 0 0 4px rgba(45,212,191,.65); }
.cp-re-holiday-egg { margin-top:18px; padding:15px 16px; border:1px solid var(--cp-border); border-left:3px solid #c43d49; background:var(--cp-surface-2); border-radius:5px; }
.cp-re-holiday-egg .cp-re-kicker { color:var(--cp-gold); font:10px "JetBrains Mono",monospace; letter-spacing:.1em; text-transform:uppercase; }
.cp-re-holiday-egg h3 { margin:8px 0; color:var(--cp-text); font-size:17px; }
.cp-re-egg-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:12px; }
.cp-re-egg-status { color:var(--cp-text-2); font-size:12px; }

/* Seasonal and legacy component corrections */
:root[data-season="christmas"] .cp-holiday-ribbon { display:block; }
.cp-snow span { line-height:1; }
.alert-warning,.bg-warning,.notice-warning,.support-banner,.legal-notice { color:var(--cp-text)!important; background:var(--cp-surface-2)!important; border:1px solid var(--cp-border)!important; border-left:3px solid var(--cp-gold)!important; box-shadow:none!important; }
.alert-warning *, .bg-warning *, .notice-warning *, .support-banner *, .legal-notice * { color:var(--cp-text-2)!important; }
:root[data-theme="dark"] .card,:root[data-theme="dark"] .overview-card,:root[data-theme="dark"] .feature-card,:root[data-theme="dark"] .dashboard-card { color:var(--cp-text)!important; background:var(--cp-surface)!important; border-color:var(--cp-border)!important; box-shadow:var(--cp-shadow)!important; }
:root[data-theme="light"] .card,:root[data-theme="light"] .overview-card,:root[data-theme="light"] .feature-card,:root[data-theme="light"] .dashboard-card { color:var(--cp-text)!important; background:var(--cp-surface)!important; border-color:var(--cp-border)!important; }
@media(max-width:700px) { .cp-holiday-art { height:100px; }.cp-holiday-caption { font-size:9px; } }

.cp-visit-count{display:flex;align-items:center;justify-content:center;gap:10px;margin:16px auto;color:var(--cp-muted);font:10px "JetBrains Mono",monospace;letter-spacing:.08em}.cp-visit-count strong{color:var(--cp-accent);font-size:14px}

/* Azure Helper community strip and readable information surfaces */
.cp-community-strip {
  position:static!important; left:auto!important; right:auto!important; bottom:auto!important; z-index:auto!important;
  display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px 20px;
  margin:20px 0 24px; padding:12px 16px; width:100%; max-width:none;
  color:var(--cp-text-2)!important; background:var(--cp-surface)!important;
  border:1px solid var(--cp-border)!important; border-top:2px solid var(--cp-gold)!important;
  border-radius:0; box-shadow:none!important; font:12px "IBM Plex Sans",Inter,system-ui,sans-serif;
}
.cp-community-strip .cp-strip-intro { color:var(--cp-text-2)!important; }
.cp-community-strip a { color:var(--cp-gold)!important; font-weight:600; text-decoration:none!important; white-space:nowrap; }
.cp-community-strip a:hover,.cp-community-strip a:focus-visible { color:var(--cp-text)!important; text-decoration:underline!important; text-decoration-color:var(--cp-gold)!important; }
.cp-info-callout { margin-top:20px; padding:16px 18px; color:var(--cp-text-2)!important; background:var(--cp-surface-2)!important; border:1px solid var(--cp-border)!important; border-left:2px solid var(--cp-gold)!important; border-radius:4px; }
.cp-info-callout .cp-info-title { margin:0 0 .5rem; color:var(--cp-gold)!important; font-weight:600; }
.cp-info-callout li,.cp-info-callout p { color:var(--cp-text-2)!important; }
:root[data-theme="dark"] .alert-info,
:root[data-theme="dark"] .alert-warning,
:root[data-theme="dark"] .alert-light,
:root[data-theme="dark"] .bg-warning,
:root[data-theme="dark"] .bg-info {
  color:var(--cp-text-2)!important; background:var(--cp-surface-2)!important;
  border-color:var(--cp-border)!important; box-shadow:none!important;
}
:root[data-theme="dark"] .alert-info :is(h1,h2,h3,h4,h5,strong),
:root[data-theme="dark"] .alert-warning :is(h1,h2,h3,h4,h5,strong),
:root[data-theme="dark"] .bg-warning :is(h1,h2,h3,h4,h5,strong) { color:var(--cp-gold)!important; }
:root[data-theme="dark"] .alert-info :is(p,li,span,small),
:root[data-theme="dark"] .alert-warning :is(p,li,span,small),
:root[data-theme="dark"] .bg-warning :is(p,li,span,small) { color:var(--cp-text-2)!important; }
:root[data-theme="dark"] .text-primary,:root[data-theme="dark"] .text-info { color:var(--cp-accent-strong)!important; }
:root[data-theme="dark"] [style*="color: #1e40af"],
:root[data-theme="dark"] [style*="color:#1e40af"],
:root[data-theme="dark"] [style*="color: #1e3a8a"],
:root[data-theme="dark"] [style*="color: #2563EB"] { color:var(--cp-text-2)!important; }

/* Christmas artwork should decorate the login screen without pushing its
   sign-in panel below the fold. Keep the compact banner in normal flow and
   let the login layout size to its content on desktop. */
@media (min-width: 761px) {
  :root[data-season="christmas"] body:has(.cp-login-main) .cp-login-main {
    min-height:0!important;
    padding:18px 22px 12px!important;
  }
  :root[data-season="christmas"] body:has(.cp-login-main) .cp-holiday-ribbon {
    margin:8px auto 0!important;
  }
  :root[data-season="christmas"] body:has(.cp-login-main) .cp-holiday-art {
    height:clamp(76px, 8vw, 104px)!important;
  }
  :root[data-season="christmas"] body:has(.cp-login-main) .cp-holiday-caption {
    padding:5px 10px!important;
    line-height:1.35!important;
  }
}

/* Opt-in easter egg scenes: short, non-interactive overlays that never affect layout or input. */
.cp-egg-event-actions { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 18px; }
.cp-fun-event { position:fixed; inset:0; z-index:9998; overflow:hidden; pointer-events:none; contain:layout paint; }
.cp-fun-event-message {
  position:absolute; left:0; bottom:clamp(70px,9vh,112px); display:flex; align-items:center; gap:12px;
  max-width:calc(100vw - 24px); padding:8px 14px; color:var(--cp-text); background:rgba(5,11,10,.94);
  border:1px solid var(--cp-border); border-left:3px solid var(--cp-accent); box-shadow:0 8px 24px rgba(0,0,0,.28);
  font:600 12px "IBM Plex Sans",Inter,system-ui,sans-serif; white-space:nowrap;
  animation:cp-egg-sweep 3.8s cubic-bezier(.35,0,.65,1) both;
}
.cp-fun-event-character { font-size:30px; line-height:1; }
.cp-fun-event-krampus .cp-fun-event-message { border-left-color:#c9434f; }
.cp-fun-event-doom .cp-fun-event-message { border-left-color:#f3a33b; }
.cp-fun-event-resident .cp-fun-event-message { border-left-color:#79bb68; }
@keyframes cp-egg-sweep {
  from { transform:translateX(-105%); }
  to { transform:translateX(calc(100vw + 105%)); }
}
@media(max-width:600px) {
  .cp-fun-event-message { bottom:76px; gap:8px; padding:7px 10px; font-size:10px; }
  .cp-fun-event-character { font-size:24px; }
}
@media(prefers-reduced-motion:reduce) {
  .cp-fun-event-message { left:50%; bottom:50%; white-space:normal; text-align:center; animation:none; transform:translate(-50%,50%); }
}

/* Easter eggs stay hidden until discovered; the winter visitor is the seasonal click target. */
#cp-eggs-toggle { display:none!important; }
.cp-winter-visitor { position:absolute; top:18%; left:-48px; z-index:4; width:32px; height:32px; padding:0; border:1px solid var(--cp-border); border-radius:50%; color:var(--cp-text); background:var(--cp-surface-2); font:20px/1 "IBM Plex Sans",sans-serif; cursor:pointer; pointer-events:auto; box-shadow:0 2px 10px rgba(0,0,0,.28); animation:cp-winter-sweep 22s linear infinite; }
.cp-winter-visitor:hover,.cp-winter-visitor:focus-visible { outline:2px solid var(--cp-gold); outline-offset:2px; transform:scale(1.14); }
@keyframes cp-winter-sweep { from { left:-48px; } to { left:calc(100vw + 16px); } }
.cp-operator-hint { margin-top:18px!important; padding:10px 12px; border-left:2px solid var(--cp-gold); color:var(--cp-text-2)!important; background:var(--cp-surface-2); font-size:12px!important; }
.cp-nordic-map { margin:18px 0; padding:14px; border:1px solid var(--cp-border); background:var(--cp-surface-2); }
.cp-map-heading { display:flex; justify-content:space-between; gap:12px; color:var(--cp-accent); font:600 10px "JetBrains Mono",monospace; letter-spacing:.1em; }
.cp-map-heading span { color:var(--cp-gold); }
.cp-nordic-map svg { display:block; width:100%; max-height:230px; margin:8px auto 0; }
.cp-map-land { fill:var(--cp-surface-3); stroke:var(--cp-border); stroke-width:2; }
.cp-map-finland { fill:color-mix(in srgb,var(--cp-accent) 24%,var(--cp-surface-3)); stroke:var(--cp-accent); }
.cp-map-waterline,.cp-map-leader { fill:none; stroke:var(--cp-border); stroke-width:1.5; }
.cp-nordic-map svg text { fill:var(--cp-text-2); font:10px "JetBrains Mono",monospace; letter-spacing:.08em; }
.cp-nordic-map svg .cp-helsinki-label { fill:var(--cp-gold); font-weight:700; }
.cp-nordic-map svg .cp-coordinates { fill:var(--cp-text-2); font-size:8px; letter-spacing:0; }
.cp-helsinki-halo { fill:var(--cp-gold); opacity:.2; }
.cp-helsinki-pin { fill:var(--cp-gold); stroke:var(--cp-surface); stroke-width:2; }
.cp-nordic-map p { margin:4px 0 0!important; color:var(--cp-muted)!important; font-size:11px!important; }
@media(prefers-reduced-motion:reduce) { .cp-winter-visitor { animation:none; left:calc(100% - 40px); } }

/* Keep sidebar identity text readable when switching to the light palette. */
:root[data-theme="light"] #sidebar .sidebar-title,
:root[data-theme="light"] .sidebar .sidebar-header > div > div:last-child,
:root[data-theme="light"] .sidebar .sidebar-header [style*="color: white"],
:root[data-theme="light"] .sidebar .sidebar-header [style*="color:white"],
:root[data-theme="light"] .sidebar .sidebar-header [style*="-webkit-text-fill-color"],
:root[data-theme="light"] #sidebar .logo [style*="color: white"],
:root[data-theme="light"] #sidebar .logo [style*="color:white"],
:root[data-theme="light"] #sidebar [style*="color: white"],
:root[data-theme="light"] #sidebar [style*="color:white"],
:root[data-theme="light"] #sidebar .user-name,
:root[data-theme="light"] #sidebar .user-info,
:root[data-theme="light"] .user-profile .user-name,
:root[data-theme="light"] .user-profile .user-info {
  color:var(--cp-text)!important;
  -webkit-text-fill-color:var(--cp-text)!important;
}
:root[data-theme="light"] #sidebar .user-version,
:root[data-theme="light"] .user-profile .user-version {
  color:var(--cp-text-2)!important;
  -webkit-text-fill-color:var(--cp-text-2)!important;
}

/* Red destructive actions retain a clear white label and icon in either theme. */
.btn-danger,
.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active,
.btn-danger:disabled,
.btn-danger.disabled {
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
}
.btn-danger :is(span, i, svg, strong, small),
.btn-danger svg * { color:#fff!important; -webkit-text-fill-color:#fff!important; }
.btn-danger :is(svg, i),
.btn-danger svg * {
  color:#fff!important;
  stroke:#fff!important;
  fill:none;
}

/* The CA dashboard has a legacy inline white label in the sidebar header. */
:root[data-theme="light"] body[data-cp-app="ca"] .sidebar .sidebar-header > div:first-child > div[style*="color: white"],
:root[data-theme="light"] body[data-cp-app="ca"] .sidebar .sidebar-header > div:first-child > div[style*="color:white"],
:root[data-theme="light"] body[data-cp-app="ca"] .sidebar .sidebar-header .sidebar-title,
:root[data-theme="light"] body[data-cp-app="ca"] .sidebar .user-profile .user-name {
  color:var(--cp-text)!important;
  -webkit-text-fill-color:var(--cp-text)!important;
}
:root[data-theme="light"] body[data-cp-app="ca"] .sidebar .user-profile .user-info,
:root[data-theme="light"] body[data-cp-app="ca"] .sidebar .user-profile .user-info * {
  color:var(--cp-text-2)!important;
  -webkit-text-fill-color:var(--cp-text-2)!important;
}

/* Keep destructive action labels and icons readable, including disabled rows. */
:root body[data-cp-app="ca"] button.btn.btn-danger,
:root body[data-cp-app="ca"] button.btn.btn-danger:is(:hover,:focus,:active,:disabled),
:root body[data-cp-app="ca"] button.btn.btn-danger * {
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
}
:root body[data-cp-app="ca"] button.btn.btn-danger svg,
:root body[data-cp-app="ca"] button.btn.btn-danger svg * {
  stroke:#fff!important;
}

/* Final light palette overrides for legacy inline white labels and disabled actions. */
html[data-theme="light"] body[data-cp-app="ca"] .sidebar .sidebar-header,
html[data-theme="light"] body[data-cp-app="ca"] .sidebar .sidebar-header > div,
html[data-theme="light"] body[data-cp-app="ca"] .sidebar .sidebar-header > div > div,
html[data-theme="light"] body[data-cp-app="ca"] .sidebar .sidebar-header > div > div * {
  color:#0c2420!important;
  -webkit-text-fill-color:#0c2420!important;
}
html[data-theme="light"] body[data-cp-app="ca"] .sidebar .sidebar-menu,
html[data-theme="light"] body[data-cp-app="ca"] .sidebar .sidebar-menu a,
html[data-theme="light"] body[data-cp-app="ca"] .sidebar .sidebar-menu a span,
html[data-theme="light"] body[data-cp-app="ca"] .sidebar .user-profile,
html[data-theme="light"] body[data-cp-app="ca"] .sidebar .user-profile * {
  color:#0c2420!important;
  -webkit-text-fill-color:#0c2420!important;
}
html[data-theme="light"] body[data-cp-app="ca"] .header-bar .user-profile,
html[data-theme="light"] body[data-cp-app="ca"] .header-bar .user-profile .user-name,
html[data-theme="light"] body[data-cp-app="ca"] .header-bar .user-profile .user-name * {
  color:#0c2420!important;
  -webkit-text-fill-color:#0c2420!important;
}
html body[data-cp-app="ca"] button.btn.btn-danger,
html body[data-cp-app="ca"] button.btn.btn-danger:disabled,
html body[data-cp-app="ca"] button.btn.btn-danger.disabled,
html body[data-cp-app="ca"] button.btn.btn-danger > *,
html body[data-cp-app="ca"] button.btn.btn-danger:disabled > * {
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
  filter:none!important;
}
html body[data-cp-app="ca"] button.btn.btn-danger svg,
html body[data-cp-app="ca"] button.btn.btn-danger svg * {
  color:#fff!important;
  stroke:#fff!important;
  opacity:1!important;
}
