:root {
    color-scheme: light;

    --steimmo-color-primary: #2D5A43;
    --steimmo-color-primary-hover: #244B37;
    --steimmo-color-primary-active: #1F402F;
    --steimmo-color-primary-contrast: #FFFFFF;
    --steimmo-color-action-secondary: #3F4345;
    --steimmo-color-action-secondary-hover: #292B2C;

    --steimmo-color-text: #292B2C;
    --steimmo-color-text-muted: #595959;
    --steimmo-color-text-inverse: #FFFFFF;
    --steimmo-color-text-inverse-muted: #E2E0DE;

    --steimmo-color-surface: #FFFFFF;
    --steimmo-color-surface-page: #F5F2EF;
    --steimmo-color-surface-muted: #EEEBE7;
    --steimmo-color-surface-subtle: #F2EFEC;
    --steimmo-color-surface-brand: #DFD7CE;
    --steimmo-color-surface-inverse: #3F4345;
    --steimmo-color-accent-muted: #AB9F94;

    --steimmo-color-border: #D4CEC8;
    --steimmo-color-border-strong: #77716C;

    --steimmo-color-success: #2D6A4F;
    --steimmo-color-success-text: #205735;
    --steimmo-color-success-surface: #EAF4EC;
    --steimmo-color-success-surface-emphasis: #C8E2D0;
    --steimmo-color-success-border: #2D6A4F;
    --steimmo-color-warning: #825000;
    --steimmo-color-warning-text: #5E3A00;
    --steimmo-color-warning-surface: #FFF3D6;
    --steimmo-color-warning-border: #B57914;
    --steimmo-color-danger: #922222;
    --steimmo-color-danger-hover: #7A1C1C;
    --steimmo-color-danger-active: #651818;
    --steimmo-color-danger-text: #922222;
    --steimmo-color-danger-surface: #FDECEC;
    --steimmo-color-danger-border: #922222;
    --steimmo-color-info: #174957;
    --steimmo-color-info-surface: #EAF3F5;
    --steimmo-color-info-border: #174957;

    --steimmo-color-disabled-text: #595959;
    --steimmo-color-disabled-surface: #ECEAE6;
    --steimmo-color-disabled-border: #C9C4BE;
    --steimmo-color-focus-ring: #155EEF;
    --steimmo-color-focus-ring-inverse: #FFFFFF;
    --steimmo-color-overlay: rgb(0 0 0 / 60%);

    --steimmo-font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --steimmo-font-size-xs: 0.75rem;
    --steimmo-font-size-sm: 0.875rem;
    --steimmo-font-size-base: 1rem;
    --steimmo-font-size-lg: 1.125rem;
    --steimmo-font-size-xl: 1.25rem;
    --steimmo-font-size-2xl: 1.5rem;
    --steimmo-font-size-3xl: 2rem;
    --steimmo-font-size-4xl: 2.5rem;
    --steimmo-line-height-tight: 1.25;
    --steimmo-line-height-base: 1.5;
    --steimmo-line-height-relaxed: 1.65;

    --steimmo-space-2xs: 0.25rem;
    --steimmo-space-xs: 0.5rem;
    --steimmo-space-sm: 0.75rem;
    --steimmo-space-md: 1rem;
    --steimmo-space-lg: 1.5rem;
    --steimmo-space-xl: 2rem;
    --steimmo-space-2xl: 3rem;

    --steimmo-radius-sm: 4px;
    --steimmo-radius-md: 8px;
    --steimmo-radius-lg: 10px;
    --steimmo-radius-pill: 999px;
    --steimmo-shadow-sm: 0 2px 10px rgb(41 43 44 / 8%);
    --steimmo-shadow-md: 0 8px 26px rgb(41 43 44 / 12%);
    --steimmo-focus-width: 3px;
    --steimmo-focus-offset: 2px;
}

html {
    overflow-y: scroll;
}

body {
    min-height: 100vh;
    background: var(--steimmo-color-surface-page);
    color: var(--steimmo-color-text);
    font-family: var(--steimmo-font-family);
    font-size: var(--steimmo-font-size-base);
    line-height: var(--steimmo-line-height-base);
}

/* Project-specific architectural diagrams; surrounding controls remain UIkit. */
.home-facade-preview,
.architecture-view { --steimmo-color-focus-ring: var(--steimmo-color-primary); }

.building-facade,
.floor-plan {
    display: block;
    width: 100%;
    height: auto;
}

.facade-floor { cursor: pointer; }
.facade-hit { fill: transparent; stroke: transparent; stroke-width: 3; transition: fill .15s; }
.facade-floor-label rect { fill: #fff; stroke: #ddd; }
.facade-floor-label text { fill: #555; font: 15px Arial, sans-serif; }
.facade-floor-label .facade-floor-summary { font-size: 11px; fill: var(--steimmo-color-text-muted); }
.facade-floor-label path { stroke: #aaa; }
.facade-floor:hover .facade-hit,
.facade-floor:focus-visible .facade-hit { fill: color-mix(in srgb, var(--steimmo-color-focus-ring) 15%, transparent); stroke: var(--steimmo-color-focus-ring); }
.facade-floor:hover .facade-floor-label rect,
.facade-floor:focus-visible .facade-floor-label rect { stroke: var(--steimmo-color-focus-ring); stroke-width: 2; }
.floor-navigation { scroll-margin-top: 18px; }
.floor-plan-frame { max-width: 1100px; margin-left: auto; margin-right: auto; overflow-x: auto; }
.floor-plan { min-width: 680px; }
.floor-plan-frame:focus-visible { outline: 2px solid var(--steimmo-color-focus-ring); outline-offset: 4px; }
/* Simplified architecture traced in the source coordinate system. */
.plan-shared { fill: #f5f3ee; }
.plan-roof { fill: #edeae3; stroke: #b1aea6; stroke-width: 1; }
.plan-apartment-shape { fill: #edf3e8; stroke: #596254; stroke-width: 2; stroke-linejoin: round; transition: fill .15s, stroke .15s; }
a.plan-apartment { cursor: pointer; }
a.plan-apartment:hover .plan-apartment-shape,
a.plan-apartment:focus-visible .plan-apartment-shape { fill: color-mix(in srgb, var(--steimmo-color-primary) 15%, var(--steimmo-color-surface)); stroke: var(--steimmo-color-focus-ring); }
.is-unavailable .plan-apartment-shape { fill: url(#plan-unavailable-hatch); stroke: #999e96; }
.plan-unavailable-caption rect { fill: #f2f2ef; stroke: #b4b8b0; stroke-width: 1; }
.plan-unavailable-caption text { fill: #5e645a; font: 12px Arial, sans-serif; }
.plan-linework { pointer-events: none; }
.plan-walls { stroke: #8a9285; stroke-width: 1.5; }
.plan-door-gap { stroke: #f6f6f2; stroke-width: 3; }
.plan-doors { stroke: #a5ad9e; stroke-width: .7; }
.plan-lines { fill: none; stroke: #b2b6af; stroke-width: .6; }
.plan-stair-outline { stroke: #a5aaa1; stroke-width: .7; }
.plan-lift { fill: white; stroke: #656e60; stroke-width: 1.5; }
.plan-room-label { fill: #687260; text-anchor: middle; font: 6px Arial, sans-serif; }
.plan-furniture { stroke: #b1baaa; stroke-width: .7; }
.plan-balconies { stroke: #a5ada0; stroke-width: 1; }
.plan-windows { stroke: #b5cddd; stroke-width: 3; }
.plan-annotations { pointer-events: none; }
.plan-caption { font: 9px Arial, sans-serif; fill: #26352a; }
.plan-caption rect { fill: #fff; fill-opacity: .96; stroke: #bac5b5; stroke-width: .6; }
.plan-caption .plan-number { font-weight: 700; }
.plan-caption .plan-area { font-size: 8px; }
:is(.is-ground, .is-regular) .plan-caption { font-size: 14px; }
:is(.is-ground, .is-regular) .plan-caption .plan-area { font-size: 12px; }
:is(.is-ground, .is-regular) .plan-room-label { font-size: 14px; }
:is(.is-ground, .is-regular) .plan-apartment-shape { stroke: none; }
:is(.is-ground, .is-regular) .plan-walls { stroke: #596254; stroke-width: 3; stroke-linecap: butt; stroke-linejoin: miter; }
:is(.is-ground, .is-regular) .plan-windows { stroke: #b5cddd; stroke-width: 4; }
:is(.is-ground, .is-regular) .plan-balconies { stroke: #a5ada0; stroke-width: 1.5; }
:is(.is-ground, .is-regular) .plan-doors { stroke-width: 1; }
:is(.is-ground, .is-regular) .plan-lift-label { font-size: 10px; }
.plan-balcony-area { fill: #edf5ec; }
.plan-caption.is-unavailable { fill: #666; }
.plan-caption.is-unavailable rect { stroke: #aaa; }
.apartment-gallery { display: grid; grid-template-columns: 2fr 1fr; gap: 16px; }
.apartment-gallery-main { grid-row: span 2; }
.apartment-gallery-main:only-child { grid-column: 1 / -1; }
.apartment-gallery-pair { grid-template-columns: 1fr 1fr; }
.apartment-gallery-pair .apartment-gallery-main { grid-row: auto; grid-column: auto; }
.apartment-gallery-pair .apartment-gallery-photo.apartment-gallery-main img { min-height: 0; }
.apartment-gallery-photo { display: block; position: relative; min-height: 180px; overflow: hidden; }
.apartment-gallery-photo img { width: 100%; height: 100%; max-height: 650px; object-fit: cover; aspect-ratio: 4 / 3; }
.apartment-gallery-photo.apartment-gallery-main img { min-height: 420px; }
.apartment-gallery-more { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; background: #18221a99; color: #fff; font-size: 20px; }
.apartment-gallery-stack .apartment-gallery-more::before { content: ""; position: absolute; inset: 12px; border: 1px solid #ffffff99; border-radius: 3px; box-shadow: 0 0 0 4px #ffffff33; }
.apartment-gallery-photo:focus-visible { outline: 3px solid var(--steimmo-color-focus-ring); outline-offset: 3px; }
.apartment-gallery .uk-cover-container { margin: 0 !important; height: 100%; min-height: 180px; }
.apartment-gallery .apartment-gallery-main .uk-cover-container { min-height: 420px; }
.apartment-photo-thumbnail { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

@media (max-width: 639px) {
    .apartment-gallery { grid-template-columns: 1fr 1fr; gap: 8px; }
    .apartment-gallery-main { grid-column: 1 / -1; grid-row: auto; }
    .apartment-gallery-photo.apartment-gallery-main img,
    .apartment-gallery .apartment-gallery-main .uk-cover-container { min-height: 250px; }
    .apartment-gallery-photo,
    .apartment-gallery .uk-cover-container { min-height: 120px; }
}

.handover-photo-thumbnail {
    display: block;
    width: 100%;
    height: 140px;
    object-fit: cover;
}

.handover-photo-modal {
    box-sizing: border-box;
    width: 100vw;
    max-width: none;
    height: 100vh;
    max-height: none;
    padding: 16px;
    border: 0;
    background: transparent;
}

.handover-photo-modal::backdrop {
    background: var(--steimmo-color-overlay);
}

.handover-photo-modal-dialog {
    position: relative;
    box-sizing: border-box;
    width: fit-content;
    max-width: min(95vw, 1200px);
    margin: auto;
}

.handover-photo-modal-close {
    position: absolute;
    z-index: 1;
    top: 8px;
    right: 8px;
}

.handover-photo-modal-image {
    display: block;
    max-width: 100%;
    max-height: calc(100vh - 100px);
    width: auto;
    margin: 0 auto;
}

@media (max-width: 639px) {
    .handover-page-header,
    .handover-section-header,
    .handover-checklist-item {
        display: block;
        margin-left: 0;
    }

    .handover-page-header > *,
    .handover-section-header > *,
    .handover-checklist-item > * {
        box-sizing: border-box;
        width: 100% !important;
        margin-left: 0 !important;
    }

    .handover-page-header > * + *,
    .handover-section-header > * + *,
    .handover-checklist-item > * + * {
        margin-top: 10px;
    }

    .handover-page-header .uk-heading-medium,
    .handover-section-header .uk-heading-divider {
        overflow-wrap: anywhere;
    }
}
/* Fixed backing size retains signatures during responsive resizing and rotation. */
.handover-signature-pad {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 1;
    border: 2px solid var(--steimmo-color-border-strong);
    background: var(--steimmo-color-surface);
    touch-action: none;
    margin-bottom: 0.75rem;
}
#signature-error { white-space: pre-line; }

h1,
h2,
h3,
h4,
h5,
h6,
.uk-heading-small,
.uk-heading-medium,
.uk-heading-large,
.uk-card-title {
    color: var(--steimmo-color-text);
    line-height: var(--steimmo-line-height-tight);
}

.uk-text-meta,
.uk-text-muted {
    color: var(--steimmo-color-text-muted) !important;
}

.uk-text-small {
    font-size: var(--steimmo-font-size-sm);
}

.uk-text-lead {
    font-size: var(--steimmo-font-size-lg);
    line-height: var(--steimmo-line-height-relaxed);
}

a,
.uk-link {
    color: var(--steimmo-color-primary);
    text-underline-offset: var(--steimmo-space-2xs);
}

a:hover,
.uk-link:hover {
    color: var(--steimmo-color-primary-hover);
}

a:active,
.uk-link:active,
.uk-button-text:active {
    color: var(--steimmo-color-primary-active);
}

.uk-navbar-container:not(.uk-navbar-transparent) {
    background: var(--steimmo-color-surface-inverse);
    color: var(--steimmo-color-text-inverse);
}

.uk-navbar-container .uk-navbar-item,
.uk-navbar-container .uk-navbar-nav > li > a,
.uk-navbar-container .uk-navbar-toggle,
.uk-navbar-container .uk-logo,
.uk-navbar-container .uk-button-text {
    color: var(--steimmo-color-text-inverse);
}

.uk-navbar-container .uk-text-meta {
    color: var(--steimmo-color-text-inverse-muted) !important;
}

.uk-navbar-container a:hover,
.uk-navbar-container a:focus {
    color: var(--steimmo-color-text-inverse);
    text-decoration: underline;
    text-underline-offset: var(--steimmo-space-2xs);
}

.uk-button {
    border-radius: var(--steimmo-radius-sm);
    font-weight: 600;
}

.uk-button-primary {
    border: 1px solid var(--steimmo-color-primary);
    background: var(--steimmo-color-primary);
    color: var(--steimmo-color-primary-contrast);
}

.uk-button-primary:not(:disabled):hover,
.uk-button-primary:not(:disabled):focus {
    border-color: var(--steimmo-color-primary-hover);
    background: var(--steimmo-color-primary-hover);
    color: var(--steimmo-color-primary-contrast);
}

.uk-button-primary:not(:disabled):active {
    border-color: var(--steimmo-color-primary-active);
    background: var(--steimmo-color-primary-active);
    color: var(--steimmo-color-primary-contrast);
}

.uk-button-default {
    border-color: var(--steimmo-color-action-secondary);
    background: var(--steimmo-color-surface);
    color: var(--steimmo-color-action-secondary);
}

.uk-button-default:not(:disabled):hover,
.uk-button-default:not(:disabled):focus {
    border-color: var(--steimmo-color-action-secondary-hover);
    background: var(--steimmo-color-surface-muted);
    color: var(--steimmo-color-action-secondary-hover);
}

.uk-button-default:not(:disabled):active {
    background: var(--steimmo-color-surface-brand);
}

.uk-button-danger {
    border: 1px solid var(--steimmo-color-danger);
    background: var(--steimmo-color-danger);
    color: var(--steimmo-color-primary-contrast);
}

.uk-button-danger:not(:disabled):hover,
.uk-button-danger:not(:disabled):focus {
    border-color: var(--steimmo-color-danger-hover);
    background: var(--steimmo-color-danger-hover);
    color: var(--steimmo-color-primary-contrast);
}

.uk-button-danger:not(:disabled):active {
    border-color: var(--steimmo-color-danger-active);
    background: var(--steimmo-color-danger-active);
}

.uk-button-text {
    color: var(--steimmo-color-primary);
}

.uk-button-primary:disabled,
.uk-button-default:disabled,
.uk-button-danger:disabled {
    border-color: var(--steimmo-color-disabled-border);
    background: var(--steimmo-color-disabled-surface);
    color: var(--steimmo-color-disabled-text);
    cursor: not-allowed;
    opacity: 1;
}

.uk-button-text:disabled {
    border-color: transparent;
    background: transparent;
    color: var(--steimmo-color-disabled-text);
    cursor: not-allowed;
    opacity: 1;
}

.uk-form-label {
    color: var(--steimmo-color-text);
    font-weight: 600;
}

.uk-input,
.uk-select,
.uk-textarea {
    border-color: var(--steimmo-color-border-strong);
    border-radius: var(--steimmo-radius-sm);
    background: var(--steimmo-color-surface);
    color: var(--steimmo-color-text);
    padding-inline: var(--steimmo-space-xs);
}

.uk-input::placeholder,
.uk-textarea::placeholder {
    color: var(--steimmo-color-text-muted);
    opacity: 1;
}

.uk-input:hover:not(:disabled),
.uk-select:hover:not(:disabled),
.uk-textarea:hover:not(:disabled) {
    border-color: var(--steimmo-color-action-secondary);
}

.uk-input:focus,
.uk-select:focus,
.uk-textarea:focus {
    border-color: var(--steimmo-color-primary);
    background: var(--steimmo-color-surface);
    color: var(--steimmo-color-text);
}

.uk-form-danger,
.uk-input[aria-invalid="true"],
.uk-select[aria-invalid="true"],
.uk-textarea[aria-invalid="true"],
.uk-input.uk-form-danger,
.uk-select.uk-form-danger,
.uk-textarea.uk-form-danger {
    border-color: var(--steimmo-color-danger);
}

.uk-input:disabled,
.uk-select:disabled,
.uk-textarea:disabled {
    border-color: var(--steimmo-color-disabled-border);
    background: var(--steimmo-color-disabled-surface);
    color: var(--steimmo-color-disabled-text);
    opacity: 1;
}

.uk-checkbox,
.uk-radio {
    border-color: var(--steimmo-color-border-strong);
    background-color: var(--steimmo-color-surface);
}

.uk-checkbox:checked,
.uk-radio:checked,
.uk-checkbox:indeterminate {
    border-color: var(--steimmo-color-primary);
    background-color: var(--steimmo-color-primary);
}

.uk-checkbox:disabled,
.uk-radio:disabled {
    cursor: not-allowed;
    opacity: 0.65;
}

.uk-alert,
.uk-alert-primary,
.uk-alert-success,
.uk-alert-warning,
.uk-alert-danger {
    position: relative;
    margin-block: var(--steimmo-space-md);
    border-radius: var(--steimmo-radius-sm);
    padding: var(--steimmo-space-md) var(--steimmo-space-lg);
}

:is(.uk-alert, .uk-alert-primary, .uk-alert-success, .uk-alert-warning, .uk-alert-danger) > :first-child { margin-top: 0; }
:is(.uk-alert, .uk-alert-primary, .uk-alert-success, .uk-alert-warning, .uk-alert-danger) > :last-child { margin-bottom: 0; }
.notice-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--steimmo-space-sm); }

.uk-alert-primary {
    border-left: 4px solid var(--steimmo-color-info-border);
    background: var(--steimmo-color-info-surface);
    color: var(--steimmo-color-info);
}

.uk-alert-success {
    border-left: 4px solid var(--steimmo-color-success-border);
    background: var(--steimmo-color-success-surface);
    color: var(--steimmo-color-success-text);
}

.uk-alert-warning {
    border-left: 4px solid var(--steimmo-color-warning-border);
    background: var(--steimmo-color-warning-surface);
    color: var(--steimmo-color-warning-text);
}

.uk-alert-danger {
    border-left: 4px solid var(--steimmo-color-danger-border);
    background: var(--steimmo-color-danger-surface);
    color: var(--steimmo-color-danger-text);
}

.uk-text-primary {
    color: var(--steimmo-color-info) !important;
}

.uk-text-success {
    color: var(--steimmo-color-success-text) !important;
}

.uk-text-warning {
    color: var(--steimmo-color-warning-text) !important;
}

.uk-text-danger {
    color: var(--steimmo-color-danger-text) !important;
}

.uk-label {
    border-radius: var(--steimmo-radius-pill);
    background: var(--steimmo-color-surface-muted);
    color: var(--steimmo-color-text);
    padding: var(--steimmo-space-2xs) var(--steimmo-space-sm);
}

.uk-label-primary {
    background: var(--steimmo-color-info-surface);
    color: var(--steimmo-color-info);
}

.uk-label-success {
    background: var(--steimmo-color-success);
    color: var(--steimmo-color-primary-contrast);
}

.uk-label-warning {
    background: var(--steimmo-color-warning-surface);
    color: var(--steimmo-color-warning-text);
}

.uk-label-danger {
    background: var(--steimmo-color-danger);
    color: var(--steimmo-color-primary-contrast);
}

.uk-badge {
    background: var(--steimmo-color-primary);
    color: var(--steimmo-color-primary-contrast);
}

.handover-photo-modal-dialog {
    box-shadow: var(--steimmo-shadow-md);
}

.uk-card-default {
    border: 1px solid var(--steimmo-color-border);
    border-radius: var(--steimmo-radius-md);
    background: var(--steimmo-color-surface);
    box-shadow: var(--steimmo-shadow-sm);
    color: var(--steimmo-color-text);
}

.uk-card-muted,
.uk-section-muted {
    background: var(--steimmo-color-surface-muted);
    color: var(--steimmo-color-text);
}

.uk-table thead {
    background: var(--steimmo-color-surface-subtle);
}

/* Group related application fields; use cards when table columns become cramped. */
.application-filter-actions {
    gap: var(--steimmo-space-md) var(--steimmo-space-lg);
}

.application-filter-actions .uk-button {
    max-width: 100%;
    white-space: normal;
}

.application-table {
    table-layout: fixed;
}

.application-table [data-application-row] {
    cursor: pointer;
}

.application-table [data-application-row]:hover {
    background: var(--steimmo-color-surface-subtle);
}

.application-table th,
.application-table td {
    overflow-wrap: anywhere;
    vertical-align: top;
}

.application-table tbody th {
    font-size: inherit;
    font-weight: normal;
    text-transform: none;
}

.application-cell-label {
    display: none;
}

/* Only the processing status is colored; priority remains a separate field. */
.application-review-summary {
    padding: var(--steimmo-space-sm);
    border-left: 3px solid var(--steimmo-color-info-border);
    border-radius: var(--steimmo-radius-sm);
    background: var(--steimmo-color-info-surface);
}

.application-review-summary-success {
    border-left-color: var(--steimmo-color-success-border);
    background: var(--steimmo-color-success-surface-emphasis);
}

.application-review-summary-danger {
    border-left-color: var(--steimmo-color-danger-border);
    background: var(--steimmo-color-danger-surface);
}

.application-review-summary-warning {
    border-left-color: var(--steimmo-color-warning-border);
    background: var(--steimmo-color-warning-surface);
}

.application-review-summary-neutral {
    border-left-color: var(--steimmo-color-border-strong);
    background: var(--steimmo-color-surface-muted);
}

@media (min-width: 1200px) {
    .application-table thead th:first-child { width: 26%; }
    .application-table thead th:nth-child(2) { width: 20%; }
    .application-table thead th:nth-child(3) { width: 18%; }
    .application-table thead th:nth-child(4) { width: 22%; }
    .application-table thead th:nth-child(5) { width: 14%; }
}

@media (max-width: 1199px) {
    .application-table,
    .application-table caption,
    .application-table tbody,
    .application-table th,
    .application-table td {
        display: block;
    }

    .application-table thead {
        display: none;
    }

    .application-table tbody tr {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--steimmo-space-lg);
        margin-top: var(--steimmo-space-md);
        padding: var(--steimmo-space-lg);
        border: 1px solid var(--steimmo-color-border);
        border-radius: var(--steimmo-radius-md);
        background: var(--steimmo-color-surface);
        box-shadow: var(--steimmo-shadow-sm);
    }

    .management-table .application-table tbody th,
    .management-table .application-table tbody td {
        padding: 0;
        min-width: 0;
    }

    .application-table tbody th {
        grid-column: 1 / -1;
    }

    .application-cell-label {
        display: block;
        margin-bottom: var(--steimmo-space-2xs);
        font-weight: 600;
    }
}

@media (max-width: 639px) {
    .application-table tbody tr {
        grid-template-columns: minmax(0, 1fr);
    }
}

.uk-table th {
    color: var(--steimmo-color-text);
}

.uk-table th,
.uk-table td,
.uk-table-divider > :first-child > tr:not(:first-child),
.uk-table-divider > :last-child > tr:not(:last-child),
.uk-list-divider > li:nth-child(n + 2) {
    border-color: var(--steimmo-color-border);
}

.uk-breadcrumb > :last-child > * {
    color: var(--steimmo-color-text-muted);
}

.uk-pagination > .uk-active > * {
    color: var(--steimmo-color-primary);
    font-weight: 600;
}

.uk-pagination > * > a:hover {
    color: var(--steimmo-color-primary-hover);
}

:focus-visible {
    outline: var(--steimmo-focus-width) solid var(--steimmo-color-focus-ring);
    outline-offset: var(--steimmo-focus-offset);
}

.uk-navbar-container :focus-visible {
    outline-color: var(--steimmo-color-focus-ring-inverse);
}

/* Shared page frame for US-18; uses the corporate theme from US-17. */
.site-shell {
    display: flex;
    flex-direction: column;
}

.site-main { flex: 1; }

.site-skip-link {
    position: absolute;
    top: -100px;
    left: var(--steimmo-space-md);
    z-index: 2000;
    padding: var(--steimmo-space-sm) var(--steimmo-space-md);
    background: var(--steimmo-color-surface);
}

.site-skip-link:focus { top: var(--steimmo-space-xs); }

.site-header-inner {
    display: flex;
    align-items: center;
    gap: var(--steimmo-space-xl);
    min-height: 88px;
}

.site-brand {
    display: inline-flex;
    flex-direction: column;
    flex-shrink: 0;
}

.site-header .site-brand,
.site-header .site-brand:hover {
    color: var(--steimmo-color-text-inverse);
    text-decoration: none;
}

.site-brand-name {
    font-size: var(--steimmo-font-size-2xl);
    font-weight: 700;
    letter-spacing: -.035em;
    line-height: var(--steimmo-line-height-tight);
}

.site-brand-subtitle {
    margin-top: var(--steimmo-space-2xs);
    font-size: var(--steimmo-font-size-xs);
    color: var(--steimmo-color-text-inverse-muted);
    letter-spacing: .03em;
}

.site-desktop-navigation { flex: 1; }

.site-desktop-navigation .uk-navbar-nav {
    justify-content: flex-end;
    gap: var(--steimmo-space-md);
    flex-wrap: wrap;
}

.site-desktop-navigation .uk-navbar-nav > li > a,
.site-management-toggle,
.site-header .site-account-toggle {
    position: relative;
    min-height: 88px;
    padding: 0;
    font: inherit;
    font-size: var(--steimmo-font-size-sm);
    text-transform: none;
}

.site-desktop-navigation .uk-navbar-nav > li > a[aria-current] {
    text-decoration: none;
}

.site-desktop-navigation .uk-navbar-nav > li > a[aria-current]::after,
.site-management-toggle.is-current::after {
    position: absolute;
    right: 0;
    bottom: 18px;
    left: 0;
    height: 2px;
    background: var(--steimmo-color-text-inverse);
    content: "";
}

.site-management-toggle {
    display: inline-flex;
    align-items: center;
    gap: var(--steimmo-space-xs);
    border: 0;
    background: transparent;
    color: var(--steimmo-color-text-inverse);
    cursor: pointer;
}

.site-management-toggle:hover { color: var(--steimmo-color-text-inverse-muted); }
.site-management-toggle:not(.is-current):hover { text-decoration: underline; }
.site-management-toggle[aria-expanded="true"] > [uk-icon],
.site-account-toggle[aria-expanded="true"] > [uk-icon] { transform: rotate(180deg); }

.site-header-dropdown {
    min-width: 220px;
    max-width: min(320px, calc(100vw - 32px));
    padding: var(--steimmo-space-xs) 0;
    border: 1px solid var(--steimmo-color-border);
    border-radius: 0;
    background: var(--steimmo-color-surface);
    color: var(--steimmo-color-text);
    box-shadow: var(--steimmo-shadow-sm);
    font-size: var(--steimmo-font-size-sm);
}

.site-header .site-header-dropdown a,
.site-header .site-header-dropdown .uk-button {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 40px;
    padding: var(--steimmo-space-xs) var(--steimmo-space-md);
    border: 0;
    border-left: 3px solid transparent;
    border-radius: 0;
    background: transparent;
    box-sizing: border-box;
    color: var(--steimmo-color-text);
    font: inherit;
    line-height: 1.5;
    text-align: left;
}

.site-header .site-header-dropdown a:hover,
.site-header .site-header-dropdown a:focus-visible,
.site-header .site-header-dropdown .uk-button:hover,
.site-header .site-header-dropdown .uk-button:focus-visible { color: var(--steimmo-color-text); background: var(--steimmo-color-surface-brand); text-decoration: none; }
.site-header .site-header-dropdown a[aria-current] { color: var(--steimmo-color-primary); border-left-color: var(--steimmo-color-primary); font-weight: 700; text-decoration: none; }
.site-header .site-header-dropdown :focus-visible { outline-color: var(--steimmo-color-focus-ring) !important; outline-offset: -3px; }
.site-header-dropdown .site-account-name { margin: 0; padding: var(--steimmo-space-xs) var(--steimmo-space-md) var(--steimmo-space-sm); border-bottom: 1px solid var(--steimmo-color-border); color: var(--steimmo-color-text-muted); }
.site-header-dropdown form { margin: 0; }
.site-mobile-menu .uk-nav-header { color: var(--steimmo-color-text-muted); }
.site-mobile-management-heading { margin-top: var(--steimmo-space-md); border-top: 1px solid var(--steimmo-color-border); padding-top: var(--steimmo-space-md); color: var(--steimmo-color-text-muted); }

.site-desktop-account {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--steimmo-space-md);
    padding-left: var(--steimmo-space-xl);
    flex-shrink: 0;
}

.site-desktop-account::before { position: absolute; left: 0; top: 50%; height: 24px; border-left: 1px solid var(--steimmo-color-text-muted); transform: translateY(-50%); content: ""; }

.site-header .site-login-link,
.site-header .site-account-toggle {
    color: var(--steimmo-color-text-inverse);
    font-size: var(--steimmo-font-size-sm);
}

.site-header .site-account-toggle { display: inline-flex; align-items: center; gap: var(--steimmo-space-xs); }
.site-header .site-account-toggle::before { bottom: 18px; border-color: var(--steimmo-color-text-inverse); }
.site-header .uk-button { text-transform: none; }
.site-login-link[aria-current] { text-decoration: underline; }
.site-account-name { overflow-wrap: anywhere; margin-top: 0; }

.site-mobile-toggle {
    display: none;
    min-height: 48px;
    margin-left: auto;
    gap: var(--steimmo-space-xs);
    padding: var(--steimmo-space-xs);
    border: 0;
    background: transparent;
    font-size: var(--steimmo-font-size-sm);
    cursor: pointer;
}

.site-mobile-menu {
    width: min(340px, 100%);
    padding-top: 72px;
    background: var(--steimmo-color-surface);
    color: var(--steimmo-color-text);
}

.site-mobile-menu-heading {
    margin-top: 0;
    font-size: var(--steimmo-font-size-xl);
    font-weight: 700;
}

.site-mobile-menu .uk-nav > li > a {
    padding-block: var(--steimmo-space-sm);
    color: var(--steimmo-color-text);
}

.site-mobile-menu a[aria-current],
.site-footer a[aria-current] {
    font-weight: 700;
    text-decoration: underline;
}

.site-mobile-menu .uk-nav a[aria-current] { color: var(--steimmo-color-primary); }

.site-mobile-account {
    display: flex;
    flex-direction: column;
    gap: var(--steimmo-space-md);
    margin-top: var(--steimmo-space-lg);
    padding-top: var(--steimmo-space-lg);
    border-top: 1px solid var(--steimmo-color-border);
}

.site-mobile-account .uk-button { width: 100%; text-transform: none; }
.site-mobile-account .site-account-name { margin: 0; }

.site-mobile-menu .uk-offcanvas-close,
.site-mobile-menu .site-login-link { color: var(--steimmo-color-text); }

.site-mobile-menu .uk-button-primary {
    border-color: var(--steimmo-color-primary);
    background: var(--steimmo-color-primary);
    color: var(--steimmo-color-primary-contrast);
}

.site-mobile-menu .uk-button-primary:hover,
.site-mobile-menu .uk-button-primary:focus {
    border-color: var(--steimmo-color-primary-hover);
    background: var(--steimmo-color-primary-hover);
    color: var(--steimmo-color-primary-contrast);
}

.site-mobile-menu .uk-button-default {
    border-color: var(--steimmo-color-action-secondary);
    background: var(--steimmo-color-surface);
    color: var(--steimmo-color-text);
}

.site-mobile-menu .uk-button-default:hover,
.site-mobile-menu .uk-button-default:focus {
    background: var(--steimmo-color-surface-muted);
    color: var(--steimmo-color-text);
}

.site-mobile-menu :focus-visible { outline-color: var(--steimmo-color-focus-ring); }

.site-footer {
    padding-top: var(--steimmo-space-xl);
    border-top: 1px solid var(--steimmo-color-border);
    background: var(--steimmo-color-surface-inverse);
    color: var(--steimmo-color-text-inverse);
}

.site-footer a { color: var(--steimmo-color-text-inverse); }
.site-footer a:hover { color: var(--steimmo-color-text-inverse-muted); text-decoration: underline; }
.site-footer :focus-visible { outline-color: var(--steimmo-color-focus-ring-inverse); }

.site-footer-top {
    display: grid;
    grid-template-columns: 1.4fr repeat(4, 1fr);
    gap: var(--steimmo-space-lg);
    padding-bottom: var(--steimmo-space-xl);
}

.site-footer-brand { font-size: var(--steimmo-font-size-xl); line-height: 1.3; }
.site-footer-top > div:first-child { display: flex; flex-direction: column; gap: var(--steimmo-space-sm); }
.site-footer-description { margin: 0; font-size: var(--steimmo-font-size-sm); }

.site-footer-heading {
    margin: 0 0 var(--steimmo-space-sm);
    color: var(--steimmo-color-text-inverse-muted);
    font-size: var(--steimmo-font-size-xs);
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.site-footer-links {
    display: flex;
    flex-direction: column;
    gap: var(--steimmo-space-sm) var(--steimmo-space-lg);
    max-width: 600px;
    margin: 0;
}

.site-footer-links > li:nth-child(n + 2) { margin-top: 0; }
.site-footer-legal { flex-direction: column; }
.site-footer-links a { font-size: var(--steimmo-font-size-sm); }

.site-footer-bottom {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--steimmo-space-md);
    padding-block: var(--steimmo-space-md);
    border-top: 1px solid var(--steimmo-color-border-strong);
    color: var(--steimmo-color-text-inverse-muted);
    font-size: var(--steimmo-font-size-xs);
}

@media (min-width: 1200px) and (max-width: 1399px) {
    .site-brand-subtitle { display: none; }
}

@media (max-width: 1199px) {
    .site-desktop-navigation, .site-desktop-account { display: none; }
    .site-mobile-toggle { display: inline-flex; }
    .site-header-inner { min-height: 76px; }
    .site-footer-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .site-footer-top > div:first-child { grid-column: 1 / -1; }
}

@media (max-width: 639px) {
    .site-brand-name { font-size: var(--steimmo-font-size-xl); }
    .site-brand-subtitle { letter-spacing: 0; }
    .site-brand { flex-shrink: 1; }
    .site-brand-subtitle { max-width: 205px; }
    .site-header-inner { gap: var(--steimmo-space-xs); }
    .site-footer-top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--steimmo-space-lg) var(--steimmo-space-md); }
    .site-footer-top > nav { min-width: 0; }
    .site-footer-links { flex-direction: column; }
    .site-footer-links a { overflow-wrap: anywhere; }
}

/* Homepage layout uses the shared UIkit components and US-17 theme tokens. */
.home-eyebrow {
    margin: 0 0 var(--steimmo-space-md);
    color: var(--steimmo-color-primary);
    font-size: var(--steimmo-font-size-xs);
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.home-title {
    margin: 0 0 var(--steimmo-space-lg);
    font-size: clamp(2.25rem, 4.5vw, 4rem);
    font-weight: 600;
    letter-spacing: -.045em;
    line-height: 1.1;
    overflow-wrap: break-word;
}

.home-company-hero {
    position: relative;
    isolation: isolate;
    padding-block: clamp(3rem, 7vw, 6rem) var(--steimmo-space-lg);
    background: var(--steimmo-color-action-secondary);
    color: var(--steimmo-color-text-inverse);
}

.home-city-image {
    position: absolute;
    inset: 0;
    z-index: -2;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 65%;
}

.home-company-hero::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(90deg, rgb(25 37 31 / 95%) 0%, rgb(25 37 31 / 82%) 42%, rgb(25 37 31 / 18%) 100%);
    content: "";
}

.home-company-hero .home-title { max-width: 48rem; color: var(--steimmo-color-text-inverse); }
.home-company-hero .home-title > span,
.home-company-hero .home-eyebrow { color: var(--steimmo-color-surface-brand); }
.home-company-hero .home-copy { max-width: 34rem; }
.home-company-hero .home-intro { max-width: 32rem; color: inherit; }
.home-company-hero .uk-button-default { background: var(--steimmo-color-surface); }
.home-company-hero .home-status-dot { background: var(--steimmo-color-surface-brand); }
.home-company-hero :focus-visible { outline-color: var(--steimmo-color-text-inverse); }
.home-hero-content { position: relative; }
.home-image-credit { margin: var(--steimmo-space-xl) 0 0; font-size: var(--steimmo-font-size-xs); color: var(--steimmo-color-text-inverse); }
.home-image-credit a { color: inherit; text-decoration: underline; }
.home-intro { max-width: 28rem; font-size: var(--steimmo-font-size-xl); }
.home-copy { max-width: 42rem; }
.home-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--steimmo-space-sm); }
.home-actions .uk-button { text-transform: none; }
.home-availability { display: flex; align-items: center; gap: var(--steimmo-space-xs); margin-top: var(--steimmo-space-lg); font-size: var(--steimmo-font-size-sm); }
.home-status-dot { width: 8px; height: 8px; flex: 0 0 8px; border-radius: 50%; background: var(--steimmo-color-primary); }

.home-building-figure {
    padding: var(--steimmo-space-lg);
    border: 1px solid var(--steimmo-color-border);
    border-radius: var(--steimmo-radius-lg);
    background: var(--steimmo-color-surface-brand);
}

.home-figure-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--steimmo-space-xs); }
.home-figure-heading > span:first-child { font-size: var(--steimmo-font-size-sm); font-weight: 600; }
.home-figure-heading .home-eyebrow { margin: 0; letter-spacing: .06em; }
.home-facade-preview { display: grid; grid-template-columns: 150px minmax(0, 1fr); align-items: center; gap: var(--steimmo-space-md); margin-block: var(--steimmo-space-lg); padding: var(--steimmo-space-md); border-radius: var(--steimmo-radius-md); background: var(--steimmo-color-surface); }
.home-building-figure .building-facade { margin: 0; }
.home-building-figure .facade-floor-label { display: none; }
.home-building-figure figcaption { color: var(--steimmo-color-text-muted); font-size: var(--steimmo-font-size-xs); }
.home-floor-links { margin: 0; }
.home-floor-links > li:nth-child(n + 2) { margin-top: var(--steimmo-space-xs); }
.home-floor-links a { display: block; position: relative; min-height: 44px; padding: var(--steimmo-space-xs); border: 1px solid var(--steimmo-color-border); border-radius: var(--steimmo-radius-sm); background: var(--steimmo-color-surface-page); color: var(--steimmo-color-text); font-size: var(--steimmo-font-size-sm); }
.home-floor-links a:hover,
.home-floor-links a:focus-visible { border-color: var(--steimmo-color-primary); text-decoration: none; }
.home-floor-availability { display: block; padding-right: var(--steimmo-space-lg); color: var(--steimmo-color-text-muted); font-size: var(--steimmo-font-size-xs); }
.home-floor-arrow { position: absolute; right: var(--steimmo-space-xs); bottom: var(--steimmo-space-xs); }
.home-building-figure .facade-floor:hover .facade-hit,
.home-building-figure .facade-floor:focus-visible .facade-hit,
.home-facade-preview:has(.home-floor-links [data-floor="0"]:is(:hover, :focus-visible)) .facade-floor[data-floor="0"] .facade-hit,
.home-facade-preview:has(.home-floor-links [data-floor="1"]:is(:hover, :focus-visible)) .facade-floor[data-floor="1"] .facade-hit,
.home-facade-preview:has(.home-floor-links [data-floor="2"]:is(:hover, :focus-visible)) .facade-floor[data-floor="2"] .facade-hit,
.home-facade-preview:has(.home-floor-links [data-floor="3"]:is(:hover, :focus-visible)) .facade-floor[data-floor="3"] .facade-hit,
.home-facade-preview:has(.home-floor-links [data-floor="4"]:is(:hover, :focus-visible)) .facade-floor[data-floor="4"] .facade-hit { fill: rgb(45 90 67 / 15%); stroke: var(--steimmo-color-primary); }
.home-building-empty { min-height: 240px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--steimmo-color-primary); text-align: center; }
.home-company-band { background: var(--steimmo-color-surface-brand); padding-block: var(--steimmo-space-2xl); }
.home-company-band h2 { margin-bottom: 0; font-size: var(--steimmo-font-size-2xl); }
.home-building-facts { margin-block: var(--steimmo-space-lg); }
.home-building-facts > div { display: flex; justify-content: space-between; align-items: baseline; gap: var(--steimmo-space-md); padding-block: var(--steimmo-space-sm); border-bottom: 1px solid var(--steimmo-color-border); }
.home-building-facts dt { font-weight: 400; }
.home-building-facts dd { margin: 0; color: var(--steimmo-color-primary); font-size: var(--steimmo-font-size-xl); font-weight: 600; }
.home-contact { background: var(--steimmo-color-surface-brand); }
.home-contact .uk-button { text-transform: none; }
.home-contact-card { border-radius: var(--steimmo-radius-lg); }

.home-journey { border-top: 1px solid var(--steimmo-color-border); }
.home-steps { list-style: none; margin-top: var(--steimmo-space-xl); }
.home-steps h3 { margin: var(--steimmo-space-md) 0 var(--steimmo-space-sm); font-size: var(--steimmo-font-size-xl); }
.home-steps p { margin-top: 0; }
.home-step-number { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--steimmo-color-border); border-radius: 50%; background: var(--steimmo-color-surface-brand); color: var(--steimmo-color-primary); font-weight: 600; }
.home-steps .uk-button-text { text-transform: none; }
.home-portal { padding-block: var(--steimmo-space-2xl); }
.home-portal-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--steimmo-space-lg); padding: var(--steimmo-space-xl); border-radius: var(--steimmo-radius-lg); background: var(--steimmo-color-surface-subtle); }
.home-portal-inner > div:first-child { max-width: 44rem; }
.home-portal-inner h2 { font-size: var(--steimmo-font-size-2xl); }

@media (max-width: 639px) {
    .home-company-hero::before { background: rgb(25 37 31 / 84%); }
    .home-actions { flex-direction: column; align-items: stretch; }
    .home-actions .uk-button { width: 100%; box-sizing: border-box; }
    .home-building-figure { padding: var(--steimmo-space-md); }
    .home-facade-preview { display: flex; flex-direction: column; padding: var(--steimmo-space-sm); }
    .home-facade-preview .building-facade { order: -1; }
    .home-floor-links { width: 100%; }
    .home-portal-inner { padding: var(--steimmo-space-lg); }
    .home-portal-inner > div { width: 100%; }
}

/* Shared account pages. */
.auth-section { padding: 0; background: var(--steimmo-color-surface); }
.auth-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); margin: 0; overflow: hidden; background: var(--steimmo-color-surface); }
.auth-card { padding: clamp(24px, 3vw, 64px); max-width: 760px; width: 100%; box-sizing: border-box; margin-inline: auto; align-self: center; }
.auth-back { display: inline-flex; gap: var(--steimmo-space-xs); align-items: center; margin-bottom: var(--steimmo-space-lg); font-size: var(--steimmo-font-size-sm); }
.auth-eyebrow, .application-eyebrow { margin: 0 0 var(--steimmo-space-xs); color: var(--steimmo-color-primary); font-size: var(--steimmo-font-size-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.auth-card h1 { font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 600; letter-spacing: -.035em; margin-top: 0; }
.auth-intro { color: var(--steimmo-color-text-muted); margin-bottom: var(--steimmo-space-lg); }
.auth-fields { display: grid; grid-template-columns: 1fr 1fr; gap: var(--steimmo-space-md); }
.auth-field { grid-column: 1 / -1; min-width: 0; }
.auth-name { grid-column: auto; }
.auth-field .uk-form-label { margin-bottom: var(--steimmo-space-xs); }
.auth-required, .auth-field-errors { color: var(--steimmo-color-danger); }
.auth-field [aria-invalid="true"], .application-area [aria-invalid="true"] { border-color: var(--steimmo-color-danger); }
.auth-help, .auth-field-errors { margin-top: var(--steimmo-space-xs); font-size: var(--steimmo-font-size-sm); }
.auth-help ul, .auth-field-errors { padding-left: var(--steimmo-space-md); }
.auth-password-control { display: flex; align-items: stretch; gap: var(--steimmo-space-xs); }
.auth-password-control .uk-input { min-width: 0; flex: 1; }
.auth-password-toggle { padding-inline: var(--steimmo-space-sm); font-size: var(--steimmo-font-size-sm); text-transform: none; }
.auth-confirmation { display: flex; align-items: flex-start; gap: var(--steimmo-space-sm); margin-top: var(--steimmo-space-lg); padding: var(--steimmo-space-sm); border-radius: var(--steimmo-radius-md); background: var(--steimmo-color-surface-subtle); font-size: var(--steimmo-font-size-sm); }
.auth-confirmation > span { flex-shrink: 0; margin-top: 2px; color: var(--steimmo-color-primary); }
.auth-confirmation p { margin: 0; }
.auth-submit { width: 100%; min-height: 48px; margin-top: var(--steimmo-space-lg); text-transform: none; }
.auth-switch { margin: var(--steimmo-space-lg) 0 0; text-align: center; font-size: var(--steimmo-font-size-sm); }
.auth-switch a { font-weight: 600; }
.auth-privacy { margin-bottom: 0; text-align: center; }
.auth-resend { margin-top: var(--steimmo-space-lg); padding-top: var(--steimmo-space-lg); border-top: 1px solid var(--steimmo-color-border); }
.auth-resend h2 { margin: 0; font-size: var(--steimmo-font-size-lg); }
.auth-image { position: relative; min-height: 640px; background: var(--steimmo-color-surface-brand); }
.auth-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.auth-image-caption { position: absolute; bottom: var(--steimmo-space-lg); left: var(--steimmo-space-lg); right: var(--steimmo-space-lg); width: fit-content; margin: 0; padding: var(--steimmo-space-xs) var(--steimmo-space-sm); border-radius: var(--steimmo-radius-sm); background: var(--steimmo-color-surface); color: var(--steimmo-color-text-muted); font-size: var(--steimmo-font-size-xs); }

/* Applicant pages reuse UIkit and the shared corporate palette. */
.application-area { background: var(--steimmo-color-surface-page); }
.application-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--steimmo-space-lg); margin-bottom: var(--steimmo-space-xl); }
.application-heading h1 { margin: 0 0 var(--steimmo-space-sm); font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 600; letter-spacing: -.035em; }
.application-heading p:last-child { margin: 0; }
.application-area .uk-button { text-transform: none; }
.application-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: var(--steimmo-space-xl); align-items: start; }
.application-sidebar { padding: var(--steimmo-space-lg); border-radius: var(--steimmo-radius-lg); background: var(--steimmo-color-surface-brand); }
.application-progress { list-style: none; margin: 0; padding: 0; }
.application-progress li { display: flex; gap: var(--steimmo-space-sm); align-items: flex-start; padding-block: var(--steimmo-space-md); }
.application-progress li, .application-progress li > div { min-width: 0; }
.application-progress strong { overflow-wrap: anywhere; hyphens: auto; }
.application-progress li > span { display: flex; align-items: center; justify-content: center; flex: 0 0 32px; height: 32px; border: 1px solid var(--steimmo-color-border-strong); border-radius: 50%; font-size: var(--steimmo-font-size-xs); }
.application-progress small { display: block; margin-top: var(--steimmo-space-xs); color: var(--steimmo-color-text-muted); }
.application-progress .is-current > span { background: var(--steimmo-color-primary); border-color: var(--steimmo-color-primary); color: var(--steimmo-color-text-inverse); }
.application-progress .is-current strong { color: var(--steimmo-color-primary); }
.application-sidebar-note { display: flex; align-items: flex-start; gap: var(--steimmo-space-xs); padding-top: var(--steimmo-space-md); border-top: 1px solid var(--steimmo-color-border-strong); font-size: var(--steimmo-font-size-xs); }
.application-sidebar-note > span { flex-shrink: 0; }
.application-sidebar-note p { margin: 0; }
.application-main { min-width: 0; }
.application-area .uk-card { border: 1px solid var(--steimmo-color-border); border-radius: var(--steimmo-radius-lg); box-shadow: var(--steimmo-shadow-sm); }
.application-summary { border-top: 4px solid var(--steimmo-color-primary) !important; }
.application-summary-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: var(--steimmo-space-md); }
.application-summary-top h2 { margin: 0; font-size: var(--steimmo-font-size-2xl); }
.application-next-step { display: flex; align-items: flex-start; gap: var(--steimmo-space-md); margin-block: var(--steimmo-space-lg); padding: var(--steimmo-space-lg); border-radius: var(--steimmo-radius-md); background: var(--steimmo-color-success-surface); color: var(--steimmo-color-success-text); }
.application-next-step > span { flex-shrink: 0; }
.application-next-step p { margin: var(--steimmo-space-xs) 0 0; }
.application-card[data-state="warten"] .application-next-step { background: var(--steimmo-color-info-surface); color: var(--steimmo-color-info); }
.application-card[data-state="beendet"] .application-next-step { background: var(--steimmo-color-warning-surface); color: var(--steimmo-color-warning-text); }
.application-empty { text-align: center; }
.application-empty-icon { display: inline-flex; padding: var(--steimmo-space-lg); border-radius: 50%; background: var(--steimmo-color-surface-brand); color: var(--steimmo-color-primary); }
.application-empty p { max-width: 32rem; margin-inline: auto; }
.application-unit { display: flex; align-items: center; flex-wrap: wrap; gap: var(--steimmo-space-md); padding: var(--steimmo-space-md); border-radius: var(--steimmo-radius-md); background: var(--steimmo-color-surface-subtle); }
.application-unit > div { flex: 1; }
.application-unit > div span { display: block; color: var(--steimmo-color-text-muted); font-size: var(--steimmo-font-size-sm); }
.application-form-card h2 { font-size: var(--steimmo-font-size-2xl); }
.application-fields label { display: inline-block; }
.application-fields textarea { resize: vertical; }
.application-fields .uk-margin { margin-block: var(--steimmo-space-lg); }
.application-form-actions { display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--steimmo-space-md); margin-top: var(--steimmo-space-xl); }
.application-withdraw-actions { justify-content: flex-start; align-items: stretch; }
.application-withdraw-actions form { margin: 0; }
.application-withdraw-actions .uk-button { white-space: normal; line-height: 1.4; min-height: 40px; padding-block: var(--steimmo-space-sm); box-sizing: border-box; }
.application-proof-count { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--steimmo-space-md); margin-block: var(--steimmo-space-lg); }
.application-proof-count strong { color: var(--steimmo-color-primary); font-size: var(--steimmo-font-size-2xl); }
.application-proof-count span { color: var(--steimmo-color-text-muted); }
.application-proof { padding: var(--steimmo-space-lg); border: 1px solid var(--steimmo-color-border); border-radius: var(--steimmo-radius-md); }
.application-proof > .uk-form-label { display: block; margin-bottom: var(--steimmo-space-sm); font-weight: 600; }
.application-proof [data-proof-existing-name] { overflow-wrap: anywhere; }
.application-proof input[type=file] { max-width: 100%; box-sizing: border-box; }
.application-withdraw { margin-top: var(--steimmo-space-lg); padding-top: var(--steimmo-space-md); border-top: 1px solid var(--steimmo-color-border); text-align: right; }
.application-withdraw .uk-button { color: var(--steimmo-color-danger); }
@media (max-width: 959px) {
    .auth-layout, .application-layout { grid-template-columns: 1fr; }
    .auth-image { min-height: 250px; }
    .auth-image img { object-position: center 65%; }
    .auth-card { max-width: 560px; }
    .application-main { order: -1; }
    .application-sidebar .application-progress { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--steimmo-space-md); }
}
@media (max-width: 639px) {
    .auth-name { grid-column: 1 / -1; }
    .auth-card { padding: var(--steimmo-space-lg); }
    .auth-card h1 { font-size: var(--steimmo-font-size-2xl); }
    .auth-image { min-height: 210px; }
    .auth-image-caption { bottom: var(--steimmo-space-sm); left: var(--steimmo-space-sm); right: var(--steimmo-space-sm); }
    .application-area .uk-card-body { padding: var(--steimmo-space-lg); }
    .application-sidebar .application-progress { grid-template-columns: 1fr; gap: 0; }
    .application-form-actions { flex-direction: column; }
    .application-form-actions .uk-button { width: 100%; }
    .application-withdraw-actions form { width: 100%; }
    .application-proof, .application-next-step { padding: var(--steimmo-space-md); }
    .application-area .uk-label { white-space: normal; }
}

/* Apartment search uses shared tokens and UIkit cards and forms. */
.apartment-search { background: var(--steimmo-color-surface-page); padding-top: var(--steimmo-space-xl); }
.apartment-search .uk-button { text-transform: none; }
.apartment-search-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--steimmo-space-lg); margin-bottom: var(--steimmo-space-lg); }
.apartment-search-heading h1 { margin: 0 0 var(--steimmo-space-sm); font-size: clamp(1.8rem, 3vw, 2.25rem); letter-spacing: -.035em; font-weight: 600; }
.apartment-search-heading p:last-child { margin: 0; color: var(--steimmo-color-text-muted); }
.apartment-search-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: var(--steimmo-space-xl); align-items: start; }
.apartment-search-filter-panel { padding: 0; background: transparent; border: 0; border-radius: 0; box-sizing: border-box; }
.apartment-search-filter-panel h2 { margin: 0 0 var(--steimmo-space-lg); padding-bottom: var(--steimmo-space-sm); border-bottom: 3px solid var(--steimmo-color-primary); font-size: var(--steimmo-font-size-xl); font-weight: 600; }
.apartment-search-fields { display: grid; gap: var(--steimmo-space-lg); }
.apartment-search-fields > fieldset { min-width: 0; margin: 0; padding: 0 0 var(--steimmo-space-md); border: 0; border-bottom: 1px solid var(--steimmo-color-border); }
.apartment-search-fields legend { margin-bottom: var(--steimmo-space-xs); font-size: var(--steimmo-font-size-sm); font-weight: 600; }
.apartment-search-range { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--steimmo-space-sm); }
.apartment-search-field { min-width: 0; }
.apartment-search-field .uk-form-label { font-size: var(--steimmo-font-size-sm); display: block; margin-bottom: var(--steimmo-space-xs); }
.apartment-search-field [aria-invalid=true] { border-color: var(--steimmo-color-danger); }
.apartment-search-filter-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--steimmo-space-sm); margin-top: var(--steimmo-space-lg); }
.apartment-search-filter-actions .uk-button { padding-inline: var(--steimmo-space-md); width: 100%; min-height: 48px; }
.apartment-search-filter-actions a { font-size: var(--steimmo-font-size-sm); }
.apartment-search-filter-note { margin-bottom: 0; font-size: var(--steimmo-font-size-xs); }
.apartment-search-results { min-width: 0; }
.apartment-search-result-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--steimmo-space-sm); margin-bottom: var(--steimmo-space-lg); }
.apartment-search-result-heading h2 { font-size: var(--steimmo-font-size-lg); margin: 0; font-weight: 600; }
.apartment-search-result-heading > span { color: var(--steimmo-color-text-muted); font-size: var(--steimmo-font-size-xs); }
.apartment-search-result-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--steimmo-space-lg); }
.apartment-search-card { overflow: hidden; border-radius: var(--steimmo-radius-lg); border: 1px solid var(--steimmo-color-border); box-shadow: var(--steimmo-shadow-sm); min-width: 0; }
.apartment-search-image { display: block; position: relative; aspect-ratio: 16 / 10; background: var(--steimmo-color-surface-subtle); overflow: hidden; }
.apartment-search-image img { width: 100%; height: 100%; object-fit: cover; }
.apartment-search-caption { position: absolute; bottom: var(--steimmo-space-sm); left: var(--steimmo-space-sm); right: var(--steimmo-space-sm); width: fit-content; padding: 4px 8px; border-radius: var(--steimmo-radius-sm); background: var(--steimmo-color-surface); color: var(--steimmo-color-text-muted); font-size: var(--steimmo-font-size-xs); }
.apartment-search-photo-placeholder { display: flex; flex-direction: column; gap: var(--steimmo-space-sm); align-items: center; justify-content: center; height: 100%; color: var(--steimmo-color-text-muted); font-size: var(--steimmo-font-size-sm); }
.apartment-search-card-content { padding: var(--steimmo-space-lg); }
.apartment-search-card-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--steimmo-space-sm); }
.apartment-search-card-heading h3 { margin: 0; font-size: var(--steimmo-font-size-xl); font-weight: 600; }
.apartment-search-card-heading p { margin: 0 0 4px; }
.apartment-search-facts { display: grid; grid-template-columns: 1fr 1fr; gap: var(--steimmo-space-sm); margin-block: var(--steimmo-space-lg); }
.apartment-search-facts dt { color: var(--steimmo-color-text-muted); font-size: var(--steimmo-font-size-xs); }
.apartment-search-facts dd { margin: var(--steimmo-space-xs) 0 0; font-size: var(--steimmo-font-size-sm); }
.apartment-search-card-bottom { border-top: 1px solid var(--steimmo-color-border); padding-top: var(--steimmo-space-md); }
.apartment-search-card-bottom p { margin: 4px 0 var(--steimmo-space-md); font-size: var(--steimmo-font-size-sm); }
.apartment-search-card-bottom .uk-button { display: block; width: 100%; box-sizing: border-box; padding-inline: var(--steimmo-space-sm); }
.apartment-search-empty { text-align: center; border-radius: var(--steimmo-radius-lg); }
.apartment-search-empty h3 { font-size: var(--steimmo-font-size-xl); }
.apartment-search-journey { display: flex; gap: var(--steimmo-space-sm); color: var(--steimmo-color-text-muted); font-size: var(--steimmo-font-size-sm); margin-top: var(--steimmo-space-lg); }
.apartment-search-journey > span { flex-shrink: 0; }
.apartment-search .apartment-search-field .uk-input, .apartment-search .apartment-search-field .uk-select { height: 48px; font-size: var(--steimmo-font-size-base); }
@media (max-width: 959px) {
    .apartment-search-layout { grid-template-columns: 1fr; }
    .apartment-search-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .apartment-search-filter-actions .uk-button { width: auto; }
}
@media (max-width: 639px) {
    .apartment-search-result-grid { grid-template-columns: 1fr; }
    .apartment-search-card-heading h3 { font-size: var(--steimmo-font-size-lg); }
    .apartment-search-heading > .uk-button { width: 100%; box-sizing: border-box; }
    .apartment-search-card-content { padding: var(--steimmo-space-md); }
    .apartment-search-result-heading > span { display: none; }
    .apartment-search-fields { grid-template-columns: 1fr; }
}

/* Selected apartment detail: gallery, compact facts, normal-flow rent panel. */
.apartment-detail-heading { margin-bottom: var(--steimmo-space-xl); }
.apartment-detail-heading h1 { margin: var(--steimmo-space-sm) 0; font-size: clamp(var(--steimmo-font-size-3xl), 4vw, var(--steimmo-font-size-4xl)); }
.apartment-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: var(--steimmo-space-xl); align-items: start; }
.apartment-detail-photos { grid-column: 1 / -1; }
.apartment-detail-cost { grid-column: 2; grid-row: 2; position: static; border: 1px solid var(--steimmo-color-border); border-radius: var(--steimmo-radius-lg); box-shadow: none; }
.apartment-detail-cost h2 { font-size: var(--steimmo-font-size-3xl); margin: 0; }
.apartment-detail-cost h2 + p { margin-top: var(--steimmo-space-2xs); }
.apartment-detail-cost .uk-button { white-space: nowrap; text-transform: none; padding-inline: var(--steimmo-space-sm); }
.apartment-detail-content { grid-column: 1; grid-row: 2; min-width: 0; }
.apartment-detail-content > section { padding: var(--steimmo-space-lg) 0; }
.apartment-detail-content h2 { font-size: var(--steimmo-font-size-2xl); }
.apartment-detail-metrics { display: flex; flex-wrap: wrap; gap: var(--steimmo-space-md) var(--steimmo-space-xl); margin: 0; padding: var(--steimmo-space-sm) 0; border-top: 1px solid var(--steimmo-color-border); border-bottom: 1px solid var(--steimmo-color-border); }
.apartment-detail-metrics dt { font-size: var(--steimmo-font-size-sm); color: var(--steimmo-color-text-muted); }
.apartment-detail-metrics dd { margin: var(--steimmo-space-2xs) 0 0; font-size: var(--steimmo-font-size-lg); font-weight: 600; }
.apartment-detail-facts { margin: var(--steimmo-space-lg) 0; }
.apartment-detail-facts > div { display: grid; grid-template-columns: minmax(100px, 1fr) minmax(0, 1.4fr); padding: var(--steimmo-space-sm) 0; border-bottom: 1px solid var(--steimmo-color-border); gap: var(--steimmo-space-md); }
.apartment-detail-facts dt { font-weight: 600; }
.apartment-detail-facts dd { margin: 0; overflow-wrap: anywhere; }
.workspace-navigation { display: flex; flex-wrap: wrap; gap: var(--steimmo-space-xs) var(--steimmo-space-lg); padding: var(--steimmo-space-md) var(--steimmo-space-lg); margin-bottom: var(--steimmo-space-lg); background: var(--steimmo-color-surface); border: 1px solid var(--steimmo-color-border); border-radius: var(--steimmo-radius-md); }
.workspace-navigation a { color: var(--steimmo-color-text); padding: var(--steimmo-space-2xs) 0; }
.workspace-navigation a[aria-current] { color: var(--steimmo-color-primary); font-weight: 700; border-bottom: 2px solid currentColor; text-decoration: none; }
.workspace-navigation-list { gap: var(--steimmo-space-xs) var(--steimmo-space-lg); }
.workspace-navigation-list > li { padding-left: 0; }
.workspace-navigation .workspace-navigation-list > li > a { color: var(--steimmo-color-text); font: inherit; text-transform: none; }
.workspace-navigation .workspace-navigation-list > li > a[aria-current] { color: var(--steimmo-color-primary); font-weight: 700; }
@media (max-width: 959px) {
    .apartment-detail-layout { display: flex; flex-direction: column; }
    .apartment-detail-layout > * { width: 100%; box-sizing: border-box; }
    .apartment-detail-cost { order: 3; }
}
@media (max-width: 639px) {
    .apartment-detail-facts > div { grid-template-columns: 1fr; gap: .3rem; }
    .apartment-detail-cost { padding: var(--steimmo-space-lg); }
}

/* Shared compact workspace for the selected management design. */
.management-page,
.handover-page {
    padding-block: var(--steimmo-space-xl);
    background: var(--steimmo-color-surface-page);
}
.management-page > .uk-container,
.handover-page > .uk-container {
    max-width: 1280px;
}
.management-page > .uk-container-small,
.handover-page > .uk-container-small {
    max-width: 1120px;
}
.management-page h1 {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    line-height: var(--steimmo-line-height-tight);
}
.management-page h2 {
    font-size: var(--steimmo-font-size-xl);
}
.management-page__heading {
    gap: var(--steimmo-space-md);
    padding-bottom: var(--steimmo-space-md);
}
.management-panel {
    border: 1px solid var(--steimmo-color-border);
    border-top: 3px solid var(--steimmo-color-primary);
    border-radius: var(--steimmo-radius-sm);
    box-shadow: none;
    padding: var(--steimmo-space-lg);
}
.management-page .uk-heading-divider {
    padding-bottom: var(--steimmo-space-sm);
    border-bottom-color: var(--steimmo-color-border);
}
.management-table {
    background: var(--steimmo-color-surface);
    border: 1px solid var(--steimmo-color-border);
    border-top: 3px solid var(--steimmo-color-primary);
    padding: var(--steimmo-space-sm) var(--steimmo-space-lg);
}
.management-table .uk-table {
    margin-block: var(--steimmo-space-xs);
}
.management-table .uk-table th,
.management-table .uk-table td {
    padding: var(--steimmo-space-sm);
    vertical-align: middle;
}
.management-table .uk-table thead th {
    color: var(--steimmo-color-text-muted);
    font-size: var(--steimmo-font-size-xs);
    font-weight: 700;
}
.management-table .uk-table caption {
    padding: var(--steimmo-space-xs) var(--steimmo-space-sm);
}
.management-table .uk-table tbody tr:hover {
    background: var(--steimmo-color-surface-subtle);
}
.management-table .uk-table td:last-child {
    white-space: nowrap;
}
/* UIkit stacks list rows on small screens; retain their column context. */
.home-workspace-links { padding-block: var(--steimmo-space-sm); }
.home-workspace-links .uk-subnav > * > a {
    color: var(--steimmo-color-text);
    text-transform: none;
    padding-block: var(--steimmo-space-xs);
}
@media (max-width: 959px) {
    .workspace-table td[data-label]::before {
        content: attr(data-label);
        display: block;
        margin-bottom: var(--steimmo-space-2xs);
        color: var(--steimmo-color-text-muted);
        font-size: var(--steimmo-font-size-xs);
        font-weight: 600;
    }
    .workspace-table td,
    .workspace-table th {
        text-align: left !important;
        overflow-wrap: anywhere;
    }
    .workspace-table tbody tr + tr {
        border-top: 1px solid var(--steimmo-color-border);
    }
    .management-table .workspace-table tbody tr + tr {
        margin-top: var(--steimmo-space-md);
        padding-top: var(--steimmo-space-md);
        border-top-width: 2px;
    }
}
.management-panel input[type="file"] { height: auto; min-height: 40px; padding: 0; border: 0; background: transparent; }
.management-panel input[type="file"]::file-selector-button { font: inherit; color: var(--steimmo-color-text); background: var(--steimmo-color-surface); border: 1px solid var(--steimmo-color-border-strong); border-radius: var(--steimmo-radius-sm); min-height: 40px; padding: var(--steimmo-space-xs) var(--steimmo-space-lg); margin-right: var(--steimmo-space-sm); cursor: pointer; }
.management-panel input[type="file"]::file-selector-button:hover { background: var(--steimmo-color-surface-muted); }
.management-form-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--steimmo-space-lg);
    align-items: start;
}
.feature-option-controls { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--steimmo-space-sm); }
.feature-option-controls .uk-input { min-width: 0; }
.feature-option-controls .uk-button { min-height: 40px; box-sizing: border-box; padding-inline: var(--steimmo-space-md); }
.management-form-grid > .uk-margin {
    margin: 0 !important;
}
.management-form-grid--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.management-page .uk-form-label {
    font-weight: 600;
}
.employee-viewings .uk-button { max-width: 100%; min-height: 40px; padding-block: var(--steimmo-space-xs); white-space: normal; line-height: 1.4; }
.management-page .uk-margin > label:first-child { display: block; margin-bottom: var(--steimmo-space-xs); font-weight: 600; }
.management-page .uk-button,
.handover-page .uk-button { text-transform: none; }
.management-page .uk-form-controls,
.management-form-grid > div {
    min-width: 0;
}
.management-page fieldset .uk-form-controls label {
    overflow-wrap: anywhere;
}
.management-page .uk-flex-between {
    gap: var(--steimmo-space-sm);
}
.management-facts {
    display: grid;
    grid-template-columns: minmax(140px, 220px) minmax(0, 1fr);
    gap: var(--steimmo-space-sm) var(--steimmo-space-lg);
    margin-top: var(--steimmo-space-lg);
}
.management-facts > dt,
.management-facts > dt:nth-child(n+2),
.management-facts > dd {
    margin: 0;
}
.management-facts > dt {
    color: var(--steimmo-color-text-muted);
    font-weight: 500;
}
.management-facts > dd {
    overflow-wrap: anywhere;
}
@media (max-width: 960px) {
    .management-form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 640px) {
    .management-page,
    .handover-page {
        padding-block: var(--steimmo-space-lg);
    }
    .management-form-grid,
    .management-facts {
        grid-template-columns: 1fr;
    }
    .management-facts > dd {
        margin-bottom: var(--steimmo-space-sm);
    }
    .management-panel {
        padding: var(--steimmo-space-md);
    }
    .management-table {
        padding-inline: var(--steimmo-space-xs);
    }
    .management-page .uk-flex-between {
        flex-wrap: wrap;
    }
}

/* Selected handover layout: compact workspace with horizontal navigation. */
.handover-page h1 {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    line-height: var(--steimmo-line-height-tight);
    margin-top: var(--steimmo-space-lg);
    margin-bottom: var(--steimmo-space-md);
}

.handover-page .uk-text-lead {
    font-size: var(--steimmo-font-size-lg);
    max-width: 72ch;
}

.handover-card,
.handover-page .uk-overflow-auto.uk-card {
    border: 1px solid var(--steimmo-color-border);
    border-radius: var(--steimmo-radius-md);
    box-shadow: none;
}

.handover-card {
    padding: var(--steimmo-space-lg);
}

.handover-section-header { margin-bottom: var(--steimmo-space-lg); }
.handover-page .handover-title,
.handover-page .handover-section-title { overflow-wrap: anywhere; }
[data-photo-selection] input[type="file"],
[data-photo-selection] input[type="file"]::file-selector-button { cursor: pointer; }

.handover-section-title,
.handover-page .uk-heading-divider,
.handover-page .uk-card-title {
    font-size: var(--steimmo-font-size-xl);
    font-weight: 600;
    margin-bottom: var(--steimmo-space-md);
}

.handover-detail-grid,
.handover-document-grid,
.handover-room-workspace,
.handover-field-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--steimmo-space-lg);
    align-items: start;
}

.handover-detail-grid > *,
.handover-document-grid > *,
.handover-room-workspace > *,
.handover-field-grid > * {
    min-width: 0;
}

.handover-document-grid > .uk-margin,
.handover-detail-grid > .uk-margin-top,
.handover-room-workspace > .uk-margin-top,
.handover-field-grid > .uk-margin {
    /* Grid gap replaces UIkit's important vertical margin utilities. */
    margin: 0 !important;
}

.handover-detail-grid { margin-top: var(--steimmo-space-lg); }
.handover-room-workspace > :only-child { grid-column: 1 / -1; }
.handover-protocol-editor > section > .uk-flex,
.handover-protocol-editor [data-room-card] .uk-card-header > .uk-flex,
.handover-page article.uk-card-muted > .uk-flex {
    flex-wrap: wrap;
    gap: var(--steimmo-space-sm);
}

.handover-room-workspace {
    margin-top: var(--steimmo-space-lg);
}

.handover-form-actions,
.handover-form-wide {
    grid-column: 1 / -1;
}

.handover-form-actions {
    gap: var(--steimmo-space-sm);
    flex-wrap: wrap;
}

.handover-protocol-editor > section {
    border-top: 1px solid var(--steimmo-color-border);
    padding-top: var(--steimmo-space-lg);
}

.handover-page .uk-description-list > dt {
    font-size: var(--steimmo-font-size-sm);
    color: var(--steimmo-color-text-muted);
}

.handover-page .uk-description-list > dd {
    overflow-wrap: anywhere;
}

.handover-page .uk-table th {
    color: var(--steimmo-color-text-muted);
    font-size: var(--steimmo-font-size-sm);
    text-transform: none;
}

.handover-page .uk-table td {
    padding-top: var(--steimmo-space-md);
    padding-bottom: var(--steimmo-space-md);
    vertical-align: middle;
}

.handover-page .uk-table .uk-button {
    white-space: nowrap;
}

.handover-page .uk-form-label {
    display: block;
    margin-bottom: var(--steimmo-space-xs);
}

.handover-page .uk-card-muted {
    border-radius: var(--steimmo-radius-md);
}

@media (max-width: 959px) {
    .handover-detail-grid,
    .handover-document-grid,
    .handover-room-workspace {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 639px) {
    .handover-field-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .handover-card {
        padding: var(--steimmo-space-md);
    }

    .handover-form-actions {
        justify-content: stretch;
    }

    .handover-form-actions > * {
        margin-left: 0;
        width: 100%;
    }

    .handover-form-actions .uk-button {
        width: 100%;
    }
    .handover-protocol-editor > section > .uk-flex > .uk-button,
    .handover-protocol-editor [data-room-card] .uk-card-header > .uk-flex > .uk-button { width: 100%; }
}

/* Building and floor exploration: selected architecture layout. */
.architecture-view { background: var(--steimmo-color-surface-page); }
.architecture-heading { max-width: 850px; margin-bottom: var(--steimmo-space-xl); }
.architecture-heading h1 { font-size: clamp(var(--steimmo-font-size-3xl), 4vw, var(--steimmo-font-size-4xl)); margin: var(--steimmo-space-sm) 0 var(--steimmo-space-md); }
.architecture-heading .uk-text-lead { margin: 0; }
.architecture-eyebrow { color: var(--steimmo-color-primary); font-size: var(--steimmo-font-size-sm); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin: 0; }
.architecture-visual { background: var(--steimmo-color-surface); border: 1px solid var(--steimmo-color-border); border-radius: var(--steimmo-radius-lg); padding: var(--steimmo-space-md); box-sizing: border-box; min-width: 0; }
.architecture-view figcaption { font-size: var(--steimmo-font-size-sm); color: var(--steimmo-color-text-muted); text-align: center; padding: var(--steimmo-space-md) var(--steimmo-space-xs) 0; }
.architecture-view .uk-button { text-transform: none; }
.architecture-building-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--steimmo-space-lg); }
.architecture-building-drawing { width: 100%; max-width: 1050px; box-sizing: border-box; justify-self: center; }
.architecture-building-stats { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--steimmo-space-md) var(--steimmo-space-xl); }
.architecture-building-stats > div { display: flex; align-items: baseline; gap: var(--steimmo-space-xs); }
.architecture-building-stats strong { font-size: var(--steimmo-font-size-lg); }
.architecture-building-stats span { font-size: var(--steimmo-font-size-sm); }
.architecture-building-selection { min-width: 0; }
.architecture-building-selection h2, .architecture-floor-apartments > h2 { font-size: var(--steimmo-font-size-2xl); margin: 0 0 var(--steimmo-space-sm); }
.architecture-building-selection > p { margin: 0 0 var(--steimmo-space-lg); }
.architecture-floor-cards { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--steimmo-space-sm); }
.architecture-floor-card { border: 1px solid var(--steimmo-color-border); border-radius: var(--steimmo-radius-lg); padding: var(--steimmo-space-lg); color: var(--steimmo-color-text); box-shadow: none; }
.architecture-floor-card:hover { text-decoration: none; border-color: var(--steimmo-color-primary); background: var(--steimmo-color-success-surface); }
.architecture-floor-card h3 { font-size: var(--steimmo-font-size-xl); min-height: 3rem; margin: 0 0 .45rem; }
.architecture-floor-card > span { display: block; }
.architecture-floor-free { font-weight: 700; color: var(--steimmo-color-primary); margin-bottom: .2rem; }
.architecture-floor-card:focus-visible { outline: 3px solid var(--steimmo-color-focus-ring); outline-offset: 3px; }
.architecture-building-search { display: flex; justify-content: space-between; gap: var(--steimmo-space-lg); align-items: center; border-top: 1px solid var(--steimmo-color-border); padding-top: var(--steimmo-space-lg); margin-top: var(--steimmo-space-xs); }
.architecture-building-search h2 { font-size: var(--steimmo-font-size-xl); margin: 0 0 .4rem; }
.architecture-building-search p { margin: 0; }
.architecture-building-search > a { flex-shrink: 0; }
.architecture-floor-navigation { display: flex; flex-wrap: wrap; gap: var(--steimmo-space-sm); padding: 0; list-style: none; margin: 0 0 var(--steimmo-space-xl); scroll-margin-top: var(--steimmo-space-md); }
.architecture-floor-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--steimmo-space-xl); }
.architecture-floor-drawing { min-width: 0; width: 100%; max-width: 1100px; justify-self: center; }
.architecture-floor-drawing .floor-plan-frame { max-width: 100%; }
.architecture-apartment-cards { display: grid; gap: var(--steimmo-space-md); }
.architecture-apartment-card { display: grid; grid-template-columns: 250px minmax(0, 1fr) 190px; gap: var(--steimmo-space-md); align-items: center; border: 1px solid var(--steimmo-color-border); border-radius: var(--steimmo-radius-lg); box-shadow: none; padding: var(--steimmo-space-lg) var(--steimmo-space-lg); }
.architecture-apartment-title h3 { font-size: var(--steimmo-font-size-xl); margin: 0 0 .4rem; }
.architecture-apartment-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--steimmo-space-sm); margin: 0; }
.architecture-apartment-facts dt { font-size: var(--steimmo-font-size-sm); color: var(--steimmo-color-text-muted); }
.architecture-apartment-facts dd { margin: var(--steimmo-space-2xs) 0 0; overflow-wrap: anywhere; }
.architecture-apartment-taken { background: var(--steimmo-color-surface-muted); color: var(--steimmo-color-text-muted); }
.architecture-apartment-link { padding-inline: var(--steimmo-space-sm); white-space: nowrap; justify-self: start; }
.architecture-plan-legend { display: flex; justify-content: center; flex-wrap: wrap; gap: var(--steimmo-space-md); margin-top: var(--steimmo-space-sm); font-size: var(--steimmo-font-size-sm); }
.architecture-plan-legend > span { display: flex; align-items: center; gap: .45rem; }
.architecture-plan-legend i { display: inline-block; width: 14px; height: 14px; border: 1px solid var(--steimmo-color-border-strong); border-radius: 3px; }
.architecture-legend-free { background: var(--steimmo-color-success-surface); }
.architecture-legend-taken { background: repeating-linear-gradient(135deg, var(--steimmo-color-surface-muted) 0 3px, var(--steimmo-color-border-strong) 3px 4px); }
@media (max-width: 1199px) {
    .architecture-floor-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .architecture-apartment-card { grid-template-columns: 200px minmax(0, 1fr); }
    .architecture-apartment-link { grid-column: 2; }
}
@media (max-width: 959px) {
    .architecture-floor-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .architecture-apartment-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .architecture-apartment-card { display: flex; flex-direction: column; align-items: stretch; min-width: 0; padding: 1.35rem; }
    .architecture-apartment-facts { grid-template-columns: minmax(0, 1fr); }
    .architecture-apartment-facts > div { display: flex; justify-content: space-between; gap: var(--steimmo-space-md); }
    .architecture-apartment-facts dd { margin: 0; text-align: right; }
    .architecture-apartment-link { align-self: start; margin-top: auto; }
}
@media (max-width: 639px) {
    .architecture-view { padding: var(--steimmo-space-xl) 0; }
    .architecture-building-search { flex-direction: column; align-items: stretch; }
    .architecture-building-stats { gap: var(--steimmo-space-xs) var(--steimmo-space-md); }
    .architecture-floor-cards, .architecture-apartment-cards { grid-template-columns: minmax(0, 1fr); }
    .architecture-floor-card h3 { min-height: 0; }
    .architecture-floor-navigation .uk-button { padding: 0 12px; }
    .architecture-visual { padding: var(--steimmo-space-xs); }
    .architecture-floor-drawing .floor-plan { min-width: 960px; max-width: none; }
}

/* Optional mobile filter disclosure; the GET form works without JavaScript. */
.apartment-search-filter-toggle { display: none; width: 100%; text-align: left; }
.apartment-search .apartment-search-filter-toggle { padding-inline: 0; background: transparent; border: 0; border-bottom: 3px solid var(--steimmo-color-primary); border-radius: 0; font-weight: 600; }
.apartment-search-filter-toggle[aria-expanded="true"] { margin-bottom: var(--steimmo-space-lg); }
@media (max-width: 959px) {
    .apartment-search-filter-toggle:not([hidden]) { display: block; }
    .apartment-search-filter-panel[data-collapsible] > h2 { display: none; }
    .apartment-search-filter-body[hidden] { display: none; }
}
@media (min-width: 960px) {
    .apartment-search-filter-body[hidden] { display: block; }
}

/* Shared notice pattern: warning/blocked states use the selected A layout. */
.status-notice { border-radius: var(--steimmo-radius-lg); border-left-width: 6px; padding: var(--steimmo-space-2xl); }
.status-notice-heading { display: flex; align-items: flex-start; gap: var(--steimmo-space-lg); }
.status-notice-heading h2 { margin: 0; max-width: 760px; }
.status-notice-label { margin: 0 0 var(--steimmo-space-xs); font-size: var(--steimmo-font-size-sm); font-weight: 700; }
.status-notice-icon { flex: 0 0 auto; display: grid; place-items: center; width: 48px; height: 48px; background: var(--steimmo-color-surface); border-radius: var(--steimmo-radius-pill); }
.status-notice-next { border-top: 1px solid currentColor; padding-top: var(--steimmo-space-lg); margin-top: var(--steimmo-space-lg); }
.status-notice-next h3 { margin: 0 0 var(--steimmo-space-xs); }
.status-notice-next p { margin: 0; }
.status-notice .uk-button { text-transform: none; }
/* Compact notices and validation summaries retain their existing markup and IDs. */
.uk-alert-warning:not(.status-notice), .uk-alert-danger:not(.status-notice) { border-left-width: 6px; padding-left: calc(var(--steimmo-space-2xl) + var(--steimmo-space-lg)); min-height: 26px; }
.uk-alert-warning:not(.status-notice)::before, .uk-alert-danger:not(.status-notice)::before { content: "!"; position: absolute; left: var(--steimmo-space-lg); top: var(--steimmo-space-md); width: 24px; height: 24px; display: grid; place-items: center; border: 2px solid currentColor; border-radius: var(--steimmo-radius-pill); font-weight: 700; background: var(--steimmo-color-surface); }
@media (max-width: 639px) {
    .status-notice { padding: var(--steimmo-space-lg); }
    .status-notice-heading { gap: var(--steimmo-space-sm); }
    .status-notice-heading h2 { font-size: var(--steimmo-font-size-xl); }
    .status-notice .notice-actions .uk-button { width: 100%; padding-inline: var(--steimmo-space-xs); }
}

/* Shared management table filters; dropdowns attach to body to avoid overflow clipping. */
.table-filter {
    display: inline-block;
    max-width: 100%;
}
.table-filter > .uk-button {
    white-space: normal;
    text-align: left;
}
.application-table thead .table-filter--main-status > .uk-button {
    white-space: nowrap;
    overflow-wrap: normal;
}
.table-filter-dropdown {
    width: 20rem;
    max-width: calc(100vw - 2rem);
    max-height: calc(100dvh - 2rem);
    overflow-y: auto;
    text-transform: none;
    font-weight: 400;
}
.table-filter-dropdown .table-filter-checkbox-group {
    margin: 0;
}
.table-filter-dropdown .table-filter-checkbox-group > div + div {
    margin-top: var(--steimmo-space-xs);
}
.table-filter-dropdown .table-filter-checkbox-group > div {
    min-width: 0;
}
.table-filter-dropdown .table-filter-checkbox-group label {
    cursor: pointer;
    display: flex;
    align-items: flex-start;
    gap: var(--steimmo-space-xs);
    overflow-wrap: anywhere;
}
.table-filter-dropdown .table-filter-checkbox-group input[type="checkbox"] {
    flex: 0 0 auto;
    margin: 0.2em 0 0;
}
.table-filter-summary,
.table-filters-mobile {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--steimmo-space-sm);
}
@media (min-width: 960px) {
    .table-filters-mobile {
        display: none;
    }
}
@media (max-width: 959px) {
    .management-table thead .table-filter {
        display: none;
    }
    .handover-filter-table thead .table-filter {
        display: none;
    }
}
.table-filter-heading-mobile {
    display: none;
}
@media (max-width: 959px) {
    .management-table .table-filter-heading-mobile {
        display: inline;
    }
    .handover-filter-table .table-filter-heading-mobile {
        display: inline;
    }
    .table-filters-mobile .table-filter-heading-mobile {
        display: none;
    }
}

@media (min-width: 960px) and (max-width: 1199px) {
    .table-filters-applications {
        display: flex;
    }
}
.application-empty-state {
    grid-column: 1 / -1;
}
