/* Pondus Terra control-room theme compatibility layer.
   This file loads after page-specific styles and keeps legacy Bootstrap markup
   legible in both supported themes. Customer-facing documents do not load it. */

html,
body {
    color: var(--pt-ink-2);
    background-color: var(--pt-ground);
}

body {
    font-family: Barlow, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
}

::selection {
    color: var(--pt-on-amber);
    background: var(--pt-amber);
}

:is(h1, h2, h3, h4, h5, h6, legend, strong) {
    color: var(--pt-ink);
}

:is(code, pre, kbd, samp, .font-monospace, .metric-value) {
    font-family: "JetBrains Mono", ui-monospace, Consolas, monospace;
}

a:not(.btn):not(.nav-link) {
    color: var(--pt-amber-ink);
    text-underline-offset: 0.16em;
}

a:not(.btn):not(.nav-link):hover {
    color: var(--pt-ink);
}

.card,
.modal-content,
.dropdown-menu,
.list-group-item,
.accordion-item,
.accordion-button,
.offcanvas,
.popover,
.toast,
.help-drawer,
.admin-card,
.table-panel,
.filter-panel {
    color: var(--pt-ink-2);
    background-color: var(--pt-surface);
    border-color: var(--pt-border);
    box-shadow: var(--pt-elev);
}

.card-header,
.card-footer,
.modal-header,
.modal-footer,
.accordion-button:not(.collapsed),
.dropdown-header {
    color: var(--pt-ink);
    background-color: var(--pt-surface-muted);
    border-color: var(--pt-border);
}

.accordion-button::after {
    filter: var(--pt-icon-filter, none);
}

[data-pt-theme="dark"] {
    --pt-icon-filter: invert(1) grayscale(1);
}

.dropdown-item {
    color: var(--pt-ink-2);
}

.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-item.active,
.dropdown-item:active,
.list-group-item-action:hover,
.list-group-item-action:focus {
    color: var(--pt-ink);
    background-color: var(--pt-hover);
}

.dropdown-divider,
.list-group-item,
.accordion-item {
    border-color: var(--pt-border);
}

.table {
    --bs-table-color: var(--pt-ink-2);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--pt-border);
    --bs-table-striped-color: var(--pt-ink-2);
    --bs-table-striped-bg: var(--pt-surface-muted);
    --bs-table-active-color: var(--pt-ink);
    --bs-table-active-bg: var(--pt-amber-wash);
    --bs-table-hover-color: var(--pt-ink);
    --bs-table-hover-bg: var(--pt-hover);
    color: var(--pt-ink-2);
    border-color: var(--pt-border);
}

.table > :not(caption) > * > * {
    color: inherit;
    background-color: transparent;
    border-bottom-color: var(--pt-border);
}

.table-light,
.table > .table-light {
    --bs-table-color: var(--pt-ink-2);
    --bs-table-bg: var(--pt-surface-muted);
    --bs-table-border-color: var(--pt-border-strong);
}

.form-control,
.form-select,
.input-group-text,
.form-control-plaintext,
.form-range,
.form-check-input {
    color: var(--pt-ink-2);
    background-color: var(--pt-field);
    border-color: var(--pt-border-strong);
}

.form-control::placeholder,
.form-select:invalid {
    color: var(--pt-ink-4);
    opacity: 1;
}

.form-control:disabled,
.form-select:disabled,
.form-control[readonly] {
    color: var(--pt-ink-4);
    background-color: var(--pt-surface-muted);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
    color: var(--pt-ink);
    background-color: var(--pt-field);
    border-color: var(--pt-amber-ink);
    box-shadow: 0 0 0 0.2rem var(--pt-amber-halo);
}

.form-check-input:checked {
    background-color: var(--pt-amber);
    border-color: var(--pt-amber);
}

.form-text,
.text-body-secondary,
.text-secondary,
.text-muted {
    color: var(--pt-ink-3) !important;
}

.text-primary,
.text-warning {
    color: var(--pt-amber-ink) !important;
}

.text-success,
.text-info {
    color: var(--pt-teal) !important;
}

.text-danger {
    color: var(--pt-red) !important;
}

.btn-primary,
.btn-warning,
.bg-primary,
.bg-warning,
.badge.bg-primary,
.badge.bg-warning,
.text-bg-primary,
.text-bg-warning {
    color: var(--pt-on-amber) !important;
    background-color: var(--pt-amber) !important;
    border-color: var(--pt-amber) !important;
}

.btn-primary:hover,
.btn-primary:focus-visible,
.btn-warning:hover,
.btn-warning:focus-visible {
    color: var(--pt-on-amber) !important;
    background-color: #ffc15c !important;
    border-color: #ffc15c !important;
}

.btn-outline-primary {
    color: var(--pt-amber-ink);
    border-color: var(--pt-amber-line);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus-visible {
    color: var(--pt-on-amber);
    background-color: var(--pt-amber);
    border-color: var(--pt-amber);
}

.btn-outline-secondary,
.btn-light,
.btn-outline-dark {
    color: var(--pt-ink-2);
    background-color: transparent;
    border-color: var(--pt-border-strong);
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus-visible,
.btn-light:hover,
.btn-light:focus-visible,
.btn-outline-dark:hover,
.btn-outline-dark:focus-visible {
    color: var(--pt-ink);
    background-color: var(--pt-hover);
    border-color: var(--pt-amber-line);
}

.btn-dark {
    color: var(--pt-ink-2);
    background-color: var(--pt-panel-2);
    border-color: var(--pt-line-2);
}

.btn-success,
.bg-success,
.badge.bg-success,
.text-bg-success {
    background-color: var(--pt-teal) !important;
    border-color: var(--pt-teal) !important;
}

[data-pt-theme] :is(.btn-success, .bg-success, .badge.bg-success, .text-bg-success) {
    color: var(--pt-on-status) !important;
}

.btn-danger,
.bg-danger,
.badge.bg-danger,
.text-bg-danger {
    background-color: var(--pt-red) !important;
    border-color: var(--pt-red) !important;
}

[data-pt-theme] :is(.btn-danger, .bg-danger, .badge.bg-danger, .text-bg-danger) {
    color: var(--pt-on-status) !important;
}

.btn-outline-danger {
    color: var(--pt-red);
    border-color: var(--pt-red);
}

.btn-outline-danger:hover,
.btn-outline-danger:focus-visible {
    color: var(--pt-on-status);
    background-color: var(--pt-red);
    border-color: var(--pt-red);
}

.bg-info,
.badge.bg-info,
.text-bg-info {
    color: var(--pt-on-status) !important;
    background-color: var(--pt-teal) !important;
    border-color: var(--pt-teal) !important;
}

.alert {
    color: var(--pt-ink-2);
    background-color: var(--pt-surface-muted);
    border-color: var(--pt-border-strong);
}

.alert-warning {
    color: var(--pt-amber-ink);
    background-color: var(--pt-amber-wash);
    border-color: var(--pt-amber-line);
}

.alert-success,
.alert-info {
    color: var(--pt-teal);
    background-color: var(--pt-surface);
    border-color: var(--pt-teal);
}

.alert-danger {
    color: var(--pt-red);
    background-color: var(--pt-surface);
    border-color: var(--pt-red);
}

.nav-tabs {
    border-bottom-color: var(--pt-border);
}

.nav-tabs .nav-link {
    color: var(--pt-ink-3);
    border-color: transparent;
}

.nav-tabs .nav-link:hover,
.nav-tabs .nav-link:focus {
    color: var(--pt-ink);
    background-color: var(--pt-hover);
    border-color: var(--pt-border);
}

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

.page-link {
    color: var(--pt-amber-ink);
    background-color: var(--pt-surface);
    border-color: var(--pt-border);
}

.page-link:hover,
.page-link:focus,
.active > .page-link,
.page-link.active {
    color: var(--pt-on-amber);
    background-color: var(--pt-amber);
    border-color: var(--pt-amber);
}

.progress {
    background-color: var(--pt-surface-muted);
}

[data-pt-theme="dark"] .bg-light,
[data-pt-theme="dark"] .bg-white {
    color: var(--pt-ink-2) !important;
    background-color: var(--pt-surface-muted) !important;
}

[data-pt-theme="dark"] .text-dark,
[data-pt-theme="dark"] .text-body {
    color: var(--pt-ink-2) !important;
}

[data-pt-theme] :is(.bg-warning.text-dark, .badge.bg-warning.text-dark, .text-bg-warning.text-dark) {
    color: var(--pt-on-amber) !important;
}

[data-pt-theme] :is(
    .bg-info.text-dark,
    .badge.bg-info.text-dark,
    .text-bg-info.text-dark,
    .bg-success.text-dark,
    .badge.bg-success.text-dark,
    .text-bg-success.text-dark,
    .bg-danger.text-dark,
    .badge.bg-danger.text-dark,
    .text-bg-danger.text-dark
) {
    color: var(--pt-on-status) !important;
}

[data-pt-theme="dark"] .text-muted {
    color: var(--pt-ink-3) !important;
}

[data-pt-theme="dark"] :is(.border, .border-top, .border-end, .border-bottom, .border-start) {
    border-color: var(--pt-border) !important;
}

[data-pt-theme="dark"] .btn-close {
    filter: invert(1) grayscale(1);
}

[data-pt-theme="dark"] .shadow,
[data-pt-theme="dark"] .shadow-sm,
[data-pt-theme="dark"] .shadow-lg {
    box-shadow: none !important;
}
