/* ================================================================
   Ownership-Request-Seite  (Verwaltungszugang beantragen)
   WCAG 2.1 AA
   ================================================================ */

.ownership-req-page {
    min-height: 100%;
    background: var(--color-background, #f8fafc);
    padding: 2.5rem 1rem 5rem;
}

.ownership-req-container {
    max-width: 700px;
    margin: 0 auto;
}

.ownership-req-container--narrow {
    max-width: 560px;
}

/* ── Header ───────────────────────────────────────────────── */

.ownership-req-header {
    margin-bottom: 2rem;
}

.ownership-req-header__eyebrow {
    font-size: 0.8125rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-primary, #2563eb);
    margin-bottom: 0.4rem;
}

.ownership-req-header__title {
    font-size: 1.875rem;
    font-weight: 700;
    color: var(--color-text, #0f172a);
    margin-bottom: 0.5rem;
    line-height: 1.2;
}

.ownership-req-header__subtitle {
    font-size: 1rem;
    color: #64748b;
    line-height: 1.6;
    max-width: 56ch;
}

/* ── Alert-Banner ────────────────────────────────────────── */

.ownership-req-alert {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    border-radius: 8px;
    padding: 0.9rem 1rem;
    margin-bottom: 1.5rem;
    font-size: 0.9375rem;
    line-height: 1.5;
}

.ownership-req-alert svg {
    flex-shrink: 0;
    margin-top: 0.1em;
}

.ownership-req-alert--error {
    background: #fef2f2;
    border: 1px solid #fca5a5;
    color: #991b1b;
}

.ownership-req-alert--info {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1e40af;
}

.ownership-req-alert__title {
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.ownership-req-alert__list {
    padding-left: 1.2rem;
    margin: 0;
}

.ownership-req-alert__link {
    color: inherit;
    text-decoration: underline;
}

/* ── Formular ────────────────────────────────────────────── */

.ownership-req-form {
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 12px;
    padding: 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.ownership-req-field {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.ownership-req-label {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-text, #0f172a);
}

.ownership-req-label--optional {
    font-weight: 400;
    color: #6b7280;
    font-size: 0.875rem;
}

/* Select */

.ownership-req-select-wrapper {
    position: relative;
}

.ownership-req-select {
    width: 100%;
    padding: 0.6rem 2.5rem 0.6rem 0.75rem;
    font-size: 0.9375rem;
    line-height: 1.5;
    color: var(--color-text, #0f172a);
    background: var(--color-surface, #fff);
    border: 1.5px solid var(--color-border, #d1d5db);
    border-radius: 8px;
    appearance: none;
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.ownership-req-select:focus {
    outline: none;
    border-color: var(--color-primary, #2563eb);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.2);
}

.ownership-req-select.is-invalid {
    border-color: #ef4444;
}

.ownership-req-select-icon {
    position: absolute;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: #6b7280;
}

/* Textarea */

.ownership-req-textarea {
    width: 100%;
    padding: 0.65rem 0.75rem;
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--color-text, #0f172a);
    background: var(--color-surface, #fff);
    border: 1.5px solid var(--color-border, #d1d5db);
    border-radius: 8px;
    resize: vertical;
    font-family: inherit;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.ownership-req-textarea:focus {
    outline: none;
    border-color: var(--color-primary, #2563eb);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.2);
}

.ownership-req-textarea.is-invalid {
    border-color: #ef4444;
}

/* Hints & Errors */

.ownership-req-hint {
    font-size: 0.8125rem;
    color: #6b7280;
    margin: 0;
    line-height: 1.4;
}

.ownership-req-hint__link {
    color: var(--color-primary, #2563eb);
    text-decoration: underline;
}

.ownership-req-error {
    font-size: 0.875rem;
    color: #dc2626;
    margin: 0;
}

/* Privacy note */

.ownership-req-privacy-note {
    font-size: 0.8125rem;
    color: #6b7280;
    margin: 0;
    line-height: 1.5;
}

.ownership-req-privacy-note a {
    color: var(--color-primary, #2563eb);
    text-decoration: underline;
}

/* Actions */

.ownership-req-actions {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    padding-top: 0.25rem;
    border-top: 1px solid var(--color-border, #e5e7eb);
}

/* ── Erfolgs-Karte (submitted) ────────────────────────────── */

.ownership-req-success-card {
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 16px;
    padding: 2.5rem 2rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
}

.ownership-req-success-card__icon {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: #f0fdf4;
    color: #16a34a;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ownership-req-success-card__title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-text, #0f172a);
    margin: 0;
}

.ownership-req-success-card__text {
    font-size: 1rem;
    color: #475569;
    line-height: 1.6;
    max-width: 44ch;
    margin: 0;
}

/* Steps */

.ownership-req-success-card__steps {
    width: 100%;
    max-width: 360px;
    display: flex;
    flex-direction: column;
    gap: 0;
    text-align: left;
    margin: 0.5rem 0;
}

.ownership-req-success-step {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 0.6rem 0;
    position: relative;
}

/* Connector line between steps */
.ownership-req-success-step:not(:last-child)::after {
    content: '';
    position: absolute;
    left: 9px;
    top: calc(0.6rem + 18px);
    width: 2px;
    height: calc(100% - 0.6rem);
    background: var(--color-border, #e5e7eb);
}

.ownership-req-success-step__dot {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 0.1rem;
}

.ownership-req-success-step--done .ownership-req-success-step__dot {
    background: #16a34a;
    border: 2px solid #16a34a;
}

.ownership-req-success-step--pending .ownership-req-success-step__dot {
    background: #fef9c3;
    border: 2px solid #ca8a04;
}

.ownership-req-success-step--future .ownership-req-success-step__dot {
    background: #f1f5f9;
    border: 2px solid #cbd5e1;
}

.ownership-req-success-step__label {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-text, #0f172a);
    margin: 0;
}

.ownership-req-success-step__hint {
    font-size: 0.8125rem;
    color: #6b7280;
    margin: 0;
}

.ownership-req-success-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: center;
    margin-top: 0.25rem;
}

/* ── Responsive ──────────────────────────────────────────── */

@media (max-width: 480px) {
    .ownership-req-form {
        padding: 1.25rem;
    }

    .ownership-req-success-card {
        padding: 1.75rem 1.25rem;
    }

    .ownership-req-header__title {
        font-size: 1.5rem;
    }

    .ownership-req-actions {
        flex-direction: column-reverse;
        align-items: stretch;
    }

    .ownership-req-success-card__actions {
        flex-direction: column;
        align-items: stretch;
    }
}

/* ── Focus-visible (WCAG 2.1 AA) ─────────────────────────── */

.ownership-req-select:focus-visible,
.ownership-req-textarea:focus-visible {
    outline: 3px solid var(--color-primary, #2563eb);
    outline-offset: 0;
    border-color: transparent;
    box-shadow: none;
}

/* ── Combobox (Einrichtungssuche) ────────────────────────── */

.or-combobox {
    position: relative;
}

.or-combobox__input-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

.or-combobox__input {
    width: 100%;
    padding: 0.6rem 2.75rem 0.6rem 0.75rem;
    font-size: 0.9375rem;
    line-height: 1.5;
    color: var(--color-text, #0f172a);
    background: var(--color-surface, #fff);
    border: 1.5px solid var(--color-border, #d1d5db);
    border-radius: 8px;
    transition: border-color 0.15s, box-shadow 0.15s;
    font-family: inherit;
}

.or-combobox__input:focus {
    outline: none;
    border-color: var(--color-primary, #2563eb);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.2);
}

.or-combobox__input:focus-visible {
    outline: 3px solid var(--color-primary, #2563eb);
    outline-offset: 0;
    border-color: transparent;
    box-shadow: none;
}

.or-combobox.is-invalid .or-combobox__input {
    border-color: #ef4444;
}

.or-combobox.is-invalid .or-combobox__input:focus {
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2);
}

/* Icon im Eingabefeld (Lupe / ×) */

.or-combobox__icon {
    position: absolute;
    right: 0.75rem;
    display: flex;
    align-items: center;
    pointer-events: none;
    color: #6b7280;
}

/* Standardmäßig: Lupe sichtbar, X versteckt */
.or-combobox__icon-clear {
    display: none;
}

/* Wenn Wert ausgewählt: X sichtbar, Lupe versteckt */
.or-combobox.has-value .or-combobox__icon-search {
    display: none;
}

.or-combobox.has-value .or-combobox__icon-clear {
    display: block;
}

/* Clear-Button (unsichtbar, aber für SR und Tastatur zugänglich) */

.or-combobox__clear-btn {
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 2.5rem;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0 8px 8px 0;
}

.or-combobox__clear-btn:focus-visible {
    outline: 3px solid var(--color-primary, #2563eb);
    outline-offset: -2px;
}

/* Listbox */

.or-combobox__listbox {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 200;
    background: var(--color-surface, #fff);
    border: 1.5px solid var(--color-border, #d1d5db);
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.10);
    max-height: 280px;
    overflow-y: auto;
    padding: 0.25rem 0;
    list-style: none;
    margin: 0;
}

/* Option */

.or-combobox__option {
    display: flex;
    flex-direction: column;
    padding: 0.55rem 0.875rem;
    cursor: pointer;
    gap: 0.1rem;
    user-select: none;
}

.or-combobox__option:hover,
.or-combobox__option.is-active {
    background: var(--color-primary-subtle, #eff6ff);
}

.or-combobox__option.is-active {
    outline: 2px solid var(--color-primary, #2563eb);
    outline-offset: -2px;
}

.or-combobox__opt-name {
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--color-text, #0f172a);
    line-height: 1.3;
}

.or-combobox__opt-addr {
    font-size: 0.8125rem;
    color: #6b7280;
    line-height: 1.3;
}

/* Kein Ergebnis */

.or-combobox__option--empty {
    font-size: 0.875rem;
    color: #6b7280;
    cursor: default;
    font-style: italic;
}

.or-combobox__option--empty:hover {
    background: none;
}

/* Scrollbar im Listbox */

.or-combobox__listbox::-webkit-scrollbar {
    width: 6px;
}

.or-combobox__listbox::-webkit-scrollbar-track {
    background: transparent;
}

.or-combobox__listbox::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 3px;
}

/* Responsive */

@media (max-width: 480px) {
    .or-combobox__listbox {
        max-height: 220px;
    }
}
