: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;
}


/* Anhang-Container Styles */
.anhaenge-container {
    margin-bottom: 0.5rem;
}

.anhang-input-group {
    display: flex;
    align-items: center;
}

.anhang-input-group .form-control {
    flex: 1;
}

.anhang-input-group .remove-anhang-btn {
    flex-shrink: 0;
}

.add-anhang-btn {
    margin-top: 0.25rem;
}

.max-anhaenge-hinweis {
    font-size: 0.875rem;
}



/* Cashout-Incident Expressmeldung */
.cashout-incident-banner { display:flex; gap:1rem; align-items:flex-start; margin-bottom:1.5rem; padding:1.25rem; color:#fff; background:#b00020; border:2px solid #850018; border-radius:8px; box-shadow:0 4px 12px rgba(176,0,32,.25); }
.cashout-incident-icon { flex:0 0 36px; width:36px; height:36px; line-height:34px; border:2px solid #fff; border-radius:50%; text-align:center; font-size:1.35rem; font-weight:800; }
.cashout-incident-content h2 { margin:0 0 .5rem; color:#fff; font-size:1.15rem; font-weight:800; }
.cashout-incident-content p { margin:0 0 1rem; }
.cashout-express-section { margin-bottom:1.5rem; padding:1.5rem; border:2px solid var(--tipico-red); border-radius:8px; background:#fff7f8; }
.cashout-express-section h2 { color:var(--tipico-red); font-size:1.4rem; font-weight:800; }
.cashout-ticket-label { min-width:112px; }
.cashout-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.cashout-express-success { padding:1rem 0; }
body.dark-mode .cashout-express-section { color:#e0e0e0; background:#351f23; border-color:#dc3545; }
body.dark-mode .cashout-express-section .text-muted,
body.dark-mode .cashout-express-section .form-text { color:#c7c7c7!important; }
@media (max-width:600px) {
    .cashout-incident-banner { gap:.75rem; padding:1rem; }
    .cashout-incident-icon { flex-basis:30px; width:30px; height:30px; line-height:27px; font-size:1.1rem; }
    .cashout-express-section { padding:1rem; }
    .cashout-ticket-row { align-items:stretch; }
    .cashout-ticket-label { min-width:96px; font-size:.8rem; }
}


/* Automatische Cashout-Wettscheinprüfung */
.cashout-check-loader { max-width:560px; margin:0 auto; padding:2.25rem 1rem; text-align:center; }
.cashout-check-loader h2 { margin:1.25rem 0 .5rem; color:var(--tipico-dark-gray); font-size:1.35rem; }
.cashout-check-loader p { min-height:1.6em; margin:0 0 1.25rem; color:#59636e; font-weight:600; }
.cashout-check-orbit { position:relative; width:92px; height:92px; margin:0 auto; }
.cashout-check-orbit-ring { position:absolute; inset:0; border:5px solid rgba(200,16,46,.13); border-top-color:var(--tipico-red); border-right-color:#f05b72; border-radius:50%; animation:cashout-orbit 1s linear infinite; }
.cashout-check-orbit-core { position:absolute; inset:14px; display:flex; align-items:center; justify-content:center; color:#fff; background:linear-gradient(145deg,var(--tipico-red),#8e0b20); border-radius:50%; box-shadow:0 8px 24px rgba(200,16,46,.3); font-size:1.7rem; font-weight:900; animation:cashout-pulse 1.4s ease-in-out infinite; }
.cashout-check-progress { height:8px; overflow:hidden; border-radius:999px; background:#eadde0; }
.cashout-check-progress span { display:block; width:45%; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--tipico-red),#ff738a,var(--tipico-red)); animation:cashout-progress 1.35s ease-in-out infinite; }
.cashout-check-steps { display:flex; justify-content:space-between; gap:.5rem; margin-top:.75rem; color:#7a838c; font-size:.72rem; }
@keyframes cashout-orbit { to { transform:rotate(360deg); } }
@keyframes cashout-pulse { 50% { transform:scale(.92); box-shadow:0 4px 14px rgba(200,16,46,.2); } }
@keyframes cashout-progress { from { transform:translateX(-110%); } to { transform:translateX(245%); } }

.cashout-check-result { color:#252a30; }
.cashout-result-header { margin:-1.5rem -1.5rem 1.5rem; padding:1.5rem; color:#fff; border-radius:6px 6px 0 0; background:linear-gradient(135deg,#126c3c,#28a95b); }
.cashout-result-header.partial { background:linear-gradient(135deg,#9a5a00,#ef9d21); }
.cashout-result-header.manual { background:linear-gradient(135deg,#5f6872,#86909a); }
.cashout-result-kicker { display:inline-block; margin-bottom:.65rem; padding:.25rem .65rem; color:#124f31; background:#e3f8eb; border-radius:999px; font-size:.75rem; font-weight:800; letter-spacing:.03em; text-transform:uppercase; }
.cashout-result-header.partial .cashout-result-kicker { color:#774300; background:#fff2d8; }
.cashout-result-header.manual .cashout-result-kicker { color:#3d454d; background:#edf0f2; }
.cashout-result-header h2 { margin:0 0 .6rem; color:#fff; font-size:1.35rem; line-height:1.3; }
.cashout-result-header p { margin:0; opacity:.95; }
.cashout-ticket-reference { display:inline-flex; gap:.4rem; align-items:center; margin-top:.9rem; padding:.35rem .65rem; color:#173522; background:rgba(255,255,255,.88); border-radius:5px; font-size:.85rem; font-weight:800; }
.cashout-result-copy { font-size:.98rem; line-height:1.65; }
.cashout-result-copy h3 { margin:1.5rem 0 .65rem; color:#252a30; font-size:1.08rem; font-weight:800; }
.cashout-match-table-wrap { margin:1rem 0; overflow-x:auto; border:1px solid #d9e0e5; border-radius:8px; }
.cashout-match-table { width:100%; min-width:470px; margin:0; border-collapse:collapse; background:#fff; }
.cashout-match-table th { padding:.7rem .8rem; color:#56606a; background:#f3f5f7; border-bottom:1px solid #d9e0e5; font-size:.76rem; letter-spacing:.03em; text-align:left; text-transform:uppercase; }
.cashout-match-table td { padding:.8rem; border-bottom:1px solid #e8ecef; vertical-align:middle; }
.cashout-match-table tr:last-child td { border-bottom:0; }
.cashout-device-name { font-weight:800; color:#24292f; }
.cashout-till-id { display:block; color:#6d7680; font-size:.78rem; }
.cashout-device-badge { display:inline-block; padding:.22rem .5rem; border-radius:999px; color:#07582f; background:#dbf4e6; font-size:.73rem; font-weight:800; white-space:nowrap; }
.cashout-device-badge.register { color:#174b76; background:#dceefa; }
.cashout-guidance { margin:1.15rem 0; padding:1rem 1.1rem; border-left:5px solid #2878b8; border-radius:6px; background:#eef7fd; }
.cashout-guidance.register { border-left-color:#18764b; background:#eaf8f0; }
.cashout-guidance.warning { border-left-color:#d48806; background:#fff7e8; }
.cashout-guidance h3 { margin:0 0 .45rem; color:inherit; }
.cashout-guidance p:last-child { margin-bottom:0; }
.cashout-booking-steps { margin:.7rem 0 0; padding-left:1.25rem; }
.cashout-booking-steps li { margin:.35rem 0; }
.cashout-unmatched-list { display:flex; flex-wrap:wrap; gap:.45rem; margin:.6rem 0 0; padding:0; list-style:none; }
.cashout-unmatched-list li { padding:.3rem .6rem; color:#7b3400; background:#ffe8d2; border:1px solid #ffc58f; border-radius:5px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-weight:700; }
.cashout-resolution-note { margin:1.4rem 0 0; padding:1rem; color:#14532d; background:#e7f7ed; border:1px solid #b8e4c8; border-radius:7px; font-weight:700; }
.cashout-resolution-note.pending { color:#70420a; background:#fff5df; border-color:#f1d197; }
.cashout-signature { margin-top:1.4rem; }
.cashout-result-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.75rem; margin-top:1.5rem; padding-top:1.1rem; border-top:1px solid #dfe4e8; }

body.dark-mode .cashout-check-loader h2,
body.dark-mode .cashout-check-result,
body.dark-mode .cashout-result-copy h3,
body.dark-mode .cashout-device-name { color:#edf1f3; }
body.dark-mode .cashout-check-loader p,
body.dark-mode .cashout-till-id { color:#bac1c7; }
body.dark-mode .cashout-check-progress { background:#56363d; }
body.dark-mode .cashout-match-table { background:#2f3438; }
body.dark-mode .cashout-match-table th { color:#c8ced3; background:#3b4146; border-color:#50575d; }
body.dark-mode .cashout-match-table td { border-color:#484f54; }
body.dark-mode .cashout-guidance { color:#d7ecfb; background:#203b4c; }
body.dark-mode .cashout-guidance.register { color:#d8f3e4; background:#203e30; }
body.dark-mode .cashout-guidance.warning { color:#ffe3ae; background:#4c3820; }
body.dark-mode .cashout-resolution-note { color:#d8f3e4; background:#203e30; border-color:#376a4e; }
body.dark-mode .cashout-resolution-note.pending { color:#ffe3ae; background:#4c3820; border-color:#765a32; }
body.dark-mode .cashout-result-actions { border-color:#4a5055; }

@media (max-width:600px) {
    .cashout-check-loader { padding:1.5rem .25rem; }
    .cashout-check-orbit { width:78px; height:78px; }
    .cashout-result-header { margin:-1rem -1rem 1.15rem; padding:1.1rem; }
    .cashout-result-header h2 { font-size:1.12rem; }
    .cashout-result-copy { font-size:.93rem; }
    .cashout-guidance { padding:.85rem; }
    .cashout-result-actions { flex-direction:column; }
    .cashout-result-actions .btn { width:100%; }
}
@media (prefers-reduced-motion:reduce) {
    .cashout-check-orbit-ring,
    .cashout-check-orbit-core,
    .cashout-check-progress span { animation-duration:2.8s; }
}
@media print {
    body { background:#fff!important; }
    body > .container { max-width:none; margin:0!important; padding:0!important; box-shadow:none!important; }
    .tipico-header,
    .cashout-incident-banner,
    #cashoutExpressFormContainer,
    #cashoutCheckLoader,
    .cashout-result-actions,
    .progress,
    #differenzForm,
    #successMessageContainer { display:none!important; }
    #cashoutExpressSection,
    #cashoutExpressSuccess,
    #cashoutCheckResult { display:block!important; margin:0!important; padding:0!important; border:0!important; background:#fff!important; }
    .cashout-result-header { margin:0 0 1rem; color:#000!important; background:#fff!important; border:2px solid #222; }
    .cashout-result-header h2 { color:#000!important; }
}
