/* EO Planet: planet-dark. Loaded after style.css (layouts/application.html.erb).
   Planet is dark only. Role tokens and Bootstrap 4 rebased to dark. Tokens only. */

:root {
  color-scheme: dark;
  --eo-bg: var(--eo-black);
  --eo-surface: var(--eo-gray-6-dark);
  --eo-surface-2: var(--eo-gray-5-dark);
  --eo-border: var(--eo-gray-4-dark);
  --eo-text: var(--eo-halo);
  --eo-text-2: var(--eo-gray-2-light);
  --eo-text-3: var(--eo-gray-1-dark);
  --eo-accent-ink: var(--eo-neon);
}

/* Base ground (formerly the per-page dark style block in the layout) */
html {
  background-color: var(--eo-bg);
}

body,
body .main-container {
  background-color: var(--eo-surface) !important;
  color: var(--eo-text-2) !important;
}

hr {
  border-color: var(--eo-border);
}

.text-muted,
.text-black-50 {
  color: var(--eo-text-3) !important;
}

/* Utilities */
.bg-light,
.bg-white,
.bg-secondary {
  background-color: var(--eo-surface-2) !important;
}

a.bg-light:hover,
a.bg-light:focus,
button.bg-light:hover,
button.bg-light:focus {
  background-color: var(--eo-border) !important;
}

.text-dark,
.text-body {
  color: var(--eo-text) !important;
}

a.text-dark:hover,
a.text-dark:focus {
  color: var(--eo-neon) !important;
}

.text-secondary {
  color: var(--eo-text-3) !important;
}

.border,
.border-top,
.border-right,
.border-bottom,
.border-left {
  border-color: var(--eo-border) !important;
}

.border-light,
.border-white,
.border-secondary {
  border-color: var(--eo-border) !important;
}

/* Navbar light variant */
.navbar-light .navbar-brand,
.navbar-light .navbar-nav .nav-link,
.navbar-light .navbar-text,
.navbar-light .navbar-text a {
  color: var(--eo-text);
}

.navbar-light .navbar-brand:hover,
.navbar-light .navbar-brand:focus,
.navbar-light .navbar-nav .show > .nav-link,
.navbar-light .navbar-nav .active > .nav-link,
.navbar-light .navbar-nav .nav-link.show,
.navbar-light .navbar-nav .nav-link.active,
.navbar-light .navbar-text a:hover,
.navbar-light .navbar-text a:focus {
  color: var(--eo-neon);
}

.navbar-light .navbar-nav .nav-link.disabled {
  color: var(--eo-text-3);
}

.navbar-light .navbar-toggler {
  color: var(--eo-text);
  border-color: var(--eo-border);
}

/* Forms */
.form-control,
.custom-select,
.custom-file-label,
.input-group-text,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple,
.select2-dropdown {
  color: var(--eo-text);
  background-color: var(--eo-surface-2);
  border-color: var(--eo-border);
  border-radius: var(--radius-m);
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--eo-text);
}

.select2-container--default .select2-results__option[aria-selected="true"] {
  background-color: var(--eo-border);
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: var(--eo-neon);
  color: var(--eo-black);
}

.form-control:focus,
.custom-select:focus,
.custom-file-input:focus ~ .custom-file-label {
  color: var(--eo-text);
  background-color: var(--eo-surface-2);
  border-color: var(--eo-neon);
  box-shadow: none;
}

.form-control::placeholder,
.select2-container--default .select2-selection__placeholder {
  color: var(--eo-text-3);
  opacity: 1;
}

.form-control:-moz-focusring {
  text-shadow: 0 0 0 var(--eo-text);
}

.form-control:disabled,
.form-control[readonly],
.custom-select:disabled,
.custom-file-input:disabled ~ .custom-file-label,
.input-group-text {
  color: var(--eo-text-3);
  background-color: var(--eo-surface);
  opacity: 1;
}

.input-group-text {
  color: var(--eo-text-2);
}

.form-control-plaintext {
  color: var(--eo-text);
}

.custom-select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23FCFBF5' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e");
}

select.form-control option,
.custom-select option {
  color: var(--eo-text);
  background-color: var(--eo-surface-2);
}

.custom-control-label::before {
  background-color: var(--eo-surface-2);
  border-color: var(--eo-gray-2-dark);
}

.custom-control-input:checked ~ .custom-control-label::before {
  color: var(--eo-black);
  background-color: var(--eo-neon);
  border-color: var(--eo-neon);
}

.custom-control-input:focus ~ .custom-control-label::before {
  box-shadow: none;
}

.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
  border-color: var(--eo-neon);
}

.custom-control-input:not(:disabled):active ~ .custom-control-label::before {
  color: var(--eo-black);
  background-color: var(--eo-neon);
  border-color: var(--eo-neon);
}

.custom-control-input:disabled ~ .custom-control-label,
.custom-control-input[disabled] ~ .custom-control-label {
  color: var(--eo-text-3);
}

.custom-control-input:disabled ~ .custom-control-label::before,
.custom-control-input[disabled] ~ .custom-control-label::before {
  background-color: var(--eo-surface);
}

.custom-switch .custom-control-label::after {
  background-color: var(--eo-gray-1-dark);
}

.custom-switch .custom-control-input:checked ~ .custom-control-label::after {
  background-color: var(--eo-black);
}

.custom-file-label::after {
  color: var(--eo-text);
  background-color: var(--eo-border);
  border-left-color: var(--eo-border);
}

.custom-range::-webkit-slider-runnable-track {
  background-color: var(--eo-border);
}

/* Modal */
.modal-content {
  color: var(--eo-text-2);
  background-color: var(--eo-surface);
  border-color: var(--eo-border);
}

.modal-header,
.modal-footer {
  border-color: var(--eo-border);
}

.modal-title {
  color: var(--eo-text);
}

.modal-backdrop {
  background-color: var(--eo-black);
}

/* Dropdown */
.dropdown-menu {
  color: var(--eo-text-2);
  background-color: var(--eo-surface-2);
  border-color: var(--eo-border);
}

.dropdown-divider {
  border-top-color: var(--eo-border);
}

.dropdown-item {
  color: var(--eo-text);
}

.dropdown-item:hover,
.dropdown-item:focus {
  color: var(--eo-text);
  background-color: var(--eo-border);
}

.dropdown-item.active,
.dropdown-item:active {
  color: var(--eo-black);
  background-color: var(--eo-neon);
}

.dropdown-item.disabled,
.dropdown-item:disabled,
.dropdown-header,
.dropdown-item-text {
  color: var(--eo-text-3);
}

/* Card */
.card {
  color: var(--eo-text-2);
  background-color: var(--eo-surface-2);
  border-color: var(--eo-border);
}

.card-header,
.card-footer {
  background-color: var(--eo-surface);
  border-color: var(--eo-border);
}

/* Table */
.table {
  color: var(--eo-text-2);
}

.table th,
.table td,
.table thead th,
.table tbody + tbody,
.table-bordered,
.table-bordered th,
.table-bordered td {
  border-color: var(--eo-border);
}

.table-striped tbody tr:nth-of-type(odd) {
  background-color: var(--eo-surface-2);
}

.table-hover tbody tr:hover,
.table-active,
.table-active > th,
.table-active > td {
  color: var(--eo-text);
  background-color: var(--eo-border);
}

.table .thead-light th,
.table-light,
.table-light > th,
.table-light > td {
  color: var(--eo-text);
  background-color: var(--eo-surface-2);
  border-color: var(--eo-border);
}

.table .thead-dark th,
.table-dark,
.table-dark > th,
.table-dark > td {
  color: var(--eo-text);
  background-color: var(--eo-black);
  border-color: var(--eo-border);
}

/* Pagination */
.page-link {
  color: var(--eo-text);
  background-color: var(--eo-surface-2);
  border-color: var(--eo-border);
}

.page-link:hover {
  color: var(--eo-text);
  background-color: var(--eo-border);
  border-color: var(--eo-border);
}

.page-link:focus {
  box-shadow: none;
}

.page-item.active .page-link {
  color: var(--eo-black);
  background-color: var(--eo-neon);
  border-color: var(--eo-neon);
}

.page-item.disabled .page-link {
  color: var(--eo-text-3);
  background-color: var(--eo-surface);
  border-color: var(--eo-border);
}

/* List group */
.list-group-item {
  color: var(--eo-text-2);
  background-color: var(--eo-surface-2);
  border-color: var(--eo-border);
}

.list-group-item-action {
  color: var(--eo-text-2);
}

.list-group-item-action:hover,
.list-group-item-action:focus {
  color: var(--eo-text);
  background-color: var(--eo-border);
}

.list-group-item.active {
  color: var(--eo-black);
  background-color: var(--eo-neon);
  border-color: var(--eo-neon);
}

.list-group-item.disabled,
.list-group-item:disabled {
  color: var(--eo-text-3);
  background-color: var(--eo-surface);
}

/* Tabs */
.nav-tabs {
  border-bottom-color: var(--eo-border);
}

.nav-tabs .nav-link {
  color: var(--eo-text-2);
}

.nav-tabs .nav-link:hover,
.nav-tabs .nav-link:focus {
  color: var(--eo-text);
  border-color: var(--eo-border);
}

.nav-tabs .nav-link.disabled {
  color: var(--eo-text-3);
}

.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
  color: var(--eo-text);
  background-color: var(--eo-surface);
  border-color: var(--eo-border) var(--eo-border) var(--eo-surface);
}

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  color: var(--eo-black);
  background-color: var(--eo-neon);
}

/* Badges */
.badge-light,
.badge-secondary {
  color: var(--eo-text);
  background-color: var(--eo-border);
}

a.badge-light:hover,
a.badge-light:focus,
a.badge-secondary:hover,
a.badge-secondary:focus {
  color: var(--eo-text);
  background-color: var(--eo-gray-3-dark);
}

.badge-dark {
  color: var(--eo-text);
  background-color: var(--eo-black);
}

/* Alerts: semantic hue kept, dark-safe */
.alert {
  color: var(--eo-text-2);
  background-color: var(--eo-surface-2);
  border-color: var(--eo-border);
}

.alert-primary,
.alert-info {
  color: var(--eo-blue);
  background-color: var(--eo-surface-2);
  border-color: var(--eo-blue);
}

.alert-success {
  color: var(--eo-green);
  background-color: var(--eo-surface-2);
  border-color: var(--eo-green);
}

.alert-warning {
  color: var(--eo-neon);
  background-color: var(--eo-surface-2);
  border-color: var(--eo-neon);
}

.alert-danger {
  color: rgb(255, 128, 128);
  background-color: var(--eo-surface-2);
  border-color: rgb(255, 128, 128);
}

.alert-secondary,
.alert-light,
.alert-dark {
  color: var(--eo-text-2);
  background-color: var(--eo-surface-2);
  border-color: var(--eo-border);
}

.alert-link {
  color: inherit;
  text-decoration: underline;
}

/* Close */
.close {
  color: var(--eo-text);
  text-shadow: none;
  opacity: 0.7;
}

.close:hover,
.close:focus {
  color: var(--eo-text);
  opacity: 1;
}

/* Breadcrumb */
.breadcrumb {
  background-color: var(--eo-surface-2);
}

.breadcrumb-item + .breadcrumb-item::before,
.breadcrumb-item.active {
  color: var(--eo-text-3);
}

/* Progress */
.progress {
  background-color: var(--eo-border);
}

.progress-bar {
  color: var(--eo-black);
  background-color: var(--eo-neon);
}

/* Tooltip, popover */
.tooltip-inner {
  color: var(--eo-black);
  background-color: var(--eo-halo);
}

.bs-tooltip-top .arrow::before,
.bs-tooltip-auto[x-placement^="top"] .arrow::before {
  border-top-color: var(--eo-halo);
}

.bs-tooltip-bottom .arrow::before,
.bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
  border-bottom-color: var(--eo-halo);
}

.bs-tooltip-left .arrow::before,
.bs-tooltip-auto[x-placement^="left"] .arrow::before {
  border-left-color: var(--eo-halo);
}

.bs-tooltip-right .arrow::before,
.bs-tooltip-auto[x-placement^="right"] .arrow::before {
  border-right-color: var(--eo-halo);
}

.popover {
  background-color: var(--eo-surface-2);
  border-color: var(--eo-border);
}

.popover-header {
  color: var(--eo-text);
  background-color: var(--eo-surface);
  border-bottom-color: var(--eo-border);
}

.popover-body {
  color: var(--eo-text-2);
}

.bs-popover-top > .arrow::after,
.bs-popover-auto[x-placement^="top"] > .arrow::after {
  border-top-color: var(--eo-surface-2);
}

.bs-popover-bottom > .arrow::after,
.bs-popover-auto[x-placement^="bottom"] > .arrow::after {
  border-bottom-color: var(--eo-surface-2);
}

.bs-popover-left > .arrow::after,
.bs-popover-auto[x-placement^="left"] > .arrow::after {
  border-left-color: var(--eo-surface-2);
}

.bs-popover-right > .arrow::after,
.bs-popover-auto[x-placement^="right"] > .arrow::after {
  border-right-color: var(--eo-surface-2);
}

/* Buttons */
.btn-light,
.btn-secondary {
  color: var(--eo-text);
  background-color: var(--eo-border);
  border-color: var(--eo-border);
}

.btn-light:hover,
.btn-light:focus,
.btn-light:not(:disabled):not(.disabled):active,
.btn-light:not(:disabled):not(.disabled).active,
.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:not(:disabled):not(.disabled):active,
.btn-secondary:not(:disabled):not(.disabled).active,
.show > .btn-light.dropdown-toggle,
.show > .btn-secondary.dropdown-toggle {
  color: var(--eo-text);
  background-color: var(--eo-gray-3-dark);
  border-color: var(--eo-gray-3-dark);
  box-shadow: none;
}

.btn-light.disabled,
.btn-light:disabled,
.btn-secondary.disabled,
.btn-secondary:disabled {
  color: var(--eo-text-3);
  background-color: var(--eo-surface-2);
  border-color: var(--eo-border);
}

.btn-outline-dark,
.btn-outline-secondary,
.btn-outline-light {
  color: var(--eo-text);
  border-color: var(--eo-gray-2-dark);
  background-color: transparent;
}

.btn-outline-dark:hover,
.btn-outline-dark:focus,
.btn-outline-dark:not(:disabled):not(.disabled):active,
.btn-outline-dark:not(:disabled):not(.disabled).active,
.btn-outline-secondary:not(:disabled):not(.disabled):active,
.btn-outline-secondary:not(:disabled):not(.disabled).active,
.show > .btn-outline-dark.dropdown-toggle {
  color: var(--eo-black);
  background-color: var(--eo-neon);
  border-color: var(--eo-neon);
  box-shadow: none;
}

.btn-outline-dark.disabled,
.btn-outline-dark:disabled {
  color: var(--eo-text-3);
  border-color: var(--eo-border);
}

.btn-link {
  color: var(--eo-text);
}

/* Scrollbars */
* {
  scrollbar-color: var(--eo-gray-2-dark) var(--eo-surface);
}

/* style.css:13197 sets a:hover to black, unreadable on the dark ground */
a:hover {
  color: var(--eo-text);
}

/* .shadow-box (style.css) was a white raised card */
html body .shadow-box {
  background-color: var(--eo-surface-2);
  border-color: var(--eo-border);
  box-shadow: none;
  color: var(--eo-text);
}
