/*
 * AURA Design System – zentrale Quelle für alle Rollenbereiche.
 *
 * Änderungen an Farben, Typografie, Abständen und Komponenten werden hier
 * vorgenommen. Die Fachseiten verwenden weiterhin ihre bestehenden Klassen,
 * damit die Geschäftslogik unverändert bleibt.
 */
:root {
    --aura-font-family: Arial, Helvetica, sans-serif;
    --aura-font-size: 14px;
    --aura-line-height: 1.45;
    --aura-text: #18324b;
    --aura-muted: #64748b;
    --aura-primary: linear-gradient(90deg, #079be1 0%, #075fa8 100%);
    --aura-primary-hover: linear-gradient(90deg, #18a9e8 0%, #064d88 100%);
    --aura-primary-solid: #075fa8;
    --aura-primary-soft: linear-gradient(90deg, #ffffff 0%, #edf5fb 100%);
    --aura-secondary-text: #111111;
    --aura-danger: linear-gradient(135deg, #a92828 0%, #dc5a52 100%);
    --aura-danger-hover: linear-gradient(135deg, #8f2020 0%, #b83f39 100%);
    --aura-success: linear-gradient(135deg, #176b3a 0%, #45a86b 100%);
    --aura-success-hover: linear-gradient(135deg, #12572f 0%, #348653 100%);
    --aura-warning: linear-gradient(135deg, #d28a00 0%, #f2c14e 100%);
    --aura-warning-hover: linear-gradient(135deg, #ad6e00 0%, #d7a52e 100%);
    --aura-nav: #073d70;
    --aura-nav-text: #e8f1f8;
    --aura-nav-active: #ffffff;
    --aura-border: #e1e8ee;
    --aura-border-strong: #c9d9e6;
    --aura-input-border: #c9d9e6;
    --aura-input-focus: #075fa8;
    --aura-surface: #ffffff;
    --aura-page: #f4f7fa;
    --aura-gap: 16px;
    --aura-gap-small: 10px;
    --aura-card-padding: 18px;
    --aura-radius: 8px;
    --aura-radius-card: 12px;
    --aura-shadow: 0 4px 16px rgba(24, 50, 75, .05);
    /* Verbindlicher AURA-Standard: Buttons sind überall mindestens 38 px hoch. */
    --aura-button-height: 38px;
    --aura-color-heading: var(--aura-text);
    --aura-font-text: var(--aura-font-size);
    --aura-font-text-small: 12px;
    --aura-font-heading-large: 26px;
    --aura-font-heading-small: 18px;
    --aura-font-heading: 600;
    --aura-line-text: var(--aura-line-height);
    --aura-line-heading: 1.2;
    --aura-line-heading-small: 1.25;
    --aura-line-heading-tertiary: 1.3;
    --aura-font-normal: 400;
    --aura-font-medium: 500;
    --aura-space-section: 24px;
    --aura-gap-card: 16px;
}

.aura-auditor-shell,
.client-layout,
.admin-layout,
.tuev-layout,
.mein-aura-shell {
    font-family: var(--aura-font-family);
    font-size: var(--aura-font-size);
    line-height: var(--aura-line-height);
    color: var(--aura-text);
}

/* Semantische Klassen für neue und schrittweise umgestellte Seiten. */
.aura-btn {
    appearance: none;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--aura-button-height);
    padding: 0 18px;
    border: 1px solid transparent;
    border-radius: var(--aura-radius);
    font: 400 14px/1.2 var(--aura-font-family);
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 5px 14px rgba(7, 95, 168, .14);
    transition: transform .15s ease, background-color .15s ease, border-color .15s ease, box-shadow .15s ease, color .15s ease;
}

.aura-btn--primary {
    border-color: transparent;
    background: var(--aura-primary);
    color: #fff !important;
}

.aura-btn--primary:hover,
.aura-btn--primary:focus-visible {
    border-color: #064d88;
    background: var(--aura-primary-hover);
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 7px 18px rgba(7, 95, 168, .20);
    outline: none;
}

.aura-btn--secondary {
    min-height: 42px;
    padding: 0 16px;
    border-color: #d7e1ea;
    background: var(--aura-primary-soft);
    color: var(--aura-secondary-text) !important;
    font-weight: 400;
    box-shadow: none;
}

.aura-btn--secondary:hover,
.aura-btn--secondary:focus-visible {
    border-color: var(--aura-primary-solid);
    background: #dcecf8;
    color: #111111 !important;
    transform: translateY(-1px);
    box-shadow: 0 5px 14px rgba(7, 95, 168, .14);
    outline: none;
}

.aura-btn--danger {
    border-color: #a92828;
    background: var(--aura-danger);
    color: #fff !important;
}

.aura-btn--danger:hover,
.aura-btn--danger:focus-visible {
    border-color: #8f2020;
    background: var(--aura-danger-hover);
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 7px 18px rgba(169, 40, 40, .20);
    outline: none;
}

.aura-btn--success {
    border-color: #176b3a;
    background: var(--aura-success);
    color: #fff !important;
}

.aura-btn--success:hover,
.aura-btn--success:focus-visible {
    border-color: #12572f;
    background: var(--aura-success-hover);
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 7px 18px rgba(23, 107, 58, .20);
    outline: none;
}

.aura-btn--warning {
    border-color: #d28a00;
    background: var(--aura-warning);
    color: #fff !important;
}

.aura-btn--warning:hover,
.aura-btn--warning:focus-visible {
    border-color: #ad6e00;
    background: var(--aura-warning-hover);
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 7px 18px rgba(210, 138, 0, .20);
    outline: none;
}

.aura-btn:disabled,
.aura-btn[aria-disabled="true"] {
    opacity: .58;
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}

.aura-form-label {
    display: block;
    margin: 0 0 6px;
    color: var(--aura-text);
    font-size: 14px;
    font-weight: 400;
}

.aura-form-control {
    box-sizing: border-box;
    width: 100%;
    min-height: 42px;
    padding: 9px 12px;
    border: 1px solid var(--aura-input-border);
    border-radius: var(--aura-radius);
    background: var(--aura-surface);
    color: var(--aura-text);
    font: 400 14px/1.45 var(--aura-font-family);
    transition: border-color .15s ease, box-shadow .15s ease;
}

.aura-form-control:focus {
    border-color: var(--aura-input-focus);
    outline: none;
    box-shadow: 0 0 0 3px rgba(7, 95, 168, .14);
}

.aura-form-help {
    margin-top: 6px;
    color: var(--aura-muted);
    font-size: 12px;
}

.aura-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--aura-surface);
    font-size: 14px;
}

.aura-table th,
.aura-table td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--aura-border);
    text-align: left;
    vertical-align: top;
}

.aura-table th {
    color: var(--aura-muted);
    font-size: 12px;
    font-weight: 400;
}

.aura-table tbody tr:hover { background: #f7fafc; }

.aura-status {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.2;
}

.aura-status--success { background: #e5f4eb; color: #176b3a; }
.aura-status--warning { background: #fff3d6; color: #8a5b00; }
.aura-status--danger { background: #fbe8e7; color: #a92828; }
.aura-status--info { background: #e6f2fb; color: #075fa8; }
.aura-status--neutral { background: #eef2f5; color: #64748b; }

.aura-alert {
    padding: 12px 14px;
    border: 1px solid transparent;
    border-radius: var(--aura-radius);
    font-size: 14px;
}

.aura-alert--info { border-color: #b9d9ef; background: #edf7fd; color: #075fa8; }
.aura-alert--success { border-color: #b9dfc7; background: #edf9f1; color: #176b3a; }
.aura-alert--warning { border-color: #f0d58e; background: #fff9e9; color: #8a5b00; }
.aura-alert--danger { border-color: #efb9b5; background: #fff1f0; color: #a92828; }

.aura-link {
    color: var(--aura-primary-solid);
    text-decoration: none;
}

.aura-link:hover,
.aura-link:focus-visible { text-decoration: underline; }

.aura-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin: 0 0 10px;
    color: var(--aura-muted);
    font-size: 13px;
}

.aura-breadcrumb__current { color: var(--aura-text); }

.aura-page-head {
    display: flex;
    justify-content: space-between;
    gap: var(--aura-gap);
    align-items: flex-start;
    margin-bottom: var(--aura-gap);
}

.aura-page-head h1,
.aura-page-head h2 { margin: 0; }

/* Verbindlicher Aufbau aller Dashboard-Startseiten. */
.aura-dashboard-head {
    margin-bottom: 24px;
}

.aura-environment-label {
    display: inline-block;
    margin-left: 10px;
    color: var(--aura-muted);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.3;
    vertical-align: middle;
    white-space: nowrap;
}

.admin-header-brand,
.client-header-brand,
.global-auditor-brand {
    display: inline-flex;
    align-items: center;
}

/* Einheitliche Benutzerzeile in allen AURA-Kopfzeilen.
 * Name und Organisation/Funktion verwenden bewusst dieselbe zentrale
 * Typografie – unabhängig vom jeweiligen Dashboard-CSS. */
.aura-header-user-name,
.aura-header-user-meta {
    box-sizing: border-box;
    max-width: 100%;
    overflow: hidden;
    font-family: var(--aura-font-family) !important;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.aura-header-user-name {
    font-size: 14px !important;
    line-height: 1.55 !important;
    font-weight: 600 !important;
    color: var(--aura-text) !important;
}

.aura-header-user-meta {
    margin-top: 3px;
    font-size: 12px !important;
    line-height: 1.55 !important;
    font-weight: 400 !important;
    color: var(--aura-muted) !important;
}

.admin-dashboard-head {
    margin-bottom: 24px;
}

.admin-stats {
    gap: var(--aura-gap-card);
}

.aura-dashboard-breadcrumb {
    margin: 0 0 8px;
    color: var(--aura-muted);
    font-size: 12px;
    line-height: 1.4;
}

.aura-dashboard-breadcrumb a {
    color: var(--aura-primary-solid);
    text-decoration: none;
}

.aura-dashboard-breadcrumb a:hover,
.aura-dashboard-breadcrumb a:focus-visible {
    text-decoration: underline;
}

.aura-dashboard-context {
    margin: 6px 0 0;
    color: var(--aura-muted);
    font-size: var(--aura-font-text);
    line-height: var(--aura-line-text);
}


.aura-focusable:focus-visible,
.aura-link:focus-visible {
    outline: 3px solid rgba(7, 95, 168, .28);
    outline-offset: 2px;
}

.aura-icon {
    display: inline-flex;
    width: 1.25em;
    height: 1.25em;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    vertical-align: -.2em;
}

.aura-nav-link {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    gap: 8px;
    padding: 0 12px;
    border-radius: var(--aura-radius);
    color: var(--aura-nav-text);
    text-decoration: none;
}

.aura-nav-link:hover,
.aura-nav-link[aria-current="page"] { background: rgba(255, 255, 255, .12); color: #fff; }

.flow-link,
.card-main-link,
.dashboard-item-link,
.card-all-link,
.content-link,
.aura-text-link {
    color: var(--aura-primary-solid);
    text-decoration: none;
}

.flow-link:hover,
.card-main-link:hover,
.dashboard-item-link:hover,
.card-all-link:hover,
.content-link:hover,
.aura-text-link:hover,
.flow-link:focus-visible,
.card-main-link:focus-visible,
.dashboard-item-link:focus-visible,
.card-all-link:focus-visible,
.content-link:focus-visible,
.aura-text-link:focus-visible {
    color: #064d88;
    text-decoration: underline;
}

.aura-dialog {
    width: min(100%, 560px);
    padding: 22px;
    border: 1px solid var(--aura-border);
    border-radius: var(--aura-radius-card);
    background: var(--aura-surface);
    box-shadow: 0 12px 32px rgba(24, 50, 75, .16);
}

.aura-dialog__header { margin: 0 0 10px; }
.aura-dialog__header h2 { margin: 0; font-size: 18px; }
.aura-dialog__body { color: var(--aura-muted); }
.aura-dialog__actions { display: flex; flex-wrap: wrap; gap: var(--aura-gap-small); margin-top: 18px; justify-content: flex-end; }

.aura-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

@media print {
    .aura-no-print,
    .aura-sidebar,
    .admin-nav,
    .admin-header-actions { display: none !important; }
    .aura-card { box-shadow: none !important; break-inside: avoid; }
    .aura-page-head { margin-bottom: 12px; }
}

.aura-card {
    box-sizing: border-box;
    min-width: 0;
    padding: var(--aura-card-padding);
    border: 1px solid var(--aura-border);
    border-radius: var(--aura-radius-card);
    background: var(--aura-surface);
    box-shadow: var(--aura-shadow);
}

.aura-grid {
    display: grid;
    gap: var(--aura-gap);
    column-gap: var(--aura-gap);
    row-gap: var(--aura-gap);
    align-items: stretch;
}

.aura-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.aura-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.aura-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.aura-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.aura-grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }

@media (max-width: 1100px) {
    .aura-grid--5,
    .aura-grid--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    .aura-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .aura-grid--5,
    .aura-grid--6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .aura-grid--2,
    .aura-grid--3,
    .aura-grid--4,
    .aura-grid--5,
    .aura-grid--6 { grid-template-columns: 1fr; }
}
