html, body {
    font-family: 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', sans-serif;
    background-color: #0a0e27;
    color: #e0e6ed;
}

a, .btn-link {
    color: #00d4ff;
}

.btn-primary {
    color: #fff;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border: 1px solid #667eea;
    box-shadow: 0 0 15px rgba(102, 126, 234, 0.3);
}

    .btn-primary:hover {
        box-shadow: 0 0 25px rgba(102, 126, 234, 0.5);
    }

.btn-secondary {
    background-color: #1e2749;
    border-color: #2d3a5f;
    box-shadow: 0 0 10px rgba(45, 58, 95, 0.3);
}

    .btn-secondary:hover {
        background-color: #2d3a5f;
        box-shadow: 0 0 15px rgba(45, 58, 95, 0.5);
    }

.btn-success {
    background: linear-gradient(135deg, #11998e 0%, #38ef7d 100%);
    border-color: #11998e;
    box-shadow: 0 0 15px rgba(17, 153, 142, 0.3);
}

    .btn-success:hover {
        box-shadow: 0 0 25px rgba(17, 153, 142, 0.5);
    }

.btn-info {
    background: linear-gradient(135deg, #00d4ff 0%, #0099cc 100%);
    border-color: #00d4ff;
    color: #000;
    box-shadow: 0 0 15px rgba(0, 212, 255, 0.3);
}

    .btn-info:hover {
        box-shadow: 0 0 25px rgba(0, 212, 255, 0.5);
    }

.btn-outline-danger {
    color: #ff2d55;
    border-color: #ff2d55;
}

    .btn-outline-danger:hover {
        background-color: #ff2d55;
        color: #fff;
        box-shadow: 0 0 15px rgba(255, 45, 85, 0.4);
    }

.btn-outline-secondary {
    color: #00d4ff;
    border-color: #2d3a5f;
}

    .btn-outline-secondary:hover {
        background-color: #1e2749;
        border-color: #00d4ff;
        color: #00d4ff;
        box-shadow: 0 0 10px rgba(0, 212, 255, 0.3);
    }

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.1rem #0a0e27, 0 0 0 0.25rem #00d4ff;
}

.form-control::selection,
.form-select::selection {
    background-color: #00d4ff;
    color: #fff;
}

.form-control::-moz-selection,
.form-select::-moz-selection {
    background-color: #00d4ff;
    color: #fff;
}

.form-control,
.form-select {
    caret-color: #00d4ff;
}

    /* Ensure text color persists during input */
    .form-control:not(:disabled),
    .form-select:not(:disabled) {
        color: #e0e6ed !important;
    }

.content {
    padding-top: 1.1rem;
}

h1, h5, h6 {
    color: #00d4ff;
    text-shadow: 0 0 10px rgba(0, 212, 255, 0.3);
    font-weight: 600;
    letter-spacing: 0.5px;
}

    h1:focus {
        outline: none;
    }

.form-control, .form-select {
    background-color: #151a35;
    border: 1px solid #2d3a5f;
    color: #e0e6ed;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3);
}

    .form-control:focus, .form-select:focus {
        background-color: #1a2040;
        border-color: #00d4ff;
        box-shadow: 0 0 0 0.2rem rgba(0, 212, 255, 0.15), inset 0 2px 4px rgba(0, 0, 0, 0.3);
    }

    .form-control:disabled {
        background-color: #0d1128;
        color: #5a6a8a;
        border-color: #1e2749;
    }

    .form-control.fw-bold {
        color: #00d4ff;
        font-weight: 700;
    }

.form-label {
    color: #8b9dc3;
    font-size: 0.85rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #38ef7d;
    box-shadow: 0 0 8px rgba(56, 239, 125, 0.3);
}

.invalid {
    outline: 1px solid #ff2d55;
    box-shadow: 0 0 8px rgba(255, 45, 85, 0.3);
}

.validation-message {
    color: #ff2d55;
    text-shadow: 0 0 5px rgba(255, 45, 85, 0.3);
}

.card {
    background: linear-gradient(135deg, #0f1429 0%, #1a2040 100%);
    border: 1px solid #2d3a5f;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4), 0 0 1px rgba(0, 212, 255, 0.2);
}

    .card:hover {
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5), 0 0 2px rgba(0, 212, 255, 0.4);
    }

.card-header {
    background: linear-gradient(135deg, #1a2040 0%, #151a35 100%);
    border-bottom: 1px solid #2d3a5f;
    border-radius: 8px 8px 0 0;
}

.card-title {
    color: #00d4ff;
    margin: 0;
}

.card-body {
    position: relative;
}

.alert-info {
    background: linear-gradient(135deg, #1e2749 0%, #2d3a5f 100%);
    border: 1px solid #00d4ff;
    color: #00d4ff;
    box-shadow: 0 0 15px rgba(0, 212, 255, 0.2);
}

.navbar-nav .nav-link.active {
    background-color: transparent !important;
    font-weight: bold;
    color: #00d4ff !important;
    text-shadow: 0 0 10px rgba(0, 212, 255, 0.5);
}

.navbar-nav .nav-link:not(.active) {
    color: #8b9dc3;
}

    .navbar-nav .nav-link:not(.active):hover {
        color: #00d4ff;
        text-shadow: 0 0 8px rgba(0, 212, 255, 0.3);
    }

.navbar-dark {
    background: linear-gradient(90deg, #0a0e27 0%, #151a35 50%, #0a0e27 100%) !important;
    border-bottom: 2px solid #2d3a5f;
    box-shadow: 0 2px 15px rgba(0, 212, 255, 0.1);
}

.navbar-brand {
    color: #00d4ff !important;
    font-weight: 700;
    text-shadow: 0 0 15px rgba(0, 212, 255, 0.5);
    letter-spacing: 1px;
}

.blazor-error-boundary {
    background: linear-gradient(135deg, #ff2d55 0%, #b32121 100%);
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
    box-shadow: 0 -2px 20px rgba(255, 45, 85, 0.5);
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #2d3a5f;
    background-color: #151a35;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: #5a6a8a;
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

hr {
    border-color: #2d3a5f;
    opacity: 1;
    box-shadow: 0 1px 3px rgba(0, 212, 255, 0.1);
}

/* High-tech calculation log styling */
.card-body[style*="monospace"] {
    background: linear-gradient(135deg, #0a0e27 0%, #0f1429 100%) !important;
    border: 1px solid #2d3a5f;
    border-radius: 4px;
    font-family: 'Consolas', 'Monaco', 'Courier New', monospace !important;
    color: #00ff88;
}

    .card-body[style*="monospace"] > div {
        border-bottom-color: #2d3a5f !important;
    }
