:root{
 --blue:#1b74a5;--blue-dark:#0d5d8c;--blue-soft:#e8f4fa;
 --orange:#ff7f00;--orange-dark:#d96c00;--orange-soft:#fff1e2;
 --bg:#f3f7fa;--card:#fff;--text:#163047;--muted:#6a7f91;--border:#d7e2e9;
 --success:#267d4d;--success-bg:#e9f7ef;--danger:#a62a2a;--danger-bg:#fdecec;
 --warning:#8a5a00;--warning-bg:#fff3d6;--responsible:#7b2cbf;--responsible-dark:#5d1b98;--responsible-soft:#f4eaff;--shadow:0 12px 32px rgba(19,71,105,.10);--radius:16px;
}
*{box-sizing:border-box}html{background:var(--bg)}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{color:var(--blue)}button,input,select{font:inherit}body.menu-open{overflow:hidden}
.topbar{position:sticky;top:0;z-index:40;height:68px;padding:0 18px;display:flex;align-items:center;gap:13px;background:rgba(255,255,255,.97);border-bottom:3px solid var(--orange)}
.hamburger{width:44px;height:44px;border:1px solid rgba(255,255,255,.78);border-radius:12px;background:#fff;color:var(--blue-dark);display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.14)}
.hamburger span,.hamburger span:before,.hamburger span:after{display:block;width:22px;height:2px;background:currentColor;position:relative;content:""}
.hamburger span:before{position:absolute;top:-7px}.hamburger span:after{position:absolute;top:7px}
.topbar-brand{display:flex;align-items:center;gap:9px;color:#fff;text-decoration:none;font-weight:900;font-size:1.15rem}
.topbar-brand img{width:42px;height:42px;object-fit:contain;background:#fff;border-radius:50%;padding:2px}.topbar-user{margin-left:auto;color:#e8f4fa;font-weight:700}
.drawer-overlay{position:fixed;inset:0;background:rgba(8,32,48,.48);z-index:49;opacity:0;pointer-events:none;transition:.18s}
.drawer{position:fixed;inset:0 auto 0 0;width:min(340px,90vw);background:#0c4568;color:#fff;z-index:50;transform:translateX(-100%);transition:.2s;display:flex;flex-direction:column;border-right:5px solid var(--orange)}
body.menu-open .drawer{transform:translateX(0)}body.menu-open .drawer-overlay{opacity:1;pointer-events:auto}
.drawer-brand{display:flex;align-items:center;gap:12px;padding:20px;border-bottom:1px solid rgba(255,255,255,.15)}
.drawer-brand img{width:62px;height:62px;object-fit:contain;background:#fff;border-radius:50%;padding:3px}
.drawer-brand strong{display:block;font-size:1.2rem}.drawer-brand small{color:#c6dfed}
.drawer-nav{padding:11px;overflow-y:auto;flex:1}.nav-section{padding:15px 11px 7px;color:#8fc4df;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.nav-link{display:flex;width:100%;padding:11px 12px;border-radius:10px;color:#fff;text-decoration:none;border:0;background:transparent;cursor:pointer;text-align:left;font-weight:750}
.nav-link:hover,.nav-link.active{background:rgba(255,127,0,.20)}.nav-button{font:inherit}
.drawer-user{padding:14px 18px;border-top:1px solid rgba(255,255,255,.15);display:grid;gap:3px;color:#c6dfed;font-size:.82rem}.drawer-user strong{color:#fff}
.container{width:min(1500px,calc(100% - 28px));margin:22px auto 45px}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.hero{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.hero h1{margin:0 0 5px;font-size:clamp(1.65rem,3vw,2.35rem);color:var(--blue-dark)}.hero p{margin:0;color:var(--muted)}
.auth-card{max-width:560px;margin:45px auto;padding:22px}.auth-card h1{margin-top:0;color:var(--blue-dark)}
.brand-auth{display:flex;align-items:center;gap:14px;margin-bottom:18px}.brand-auth img{width:86px;height:86px;object-fit:contain}.brand-auth h1{margin:0}.brand-auth p{margin:3px 0 0;color:var(--orange);font-weight:800}
form{display:grid;gap:12px}label{display:grid;gap:6px;font-size:.87rem;font-weight:800}
fieldset{border:1px solid var(--border);border-radius:12px;padding:12px}legend{padding:0 7px;font-weight:850;color:var(--blue-dark)}
input,select{width:100%;padding:11px 12px;border:1px solid #cad8e1;border-radius:10px;background:#fff;color:var(--text)}
input:focus,select:focus{outline:3px solid rgba(27,116,165,.12);border-color:var(--blue)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.full{grid-column:1/-1}
.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.check-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}
.check-card{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid var(--border);border-radius:10px;background:#f9fbfc;font-size:.82rem;font-weight:750;cursor:pointer}
.check-card input{width:auto;margin:0;accent-color:var(--orange)}
.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;padding:11px 15px;cursor:pointer;text-decoration:none;font-weight:850}
.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:var(--blue-dark)}.btn-secondary{background:var(--orange-soft);color:var(--orange-dark)}.btn-danger{background:var(--danger-bg);color:var(--danger)}.btn-small{padding:7px 10px;font-size:.78rem}
.auth-links{margin-top:15px}.muted{color:var(--muted)}
.flash{padding:13px 15px;border-radius:12px;margin-bottom:17px;font-weight:650}.flash.success{background:var(--success-bg);color:var(--success)}.flash.warning{background:var(--warning-bg);color:var(--warning)}.flash.error{background:var(--danger-bg);color:var(--danger)}
.copy-row{display:flex;gap:8px;margin-top:9px}.copy-row input{min-width:0}
.team-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:18px}.team-tile{padding:17px;text-decoration:none;color:inherit;border-top:4px solid var(--orange)}.team-tile strong{display:block;color:var(--blue-dark);font-size:1.02rem}.team-tile span{display:block;margin-top:4px;color:var(--muted);font-size:.82rem}
.section-card{padding:18px;margin-top:18px}.section-card.no-pad{padding:0;overflow:hidden}.section-card h2{margin:0 0 6px;color:var(--blue-dark)}
.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:13px}.section-head h2{margin:0}.section-head p{margin:4px 0 0;color:var(--muted)}
.counter-badge{min-width:32px;height:32px;border-radius:999px;background:var(--orange);color:#fff;display:grid;place-items:center;font-weight:900}
.responsive-list{display:grid}.assignment-row,.registration-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid var(--border)}.assignment-row:first-child,.registration-row:first-child{border-top:0}.assignment-row>div,.registration-row>div{display:grid;gap:3px}.assignment-row span,.registration-row span{color:var(--muted);font-size:.82rem}
.open-row{border-left:4px solid var(--orange);padding-left:11px}.empty{padding:22px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:12px}.success-empty{background:var(--success-bg);color:var(--success);border-style:solid}
.game-list{display:grid}.game-row{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(300px,1.7fr) minmax(250px,1fr);gap:16px;padding:17px;border-top:1px solid var(--border)}.game-row:first-child{border-top:0}
.game-date{font-weight:900;color:var(--blue)}.game-main h3{margin:5px 0 4px}.game-main p{margin:0;color:var(--muted);font-size:.83rem}
.auto-statuses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.auto-status{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 8px;border:1px solid var(--border);border-radius:9px;font-size:.78rem}
.status{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:.73rem;font-weight:850}.status.available{background:var(--success-bg);color:var(--success)}.status.away_possible{background:var(--warning-bg);color:var(--warning)}.status.blocked{background:#edf1f4;color:#71808e}
.volunteer-box{display:grid;align-content:start;gap:8px}.volunteer-list{display:flex;flex-wrap:wrap;gap:5px}.person-chip{padding:4px 7px;border-radius:999px;background:var(--blue-soft);color:var(--blue-dark);font-size:.72rem;font-weight:800}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.settings-grid .section-card{margin-top:0}
.admin-user-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-user-card{padding:14px;border:1px solid var(--border);border-radius:12px}
.admin-user-head{display:flex;justify-content:space-between;gap:8px}.admin-user-head>div{display:grid}.admin-user-head span{color:var(--muted);font-size:.78rem}.inline-check{display:flex;align-items:center;gap:6px}.inline-check input{width:auto}
.status-card{padding:15px;display:grid;gap:9px;border-top:4px solid var(--orange)}.status-card a{font-size:.8rem}
.footer{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:.77rem;padding:28px 0 5px}.footer img{width:28px;height:28px;object-fit:contain}
@media(max-width:1050px){.team-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.game-row{grid-template-columns:1fr 1.4fr}.volunteer-box{grid-column:1/-1}}
@media(max-width:760px){.container{width:min(100% - 18px,1500px);margin-top:14px}.topbar-user{display:none}.topbar-brand span{font-size:1rem}.form-grid,.settings-grid,.admin-user-list{grid-template-columns:1fr}.check-grid,.check-grid.compact{grid-template-columns:1fr}.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.game-row{grid-template-columns:1fr}.auto-statuses{grid-template-columns:1fr}.assignment-row,.registration-row{align-items:flex-start;flex-direction:column}.copy-row{flex-direction:column}.hero{flex-direction:column}}

/* ------------------------------------------------------------------
   0.4.2 – kompaktere Spielansicht / Benutzerverwaltung
   ------------------------------------------------------------------ */

.dashboard-hero{
    align-items:center;
}
.schedule-update-form{
    display:block;
    margin:0;
}
.compact-section{
    padding:14px;
}
.compact-empty{
    padding:13px;
}
.compact-list{
    display:grid;
    gap:7px;
}
.compact-assignment{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
    padding:9px 11px;
    border:1px solid var(--border);
    border-radius:10px;
    background:#fff;
}
.compact-assignment-main{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:7px 12px;
    min-width:0;
}
.compact-assignment-main strong{
    color:var(--blue-dark);
}
.compact-assignment-main span{
    color:var(--muted);
    font-size:.82rem;
}
.compact-assignment.no-team-available{
    border-color:var(--orange);
    border-left-color:var(--orange);
    background:#fffdf8;
}
.availability-alert{
    display:inline-flex;
    align-items:center;
    width:max-content;
    max-width:100%;
    padding:4px 8px;
    border-radius:999px;
    background:var(--orange-soft);
    color:var(--orange-dark) !important;
    font-size:.73rem !important;
    font-weight:900;
}
.team-games-card{
    overflow:hidden;
}
.desktop-game-table{
    display:block;
    overflow:auto;
}
.mobile-game-list{
    display:none;
}
.games-table{
    width:100%;
    border-collapse:separate;
    border-spacing:0 7px;
    padding:4px 7px 9px;
    min-width:1120px;
}
.games-table th{
    padding:6px 8px;
    text-align:left;
    color:var(--muted);
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.04em;
    white-space:nowrap;
}
.games-table td{
    padding:7px 8px;
    background:#fff;
    border-top:1px solid var(--border);
    border-bottom:1px solid var(--border);
    vertical-align:middle;
    font-size:.79rem;
}
.games-table td:first-child{
    border-left:1px solid var(--border);
    border-radius:9px 0 0 9px;
}
.games-table td:last-child{
    border-right:1px solid var(--border);
    border-radius:0 9px 9px 0;
}
.games-table tr.no-team-available td{
    border-top:2px solid var(--orange);
    border-bottom:2px solid var(--orange);
    background:#fffdf8;
}
.games-table tr.no-team-available td:first-child{
    border-left:2px solid var(--orange);
}
.games-table tr.no-team-available td:last-child{
    border-right:2px solid var(--orange);
}
.game-term-cell{
    min-width:180px;
}
.game-term-cell strong,
.game-term-cell span{
    display:block;
}
.game-term-cell strong{
    color:var(--blue-dark);
    font-size:.86rem;
}
.game-term-cell > span:not(.availability-alert){
    margin-top:2px;
}
.game-term-cell .availability-alert{
    margin-top:5px;
}
.venue-cell{
    max-width:210px;
    color:var(--muted);
}
.availability-cell{
    min-width:92px;
    text-align:center;
    border-left:1px solid var(--border);
    border-right:1px solid var(--border);
}
.availability-cell strong{
    font-size:.75rem;
}
.availability-cell.availability-available{
    background:#e4f7eb;
    color:#166a3d;
    border-color:#76c896;
    box-shadow:inset 0 0 0 1px #76c896;
}
.availability-cell.availability-away_possible{
    background:var(--warning-bg);
    color:var(--warning);
}
.availability-cell.availability-blocked{
    background:#f1f4f6;
    color:#74818c;
}
.compact-volunteers{
    max-width:230px;
}
.writers-cell{
    min-width:150px;
}
.action-cell{
    white-space:nowrap;
}
.action-cell form{
    display:block;
    margin:0;
}
.mobile-game-card{
    border:1px solid var(--border);
    border-radius:12px;
    background:#fff;
    overflow:hidden;
}
.mobile-game-card.no-team-available{
    border:2px solid var(--orange);
    background:#fffdf8;
}
.mobile-game-head{
    padding:10px 11px 8px;
}
.mobile-game-head strong{
    color:var(--blue-dark);
}
.mobile-game-head h3{
    margin:3px 0;
    font-size:1rem;
}
.mobile-game-head span{
    color:var(--muted);
    font-size:.77rem;
}
.mobile-alert{
    margin:0 10px 7px;
}
.mobile-status-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
    padding:0 10px 8px;
}
.mobile-status{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:7px;
    min-height:34px;
    padding:5px 7px;
    border:1px solid var(--border);
    border-radius:8px;
    font-size:.75rem;
}
.mobile-status strong{
    text-align:right;
    font-size:.71rem;
}
.mobile-status.availability-available{
    background:#e4f7eb;
    border-color:#69c58c;
    color:#12683a;
}
.mobile-status.availability-away_possible{
    background:var(--warning-bg);
    border-color:#e2c471;
    color:var(--warning);
}
.mobile-status.availability-blocked{
    background:#f1f4f6;
    color:#74818c;
}
.mobile-writers{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    align-items:center;
    gap:8px;
    padding:7px 10px;
    border-top:1px solid var(--border);
    font-size:.76rem;
}
.mobile-writers .volunteer-list{
    margin:0;
}
.mobile-action{
    display:block;
    padding:0 10px 10px;
}
.mobile-action .btn{
    width:100%;
}
.user-admin-panel{
    padding:12px;
}
.user-filter-bar{
    display:grid;
    grid-template-columns:minmax(260px,1fr) minmax(180px,260px) auto;
    gap:10px;
    align-items:end;
    padding-bottom:11px;
    border-bottom:1px solid var(--border);
}
.user-filter-bar label{
    gap:4px;
}
.user-filter-count{
    display:grid;
    justify-items:center;
    min-width:68px;
    padding:6px 10px;
    border-radius:9px;
    background:var(--blue-soft);
}
.user-filter-count strong{
    color:var(--blue-dark);
    font-size:1.05rem;
}
.user-filter-count span{
    color:var(--muted);
    font-size:.68rem;
}
.desktop-user-table{
    overflow:auto;
}
.mobile-user-cards{
    display:none;
}
.users-table{
    width:100%;
    border-collapse:collapse;
    min-width:1050px;
}
.users-table th{
    padding:7px 8px;
    text-align:left;
    color:var(--muted);
    font-size:.7rem;
    text-transform:uppercase;
    letter-spacing:.04em;
    border-bottom:1px solid var(--border);
}
.users-table td{
    padding:6px 8px;
    border-bottom:1px solid #e8eef2;
    vertical-align:middle;
    font-size:.78rem;
}
.users-table tr:hover td{
    background:#fafcfd;
}
.user-name-cell{
    min-width:205px;
}
.user-name-cell strong,
.user-name-cell span{
    display:block;
}
.user-name-cell span{
    color:var(--muted);
    font-size:.72rem;
    margin-top:1px;
}
.compact-select{
    padding:6px 8px;
    min-height:32px;
}
.inline-team-checks{
    display:flex;
    flex-wrap:wrap;
    gap:4px;
    min-width:390px;
}
.inline-team-checks label,
.mobile-team-checks label{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:4px 6px;
    border:1px solid var(--border);
    border-radius:7px;
    background:#f8fafb;
    font-size:.69rem;
    cursor:pointer;
}
.inline-team-checks input,
.mobile-team-checks input,
.active-toggle input{
    width:auto;
    margin:0;
    accent-color:var(--orange);
}
.inline-team-checks label:has(input:checked),
.mobile-team-checks label:has(input:checked){
    border-color:var(--orange);
    background:var(--orange-soft);
    color:var(--orange-dark);
}
.active-toggle{
    display:inline-flex;
    align-items:center;
    gap:5px;
    white-space:nowrap;
}
.save-cell{
    width:1%;
    white-space:nowrap;
}
.mobile-user-card{
    padding:9px;
    gap:8px;
    border:1px solid var(--border);
    border-radius:10px;
    background:#fff;
}
.mobile-user-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:8px;
}
.mobile-user-head > div{
    display:grid;
}
.mobile-user-head span{
    color:var(--muted);
    font-size:.7rem;
}
.mobile-user-controls{
    display:grid;
    grid-template-columns:110px minmax(0,1fr);
    gap:8px;
    align-items:start;
}
.mobile-team-checks{
    display:flex;
    flex-wrap:wrap;
    gap:4px;
}
.user-filter-empty{
    margin-top:10px;
}
[data-user-entry][hidden]{
    display:none !important;
}

@media(max-width:760px){
    .dashboard-hero{
        gap:10px;
    }
    .schedule-update-form,
    .schedule-update-form .btn{
        width:100%;
    }
    .compact-assignment{
        grid-template-columns:1fr auto;
        gap:7px;
        padding:8px 9px;
    }
    .compact-assignment-main{
        gap:4px 8px;
    }
    .compact-assignment-main strong{
        width:100%;
    }
    .desktop-game-table{
        display:none;
    }
    .mobile-game-list{
        display:grid;
        gap:8px;
        padding:8px;
    }
    .mobile-status-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .desktop-user-table{
        display:none;
    }
    .mobile-user-cards{
        display:grid;
        gap:7px;
        padding-top:10px;
    }
    .user-filter-bar{
        grid-template-columns:1fr 1fr;
    }
    .user-filter-count{
        grid-column:1/-1;
        display:flex;
        justify-content:center;
        gap:5px;
        padding:5px 8px;
    }
}

@media(max-width:430px){
    .compact-assignment{
        grid-template-columns:1fr;
    }
    .compact-assignment form,
    .compact-assignment .btn{
        width:100%;
    }
    .mobile-user-controls{
        grid-template-columns:90px minmax(0,1fr);
    }
}

.writers-summary{
    display:grid;
    gap:5px;
    justify-items:start;
}
.writer-missing-badge,
.writer-complete-badge{
    display:inline-flex;
    align-items:center;
    width:max-content;
    max-width:100%;
    padding:4px 8px;
    border-radius:999px;
    font-size:.72rem;
    font-weight:900;
    white-space:nowrap;
}
.writer-missing-badge.critical{
    background:var(--danger-bg);
    color:var(--danger);
}
.writer-missing-badge.warning{
    background:var(--warning-bg);
    color:var(--warning);
}
.writer-complete-badge{
    background:var(--success-bg);
    color:var(--success);
}
.own-team-note{
    color:var(--muted);
    font-size:.76rem;
    font-weight:700;
    white-space:nowrap;
}
.mobile-writers{
    grid-template-columns:1fr;
}
.mobile-writers-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
}

/* 0.4.18 – Sticky Kopfzeile in TSC-Dunkelblau */
.topbar{
    background:var(--blue-dark);
    border-bottom:3px solid var(--orange);
    box-shadow:0 5px 18px rgba(8,49,76,.22);
}
.topbar-brand{
    color:#fff;
}
.topbar-brand:hover{
    color:#fff;
}
.topbar-brand img{
    background:#fff;
    border-radius:50%;
    padding:2px;
}
.topbar-user{
    color:#e8f4fa;
}
.hamburger{
    background:#fff;
    color:var(--blue-dark);
    border:1px solid rgba(255,255,255,.78);
}

/* 0.4.18 – Installationsstatus im Hamburger-Menü */
.install-app-button{
    display:grid;
    gap:2px;
    align-items:start;
}
.install-app-button > span{
    font-weight:800;
}
.install-status{
    display:block;
    color:#b8d7e8;
    font-size:.68rem;
    font-weight:600;
    line-height:1.25;
}
.install-app-button.install-ready{
    background:rgba(255,127,0,.24);
}
.install-app-button.install-ready .install-status{
    color:#ffe1bf;
}
.install-app-button:disabled{
    opacity:.78;
    cursor:default;
}

/* 0.4.23 – Mannschaftsverwaltung, Übersicht und Sicherheitsdialog */
.no-team-choice{margin-top:10px;display:flex!important;align-items:center;gap:9px}.no-team-choice span{display:grid;gap:2px}.no-team-choice small{color:var(--muted);font-weight:500}
.admin-team-list{display:grid;gap:10px}.admin-team-card{padding:12px;border:1px solid var(--border);border-radius:12px;background:#fbfcfd}.admin-team-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:9px}.compact-form-grid{gap:9px}.toggle-stack{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.admin-add-team{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.admin-add-team summary{cursor:pointer;font-weight:800;color:var(--blue-dark);margin-bottom:10px}
.schedule-changes-card details>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;list-style:none}.schedule-changes-card summary::-webkit-details-marker{display:none}.change-list{display:grid;gap:6px;margin-top:10px}.change-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:start;padding:8px 9px;border:1px solid var(--border);border-radius:9px;background:#fff}.change-row small{display:block;color:var(--muted);margin-top:2px}.change-type{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:.7rem;font-weight:900;background:#eef2f4}.change-added .change-type{background:#e4f7eb;color:#166a3d}.change-removed .change-type{background:#fde8e8;color:#9c2626}.change-changed .change-type{background:var(--warning-bg);color:var(--warning)}
.team-overview-filter{display:flex;gap:7px;overflow-x:auto;padding:3px 1px 10px;scrollbar-width:thin}.team-filter-btn{flex:0 0 auto;border:1px solid var(--border);background:#fff;border-radius:999px;padding:8px 13px;font-weight:800;color:var(--blue-dark);cursor:pointer}.team-filter-btn.active{background:var(--blue-dark);color:#fff;border-color:var(--blue-dark)}.team-overview-grid{display:grid;gap:12px}.team-overview-card[hidden]{display:none!important}.overview-columns{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(300px,1.25fr);gap:18px}.overview-columns h3{margin:0 0 7px}.simple-person-list{display:flex;flex-wrap:wrap;gap:6px}.simple-person-list span{padding:5px 8px;border-radius:999px;background:#f1f4f6;font-size:.78rem}.writer-history-list{display:grid;gap:6px}.writer-history-list article{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(130px,.7fr) minmax(180px,1fr);gap:8px;padding:7px 8px;border-bottom:1px solid #edf1f3;font-size:.78rem}.writer-history-list span,.writer-history-list small{color:var(--muted)}
.confirm-dialog{border:0;padding:0;background:transparent;max-width:min(92vw,520px);width:100%}.confirm-dialog::backdrop{background:rgba(8,25,38,.62)}.confirm-dialog-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 24px 70px rgba(0,0,0,.25)}.confirm-dialog-card h2{margin-top:0}.confirm-dialog-card p{line-height:1.5;color:#34444f}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
@media(max-width:760px){.admin-team-head{align-items:flex-start;flex-direction:column}.overview-columns{grid-template-columns:1fr}.writer-history-list article{grid-template-columns:1fr}.confirm-dialog-actions{flex-direction:column-reverse}.confirm-dialog-actions .btn{width:100%}}

.external-user-badge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;background:#eef2f4;color:var(--muted);font-size:.69rem;font-weight:800}

/* ------------------------------------------------------------------
   0.5.2 – überarbeitete Administration und Mannschaftsübersicht
   ------------------------------------------------------------------ */
.settings-eyebrow{
    display:block;
    margin-bottom:4px;
    color:var(--orange-dark);
    font-size:.69rem;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.label-optional{
    color:var(--muted);
    font-size:.72rem;
    font-weight:650;
}
.form-hint,.field-help{
    display:block;
    margin:0;
    color:var(--muted);
    font-size:.75rem;
    font-weight:550;
    line-height:1.45;
}
.settings-primary-grid{
    align-items:start;
}
.settings-card{
    overflow:hidden;
}
.settings-card-head{
    padding-bottom:12px;
    margin-bottom:2px;
    border-bottom:1px solid #e8eef2;
}
.settings-card-head h2{
    margin-bottom:4px;
}
.settings-card-head p{
    margin:0;
    color:var(--muted);
    font-size:.82rem;
    line-height:1.45;
}
.settings-account-block{
    display:grid;
    gap:10px;
    padding-top:14px;
}
.settings-account-block h3{
    margin:0;
    color:var(--blue-dark);
    font-size:1rem;
}
.settings-account-email,
.settings-account-password{
    margin-top:16px;
    padding-top:18px;
    border-top:1px solid #e8eef2;
}
.settings-account-block form{
    min-width:0;
}
.settings-team-choice-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
}
.settings-team-choice{
    align-items:flex-start;
    min-height:60px;
}
.settings-team-choice > span{
    display:grid;
    gap:2px;
    min-width:0;
}
.settings-team-choice strong{
    color:var(--blue-dark);
}
.settings-team-choice small{
    color:var(--muted);
    font-size:.71rem;
    font-weight:550;
    line-height:1.25;
}
.settings-team-choice:has(input:checked){
    border-color:#9dc8df;
    background:var(--blue-soft);
    box-shadow:inset 3px 0 0 var(--blue);
}
.settings-team-choice.external-choice:has(input:checked){
    border-color:#d7c4a8;
    background:#fff9f0;
    box-shadow:inset 3px 0 0 var(--orange);
}
.admin-settings-section{
    padding:0;
    overflow:hidden;
}
.admin-settings-title{
    margin:0;
    padding:18px 20px;
    border-bottom:1px solid var(--border);
    background:linear-gradient(180deg,#fff 0%,#fbfdfe 100%);
}
.admin-settings-title p{
    max-width:760px;
}
.admin-section-count{
    flex:0 0 auto;
    padding:6px 10px;
    border-radius:999px;
    background:var(--blue-soft);
    color:var(--blue-dark);
    font-size:.73rem;
    font-weight:850;
}
.admin-team-list{
    gap:0;
}
.admin-team-card{
    border:0;
    border-radius:0;
    background:#fff;
    border-bottom:1px solid var(--border);
}
.admin-team-card:last-child{
    border-bottom:0;
}
.admin-team-summary{
    display:grid;
    grid-template-columns:auto minmax(220px,1fr) auto 18px;
    align-items:center;
    gap:12px;
    padding:13px 18px;
    list-style:none;
    cursor:pointer;
    transition:background .15s ease;
}
.admin-team-summary::-webkit-details-marker{
    display:none;
}
.admin-team-summary:hover{
    background:#f8fbfd;
}
.admin-team-card[open] > .admin-team-summary{
    background:var(--blue-soft);
    border-bottom:1px solid #cfe3ee;
}
.team-code-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:54px;
    height:34px;
    padding:0 10px;
    border-radius:10px;
    background:var(--blue-dark);
    color:#fff;
    font-size:.78rem;
    font-weight:900;
    letter-spacing:.02em;
    white-space:nowrap;
}
.admin-team-summary-name{
    display:grid;
    gap:2px;
    min-width:0;
}
.admin-team-summary-name strong{
    color:var(--text);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.admin-team-summary-name small{
    color:var(--muted);
    font-size:.72rem;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.admin-team-summary-statuses{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:5px;
}
.mini-status{
    display:inline-flex;
    align-items:center;
    padding:4px 7px;
    border-radius:999px;
    font-size:.65rem;
    font-weight:850;
    white-space:nowrap;
}
.mini-status.yes{
    background:var(--success-bg);
    color:var(--success);
}
.mini-status.neutral{
    background:var(--blue-soft);
    color:var(--blue-dark);
}
.mini-status.off{
    background:#edf1f4;
    color:#6f7c86;
}
.details-chevron{
    width:9px;
    height:9px;
    border-right:2px solid var(--blue-dark);
    border-bottom:2px solid var(--blue-dark);
    transform:rotate(45deg) translateY(-2px);
    transition:transform .15s ease;
}
.admin-team-card[open] .details-chevron{
    transform:rotate(225deg) translate(-1px,-1px);
}
.admin-team-form{
    padding:18px;
    background:#fbfdfe;
}
.admin-team-form-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}
.admin-team-toggles{
    grid-column:1/-1;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
}
.switch-card{
    display:flex;
    align-items:flex-start;
    gap:9px;
    padding:10px 11px;
    border:1px solid var(--border);
    border-radius:10px;
    background:#fff;
    cursor:pointer;
}
.switch-card input{
    width:auto;
    margin:3px 0 0;
    accent-color:var(--orange);
}
.switch-card > span{
    display:grid;
    gap:2px;
}
.switch-card strong{
    color:var(--text);
    font-size:.8rem;
}
.switch-card small{
    color:var(--muted);
    font-size:.7rem;
    font-weight:550;
    line-height:1.3;
}
.switch-card:has(input:checked){
    border-color:#b9d7e7;
    background:var(--blue-soft);
}
.admin-team-form-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding-top:12px;
    margin-top:4px;
    border-top:1px solid var(--border);
    color:var(--muted);
    font-size:.72rem;
}
.admin-team-form-footer code{
    padding:2px 5px;
    border-radius:5px;
    background:#eef3f6;
    color:var(--text);
}
.admin-add-team{
    margin:0;
    padding:0;
    border:0;
    border-top:1px solid var(--border);
    background:#fffaf5;
}
.admin-add-team > summary{
    display:flex;
    align-items:center;
    gap:10px;
    padding:14px 18px;
    list-style:none;
    cursor:pointer;
    color:var(--blue-dark);
}
.admin-add-team > summary::-webkit-details-marker{
    display:none;
}
.admin-add-team > summary > span:last-child{
    display:grid;
    gap:1px;
}
.admin-add-team > summary small{
    color:var(--muted);
    font-size:.7rem;
    font-weight:550;
}
.add-team-icon{
    display:grid;
    place-items:center;
    width:32px;
    height:32px;
    border-radius:9px;
    background:var(--orange);
    color:#fff;
    font-size:1.25rem;
    font-weight:500;
}
.add-team-form{
    border-top:1px solid #f0dcc9;
    background:#fffdf9;
}
.availability-settings-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    padding:0 18px 18px;
}
.setting-field{
    display:grid;
    align-content:start;
    gap:7px;
    padding:13px;
    border:1px solid var(--border);
    border-radius:12px;
    background:#fbfdfe;
}
.setting-field > span:first-child{
    color:var(--blue-dark);
    font-size:.78rem;
    font-weight:850;
}
.setting-field > strong{
    display:flex;
    align-items:center;
    gap:7px;
    font-size:.75rem;
    color:var(--muted);
}
.setting-field > strong input{
    width:82px;
    padding:8px 9px;
    color:var(--text);
}
.setting-field > small{
    color:var(--muted);
    font-size:.7rem;
    font-weight:550;
    line-height:1.35;
}
.setting-toggle-field{
    display:flex;
    align-items:flex-start;
    gap:9px;
}
.setting-toggle-field > input[type="checkbox"]{
    width:auto;
    margin:3px 0 0;
    accent-color:var(--orange);
}
.setting-toggle-field > span{
    display:grid;
    gap:3px;
}
.setting-toggle-field > span strong{
    color:var(--blue-dark);
    font-size:.78rem;
}
.setting-toggle-field > span small{
    color:var(--muted);
    font-size:.7rem;
    font-weight:550;
    line-height:1.35;
}
.setting-toggle-field:has(input:checked){
    border-color:#b9d7e7;
    background:var(--blue-soft);
}
.settings-form-footer{
    display:flex;
    justify-content:flex-end;
    padding:0 18px 18px;
}
.pwa-settings-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
}
.pwa-settings-card h2{
    margin-bottom:4px;
}
.pwa-settings-card p{
    margin:0;
    color:var(--muted);
    font-size:.8rem;
}

/* Registrierungslinks */
.registration-admin-grid{
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
    gap:16px;
    align-items:stretch;
}
.registration-admin-grid .section-card{
    margin-top:0;
}
.registration-create-card .section-head{
    margin-bottom:12px;
}
.registration-info-card{
    background:linear-gradient(145deg,#f8fcfe 0%,#fff 70%);
}
.info-points{
    display:grid;
    gap:12px;
    margin-top:12px;
}
.info-points > div{
    display:grid;
    gap:2px;
    padding-left:12px;
    border-left:3px solid var(--blue);
}
.info-points strong{
    color:var(--blue-dark);
    font-size:.8rem;
}
.info-points span{
    color:var(--muted);
    font-size:.75rem;
    line-height:1.4;
}
.registration-list-card{
    padding:0;
    overflow:hidden;
}
.registration-list-head{
    padding:17px 18px 13px;
    margin:0;
    border-bottom:1px solid var(--border);
}
.registration-link-list{
    display:grid;
}
.registration-link-card{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);
    gap:18px;
    align-items:center;
    padding:13px 18px;
    border-bottom:1px solid #e7edf1;
}
.registration-link-card:last-child{
    border-bottom:0;
}
.registration-link-card:hover{
    background:#fbfdfe;
}
.registration-link-main{
    min-width:0;
}
.registration-link-title{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
}
.registration-link-title > div{
    display:grid;
    gap:2px;
    min-width:0;
}
.registration-link-title strong{
    color:var(--text);
}
.registration-link-title > div span{
    color:var(--muted);
    font-size:.74rem;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.link-status{
    display:inline-flex;
    align-items:center;
    padding:4px 8px;
    border-radius:999px;
    font-size:.66rem;
    font-weight:900;
    white-space:nowrap;
}
.link-status.active{
    background:var(--success-bg);
    color:var(--success);
}
.link-status.expired,.link-status.inactive{
    background:#edf1f4;
    color:#6c7984;
}
.registration-link-meta{
    display:flex;
    flex-wrap:wrap;
    gap:5px 12px;
    margin-top:7px;
    color:var(--muted);
    font-size:.69rem;
}
.registration-link-meta strong{
    color:var(--text);
}
.registration-link-actions{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:8px;
    min-width:0;
}
.registration-link-copy{
    margin:0;
    min-width:0;
}
.registration-link-copy input{
    min-width:0;
    padding:8px 9px;
    font-size:.72rem;
    background:#f8fafb;
}
.registration-link-copy .btn{
    white-space:nowrap;
}
.legacy-link-note{
    display:grid;
    gap:1px;
    padding:8px 10px;
    border-radius:9px;
    background:var(--warning-bg);
    color:var(--warning);
}
.legacy-link-note strong{
    font-size:.72rem;
}
.legacy-link-note span{
    font-size:.66rem;
    line-height:1.3;
}

/* Mannschaftsübersicht */
.team-overview-hero{
    align-items:center;
    margin-bottom:12px;
}
.overview-global-stats{
    display:flex;
    gap:7px;
}
.overview-global-stats > span{
    display:flex;
    align-items:baseline;
    gap:5px;
    padding:7px 10px;
    border:1px solid var(--border);
    border-radius:10px;
    background:#fff;
    color:var(--muted);
    font-size:.7rem;
    white-space:nowrap;
}
.overview-global-stats strong{
    color:var(--blue-dark);
    font-size:1rem;
}
.team-overview-filter{
    position:sticky;
    top:76px;
    z-index:18;
    display:flex;
    gap:6px;
    overflow-x:auto;
    padding:8px;
    margin:0 0 12px;
    border:1px solid var(--border);
    border-radius:13px;
    background:rgba(243,247,250,.96);
    backdrop-filter:blur(8px);
    box-shadow:0 4px 14px rgba(19,71,105,.06);
    scrollbar-width:thin;
}
.team-filter-btn{
    padding:7px 12px;
    border-radius:9px;
    box-shadow:none;
}
.team-filter-btn.active{
    background:var(--blue-dark);
    color:#fff;
    box-shadow:0 4px 10px rgba(13,93,140,.18);
}
.team-overview-grid{
    gap:10px;
}
.team-overview-card{
    overflow:hidden;
    box-shadow:0 7px 20px rgba(19,71,105,.075);
}
.team-overview-card-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:12px 14px;
    border-bottom:1px solid var(--border);
    background:linear-gradient(180deg,#fff 0%,#fbfdfe 100%);
}
.team-overview-identity{
    display:flex;
    align-items:center;
    gap:11px;
    min-width:0;
}
.team-overview-identity > div{
    min-width:0;
}
.team-overview-identity h2{
    margin:0;
    color:var(--text);
    font-size:1rem;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.team-overview-identity p{
    margin:2px 0 0;
    color:var(--muted);
    font-size:.7rem;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.team-overview-stats{
    display:flex;
    gap:6px;
    flex:0 0 auto;
}
.team-overview-stats > span{
    display:grid;
    justify-items:center;
    min-width:62px;
    padding:5px 7px;
    border-radius:9px;
    background:#f1f6f9;
}
.team-overview-stats strong{
    color:var(--blue-dark);
    font-size:.9rem;
}
.team-overview-stats small{
    color:var(--muted);
    font-size:.58rem;
    font-weight:700;
}
.team-overview-body{
    display:grid;
    grid-template-columns:minmax(230px,.33fr) minmax(0,.67fr);
    gap:0;
}
.overview-members-panel,
.overview-writers-panel{
    min-width:0;
    padding:12px 14px 14px;
}
.overview-members-panel{
    border-right:1px solid var(--border);
    background:#fbfdfe;
}
.overview-panel-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-bottom:8px;
}
.overview-panel-head h3{
    margin:0;
    color:var(--blue-dark);
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.035em;
}
.overview-panel-head > span{
    display:grid;
    place-items:center;
    min-width:23px;
    height:23px;
    padding:0 6px;
    border-radius:999px;
    background:#eaf1f5;
    color:var(--blue-dark);
    font-size:.66rem;
    font-weight:900;
}
.overview-empty{
    padding:10px 0;
    color:var(--muted);
    font-size:.75rem;
}
.member-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
}
.member-row{
    display:flex;
    align-items:center;
    gap:7px;
    min-width:0;
    padding:6px 7px;
    border:1px solid #e2e9ed;
    border-radius:9px;
    background:#fff;
}
.member-avatar{
    display:grid;
    place-items:center;
    flex:0 0 29px;
    width:29px;
    height:29px;
    border-radius:50%;
    background:var(--blue-soft);
    color:var(--blue-dark);
    font-size:.64rem;
    font-weight:900;
}
.member-row > div{
    display:grid;
    min-width:0;
}
.member-row strong{
    overflow:hidden;
    color:var(--text);
    font-size:.72rem;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.member-row small{
    color:var(--danger);
    font-size:.6rem;
}
.writer-history-list{
    display:grid;
}
.writer-history-header,
.writer-history-row{
    display:grid;
    grid-template-columns:minmax(130px,.75fr) minmax(170px,.75fr) minmax(220px,1.5fr);
    gap:10px;
    align-items:center;
}
.writer-history-header{
    padding:0 7px 5px;
    color:var(--muted);
    font-size:.61rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.writer-history-row{
    padding:7px;
    border-top:1px solid #edf1f3;
    font-size:.7rem;
}
.writer-history-row:first-of-type{
    border-top:0;
}
.writer-history-row > strong{
    color:var(--text);
}
.writer-date{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:4px;
    color:var(--muted);
}
.writer-match{
    overflow:hidden;
    color:var(--muted);
    text-overflow:ellipsis;
    white-space:nowrap;
}
.history-state{
    display:inline-flex;
    padding:2px 5px;
    border-radius:999px;
    font-size:.55rem;
    font-weight:850;
}
.history-state.upcoming{
    background:var(--success-bg);
    color:var(--success);
}
.history-state.past{
    background:#edf1f4;
    color:#6e7b85;
}

@media(max-width:1050px){
    .availability-settings-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .registration-link-card{
        grid-template-columns:1fr;
        gap:9px;
    }
    .registration-link-actions{
        grid-template-columns:minmax(0,1fr) auto;
    }
    .team-overview-body{
        grid-template-columns:minmax(210px,.4fr) minmax(0,.6fr);
    }
    .member-list{
        grid-template-columns:1fr;
    }
    .writer-history-header,
    .writer-history-row{
        grid-template-columns:minmax(120px,.8fr) minmax(150px,.9fr) minmax(180px,1.2fr);
    }
}

@media(max-width:760px){
    .settings-team-choice-grid,
    .admin-team-form-grid,
    .admin-team-toggles,
    .availability-settings-grid,
    .registration-admin-grid{
        grid-template-columns:1fr;
    }
    .admin-settings-title{
        padding:15px 14px;
    }
    .admin-team-summary{
        grid-template-columns:auto minmax(0,1fr) 16px;
        padding:11px 13px;
    }
    .admin-team-summary-statuses{
        grid-column:2/3;
        justify-content:flex-start;
    }
    .details-chevron{
        grid-column:3;
        grid-row:1/3;
    }
    .admin-team-form,
    .add-team-form{
        padding:13px;
    }
    .admin-team-form-footer{
        align-items:stretch;
        flex-direction:column;
    }
    .admin-team-form-footer .btn{
        width:100%;
    }
    .settings-form-footer{
        padding:0 13px 13px;
    }
    .settings-form-footer .btn{
        width:100%;
    }
    .availability-settings-grid{
        padding:0 13px 13px;
    }
    .pwa-settings-card{
        align-items:stretch;
        flex-direction:column;
    }
    .pwa-settings-card .btn{
        width:100%;
    }
    .registration-link-actions{
        grid-template-columns:1fr;
    }
    .registration-link-actions form,
    .registration-link-actions form .btn{
        width:100%;
    }
    .registration-link-copy{
        flex-direction:row;
    }
    .team-overview-hero{
        align-items:flex-start;
    }
    .overview-global-stats{
        width:100%;
    }
    .overview-global-stats > span{
        flex:1 1 0;
        justify-content:center;
    }
    .team-overview-filter{
        top:72px;
        margin-left:-2px;
        margin-right:-2px;
    }
    .team-overview-card-head{
        align-items:flex-start;
        flex-direction:column;
        padding:11px 12px;
    }
    .team-overview-identity{
        width:100%;
    }
    .team-overview-stats{
        width:100%;
    }
    .team-overview-stats > span{
        flex:1 1 0;
    }
    .team-overview-body{
        grid-template-columns:1fr;
    }
    .overview-members-panel{
        border-right:0;
        border-bottom:1px solid var(--border);
    }
    .member-list{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .writer-history-header{
        display:none;
    }
    .writer-history-row{
        grid-template-columns:1fr;
        gap:3px;
        padding:8px 0;
    }
    .writer-match{
        white-space:normal;
    }
}

@media(max-width:430px){
    .member-list{
        grid-template-columns:1fr;
    }
    .registration-link-copy{
        flex-direction:column;
    }
    .team-code-badge{
        min-width:48px;
    }
}

/* Spezifitätskorrekturen für ältere 0.5.x-Regeln */
.admin-team-card{padding:0}
.writer-history-list .writer-history-row{
    display:grid;
    grid-template-columns:minmax(130px,.75fr) minmax(170px,.75fr) minmax(220px,1.5fr);
    gap:10px;
    align-items:center;
    padding:7px;
    border-top:1px solid #edf1f3;
    font-size:.7rem;
}
.writer-history-list .writer-history-row:first-of-type{border-top:0}
.schedule-changes-card{
    padding:0;
    overflow:hidden;
}
.schedule-changes-card details>summary{
    padding:12px 14px;
    background:linear-gradient(180deg,#fff 0%,#fbfdfe 100%);
}
.schedule-changes-card details[open]>summary{
    border-bottom:1px solid var(--border);
}
.schedule-changes-card .change-list{
    gap:0;
    margin:0;
}
.schedule-changes-card .change-row{
    border:0;
    border-bottom:1px solid #e9eef1;
    border-radius:0;
    padding:9px 14px;
}
.schedule-changes-card .change-row:last-child{border-bottom:0}
.schedule-changes-card .empty{margin:12px}
@media(max-width:1050px){
    .writer-history-list .writer-history-row{
        grid-template-columns:minmax(120px,.8fr) minmax(150px,.9fr) minmax(180px,1.2fr);
    }
}
@media(max-width:760px){
    .writer-history-list .writer-history-row{
        grid-template-columns:1fr;
        gap:3px;
        padding:8px 0;
    }
}


/* ------------------------------------------------------------------
   0.5.3 – Tagesbasierte Historienfilter und Link-Löschung
   ------------------------------------------------------------------ */
.history-toggle-bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:11px 14px;
    border-bottom:1px solid var(--border);
    background:#f8fbfd;
}
.history-toggle{
    display:inline-flex;
    align-items:center;
    gap:9px;
    width:max-content;
    max-width:100%;
    font-size:.82rem;
    font-weight:850;
    cursor:pointer;
}
.history-toggle input{
    width:auto;
    margin:0;
    accent-color:var(--blue);
}
.history-toggle small{
    display:inline-grid;
    place-items:center;
    min-width:24px;
    height:24px;
    padding:0 7px;
    border-radius:999px;
    background:var(--blue-soft);
    color:var(--blue-dark);
    font-size:.72rem;
    font-weight:900;
}
.history-toggle-hint,
.overview-history-hint{
    color:var(--muted);
    font-size:.76rem;
}
.history-current-empty{
    margin:12px 14px 4px;
    padding:11px 12px;
    border:1px dashed var(--border);
    border-radius:10px;
    background:#fff;
    color:var(--muted);
    font-size:.82rem;
}
.team-overview-controls{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:4px;
}
.team-overview-controls .team-overview-filter{
    flex:1 1 auto;
    min-width:0;
}
.overview-history-toggle{
    flex:0 0 auto;
    padding:7px 10px;
    border:1px solid var(--border);
    border-radius:999px;
    background:#fff;
}
.overview-history-hint{
    margin:2px 0 12px;
}
.registration-link-button-row{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:7px;
}
.registration-link-button-row form{
    display:block;
    margin:0;
}
[hidden]{
    display:none !important;
}

@media(max-width:760px){
    .history-toggle-bar{
        align-items:flex-start;
        flex-direction:column;
        gap:6px;
    }
    .team-overview-controls{
        align-items:stretch;
        flex-direction:column;
    }
    .overview-history-toggle{
        width:100%;
        justify-content:flex-start;
        border-radius:11px;
    }
    .registration-link-button-row{
        width:100%;
        justify-content:stretch;
    }
    .registration-link-button-row form,
    .registration-link-button-row .btn{
        width:100%;
    }
}


/* ------------------------------------------------------------------
   0.5.5 – Dashboard-Abstände und reduzierte Historienkennzeichnung
   ------------------------------------------------------------------ */

/*
 * Das Dashboard hatte durch die Kombination aus .hero margin-bottom,
 * .section-card margin-top und .team-grid margin-bottom teilweise doppelte
 * Abstände bzw. direkt aneinanderstoßende Karten. Hier bekommt jeder
 * Übergang genau einen Abstand.
 */
.dashboard-hero + .schedule-changes-card{
    margin-top:0;
}
.dashboard-team-grid{
    margin-top:18px;
    margin-bottom:0;
}
.dashboard-team-grid + .section-card{
    margin-top:18px;
}

/* Zukünftige Einträge brauchen kein Statuslabel: sichtbar = aktuell/zukünftig.
   Nur eingeblendete Historieneinträge werden weiterhin als vergangen markiert. */
.history-state.upcoming{
    display:none;
}

@media(max-width:760px){
    .dashboard-team-grid{
        margin-top:14px;
    }
    .dashboard-team-grid + .section-card{
        margin-top:14px;
    }
}


/* ------------------------------------------------------------------
   0.6.0 – Anschreiber-Verteilung und Verantwortliche
   ------------------------------------------------------------------ */
.manager-badge{
    display:inline-flex;
    align-items:center;
    width:max-content;
    max-width:100%;
    padding:3px 7px;
    border-radius:999px;
    background:var(--orange-soft);
    color:var(--orange-dark);
    font-size:.66rem;
    font-weight:900;
    line-height:1.25;
}
.member-meta-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}
.writer-manager-admin{
    padding:12px;
    border:1px solid var(--border);
    border-radius:12px;
    background:#f8fbfd;
}
.writer-manager-admin-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:10px;
}
.writer-manager-admin-head>div{display:grid;gap:3px}
.writer-manager-admin-head small{color:var(--muted);font-weight:500}
.writer-manager-choice-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
}
.writer-manager-choice{
    display:flex;
    align-items:center;
    gap:8px;
    padding:8px 9px;
    border:1px solid var(--border);
    border-radius:9px;
    background:#fff;
    font-size:.79rem;
    font-weight:750;
}
.writer-manager-choice input{width:auto;margin:0;accent-color:var(--orange)}

.distribution-hero{align-items:center}
.distribution-rule-card{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0;
    overflow:hidden;
    margin-bottom:16px;
}
.distribution-rule-card>div{
    display:grid;
    gap:4px;
    padding:13px 15px;
}
.distribution-rule-card>div+div{border-left:1px solid var(--border)}
.distribution-rule-card strong{color:var(--blue-dark);font-size:.84rem}
.distribution-rule-card span{color:var(--muted);font-size:.76rem;line-height:1.45}

.distribution-stats-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}
.distribution-stat-card{padding:13px}
.distribution-stat-head{
    display:flex;
    align-items:center;
    gap:8px;
    min-width:0;
}
.distribution-stat-head>strong{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:var(--blue-dark);
    font-size:.82rem;
}
.distribution-stat-values{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:5px;
    margin-top:10px;
}
.distribution-stat-values>span{
    display:grid;
    gap:1px;
    padding:7px 5px;
    border-radius:9px;
    background:#f6f9fb;
    text-align:center;
}
.distribution-stat-values strong{font-size:1rem;color:var(--blue-dark)}
.distribution-stat-values small{color:var(--muted);font-size:.58rem;line-height:1.2}
.distribution-managers{
    display:grid;
    gap:5px;
    margin-top:9px;
    padding-top:8px;
    border-top:1px solid #e8eef2;
    font-size:.7rem;
}
.distribution-managers>small{color:var(--muted);font-weight:800}
.manager-chip-list{display:flex;flex-wrap:wrap;gap:4px}
.manager-chip-list.compact{margin-top:5px}
.manager-chip{
    display:inline-flex;
    align-items:center;
    padding:3px 6px;
    border-radius:999px;
    background:var(--orange-soft);
    color:var(--orange-dark);
    font-size:.65rem;
    font-weight:850;
}

.distribution-upcoming-card{padding:14px}
.distribution-game-columns{
    display:grid;
    grid-template-columns:minmax(210px,1.25fr) minmax(220px,1.1fr) minmax(180px,.85fr) minmax(180px,.8fr);
    gap:12px;
    padding:0 10px 5px;
    color:#5c7485;
    font-size:.65rem;
    font-weight:900;
    letter-spacing:.025em;
    text-transform:uppercase;
}
.distribution-game-columns.without-admin{
    grid-template-columns:minmax(210px,1.25fr) minmax(220px,1.1fr) minmax(180px,.85fr);
}
.distribution-game-list{display:grid;gap:7px}
.distribution-game-row{
    display:grid;
    grid-template-columns:minmax(210px,1.25fr) minmax(220px,1.1fr) minmax(180px,.85fr) minmax(180px,.8fr);
    gap:12px;
    align-items:center;
    padding:10px;
    border:1px solid var(--border);
    border-radius:11px;
    background:#fff;
}
.distribution-game-row.without-admin{
    grid-template-columns:minmax(210px,1.25fr) minmax(220px,1.1fr) minmax(180px,.85fr);
}
.distribution-game-row.unassigned{
    border-left:4px solid var(--orange);
    background:#fffdf8;
}
.distribution-game-main,
.distribution-responsibility,
.distribution-volunteers{
    display:grid;
    gap:4px;
    min-width:0;
}
.distribution-game-main strong{color:var(--blue-dark);font-size:.82rem}
.distribution-game-main small{
    color:var(--muted);
    font-size:.67rem;
    font-weight:750;
}
.distribution-date{font-size:.72rem;color:var(--muted)}
.distribution-team-line{display:flex;align-items:center;flex-wrap:wrap;gap:5px}
.distribution-team-line>strong{font-size:.75rem}
.assignment-source-badge,
.availability-state-badge,
.distribution-unassigned-badge,
.actual-open-badge{
    display:inline-flex;
    width:max-content;
    padding:3px 6px;
    border-radius:999px;
    font-size:.62rem;
    font-weight:900;
}
.assignment-source-badge.auto{background:var(--blue-soft);color:var(--blue-dark)}
.assignment-source-badge.manual{background:var(--orange-soft);color:var(--orange-dark)}
.availability-state-badge.available{background:var(--success-bg);color:var(--success)}
.availability-state-badge.away_possible{background:var(--warning-bg);color:var(--warning)}
.availability-state-badge.blocked{background:var(--danger-bg);color:var(--danger)}
.distribution-unassigned-badge,
.actual-open-badge{background:var(--warning-bg);color:var(--warning)}
.distribution-admin-form{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    gap:6px;
}
.distribution-admin-form select{padding:7px 8px;font-size:.72rem}

.distribution-history-card{padding:0;overflow:hidden}
.distribution-history-card>details>summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:13px 14px;
    cursor:pointer;
    list-style:none;
}
.distribution-history-card>details>summary::-webkit-details-marker{display:none}
.distribution-history-card>details>summary>span:first-child{display:grid;gap:2px}
.distribution-history-card>details>summary small{color:var(--muted);font-weight:500}
.distribution-history-card>details[open]>summary{border-bottom:1px solid var(--border)}
.distribution-history-empty{margin:12px}
.distribution-history-list{display:grid}
.distribution-history-row{
    display:grid;
    grid-template-columns:minmax(210px,1.25fr) minmax(100px,.5fr) minmax(180px,1fr) minmax(180px,1fr);
    gap:12px;
    align-items:start;
    padding:10px 14px;
    border-bottom:1px solid #e9eef2;
}
.distribution-history-row:last-child{border-bottom:0}
.distribution-history-row>div{display:grid;gap:4px;min-width:0}
.distribution-history-row small{color:var(--muted);font-size:.66rem;font-weight:750}
.distribution-history-main span{color:var(--muted);font-size:.7rem}
.distribution-history-main strong{font-size:.78rem;color:var(--blue-dark)}
.actual-writer-list{display:flex;flex-wrap:wrap;gap:4px}
.actual-writer-list span{
    padding:3px 6px;
    border-radius:999px;
    background:var(--success-bg);
    color:var(--success);
    font-size:.66rem;
    font-weight:800;
}
.actual-editor{
    grid-column:1/-1;
    padding:7px 0 0;
}
.actual-editor>summary{
    cursor:pointer;
    width:max-content;
    color:var(--blue-dark);
    font-size:.7rem;
    font-weight:850;
}
.actual-editor form{
    margin-top:8px;
    padding:10px;
    border:1px solid var(--border);
    border-radius:10px;
    background:#f8fbfd;
}
.actual-user-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px;
}
.actual-user-choice{
    display:flex;
    align-items:flex-start;
    gap:7px;
    padding:7px;
    border:1px solid var(--border);
    border-radius:8px;
    background:#fff;
    font-size:.7rem;
}
.actual-user-choice.responsible-member{
    border-color:#efc28d;
    background:#fffaf3;
}
.actual-user-choice input{width:auto;margin:2px 0 0;accent-color:var(--orange)}
.actual-user-choice span{display:grid;gap:1px}
.actual-user-choice small{font-size:.6rem;font-weight:500}

@media(max-width:1150px){
    .distribution-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .distribution-game-columns{display:none}
    .distribution-game-row{grid-template-columns:minmax(200px,1fr) minmax(220px,1fr)}
    .distribution-admin-form{grid-column:1/-1}
    .distribution-history-row{grid-template-columns:1fr 1fr}
    .actual-editor{grid-column:1/-1}
}
@media(max-width:760px){
    .writer-manager-choice-grid{grid-template-columns:1fr}
    .distribution-rule-card{grid-template-columns:1fr}
    .distribution-rule-card>div+div{border-left:0;border-top:1px solid var(--border)}
    .distribution-stats-grid{grid-template-columns:1fr}
    .distribution-stat-values{grid-template-columns:repeat(2,minmax(0,1fr))}
    .distribution-game-row{grid-template-columns:1fr}
    .distribution-admin-form{grid-template-columns:1fr}
    .distribution-admin-form .btn{width:100%}
    .distribution-history-row{grid-template-columns:1fr}
    .actual-user-grid{grid-template-columns:1fr}
    .distribution-hero form,
    .distribution-hero .btn{width:100%}
}


/* ------------------------------------------------------------------
   0.6.1 – getrennte Teilnahme an der automatischen Verteilung
   ------------------------------------------------------------------ */
.distribution-switch-card{
    border-color:#c7dce8;
    background:#f4f9fc;
}
.distribution-switch-card:has(input:checked){
    border-color:#8fc3df;
    background:var(--blue-soft);
}
.auto-distribution-badge{
    display:inline-flex;
    align-items:center;
    flex:0 0 auto;
    padding:3px 6px;
    border-radius:999px;
    font-size:.58rem;
    font-weight:900;
    white-space:nowrap;
}
.auto-distribution-badge.included{
    background:var(--success-bg);
    color:var(--success);
}
.auto-distribution-badge.excluded{
    background:#edf1f4;
    color:#687986;
}
@media(max-width:760px){
    .distribution-stat-head{
        flex-wrap:wrap;
    }
}


/* ------------------------------------------------------------------
   0.6.2 – Detail-Overlay für Verfügbarkeiten
   ------------------------------------------------------------------ */
.distribution-game-row-clickable{
    cursor:pointer;
    transition:border-color .15s, box-shadow .15s, transform .15s;
}
.distribution-game-row-clickable:hover{
    border-color:#9fc6da;
    box-shadow:0 7px 18px rgba(20,76,108,.09);
}
.distribution-game-row-clickable:focus-visible{
    outline:3px solid rgba(27,116,165,.18);
    outline-offset:2px;
}
.distribution-detail-dialog{
    width:min(1040px,calc(100vw - 28px));
    max-width:none;
    max-height:min(88vh,900px);
    padding:0;
    border:0;
    border-radius:18px;
    background:transparent;
    overflow:visible;
}
.distribution-detail-dialog::backdrop{
    background:rgba(8,31,47,.62);
    backdrop-filter:blur(2px);
}
.distribution-detail-dialog-card{
    display:flex;
    flex-direction:column;
    max-height:min(88vh,900px);
    overflow:hidden;
    border:1px solid var(--border);
    border-radius:18px;
    background:#fff;
    box-shadow:0 28px 80px rgba(5,35,54,.28);
}
.distribution-detail-dialog-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    padding:18px 20px 14px;
    border-bottom:1px solid var(--border);
    background:linear-gradient(180deg,#fff 0%,#f8fbfd 100%);
}
.distribution-detail-dialog-head h2{
    margin:1px 0 4px;
    color:var(--blue-dark);
    font-size:1.2rem;
}
.distribution-detail-dialog-head p{
    margin:0;
    color:var(--muted);
    font-size:.74rem;
}
.distribution-detail-close{
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:36px;
    height:36px;
    border:1px solid var(--border);
    border-radius:999px;
    background:#fff;
    color:var(--blue-dark);
    font-size:1.5rem;
    line-height:1;
    cursor:pointer;
}
.distribution-detail-dialog-content{
    overflow:auto;
    padding:16px 18px 20px;
}
.distribution-detail-target{
    display:grid;
    gap:4px;
    margin-bottom:13px;
    padding:12px 14px;
    border:1px solid #c9dce7;
    border-radius:12px;
    background:var(--blue-soft);
}
.distribution-detail-target h3{
    margin:0;
    color:var(--blue-dark);
    font-size:.98rem;
}
.distribution-detail-target-meta{
    display:flex;
    flex-wrap:wrap;
    gap:5px 16px;
    color:#496577;
    font-size:.72rem;
}
.distribution-detail-team-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}
.distribution-detail-team-card{
    min-width:0;
    padding:11px;
    border:1px solid var(--border);
    border-left-width:4px;
    border-radius:11px;
    background:#fff;
}
.distribution-detail-team-card.state-available{border-left-color:#55ad78}
.distribution-detail-team-card.state-away_possible{border-left-color:#d4a52e}
.distribution-detail-team-card.state-blocked{border-left-color:#c15a5a}
.distribution-detail-team-card>header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
}
.distribution-detail-team-card>header>div:first-child{
    display:flex;
    align-items:center;
    gap:7px;
    min-width:0;
}
.distribution-detail-team-card>header strong{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:var(--blue-dark);
    font-size:.76rem;
}
.distribution-detail-badges{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:4px;
}
.distribution-detail-reason{
    margin:7px 0;
    color:#4d6373;
    font-size:.7rem;
    font-weight:700;
}
.distribution-detail-no-game{
    padding:8px 9px;
    border-radius:8px;
    background:#f5f8fa;
    color:var(--muted);
    font-size:.68rem;
    line-height:1.4;
}
.distribution-detail-games{
    display:grid;
    gap:6px;
}
.distribution-detail-game{
    display:grid;
    gap:3px;
    padding:7px 8px;
    border:1px solid #e1e9ee;
    border-radius:8px;
    background:#fafcfd;
    color:#526a7b;
    font-size:.67rem;
}
.distribution-detail-game.blocks-target{
    border-color:#e3b8b8;
    background:#fff8f8;
}
.distribution-detail-game-head{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:4px 6px;
}
.distribution-detail-game-head>strong{
    color:var(--text);
    font-size:.7rem;
}
.game-location-badge,
.blocking-badge{
    display:inline-flex;
    padding:2px 5px;
    border-radius:999px;
    font-size:.57rem;
    font-weight:900;
}
.game-location-badge{
    background:#eef3f6;
    color:#607583;
}
.blocking-badge{
    background:var(--danger-bg);
    color:var(--danger);
}

@media(max-width:760px){
    .distribution-detail-dialog{
        width:calc(100vw - 14px);
        max-height:94vh;
    }
    .distribution-detail-dialog-card{
        max-height:94vh;
        border-radius:14px;
    }
    .distribution-detail-dialog-head{
        padding:14px;
    }
    .distribution-detail-dialog-content{
        padding:11px;
    }
    .distribution-detail-team-list{
        grid-template-columns:1fr;
    }
    .distribution-detail-team-card>header{
        align-items:flex-start;
        flex-direction:column;
    }
    .distribution-detail-badges{
        justify-content:flex-start;
    }
}


/* ------------------------------------------------------------------
   0.6.3 – reduzierte Verfügbarkeitsdetails und Admin-Steuerung
   ------------------------------------------------------------------ */
.volunteer-admin-list{align-items:center}
.volunteer-person-chip{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding-right:3px;
}
.volunteer-person-chip form{display:inline-flex;margin:0}
.volunteer-delete-button{
    display:grid;
    place-items:center;
    width:18px;
    height:18px;
    padding:0;
    border:0;
    border-radius:999px;
    background:rgba(166,42,42,.10);
    color:var(--danger);
    font-size:.82rem;
    font-weight:900;
    line-height:1;
    cursor:pointer;
}
.volunteer-delete-button:hover{background:var(--danger-bg)}

/* Im Detail-Overlay stehen nur entscheidungsrelevante Spieldaten.
   Mannschaften ohne Spiel bleiben als kompakte Verfügbarkeitszeile sichtbar. */
.distribution-detail-team-card{padding:9px 10px}
.distribution-detail-team-card:not(:has(.distribution-detail-games)){
    min-height:48px;
    display:flex;
    align-items:center;
}
.distribution-detail-team-card:not(:has(.distribution-detail-games))>header{
    width:100%;
}
.distribution-detail-games{margin-top:7px}
.distribution-detail-target{margin-bottom:10px;padding:10px 12px}
.distribution-detail-target-meta{font-size:.68rem}



/* ------------------------------------------------------------------
   0.7.0 – Routing/Fahrtzeiten
   ------------------------------------------------------------------ */
.routing-settings-card{overflow:hidden}
.routing-settings-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.routing-enable-field,
.routing-origin-field,
.routing-key-field{grid-column:1/-1}
.routing-origin-field input,
.routing-key-field input{margin-top:5px}
.routing-cache-badge{
    display:inline-flex;
    padding:6px 9px;
    border-radius:999px;
    background:var(--blue-soft);
    color:var(--blue-dark);
    font-size:.68rem;
    font-weight:850;
    white-space:nowrap;
}
.routing-formula-note{
    margin-top:10px;
    padding:10px 12px;
    border:1px solid #c9dce7;
    border-radius:10px;
    background:#f5fafc;
    color:#506978;
    font-size:.75rem;
    line-height:1.45;
}
.routing-trip-info{color:var(--blue-dark)!important}
@media(max-width:760px){
    .routing-settings-grid{grid-template-columns:1fr}
    .routing-enable-field,
    .routing-origin-field,
    .routing-key-field{grid-column:auto}
    .routing-cache-badge{white-space:normal}
}


/* ------------------------------------------------------------------
   0.7.1 – API-schonende Routing-Batches
   ------------------------------------------------------------------ */
.routing-batch-panel{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-top:14px;
    padding:13px 14px;
    border:1px solid var(--border);
    border-radius:12px;
    background:#f8fbfd;
}
.routing-batch-panel>div{
    display:grid;
    gap:4px;
    min-width:0;
}
.routing-batch-panel strong{
    color:var(--blue-dark);
}
.routing-batch-panel p{
    margin:0;
    color:var(--muted);
    font-size:.76rem;
    line-height:1.45;
}
.routing-batch-panel form{
    display:block;
    flex:0 0 auto;
}
@media(max-width:760px){
    .routing-batch-panel{
        align-items:stretch;
        flex-direction:column;
    }
    .routing-batch-panel form,
    .routing-batch-panel .btn{
        width:100%;
    }
}


/* ------------------------------------------------------------------
   0.7.2 – Mannschaftsspezifische Sperrzeiten
   ------------------------------------------------------------------ */
.team-time-overrides{
    padding:12px;
    border:1px solid #c9dce7;
    border-radius:12px;
    background:#f7fbfd;
}
.team-time-overrides-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    margin-bottom:9px;
}
.team-time-overrides-head>div{
    display:grid;
    gap:2px;
}
.team-time-overrides-head strong{
    color:var(--blue-dark);
    font-size:.82rem;
}
.team-time-overrides-head small{
    color:var(--muted);
    font-size:.68rem;
    font-weight:500;
}
.team-time-overrides-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}
.team-time-overrides-grid label{
    padding:9px 10px;
    border:1px solid var(--border);
    border-radius:9px;
    background:#fff;
}
.team-time-overrides-grid label>span{
    color:var(--text);
    font-size:.74rem;
}
.team-time-overrides-grid label>strong{
    display:flex;
    align-items:center;
    gap:6px;
    color:var(--blue-dark);
}
.team-time-overrides-grid input{
    min-width:0;
}
.team-time-overrides-grid small{
    color:var(--muted);
    font-size:.64rem;
    font-weight:500;
    line-height:1.35;
}
@media(max-width:760px){
    .team-time-overrides-grid{
        grid-template-columns:1fr;
    }
}


/* ------------------------------------------------------------------
   0.7.3 – Spielorte / Routing-Transparenz
   ------------------------------------------------------------------ */
.venues-hero{align-items:center}
.venue-routing-status{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:0;
    margin-bottom:16px;
    overflow:hidden;
}
.venue-routing-status>div{
    display:grid;
    gap:3px;
    padding:12px 13px;
    border-right:1px solid var(--border);
}
.venue-routing-status>div:last-child{border-right:0}
.venue-routing-status small{color:var(--muted);font-size:.64rem;font-weight:800}
.venue-routing-status strong{color:var(--blue-dark);font-size:.78rem;overflow-wrap:anywhere}
.venues-card{padding:14px}
.venue-table-wrap{overflow-x:auto}
.venue-table{width:100%;border-collapse:collapse;font-size:.72rem}
.venue-table th{
    padding:8px 9px;
    border-bottom:1px solid var(--border);
    text-align:left;
    color:#607485;
    font-size:.63rem;
    text-transform:uppercase;
    letter-spacing:.03em;
}
.venue-table td{
    padding:9px;
    border-bottom:1px solid #e9eef2;
    vertical-align:top;
}
.venue-table tbody tr:last-child td{border-bottom:0}
.venue-address-cell{min-width:260px;max-width:420px}
.venue-address-cell>strong{display:block;color:var(--blue-dark)}
.venue-address-cell>small{display:block;margin-top:3px;color:var(--muted)}
.venue-error-text{
    color:var(--danger)!important;
    font-size:.66rem!important;
    line-height:1.35;
    overflow-wrap:anywhere;
}
.venue-team-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.venue-team-chips span{
    display:inline-flex;
    padding:3px 6px;
    border-radius:999px;
    background:var(--blue-soft);
    color:var(--blue-dark);
    font-size:.62rem;
    font-weight:900;
}
.venue-status-badge{
    display:inline-flex;
    width:max-content;
    padding:3px 7px;
    border-radius:999px;
    font-size:.62rem;
    font-weight:900;
}
.venue-status-badge.ok{background:var(--success-bg);color:var(--success)}
.venue-status-badge.open{background:#edf2f5;color:#667c89}
.venue-status-badge.stale{background:var(--warning-bg);color:var(--warning)}
.venue-status-badge.error{background:var(--danger-bg);color:var(--danger)}
.venue-status-error{background:#fffafa}
.venue-status-stale{background:#fffdf7}
.venue-mobile-list{display:none}

@media(max-width:1050px){
    .venue-routing-status{grid-template-columns:repeat(3,minmax(0,1fr))}
    .venue-routing-status>div:nth-child(3){border-right:0}
    .venue-routing-status>div:nth-child(-n+3){border-bottom:1px solid var(--border)}
}
@media(max-width:760px){
    .venue-routing-status{grid-template-columns:repeat(2,minmax(0,1fr))}
    .venue-routing-status>div{
        border-right:1px solid var(--border);
        border-bottom:1px solid var(--border);
    }
    .venue-routing-status>div:nth-child(2n){border-right:0}
    .venue-routing-status>div:nth-last-child(-n+2){border-bottom:0}
    .venue-table-wrap{display:none}
    .venue-mobile-list{display:grid;gap:8px}
    .venue-mobile-card{
        display:grid;
        gap:10px;
        padding:11px;
        border:1px solid var(--border);
        border-left-width:4px;
        border-radius:11px;
        background:#fff;
    }
    .venue-mobile-card.venue-status-ok{border-left-color:#55ad78}
    .venue-mobile-card.venue-status-error{border-left-color:#c15a5a}
    .venue-mobile-card.venue-status-stale{border-left-color:#d4a52e}
    .venue-mobile-card.venue-status-open{border-left-color:#9aaab5}
    .venue-mobile-card>header{
        display:flex;
        align-items:flex-start;
        justify-content:space-between;
        gap:8px;
    }
    .venue-mobile-card>header>div{min-width:0}
    .venue-mobile-card>header strong{
        display:block;
        color:var(--blue-dark);
        font-size:.8rem;
        overflow-wrap:anywhere;
    }
    .venue-mobile-values{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:6px;
    }
    .venue-mobile-values>span{
        display:grid;
        gap:2px;
        padding:7px;
        border-radius:8px;
        background:#f6f9fb;
    }
    .venue-mobile-values small{color:var(--muted);font-size:.59rem}
    .venue-mobile-values strong{font-size:.7rem;color:var(--text)}
    .venue-mobile-card form,
    .venue-mobile-card .btn{width:100%}
}


/* ------------------------------------------------------------------
   0.7.4 – Manuelle Benutzeranlage / explizit extern
   ------------------------------------------------------------------ */
.user-create-card{
    margin-bottom:14px;
    padding:0;
    overflow:hidden;
}
.user-create-card>details>summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:13px 15px;
    cursor:pointer;
    list-style:none;
}
.user-create-card>details>summary::-webkit-details-marker{display:none}
.user-create-card>details>summary>span:first-child{
    display:grid;
    gap:2px;
}
.user-create-card>details>summary strong{
    color:var(--blue-dark);
    font-size:.9rem;
}
.user-create-card>details>summary small{
    color:var(--muted);
    font-size:.7rem;
    font-weight:500;
}
.user-create-plus{
    display:grid;
    place-items:center;
    width:30px;
    height:30px;
    border-radius:999px;
    background:var(--blue-soft);
    color:var(--blue-dark);
    font-size:1.15rem;
    font-weight:900;
    transition:transform .15s;
}
.user-create-card details[open] .user-create-plus{transform:rotate(45deg)}
.user-create-card details[open]>summary{
    border-bottom:1px solid var(--border);
}
.user-create-form{
    padding:14px 15px 16px;
}
.user-create-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.user-create-grid>label{
    display:grid;
    gap:5px;
}
.user-create-grid>label>span,
.user-create-teams legend{
    color:var(--text);
    font-size:.7rem;
    font-weight:850;
}
.user-create-grid label small,
.user-create-teams>small{
    color:var(--muted);
    font-size:.63rem;
    line-height:1.35;
}
.user-create-email,
.user-create-teams{
    grid-column:1/-1;
}
.user-create-teams{
    min-width:0;
    margin:0;
    padding:10px;
    border:1px solid var(--border);
    border-radius:10px;
    background:#f8fbfd;
}
.user-create-team-options{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin:5px 0 6px;
}
.user-create-team-options label,
.external-user-choice{
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:5px 7px;
    border:1px solid var(--border);
    border-radius:999px;
    background:#fff;
    cursor:pointer;
    font-size:.67rem;
    font-weight:850;
}
.user-create-team-options input,
.external-user-choice input{
    width:auto;
    margin:0;
    accent-color:var(--blue);
}
.user-create-external,
.external-user-choice{
    border-color:#d4bd84!important;
    background:#fffaf0!important;
    color:#7b5a10!important;
}
.user-create-actions{
    display:flex;
    justify-content:flex-end;
    margin-top:12px;
}
.inline-team-checks .external-user-choice{
    padding:3px 6px;
}
.mobile-team-checks .external-user-choice{
    width:max-content;
}
@media(max-width:760px){
    .user-create-grid{
        grid-template-columns:1fr;
    }
    .user-create-email,
    .user-create-teams{
        grid-column:auto;
    }
    .user-create-actions,
    .user-create-actions .btn{
        width:100%;
    }
}


/* ------------------------------------------------------------------
   0.7.5 – korrigierbare Routing-Adressen
   ------------------------------------------------------------------ */
.venue-routing-override{
    display:block;
    margin-top:3px;
    color:var(--blue-dark)!important;
    font-size:.65rem!important;
    font-weight:750;
}
.venue-action-cell{
    min-width:190px;
}
.venue-action-cell{
    display:grid;
    gap:6px;
}
.venue-address-editor{
    min-width:0;
}
.venue-address-editor>summary{
    cursor:pointer;
    width:max-content;
    color:var(--blue-dark);
    font-size:.68rem;
    font-weight:850;
}
.venue-address-editor form{
    display:grid;
    gap:7px;
    margin-top:7px;
    padding:8px;
    border:1px solid var(--border);
    border-radius:9px;
    background:#f8fbfd;
}
.venue-address-editor label{
    display:grid;
    gap:4px;
}
.venue-address-editor label>span{
    font-size:.64rem;
    font-weight:850;
}
.venue-address-editor input{
    min-width:220px;
    padding:7px 8px;
    font-size:.7rem;
}
.venue-address-editor small{
    color:var(--muted);
    font-size:.59rem;
    line-height:1.3;
}
.venue-editor-actions{
    display:flex;
    flex-wrap:wrap;
    gap:5px;
}
.venue-address-editor.mobile>summary{
    width:100%;
}
.venue-address-editor.mobile input{
    min-width:0;
    width:100%;
}
@media(max-width:760px){
    .venue-editor-actions{
        display:grid;
        grid-template-columns:1fr 1fr;
    }
    .venue-editor-actions .btn{
        width:100%;
    }
}




/* ------------------------------------------------------------------
   0.7.8 – administrierbarer Entfernungs-Fahrpuffer
   ------------------------------------------------------------------ */
.routing-buffer-field{
    grid-column:1/-1;
    padding:12px;
    border:1px solid #c9dce7;
    border-radius:12px;
    background:#f7fbfd;
}
.routing-buffer-head{
    margin-bottom:10px;
}
.routing-buffer-toggle{
    display:flex;
    align-items:flex-start;
    gap:8px;
    cursor:pointer;
}
.routing-buffer-toggle input{
    width:auto;
    margin:2px 0 0;
    accent-color:var(--blue);
}
.routing-buffer-toggle>span{
    display:grid;
    gap:2px;
}
.routing-buffer-toggle strong{
    color:var(--blue-dark);
    font-size:.82rem;
}
.routing-buffer-toggle small{
    color:var(--muted);
    font-size:.67rem;
    font-weight:500;
}
.routing-buffer-table{
    display:grid;
    width:min(520px,100%);
    overflow:hidden;
    border:1px solid var(--border);
    border-radius:10px;
    background:#fff;
}
.routing-buffer-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0;
    border-bottom:1px solid #e8eef2;
}
.routing-buffer-row:last-child{
    border-bottom:0;
}
.routing-buffer-header{
    background:#f1f6f9;
}
.routing-buffer-header>span{
    padding:7px 9px;
    color:#637987;
    font-size:.63rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.025em;
}
.routing-buffer-row label{
    display:flex;
    align-items:center;
    gap:5px;
    padding:6px 8px;
}
.routing-buffer-row label+label{
    border-left:1px solid #e8eef2;
}
.routing-buffer-row input{
    min-width:0;
    width:90px;
    padding:6px 7px;
    font-size:.72rem;
}
.routing-buffer-row label>span{
    color:var(--muted);
    font-size:.65rem;
    font-weight:800;
}
.routing-buffer-help{
    display:block;
    margin-top:7px;
    color:var(--muted);
    font-size:.64rem;
    line-height:1.4;
}
@media(max-width:760px){
    .routing-buffer-table{
        width:100%;
    }
}


/* ------------------------------------------------------------------
   0.7.9 – Unsichtbare Benutzer
   ------------------------------------------------------------------ */
.hidden-user-admin-badge{
    display:inline-flex;
    margin-left:5px;
    padding:2px 6px;
    border-radius:999px;
    background:#edf1f4;
    color:#637784;
    font-size:.58rem;
    font-weight:900;
    vertical-align:middle;
}
.visibility-toggle,
.user-visibility-switch-row{
    display:inline-flex;
    align-items:center;
    gap:7px;
}
.visibility-toggle input,
.user-visibility-switch-row>input{
    width:auto;
    margin:0;
    accent-color:var(--blue);
}
.visibility-toggle>span{
    font-size:.68rem;
    font-weight:850;
    white-space:nowrap;
}
.user-visibility-create-toggle{
    display:grid;
    gap:5px;
}
.user-visibility-create-toggle>span:first-child,
.mobile-visibility-control>span:first-child{
    color:var(--text);
    font-size:.7rem;
    font-weight:850;
}
.user-visibility-switch-row{
    align-items:flex-start;
    padding:9px 10px;
    border:1px solid var(--border);
    border-radius:9px;
    background:#f8fbfd;
}
.user-visibility-switch-row>input{
    margin-top:2px;
}
.user-visibility-switch-row>span{
    display:grid;
    gap:2px;
}
.user-visibility-switch-row strong{
    color:var(--blue-dark);
    font-size:.74rem;
}
.user-visibility-switch-row small{
    color:var(--muted);
    font-size:.63rem;
    line-height:1.35;
}
.mobile-visibility-control{
    display:grid;
    gap:5px;
}
.mobile-visibility-control .visibility-toggle{
    width:max-content;
    padding:6px 8px;
    border:1px solid var(--border);
    border-radius:999px;
    background:#f8fbfd;
}
@media(max-width:1000px){
    .desktop-user-table .visibility-toggle>span{display:none}
}


/* ------------------------------------------------------------------
   0.7.10 – Sichtbarkeit ausschließlich als nachträgliche Admin-Einstellung
   ------------------------------------------------------------------ */
.admin-only-label{
    display:inline-flex;
    margin-left:4px;
    padding:2px 5px;
    border-radius:999px;
    background:#eef3f6;
    color:#6b7d89;
    font-size:.52rem;
    font-weight:850;
    text-transform:none;
    letter-spacing:0;
    vertical-align:middle;
}


/* ------------------------------------------------------------------
   0.7.12 – administrierbare Passwortregel
   ------------------------------------------------------------------ */
.security-settings-card{
    border-top:4px solid var(--blue);
}
.security-policy-badge{
    display:inline-flex;
    padding:5px 8px;
    border-radius:999px;
    background:var(--blue-soft);
    color:var(--blue-dark);
    font-size:.67rem;
    font-weight:900;
    white-space:nowrap;
}
.security-policy-form{
    display:flex;
    align-items:end;
    gap:14px;
}
.security-policy-form>label{
    display:grid;
    gap:5px;
    flex:1 1 auto;
    max-width:620px;
}
.security-policy-form>label>span{
    color:var(--text);
    font-size:.72rem;
    font-weight:850;
}
.security-policy-form>label>strong{
    display:flex;
    align-items:center;
    gap:7px;
    color:var(--blue-dark);
}
.security-policy-form input{
    width:110px;
}
.security-policy-form small{
    color:var(--muted);
    font-size:.65rem;
    line-height:1.4;
    font-weight:500;
}
@media(max-width:760px){
    .security-policy-form{
        align-items:stretch;
        flex-direction:column;
    }
    .security-policy-form>label{
        max-width:none;
    }
    .security-policy-form .btn{
        width:100%;
    }
}


/* ------------------------------------------------------------------
   0.7.12 – Layoutkorrektur Passwortregeln
   ------------------------------------------------------------------ */
.security-policy-form{
    display:grid;
    grid-template-columns:minmax(0,620px) auto;
    align-items:center;
    justify-content:start;
    gap:18px;
    padding:18px 20px 20px;
    background:#fff;
}
.security-policy-form>label{
    max-width:none;
    min-width:0;
}
.security-policy-form .btn{
    width:max-content;
    align-self:center;
}
@media(max-width:760px){
    .security-policy-form{
        grid-template-columns:1fr;
        align-items:stretch;
        gap:14px;
        padding:16px 18px 18px;
    }
    .security-policy-form .btn{
        width:100%;
    }
}

/* ------------------------------------------------------------------
   0.7.13 – Zuständige Anschreiber-Mannschaft in Spielübersichten
   ------------------------------------------------------------------ */
.availability-cell.writer-responsible-team{
    position:relative;
    z-index:1;
    border-color:var(--responsible) !important;
    box-shadow:inset 0 0 0 3px var(--responsible),0 0 0 1px rgba(123,44,191,.16) !important;
}
.availability-cell.writer-responsible-team strong{
    display:block;
}
.writer-responsibility-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:max-content;
    max-width:100%;
    margin-top:4px;
    padding:2px 6px;
    border-radius:999px;
    background:var(--responsible);
    color:#fff;
    font-size:.59rem;
    font-weight:900;
    line-height:1.25;
    letter-spacing:.01em;
    white-space:nowrap;
}
.writers-responsible-summary{
    display:inline-flex;
    align-items:center;
    gap:4px;
    width:max-content;
    max-width:100%;
    margin-bottom:5px;
    padding:4px 7px;
    border:1px solid #d6b8ee;
    border-radius:999px;
    background:var(--responsible-soft);
    color:var(--responsible-dark);
    font-size:.68rem;
    font-weight:850;
    white-space:nowrap;
}
.writers-responsible-summary strong{
    color:inherit;
}
.mobile-status.writer-responsible-team{
    position:relative;
    border:3px solid var(--responsible) !important;
    box-shadow:0 0 0 2px rgba(123,44,191,.12);
}
.mobile-status-value{
    display:grid;
    justify-items:end;
    min-width:0;
}
.mobile-status .writer-responsibility-badge{
    margin-top:2px;
    font-size:.56rem;
}
.mobile-writers-head{
    flex-wrap:wrap;
}
.mobile-writers-head .writers-responsible-summary{
    margin:0;
}


/* ------------------------------------------------------------------
   0.7.18 – Zuständigkeitsübersichten ohne wiederholte Meta-Hinweise
   ------------------------------------------------------------------ */

/* ------------------------------------------------------------------
   0.7.18 – eigene Heimspiele + Zuständigkeiten je Mannschaft
   ------------------------------------------------------------------ */
.team-games-section-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:15px 18px 9px;
    border-bottom:1px solid #edf2f5;
}
.team-games-section-head h2{
    margin:0;
    color:var(--blue-dark);
    font-size:1.12rem;
}
.team-games-section-head>span{
    display:grid;
    place-items:center;
    min-width:31px;
    height:31px;
    padding:0 9px;
    border-radius:999px;
    background:var(--blue-soft);
    color:var(--blue-dark);
    font-size:.82rem;
    font-weight:900;
}
.responsibility-games-card{
    margin-top:18px;
}
.responsibility-section-head{
    border-top:4px solid var(--responsible);
    padding-top:11px;
}
.responsibility-section-head>span{
    background:var(--responsible-soft);
    color:var(--responsible-dark);
}
.team-games-empty{
    margin:10px 14px 14px;
}
.responsibility-games-table{
    min-width:1220px;
}
.responsibility-game-term{
    min-width:245px;
}
.responsibility-game-match{
    display:flex !important;
    align-items:center;
    gap:6px;
    min-width:0;
}
.responsibility-target-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    width:max-content;
    min-width:31px;
    padding:2px 6px;
    border-radius:7px;
    background:var(--blue-dark);
    color:#fff !important;
    font-size:.68rem;
    font-weight:900;
    line-height:1.3;
}
.availability-cell.availability-playing{
    background:var(--blue-soft);
    color:var(--blue-dark);
    border-color:#9fcbe3;
    box-shadow:inset 0 0 0 1px #9fcbe3;
}
.availability-cell.availability-playing strong{
    font-size:.68rem;
}
.mobile-status.availability-playing{
    background:var(--blue-soft);
    color:var(--blue-dark);
    border-color:#9fcbe3;
}
.responsibility-mobile-card .mobile-game-head h3{
    display:flex;
    align-items:flex-start;
    gap:6px;
    line-height:1.3;
}
.responsibility-mobile-card .mobile-game-head h3 .responsibility-target-badge{
    margin-top:1px;
    font-size:.62rem;
}

@media(max-width:760px){
    .team-games-section-head{
        padding:12px 12px 8px;
    }
    .team-games-section-head h2{
        font-size:1.02rem;
    }
    .responsibility-games-card{
        margin-top:14px;
    }
}

/* 0.7.18 – harte Warnung bei nicht möglicher Anschreiber-Zuständigkeit */
.distribution-game-row.no-auto-team,
.distribution-game-row.invalid-assignment{
    border-color:#d95b5b;
    border-left:5px solid #c93b3b;
    background:#fff7f7;
    box-shadow:0 0 0 1px rgba(201,59,59,.08);
}
.distribution-no-team-badge{
    display:inline-flex;
    width:max-content;
    max-width:100%;
    padding:4px 8px;
    border-radius:999px;
    background:var(--danger-bg);
    color:var(--danger);
    font-size:.64rem;
    font-weight:900;
}

/* ------------------------------------------------------------------
   0.7.18 – Mannschaftstabellen ohne horizontales Scrollen
   ------------------------------------------------------------------ */
@media(min-width:1101px){
    .team-games-card .desktop-game-table{
        overflow:hidden;
    }
    .team-games-card .games-table{
        width:100%;
        min-width:0 !important;
        table-layout:fixed;
        padding-left:5px;
        padding-right:5px;
    }
    .team-games-card .games-table th{
        padding:5px 4px;
        font-size:.66rem;
    }
    .team-games-card .games-table td{
        min-width:0;
        padding:6px 4px;
        font-size:.72rem;
        overflow-wrap:anywhere;
    }
    .team-games-card .games-table th:first-child{
        width:220px;
    }
    .team-games-card .games-table th:nth-child(2){
        width:165px;
    }
    .team-games-card .games-table th:nth-last-child(2){
        width:125px;
    }
    .team-games-card .games-table th:last-child{
        width:105px;
    }
    .team-games-card .game-term-cell,
    .team-games-card .writers-cell,
    .team-games-card .availability-cell{
        min-width:0;
    }
    .team-games-card .game-term-cell strong{
        font-size:.79rem;
    }
    .team-games-card .venue-cell{
        max-width:none;
        line-height:1.25;
    }
    .team-games-card .availability-cell strong{
        font-size:.68rem;
    }
    .team-games-card .writer-responsibility-badge{
        padding:2px 5px;
        font-size:.53rem;
    }
    .team-games-card .writers-responsible-summary{
        max-width:100%;
        padding:3px 5px;
        font-size:.60rem;
        white-space:normal;
    }
    .team-games-card .compact-volunteers{
        max-width:100%;
    }
    .team-games-card .person-chip{
        font-size:.61rem;
    }
    .team-games-card .action-cell .btn{
        max-width:100%;
        padding:7px 8px;
        font-size:.68rem;
    }
}

@media(min-width:1101px) and (max-width:1450px){
    .team-games-card .games-table th:first-child{
        width:190px;
    }
    .team-games-card .games-table th:nth-child(2){
        width:135px;
    }
    .team-games-card .games-table th:nth-last-child(2){
        width:105px;
    }
    .team-games-card .games-table th:last-child{
        width:90px;
    }
    .team-games-card .games-table th{
        padding-left:3px;
        padding-right:3px;
        font-size:.61rem;
    }
    .team-games-card .games-table td{
        padding-left:3px;
        padding-right:3px;
        font-size:.67rem;
    }
    .team-games-card .game-term-cell strong{
        font-size:.74rem;
    }
    .team-games-card .writer-responsibility-badge{
        font-size:.49rem;
        padding-left:4px;
        padding-right:4px;
    }
    .team-games-card .action-cell .btn{
        padding:6px 6px;
        font-size:.63rem;
    }
}

/* Auf schmaleren Tablets/kleinen Notebook-Fenstern wird rechtzeitig auf die
   bereits vorhandene Kartenansicht gewechselt. Auch dort gibt es daher keinen
   horizontalen Tabellen-Scrollbalken. */
@media(min-width:761px) and (max-width:1100px){
    .team-games-card .desktop-game-table{
        display:none;
    }
    .team-games-card .mobile-game-list{
        display:grid;
        gap:8px;
        padding:8px;
    }
    .team-games-card .mobile-status-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

/* 0.7.26 – direkte Zeitrelationen und vollständige Sperrfenster */
.schedule-relation-badge,
.manual-only-badge{
    display:inline-flex;
    align-items:center;
    padding:2px 6px;
    border-radius:999px;
    font-size:.57rem;
    font-weight:900;
    line-height:1.25;
    white-space:nowrap;
}
.schedule-relation-badge.before,
.schedule-relation-badge.after{
    background:#e3f2fd;
    color:#0b6795;
    border:1px solid #b9ddf1;
}
.schedule-relation-badge.parallel{
    background:#fff0df;
    color:#a94f00;
    border:1px solid #ffd09a;
}
.manual-only-badge{
    background:#f2edf9;
    color:#6f3ea0;
    border:1px solid #d8c5ea;
}
.blocking-window-info{
    display:block;
    margin-top:1px;
    color:#365f77;
}
.blocking-window-info.is-blocking{
    color:#a52d2d;
    font-weight:750;
}

/* 0.7.26 – aufgeweichte Sperrfenster bei Vor-/Folgespielen in derselben Halle */
.softened-window-note{
    display:block;
    margin-top:2px;
    font-size:.78rem;
    line-height:1.35;
    color:#567085;
}

/* 0.7.26 – Reset-Auswahl vor der automatischen Neuverteilung */
.redistribute-dialog{
    border:0;
    padding:0;
    width:min(94vw,760px);
    max-width:760px;
    background:transparent;
}
.redistribute-dialog::backdrop{
    background:rgba(8,25,38,.66);
}
.redistribute-dialog-card{
    background:#fff;
    border-radius:18px;
    padding:22px;
    box-shadow:0 26px 80px rgba(0,0,0,.28);
}
.redistribute-dialog-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
}
.redistribute-dialog-head h2{
    margin:3px 0 0;
}
.redistribute-dialog-intro{
    margin:14px 0 16px;
    color:var(--muted);
    line-height:1.5;
}
.redistribute-choice-list{
    display:grid;
    gap:10px;
}
.redistribute-choice{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:12px;
    align-items:flex-start;
    padding:14px;
    border:1px solid var(--border);
    border-radius:14px;
    background:#fff;
    cursor:pointer;
}
.redistribute-choice:hover{
    border-color:#9fc5da;
    background:#f8fcfe;
}
.redistribute-choice:has(input:checked){
    border-color:#2b86b5;
    box-shadow:0 0 0 2px rgba(43,134,181,.12);
    background:#f4fbff;
}
.redistribute-choice-emphasis:has(input:checked){
    border-color:#c06a12;
    box-shadow:0 0 0 2px rgba(192,106,18,.12);
    background:#fff9f1;
}
.redistribute-choice input{
    margin-top:4px;
    width:18px;
    height:18px;
}
.redistribute-choice span{
    display:grid;
    gap:4px;
}
.redistribute-choice strong{
    color:var(--blue-dark);
}
.redistribute-choice small{
    color:var(--muted);
    line-height:1.4;
}
.redistribute-dialog-actions{
    display:flex;
    justify-content:flex-end;
    gap:10px;
    margin-top:18px;
}
@media(max-width:700px){
    .redistribute-dialog-card{
        padding:16px;
    }
    .redistribute-dialog-actions{
        flex-direction:column-reverse;
    }
    .redistribute-dialog-actions .btn{
        width:100%;
    }
}

/* 0.7.26 – sichtbare feste manuelle Zuständigkeiten im Verfügbarkeitsdialog */
.manual-responsibility-lock-badge{
    display:inline-flex;
    align-items:center;
    padding:2px 7px;
    border-radius:999px;
    background:#fdecec;
    color:#a62a2a;
    border:1px solid #f3c4c4;
    font-size:.57rem;
    font-weight:900;
    line-height:1.25;
    white-space:nowrap;
}
.manual-responsibility-lock-list{
    display:grid;
    gap:7px;
    margin-top:9px;
    padding:9px 10px;
    border:1px solid #efc0c0;
    border-radius:11px;
    background:#fff7f7;
}
.manual-responsibility-lock-item{
    display:grid;
    gap:2px;
    color:#7f2727;
}
.manual-responsibility-lock-item small,
.manual-responsibility-lock-note{
    color:#8e5555;
    line-height:1.35;
}

/* 0.7.26 – tatsächlich bereits belegte Anschreiber-Mannschaften */
.distribution-detail-team-card.state-occupied{
    border-left-color:#7f2bd0;
    background:#fcf9ff;
}
.automatic-responsibility-lock-badge{
    display:inline-flex;
    align-items:center;
    padding:2px 7px;
    border-radius:999px;
    background:#f1e8ff;
    color:#6f20b6;
    border:1px solid #d9c0f4;
    font-size:.57rem;
    font-weight:900;
    line-height:1.25;
    white-space:nowrap;
}
.manual-responsibility-lock-item.automatic{
    color:#65259c;
}
.manual-responsibility-lock-item.automatic small{
    color:#76508e;
}

/* ------------------------------------------------------------------
   0.7.26 – Kommende Zuständigkeiten im einheitlichen Tabellenlayout
   ------------------------------------------------------------------ */
.distribution-upcoming-card{
    margin-top:18px;
}
.distribution-upcoming-head{
    border-top:4px solid var(--responsible);
    padding-top:11px;
}
.distribution-upcoming-head>span{
    background:var(--responsible-soft);
    color:var(--responsible-dark);
}
.distribution-overview-table{
    min-width:0;
}
.distribution-table-row{
    cursor:pointer;
}
.distribution-table-row td{
    transition:border-color .15s,box-shadow .15s;
}
.distribution-table-row:hover td{
    border-top-color:#9fc6da;
    border-bottom-color:#9fc6da;
}
.distribution-table-row:focus-visible{
    outline:3px solid rgba(27,116,165,.18);
    outline-offset:2px;
}
.distribution-table-row.no-auto-team td,
.distribution-table-row.invalid-assignment td{
    border-top-color:#d95b5b;
    border-bottom-color:#d95b5b;
}
.distribution-table-row.no-auto-team td:first-child,
.distribution-table-row.invalid-assignment td:first-child{
    border-left:5px solid #c93b3b;
    background:#fff7f7;
}
.distribution-hard-alert{
    background:var(--danger-bg);
    color:var(--danger)!important;
}
.distribution-mobile-team-code{
    display:none;
}
.distribution-table-writers .writers-summary{
    gap:4px;
}
.distribution-admin-form-table{
    grid-template-columns:1fr;
    gap:4px;
    width:100%;
}
.distribution-admin-form-table select{
    width:100%;
    min-width:0;
    padding:5px 6px;
    font-size:.66rem;
}
.distribution-admin-form-table .btn{
    width:100%;
    padding:6px 6px;
    font-size:.64rem;
}

@media(min-width:1101px){
    .distribution-upcoming-card .desktop-game-table{
        overflow:hidden;
    }
    .distribution-upcoming-card .distribution-overview-table{
        width:100%;
        table-layout:fixed;
        padding-left:5px;
        padding-right:5px;
    }
    .distribution-upcoming-card .distribution-overview-table th{
        padding:5px 3px;
        font-size:.62rem;
    }
    .distribution-upcoming-card .distribution-overview-table td{
        min-width:0;
        padding:6px 3px;
        font-size:.68rem;
        overflow-wrap:anywhere;
    }
    .distribution-upcoming-card .distribution-overview-table th:first-child{
        width:205px;
    }
    .distribution-upcoming-card .distribution-overview-table th:nth-child(2){
        width:145px;
    }
    .distribution-upcoming-card .distribution-overview-table th:nth-last-child(2){
        width:125px;
    }
    .distribution-upcoming-card .distribution-overview-table th:last-child{
        width:120px;
    }
    .distribution-upcoming-card .distribution-overview-table.without-admin th:nth-last-child(2){
        width:auto;
    }
    .distribution-upcoming-card .distribution-overview-table.without-admin th:last-child{
        width:130px;
    }
    .distribution-upcoming-card .game-term-cell strong{
        font-size:.75rem;
    }
    .distribution-upcoming-card .responsibility-game-match{
        font-size:.68rem;
    }
    .distribution-upcoming-card .responsibility-target-badge{
        min-width:28px;
        padding:2px 5px;
        font-size:.60rem;
    }
    .distribution-upcoming-card .venue-cell{
        line-height:1.25;
    }
    .distribution-upcoming-card .availability-cell{
        min-width:0;
    }
    .distribution-upcoming-card .availability-cell strong{
        font-size:.64rem;
    }
    .distribution-upcoming-card .writer-responsibility-badge{
        padding:2px 4px;
        font-size:.48rem;
    }
    .distribution-upcoming-card .writers-responsible-summary{
        max-width:100%;
        padding:3px 5px;
        font-size:.57rem;
        white-space:normal;
    }
    .distribution-upcoming-card .writer-missing-badge,
    .distribution-upcoming-card .writer-complete-badge{
        font-size:.59rem;
    }
    .distribution-upcoming-card .person-chip{
        font-size:.58rem;
    }
}

@media(min-width:1101px) and (max-width:1450px){
    .distribution-upcoming-card .distribution-overview-table th:first-child{
        width:180px;
    }
    .distribution-upcoming-card .distribution-overview-table th:nth-child(2){
        width:120px;
    }
    .distribution-upcoming-card .distribution-overview-table th:nth-last-child(2){
        width:105px;
    }
    .distribution-upcoming-card .distribution-overview-table th:last-child{
        width:105px;
    }
    .distribution-upcoming-card .distribution-overview-table th{
        font-size:.57rem;
        padding-left:2px;
        padding-right:2px;
    }
    .distribution-upcoming-card .distribution-overview-table td{
        padding-left:2px;
        padding-right:2px;
        font-size:.63rem;
    }
    .distribution-upcoming-card .game-term-cell strong{
        font-size:.69rem;
    }
    .distribution-upcoming-card .availability-cell strong{
        font-size:.59rem;
    }
    .distribution-admin-form-table select,
    .distribution-admin-form-table .btn{
        font-size:.58rem;
    }
}

/* Unterhalb der Desktopbreite wird dieselbe Tabellenzeile als kompakte Karte
   dargestellt. Es bleibt dieselbe klickbare Zeile und damit dasselbe
   Verfügbarkeits-Overlay – ohne horizontalen Scrollbalken. */
@media(max-width:1100px){
    .distribution-upcoming-card .desktop-game-table{
        display:block!important;
        overflow:visible!important;
    }
    .distribution-upcoming-card .distribution-overview-table{
        display:block;
        width:100%;
        min-width:0!important;
        padding:8px;
        border-spacing:0;
    }
    .distribution-upcoming-card .distribution-overview-table thead{
        display:none;
    }
    .distribution-upcoming-card .distribution-overview-table tbody{
        display:grid;
        gap:9px;
    }
    .distribution-upcoming-card .distribution-overview-table tr{
        display:grid;
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:6px;
        padding:8px;
        border:1px solid var(--border);
        border-radius:12px;
        background:#fff;
    }
    .distribution-upcoming-card .distribution-overview-table tr.no-auto-team,
    .distribution-upcoming-card .distribution-overview-table tr.invalid-assignment{
        border-color:#d95b5b;
        border-left:5px solid #c93b3b;
        background:#fff7f7;
    }
    .distribution-upcoming-card .distribution-overview-table td{
        min-width:0;
        padding:7px 8px;
        border:1px solid var(--border);
        border-radius:9px!important;
        font-size:.74rem;
    }
    .distribution-upcoming-card .game-term-cell,
    .distribution-upcoming-card .venue-cell,
    .distribution-upcoming-card .distribution-table-writers,
    .distribution-upcoming-card .distribution-table-action{
        grid-column:1/-1;
    }
    .distribution-upcoming-card .game-term-cell{
        background:#f8fbfd;
    }
    .distribution-upcoming-card .venue-cell{
        color:var(--muted);
    }
    .distribution-upcoming-card .venue-cell::before{
        content:'Ort: ';
        color:var(--blue-dark);
        font-weight:850;
    }
    .distribution-upcoming-card .distribution-table-team-cell{
        display:grid;
        align-content:center;
        justify-items:center;
        gap:3px;
        min-height:64px;
        text-align:center;
    }
    .distribution-mobile-team-code{
        display:block;
        color:var(--blue-dark);
        font-size:.63rem;
        font-weight:900;
    }
    .distribution-table-writers::before{
        content:'Anschreiber';
        display:block;
        margin-bottom:4px;
        color:var(--blue-dark);
        font-size:.65rem;
        font-weight:900;
        text-transform:uppercase;
        letter-spacing:.03em;
    }
    .distribution-table-action::before{
        content:'Zuständigkeit ändern';
        display:block;
        margin-bottom:5px;
        color:var(--blue-dark);
        font-size:.65rem;
        font-weight:900;
        text-transform:uppercase;
        letter-spacing:.03em;
    }
    .distribution-admin-form-table{
        grid-template-columns:minmax(0,1fr) auto;
        align-items:center;
    }
    .distribution-admin-form-table .btn{
        width:auto;
        min-width:100px;
    }
}

@media(max-width:760px){
    .distribution-upcoming-card .distribution-overview-table tr{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .distribution-upcoming-card .distribution-overview-table{
        padding:6px;
    }
    .distribution-upcoming-card .distribution-overview-table tr{
        padding:6px;
    }
    .distribution-admin-form-table{
        grid-template-columns:1fr;
    }
    .distribution-admin-form-table .btn{
        width:100%;
    }
}


/* 0.7.26 – administrierbarer gelber Warnbereich an Sperrfenstern */
.near-block-badge{
    display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;
    background:var(--warning-bg);color:var(--warning);border:1px solid #e2c471;
    font-size:.57rem;font-weight:900;line-height:1.25;white-space:nowrap;
}
.distribution-detail-team-card.state-away_possible{background:#fffaf0}
.distribution-detail-reason{margin:7px 0 0;color:#8a6200;font-size:.68rem;font-weight:700}

/* ------------------------------------------------------------------
   0.7.26 – Smartphone-Härtung: Formulare dürfen Karten nie verbreitern
   ------------------------------------------------------------------ */
/*
 * .action-cell form war absichtlich als block gesetzt. Wegen der höheren
 * Selektorspezifität hat diese alte Regel aber das Grid der Admin-Zuweisung
 * überschrieben. Ergebnis auf Smartphones: Select = 100 %, der Speichern-
 * Button blieb in derselben Inline-Zeile und ragte rechts aus der Karte.
 */
.distribution-table-action form.distribution-admin-form-table{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:6px;
    width:100%;
    min-width:0;
    max-width:100%;
    margin:0;
}
.distribution-table-action form.distribution-admin-form-table > *{
    min-width:0;
    max-width:100%;
}
.distribution-table-action form.distribution-admin-form-table select{
    width:100%;
}
.distribution-table-action form.distribution-admin-form-table .btn{
    max-width:100%;
    white-space:normal;
    text-align:center;
}

@media(max-width:1100px){
    .distribution-upcoming-card,
    .distribution-upcoming-card .desktop-game-table,
    .distribution-upcoming-card .distribution-overview-table,
    .distribution-upcoming-card .distribution-overview-table tbody,
    .distribution-upcoming-card .distribution-overview-table tr,
    .distribution-upcoming-card .distribution-overview-table td{
        min-width:0;
        max-width:100%;
    }
    .distribution-upcoming-card .distribution-overview-table tr{
        width:100%;
    }
    .distribution-upcoming-card .distribution-overview-table td{
        white-space:normal;
    }
    .distribution-upcoming-card .distribution-table-action{
        overflow:hidden;
    }
}

@media(max-width:760px){
    html,
    body{
        max-width:100%;
        overflow-x:clip;
    }

    /* Mobile Grid/Flex-Kinder dürfen nie über ihre Karte hinauswachsen. */
    .container,
    .card,
    .section-card,
    .team-games-card,
    .mobile-game-card,
    .mobile-game-head,
    .mobile-status-grid,
    .mobile-writers,
    .mobile-action,
    .distribution-upcoming-card,
    .distribution-upcoming-card .distribution-overview-table,
    .distribution-upcoming-card .distribution-overview-table tbody,
    .distribution-upcoming-card .distribution-overview-table tr,
    .distribution-upcoming-card .distribution-overview-table td,
    .distribution-table-action,
    .distribution-admin-form-table,
    .form-grid,
    .settings-grid,
    .admin-user-list,
    .admin-user-card,
    .user-create-grid,
    .registration-admin-grid,
    .availability-settings-grid{
        min-width:0;
        max-width:100%;
    }

    .action-cell{
        white-space:normal;
    }

    form,
    fieldset,
    label,
    input,
    select,
    textarea,
    button,
    .btn{
        min-width:0;
        max-width:100%;
    }

    .distribution-table-action form.distribution-admin-form-table{
        display:grid;
        grid-template-columns:minmax(0,1fr);
        width:100%;
        gap:7px;
    }
    .distribution-table-action form.distribution-admin-form-table select,
    .distribution-table-action form.distribution-admin-form-table .btn{
        display:flex;
        width:100%;
        max-width:100%;
    }
    .distribution-table-action form.distribution-admin-form-table select{
        display:block;
    }

    .mobile-action,
    .mobile-action form,
    .mobile-action .btn{
        width:100%;
    }
    .mobile-action .btn,
    .confirm-dialog-actions .btn,
    .user-create-actions .btn,
    .settings-form-footer .btn,
    .admin-team-form-footer .btn,
    .registration-link-button-row .btn{
        white-space:normal;
        overflow-wrap:anywhere;
    }
}

@media(max-width:430px){
    .topbar{
        padding-left:10px;
        padding-right:10px;
        gap:8px;
    }
    .hamburger{
        flex:0 0 auto;
        width:40px;
        height:40px;
    }
    .topbar-brand{
        min-width:0;
        max-width:calc(100% - 48px);
        gap:7px;
    }
    .topbar-brand img{
        flex:0 0 auto;
        width:38px;
        height:38px;
    }
    .topbar-brand span{
        min-width:0;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
        font-size:.95rem;
    }
    .section-head > div,
    .hero > div{
        min-width:0;
        max-width:100%;
    }
    .hero h1,
    .section-head h2{
        overflow-wrap:anywhere;
    }
}

/* ------------------------------------------------------------------
   0.7.31 – administrierbare Mannschaftsprioritäten der Automatik
   ------------------------------------------------------------------ */
.distribution-priority-card{
    margin-bottom:16px;
    overflow:hidden;
    border-top:3px solid var(--orange);
}
.distribution-priority-card>summary,
.distribution-priority-team>summary{
    list-style:none;
    cursor:pointer;
}
.distribution-priority-card>summary::-webkit-details-marker,
.distribution-priority-team>summary::-webkit-details-marker{
    display:none;
}
.distribution-priority-summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:15px 17px;
}
.distribution-priority-summary>span:first-child{
    display:grid;
    gap:3px;
    min-width:0;
}
.distribution-priority-summary strong{
    color:var(--blue-dark);
    font-size:1rem;
}
.distribution-priority-summary small{
    color:var(--muted);
    font-size:.76rem;
    font-weight:550;
    line-height:1.4;
}
.distribution-priority-card[open]>.distribution-priority-summary{
    border-bottom:1px solid var(--border);
    background:#fbfdfe;
}
.distribution-priority-card[open]>.distribution-priority-summary .details-chevron,
.distribution-priority-team[open]>summary .details-chevron{
    transform:rotate(180deg);
}
.distribution-priority-form{
    display:grid;
    gap:14px;
    padding:14px 16px 16px;
}
.distribution-priority-team-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.distribution-priority-team{
    min-width:0;
    border:1px solid var(--border);
    border-radius:12px;
    background:#fff;
    overflow:hidden;
}
.distribution-priority-team>summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:11px 12px;
}
.distribution-priority-team[open]>summary{
    border-bottom:1px solid var(--border);
    background:#f8fbfd;
}
.distribution-priority-team-title{
    display:flex;
    align-items:center;
    gap:9px;
    min-width:0;
}
.distribution-priority-team-title>span:last-child{
    display:grid;
    gap:2px;
    min-width:0;
}
.distribution-priority-team-title strong{
    color:var(--blue-dark);
    font-size:.82rem;
}
.distribution-priority-team-title small{
    color:var(--muted);
    font-size:.68rem;
    line-height:1.3;
    overflow-wrap:anywhere;
}
.distribution-priority-slots{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    padding:11px 12px 12px;
}
.distribution-priority-slot{
    display:grid;
    gap:4px;
    min-width:0;
}
.distribution-priority-slot>span{
    color:var(--blue-dark);
    font-size:.68rem;
    font-weight:850;
}
.distribution-priority-slot select{
    width:100%;
    min-width:0;
    font-size:.76rem;
}
.distribution-priority-empty{
    margin:0;
    padding:11px 12px 12px;
    color:var(--muted);
    font-size:.74rem;
}
.distribution-priority-actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding-top:2px;
}
.distribution-priority-actions p{
    margin:0;
    max-width:820px;
    color:var(--muted);
    font-size:.72rem;
    line-height:1.45;
}
.distribution-priority-actions .btn{
    flex:0 0 auto;
}

@media(max-width:980px){
    .distribution-priority-team-list{
        grid-template-columns:1fr;
    }
}
@media(max-width:620px){
    .distribution-priority-summary{
        padding:13px 14px;
    }
    .distribution-priority-form{
        padding:11px 12px 13px;
    }
    .distribution-priority-slots{
        grid-template-columns:1fr;
    }
    .distribution-priority-actions{
        align-items:stretch;
        flex-direction:column;
    }
    .distribution-priority-actions .btn{
        width:100%;
    }
}

/* =========================================================
   0.7.31 – Mobile Benutzerverwaltung: Mannschaftsfelder nebeneinander
   ========================================================= */
@media(max-width:760px){
    /* Rolle und Sichtbarkeit bleiben in der ersten Zeile; die
       Mannschaftsauswahl nutzt darunter die komplette Kartenbreite. */
    .mobile-user-controls > .mobile-team-checks{
        grid-column:1 / -1;
        width:100%;
        display:grid;
        grid-template-columns:repeat(auto-fit,minmax(66px,1fr));
        gap:6px;
        align-items:stretch;
    }
    .mobile-user-controls > .mobile-team-checks label,
    .mobile-user-controls > .mobile-team-checks .external-user-choice{
        width:100%;
        max-width:100%;
        min-width:0;
        justify-content:flex-start;
        margin:0;
    }
}

/* =========================================================
   0.7.31 – Dashboard: kompakte Mannschaftskarten auf Smartphones
   ========================================================= */
@media(max-width:760px){
    /* Auf dem Dashboard sind die Mannschaftskarten reine Sprungziele.
       Drei kompakte Spalten nutzen die Smartphone-Breite deutlich besser. */
    .dashboard-team-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:6px;
        margin-top:10px;
    }
    .dashboard-team-grid .team-tile{
        min-width:0;
        min-height:54px;
        padding:7px 6px;
        border-top-width:3px;
        border-radius:11px;
        display:flex;
        flex-direction:column;
        justify-content:center;
        box-shadow:0 4px 12px rgba(19,71,105,.07);
    }
    .dashboard-team-grid .team-tile strong{
        font-size:.88rem;
        line-height:1.05;
    }
    .dashboard-team-grid .team-tile span{
        margin-top:2px;
        font-size:.66rem;
        line-height:1.15;
    }
}
@media(max-width:330px){
    .dashboard-team-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

/* =========================================================
   0.7.31 – Benutzerverwaltung: geschützter Löschmodus
   ========================================================= */
.user-filter-bar{
    grid-template-columns:minmax(260px,1fr) minmax(180px,250px) auto auto;
}
.user-delete-mode-toggle{
    min-height:38px;
    white-space:nowrap;
    align-self:end;
}
.user-delete-mode-toggle.active{
    background:var(--danger);
    color:#fff;
}
.user-row-actions,
.mobile-user-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:6px;
}
.user-delete-action[hidden]{
    display:none!important;
}
.user-delete-action:disabled{
    opacity:.48;
    cursor:not-allowed;
}
.mobile-user-actions{
    width:100%;
}
.mobile-user-actions>.btn:first-child{
    flex:1 1 auto;
}
.confirm-dialog [data-confirm-dialog-ok].btn-danger{
    background:var(--danger);
    color:#fff;
}

@media(max-width:760px){
    .user-filter-bar{
        grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    }
    .user-delete-mode-toggle{
        grid-column:1;
        width:100%;
    }
    .user-filter-count{
        grid-column:2;
        min-height:38px;
        align-content:center;
    }
    .mobile-user-actions{
        display:grid;
        grid-template-columns:minmax(0,1fr) auto;
    }
}

@media(max-width:360px){
    .user-delete-mode-toggle{
        font-size:.72rem;
        padding-left:8px;
        padding-right:8px;
    }
    .mobile-user-actions{
        grid-template-columns:1fr 1fr;
    }
    .mobile-user-actions .btn{
        width:100%;
    }
}


/* 0.7.31 – mehrzeilige Folgenabschätzung beim Archivieren von Benutzern. */
.confirm-dialog [data-confirm-dialog-text]{
  white-space:pre-line;
}

/* =========================================================
   0.7.36 – Benutzerverwaltung: sortierbare Spalten
   ========================================================= */
.user-sort-mobile{
    display:none;
}
.sortable-user-header{
    white-space:nowrap;
}
.user-sort-button{
    appearance:none;
    -webkit-appearance:none;
    display:inline-flex;
    align-items:center;
    gap:5px;
    margin:0;
    padding:2px 0;
    border:0;
    background:transparent;
    color:inherit;
    font:inherit;
    font-weight:inherit;
    letter-spacing:inherit;
    text-transform:inherit;
    cursor:pointer;
}
.user-sort-button:hover,
.user-sort-button:focus-visible{
    color:var(--blue-dark);
}
.user-sort-button:focus-visible{
    outline:2px solid var(--blue);
    outline-offset:3px;
    border-radius:4px;
}
.user-sort-indicator{
    display:inline-grid;
    place-items:center;
    min-width:15px;
    height:15px;
    border-radius:999px;
    color:var(--muted);
    font-size:.72rem;
    line-height:1;
}
.sortable-user-header[aria-sort="ascending"] .user-sort-indicator,
.sortable-user-header[aria-sort="descending"] .user-sort-indicator{
    background:var(--blue-soft);
    color:var(--blue-dark);
    font-weight:900;
}

@media(max-width:760px){
    .user-sort-mobile{
        display:grid;
        min-width:0;
    }
    .user-sort-mobile select{
        min-width:0;
        width:100%;
    }
    .user-delete-mode-toggle{
        grid-column:auto;
    }
    .user-filter-count{
        grid-column:1/-1;
    }
}


.account-email-pending{
    display:grid;
    gap:4px;
    margin:10px 0 2px;
    padding:10px 12px;
    border:1px solid #d5e4ee;
    border-radius:12px;
    background:#f6fafc;
    color:var(--blue-dark);
}
.account-email-pending .mini-status{justify-self:start}
.account-email-pending > span:not(.mini-status){font-weight:800;overflow-wrap:anywhere}
.account-email-pending small{color:var(--muted);line-height:1.4}
.email-confirm-summary{
    display:grid;
    gap:8px;
    margin:14px 0;
}
.email-confirm-summary > div{
    display:grid;
    gap:2px;
    padding:10px 12px;
    border:1px solid #d9e5ec;
    border-radius:12px;
    background:#f7fafc;
}
.email-confirm-summary span{color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.email-confirm-summary strong{overflow-wrap:anywhere;color:var(--blue-dark)}

/* =========================================================
   0.7.36 – Nachrichtensystem und Mannschaftsverantwortliche
   ========================================================= */
.nav-unread-badge{
    display:inline-grid;
    place-items:center;
    min-width:22px;
    height:22px;
    margin-left:auto;
    padding:0 6px;
    border-radius:999px;
    background:var(--orange);
    color:#fff;
    font-size:.68rem;
    font-weight:900;
}
.message-overlay-dialog{
    width:min(780px,calc(100vw - 24px));
    max-height:min(86vh,900px);
    padding:0;
    border:0;
    border-radius:18px;
    box-shadow:0 24px 70px rgba(8,47,72,.28);
}
.message-overlay-dialog::backdrop{background:rgba(8,35,53,.58);backdrop-filter:blur(2px)}
.message-overlay-card{display:grid;max-height:86vh;background:#fff}
.message-overlay-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:18px 20px 14px;border-bottom:1px solid var(--border)}
.message-overlay-head h2{margin:2px 0 0}
.message-overlay-list{display:grid;gap:10px;padding:14px 20px;overflow:auto}
.message-overlay-item,.message-card{display:grid;gap:9px;padding:13px 14px;border:1px solid var(--border);border-radius:13px;background:#fff}
.message-overlay-item{background:#f8fbfd}
.message-overlay-item-head,.message-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.message-overlay-item h3,.message-card h3{margin:0;color:var(--blue-dark);font-size:1rem}
.message-overlay-item time,.message-card time{color:var(--muted);font-size:.72rem;white-space:nowrap}
.message-overlay-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px 18px;border-top:1px solid var(--border);background:#fafcfd}
.message-overlay-actions form{margin:0}
.message-overlay-more{margin:0;color:var(--muted);font-size:.8rem}
.message-type-badge{display:inline-flex;width:max-content;padding:4px 8px;border-radius:999px;font-size:.68rem;font-weight:900;background:var(--blue-soft);color:var(--blue-dark)}
.message-type-writer_search{background:var(--orange-soft);color:var(--orange-dark)}
.message-type-schedule_change{background:var(--warning-bg);color:var(--warning)}
.message-body{color:#435f70;line-height:1.5;overflow-wrap:anywhere}
.message-list{display:grid;gap:10px}
.message-card.unread{border-color:#7eb9d8;box-shadow:inset 4px 0 0 var(--blue)}
.message-card header>div{display:grid;gap:6px}
.message-meta{display:flex;flex-wrap:wrap;gap:6px 12px;color:var(--muted);font-size:.74rem}
.message-compose-card details>summary{display:flex;justify-content:space-between;align-items:center}
.message-compose-plus{font-size:1.35rem;color:var(--blue-dark)}
.message-compose-form{padding-top:14px}
.message-compose-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.message-compose-grid .full{grid-column:1/-1}
.message-compose-grid textarea{resize:vertical;min-height:110px}
.message-compose-actions{display:flex;justify-content:flex-end;margin-top:12px}
.user-manager-select{min-width:125px;max-width:180px}
.team-manager-summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:5px;color:var(--muted);font-size:.76rem}
.team-manager-summary strong{color:var(--blue-dark)}

@media(max-width:760px){
    .message-compose-grid{grid-template-columns:1fr}
    .message-compose-grid .full{grid-column:auto}
    .message-overlay-dialog{width:calc(100vw - 14px);max-height:92vh;border-radius:15px}
    .message-overlay-card{max-height:92vh}
    .message-overlay-head,.message-overlay-list,.message-overlay-actions{padding-left:12px;padding-right:12px}
    .message-overlay-actions{display:grid;grid-template-columns:1fr 1fr}
    .message-overlay-actions form{grid-column:1/-1}
    .message-overlay-actions form .btn{width:100%}
    .message-overlay-actions>.btn{width:100%}
    .message-overlay-item-head,.message-card header{flex-direction:column}
    .user-manager-select{width:100%;max-width:none}
}
@media(max-width:760px){
    .mobile-manager-control{grid-column:1/-1}
}
