/* Solace Space: additive Crafty theme. No external fonts, scripts, or images. */
:root {
  color-scheme: dark;
  --solace-bg: #070b1c;
  --solace-panel: #10172e;
  --solace-border: #30395c;
  --solace-text: #e9edff;
  --solace-muted: #aeb9d9;
  --solace-blue: #80bcff;
  --solace-purple: #b5a0ff;
}
body, .main-panel, .content-wrapper {
  color: var(--solace-text) !important;
  background-color: var(--solace-bg) !important;
}
.content-wrapper {
  background-image:
    radial-gradient(ellipse at 90% 0%, #6233a42b, transparent 48%),
    radial-gradient(ellipse at 10% 25%, #1769b529, transparent 50%),
    radial-gradient(1px 1px at 29px 48px, #cdd8ff70 80%, transparent),
    radial-gradient(1px 1px at 121px 137px, #a5bcff50 80%, transparent) !important;
  background-size: auto, auto, 227px 211px, 293px 257px !important;
}
.navbar, .navbar .navbar-brand-wrapper, .navbar .navbar-menu-wrapper {
  background: #090e22 !important;
  color: var(--solace-text) !important;
  border-bottom: 1px solid var(--solace-border);
}
.sidebar { background: #0b1025 !important; border-right: 1px solid #252e4b; }
.sidebar .nav .nav-item .nav-link { color: #b9c4e3 !important; border-radius: 10px; }
.sidebar .nav .nav-item.active > .nav-link,
.sidebar .nav .nav-item .nav-link:hover,
.sidebar .nav .nav-item .nav-link[aria-expanded="true"] {
  background: linear-gradient(110deg, #25335c, #32254f) !important;
  color: #fff !important;
}
.sidebar .nav.sub-menu { background: #0b1025 !important; }
.card, .modal-content, .dropdown-menu, .popover {
  color: var(--solace-text) !important;
  background: var(--solace-panel) !important;
  border: 1px solid var(--solace-border) !important;
  border-radius: 14px;
  box-shadow: 0 12px 35px #02040e38;
}
.card-header, .card-footer, .modal-header, .modal-footer {
  background: #111931 !important; border-color: var(--solace-border) !important;
}
.card-title, h1, h2, h3, h4, h5, h6, label { color: var(--solace-text); }
.text-muted, .text-secondary, small, .form-text { color: var(--solace-muted) !important; }
a { color: var(--solace-blue); }
a:hover { color: #c3afff; }
.dropdown-item { color: var(--solace-text) !important; }
.dropdown-item:hover, .dropdown-item:focus { background: #293456 !important; }
.form-control, .custom-select, .form-select, select, .select2-selection {
  color: var(--solace-text) !important;
  background-color: #0a1025 !important;
  border-color: #414d74 !important;
  border-radius: 8px;
}
.form-control::placeholder { color: #94a0c0 !important; }
.form-control:focus, .custom-select:focus, .form-select:focus {
  border-color: #ae98ff !important; box-shadow: 0 0 0 3px #9876ff2b !important;
}
.input-group-text { color: #c4cfee !important; background: #1a2340 !important; border-color: #414d74 !important; }
.btn { border-radius: 8px; font-weight: 600; }
.btn-primary, .btn-info {
  background: linear-gradient(115deg, #315bb9, #7047b5) !important;
  border-color: #8e8bda !important; color: #fff !important;
}
.btn-primary:hover, .btn-info:hover { filter: brightness(1.16); }
.btn-secondary, .btn-outline-secondary { background: #202b48 !important; color: #e1e9ff !important; border-color: #4c5a80 !important; }
.btn-success { background: #126450 !important; border-color: #378875 !important; color: #fff !important; }
.btn-danger { background: #942c4d !important; border-color: #c95076 !important; color: #fff !important; }
.btn-warning { background: #e0b85b !important; color: #171225 !important; border-color: #f0cd81 !important; }
.btn:disabled, .btn.disabled { opacity: .45 !important; filter: none; }
.nav-tabs { border-color: var(--solace-border) !important; gap: 4px; }
.nav-tabs .nav-link { color: #b4c0e3 !important; border-radius: 8px 8px 0 0; }
.nav-tabs .nav-link.active, .nav-tabs .nav-link:hover {
  background: #252d4b !important; color: #d9caff !important; border-color: #4d4876 !important;
}
.table { color: var(--solace-text) !important; }
.table th, .table td { border-color: #293350 !important; }
.table thead th { color: #c5b7ff !important; background: #141b34 !important; }
.table-striped tbody tr:nth-of-type(odd) { background: #15203a70 !important; }
.table-hover tbody tr:hover { background: #263254 !important; color: #fff !important; }
.progress { background: #26304d !important; border-radius: 20px; }
.progress-bar { background-color: #8d77df; }
.footer { color: var(--solace-muted) !important; background: #090e20 !important; border-top: 1px solid #252e4b; }
/* Keep the terminal opaque. Preserve ANSI severity and Minecraft chat colors. */
.terminal, .xterm, .xterm-viewport, #terminal, #console, #server_console {
  background-color: #050816 !important;
}
pre { color: #dce5ff; background-color: #080d20; border-radius: 10px; }
code { color: #c6b3ff; }
/* Monaco/ACE and xterm retain their own token and ANSI colors. */
input[type="checkbox"], input[type="radio"] { accent-color: #ad91ff; }
:focus-visible { outline: 2px solid #bdacff; outline-offset: 3px; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: #0a1024; }
::-webkit-scrollbar-thumb { background: #435078; border: 2px solid #0a1024; border-radius: 10px; }
@media (prefers-reduced-motion: reduce) { .btn, .nav-link { transition: none !important; } }
