body {
    font-family: Arial, sans-serif;
    margin: 0;
    background-color: #f4f6f9;
    color: #222;
}

/* Turnusplanung */
.turnus-rueckweg{margin:0 0 18px}.turnus-rueckweg a{color:#356b57;font-weight:700;text-decoration:none}.turnus-rueckweg a:hover{text-decoration:underline}
.turnus-rueckweg+.turnus-rueckweg{margin-top:-10px}
.turnus-main{max-width:1500px;margin:0 auto}.turnus-planliste{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.turnus-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:14px;margin:24px 0}.turnus-kw{background:#fff;border:1px solid #d9e2dd;border-left:5px solid #769787;border-radius:10px;padding:15px;scroll-margin-top:15px}.turnus-kw a{display:block;color:inherit;text-decoration:none}.turnus-kw h3{margin:0 0 5px;color:#285744}.turnus-kw p{margin:5px 0}.turnus-kw dl{margin:12px 0 0}.turnus-kw dt{font-size:.78rem;color:#65756d;text-transform:uppercase}.turnus-kw dd{margin:2px 0 9px;font-weight:600}.turnus-kw.unvollstaendig{border-left-color:#c49a45;background:#fffdf6}.turnus-kw.aktuell{outline:3px solid rgba(53,107,87,.28)}.turnus-bemerkung{border-top:1px solid #e3e8e5;padding-top:8px;font-size:.9rem}.turnus-statistik{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;background:#fff;border-radius:10px;padding:20px;margin:25px 0}.form-card{max-width:760px;margin:40px auto;background:#fff;border-radius:12px;padding:28px}.form-card label{display:block;margin:16px 0;font-weight:600}.form-card input:not([type=checkbox]),.form-card select,.form-card textarea{box-sizing:border-box;width:100%;margin-top:6px;padding:10px;border:1px solid #b9c8c1;border-radius:6px;font:inherit}.form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}@media(max-width:650px){.turnus-grid{grid-template-columns:1fr}.auftrag-page-heading{align-items:flex-start}.form-card{margin:10px;padding:18px}}

header {
    background-color: #1f4e79;
    color: white;
    padding: 20px 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

header h1 {
    margin: 0;
    font-size: 28px;
}

header p {
    margin: 5px 0 0 0;
    font-size: 15px;
}

.user-box {
    text-align: right;
    background-color: rgba(255,255,255,0.12);
    padding: 10px 16px;
    border-radius: 8px;
}

.user-box strong {
    display: block;
    font-size: 15px;
}

.user-box span {
    display: block;
    font-size: 13px;
    margin-top: 3px;
    opacity: 0.9;
}

.layout {
    display: flex;
    min-height: calc(100vh - 86px);
}

.sidebar {
    width: 230px;
    background-color: #2f75b5;
    padding-top: 20px;
    flex-shrink: 0;
}

.sidebar a {
    display: block;
    color: white;
    text-decoration: none;
    padding: 14px 24px;
    font-weight: bold;
    border-left: 5px solid transparent;
}

.sidebar a:hover {
    background-color: #1f4e79;
}

.sidebar a.active {
    background-color: #1f4e79;
    border-left: 5px solid white;
}

.content {
    flex: 1;
    padding: 30px;
}

.page-header {
    background: white;
    padding: 20px 24px;
    border-radius: 10px;
    box-shadow: 0px 2px 8px rgba(0,0,0,0.08);
    margin-bottom: 20px;
}

.page-header h2 {
    margin: 0;
    color: #1f4e79;
}

.page-header p {
    margin: 8px 0 0 0;
    color: #666;
}

.status-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}

.status-card {
    background: white;
    padding: 14px 18px;
    border-radius: 8px;
    font-weight: bold;
    box-shadow: 0px 2px 8px rgba(0,0,0,0.08);
    border-left: 6px solid #2f75b5;
}

.status-card.green {
    border-left-color: #3c9d5b;
}

.status-card.yellow {
    border-left-color: #d6a400;
}

.card {
    background: white;
    padding: 22px;
    border-radius: 10px;
    box-shadow: 0px 2px 8px rgba(0,0,0,0.1);
    margin-bottom: 22px;
}

.card h3 {
    margin-top: 0;
    color: #1f4e79;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 22px;
    margin-top: 20px;
}

.info-card {
    text-align: center;
}

.info-card h3 {
    color: #1f4e79;
    margin-top: 0;
}

.zahl {
    font-size: 34px;
    font-weight: bold;
    color: #2f75b5;
    margin: 20px 0;
}

.dashboard-bottom {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 22px;
    margin-top: 5px;
}

.activity-list {
    margin: 0;
    padding-left: 20px;
}

.activity-list li {
    padding: 8px 0;
    border-bottom: 1px solid #eee;
}

.quick-actions {
    display: grid;
    gap: 12px;
}

.quick-actions a,
.button {
    display: inline-block;
    background-color: #2f75b5;
    color: white;
    text-decoration: none;
    padding: 12px 16px;
    border-radius: 7px;
    text-align: center;
    font-weight: bold;
    border: none;
}

.quick-actions a:hover,
.button:hover {
    background-color: #1f4e79;
}

.toolbar {
    display: flex;
    gap: 12px;
    margin-bottom: 20px;
    flex-wrap: wrap;
    align-items: center;
}

.toolbar input,
.toolbar select {
    padding: 11px;
    border: 1px solid #ccc;
    border-radius: 7px;
    font-size: 14px;
}

.toolbar input {
    min-width: 240px;
}

table {
    width: 100%;
    border-collapse: collapse;
}

th {
    background-color: #1f4e79;
    color: white;
    text-align: left;
    padding: 12px;
}

td {
    padding: 12px;
    border-bottom: 1px solid #ddd;
}

tr:hover {
    background-color: #f2f6fb;
}

.badge {
    display: inline-block;
    padding: 6px 10px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: bold;
}

.badge.green {
    background-color: #e4f3e9;
    color: #2d7a45;
}

.badge.yellow {
    background-color: #fff4cc;
    color: #8a6a00;
}

footer {
    margin-top: 10px;
    padding: 18px 0;
    color: #777;
    font-size: 13px;
    text-align: center;
}
.landing-page {
    background: #0f4c81;
    min-height: 100vh;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.landing-container {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    padding: 40px;
}

.landing-card {
    background: white;
    border-radius: 20px;
    width: 900px;
    max-width: 100%;
    overflow: hidden;
    box-shadow: 0 15px 35px rgba(0,0,0,0.25);
}

.landing-logo {
    text-align: center;
    padding: 40px 20px 20px 20px;
}

.landing-logo h1 {
    color: #0f4c81;
    margin-bottom: 10px;
    font-size: 42px;
}

.landing-logo h2 {
    color: #666;
    font-weight: normal;
}

.landing-image {
    text-align: center;
    padding: 0 40px;
}

.landing-image img {
    width: 100%;
    max-height: 330px;
    object-fit: cover;
    border-radius: 14px;
    display: block;
}

.welcome-text {
    text-align: center;
    padding: 30px;
}

.welcome-text h3 {
    color: #0f4c81;
    margin-bottom: 15px;
}

.login-box {
    width: 350px;
    margin: auto;
    padding-bottom: 40px;
}

.login-box input {
    width: 100%;
    padding: 14px;
    margin-bottom: 15px;
    border: 1px solid #ccc;
    border-radius: 10px;
    box-sizing: border-box;
}

.login-button {
    display: block;
    text-align: center;
    background: #0f4c81;
    color: white;
    padding: 14px;
    border-radius: 10px;
    text-decoration: none;
}
.dashboard-container {
    min-height: 100vh;
    background: #f5f7fa;
}

.dashboard-header {
    background: #0f4c81;
    color: white;
    padding: 25px 40px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.dashboard-header h1 {
    margin: 0;
}

.dashboard-header p {
    margin: 5px 0 0 0;
}

.user-box {
    background: white;
    color: #333;
    padding: 15px 20px;
    border-radius: 12px;
    min-width: 220px;
    text-align: center;
    box-shadow: 0 2px 12px rgba(0,0,0,0.15);
}

.user-box strong {
    color: #0f4c81;
    font-size: 17px;
}

.user-box span {
    color: #666;
    font-size: 14px;
}

.logout-button {
    display: inline-block;
    background: #0f4c81;
    color: white;
    padding: 8px 16px;
    border-radius: 8px;
    text-decoration: none;
}

main {
    padding: 40px;
}

.cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 25px;
    margin-top: 30px;
}

.card {
    background: white;
    padding: 30px;
    border-radius: 16px;
    box-shadow: 0 3px 15px rgba(0,0,0,0.08);
}

.card h3 {
    color: #0f4c81;
    margin-top: 0;
}

.card.disabled {
    opacity: 0.5;
}
.welcome-line {
    font-size: 18px;
    color: #555;
    margin-bottom: 28px;
}

.status-overview {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
    margin-bottom: 35px;
}

.status-box {
    background: white;
    padding: 24px;
    border-radius: 16px;
    box-shadow: 0 3px 15px rgba(0,0,0,0.08);
    border-left: 6px solid #0f4c81;
    min-width: 0;
    min-height: 92px;
    box-sizing: border-box;
}

.status-box strong {
    display: block;
    color: #0f4c81;
    margin-bottom: 12px;
}

.status-box span {
    font-size: 26px;
    font-weight: bold;
    overflow-wrap: normal;
    word-break: normal;
}

.status-box-link span {
    font-size: 15px;
    line-height: 1.45;
    font-weight: 500;
}

.system-status-box.is-ready {
    border-left-color: #3c9d5b;
}

.system-status-box.is-unavailable {
    border-left-color: #d6a400;
}

.system-status-box .system-status-value {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #0f4c81;
    font-size: 26px;
    line-height: 1.1;
}

.system-status-dot {
    flex: 0 0 auto;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #d6a400;
}

.system-status-box.is-ready .system-status-dot {
    background: #3c9d5b;
}

.system-status-box .system-status-detail {
    display: block;
    margin-top: 8px;
    color: #66717c;
    font-size: 13px;
    line-height: 1.35;
}

@media (max-width: 1300px) {
    .status-overview { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    .status-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
    .status-overview { grid-template-columns: 1fr; }
}

.card-link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.card-link:hover {
    transform: translateY(-3px);
    transition: 0.2s;
}
.small-button {
    display: inline-block;
    background: #0f4c81;
    color: white;
    padding: 7px 12px;
    border-radius: 7px;
    text-decoration: none;
    font-size: 13px;
    font-weight: bold;
}

.small-button:hover {
    background: #0b3b63;
}

input[readonly] {
    background: #eef2f6;
    color: #666;
}
.system-footer {
    margin-top: 45px;
    padding: 18px 0;
    text-align: center;
    color: #666;
    font-size: 14px;
    border-top: 1px solid #ddd;
}

.system-footer a {
    color: #0f4c81;
    text-decoration: none;
    font-weight: bold;
}

.system-footer a:hover {
    text-decoration: underline;
}
.workplace-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 25px;
    margin-top: 30px;
}

.important-card {
    border-left: 6px solid #b00020;
}

.warning-box {
    border-left-color: #b00020;
}

.task-item {
    background: #f8f9fb;
    border-radius: 12px;
    padding: 15px;
    margin-bottom: 14px;
    border-left: 4px solid #b00020;
}

.task-item strong {
    color: #0f4c81;
}

.task-item p {
    margin: 8px 0 0 0;
    color: #555;
}

.turnus-preview-card {
    align-self: start;
}

.turnus-preview-card > h3 {
    margin-bottom: 8px;
}

.turnus-preview-section {
    min-width: 0;
    padding: 20px 2px;
    border-top: 1px solid #dfe5ea;
}

.turnus-preview-section strong {
    display: block;
    color: #0f4c81;
    font-size: 16px;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.turnus-preview-section p {
    margin: 9px 0 4px;
    color: #263d52;
    font-size: 16px;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.turnus-preview-section small {
    display: block;
    color: #6c7883;
    line-height: 1.45;
}

.turnus-birthday-section {
    min-width: 0;
    margin-top: 2px;
    padding: 20px 16px 14px;
    border-top: 2px solid #d6e0e8;
    border-radius: 0 0 10px 10px;
    background: #f7f9fb;
}

.turnus-birthday-section .section-subtitle {
    margin: 0 0 13px;
    color: #0f4c81;
    line-height: 1.35;
}

.birthday-item {
    display: flex;
    min-width: 0;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
    border-top: 1px solid #e5eaee;
}

.birthday-item:first-of-type {
    border-top: 0;
}

.birthday-item strong,
.birthday-item span {
    overflow-wrap: anywhere;
}

.birthday-item span {
    flex: 0 0 auto;
    color: #596773;
}

@media (max-width: 520px) {
    .turnus-preview-section {
        padding: 17px 0;
    }

    .turnus-birthday-section {
        margin-right: -8px;
        margin-left: -8px;
        padding: 18px 12px 12px;
    }

    .birthday-item {
        display: grid;
        grid-template-columns: 1fr;
        gap: 3px;
    }
}

.invoice-overview-list { display: grid; gap: 16px; }
.invoice-overview-item { min-width: 0; padding: 18px; border: 1px solid #dbe3e9; border-left: 5px solid #0f4c81; border-radius: 12px; background: #fff; }
.invoice-overview-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding-bottom: 12px; border-bottom: 1px solid #e5eaee; }
.invoice-overview-heading div { min-width: 0; }
.invoice-overview-heading span:first-child { display: block; color: #687582; font-size: 12px; font-weight: 700; }
.invoice-overview-heading strong { display: block; margin-top: 4px; color: #0f4c81; font-size: 17px; overflow-wrap: anywhere; }
.invoice-overview-values { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0 18px; margin: 8px 0 0; }
.invoice-overview-values > div { min-width: 0; padding: 10px 0; border-bottom: 1px solid #edf0f2; }
.invoice-overview-values dt { color: #687582; font-size: 12px; font-weight: 700; }
.invoice-overview-values dd { margin: 4px 0 0; overflow-wrap: anywhere; }
.invoice-overview-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-top: 14px; }
.invoice-no-document { color: #687582; font-size: 13px; }
.invoice-pagination { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 14px; margin-top: 22px; }
@media(max-width:760px){.invoice-overview-values{grid-template-columns:1fr 1fr}.invoice-overview-filter{grid-template-columns:1fr 1fr}.invoice-overview-heading{align-items:stretch;flex-direction:column}}
@media(max-width:480px){.invoice-overview-values,.invoice-overview-filter{grid-template-columns:1fr}.invoice-overview-actions .small-button{width:100%;box-sizing:border-box;text-align:center}}

.quick-actions {
    display: grid;
    gap: 12px;
}

@media (max-width: 900px) {
    .workplace-grid {
        grid-template-columns: 1fr;
    }
}
.soft-note {
    background: #eef5fb;
    border-left: 5px solid #0f4c81;
    padding: 14px 16px;
    border-radius: 10px;
    color: #444;
    margin-top: 20px;
}

.werkstueck-box {
    background: #f8f9fb;
    border-radius: 14px;
    padding: 20px;
    margin-bottom: 20px;
    border-left: 5px solid #0f4c81;
}

.werkstueck-box h4 {
    margin-top: 0;
    color: #0f4c81;
}

textarea {
    width: 100%;
    min-height: 90px;
    padding: 12px;
    border-radius: 10px;
    border: 1px solid #ccc;
    box-sizing: border-box;
    font-family: Arial, Helvetica, sans-serif;
}

details.card {
    display: block;
}

details summary {
    cursor: pointer;
    font-weight: bold;
    color: #0f4c81;
    font-size: 18px;
}

.details-content {
    margin-top: 20px;
}

/* Sprint 2.1 – Neuer Auftrag */

.auftrag-main {
    max-width: 1180px;
    margin: 0 auto;
}

/* Verbindlicher Rahmen für normale TurnusOS-Seiten */
.dashboard-container {
    display: flex;
    min-height: 100vh;
    flex-direction: column;
}
.dashboard-container > .auftrag-main {
    box-sizing: border-box;
    width: 100%;
    flex: 1 0 auto;
}
.dashboard-container > .auftrag-main > .system-footer {
    clear: both;
}
@media (max-width: 760px) {
    .dashboard-header {
        padding: 18px 20px;
        align-items: flex-start;
        gap: 14px;
        flex-wrap: wrap;
    }
    .dashboard-header .user-box {
        box-sizing: border-box;
        min-width: 0;
        width: 100%;
        text-align: left;
    }
    main,
    .dashboard-container > .auftrag-main {
        padding: 22px 16px;
    }
    .auftrag-page-heading {
        flex-direction: column;
    }
}

.system-status-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.system-status-grid > div {
    min-width: 0;
}

.system-status-grid small,
.system-status-grid span {
    display: block;
}

.filter-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 14px;
    align-items: end;
}

.filter-grid .action-row {
    grid-column: 1 / -1;
}

.compact-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.compact-actions form {
    margin: 0;
}

.log-details {
    max-width: 520px;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.analysis-module-grid {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.analysis-filter {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 14px;
    align-items: end;
}

.analysis-filter label,
.fixed-filter {
    display: grid;
    gap: 6px;
}

.analysis-filter-actions {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.analysis-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 16px;
    margin: 20px 0;
}

.analysis-metric {
    padding: 20px;
    border-radius: 14px;
    background: #fff;
    border-left: 5px solid #718096;
    box-shadow: 0 8px 22px rgba(24, 59, 91, .08);
}

.analysis-metric h3 { margin-top: 0; }
.analysis-metric-value { display: block; font-size: 1.55rem; overflow-wrap: anywhere; }
.trend-steigend { border-left-color: #237a4b; }
.trend-fallend { border-left-color: #b42335; }
.trend-gleichbleibend { border-left-color: #2f75b5; }

.analysis-chart-card { overflow: hidden; }
.analysis-chart { width: 100%; min-width: 0; overflow-x: auto; }
.analysis-chart canvas { display: block; }
.chart-legend { color: #2f75b5; font-weight: 700; }
.chart-note { color: #607286; font-size: .9rem; margin: 8px 0 0; }

.analysis-ranking-grid,
.comparison-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
}

.analysis-ranking-grid ol { padding-left: 24px; }
.comparison-grid > div { padding: 14px; border-radius: 10px; background: #f5f8fb; }

@media (max-width: 600px) {
    .analysis-filter-actions .button { width: 100%; text-align: center; }
    .analysis-metrics { grid-template-columns: 1fr; }
}

.auftrag-page-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    margin-bottom: 10px;
}

.compact-button {
    flex-shrink: 0;
    width: auto;
}

.auftrag-form {
    display: grid;
    gap: 24px;
}

.auftrag-section {
    margin-bottom: 0;
}

.section-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    margin-bottom: 24px;
}

.section-heading > div {
    display: flex;
    align-items: center;
    gap: 12px;
}

.section-heading h3 {
    margin: 0;
}

.section-heading p {
    margin: 3px 0 0;
    color: #666;
    text-align: right;
}

.section-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #0f4c81;
    color: white;
    font-weight: bold;
    flex-shrink: 0;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 18px;
}

.compact-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.two-column-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.form-flow {
    display: grid;
    gap: 18px;
    max-width: 720px;
}

.auftrag-form label {
    display: grid;
    gap: 8px;
    color: #333;
    font-weight: bold;
}

.auftrag-form input,
.auftrag-form select {
    width: 100%;
    box-sizing: border-box;
    padding: 12px;
    border: 1px solid #c9d1da;
    border-radius: 9px;
    background: white;
    color: #222;
    font: inherit;
}

.auftrag-form input:focus,
.auftrag-form select:focus,
.auftrag-form textarea:focus {
    outline: 3px solid rgba(15, 76, 129, 0.15);
    border-color: #0f4c81;
}

.form-separator {
    height: 1px;
    background: #e1e6eb;
    margin: 24px 0;
}

.schleifen-choice {
    display: flex;
    align-items: center;
    gap: 22px;
    margin: 20px 0 0;
    padding: 16px 18px;
    border: 1px solid #d7dee6;
    border-radius: 10px;
}

.schleifen-choice legend {
    padding: 0 8px;
    color: #0f4c81;
    font-weight: bold;
}

.radio-option {
    display: inline-flex !important;
    grid-template-columns: auto auto;
    align-items: center;
    gap: 8px !important;
    font-weight: normal !important;
}

.radio-option input {
    width: auto;
    margin: 0;
}

.schleifen-details,
.rechnungsempfaenger-box {
    margin-top: 20px;
    padding: 20px;
    border-radius: 12px;
    background: #eef5fb;
    border-left: 5px solid #0f4c81;
}

.control-card {
    border-left: 6px solid #3c9d5b;
}

.control-list {
    margin: 0 0 22px;
    padding-left: 24px;
}

.control-list li {
    margin-bottom: 10px;
}

.confirmation-box {
    display: flex !important;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 12px !important;
    padding: 16px;
    border-radius: 10px;
    background: #e8f4eb;
    color: #2d6f41 !important;
}

.confirmation-box input {
    width: auto;
    margin: 0;
}

.action-row {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}

.final-actions {
    justify-content: flex-end;
}

.save-button {
    padding: 14px 26px;
    font-size: 16px;
    cursor: pointer;
}

@media (max-width: 900px) {
    .compact-grid,
    .two-column-grid {
        grid-template-columns: 1fr;
    }

    .auftrag-page-heading,
    .section-heading {
        flex-direction: column;
    }

    .section-heading p {
        text-align: left;
    }

    .compact-button {
        width: 100%;
        box-sizing: border-box;
    }
}


/* Sprint 2.2 – Der Auftrag denkt mit */

.form-message {
    margin-bottom: 22px;
    padding: 15px 18px;
    border-radius: 10px;
    font-weight: bold;
}

.success-message {
    background: #e8f4eb;
    color: #2d6f41;
    border-left: 5px solid #3c9d5b;
}

.live-note {
    margin-top: 20px;
    padding: 14px 16px;
    border-radius: 10px;
    background: #eef5fb;
    border-left: 5px solid #0f4c81;
    color: #36404a;
}

.live-note.is-ok {
    background: #e8f4eb;
    border-left-color: #3c9d5b;
    color: #2d6f41;
}

.live-note.is-open {
    background: #fff4cc;
    border-left-color: #d6a400;
    color: #725900;
}

.progressive-item[hidden] {
    display: none;
}

.item-status,
.control-status {
    margin-top: 14px;
    padding: 11px 13px;
    border-radius: 9px;
    background: #eef2f6;
    color: #59636d;
    font-size: 14px;
}

.item-status.is-ok,
.control-status.is-ok {
    background: #e8f4eb;
    color: #2d6f41;
}

.item-status.is-open,
.control-status.is-open {
    background: #fff4cc;
    color: #725900;
}

.item-status.is-info,
.control-status.is-info {
    background: #eef5fb;
    color: #0f4c81;
}

.field-help {
    margin: 12px 0 0;
    color: #666;
    font-size: 14px;
}

.control-status-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 22px;
}

@media (max-width: 700px) {
    .control-status-grid {
        grid-template-columns: 1fr;
    }
}


/* Sprint 2.3.1 – Erster dauerhaft gespeicherter Auftrag */

.error-message {
    background: #fdeaea;
    color: #8b1e2d;
    border-left: 5px solid #b00020;
}

.table-scroll {
    overflow-x: auto;
}

/* Zentrale responsive Verwaltungslisten: Desktop-Tabelle, darunter Zeilenkarten. */
.table-scroll table { width: 100%; table-layout: auto; }
.table-scroll th, .table-scroll td { overflow-wrap: anywhere; white-space: normal; }
.protocol-table { table-layout: fixed; }
.protocol-table th:last-child, .protocol-table td:last-child { width: 9rem; }
.status-badge { display: inline-flex; padding: .3rem .65rem; border-radius: 999px; background: #e8edf1; color: #44515d; font-weight: 800; }
.status-badge.status-erfolgreich { background: #e5f4e9; color: #28663a; }
.status-badge.status-fehler { background: #fdeaea; color: #8b1e2d; }
.status-badge.status-warnung { background: #fff3cd; color: #725900; }
.protocol-details summary { color: #0f4c81; cursor: pointer; font-weight: 800; }
.protocol-detail-body { margin-top: .7rem; min-width: min(34rem, 75vw); padding: .8rem; border-radius: 10px; background: #f7f9fb; }
.technical-detail-grid { display: grid; gap: .6rem; margin: 0; }
.technical-detail-grid > div { min-width: 0; }
.technical-detail-grid dt { color: #5c6975; font-size: .78rem; font-weight: 800; }
.technical-detail-grid dd { margin: .15rem 0 0; overflow-wrap: anywhere; }

@media (max-width: 900px) {
    .table-scroll { overflow: visible; }
    .table-scroll table, .table-scroll tbody, .table-scroll tr, .table-scroll td { display: block; width: 100%; box-sizing: border-box; }
    .table-scroll thead { display: none; }
    .table-scroll tr { margin-bottom: 14px; padding: 9px 12px; border: 1px solid #dbe3e9; border-left: 6px solid #0f4c81; border-radius: 12px; background: #fff; }
    .table-scroll td { display: grid; grid-template-columns: minmax(8rem, 34%) 1fr; gap: 10px; padding: 8px 4px; border: 0; border-bottom: 1px solid #edf0f2; text-align: left; }
    .table-scroll td:last-child { width: 100%; border-bottom: 0; }
    .table-scroll td::before { content: attr(data-label); color: #5c6975; font-weight: 800; }
    .table-scroll td[colspan]::before { content: none; }
    .protocol-detail-body { min-width: 0; }
}

@media (max-width: 520px) {
    .table-scroll td { grid-template-columns: 1fr; gap: 4px; }
}

.table-link {
    color: #0f4c81;
    font-weight: bold;
    text-decoration: none;
}

.table-link:hover {
    text-decoration: underline;
}

td small {
    display: block;
    margin-top: 5px;
    color: #666;
}

.empty-list {
    padding: 30px;
    text-align: center;
}

.empty-list h3 {
    margin-bottom: 8px;
}

.detail-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.detail-grid > div {
    display: grid;
    gap: 6px;
    padding: 14px;
    border-radius: 10px;
    background: #f8f9fb;
}

.detail-grid span,
.saved-position span {
    color: #666;
    font-size: 13px;
}

.saved-position {
    display: grid;
    grid-template-columns: 1.2fr 0.7fr 2fr;
    gap: 16px;
    margin-bottom: 14px;
    padding: 16px;
    border-left: 5px solid #0f4c81;
    border-radius: 12px;
    background: #f8f9fb;
}

.saved-position > div {
    display: grid;
    align-content: start;
    gap: 6px;
}

.saved-position p {
    margin: 2px 0;
    color: #555;
}

@media (max-width: 850px) {
    .detail-grid,
    .saved-position {
        grid-template-columns: 1fr;
    }
}


/* Sprint 2.3.2 – Stammdaten ziehen ein */

.import-layout {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 24px;
    margin-bottom: 24px;
}

.import-form {
    display: grid;
    gap: 18px;
}

.import-form label {
    display: grid;
    gap: 9px;
    font-weight: bold;
}

.import-form input[type="file"] {
    padding: 14px;
    border: 1px dashed #9fb6c9;
    border-radius: 10px;
    background: #f8fbfd;
}

.system-card {
    border-left: 6px solid #3c9d5b;
}

.system-line {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding: 10px 0;
    border-bottom: 1px solid #e6ebef;
}

.last-import {
    display: grid;
    gap: 6px;
    margin-top: 20px;
    padding: 14px;
    border-radius: 10px;
    background: #eef5fb;
}

.last-import span,
.last-import small {
    color: #666;
}

.import-preview-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.import-preview-card {
    padding: 16px;
    border-radius: 12px;
    background: #f8f9fb;
    border-left: 5px solid #0f4c81;
}

.import-preview-heading {
    display: flex;
    justify-content: space-between;
    gap: 18px;
}

.import-preview-heading span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #0f4c81;
    color: white;
    font-weight: bold;
}

.import-preview-card p {
    margin: 10px 0;
}

.import-preview-card small {
    color: #666;
}

.duplicate-note {
    color: #725900;
    background: #fff4cc;
    padding: 9px 10px;
    border-radius: 8px;
    font-size: 13px;
}

.data5-note {
    margin-top: 20px;
    padding: 16px;
    border-left: 5px solid #d6a400;
    border-radius: 10px;
    background: #fff8e1;
}

.import-confirm {
    display: flex;
    justify-content: flex-end;
    margin-top: 22px;
}

.report-grid {
    display: grid;
    gap: 10px;
}

.report-row {
    display: grid;
    grid-template-columns: 1.4fr repeat(4, minmax(90px, 1fr));
    gap: 12px;
    padding: 13px 15px;
    border-radius: 10px;
    background: #f8f9fb;
}

@media (max-width: 850px) {
    .import-layout,
    .import-preview-grid {
        grid-template-columns: 1fr;
    }

    .report-row {
        grid-template-columns: 1fr 1fr;
    }
}


/* Sprint 2.4.1 – Verwaltungszentrum */
.admin-overview {display:grid;grid-template-columns:2fr repeat(3,1fr);gap:14px;margin-bottom:24px}.admin-overview>div{background:#fff;padding:18px;border-radius:14px;box-shadow:0 3px 15px rgba(0,0,0,.07);display:grid;gap:6px}.admin-overview .admin-intro{border-left:6px solid #3c9d5b}.admin-overview span{color:#666;font-size:13px}.verwaltung-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.verwaltung-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:24px;background:#fff;border-radius:16px;box-shadow:0 3px 15px rgba(0,0,0,.08);text-decoration:none;color:inherit;border-left:6px solid #0f4c81;transition:.18s}.verwaltung-card:hover{transform:translateY(-2px);box-shadow:0 7px 20px rgba(0,0,0,.11)}.verwaltung-card h3{margin:0 0 6px;color:#0f4c81}.verwaltung-card p{margin:0;color:#59636d;line-height:1.45}.verwaltung-card>strong{color:#0f4c81}.verwaltung-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:14px;background:#eef5fb;color:#0f4c81;font-weight:bold}.status-icon{background:#e8f4eb;color:#2d6f41}.stammdaten-groups{display:grid;gap:24px}.stammdaten-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.stammdaten-card{display:grid;grid-template-columns:1fr auto;gap:8px;padding:17px;border-radius:12px;background:#f8f9fb;border-left:5px solid #0f4c81}.stammdaten-card h4{margin:0 0 5px;color:#0f4c81}.stammdaten-card p{margin:0;color:#666}.stammdaten-card>span{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:#0f4c81;color:#fff;font-weight:bold}.stammdaten-card small{grid-column:1/-1;color:#777}.roles-list{display:grid;gap:12px}.role-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:16px;border-radius:12px;background:#f8f9fb}.role-row h3{margin:0 0 4px}.role-row p{margin:0;color:#666}.role-mark{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#0f4c81;color:#fff;font-weight:bold}.system-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:24px}.system-status-card{display:grid;gap:7px;padding:20px;border-radius:14px;background:#fff;box-shadow:0 3px 15px rgba(0,0,0,.08);border-left:6px solid #3c9d5b}.system-status-card.attention{border-left-color:#d6a400}.system-status-card span,.system-status-card small{color:#666}.system-status-card strong{font-size:24px;color:#0f4c81}.placeholder-card{text-align:center;max-width:720px;margin:0 auto}.placeholder-card .verwaltung-icon{margin:0 auto 12px}@media(max-width:900px){.admin-overview,.verwaltung-grid,.stammdaten-grid,.system-status-grid{grid-template-columns:1fr}.verwaltung-card{grid-template-columns:auto 1fr}.verwaltung-card>strong{grid-column:2}.role-row{grid-template-columns:auto 1fr}.role-row .badge{grid-column:2;justify-self:start}}


/* Sprint 2.4.3 – Mitarbeiter und Rollen */
.role-row-link{text-decoration:none;color:inherit;transition:.18s}.role-row-link:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.08)}.role-row small{display:block;margin-top:7px;color:#777}.admin-form{display:grid;gap:22px}.admin-form>.card{margin-bottom:0}.permission-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.permission-group{margin:0;padding:16px;border:1px solid #d8e0e7;border-radius:12px;background:#f8f9fb}.permission-group legend{padding:0 8px;color:#0f4c81;font-weight:bold}.permission-option{display:grid!important;grid-template-columns:auto 1fr;align-items:start;gap:11px!important;padding:10px;border-radius:9px;font-weight:normal!important}.permission-option:hover{background:#eef5fb}.permission-option input{width:auto;margin-top:3px}.permission-option span{display:grid;gap:4px}.permission-option small{color:#666;line-height:1.35}.list-count{margin:18px 0 0;color:#666;text-align:right}.admin-form label small{color:#666;font-weight:normal}@media(max-width:800px){.permission-groups{grid-template-columns:1fr}}


/* Sprint 2.4.2a – Werkstückverwaltung */
.stammdaten-card-link{text-decoration:none;color:inherit;transition:.18s}.stammdaten-card-link:hover{transform:translateY(-2px);box-shadow:0 5px 14px rgba(0,0,0,.09)}.stammdaten-toolbar{margin-bottom:22px}.stammdaten-toolbar button{cursor:pointer}.muted-value{color:#777;font-style:italic}.switch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.switch-grid .confirmation-box{margin:0}@media(max-width:760px){.switch-grid{grid-template-columns:1fr}}
.function-chip-grid{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:.8rem}.function-chip{position:relative;cursor:pointer}.function-chip input{position:absolute;opacity:0;pointer-events:none}.function-chip span{display:inline-flex;align-items:center;padding:.65rem .9rem;border:1px solid #c8d3e0;border-radius:999px;background:#f7f9fc;font-weight:600;transition:.15s}.function-chip input:checked+span{background:#e3eefc;border-color:#2f6fb2;color:#174f8a;box-shadow:0 0 0 2px rgba(47,111,178,.08)}.function-chip input:checked+span:before{content:'✓';margin-right:.45rem}.sync-details summary{cursor:pointer;font-size:1.05rem;font-weight:700}.sync-details[open] summary{margin-bottom:1rem}.toolbar select{min-width:180px}


/* Import-Assistent Ansprechpartner */
.import-step-grid,.import-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.import-step-grid>div,.import-summary-grid>div{background:#f5f8fc;border:1px solid #dbe5f0;border-radius:12px;padding:16px}.import-step-grid p{margin:7px 0 0;color:#5f6f82}.import-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.import-summary-grid strong{display:block;font-size:1.7rem;color:#163f73}.import-summary-grid span{color:#5f6f82}.import-muted-row{opacity:.68}.badge.gray{background:#e7ebef;color:#4f5c68}@media(max-width:850px){.import-step-grid,.import-summary-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.import-step-grid,.import-summary-grid{grid-template-columns:1fr}}

/* Sprint 3.2a – Auftragsliste 2.0 */
.order-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 20px}.order-stat-card{display:grid;gap:5px;padding:17px 18px;border-radius:14px;background:#fff;border-left:6px solid #0f4c81;box-shadow:0 3px 15px rgba(0,0,0,.07)}.order-stat-card span{color:#66717d;font-size:13px}.order-stat-card strong{font-size:26px;color:#123f6d}.order-stat-card.open{border-left-color:#3c9d5b}.order-stat-card.sent{border-left-color:#3879bc}.order-stat-card.results{border-left-color:#d39b1c}.order-list-card{overflow:visible}.order-toolbar{display:flex;align-items:end;gap:14px;margin-bottom:20px}.order-search{display:grid;gap:7px;flex:1;font-weight:700;color:#24384b}.order-search input{width:100%;padding:13px 15px;border:1px solid #bdc9d5;border-radius:10px;background:#fff;font:inherit}.order-search input:focus{outline:3px solid rgba(15,76,129,.13);border-color:#0f4c81}.order-search-clear{white-space:nowrap}.order-table{min-width:980px}.order-table tbody tr{border-left:5px solid transparent}.order-table tbody tr.status-new{border-left-color:#3c9d5b}.order-table tbody tr.status-additional{border-left-color:#3879bc}.order-table tbody tr.status-changed{border-left-color:#d39b1c}.order-table tbody tr.status-cancelled{border-left-color:#bf4545}.order-table tbody tr.status-completed{border-left-color:#a2abb4}.order-table tbody tr.status-attention{border-left-color:#e0a700}.order-table tbody tr:hover{background:#f5f9fc}.order-primary-link,.order-name-link{font-weight:800;color:#0f4c81;text-decoration:none}.order-primary-link:hover,.order-name-link:hover{text-decoration:underline}.order-table small{display:block;margin-top:4px;color:#6a747e}.order-status{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border-radius:999px;background:#eef2f5;font-size:12px;font-weight:800;white-space:nowrap}.order-status i{width:9px;height:9px;border-radius:50%;background:#8c98a3}.order-status.status-new i{background:#3c9d5b}.order-status.status-additional i{background:#3879bc}.order-status.status-changed i,.order-status.status-attention i{background:#d39b1c}.order-status.status-cancelled i{background:#bf4545}.order-status.status-completed i{background:#9aa4ad}.actions-heading,.order-actions-cell{text-align:right}.order-actions{position:relative;display:inline-block;text-align:left}.order-actions summary{list-style:none;cursor:pointer;user-select:none;padding:9px 12px;border:1px solid #b9c8d6;border-radius:9px;background:#f5f8fb;color:#0f4c81;font-weight:800;white-space:nowrap}.order-actions summary::-webkit-details-marker{display:none}.order-actions[open] summary{background:#e8f1f8;border-color:#0f4c81}.order-actions-menu{position:absolute;z-index:30;right:0;top:calc(100% + 7px);display:grid;min-width:220px;padding:8px;border:1px solid #ccd6df;border-radius:12px;background:#fff;box-shadow:0 12px 32px rgba(26,47,68,.2)}.order-actions-menu a,.order-actions-menu button{display:block;width:100%;padding:10px 11px;border:0;border-radius:8px;background:transparent;color:#24384b;text-align:left;text-decoration:none;font:inherit;cursor:pointer}.order-actions-menu a:hover{background:#eef5fb;color:#0f4c81}.order-actions-menu button:disabled{color:#9aa3ab;cursor:not-allowed}.order-actions-menu hr{width:100%;margin:6px 0;border:0;border-top:1px solid #e2e7eb}.order-no-results{border-top:1px solid #e3e8ec;margin-top:8px}.order-row[hidden]{display:none}
@media(max-width:900px){.order-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.order-toolbar{align-items:stretch;flex-direction:column}.order-search-clear{align-self:flex-start}.order-table{min-width:0}.order-table thead{display:none}.order-table,.order-table tbody,.order-table tr,.order-table td{display:block;width:100%}.order-table tr{margin-bottom:14px;padding:8px 12px;border:1px solid #dbe3e9;border-left-width:6px;border-radius:12px;background:#fff}.order-table td{display:grid;grid-template-columns:125px 1fr;gap:12px;padding:9px 4px;border:0;border-bottom:1px solid #edf0f2;text-align:left}.order-table td:last-child{border-bottom:0}.order-table td:before{content:attr(data-label);font-weight:800;color:#5c6975}.order-actions-cell{text-align:left}.order-actions{width:100%}.order-actions summary{display:block;text-align:center}.order-actions-menu{position:static;margin-top:7px;box-shadow:none}.actions-heading{display:none}}
@media(max-width:560px){.order-overview{grid-template-columns:1fr 1fr;gap:10px}.order-stat-card{padding:14px}.order-stat-card strong{font-size:22px}.order-table td{grid-template-columns:1fr;gap:4px}.order-table td:before{font-size:12px}.auftrag-page-heading{gap:16px}.auftrag-page-heading .action-row{width:100%}.auftrag-page-heading .action-row .button{flex:1;text-align:center}}

/* Sprint 3.2b – Auftragsakte */
.order-file-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:18px;padding:24px;border-radius:16px;background:#fff;box-shadow:0 3px 15px rgba(0,0,0,.08);border-left:7px solid #0f4c81}.order-file-kicker{display:block;margin-bottom:5px;color:#637383;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.order-file-heading-line{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.order-file-heading-line h2{margin:0;color:#123f6d}.order-file-title p{margin:7px 0 0;color:#6b7580}.order-file-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.order-file-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:20px}.order-file-overview>div{display:grid;gap:5px;padding:16px;border-radius:13px;background:#f7fafc;border:1px solid #dce5ec}.order-file-overview span,.order-file-note span{color:#6b7580;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.order-file-overview strong{color:#203c55}.order-file-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,.85fr);gap:20px;align-items:start}.order-file-main,.order-file-sidebar{display:grid;gap:20px}.order-file-sidebar{position:sticky;top:18px}.order-file-quick-actions .button{width:100%;box-sizing:border-box;text-align:center;margin-top:9px}.order-file-note{margin-top:18px;padding:15px;border-radius:10px;background:#f7f9fb}.order-file-note p{margin:6px 0 0;white-space:pre-wrap}.order-timeline{display:grid;gap:0}.order-timeline-item{position:relative;display:grid;grid-template-columns:18px 1fr;gap:10px;padding:0 0 18px}.order-timeline-item:not(:last-child):before{content:"";position:absolute;left:6px;top:13px;bottom:0;width:2px;background:#dbe4eb}.order-timeline-item i{position:relative;z-index:1;width:13px;height:13px;margin-top:3px;border-radius:50%;background:#3c9d5b;box-shadow:0 0 0 4px #eaf5ed}.order-timeline-item.is-error i{background:#bf4545;box-shadow:0 0 0 4px #f8eaea}.order-timeline-item strong{display:block;color:#253f56}.order-timeline-item span{display:block;margin-top:2px;color:#6c7781;font-size:12px}.order-timeline-item p{margin:4px 0 0;color:#53616e;font-size:13px;overflow-wrap:anywhere}
@media(max-width:980px){.order-file-layout{grid-template-columns:1fr}.order-file-sidebar{position:static}.order-file-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.order-file-header{display:grid;padding:18px}.order-file-actions{justify-content:stretch}.order-file-actions .button{flex:1;text-align:center}.order-file-overview{grid-template-columns:1fr}.order-file-heading-line h2{font-size:22px}}
@media print{.dashboard-header,.order-file-actions,.order-file-quick-actions,.system-footer{display:none!important}.dashboard-container,.auftrag-main{background:#fff!important;padding:0!important}.order-file-header,.card{box-shadow:none!important}.order-file-layout{grid-template-columns:1fr}.order-file-sidebar{position:static}.order-file-sidebar .card:not(:last-child){break-inside:avoid}}

/* Sprint 3.2c – Nachbestellungen */
.nachbestellung-form { max-width: 1180px; margin: 0 auto; }
.nachbestellung-positionen { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin: 18px 0; }
.nachbestellung-position { border: 1px solid #dbe4ee; border-radius: 14px; padding: 18px; background: #f8fafc; }
.nachbestellung-position h4 { margin: 0 0 14px; color: #174f7a; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.form-grid label, .mail-form label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; }
.form-wide { grid-column: 1 / -1; }
.card-heading-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.button.small { padding: 7px 11px; font-size: .88rem; }
.additional-order-card { border: 1px solid #dbe4ee; border-left: 5px solid #2f79ad; border-radius: 12px; padding: 15px; margin-top: 14px; display: grid; gap: 12px; }
.additional-order-card span { color: #607286; font-size: .88rem; }
.additional-order-card p { margin: 5px 0 0; }
.additional-order-items { display: flex; flex-direction: column; gap: 5px; }
.additional-order-actions { display: flex; gap: 8px; justify-content: flex-end; }
.mail-form { max-width: 850px; margin: 0 auto; display: grid; gap: 16px; }
.attachment-card { padding: 14px; border: 1px solid #dbe4ee; border-radius: 10px; display: flex; flex-direction: column; gap: 5px; background: #f8fafc; }
@media (max-width: 850px) { .nachbestellung-positionen, .form-grid { grid-template-columns: 1fr; } .form-wide { grid-column: auto; } }

/* Sprint 3.3a – Digitale Mitgliederakte */
.document-review-list { display: grid; gap: 1rem; }
.document-review-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: start; }
.document-review-form { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.document-review-form .action-row { grid-column: 1 / -1; }
.document-status { display: inline-block; padding: .25rem .55rem; border-radius: 999px; font-size: .8rem; font-weight: 700; background: #eef2f6; color: #173b63; }
.document-status.pending { background: #fff4d6; color: #725100; }
.document-library { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr)); gap:1rem; }
.library-card { min-width:0; overflow-wrap:anywhere; display:flex; flex-direction:column; gap:.65rem; }
.library-card h3,.library-card p { margin:0; }
.library-card dl { display:grid; grid-template-columns:auto 1fr; gap:.3rem .75rem; margin:0; }
.library-card dd { margin:0; }
.library-toolbar { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto; gap:.65rem; margin-bottom:1rem; }
.library-category-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.library-category-card { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; min-width:0; padding:18px; border-radius:12px; border-left:5px solid #0f4c81; background:#f8f9fb; color:inherit; text-decoration:none; transition:.18s; overflow-wrap:anywhere; }
.library-category-card:hover { transform:translateY(-2px); box-shadow:0 5px 14px rgba(0,0,0,.09); }
.library-category-card:focus-visible { outline:3px solid #2f75b5; outline-offset:3px; }
.library-category-card h3 { margin:0 0 5px; color:#0f4c81; }
.library-category-card p { margin:0; color:#666; }
.library-category-card>span { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:50%; background:#0f4c81; color:#fff; font-weight:bold; }
.library-category-card small { grid-column:1/-1; color:#777; }
.library-category-search { grid-template-columns:minmax(0,1fr) auto auto; }
.library-empty { grid-column:1/-1; }
.meeting-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.meeting-metrics>div { display:grid; gap:6px; padding:17px; border-radius:12px; border-left:5px solid #0f4c81; background:#fff; box-shadow:0 3px 15px rgba(0,0,0,.07); }
.meeting-metrics span { color:#667582; font-size:.85rem; }.meeting-metrics strong { color:#0f4c81; font-size:1.15rem; }
.meeting-filter { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)) auto; gap:.65rem; margin-bottom:1rem; }
.meeting-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }.meeting-card { display:flex; min-width:0; flex-direction:column; gap:10px; overflow-wrap:anywhere; }.meeting-card h3,.meeting-card p{margin:0}.meeting-card .button{align-self:flex-start}
.meeting-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; padding:8px; border-radius:12px; background:#eef5fb; }.meeting-tabs a{padding:9px 12px;border-radius:8px;color:#0f4c81;font-weight:700;text-decoration:none;background:#fff}
.meeting-details { display:grid; grid-template-columns:auto minmax(0,1fr); gap:8px 18px; }.meeting-details dd{margin:0}
.meeting-item-list{display:grid;gap:12px}.meeting-item-list>article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:14px;border:1px solid #dbe5ed;border-left:5px solid #0f4c81;border-radius:11px;background:#f8fafc}.meeting-item-list h4,.meeting-item-list p{margin:0}.meeting-item-list p{margin-top:5px;color:#637383}
.inline-edit,.meeting-entry-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.meeting-entry-form{margin-top:16px;padding:16px;border-radius:11px;background:#eef5fb}.meeting-entry-form h4{grid-column:1/-1;margin:0}.meeting-document-forms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.meeting-document-forms .meeting-entry-form{grid-template-columns:1fr}
@media (max-width: 700px) {
  .document-review-card, .document-review-form { grid-template-columns: minmax(0, 1fr); }
  .document-review-form .action-row { grid-column: auto; }
  .library-toolbar { grid-template-columns:1fr; }
  .library-category-grid { grid-template-columns:1fr; }
  .meeting-metrics,.meeting-filter,.meeting-grid,.meeting-document-forms,.inline-edit,.meeting-entry-form { grid-template-columns:1fr; }
.meeting-item-list>article { grid-template-columns:1fr; }
  .meeting-entry-form h4 { grid-column:auto; }
}
.simple-participants{display:flex;flex-wrap:wrap;gap:9px;margin:12px 0}.simple-participants>span{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:9px 12px;border-radius:999px;background:#eef5fb;color:#123f6d;overflow-wrap:anywhere}.simple-participants form{display:inline}.plain-remove{border:0;background:transparent;color:#8b2d2d;font-size:1.25rem;line-height:1;cursor:pointer}.participant-pickers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.participant-pickers form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px}.discussion-form{display:grid;gap:12px;min-width:0}.discussion-form label{display:grid;gap:5px}.discussion-form textarea,.discussion-form input,.discussion-form select{width:100%;max-width:100%;box-sizing:border-box}.completion-card{border-left:6px solid #0f4c81}.danger-zone{margin-top:20px;padding:12px;border-radius:10px;background:#fff5f5}.form-wide details,.admin-form details{min-width:0}
@media(max-width:700px){.participant-pickers{grid-template-columns:1fr}.participant-pickers form{grid-template-columns:1fr}.discussion-form .button,.completion-card .button{width:100%;min-height:44px}.simple-participants>span{border-radius:10px;width:100%;box-sizing:border-box;justify-content:space-between}.meeting-tabs{overflow-x:visible}.meeting-tabs a{flex:1 1 140px;text-align:center}.action-row{max-width:100%}}
.member-list-card{overflow:visible}.member-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:20px}.member-toolbar input{flex:1;min-width:220px}.member-table{min-width:1080px}.member-table tbody tr{border-left:5px solid #3c9d5b}.member-table tbody tr.member-status-ruhend{border-left-color:#d39b1c;background:#fffdf5}.member-table tbody tr.member-status-ausgeschieden{border-left-color:#9aa4ad;opacity:.76}.member-status-badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#e9f4ec;color:#28663a;font-size:12px;font-weight:800}.member-status-badge.ruhend{background:#fff3cd;color:#785d00}.member-status-badge.ausgeschieden{background:#e8ecef;color:#59636c}.member-file-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:24px;margin-bottom:16px;border-radius:16px;border-left:7px solid #0f4c81;background:#fff;box-shadow:0 3px 15px rgba(0,0,0,.08)}.member-file-kicker{display:block;color:#637383;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.member-file-title{display:flex;align-items:center;gap:13px;flex-wrap:wrap}.member-file-title h2{margin:6px 0;color:#123f6d}.member-file-header p{margin:0;color:#65717c}.member-file-actions{display:flex;gap:9px;flex-wrap:wrap}.member-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.member-summary>div{display:grid;gap:5px;padding:15px;border:1px solid #dce5ec;border-radius:12px;background:#f7fafc}.member-summary span,.member-data-grid dt{color:#687582;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.035em}.member-summary strong{overflow-wrap:anywhere}.member-tabs{display:flex;gap:7px;padding:8px;overflow-x:auto;border:1px solid #d6e0e8;border-radius:13px;background:#f3f7fa}.member-tabs button{flex:0 0 auto;padding:10px 13px;border:0;border-radius:9px;background:transparent;color:#405466;font:inherit;font-size:13px;font-weight:800;cursor:pointer}.member-tabs button[aria-selected="true"]{background:#0f4c81;color:#fff;box-shadow:0 2px 8px rgba(15,76,129,.2)}.member-tab-panels{margin-top:16px}.member-tab-panel{display:none}.member-tab-panel.active{display:block}.member-data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}.member-data-grid>div{padding:14px;border-radius:10px;background:#f7f9fb}.member-data-grid dt{margin-bottom:6px}.member-data-grid dd{margin:0;overflow-wrap:anywhere;white-space:pre-line}.member-data-wide{grid-column:1/-1}.placeholder-text,.privacy-note{padding:16px;border-radius:10px;background:#eef5fb;color:#455e73}.privacy-note{border-left:5px solid #d39b1c;background:#fff8e1}.pre-wrap{white-space:pre-wrap}.member-form{display:grid;gap:18px}.sensitive-member-section{border-left:6px solid #d39b1c}
@media(max-width:980px){.member-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.member-table{min-width:0}.member-table thead{display:none}.member-table,.member-table tbody,.member-table tr,.member-table td{display:block;width:100%}.member-table tr{margin-bottom:14px;padding:9px 12px;border:1px solid #dbe3e9;border-left-width:6px;border-radius:12px}.member-table td{display:grid;grid-template-columns:145px 1fr;gap:10px;padding:8px 4px;border:0;border-bottom:1px solid #edf0f2}.member-table td:last-child{border-bottom:0}.member-table td:before{content:attr(data-label);font-weight:800;color:#5c6975}}
@media(max-width:650px){.member-file-header{display:grid;padding:18px}.member-file-actions,.member-toolbar{align-items:stretch;flex-direction:column}.member-file-actions .button{text-align:center}.member-summary,.member-data-grid{grid-template-columns:1fr}.member-data-wide{grid-column:auto}.member-table td{grid-template-columns:1fr;gap:4px}.member-table td:before{font-size:12px}}
.member-change-log{display:grid;gap:10px;margin-top:12px}.member-change-log>div{display:grid;gap:4px;padding:12px;border:1px solid #dce5ec;border-radius:10px;background:#f8fafc}.member-change-log span,.member-change-log small{color:#667582}.member-change-log small{overflow-wrap:anywhere}
.member-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.member-panel-heading h3{margin:0}.member-panel-heading span{display:block;margin-top:4px;color:#687582;font-size:13px}.member-record-list,.member-document-list{display:grid;gap:12px}.member-record,.member-document{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(150px,.65fr) auto;align-items:center;gap:16px;padding:16px;border:1px solid #dbe5ed;border-left:6px solid #3c9d5b;border-radius:12px;background:#fff}.member-record.expiring,.member-document.expiring{border-left-color:#d39b1c;background:#fffdf5}.member-record.expired,.member-document.expired{border-left-color:#bd4545;background:#fff8f8}.member-record h4,.member-document h4{margin:5px 0;color:#24465f}.member-record p,.member-document p{margin:0;color:#687582;font-size:13px}.member-record-status{display:grid;gap:5px}.member-record-status span{color:#687582;font-size:12px}.member-record-status b{color:#294b64;font-size:13px}.member-record.expired .member-record-status b,.member-document.expired .member-record-status b{color:#a53131}.member-record-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.member-record-actions form{margin:0}.small-button.danger{border-color:#d9a7a7;background:#fff2f2;color:#9e2929;cursor:pointer}.member-document-filter{display:flex;align-items:end;gap:10px;margin-bottom:16px;padding:12px;border-radius:10px;background:#f5f8fb}.member-document-filter label{display:grid;gap:5px;flex:1;font-weight:700}.member-document-filter select{width:100%}
@media(max-width:900px){.member-record,.member-document{grid-template-columns:1fr}.member-record-actions{justify-content:flex-start}.member-document-filter{align-items:stretch;flex-direction:column}}
@media(max-width:560px){.member-panel-heading{align-items:stretch;flex-direction:column}.member-panel-heading .button{text-align:center}.member-record-actions>*{flex:1}.member-record-actions .small-button,.member-record-actions form .small-button{display:block;width:100%;box-sizing:border-box;text-align:center}}
.status-box-link {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}

.status-box-link:hover {
    transform: translateY(-2px);
}
.settings-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
    margin: 1rem 0;
}

.disabled-card {
    opacity: .55;
    cursor: not-allowed;
    filter: grayscale(1);
}
.verwaltung-card:focus-visible{outline:3px solid #2f75b5;outline-offset:3px;transform:translateY(-2px)}
.accounting-table{min-width:1050px}.accounting-table .action-row{display:flex;flex-wrap:wrap;gap:.4rem}.accounting-table button:disabled{opacity:.55;cursor:not-allowed}
.accounting-list-card{overflow:visible}.accounting-desktop-table{display:none}.accounting-card-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.accounting-row-card{display:flex;min-width:0;flex-direction:column;padding:16px;border:1px solid #dbe3e9;border-left:6px solid #0f4c81;border-radius:12px;background:#fff}.accounting-card-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;margin:0}.accounting-card-values>div,.accounting-card-actions{min-width:0}.accounting-card-values>div{padding:9px 0;border-bottom:1px solid #edf0f2}.accounting-card-values dt{margin-bottom:4px;color:#5c6975;font-size:12px;font-weight:800;overflow-wrap:anywhere}.accounting-card-values dd{margin:0;overflow-wrap:anywhere}.accounting-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:14px}.accounting-card-actions .small-button{display:inline-flex;justify-content:center;box-sizing:border-box}
@media(max-width:760px){.accounting-card-list,.accounting-card-values{grid-template-columns:1fr}.accounting-card-actions{display:grid}.accounting-card-actions .small-button,.accounting-card-actions button.small-button{width:100%}}
@media(max-width:1100px){.accounting-list{overflow:visible}.accounting-table{min-width:0}.accounting-table thead{display:none}.accounting-table,.accounting-table tbody,.accounting-table tr,.accounting-table td{display:block;width:100%;box-sizing:border-box}.accounting-table tr{margin-bottom:14px;padding:10px 14px;border:1px solid #dbe3e9;border-left:6px solid #0f4c81;border-radius:12px;background:#fff}.accounting-table td{display:grid;grid-template-columns:minmax(125px,32%) 1fr;gap:12px;padding:9px 4px;border:0;border-bottom:1px solid #edf0f2;text-align:left}.accounting-table td:last-child{border-bottom:0}.accounting-table td:before{font-weight:800;color:#5c6975}.accounting-table .action-row{width:100%}.accounting-table .small-button{display:inline-flex;justify-content:center}.accounting-offen td:nth-child(1):before,.accounting-abgeschlossen td:nth-child(1):before,.accounting-auszahlungen td:nth-child(1):before{content:"Turnus"}.accounting-offen td:nth-child(2):before,.accounting-abgeschlossen td:nth-child(2):before{content:"Zeitraum"}.accounting-offen td:nth-child(3):before,.accounting-abgeschlossen td:nth-child(3):before,.accounting-auszahlungen td:nth-child(2):before{content:"Florist"}.accounting-offen td:nth-child(4):before{content:"Hauptaufträge"}.accounting-offen td:nth-child(5):before{content:"Nachläufe/Korrekturen"}.accounting-offen td:nth-child(6):before{content:"Bruttoumsatz"}.accounting-offen td:nth-child(7):before{content:"Status"}.accounting-offen td:nth-child(8):before{content:"Aktionen"}.accounting-abgeschlossen td:nth-child(4):before{content:"Finalisiert"}.accounting-abgeschlossen td:nth-child(5):before{content:"Bruttoumsatz"}.accounting-abgeschlossen td:nth-child(6):before{content:"Provision"}.accounting-abgeschlossen td:nth-child(7):before{content:"Umlage"}.accounting-abgeschlossen td:nth-child(8):before{content:"Lohnkosten"}.accounting-abgeschlossen td:nth-child(9):before{content:"Auszahlung"}.accounting-abgeschlossen td:nth-child(10):before{content:"Nummern"}.accounting-abgeschlossen td:nth-child(11):before{content:"Aktionen"}.accounting-rechnungen_amt td:nth-child(1):before,.accounting-umlagenrechnungen td:nth-child(1):before{content:"Rechnungsnummer"}.accounting-rechnungen_amt td:nth-child(2):before,.accounting-umlagenrechnungen td:nth-child(2):before{content:"Datum"}.accounting-rechnungen_amt td:nth-child(3):before,.accounting-umlagenrechnungen td:nth-child(3):before{content:"Turnus"}.accounting-rechnungen_amt td:nth-child(4):before,.accounting-umlagenrechnungen td:nth-child(4):before{content:"Florist"}.accounting-rechnungen_amt td:nth-child(5):before{content:"Zwischensumme"}.accounting-rechnungen_amt td:nth-child(6):before{content:"Provision"}.accounting-rechnungen_amt td:nth-child(7):before{content:"Rechnungsbetrag"}.accounting-umlagenrechnungen td:nth-child(5):before{content:"Netto"}.accounting-umlagenrechnungen td:nth-child(6):before{content:"Umsatzsteuer"}.accounting-umlagenrechnungen td:nth-child(7):before{content:"Brutto"}.accounting-rechnungen_amt td:nth-child(8):before,.accounting-umlagenrechnungen td:nth-child(8):before{content:"Status"}.accounting-rechnungen_amt td:nth-child(9):before,.accounting-umlagenrechnungen td:nth-child(9):before{content:"Versand"}.accounting-rechnungen_amt td:nth-child(10):before,.accounting-umlagenrechnungen td:nth-child(10):before{content:"Aktionen"}.accounting-auszahlungen td:nth-child(3):before{content:"Nach Provision"}.accounting-auszahlungen td:nth-child(4):before{content:"Umlage brutto"}.accounting-auszahlungen td:nth-child(5):before{content:"Lohnkosten"}.accounting-auszahlungen td:nth-child(6):before{content:"Auszahlungsbetrag"}.accounting-auszahlungen td:nth-child(7):before{content:"Status"}.accounting-auszahlungen td:nth-child(8):before{content:"Ausgezahlt am"}.accounting-auszahlungen td:nth-child(9):before{content:"Aktionen"}.accounting-settings td:nth-child(1):before,.accounting-history td:nth-child(1):before{content:"Einstellung"}.accounting-settings td:nth-child(2):before,.accounting-history td:nth-child(2):before{content:"Wert"}.accounting-settings td:nth-child(3):before,.accounting-history td:nth-child(3):before{content:"Gültig ab"}.accounting-settings td:nth-child(4):before{content:"Begründung"}.accounting-settings td:nth-child(5):before{content:"Aktion"}.accounting-history td:nth-child(4):before{content:"Gültig bis"}.accounting-history td:nth-child(5):before{content:"Begründung"}.accounting-history td:nth-child(6):before{content:"Bearbeiter"}.accounting-positions td:nth-child(1):before{content:"Typ"}.accounting-positions td:nth-child(2):before{content:"Datum"}.accounting-positions td:nth-child(3):before{content:"Vorgang"}.accounting-positions td:nth-child(4):before{content:"Ursprungsauftrag"}.accounting-positions td:nth-child(5):before{content:"Verstorbener"}.accounting-positions td:nth-child(6):before{content:"Ursprungsturnus"}.accounting-positions td:nth-child(7):before{content:"Betrag"}}
@media(max-width:600px){.accounting-table td{grid-template-columns:1fr;gap:4px}.accounting-table td:before{font-size:12px}.accounting-table .action-row,.accounting-table td:last-child{display:grid}.accounting-table .small-button,.accounting-table button.small-button{width:100%;box-sizing:border-box}.accounting-settings input{width:100%;box-sizing:border-box}}

.mail-preview {
    white-space: pre-wrap;
    font: inherit;
    line-height: 1.55;
    background: #f7f9fb;
    border: 1px solid #d8e1ea;
    border-radius: .5rem;
    padding: 1rem;
}
.design-logo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1.25rem;
}

.design-logo-grid figure {
    margin: 0;
    padding: 1rem;
    border: 1px solid #d6e0e8;
    border-radius: 10px;
    background: #fff;
}

.design-logo-grid img {
    display: block;
    max-width: 100%;
    max-height: 180px;
    margin: 0 auto 0.75rem;
    object-fit: contain;
}

.designer-feld {
    display: grid;
    grid-template-columns: minmax(180px, 1.5fr) minmax(180px, 2fr) 110px 42px 42px;
    gap: 0.55rem;
    align-items: center;
    padding: 0.55rem 0;
    border-bottom: 1px solid #d9e2f3;
}

#designer-vorschau {
    overflow-x: auto;
}
