﻿:root {
    --primary: #00FFCC;
    --secondary: #BB00FF;
    --dark: #0A0A0A;
    --light: #121212;
    --accent: #FF00CC;
    --bs-body-bg: var(--dark);
    --bs-body-color: var(--primary);
    --bs-link-color: var(--primary);
    --bs-link-hover-color: var(--accent);
}

body {
    background-color: var(--dark);
    background-image: url("/Logo_translucent.svg");
    background-repeat: no-repeat;
    background-position-x: center;
    background-position-y: 100px;
    background-attachment: fixed;
    background-size: 300px 300px;
    color: var(--primary) !important;
    font-family: 'Share Tech Mono', monospace;
}

a {
    color: var(--primary) !important;
}

    a:hover {
        color: var(--accent) !important;
    }

.btn-primary {
    background-color: var(--primary);
    border-color: var(--primary);
    color: var(--dark);
}

    .btn-primary:hover {
        background-color: var(--accent);
        border-color: var(--accent);
        color: var(--dark);
    }

.card {
    background-color: var(--light);
    border: 1px solid rgba(0, 255, 204, 0.2);
}

.navbar, .dropdown-menu {
    background-color: var(--light) !important;
    color: var(--primary) !important;
}

hr {
    border-top: 1px solid rgba(0, 255, 204, 0.2); !important
}

input, textarea, select {
    background-color: var(--light) !important;
    color: var(--primary) !important;
    border: 1px solid rgba(0, 255, 204, 0.3) !important;
}

    input:focus, textarea:focus, select:focus {
        background-color: var(--light) !important;
        color: var(--primary) !important;
        border-color: var(--accent) !important;
        box-shadow: 0 0 0 0.25rem rgba(0, 255, 204, 0.25) !important;
    }


/* Table background and text */
table {
    background-color: var(--light) !important;
    color: var(--primary) !important;
}

/* Table headers */
thead {
    background-color: var(--dark) !important;
    color: var(--primary) !important;
}


/* Striped tables */
.table-striped tbody tr:nth-of-type(odd) {
    background-color: rgba(0, 255, 204, 0.05);
    color: var(--primary);
}

    .table-striped tbody tr:hover {
        background-color: rgba(0, 255, 204, 0.1) !important;
        color: var(--accent) !important;
    }

    .table-striped tbody tr.selected {
        background-color: rgba(0, 255, 204, 0.1) !important;
        color: var(--accent) !important;
    }

/* Table borders */
table, th, td {
    border-color: rgba(0, 255, 204, 0.2) !important;
}

    /* Table hover effects */
    table tbody tr:hover {
        background-color: rgba(0, 255, 204, 0.1) !important;
        color: var(--accent) !important;
    }

/* Chrome, Edge, Safari */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: var(--dark);
}

::-webkit-scrollbar-thumb {
    background-color: var(--primary);
    border-radius: 4px;
}

    ::-webkit-scrollbar-thumb:hover {
        background-color: var(--accent);
    }

/* Firefox */
* {
    scrollbar-width: thin;
    scrollbar-color: var(--primary) var(--dark);
}


/* Hide default radio input */
input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-color: var(--light);
    border: 2px solid var(--primary);
    border-radius: 50%;
    width: 1.2em;
    height: 1.2em;
    cursor: pointer;
    position: relative;
}

    /* Inner dot when checked */
    input[type="radio"]:checked::before {
        content: "";
        display: block;
        width: 0.6em;
        height: 0.6em;
        border-radius: 50%;
        background-color: var(--accent);
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }

    /* Focus outline for accessibility */
    input[type="radio"]:focus {
        outline: none;
        box-shadow: 0 0 0 0.2rem rgba(0, 255, 204, 0.5);
    }


.card-header {
    background-color: var(--dark);
    color: var(--primary);
    border-bottom: 1px solid rgba(0, 255, 204, 0.3);
}

/* Optional: top border to frame headers more distinctly */
.card-header {
    border-top: 1px solid rgba(0, 255, 204, 0.3);
}


.border-end {
    border-right: 1px solid rgba(0, 255, 204, 0.3) !important;
}

.navbar-toggler {
    border-color: var(--primary);
}

.navbar-toggler-icon {
    background-image: none;
    position: relative;
    width: 1.5em;
    height: 1.5em;
}

    .navbar-toggler-icon::before,
    .navbar-toggler-icon::after,
    .navbar-toggler-icon div {
        content: '';
        display: block;
        background-color: var(--primary);
        height: 2px;
        margin: 5px 0;
        border-radius: 1px;
        box-shadow: 0 0 5px var(--primary);
    }

.session-window {
    position: absolute;
    box-shadow: 0px 0px 8px #00FFCC99;
    z-index: 0;
    background-color: #12121299;
}

    .session-window > .session-window-header {
        cursor: grab;
        user-select: none;
    }

    .session-window.hide {
        display: none;
    }