/* Campaign Bank — accessible contrast in both themes, shared across portals */
:root{--cb-focus:#f5b841}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--cb-focus);outline-offset:3px}
body.dark{color-scheme:dark;--bg:#0b1424;--card:#17263c;--ink:#eff5ff;--muted:#b8c9e1;--line:#354963;--stroke:#354963;--soft:#213655;--primary:#c0d3ff;--blue:#acc6ff;--green:#72e5c5;--orange:#f2c17b;--navy:#090f1d;--shadow:0 14px 40px #0004}
body.dark a:not(.btn):not(.branch-choice):not(.gate-back):not(.portal-back){color:#bcd0ff}
body.dark .directory-head span,body.dark .branch-choice__copy span,body.dark .footer,body.dark .gate-description,body.dark .gate-notice{color:var(--muted)}
body.dark .branch-choice{border-color:#405773;background:var(--card);color:var(--ink)}
body.dark .branch-choice__icon{background:#2a3c65;color:#dce5ff}
body.dark .branch-choice__arrow{color:#bdcbff}
body.dark .entry-gate{background:var(--card);border-color:#425773}
body.dark .portal-back{color:#d2dcff!important;background:#203653;border-color:#415777}
body.dark .gate-branch{color:#f3f7ff}
body.dark .gate-campaign{color:#c9d8f2}
body.dark .gate-action{background:#526ae0!important;border-color:#7185f5!important;color:#fff!important}
body.dark .note{color:#e2ecff}
body.dark .stat,body.dark .card,body.dark .panel{background:var(--card);border-color:var(--line)}
body.dark .sample{background:#0f1c2e;color:var(--ink)}
body.dark .pill,body.dark .meta span{color:#fff}
body.dark .platform,body.dark .chip{background:#263b5b;color:#cedcff}
body.dark .tag{color:#b1f5d6;background:#214c42}
body.dark .btn.ghost,body.dark button.ghost{background:#243b59;color:#d7e7ff}
body.dark .btn:not(.main),body.dark button:not(.main):not(.selected){background:var(--card);color:var(--ink);border-color:var(--line)}
body.dark .filters button.selected{background:#4e64c7;color:#fff;border-color:#7284dd}
body.dark .evidence-grid input,body.dark .evidence-grid select{background:#101d2e;color:#f1f6ff;border-color:#47617e}
body.dark .warning{background:#40331f;color:#f8e0a6;border-color:#746040}
body.dark ::placeholder{color:#abb9cc;opacity:1}
body.dark .auth-card,body.dark .dialog-card{background:var(--card);color:var(--ink)}
body.dark label{color:#dce7fc}
body.dark input:not([type=checkbox]),body.dark textarea,body.dark select{background:#0d1a2d!important;border-color:#516783!important;color:#f2f7ff!important}
body.dark .outline,body.dark .dialog-actions button{background:#263850;color:#ebf2ff;border-color:#516783}
body.dark .text-button,body.dark .plain-link{color:#c4d6ff}
body.dark .primary{background:#5269d7;color:#fff;border-color:#788cf4}
body.dark .notice{background:#24395b;color:#d7e5ff;border-color:#536b94}
body.dark .foot-note{color:#c3cfde}
body.dark .user-tag,body.dark .freshness{color:#d6e6ff;background:#203756}
body.dark .metric small{color:#acbfd8}
body.dark .table-wrap th{background:#1f334e;color:#dbe8fb}
body.dark .table-wrap td,body.dark .table-wrap th{border-color:#3d506a}
body.dark .record{background:#1b2c44;color:var(--ink)}
body.dark .record .actions button{background:#263f68;color:#e0ebff;border-color:#526b9a}
body.dark .record .actions button:hover{background:#304e7d}
body.dark .badge{background:#2a3f5c;color:#cfddf4}
body.dark .badge.active{background:#174d45;color:#a7f8d9}
body.dark .badge.scheduled{background:#514023;color:#ffe2a7}
body.dark .badge.paused{background:#573a31;color:#ffc5a7}
body.dark .badge.ended{background:#314158;color:#c8d1e1}
body.dark .chip{background:#213a59;color:#dbe9ff;border-color:#486580}
body.dark .icon-chip.blue{background:#203f6a;color:#bdd5ff}
body.dark .icon-chip.green{background:#174e41;color:#a4f5d9}
body.dark .icon-chip.orange{background:#544222;color:#ffe0a3}
body.dark .icon-chip.purple{background:#35316b;color:#d7cfff}
body.dark .permission-row{background:#1a2c46;border-color:#3e5676;color:#e9f2ff}
body.dark .permission-row:has(input:checked){background:#233c63;border-color:#718adb}
body.dark .permission-row strong,body.dark .permission-row small{color:#d8e5fa}
body.dark .retention-switch{background:#1a2c46;border-color:#486180}
body.dark .retention-switch small{color:#c5d3e8}
body.dark .campaign-editor{background:#10223c;border-color:#415977}
body.dark .campaign-editor label{color:#e2ecff}
body.dark #archiveCampaigns .record .actions .action-danger,
body.dark .action-danger{background:#542e32!important;color:#ffd3c8!important;border-color:#934950!important}
body.dark #archiveCampaigns .record .actions .primary{background:#5269d7!important;color:#fff!important;border-color:#788cf4!important}
body.dark .section-intro .muted,body.dark .record .minor{color:var(--muted)}
body.dark .header h1,body.dark .section-intro h2,body.dark .page h2{color:var(--ink)}
body.dark .auth-shell{background:radial-gradient(circle at 15% 13%,#122948,transparent 32%),#080e1a}
body.dark .sidebar{background:#081224}
.theme-switch{border:1px solid var(--stroke,#dbe5f0);color:var(--ink);background:var(--card);padding:8px 13px;border-radius:11px;font:700 12px/1.6 inherit;min-height:41px;cursor:pointer}
.theme-switch:hover{filter:brightness(.94)}
.auth-card .theme-switch{margin:9px 0 14px}
body.dark .theme-switch{color:#e4efff;background:#243b5a;border-color:#607798}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:0.01ms!important}}

/* Final audited dark canvas: portal landing must never keep its light gradient */
body.dark{background:linear-gradient(180deg,#0b1528 0,#101e33 460px,#0a1425 100%)!important}
body.dark .top .brand,body.dark .top .brand .tiny{color:#e3edfd!important}
body.dark .top .brand .tiny{color:#b8cae4!important}
body.dark #theme{background:#203550!important;color:#f0f6ff!important;border-color:#526b8d!important}
body.dark .directory-head h2,body.dark .directory .branch-choice__copy strong{color:#eff5ff}
body.dark .loader,body.dark .empty{color:#c3d2e9}
body.dark .footer{color:#b9cbe6}
body.dark .gate-description,body.dark .gate-notice{color:#c0d0e8}
