:root{font-family:Inter,system-ui,Arial,sans-serif;color:#1f2937;background:#f3f4f6}*{box-sizing:border-box}body{margin:0}.center{min-height:100vh;display:grid;place-items:center}.card{background:white;border:1px solid #e5e7eb;border-radius:14px;padding:24px;box-shadow:0 8px 30px #0000000d}.login{width:min(420px,92vw)}h1{margin:0 0 6px}p{color:#6b7280}label{display:grid;gap:6px;margin:12px 0;font-weight:600}input,select{padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;background:white}button{border:0;border-radius:8px;padding:10px 14px;background:#1f4b7a;color:white;cursor:pointer;font-weight:700}.secondary{background:#e5e7eb;color:#374151}.danger{background:#b42318}.error{color:#b42318;margin-top:10px}header{display:flex;align-items:center;gap:24px;padding:14px 24px;background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0}header div{display:grid}header span{font-size:12px;color:#6b7280}nav{display:flex;gap:8px;flex:1}main{max-width:1280px;margin:auto;padding:24px}.toolbar{display:flex;gap:12px;align-items:end;margin-bottom:20px}.toolbar label{margin:0}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.metric b{font-size:30px;display:block;margin-top:8px}.muted{color:#6b7280}.ok{color:#067647}.warn{color:#b54708}table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid #e5e7eb}th{background:#f9fafb}.section{margin:22px 0}.formrow{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.formrow label{min-width:160px}.pill{padding:3px 8px;border-radius:999px;background:#f2f4f7;font-size:12px}@media(max-width:800px){header{align-items:flex-start;flex-wrap:wrap}nav{order:3;width:100%;overflow:auto}.grid{grid-template-columns:1fr}.formrow{display:grid}main{padding:14px}}
[hidden]{display:none!important}

/* Zukünftige Einrichtungen */
.future-location {
    background: #f8fafc;
}

.future-location td {
    color: #667085;
}

.future-location strong {
    color: #475467;
}

/* =========================================
   Wochenplanung
   ========================================= */

.planning-list {
    display: grid;
    gap: 18px;
    margin-top: 20px;
}

.planning-location {
    padding: 0;
    overflow: hidden;
}

.planning-location-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 20px 12px;
}

.planning-location-header h3 {
    margin: 0 0 3px;
}

.planning-requirements {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid #e5e7eb;
    border-bottom: 1px solid #e5e7eb;
}

.planning-requirement {
    padding: 14px 20px;
    border-right: 1px solid #e5e7eb;
}

.planning-requirement:last-child {
    border-right: 0;
}

.planning-label {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: #667085;
    margin-bottom: 6px;
}

.planning-value {
    display: grid;
    gap: 2px;
}

.planning-value strong {
    font-size: 18px;
}

.planning-value small {
    font-size: 12px;
}

.planning-staff-title {
    padding: 14px 20px 7px;
    font-size: 13px;
    font-weight: 700;
    color: #667085;
}

.planning-assignments {
    padding: 0 20px 16px;
}

.planning-assignment {
    display: grid;
    grid-template-columns:
        minmax(200px, 1fr)
        80px
        110px
        auto;
    gap: 14px;
    align-items: center;
    padding: 10px 0;
    border-top: 1px solid #f0f1f3;
}

.planning-person {
    display: grid;
    gap: 2px;
}

.planning-person span {
    font-size: 12px;
}

.planning-hours {
    font-weight: 700;
}

.planning-substitution {
    display: inline-block;
    width: max-content;
    padding: 4px 8px;
    border-radius: 999px;
    background: #fff7ed;
    color: #b54708;
    font-size: 12px;
    font-weight: 700;
}

.planning-delete {
    padding: 7px 10px;
    font-size: 12px;
}

.planning-empty {
    padding: 4px 20px 18px;
    color: #98a2b3;
    font-size: 13px;
}

.planning-future {
    background: #f8fafc;
}

.planning-future .planning-requirements {
    opacity: .75;
}

@media(max-width:800px) {

    .planning-requirements {
        grid-template-columns: 1fr;
    }

    .planning-requirement {
        border-right: 0;
        border-bottom: 1px solid #e5e7eb;
    }

    .planning-requirement:last-child {
        border-bottom: 0;
    }

    .planning-assignment {
        grid-template-columns: 1fr;
        gap: 6px;
    }
}

/* =========================================
   Mitarbeiter-Auslastung
   ========================================= */

.workload-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}

.workload-card {
    padding: 16px;
}

.workload-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 14px;
}

.workload-role {
    font-size: 12px;
    margin-top: 3px;
}

.workload-head > span {
    font-size: 12px;
    font-weight: 700;
    text-align: right;
}

.workload-numbers {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.workload-numbers > div {
    display: grid;
    gap: 3px;
    padding: 8px;
    background: #f9fafb;
    border-radius: 8px;
}

.workload-numbers span {
    font-size: 11px;
    color: #667085;
}

.workload-numbers strong {
    font-size: 15px;
}

.workload-absence {
    display: grid;
    gap: 4px;
    margin-top: 10px;
    padding: 8px 10px;
    border-radius: 8px;
    background: #fff7ed;
    color: #b54708;
    font-size: 12px;
    font-weight: 600;
}

.workload-card-disabled {
    background: #f8fafc;
    opacity: .7;
}

.workload-disabled {
    color: #667085;
}

@media(max-width:1000px) {
    .workload-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media(max-width:650px) {
    .workload-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================
   Grundplanung
   ========================================= */

.standard-checkbox {
    display: flex !important;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    padding-top: 18px;
    cursor: pointer;
}

.standard-checkbox input {
    width: 18px;
    height: 18px;
    margin: 0;
}

.planning-standard {
    display: inline-block;
    width: max-content;
    padding: 4px 8px;
    border-radius: 999px;
    background: #eef4ff;
    color: #3538cd;
    font-size: 12px;
    font-weight: 700;
}

.planning-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
}

/* =========================================
   Ausfälle in der Wochenplanung
   ========================================= */

.planning-absence {
    display: block;
    width: max-content;
    max-width: 100%;
    margin-top: 5px;
    padding: 4px 7px;
    border-radius: 6px;
    background: #fef3f2;
    color: #b42318;
    font-size: 11px;
    font-weight: 700;
}

.planning-partial-absence {
    display: block;
    width: max-content;
    max-width: 100%;
    margin-top: 5px;
    padding: 4px 7px;
    border-radius: 6px;
    background: #fffaeb;
    color: #b54708;
    font-size: 11px;
    font-weight: 700;
}

/* Dashboard: Handlungsbedarf */

.action-panel {
    border: 1px solid #f1b7b2;
    background: #fff7f6;
    border-radius: 12px;
    padding: 18px;
}

.action-panel h3 {
    margin-top: 0;
    margin-bottom: 14px;
    color: #a61b12;
}

.action-list {
    display: grid;
    gap: 10px;
}

.action-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    background: #ffffff;
    border: 1px solid #f0d4d1;
    border-left: 5px solid #c72b20;
    border-radius: 9px;
    padding: 13px 15px;
}

.action-main {
    display: grid;
    gap: 3px;
}

.action-main > strong {
    font-size: 16px;
}

.action-reason {
    margin-top: 4px;
    color: #a61b12;
}

.action-hours {
    display: grid;
    gap: 3px;
    text-align: right;
    white-space: nowrap;
}

.action-hours strong {
    color: #c72b20;
    font-size: 17px;
}

.action-hours span {
    font-size: 12px;
    color: #666;
}

@media (max-width: 700px) {
    .action-item {
        display: grid;
    }

    .action-hours {
        text-align: left;
        white-space: normal;
    }
}
