/* KCA dark PKI-console theme bridged onto Bootstrap 5.3. */ :root, [data-bs-theme="dark"] { --ink: #0f2430; --ink-dark: #0a1720; --panel: #132c39; --panel-light: #1b3b4a; --line: #2b5668; --text: #e8f2f4; --muted: #9db8c2; --accent: #5eead4; --accent-bright: #8ff5e4; --warning: #fbbf24; --danger: #f87171; --positive: #4ade80; --bs-body-bg: var(--ink-dark); --bs-body-color: var(--text); --bs-body-color-rgb: 232, 242, 244; --bs-body-bg-rgb: 10, 23, 32; --bs-emphasis-color: #fff; --bs-secondary-color: var(--muted); --bs-secondary-bg: var(--panel); --bs-tertiary-bg: var(--panel); --bs-border-color: var(--line); --bs-border-color-translucent: rgba(232, 242, 244, 0.12); --bs-link-color: var(--accent); --bs-link-color-rgb: 94, 234, 212; --bs-link-hover-color: var(--accent-bright); --bs-link-hover-color-rgb: 143, 245, 228; --bs-primary: var(--accent); --bs-primary-rgb: 94, 234, 212; --bs-warning: var(--warning); --bs-warning-rgb: 251, 191, 36; --bs-danger: var(--danger); } body { min-height: 100vh; background-color: var(--ink-dark); background-image: radial-gradient(ellipse at 50% 0%, rgba(94, 234, 212, 0.08), transparent 55%), radial-gradient(ellipse at 50% 100%, rgba(0, 0, 0, 0.45), transparent 65%); background-repeat: no-repeat; background-attachment: fixed; color: var(--text); } .navbar { --bs-navbar-padding-y: 0.7rem; --bs-navbar-color: var(--muted); --bs-navbar-hover-color: var(--text); --bs-navbar-active-color: var(--accent); --bs-navbar-brand-color: var(--text); --bs-navbar-brand-hover-color: var(--accent); border-bottom: 1px solid rgba(0, 0, 0, 0.35); background: rgb(7, 18, 25); } .navbar .navbar-brand { font-weight: 700; letter-spacing: 0.04em; } .brand-glyph { color: var(--accent); } .card { --bs-card-bg: rgba(19, 44, 57, 0.78); border-color: var(--line); box-shadow: 0 8px 30px rgba(0, 0, 0, 0.18); } .card-header { background: rgba(0, 0, 0, 0.16); border-bottom-color: var(--line); font-weight: 600; } .table { --bs-table-bg: transparent; --bs-table-color: var(--text); --bs-table-border-color: var(--line); } .table > :not(caption) > * > * { background-color: transparent; } .btn-primary { --bs-btn-bg: var(--accent); --bs-btn-border-color: var(--accent); --bs-btn-color: #06221f; --bs-btn-hover-bg: var(--accent-bright); --bs-btn-hover-border-color: var(--accent-bright); --bs-btn-hover-color: #06221f; --bs-btn-active-bg: var(--accent-bright); } .btn-warning { --bs-btn-bg: var(--warning); --bs-btn-border-color: var(--warning); --bs-btn-color: #251a00; } .btn-outline-light { --bs-btn-color: var(--text); --bs-btn-border-color: var(--line); --bs-btn-hover-bg: var(--panel-light); --bs-btn-hover-border-color: var(--accent); --bs-btn-hover-color: var(--text); } .form-control, .form-select { background-color: rgba(7, 18, 25, 0.65); border-color: var(--line); color: var(--text); } .form-control:focus, .form-select:focus { border-color: var(--accent); box-shadow: 0 0 0 0.2rem rgba(94, 234, 212, 0.16); background-color: rgba(7, 18, 25, 0.8); color: var(--text); } .form-control::placeholder { color: #6f8d98; } .form-check-input:checked { background-color: var(--accent); border-color: var(--accent); } .nav-tabs { --bs-nav-tabs-border-color: var(--line); --bs-nav-tabs-link-active-bg: rgba(19, 44, 57, 0.9); --bs-nav-tabs-link-active-color: var(--accent); --bs-nav-tabs-link-active-border-color: var(--line) var(--line) transparent; } .nav-tabs .nav-link { color: var(--muted); } .nav-tabs .nav-link:hover { color: var(--text); } .text-secondary, .muted { color: var(--muted) !important; } code, pre, .mono { font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace; font-size: 0.875em; } pre.pem { background: rgba(0, 0, 0, 0.3); border: 1px solid var(--line); border-radius: 8px; padding: 0.75rem; color: #c9f7ee; white-space: pre-wrap; word-break: break-all; max-height: 22rem; overflow: auto; } .badge-soft { background: var(--panel-light); color: var(--text); border: 1px solid var(--line); font-weight: 500; } .badge-critical { background: rgba(248, 113, 113, 0.18); color: #fecaca; border: 1px solid rgba(248, 113, 113, 0.45); } .badge-ca { background: rgba(94, 234, 212, 0.16); color: var(--accent); border: 1px solid rgba(94, 234, 212, 0.4); } .badge-warn { background: rgba(251, 191, 36, 0.16); color: #fde68a; border: 1px solid rgba(251, 191, 36, 0.4); } .badge-danger { background: rgba(248, 113, 113, 0.16); color: #fecaca; border: 1px solid rgba(248, 113, 113, 0.4); } .list-group { --bs-list-group-bg: transparent; --bs-list-group-border-color: var(--line); --bs-list-group-color: var(--text); --bs-list-group-hover-bg: var(--panel-light); } .modal-content { background: var(--panel); border-color: var(--line); } .modal-header, .modal-footer { border-color: var(--line); } .alert { border-color: var(--line); } .alert-danger { background: rgba(248, 113, 113, 0.12); color: #fecaca; } .alert-success { background: rgba(74, 222, 128, 0.12); color: #bbf7d0; } .alert-info { background: rgba(94, 234, 212, 0.1); color: #c9f7ee; }