:root {
    --tipico-red: #c8102e;
    --tipico-dark-gray: #212121;
    --tipico-gray: #3a3a3a;
    --tipico-light-gray: #d8d8d8;
    --tipico-green: #28a95b;
    --tipico-dark-green: #1e7b43;
    --tipico-blue: #4d90a7;
    --tipico-dark-blue: #39697a;

    /* Override Bootstrap primary color (optional) */
    --bs-primary: var(--tipico-red);
    --bs-primary-rgb: 200, 16, 46;
    --bs-link-color: var(--tipico-blue);
    --bs-link-hover-color: var(--tipico-dark-blue);
    --bs-success: var(--tipico-green);
    --bs-success-rgb: 40, 169, 91;
}

body {
    font-family: sans-serif;
    background-color: #f8f9fa; /* Bootstrap light gray background */
    color: var(--tipico-dark-gray);
    line-height: 1.6;
}

.container {
    max-width: 700px; /* Etwas schmaler für Typeform-Look */
    background-color: #ffffff;
    padding: 2rem;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.tipico-header {
    background-color: var(--tipico-red);
    margin: -2rem -2rem 2rem -2rem !important; /* Extend to container edges */
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
}

.tipico-header h1 {
    margin: 0;
    font-size: 1.75em;
}

.progress-bar {
    background-color: var(--tipico-red) !important;
    transition: width 0.4s ease-in-out;
}

.form-step {
    display: none; /* Hide all steps initially */
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
}

.form-step.active-step {
    display: block; /* Show active step */
    opacity: 1;
}

.form-step h2 {
    color: var(--tipico-red);
    margin-bottom: 1.5rem;
    font-weight: bold;
}

.step-number {
    display: inline-block;
    background-color: var(--tipico-red);
    color: white;
    border-radius: 50%;
    width: 30px;
    height: 30px;
    line-height: 30px;
    text-align: center;
    margin-right: 10px;
    font-size: 0.8em;
}

/* --- Button Styling --- */
.btn-primary {
    background-color: var(--tipico-red);
    border-color: var(--tipico-red);
}

.btn-primary:hover {
    background-color: #920c22; /* Dunkelrot */
    border-color: #920c22;
}

.btn-success {
     background-color: var(--tipico-green);
    border-color: var(--tipico-green);
}

.btn-success:hover {
    background-color: var(--tipico-dark-green);
    border-color: var(--tipico-dark-green);
}

.btn-secondary {
    /* Use Bootstrap default or customize */
}

/* Styling for invalid fields (Bootstrap handles most of this) */
.form-control.is-invalid,
.was-validated .form-control:invalid {
    border-color: #dc3545; /* Bootstrap danger color */
}

.invalid-feedback {
    color: #dc3545;
}

/* Ensure hidden class works */
.hidden {
    display: none !important;
}

/* Responsive adjustments */
@media (max-width: 600px) {
    .container {
        margin-top: 1rem !important;
        margin-bottom: 1rem !important;
        padding: 1.5rem;
    }

    .tipico-header h1 {
        font-size: 1.5em;
    }

    .form-step h2 {
        font-size: 1.3em;
        margin-bottom: 1rem;
    }

    .step-number {
        width: 25px;
        height: 25px;
        line-height: 25px;
        font-size: 0.7em;
    }
}

/* Dark Mode Styles - activated when page is in iframe */
body.dark-mode {
    background-color: #202020;
    color: #e0e0e0;
}

body.dark-mode .container {
    background-color: #2a2a2a;
    box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}

body.dark-mode .tipico-header {
    background-color: #a00d26; /* Slightly darker red for dark mode */
}

body.dark-mode .form-control,
body.dark-mode .form-select {
    background-color: #3a3a3a;
    border-color: #4a4a4a;
    color: #e0e0e0;
}

body.dark-mode .form-control:focus,
body.dark-mode .form-select:focus {
    background-color: #404040;
    border-color: var(--tipico-red);
    color: #e0e0e0;
}

body.dark-mode .form-control::placeholder {
    color: #888;
}

body.dark-mode .form-label,
body.dark-mode .form-check-label,
body.dark-mode legend {
    color: #d0d0d0;
}

body.dark-mode .text-muted {
    color: #999 !important;
}

body.dark-mode .bg-light,
body.dark-mode .bg-light-subtle {
    background-color: #333 !important;
    color: #e0e0e0;
}

body.dark-mode .border {
    border-color: #4a4a4a !important;
}

body.dark-mode .alert-warning {
    background-color: #4a3a00;
    border-color: #6a5500;
    color: #ffd966;
}

body.dark-mode hr {
    border-color: #4a4a4a;
    opacity: 0.5;
}

body.dark-mode .input-group-text {
    background-color: #3a3a3a;
    border-color: #4a4a4a;
    color: #d0d0d0;
}

body.dark-mode .btn-outline-secondary {
    color: #d0d0d0;
    border-color: #5a5a5a;
}

body.dark-mode .btn-outline-secondary:hover {
    background-color: #4a4a4a;
    border-color: #6a6a6a;
    color: #fff;
}

body.dark-mode .btn-outline-danger {
    color: #ff6b6b;
    border-color: #ff6b6b;
}

body.dark-mode .btn-outline-danger:hover {
    background-color: #ff6b6b;
    color: #fff;
}

body.dark-mode .geraet-details-group {
    background-color: #333;
    border-color: #4a4a4a !important;
}

body.dark-mode .form-control.is-invalid,
body.dark-mode .was-validated .form-control:invalid {
    border-color: #dc3545;
    background-color: #3a2a2a;
}

body.dark-mode .invalid-feedback {
    color: #ff6b6b;
}

body.dark-mode .form-check-input {
    background-color: #3a3a3a;
    border-color: #5a5a5a;
}

body.dark-mode .form-check-input:checked {
    background-color: var(--tipico-red);
    border-color: var(--tipico-red);
}

body.dark-mode .progress {
    background-color: #3a3a3a;
}

body.dark-mode dl dt {
    color: #d0d0d0;
}

body.dark-mode dl dd {
    color: #b0b0b0;
}

body.dark-mode .text-primary {
    color: #6bb6ff !important;
}

body.dark-mode .text-warning {
    color: #ffd966 !important;
}

body.dark-mode .text-danger {
    color: #ff6b6b !important;
}

body.dark-mode .text-success {
    color: #5dd68d !important;
}

