/* /Components/Breadcrumb.razor.rz.scp.css */
/*
 * Breadcrumb im Header links. Reines Text-Element, kein Border/BG.
 * Letztes Segment in Body-Color, vorherige gemuted + klickbar.
 */
.breadcrumb[b-zq828zgomk] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
    overflow: hidden;
    font-size: var(--font-size-h1);
    font-weight: var(--font-weight-semibold);
    letter-spacing: 0.3px;
}

.breadcrumb-static[b-zq828zgomk] {
    color: var(--color-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.breadcrumb-current[b-zq828zgomk] {
    color: var(--color-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.breadcrumb-link[b-zq828zgomk] {
    color: var(--color-text-muted);
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: pointer;
    transition: color var(--transition-fast);
    min-width: 0;
}

.breadcrumb-link:hover[b-zq828zgomk],
.breadcrumb-link:focus-visible[b-zq828zgomk] {
    color: var(--color-text);
    text-decoration: underline;
    outline: none;
}

.breadcrumb-sep[b-zq828zgomk] {
    color: var(--color-text-muted);
    flex: 0 0 auto;
    font-weight: var(--font-weight-regular);
}
/* /Components/CameraOverlay.razor.rz.scp.css */
.camera-overlay[b-t6d79uhxqm] {
    position: fixed;
    inset: 0;
    background: #000;
    color: var(--color-text);
    z-index: var(--z-overlay);
    display: flex;
    flex-direction: column;
}

.camera-overlay-header[b-t6d79uhxqm] {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-3);
    /* safe-area: Notch/Statusleiste auf Android nicht ueberlappen. */
    padding: calc(env(safe-area-inset-top, 0px) + var(--space-5)) var(--space-6) var(--space-5);
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(8px);
    z-index: 1;
}

.camera-overlay-back[b-t6d79uhxqm] {
    background: none;
    border: none;
    color: var(--color-text);
    cursor: pointer;
    padding: var(--space-2);
    min-width: var(--touch-min);
    min-height: var(--touch-min);
    border-radius: var(--radius-circle);
    display: flex;
    align-items: center;
    justify-content: center;
}

.camera-overlay-back:active[b-t6d79uhxqm] {
    background: rgba(255, 255, 255, 0.1);
}

.camera-overlay-title[b-t6d79uhxqm] {
    flex: 1;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--font-size-body);
    font-weight: var(--font-weight-semibold);
    min-width: 0;
}

.camera-overlay-category[b-t6d79uhxqm] {
    color: var(--color-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.camera-overlay-sep[b-t6d79uhxqm] {
    color: var(--color-text-muted);
}

.camera-overlay-subcategory[b-t6d79uhxqm] {
    color: var(--color-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.camera-overlay-actions[b-t6d79uhxqm] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.camera-overlay-device-select[b-t6d79uhxqm] {
    background: var(--color-surface);
    color: var(--color-text);
    border: 1px solid var(--color-surface-light);
    border-radius: var(--radius-card);
    padding: var(--space-2) var(--space-3);
    max-width: 160px;
    font-size: var(--font-size-hint);
}

.camera-overlay-file-btn[b-t6d79uhxqm] {
    cursor: pointer;
    padding: var(--space-2);
    color: var(--color-text);
    min-width: var(--touch-min);
    min-height: var(--touch-min);
    border-radius: var(--radius-circle);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* WICHTIG: ::deep — das <input> wird von der Kind-Komponente <InputFile>
   gerendert und traegt das CSS-Isolation-Scope-Attribut NICHT. Ohne ::deep
   greift die Regel nie und das native "Datei auswaehlen"-Control ragt
   sichtbar ins Overlay (Live-Befund Review 2026-06-10). */
.camera-overlay-file-btn[b-t6d79uhxqm]  input,
.camera-fallback-btn[b-t6d79uhxqm]  input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

/* Tastatur-Fokus auf dem versteckten Input sichtbar am Label spiegeln. */
.camera-overlay-file-btn:focus-within[b-t6d79uhxqm],
.camera-fallback-btn:focus-within[b-t6d79uhxqm] {
    outline: 2px solid var(--color-info);
    outline-offset: 2px;
}

.camera-overlay-stage[b-t6d79uhxqm] {
    flex: 1;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.camera-overlay-video[b-t6d79uhxqm] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    background: #000;
}

.camera-overlay-canvas[b-t6d79uhxqm] {
    display: none;
}

.camera-overlay-loading[b-t6d79uhxqm] {
    position: absolute;
    color: var(--color-text-muted);
    font-size: var(--font-size-body);
}

.camera-capture-btn[b-t6d79uhxqm] {
    position: absolute;
    bottom: calc(env(safe-area-inset-bottom, 0px) + var(--space-9));
    left: 50%;
    transform: translateX(-50%);
    width: var(--capture-size);
    height: var(--capture-size);
    border-radius: var(--radius-circle);
    background: rgba(255, 255, 255, 0.2);
    border: 4px solid #fff;
    padding: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform var(--transition-fast);
}

.camera-capture-btn:active:not(:disabled)[b-t6d79uhxqm] {
    transform: translateX(-50%) scale(0.88);
}

.camera-capture-btn:disabled[b-t6d79uhxqm] {
    opacity: 0.4;
    cursor: not-allowed;
}

.camera-capture-inner[b-t6d79uhxqm] {
    width: calc(var(--capture-size) - 16px);
    height: calc(var(--capture-size) - 16px);
    background: #fff;
    border-radius: var(--radius-circle);
}

.camera-fallback[b-t6d79uhxqm] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-7);
    background: var(--color-bg);
}

.camera-fallback-card[b-t6d79uhxqm] {
    background: var(--color-surface);
    border-radius: var(--radius-card);
    padding: var(--space-9);
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    max-width: 360px;
    text-align: center;
}

.camera-fallback-msg[b-t6d79uhxqm] {
    color: var(--color-text);
    margin: 0;
    font-weight: var(--font-weight-semibold);
}

.camera-fallback-hint[b-t6d79uhxqm] {
    color: var(--color-text-muted);
    margin: 0;
    font-size: var(--font-size-hint);
}

.camera-fallback-btn[b-t6d79uhxqm] {
    background: var(--color-primary);
    color: #fff;
    padding: var(--space-5) var(--space-7);
    border-radius: var(--radius-card);
    font-weight: var(--font-weight-bold);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.camera-preview[b-t6d79uhxqm] {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.85);
    z-index: var(--z-preview);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--space-7);
    gap: var(--space-7);
}

.camera-preview-img[b-t6d79uhxqm] {
    max-width: 100%;
    max-height: 70%;
    border-radius: var(--radius-card);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
}

.camera-preview-actions[b-t6d79uhxqm] {
    display: flex;
    gap: var(--space-6);
}

.camera-preview-discard[b-t6d79uhxqm],
.camera-preview-save[b-t6d79uhxqm] {
    padding: var(--space-5) var(--space-8);
    border: none;
    border-radius: var(--radius-card);
    font-weight: var(--font-weight-bold);
    cursor: pointer;
    font-size: var(--font-size-body);
}

.camera-preview-discard[b-t6d79uhxqm] {
    background: var(--color-surface-light);
    color: var(--color-text);
}

.camera-preview-save[b-t6d79uhxqm] {
    background: var(--color-success);
    color: #fff;
}

.camera-preview-save:disabled[b-t6d79uhxqm] {
    opacity: 0.5;
    cursor: not-allowed;
}
/* /Components/IncompleteSubmitDialog.razor.rz.scp.css */
.incomplete-backdrop[b-shvds9ctr6] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.7);
    z-index: var(--z-picker);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-7);
}

.incomplete-modal[b-shvds9ctr6] {
    background: var(--color-surface);
    color: var(--color-text);
    border-radius: var(--radius-card);
    width: 100%;
    max-width: 480px;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.4);
    overflow: hidden;
}

.incomplete-header[b-shvds9ctr6] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-6) var(--space-7);
    border-bottom: 1px solid var(--color-surface-light);
}

.incomplete-title[b-shvds9ctr6] {
    margin: 0;
    font-size: var(--font-size-h2);
    color: var(--color-warning);
}

.incomplete-close[b-shvds9ctr6] {
    background: none;
    border: none;
    color: var(--color-text-muted);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    width: var(--touch-min);
    height: var(--touch-min);
}

.incomplete-body[b-shvds9ctr6] {
    padding: var(--space-7);
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.incomplete-intro[b-shvds9ctr6] {
    margin: 0;
    color: var(--color-text);
}

.incomplete-list[b-shvds9ctr6] {
    margin: 0;
    padding-left: var(--space-7);
    color: var(--color-text-muted);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.incomplete-item[b-shvds9ctr6] {
    color: var(--color-primary);
}

.incomplete-reason-label[b-shvds9ctr6] {
    color: var(--color-text);
    font-weight: var(--font-weight-semibold);
}

.incomplete-reason-input[b-shvds9ctr6] {
    width: 100%;
    background: var(--color-bg);
    color: var(--color-text);
    border: 1px solid var(--color-surface-light);
    border-radius: var(--radius-card);
    padding: var(--space-4);
    font-family: var(--font-family);
    font-size: var(--font-size-body);
    resize: vertical;
    min-height: 80px;
}

.incomplete-reason-input:focus[b-shvds9ctr6] {
    outline: none;
    border-color: var(--color-primary);
}

.incomplete-reason-hint[b-shvds9ctr6] {
    color: var(--color-text-muted);
    font-size: var(--font-size-hint);
}

.incomplete-footer[b-shvds9ctr6] {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-5);
    padding: var(--space-6) var(--space-7);
    border-top: 1px solid var(--color-surface-light);
}

.incomplete-cancel[b-shvds9ctr6],
.incomplete-confirm[b-shvds9ctr6] {
    padding: var(--space-4) var(--space-7);
    border: none;
    border-radius: var(--radius-card);
    cursor: pointer;
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-body);
}

.incomplete-cancel[b-shvds9ctr6] {
    background: var(--color-surface-light);
    color: var(--color-text);
}

.incomplete-confirm[b-shvds9ctr6] {
    background: var(--color-error);
    color: #fff;
}

.incomplete-confirm:disabled[b-shvds9ctr6] {
    opacity: 0.4;
    cursor: not-allowed;
}
/* /Components/PhotoChecklist.razor.rz.scp.css */
.checklist[b-svnauw3wo2] {
    display: flex;
    flex-direction: column;
    gap: var(--space-7);
}

.checklist-empty[b-svnauw3wo2] {
    background: var(--color-surface);
    border-radius: var(--radius-card);
    padding: var(--space-9);
    text-align: center;
    color: var(--color-text-muted);
}

.checklist-cat[b-svnauw3wo2] {
    background: var(--color-surface);
    border-radius: var(--radius-card);
    padding: var(--space-6) var(--space-7);
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.checklist-cat-header[b-svnauw3wo2] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}

.checklist-cat-name[b-svnauw3wo2] {
    font-size: var(--font-size-h2);
    font-weight: var(--font-weight-semibold);
    margin: 0;
}

.checklist-cat-count[b-svnauw3wo2] {
    font-size: var(--font-size-badge);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-muted);
}

.checklist-subs[b-svnauw3wo2] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.checklist-sub[b-svnauw3wo2] {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas:
        "main add"
        "thumbs add";
    gap: var(--space-3) var(--space-5);
    align-items: center;
    background: var(--color-surface-light);
    border-radius: var(--radius-card);
    padding: var(--space-5) var(--space-6);
    border-left: 3px solid transparent;
    min-height: 56px;
}

.checklist-sub-has-photos[b-svnauw3wo2] {
    border-left-color: var(--color-success);
}

.checklist-sub-missing[b-svnauw3wo2] {
    border-left-color: var(--color-primary);
}

.checklist-sub-main[b-svnauw3wo2] {
    grid-area: main;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
}

.checklist-sub-title[b-svnauw3wo2] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    color: var(--color-text);
    font-weight: var(--font-weight-semibold);
    min-width: 0;
}

/* Sehr lange Subkategorienamen abschneiden statt das Layout zu sprengen. */
.checklist-sub-title > span:first-child[b-svnauw3wo2] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.checklist-sub-required[b-svnauw3wo2] {
    font-size: var(--font-size-hint);
    font-weight: var(--font-weight-bold);
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
    border-radius: var(--radius-pill);
    padding: 1px var(--space-3);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.checklist-sub-meta[b-svnauw3wo2] {
    font-size: var(--font-size-hint);
    color: var(--color-text-muted);
}

.checklist-sub-empty-hint[b-svnauw3wo2] {
    color: var(--color-text-muted);
    font-style: italic;
}

.checklist-thumbs[b-svnauw3wo2] {
    grid-area: thumbs;
    display: flex;
    gap: var(--space-3);
    flex-wrap: wrap;
    align-items: center;
}

.checklist-thumb[b-svnauw3wo2] {
    position: relative;
    width: 56px;
    height: 56px;
    border-radius: var(--radius-card);
    overflow: hidden;
    border: 1px solid var(--color-surface);
    background: var(--color-bg);
    padding: 0;
    cursor: pointer;
}

.checklist-thumb img[b-svnauw3wo2] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.checklist-thumb-downloaded[b-svnauw3wo2] {
    position: absolute;
    bottom: 2px;
    right: 2px;
    background: var(--color-success);
    color: #fff;
    font-size: 10px;
    font-weight: var(--font-weight-bold);
    width: 16px;
    height: 16px;
    border-radius: var(--radius-circle);
    display: flex;
    align-items: center;
    justify-content: center;
}

.checklist-upload-badge[b-svnauw3wo2] {
    position: absolute;
    top: 2px;
    right: 2px;
    color: #fff;
    font-size: 11px;
    font-weight: var(--font-weight-bold);
    width: 18px;
    height: 18px;
    border-radius: var(--radius-circle);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-text-muted);
}

.checklist-upload-badge.upload-pending[b-svnauw3wo2] {
    background: var(--color-sync-idle);
}

.checklist-upload-badge.upload-uploading[b-svnauw3wo2] {
    background: var(--color-sync-syncing);
    animation: checklist-sync-pulse-b-svnauw3wo2 1s infinite;
}

@keyframes checklist-sync-pulse-b-svnauw3wo2 {
    0%   { opacity: 1; }
    50%  { opacity: 0.45; }
    100% { opacity: 1; }
}

.checklist-upload-badge.upload-done[b-svnauw3wo2] {
    background: var(--color-success);
}

.checklist-upload-badge.upload-failed[b-svnauw3wo2] {
    background: var(--color-error, #d04141);
}

.checklist-retry-btn[b-svnauw3wo2] {
    margin-top: var(--space-2);
    background: none;
    border: 1px solid var(--color-error);
    color: var(--color-error);
    border-radius: var(--radius-card);
    padding: var(--space-2) var(--space-4);
    min-height: var(--touch-min);
    font-size: var(--font-size-hint);
    cursor: pointer;
}

.checklist-retry-btn:hover[b-svnauw3wo2] {
    background: rgba(208, 65, 65, 0.1);
}

.checklist-thumb-more[b-svnauw3wo2] {
    font-size: var(--font-size-hint);
    color: var(--color-text-muted);
    padding: 0 var(--space-3);
}

.checklist-add-btn[b-svnauw3wo2] {
    grid-area: add;
    background: var(--color-primary);
    color: #fff;
    border: none;
    border-radius: var(--radius-card);
    padding: var(--space-3) var(--space-5);
    font-weight: var(--font-weight-bold);
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    min-width: 56px;
    min-height: 56px;
    transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.checklist-add-btn:disabled[b-svnauw3wo2] {
    opacity: 0.4;
    cursor: not-allowed;
}

.checklist-add-btn:active:not(:disabled)[b-svnauw3wo2] {
    transform: scale(0.94);
}

.checklist-add-icon[b-svnauw3wo2] {
    font-size: 22px;
    line-height: 1;
}

.checklist-add-label[b-svnauw3wo2] {
    font-size: var(--font-size-hint);
}
/* /Components/PhotoLightbox.razor.rz.scp.css */
.lightbox[b-jzvc20yo6u] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.92);
    z-index: var(--z-overlay);
    display: flex;
    flex-direction: column;
    color: var(--color-text);
}

.lightbox-header[b-jzvc20yo6u] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: calc(env(safe-area-inset-top, 0px) + var(--space-5)) var(--space-6) var(--space-5);
    background: rgba(0, 0, 0, 0.5);
}

.lightbox-close[b-jzvc20yo6u] {
    background: none;
    border: none;
    color: var(--color-text);
    cursor: pointer;
    padding: var(--space-2);
    min-width: var(--touch-min);
    min-height: var(--touch-min);
    border-radius: var(--radius-circle);
    display: flex;
    align-items: center;
    justify-content: center;
}

.lightbox-close:active[b-jzvc20yo6u] {
    background: rgba(255, 255, 255, 0.1);
}

.lightbox-title[b-jzvc20yo6u] {
    flex: 1;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--font-size-body);
    font-weight: var(--font-weight-semibold);
    min-width: 0;
}

/* Lange Kategorie-/Subkategorienamen abschneiden statt das Datum aus dem
   Header zu druecken (konsistent zum CameraOverlay-Titel). */
.lightbox-category[b-jzvc20yo6u],
.lightbox-subcategory[b-jzvc20yo6u] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lightbox-category[b-jzvc20yo6u] { color: var(--color-text); }
.lightbox-sep[b-jzvc20yo6u] { color: var(--color-text-muted); }
.lightbox-subcategory[b-jzvc20yo6u] { color: var(--color-primary); }

.lightbox-meta[b-jzvc20yo6u] {
    color: var(--color-text-muted);
    font-size: var(--font-size-hint);
}

.lightbox-body[b-jzvc20yo6u] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-5);
    overflow: hidden;
}

.lightbox-img[b-jzvc20yo6u] {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border-radius: var(--radius-card);
}

.lightbox-footer[b-jzvc20yo6u] {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-5);
    padding: var(--space-6) var(--space-6) calc(env(safe-area-inset-bottom, 0px) + var(--space-6));
    background: rgba(0, 0, 0, 0.5);
}

/* Loesch-Bestaetigung (zweistufig — kein Foto verschwindet durch einen Fehl-Tipp). */
.lightbox-confirm-text[b-jzvc20yo6u] {
    color: var(--color-text);
    font-weight: var(--font-weight-semibold);
}

.lightbox-cancel[b-jzvc20yo6u] {
    padding: var(--space-4) var(--space-7);
    border: none;
    border-radius: var(--radius-card);
    font-weight: var(--font-weight-bold);
    cursor: pointer;
    font-size: var(--font-size-body);
    background: var(--color-surface-light);
    color: var(--color-text);
}

.lightbox-download[b-jzvc20yo6u],
.lightbox-delete[b-jzvc20yo6u] {
    padding: var(--space-4) var(--space-7);
    border: none;
    border-radius: var(--radius-card);
    font-weight: var(--font-weight-bold);
    cursor: pointer;
    font-size: var(--font-size-body);
}

.lightbox-download[b-jzvc20yo6u] {
    background: var(--color-primary);
    color: #fff;
}

.lightbox-download-done[b-jzvc20yo6u] {
    background: var(--color-success);
}

.lightbox-download:disabled[b-jzvc20yo6u],
.lightbox-delete:disabled[b-jzvc20yo6u] {
    opacity: 0.5;
    cursor: not-allowed;
}

.lightbox-delete[b-jzvc20yo6u] {
    background: var(--color-surface-light);
    color: var(--color-error);
    border: 1px solid var(--color-error);
}
/* /Components/ReportForm.razor.rz.scp.css */
/* Antwort-Bloecke untereinander — gleiche Struktur wie die "Site - ID"-
   Bloecke im fertigen PDF: Block-Header mit Akzentbalken + Status, darunter
   der Fragenkatalog. */
.report-block[b-o16trbn740] {
    margin-bottom: var(--space-8);
}

.report-block-header[b-o16trbn740] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-5);
    margin-bottom: var(--space-4);
    background: var(--color-surface);
    border-left: 4px solid var(--color-primary);
    border-radius: var(--radius-md, 6px);
    /* Beim Scrollen sichtbar bleiben: man weiss immer, in welchem Block man ist. */
    position: sticky;
    top: calc(env(safe-area-inset-top, 0px) + var(--header-height));
    z-index: 1;
}

.report-block-title[b-o16trbn740] {
    margin: 0;
    font-size: var(--font-size-h2);
    font-weight: var(--font-weight-bold);
    color: var(--color-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.report-block-badge[b-o16trbn740] {
    flex-shrink: 0;
    background: var(--color-error);
    color: #fff;
    border-radius: 999px;
    padding: var(--space-1) var(--space-4);
    font-size: var(--font-size-badge);
    font-weight: var(--font-weight-semibold);
    white-space: nowrap;
}

.report-block-badge-ok[b-o16trbn740] {
    background: var(--color-success);
}

.report-question-pos[b-o16trbn740] {
    background: var(--color-primary);
    color: #fff;
    font-weight: var(--font-weight-bold);
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.report-question-hint[b-o16trbn740] {
    font-size: var(--font-size-hint);
    color: var(--color-text-muted);
    margin-top: -2px;
}

.report-question-comment-row[b-o16trbn740] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin-top: var(--space-3);
    padding-top: var(--space-3);
    border-top: 1px dashed var(--color-border, rgba(255, 255, 255, 0.1));
}

.report-question-comment-label[b-o16trbn740] {
    font-size: var(--font-size-hint);
    color: var(--color-text-muted);
}

.report-question-comment[b-o16trbn740] {
    width: 100%;
    padding: var(--space-2) var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 6px);
    font: inherit;
    background: var(--color-surface);
    color: var(--color-text);
    resize: vertical;
    min-height: calc(var(--touch-min) * 0.7);
}

.report-empty[b-o16trbn740] {
    padding: var(--space-7);
    text-align: center;
    color: var(--color-text-muted);
}

.report-form[b-o16trbn740] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.report-question[b-o16trbn740] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-card);
    padding: var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.report-question-missing[b-o16trbn740] {
    border-color: var(--color-error, #d04141);
    box-shadow: 0 0 0 1px var(--color-error, #d04141);
}

.report-question-header[b-o16trbn740] {
    display: flex;
    align-items: baseline;
    gap: var(--space-3);
    flex-wrap: wrap;
}

.report-question-label[b-o16trbn740] {
    font-weight: var(--font-weight-bold);
}

.report-question-required[b-o16trbn740] {
    font-size: var(--font-size-hint);
    color: var(--color-error, #d04141);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.report-select[b-o16trbn740],
.report-textarea[b-o16trbn740] {
    width: 100%;
    padding: var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 6px);
    font: inherit;
    background: var(--color-surface);
    color: var(--color-text);
    min-height: var(--touch-min);
}

.report-textarea[b-o16trbn740] {
    resize: vertical;
}

.report-na[b-o16trbn740] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--font-size-hint);
    color: var(--color-text-muted);
}

.report-yesno[b-o16trbn740] {
    display: flex;
    gap: var(--space-3);
    flex-wrap: wrap;
}

.report-yesno-option[b-o16trbn740] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-5);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 6px);
    cursor: pointer;
    min-height: var(--touch-min);
}

.report-yesno-option input[b-o16trbn740] {
    accent-color: var(--color-primary);
}

.report-yesno-active[b-o16trbn740] {
    border-color: var(--color-primary);
    background: var(--color-primary-soft, rgba(233, 69, 96, 0.1));
}
/* /Components/StandortSubline.razor.rz.scp.css */
/*
 * Subline unter dem Header (z-index < Header, beide sticky). Zeigt den
 * aktiven Standort-Namen auf der CameraPage.
 */
.standort-subline[b-mtem4wu0h9] {
    position: sticky;
    /* Header-Hoehe kommt zentral aus tokens.css (--header-height) — keine
       Magic-Number, die bei Header-Aenderungen driftet. */
    top: calc(env(safe-area-inset-top, 0px) + var(--header-height));
    z-index: var(--z-tabs);
    display: flex;
    align-items: center;
    gap: var(--space-2);
    background: var(--color-surface-light);
    border-bottom: 1px solid var(--color-surface);
    padding: var(--space-3) var(--space-8);
    font-size: var(--font-size-body);
}

.standort-subline-label[b-mtem4wu0h9] {
    color: var(--color-text-muted);
    font-weight: var(--font-weight-regular);
}

.standort-subline-name[b-mtem4wu0h9] {
    color: var(--color-text);
    font-weight: var(--font-weight-semibold);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.standort-subline-spacer[b-mtem4wu0h9] {
    flex: 1 1 auto;
}

.standort-subline-picker-label[b-mtem4wu0h9] {
    color: var(--color-text-muted);
    font-size: var(--font-size-hint);
}

.standort-subline-picker[b-mtem4wu0h9] {
    background: var(--color-surface);
    color: var(--color-text);
    border: 1px solid var(--color-border, rgba(255, 255, 255, 0.15));
    border-radius: var(--radius-md, 6px);
    padding: var(--space-2) var(--space-3);
    font-size: var(--font-size-hint);
    min-height: var(--touch-min);
    max-width: 50%;
}
/* /Components/SyncIndicator.razor.rz.scp.css */
/*
 * Upload-Indicator im Header. Pill-Layout: farbiger Punkt + "Upload-Status: X".
 * Vier States: offline (rot), läuft (blau pulsierend), Fehler (rot), fertig (grün).
 */
.upload-indicator[b-b3wonkhbzj] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    border-radius: 999px;
    background: var(--color-surface-light);
    font-size: var(--font-size-hint);
    line-height: 1;
    color: var(--color-text);
    white-space: nowrap;
}

/* Auf schmalen Screens den Prefix "Upload-Status:" weglassen — der Platz
   gehoert dem Breadcrumb (sonst wird er zu "T… › UI-…" verstuemmelt). */
@media (max-width: 480px) {
    .upload-label-prefix[b-b3wonkhbzj] {
        display: none;
    }
}

.upload-dot[b-b3wonkhbzj] {
    width: 10px;
    height: 10px;
    border-radius: var(--radius-circle, 50%);
    flex-shrink: 0;
    background: currentColor;
}

.upload-label[b-b3wonkhbzj] {
    display: inline-flex;
    align-items: baseline;
    gap: var(--space-2);
}

.upload-label-prefix[b-b3wonkhbzj] {
    color: var(--color-text-muted);
}

.upload-label-value[b-b3wonkhbzj] {
    font-weight: var(--font-weight-bold);
    text-transform: lowercase;
}

.upload-label-count[b-b3wonkhbzj] {
    color: var(--color-text-muted);
    font-variant-numeric: tabular-nums;
}

.upload-offline[b-b3wonkhbzj] {
    color: var(--color-error);
}

.upload-running[b-b3wonkhbzj] {
    color: var(--color-info);
    animation: upload-pulse-b-b3wonkhbzj 1.2s ease-in-out infinite;
}

/* Punkt 8 (Auftraggeber): Fehler duerfen NIE wie "fertig" aussehen. */
.upload-failed[b-b3wonkhbzj] {
    color: var(--color-error);
    font-weight: var(--font-weight-bold);
}

.upload-done[b-b3wonkhbzj] {
    color: var(--color-success);
}

@keyframes upload-pulse-b-b3wonkhbzj {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.55; }
}
/* /Components/Toast.razor.rz.scp.css */
/*
 * Toast-Stack: bottom-center, z300, pointer-events steuert nur den Stack;
 * die einzelnen Toasts sind klickbar fuer manuelles Dismiss.
 * Mehrere Toasts werden vertikal gestapelt — neueste unten.
 */
.toast-stack[b-6xayq6y1eg] {
    position: fixed;
    bottom: calc(env(safe-area-inset-bottom, 0) + var(--space-9));
    left: 50%;
    transform: translateX(-50%);
    z-index: var(--z-toast);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    pointer-events: none;
    width: max-content;
    max-width: calc(100vw - var(--space-9));
}

.toast[b-6xayq6y1eg] {
    pointer-events: auto;
    cursor: pointer;
    background: var(--color-surface-light);
    color: var(--color-text);
    padding: var(--space-5) var(--space-9);
    border-radius: var(--radius-card);
    font-size: var(--font-size-body);
    font-weight: var(--font-weight-regular);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
    animation: toast-in-b-6xayq6y1eg 0.25s ease-out;
    border-left: 4px solid var(--color-text-muted);
    max-width: 90vw;
    word-wrap: break-word;
}

.toast-info[b-6xayq6y1eg] {
    border-left-color: var(--color-info);
}

/* Border-Akzent = abgedunkelte Token-Farbe — keine zweite Farbquelle neben tokens.css. */
.toast-success[b-6xayq6y1eg] {
    background: var(--color-success);
    color: #fff;
    border-left-color: color-mix(in srgb, var(--color-success) 60%, black);
}

.toast-warning[b-6xayq6y1eg] {
    background: var(--color-warning);
    color: #333;
    border-left-color: color-mix(in srgb, var(--color-warning) 60%, black);
}

.toast-error[b-6xayq6y1eg] {
    background: var(--color-error);
    color: #fff;
    border-left-color: color-mix(in srgb, var(--color-error) 60%, black);
}

@keyframes toast-in-b-6xayq6y1eg {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/* /Layout/MainLayout.razor.rz.scp.css */
/*
 * MainLayout — die App-Shell nach dem Tabs-Refactor (kein 3-Tab-Nav mehr).
 * - Header sticky top, mit Breadcrumb links + SyncIndicator/Settings-Cog rechts.
 * - StandortSubline liegt direkt unter dem Header (eigene Komponente, eigene CSS).
 * - Main scrollt, Header bleibt sichtbar.
 */
.layout[b-8bjqcom45z] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-height: 100dvh;
}

.layout-header[b-8bjqcom45z] {
    position: sticky;
    top: 0;
    z-index: var(--z-header);
    background: var(--color-surface);
    border-bottom: 2px solid var(--color-primary);
    /* safe-area: Statusleiste/Notch auf Android-PWA nicht ueberlappen. */
    padding: calc(env(safe-area-inset-top, 0px) + var(--space-6)) var(--space-8) var(--space-6);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-5);
    box-sizing: border-box;
    /* Muss zur --header-height in tokens.css passen (StandortSubline-Offset). */
    min-height: var(--header-height);
}

/* App-Update-Banner (appVersion in data/config.json geaendert):
   volle Breite ueber dem Header, bewusst auffaellig. */
[b-8bjqcom45z] .app-update-banner {
    display: flex;
    align-items: center;
    gap: var(--space-5);
    width: 100%;
    border: none;
    cursor: pointer;
    background: var(--color-primary);
    color: #fff;
    padding: calc(env(safe-area-inset-top, 0px) + var(--space-5)) var(--space-8) var(--space-5);
    text-align: left;
    font-size: var(--font-size-body);
}

[b-8bjqcom45z] .app-update-banner-icon {
    font-size: 1.4rem;
    flex: 0 0 auto;
}

[b-8bjqcom45z] .app-update-banner-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

[b-8bjqcom45z] .app-update-banner-text span {
    font-size: var(--font-size-hint);
    opacity: 0.9;
}

.layout-header-left[b-8bjqcom45z] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    min-width: 0;
    flex: 1 1 auto;
}

/* Home-Button links neben dem Breadcrumb — gleiche Geometrie wie Settings-Cog. */
.layout-home-btn[b-8bjqcom45z] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: var(--touch-min);
    min-height: var(--touch-min);
    padding: var(--space-2);
    background: none;
    color: var(--color-text);
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    border-radius: var(--radius-md, 6px);
    transition: background var(--transition-fast), border-color var(--transition-fast);
    flex: 0 0 auto;
}

.layout-home-btn:hover[b-8bjqcom45z] {
    background: var(--color-surface-light);
}

.layout-home-btn:focus-visible[b-8bjqcom45z] {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

.layout-home-btn-active[b-8bjqcom45z] {
    border-bottom-color: var(--color-primary);
    color: var(--color-primary);
}

.layout-home-icon[b-8bjqcom45z] {
    display: block;
}

.layout-header-right[b-8bjqcom45z] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    flex: 0 0 auto;
}

.layout-settings-btn[b-8bjqcom45z] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: var(--touch-min);
    min-height: var(--touch-min);
    padding: var(--space-2);
    background: none;
    color: var(--color-text);
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    border-radius: var(--radius-md, 6px);
    transition: background var(--transition-fast), border-color var(--transition-fast);
}

.layout-settings-btn:hover[b-8bjqcom45z] {
    background: var(--color-surface-light);
}

.layout-settings-btn:focus-visible[b-8bjqcom45z] {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

.layout-settings-btn-active[b-8bjqcom45z] {
    border-bottom-color: var(--color-primary);
    color: var(--color-primary);
}

.layout-settings-icon[b-8bjqcom45z] {
    display: block;
}

.layout-main[b-8bjqcom45z] {
    flex: 1;
    padding: var(--space-7);
    min-height: 0;
}
/* /Pages/CameraPage.razor.rz.scp.css */
.camera-page[b-dgsoc61zpz] {
    max-width: 720px;
    margin: 0 auto;
    padding: var(--space-7);
    display: flex;
    flex-direction: column;
    gap: var(--space-7);
}

.camera-page-title[b-dgsoc61zpz] {
    font-size: var(--font-size-h1);
    font-weight: var(--font-weight-semibold);
    margin: 0;
}

.camera-empty[b-dgsoc61zpz] {
    background: var(--color-surface);
    border: 1px dashed var(--color-surface-light);
    border-radius: var(--radius-card);
    padding: var(--space-9);
    text-align: center;
    color: var(--color-text-muted);
}

/* Read-only-Hinweis fuer abgeschlossene Standorte (F-07). */
.camera-readonly-banner[b-dgsoc61zpz] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    background: var(--color-surface);
    border-left: 3px solid var(--color-success);
    border-radius: var(--radius-card);
    padding: var(--space-5) var(--space-6);
    color: var(--color-text);
    font-size: var(--font-size-body);
}

.camera-readonly-banner strong[b-dgsoc61zpz] {
    color: var(--color-success);
}

.camera-readonly-reason[b-dgsoc61zpz] {
    color: var(--color-text-muted);
    font-size: var(--font-size-hint);
}

.camera-checklist-placeholder[b-dgsoc61zpz] {
    background: var(--color-surface);
    border-radius: var(--radius-card);
    padding: var(--space-9);
    text-align: center;
    color: var(--color-text-muted);
}

.camera-close-bar[b-dgsoc61zpz] {
    display: flex;
    justify-content: center;
    padding-top: var(--space-5);
}

.camera-close-btn[b-dgsoc61zpz] {
    background: var(--color-primary);
    color: #fff;
    border: none;
    border-radius: var(--radius-card);
    padding: var(--space-5) var(--space-8);
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-body);
    cursor: pointer;
    min-height: var(--touch-min);
    transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.camera-close-btn:active:not(:disabled)[b-dgsoc61zpz] {
    transform: scale(0.97);
}

.camera-close-btn:disabled[b-dgsoc61zpz] {
    opacity: 0.5;
    cursor: not-allowed;
}
/* /Pages/LinkListPage.razor.rz.scp.css */
.link-list-page[b-q9j23mj7si] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.page-title[b-q9j23mj7si] {
    font-size: var(--font-size-h1);
    font-weight: var(--font-weight-semibold);
    margin: 0;
    color: var(--color-text);
}

.page-section-title[b-q9j23mj7si] {
    font-size: var(--font-size-h2);
    font-weight: var(--font-weight-semibold);
    margin: var(--space-3) 0 0 0;
    color: var(--color-text-muted);
}

.page-hint[b-q9j23mj7si] {
    color: var(--color-text-muted);
    margin: 0;
}

.list-grid[b-q9j23mj7si] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.list-card[b-q9j23mj7si] {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-5) var(--space-6);
    background: var(--color-surface);
    border: 1px solid var(--color-surface-light);
    border-radius: var(--radius-card, 10px);
    color: var(--color-text);
    text-align: left;
    cursor: pointer;
    transition: background var(--transition-fast), border-color var(--transition-fast);
    min-height: 56px;
}

.list-card:hover[b-q9j23mj7si] {
    background: var(--color-surface-light);
    border-color: var(--color-primary);
}

.list-card-main[b-q9j23mj7si] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
    flex: 1 1 auto;
}

.list-card-title[b-q9j23mj7si] {
    font-size: var(--font-size-h2);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.list-card-sub[b-q9j23mj7si] {
    font-size: var(--font-size-badge);
    color: var(--color-text-muted);
}

.page-form[b-q9j23mj7si] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin-top: var(--space-5);
    padding: var(--space-5);
    background: var(--color-surface);
    border-radius: var(--radius-card, 10px);
    border: 1px solid var(--color-surface-light);
}

.page-form-label[b-q9j23mj7si] {
    font-size: var(--font-size-body);
    color: var(--color-text);
    font-weight: var(--font-weight-semibold);
}

.page-form-row[b-q9j23mj7si] {
    display: flex;
    gap: var(--space-3);
    align-items: stretch;
}

.page-form-input[b-q9j23mj7si] {
    flex: 1 1 auto;
    background: var(--color-bg);
    color: var(--color-text);
    border: 1px solid var(--color-surface-light);
    border-radius: var(--radius-card, 10px);
    padding: var(--space-4) var(--space-5);
    font-size: var(--font-size-body);
    min-height: var(--touch-min);
}

.page-form-input:focus[b-q9j23mj7si] {
    outline: none;
    border-color: var(--color-primary);
}

.page-form-input-invalid[b-q9j23mj7si] {
    border-color: var(--color-error, #f44336);
}

.page-form-btn[b-q9j23mj7si] {
    background: var(--color-primary);
    color: #fff;
    border: none;
    border-radius: var(--radius-card, 10px);
    padding: 0 var(--space-6);
    font-size: var(--font-size-body);
    font-weight: var(--font-weight-semibold);
    cursor: pointer;
    min-height: var(--touch-min);
    min-width: 96px;
}

.page-form-btn:disabled[b-q9j23mj7si] {
    opacity: 0.5;
    cursor: not-allowed;
}

.page-form-error[b-q9j23mj7si] {
    color: var(--color-error, #f44336);
    font-size: var(--font-size-badge);
}

.link-list-direct-btn[b-q9j23mj7si] {
    margin-top: var(--space-3);
    background: none;
    border: 1px dashed var(--color-text-muted);
    color: var(--color-text-muted);
    border-radius: var(--radius-card);
    padding: var(--space-3) var(--space-5);
    font-size: var(--font-size-hint);
    cursor: pointer;
    min-height: var(--touch-min);
}

.link-list-direct-btn:hover[b-q9j23mj7si] {
    border-color: var(--color-primary);
    color: var(--color-primary);
}
/* /Pages/LoginPage.razor.rz.scp.css */
/* LoginPage.razor.css — CSS-Isolation. Keine globalen Selektoren. */

.login-page[b-m3jb3tzwl1] {
    max-width: 420px;
    margin: var(--space-9) auto;
    padding: var(--space-9);
    background: var(--color-surface);
    border-radius: var(--radius-card);
    display: flex;
    flex-direction: column;
    gap: var(--space-7);
}

.login-title[b-m3jb3tzwl1] {
    font-size: var(--font-size-h1);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin: 0;
}

.login-howto[b-m3jb3tzwl1] {
    background: var(--color-surface-light);
    border-radius: var(--radius-card);
    padding: var(--space-5) var(--space-7);
    color: var(--color-text);
    font-size: var(--font-size-body);
}

.login-howto summary[b-m3jb3tzwl1] {
    cursor: pointer;
    font-weight: var(--font-weight-semibold);
    list-style: none;
    padding: var(--space-1) 0;
    display: flex;
    align-items: center;
    gap: var(--space-4);
}

.login-howto summary[b-m3jb3tzwl1]::-webkit-details-marker {
    display: none;
}

.login-howto-info[b-m3jb3tzwl1] {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    color: var(--color-primary);
}

.login-howto-title[b-m3jb3tzwl1] {
    flex: 1;
}

.login-howto-chevron[b-m3jb3tzwl1] {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    color: var(--color-text-muted);
    transition: transform var(--transition-fast);
}

.login-howto[open] .login-howto-chevron[b-m3jb3tzwl1] {
    transform: rotate(180deg);
}

.login-howto ol[b-m3jb3tzwl1] {
    margin: var(--space-5) 0 var(--space-2) var(--space-7);
    padding: 0;
    color: var(--color-text-muted);
    line-height: 1.6;
}

.login-howto ol li[b-m3jb3tzwl1] {
    margin-bottom: var(--space-2);
}

.login-info[b-m3jb3tzwl1] {
    background: var(--color-surface-light);
    color: var(--color-text);
    padding: var(--space-5) var(--space-7);
    border-radius: var(--radius-card);
    font-size: var(--font-size-body);
    line-height: 1.5;
    border-left: 3px solid var(--color-warning);
}

.login-form[b-m3jb3tzwl1] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.login-label[b-m3jb3tzwl1] {
    font-size: var(--font-size-hint);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: calc(var(--space-2) * -1);
}

.login-input[b-m3jb3tzwl1] {
    width: 100%;
    padding: var(--space-5) var(--space-6);
    background: var(--color-bg);
    color: var(--color-text);
    border: 1px solid var(--color-surface-light);
    border-radius: var(--radius-card);
    font-size: var(--font-size-body);
    min-height: var(--touch-min);
    transition: border-color var(--transition-fast);
}

.login-input:focus[b-m3jb3tzwl1] {
    outline: none;
    border-color: var(--color-primary);
}

.login-input:disabled[b-m3jb3tzwl1] {
    opacity: 0.6;
    cursor: not-allowed;
}

.login-error[b-m3jb3tzwl1] {
    background: rgba(244, 67, 54, 0.12);
    color: var(--color-error);
    padding: var(--space-5) var(--space-6);
    border-radius: var(--radius-card);
    font-size: var(--font-size-body);
    border-left: 3px solid var(--color-error);
}

.login-submit[b-m3jb3tzwl1] {
    margin-top: var(--space-3);
    width: 100%;
    min-height: 52px;
    padding: var(--space-5) var(--space-7);
    background: var(--color-primary);
    color: #fff;
    border: none;
    border-radius: var(--radius-card);
    font-size: var(--font-size-body);
    font-weight: var(--font-weight-semibold);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
    transition: opacity var(--transition-fast), transform 0.1s;
}

.login-submit:active:not(:disabled)[b-m3jb3tzwl1] {
    transform: scale(0.98);
}

.login-submit:disabled[b-m3jb3tzwl1] {
    opacity: 0.5;
    cursor: not-allowed;
}

.login-spinner[b-m3jb3tzwl1] {
    width: 18px;
    height: 18px;
    border: 2px solid rgba(255, 255, 255, 0.4);
    border-top-color: #fff;
    border-radius: var(--radius-circle);
    animation: login-spin-b-m3jb3tzwl1 0.8s linear infinite;
}

@keyframes login-spin-b-m3jb3tzwl1 {
    to { transform: rotate(360deg); }
}
/* /Pages/ProjectListPage.razor.rz.scp.css */
.project-list-page[b-4rz78z8xgm] {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}

.page-title[b-4rz78z8xgm] {
    font-size: var(--font-size-h1);
    font-weight: var(--font-weight-semibold);
    margin: 0;
    color: var(--color-text);
}

.page-hint[b-4rz78z8xgm] {
    color: var(--color-text-muted);
    margin: 0;
}

.page-empty[b-4rz78z8xgm] {
    background: var(--color-surface);
    border-radius: var(--radius-card, 10px);
    padding: var(--space-7);
    color: var(--color-text-muted);
    border: 1px dashed var(--color-surface-light);
}

.project-grid[b-4rz78z8xgm] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: var(--space-5);
}

.project-card[b-4rz78z8xgm] {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-6) var(--space-7);
    background: var(--color-surface);
    border: 1px solid var(--color-surface-light);
    border-radius: var(--radius-card, 10px);
    color: var(--color-text);
    text-align: left;
    cursor: pointer;
    transition: background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);
    min-height: 64px;
}

.project-card:hover[b-4rz78z8xgm] {
    background: var(--color-surface-light);
    border-color: var(--color-primary);
}

.project-card:active[b-4rz78z8xgm] {
    transform: scale(0.99);
}

.project-card-main[b-4rz78z8xgm] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
    flex: 1 1 auto;
}

.project-card-name[b-4rz78z8xgm] {
    font-size: var(--font-size-h2);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.project-card-id[b-4rz78z8xgm] {
    font-size: var(--font-size-badge);
    color: var(--color-text-muted);
}

.project-card-badge[b-4rz78z8xgm] {
    background: var(--color-primary);
    color: #fff;
    font-size: var(--font-size-badge);
    font-weight: var(--font-weight-bold);
    padding: var(--space-1) var(--space-4);
    border-radius: var(--radius-pill);
    min-height: 24px;
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
}
/* /Pages/ReportPage.razor.rz.scp.css */
.report-page[b-ijt9p0a8f6] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.report-banner[b-ijt9p0a8f6] {
    padding: var(--space-4) var(--space-5);
    border-radius: var(--radius-card);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.report-banner-warn[b-ijt9p0a8f6] {
    background: rgba(208, 65, 65, 0.1);
    border: 1px solid var(--color-error, #d04141);
    color: var(--color-text);
}

.report-banner-done[b-ijt9p0a8f6] {
    background: var(--color-success-soft, rgba(40, 167, 69, 0.12));
    border: 1px solid var(--color-success, #28a745);
    color: var(--color-text);
}

.report-banner-path[b-ijt9p0a8f6] {
    font-family: var(--font-mono, monospace);
    font-size: var(--font-size-hint);
    color: var(--color-text-muted);
    word-break: break-all;
}

.report-actions[b-ijt9p0a8f6] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    align-items: stretch;
    padding-top: var(--space-5);
}

.report-missing-hint[b-ijt9p0a8f6] {
    color: var(--color-error, #d04141);
    font-size: var(--font-size-hint);
}

.report-submit-btn[b-ijt9p0a8f6] {
    background: var(--color-primary);
    color: #fff;
    border: none;
    border-radius: var(--radius-card);
    padding: var(--space-4) var(--space-6);
    font-size: var(--font-size-button);
    font-weight: var(--font-weight-bold);
    min-height: var(--touch-min);
    cursor: pointer;
}

.report-submit-btn:disabled[b-ijt9p0a8f6] {
    opacity: 0.5;
    cursor: not-allowed;
}

.report-pick[b-ijt9p0a8f6] {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-card);
    padding: var(--space-4) var(--space-5);
    margin: 0;
}

.report-pick legend[b-ijt9p0a8f6] {
    font-weight: var(--font-weight-bold);
    padding: 0 var(--space-2);
}

.report-pick-options[b-ijt9p0a8f6] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin: var(--space-3) 0;
}

.report-pick-option[b-ijt9p0a8f6] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md, 6px);
    cursor: pointer;
}

.report-pick-option-active[b-ijt9p0a8f6] {
    border-color: var(--color-primary);
    background: var(--color-primary-soft, rgba(233, 69, 96, 0.1));
}

.report-pick-hint[b-ijt9p0a8f6] {
    color: var(--color-text-muted);
    font-size: var(--font-size-hint);
}
/* /Pages/SettingsPage.razor.rz.scp.css */
.placeholder[b-by20yd0iew] {
    max-width: 480px;
    margin: var(--space-9) auto;
    padding: var(--space-9);
    background: var(--color-surface);
    border-radius: var(--radius-card);
    text-align: center;
}

.placeholder-title[b-by20yd0iew] {
    font-size: var(--font-size-h1);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--space-5);
    color: var(--color-text);
}

.placeholder-text[b-by20yd0iew] {
    color: var(--color-text-muted);
    font-size: var(--font-size-body);
    line-height: 1.5;
    margin-bottom: var(--space-7);
}

.placeholder-actions[b-by20yd0iew] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    align-items: center;
}

.placeholder-result[b-by20yd0iew] {
    color: var(--color-text);
    font-size: var(--font-size-body);
    font-family: ui-monospace, "Cascadia Code", Consolas, monospace;
}

.btn[b-by20yd0iew] {
    padding: var(--space-5) var(--space-9);
    border: none;
    border-radius: var(--radius-card);
    font-size: var(--font-size-body);
    font-weight: var(--font-weight-semibold);
    min-height: var(--touch-min);
    cursor: pointer;
    transition: opacity var(--transition-fast), transform 0.1s;
}

.btn:active[b-by20yd0iew] {
    transform: scale(0.96);
}

.btn:disabled[b-by20yd0iew] {
    opacity: 0.5;
    cursor: not-allowed;
}

.btn-secondary[b-by20yd0iew] {
    background: var(--color-surface-light);
    color: var(--color-text);
    border: 1px solid var(--color-border);
}

/* Abmelden liegt AUF der surface-light-Konto-Karte — gleicher Hintergrund
   wuerde mit der Karte verschmelzen. Deutlicher Outline-Stil in Primaerfarbe. */
.btn-logout[b-by20yd0iew] {
    align-self: flex-start;
    background: transparent;
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
}

.btn-logout:hover:not(:disabled)[b-by20yd0iew] {
    background: color-mix(in srgb, var(--color-primary) 15%, transparent);
}

.settings-account[b-by20yd0iew] {
    margin: var(--space-7) 0 var(--space-9) 0;
    padding: var(--space-7);
    background: var(--color-surface-light);
    border-radius: var(--radius-card);
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.settings-account-heading[b-by20yd0iew] {
    font-size: var(--font-size-h2);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    margin: 0 0 var(--space-3) 0;
}

.settings-account-info[b-by20yd0iew] {
    color: var(--color-text);
}

.settings-account-name[b-by20yd0iew] {
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--space-1);
}

.settings-account-email[b-by20yd0iew] {
    color: var(--color-text-muted);
    font-size: var(--font-size-hint);
}

.settings-account-hint[b-by20yd0iew] {
    color: var(--color-text-muted);
    font-size: var(--font-size-hint);
    line-height: 1.4;
    margin: var(--space-3) 0 0 0;
}
/* /Pages/StandortListPage.razor.rz.scp.css */
/* Page-Styles fuer StandortListPage. Bewusst eigenstaendig — Blazor's CSS-
   Isolation per Komponente macht ein gemeinsames Stylesheet ueber mehrere
   Pages nicht ohne weiteres moeglich. */
.standort-list-page[b-2smz1mhcpd] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.page-title[b-2smz1mhcpd] {
    font-size: var(--font-size-h1);
    font-weight: var(--font-weight-semibold);
    margin: 0;
    color: var(--color-text);
}

.page-section-title[b-2smz1mhcpd] {
    font-size: var(--font-size-h2);
    font-weight: var(--font-weight-semibold);
    margin: var(--space-3) 0 0 0;
    color: var(--color-text-muted);
}

.page-hint[b-2smz1mhcpd] {
    color: var(--color-text-muted);
    margin: 0;
}

.list-grid[b-2smz1mhcpd] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.list-card[b-2smz1mhcpd] {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-5) var(--space-6);
    background: var(--color-surface);
    border: 1px solid var(--color-surface-light);
    border-radius: var(--radius-card, 10px);
    color: var(--color-text);
    text-align: left;
    cursor: pointer;
    transition: background var(--transition-fast), border-color var(--transition-fast);
    min-height: 56px;
}

.list-card:hover[b-2smz1mhcpd] {
    background: var(--color-surface-light);
    border-color: var(--color-primary);
}

.list-card-main[b-2smz1mhcpd] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
    flex: 1 1 auto;
}

.list-card-title[b-2smz1mhcpd] {
    font-size: var(--font-size-h2);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.list-card-sub[b-2smz1mhcpd] {
    font-size: var(--font-size-badge);
    color: var(--color-text-muted);
}

/* Abgeschlossene Standorte: sichtbar gekennzeichnet, gedimmt, aber klickbar
   (read-only-Ansicht). */
.list-card-closed[b-2smz1mhcpd] {
    opacity: 0.75;
    border-left: 3px solid var(--color-success);
}

.list-card-badge-closed[b-2smz1mhcpd] {
    flex: 0 0 auto;
    font-size: var(--font-size-badge);
    font-weight: var(--font-weight-semibold);
    color: var(--color-success);
    border: 1px solid var(--color-success);
    border-radius: var(--radius-pill);
    padding: var(--space-1) var(--space-4);
    white-space: nowrap;
}

.page-form[b-2smz1mhcpd] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin-top: var(--space-5);
    padding: var(--space-5);
    background: var(--color-surface);
    border-radius: var(--radius-card, 10px);
    border: 1px solid var(--color-surface-light);
}

.page-form-label[b-2smz1mhcpd] {
    font-size: var(--font-size-body);
    color: var(--color-text);
    font-weight: var(--font-weight-semibold);
}

.page-form-row[b-2smz1mhcpd] {
    display: flex;
    gap: var(--space-3);
    align-items: stretch;
}

.page-form-input[b-2smz1mhcpd] {
    flex: 1 1 auto;
    background: var(--color-bg);
    color: var(--color-text);
    border: 1px solid var(--color-surface-light);
    border-radius: var(--radius-card, 10px);
    padding: var(--space-4) var(--space-5);
    font-size: var(--font-size-body);
    min-height: var(--touch-min);
}

.page-form-input:focus[b-2smz1mhcpd] {
    outline: none;
    border-color: var(--color-primary);
}

.page-form-input-invalid[b-2smz1mhcpd] {
    border-color: var(--color-error, #f44336);
}

.page-form-btn[b-2smz1mhcpd] {
    background: var(--color-primary);
    color: #fff;
    border: none;
    border-radius: var(--radius-card, 10px);
    padding: 0 var(--space-6);
    font-size: var(--font-size-body);
    font-weight: var(--font-weight-semibold);
    cursor: pointer;
    min-height: var(--touch-min);
    min-width: 96px;
}

.page-form-btn:disabled[b-2smz1mhcpd] {
    opacity: 0.5;
    cursor: not-allowed;
}

.page-form-error[b-2smz1mhcpd] {
    color: var(--color-error, #f44336);
    font-size: var(--font-size-badge);
}

.standort-report-row[b-2smz1mhcpd] {
    margin-top: var(--space-3);
}

.standort-report-btn[b-2smz1mhcpd] {
    width: 100%;
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-5);
    background: var(--color-surface);
    border: 1px dashed var(--color-primary);
    border-radius: var(--radius-card, 10px);
    color: var(--color-text);
    cursor: pointer;
    min-height: var(--touch-min);
    text-align: left;
}

.standort-report-btn:hover[b-2smz1mhcpd] {
    background: var(--color-surface-light);
}

.standort-report-icon[b-2smz1mhcpd] {
    font-size: 1.5rem;
}

.standort-report-label[b-2smz1mhcpd] {
    font-weight: var(--font-weight-semibold);
    font-size: var(--font-size-body);
    flex: 1 1 auto;
}

.standort-report-sub[b-2smz1mhcpd] {
    font-size: var(--font-size-badge);
    color: var(--color-text-muted);
}
