@import url("colors.297d84483f5c.css");

:root {
    --bg-body: #000;
    --text-body: #fff;
    --bg-surface: #fff;
    --text-surface: #000;
    --text-muted: #999;

    --link: #333;
    --link-hover: #0056b3;
    --link-muted: #888;

    --border-soft: #eee;
    --border-hard: #DDD;
    --btn-border: var(--bootstrap-btn-light-border-color);

    --navbar-bg: transparent;
    --navbar-toggler-border: #333;
    --nav-pill-active-bg: #5C5C5C;
    --nav-pill-active-text: #eee;

    --footer-link: #ccc;
    --footer-link-subtle: #555;
    --footer-link-hover: #fff;

    --table-stripe: #f9f9f9;
    --highlight-field: #ffffc8;
    --subtle-overlay-bg: #818b981f;

    --bg-image: none;

    --main-radius-top: 0.5rem;

    --strong-shadow:
        0 0 4px rgba(0, 0, 0, 0.95),
        0 0 8px rgba(0, 0, 0, 0.8),
        0 1px 2px rgba(0, 0, 0, 1);
    --footer-shadow: 0 1px 2px rgba(0, 0, 0, 0.7);
    --navbar-shadow: none;
}

@media (min-width: 768px) {
    body:is(.theme-sunset, .theme-vaporwave) {
        --main-radius-top: 0;
    }
}

@media (min-width: 992px) {
    body:is(.theme-sunset, .theme-vaporwave) {
        --main-radius-top: 0.5rem;
    }
}

body {
    background-image: var(--bg-image);
    background-size: cover;
    background-position: center center;
    background-attachment: fixed;

    --bg-overlay: var(--bg-surface);

    --bs-body-color: var(--text-surface);
    --bs-body-bg: var(--bg-surface);
    --bs-emphasis-color: var(--text-surface);
    --bs-border-color: var(--border-hard);
    --bs-secondary-bg: var(--border-soft);
    --bs-secondary-color: var(--text-muted);
    --bs-tertiary-bg: var(--border-soft);

    --table-row-bg: var(--bg-surface);
}

.modal {
    --bs-modal-bg: var(--bg-overlay);
}

/* Dark */
body.theme-dark {
    --bg-surface: #212529;
    --text-surface: #dee2e6;
    --text-muted: #adb5bd;

    --link: #fff;
    --link-hover: #fff;
    --link-muted: #6c757d;

    --border-soft: #2b3035;
    --border-hard: #495057;
    --btn-border: #495057;

    --table-stripe: #2b3035;
}

/* Matrix */
body.theme-matrix {
    --text-body: #00ff66;
    --bg-surface: #001a00;
    --text-surface: #00ff66;
    --text-muted: #00cc44;

    --link: #00ff66;
    --link-muted: #006622;

    --danger: #e0182a;
    --danger-hover: #bc1322;
    --success: #00ff66;

    --border-soft: #003300;
    --border-hard: #006600;
    --btn-border: #00aa44;

    --navbar-toggler-border: #00aa44;
    --nav-pill-active-bg: #003300;
    --nav-pill-active-text: #00ff66;

    --footer-link: #00aa44;
    --footer-link-subtle: #005522;

    --table-stripe: #002a00;
}

/* Sunset */
body.theme-sunset {
    --bg-body: #1a0a05;
    --text-body: #fff8e7;
    --bg-surface: rgba(20, 8, 4, 0.95);
    --table-row-bg: #140804;
    --text-surface: #fff8e7;
    --text-muted: #ffd699;

    --link: #ffcc66;
    --link-muted: #b89060;

    --danger: #d23a1f;
    --danger-hover: #b22e16;
    --success: #ff8800;

    --border-soft: #3d1e0e;
    --border-hard: #ff8800;
    --btn-border: #ff8800;

    --navbar-bg: var(--bg-surface);
    --navbar-toggler-border: #ff8800;
    --nav-pill-active-bg: #ff8800;
    --nav-pill-active-text: #1a0a05;

    --footer-link: #ffcc66;
    --footer-link-subtle: #b89060;

    --table-stripe: #2a1810;

    --bg-image: url("/static/images/themes/sunset.b71d32d33916.jpg");
    --bg-overlay: #140804;
    --footer-shadow: var(--strong-shadow);
    --navbar-shadow: var(--strong-shadow);
}

/* Vaporwave */
body.theme-vaporwave {
    --text-body: #ffd9f5;
    --bg-surface: rgba(8, 0, 16, 0.88);
    --bg-overlay: #08000f;
    --table-row-bg: #08000f;
    --text-surface: #ffd9f5;
    --text-muted: #b9a0c8;

    --link: #4be4e4;
    --link-muted: #8a6fa8;

    --danger: #e01d40;
    --danger-hover: #be1936;
    --success: #39ff8c;

    --border-soft: #1a0028;
    --border-hard: #ff2bc4;
    --btn-border: #ff2bc4;

    --navbar-bg: var(--bg-surface);
    --navbar-toggler-border: #ff2bc4;
    --nav-pill-active-bg: #ff2bc4;
    --nav-pill-active-text: #000;

    --footer-link: #4be4e4;
    --footer-link-subtle: #6a4a78;

    --table-stripe: #120020;

    --bg-image: url("/static/images/themes/vaporwave.839f15b94c7c.jpg");
    --footer-shadow: var(--strong-shadow);
    --navbar-shadow: var(--strong-shadow);
}

/* Beetroot */
body.theme-beetroot {
    --bg-body: #1a0408;
    --text-body: #f5e6d3;
    --bg-surface: #32080f;
    --text-surface: #f5e6d3;
    --text-muted: #d8b8a0;

    --link: #ff6b9d;
    --link-muted: #a08b80;

    --danger: #c41e3a;
    --danger-hover: #a3182f;
    --success: #ff5c9e;

    --border-soft: #3d0a16;
    --border-hard: #c41e3a;
    --btn-border: #c41e3a;

    --navbar-toggler-border: #c41e3a;
    --nav-pill-active-bg: #5c1320;
    --nav-pill-active-text: #f5e6d3;

    --footer-link: #ff6b9d;
    --footer-link-subtle: #a08b80;

    --table-stripe: #4a0d1a;

    --logo: url("/static/images/themes/beetroot-logo.31bee2eace7b.png");
}

body.theme-matrix,
body.theme-matrix :is(h1, h2, h3, h4, .megabeta, input, textarea, select, button) {
    font-family: 'SF Mono', Menlo, Monaco, Consolas, 'JetBrains Mono', 'Courier New', monospace;
}

body.theme-matrix {
    font-size: 12px;
    letter-spacing: -0.04em;
}

body.theme-matrix .status-booked,
body.theme-matrix .status-progress {
    color: var(--text-surface);
}

body.theme-beetroot :is(img.logo, .navbar-brand img) {
    content: var(--logo);
    height: auto;
}

body.theme-beetroot .navbar-brand img {
    width: 50px;
}

footer :is(a, button, span) {
    text-shadow: var(--footer-shadow);
}

.navbar-nav :is(a, button, span),
#header :is(a, button, span) {
    text-shadow: var(--navbar-shadow);
}

.dropdown-menu :is(a, button, span) {
    text-shadow: none;
}

.dropdown-btn {
    border: none;
    background-color: inherit;
    padding: 0;
}

.dropdown-btn:hover {
    text-decoration: underline;
    color: var(--link-hover);
}

[data-bs-theme="dark"] .btn-light {
    --bs-btn-color: var(--text-surface);
    --bs-btn-bg: var(--border-soft);
    --bs-btn-border-color: var(--btn-border);
    --bs-btn-hover-color: var(--text-surface);
    --bs-btn-hover-bg: var(--bg-surface);
    --bs-btn-hover-border-color: var(--btn-border);
    --bs-btn-active-color: var(--text-surface);
    --bs-btn-active-bg: var(--bg-surface);
    --bs-btn-active-border-color: var(--btn-border);
    --bs-btn-disabled-color: var(--text-muted);
    --bs-btn-disabled-bg: var(--bg-body);
    --bs-btn-disabled-border-color: var(--border-soft);
}

[data-bs-theme="dark"] {
    color-scheme: dark;
}

body:not(.theme-default, .theme-dark) {
    --link-hover: color-mix(in srgb, var(--link), #fff 25%);
    --footer-link-hover: color-mix(in srgb, var(--footer-link), #fff 25%);
}

body:not(.theme-default, .theme-dark) .btn-primary {
    --btn-hover: color-mix(in srgb, var(--link), #000 15%);
    --bs-btn-color: var(--bg-surface);
    --bs-btn-bg: var(--link);
    --bs-btn-border-color: var(--link);
    --bs-btn-hover-color: var(--bg-surface);
    --bs-btn-hover-bg: var(--btn-hover);
    --bs-btn-hover-border-color: var(--btn-hover);
    --bs-btn-active-color: var(--bg-surface);
    --bs-btn-active-bg: var(--btn-hover);
    --bs-btn-active-border-color: var(--btn-hover);
}

body:not(.theme-default, .theme-dark) .btn-success {
    --btn-hover: color-mix(in srgb, var(--success), #000 15%);
    --bs-btn-color: var(--bg-surface);
    --bs-btn-bg: var(--success);
    --bs-btn-border-color: var(--success);
    --bs-btn-hover-color: var(--bg-surface);
    --bs-btn-hover-bg: var(--btn-hover);
    --bs-btn-hover-border-color: var(--btn-hover);
    --bs-btn-active-color: var(--bg-surface);
    --bs-btn-active-bg: var(--btn-hover);
    --bs-btn-active-border-color: var(--btn-hover);
}

body:not(.theme-default, .theme-dark) .btn-danger {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--danger);
    --bs-btn-border-color: var(--danger);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--danger-hover);
    --bs-btn-hover-border-color: var(--danger-hover);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--danger-hover);
    --bs-btn-active-border-color: var(--danger-hover);
}
