/* fair4Host: presentation layer for the embedded Joomla KundenCenter.
   Retains Joomla/Bootstrap widgets, validation, hidden controls and routing. */
@font-face {
    font-family: 'Poppins'; font-style: normal; font-weight: 400; font-display: swap;
    src: url('../fonts/poppins-latin-400-normal.woff2') format('woff2');
}
@font-face {
    font-family: 'Poppins'; font-style: normal; font-weight: 600; font-display: swap;
    src: url('../fonts/poppins-latin-600-normal.woff2') format('woff2');
}
body.kc-theme {
    --kc-dark: #1b1f23; --kc-orange: #ff8c00; --kc-link: #a84b00;
    --kc-muted: #5b6168; --kc-border: #e3e5e8; --kc-soft: #f5f6f7;
    margin: 0; background: #fff; color: var(--kc-dark);
    font: 400 15px/1.65 'Poppins', 'Segoe UI', Arial, sans-serif;
}
.kc-theme .kc-shell { max-width: 1180px; min-width: 0; margin: 0 auto; padding: 24px; }
.kc-theme .kc-shell, .kc-theme .kc-shell * { box-sizing: border-box; }
.kc-theme .span12 { font-size: inherit !important; line-height: inherit; min-width: 0; }
.kc-theme h1, .kc-theme h2, .kc-theme h3, .kc-theme h4, .kc-theme h5, .kc-theme h6 {
    font-family: 'Poppins', 'Segoe UI', Arial, sans-serif; font-weight: 600;
    color: var(--kc-dark) !important; line-height: 1.35; margin: 0 0 16px;
}
.kc-theme h1 { font-size: clamp(23px, 3.2vw, 30px); }
.kc-theme h2 { font-size: 20px; }
.kc-theme h3 { font-size: 18px; }
.kc-theme h4 { font-size: 16px; }
.kc-theme p { margin: 0 0 18px; }
.kc-theme a { color: var(--kc-link) !important; text-decoration: none; }
.kc-theme a:hover { color: #783600 !important; text-decoration: underline; }
.kc-theme a:focus-visible, .kc-theme button:focus-visible, .kc-theme input:focus-visible,
.kc-theme select:focus-visible, .kc-theme textarea:focus-visible {
    outline: 3px solid #b35000; outline-offset: 3px;
}
.kc-theme .kc-eyebrow {
    color: var(--kc-link); text-transform: uppercase; letter-spacing: .09em;
    font-size: 11px; font-weight: 600; margin-bottom: 10px;
}
.kc-theme .kc-welcome { margin-bottom: 28px; }
.kc-theme .kc-welcome-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; }
.kc-theme .kc-welcome h1 { margin-bottom: 12px; }
.kc-theme .kc-lead { color: var(--kc-muted); }
.kc-theme .kc-account {
    display: flex; flex-wrap: wrap; gap: 16px 44px; padding: 18px 22px; margin: 22px 0 0;
    background: var(--kc-soft); border: 1px solid var(--kc-border); border-radius: 12px;
}
.kc-theme .kc-account div { min-width: 0; }
.kc-theme .kc-account dt { color: var(--kc-muted); font-size: 11px; font-weight: 400; margin-bottom: 3px; }
.kc-theme .kc-account dd { font-size: 14px; font-weight: 600; margin: 0; overflow-wrap: anywhere; }
.kc-theme .kc-dashboard { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.kc-theme .kc-card {
    min-width: 0; padding: 25px; border: 1px solid var(--kc-border); border-radius: 16px; background: #fff;
}
.kc-theme .kc-card h2 { font-size: 18px; margin-bottom: 8px; }
.kc-theme .kc-card > p { color: var(--kc-muted); font-size: 13px; }
.kc-theme .kc-icon { display: block; width: 34px; height: 34px; margin-bottom: 20px; fill: none; stroke: var(--kc-dark); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.kc-theme .kc-icon-accent { stroke: var(--kc-orange); }
.kc-theme .kc-links { list-style: none; margin: 20px 0 0; padding: 0; }
.kc-theme .kc-links li { margin: 0; padding: 0; border-top: 1px solid #edf0f2; }
.kc-theme .kc-links a { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; font-size: 13px; font-weight: 600; }
.kc-theme .kc-links a::after { content: '\2192'; flex-shrink: 0; color: var(--kc-link); }
.kc-theme .kc-card-support { background: #fffcf8; border-color: #f2d6b3; }
.kc-theme .kc-contact { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding: 20px 24px; margin-top: 22px; background: var(--kc-dark); color: #fff; border-radius: 12px; }
.kc-theme .kc-contact strong { display: block; font-size: 14px; }
.kc-theme .kc-contact span { color: #c9ced3; font-size: 12px; }
.kc-theme .kc-contact a { color: #ffb366 !important; font-weight: 600; white-space: nowrap; }
.kc-theme .kc-logout { margin: 0; }
.kc-theme .btn, .kc-theme input[type='submit'], .kc-theme button[type='submit'] {
    display: inline-block; padding: 10px 18px; min-height: 42px; border: 1px solid #ccd0d5;
    border-radius: 24px; font: 600 13px/1.5 'Poppins', 'Segoe UI', Arial, sans-serif;
    background: #fff !important; background-image: none !important; color: var(--kc-dark) !important;
    text-shadow: none; box-shadow: none; text-decoration: none !important; vertical-align: middle;
    white-space: normal; cursor: pointer; transition: background-color .15s, border-color .15s;
}
.kc-theme .btn:hover { background: #fff4e6 !important; border-color: #ffb366; }
.kc-theme .btn-primary, .kc-theme button.btn-primary {
    background: var(--kc-orange) !important; border-color: var(--kc-orange); color: #1b1f23 !important;
}
.kc-theme .btn-primary:hover { background: #ffa033 !important; border-color: #ffa033; }
.kc-theme .btn-danger { background: #b42318 !important; border-color: #b42318; color: #fff !important; }
.kc-theme .btn[disabled], .kc-theme .btn.disabled, .kc-theme button:disabled { opacity: .55; cursor: not-allowed; }
.kc-theme .kc-support-action { width: 100%; margin: 0; font-size: 12px; padding: 10px 12px; }
.kc-theme .kc-logout .btn { font-size: 12px; }
.kc-theme .kc-form, .kc-theme .login, .kc-theme .reset, .kc-theme .remind, .kc-theme .registration {
    max-width: 780px; width: 100%; margin: 24px auto;
}
.kc-theme .login { max-width: 560px; }
.kc-theme .kc-login-heading { max-width: 560px; margin: 0 auto 24px; }
.kc-theme .kc-login-heading p { color: var(--kc-muted); }
.kc-theme .kc-form, .kc-theme .login .well {
    padding: 26px; border: 1px solid var(--kc-border); border-radius: 16px; background: #fff; box-shadow: none;
}
.kc-theme .form-horizontal .control-group { margin-bottom: 20px; }
.kc-theme label { width: auto !important; margin: 0 0 7px !important; text-align: left !important; font: 600 13px/1.5 'Poppins', 'Segoe UI', Arial, sans-serif; }
.kc-theme .form-horizontal .control-label { float: none; width: auto; padding: 0; text-align: left; }
.kc-theme .form-horizontal .controls { margin-left: 0; }
.kc-theme input:not([type='checkbox']):not([type='radio']):not([type='hidden']):not([type='button']):not([type='submit']),
.kc-theme select, .kc-theme textarea {
    width: 100% !important; max-width: 100%; height: auto; min-height: 44px; padding: 10px 12px;
    border: 1px solid #b8bec5; border-radius: 8px; background: #fff; color: #1b1f23;
    font: 400 14px/1.5 'Poppins', 'Segoe UI', Arial, sans-serif; box-shadow: none;
}
.kc-theme input[type='checkbox'], .kc-theme input[type='radio'] { width: auto !important; min-height: 0; margin: 3px 8px 3px 0; accent-color: #b35000; }
.kc-theme input[readonly], .kc-theme input:disabled, .kc-theme select:disabled { background: #f1f3f5 !important; color: #5b6168; }
.kc-theme input.invalid, .kc-theme textarea.invalid, .kc-theme select.invalid { border-color: #b42318; }
.kc-theme label.invalid { color: #b42318; }
.kc-theme textarea { min-height: 150px !important; resize: vertical !important; }
.kc-theme legend { padding: 0 0 12px; margin: 0 0 22px; font-size: 17px; line-height: 1.5; color: #1b1f23; border-color: var(--kc-border); }
.kc-theme .radio, .kc-theme .checkbox { padding-left: 22px; }
.kc-theme .input-append, .kc-theme .input-prepend { max-width: 100%; display: inline-flex; align-items: stretch; }
.kc-theme .input-append input, .kc-theme .input-prepend input { min-width: 0; }
.kc-theme .input-append .btn, .kc-theme .input-prepend .add-on { flex-shrink: 0; height: auto; }
.kc-theme .help-block, .kc-theme .help-inline { color: var(--kc-muted); font-size: 12px; }
.kc-theme .table { width: 100%; max-width: 100%; border: 1px solid var(--kc-border); border-collapse: separate; border-spacing: 0; border-radius: 10px; font-size: 13px; margin: 20px 0; }
.kc-theme .table th { background: #f1f3f5; font-weight: 600; color: #1b1f23; }
.kc-theme .table th, .kc-theme .table td { padding: 12px; vertical-align: middle; line-height: 1.6; border-color: var(--kc-border); }
.kc-theme .table-striped tbody > tr:nth-child(odd) > td { background: #fafbfc; }
.kc-theme .table tbody tr:hover > td { background: #fff7ed; }
.kc-theme #filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 16px; background: var(--kc-soft); border-radius: 12px; }
.kc-theme #filter-bar > div { float: none; margin: 0; }
.kc-theme #filter-bar select { width: auto !important; max-width: 100%; margin: 0 6px 0 0 !important; }
.kc-theme #filter-bar input { margin-bottom: 0; }
.kc-theme #limit { width: auto !important; min-width: 70px; }
.kc-theme .badge { background: #fff0dc !important; color: #873c00 !important; padding: 4px 9px; text-shadow: none; }
.kc-theme .pagination ul > li > a, .kc-theme .pagination ul > li > span { padding: 8px 13px; }
.kc-theme .nav { margin-bottom: 20px; }
.kc-theme .nav > li > a { padding: 10px 14px; }
.kc-theme .alert { border-radius: 10px; text-shadow: none; padding: 14px 18px; }
.kc-theme .kc-guest { max-width: 700px; margin: auto; }
.kc-theme .kc-guest .btn { margin-bottom: 20px; }
.kc-theme .kc-spacer-bottom { margin-bottom: 24px; }
@media (max-width: 900px) {
    .kc-theme .kc-dashboard { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kc-theme .kc-card-support { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
    .kc-theme .kc-shell { padding: 16px 12px; }
    .kc-theme .kc-welcome-heading { flex-direction: column; gap: 4px; }
    .kc-theme .kc-logout { align-self: flex-start; margin-bottom: 8px; }
    .kc-theme .kc-dashboard { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .kc-theme .kc-card { padding: 22px; }
    .kc-theme .kc-card-support { grid-column: auto; }
    .kc-theme .kc-account { padding: 16px; gap: 14px; flex-direction: column; }
    .kc-theme .kc-contact { padding: 20px; }
    .kc-theme .kc-form, .kc-theme .login .well { padding: 18px 14px; }
    .kc-theme .table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .kc-theme .table th, .kc-theme .table td { padding: 10px; min-width: 110px; }
    .kc-theme .table .subject_td { min-width: 240px; }
    .kc-theme #filter-bar { padding: 12px; }
    .kc-theme #filter-bar .hidden-phone { display: inline-block !important; }
    .kc-theme .btn-toolbar .btn-group { white-space: normal; }
}
@media (prefers-reduced-motion: reduce) { .kc-theme * { transition: none !important; } }
