*{box-sizing:border-box}html{min-height:100%;background:#17191c}body{margin:0;color:#f7f8fa;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:radial-gradient(ellipse at 85% 0%,#243954 0%,#222427 39%,#17191c 100%);min-height:100vh}.shell{max-width:960px;margin:0 auto;padding:32px 24px}.brand{display:flex;gap:16px;align-items:center;padding:8px 0 48px}.logo{width:58px;height:58px;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 0 7px #70acff33)}.brand-name{font-size:clamp(18px,3.5vw,26px);letter-spacing:.06em}.tag{font-size:11px;letter-spacing:.27em;color:#70acff;margin-top:2px}.panel{background:#22262ce8;border:1px solid #3c4755;border-left:4px solid #70acff;border-radius:12px;padding:clamp(25px,5vw,54px);box-shadow:0 14px 55px #05070a90}.eyebrow{letter-spacing:.15em;color:#70acff;font-size:12px;font-weight:700}.panel h1{font-size:clamp(28px,5vw,46px);line-height:1.1;margin:18px 0}.panel p{max-width:670px;line-height:1.7;color:#d0d7e2}.rule{height:1px;background:#414a56;margin:26px 0}.mini{display:flex;gap:9px;align-items:center;color:#e9f0f9;font-size:14px}.dot{width:8px;height:8px;border-radius:100%;background:#70acff;box-shadow:0 0 10px #70acff}.panel .hint{font-size:13px;color:#9aa9ba;margin-top:25px}footer{padding-top:30px;color:#94a5b7;font-size:12px}@media(max-width:520px){.shell{padding:16px}.brand{padding:12px 0 35px}}/* 0.1.0.3 – additive Formulare und Navigation; 0.1.0.1a bleibt unverändert */
.band-nav{display:flex;gap:13px;align-items:center;flex-wrap:wrap;margin:-20px 0 25px;padding:12px 16px;border:1px solid #3c4755;border-radius:10px;background:#22262ce8;font-size:13px}.band-nav span{margin-right:auto;color:#d0d7e2}.band-nav a,.panel a{color:#83b8ff;text-decoration:none}.band-nav a:hover,.panel a:hover{text-decoration:underline}.band-nav form{margin:0}.band-form{display:grid;gap:17px;max-width:480px;margin-top:22px}.band-form label,.small-form label,.calendar-single-dialog #event-setlist-name{display:grid;gap:7px;color:#d0d7e2;font-size:14px;font-weight:600}input,select{width:100%;padding:12px 14px;background:#181d24;border:1px solid #667588;border-radius:8px;color:#fff;font:inherit}input:focus,select:focus{outline:2px solid #70acff;outline-offset:2px}button{background:#70acff;border:0;color:#102033;font-weight:700;border-radius:8px;padding:12px 18px;cursor:pointer;font:inherit}button:hover{filter:brightness(1.1)}button.minor{background:#344254;color:#f7f8fa;font-size:13px;padding:8px 12px}.alert{border-left:3px solid #ff6b6b;background:#46282f;color:#ffe2e2;padding:12px 14px;border-radius:6px;margin:15px 0}.notice{border-left:3px solid #70acff;background:#263749;padding:12px 14px;border-radius:6px;margin:15px 0}.user-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.user-card{border:1px solid #3c4755;border-radius:8px;padding:15px;display:grid;gap:10px}.user-card span{font-size:12px;color:#aebdce}.small-form{display:grid;gap:8px}.panel h2{font-size:22px}

/* 0.1.0.3a: irreversible deletion explicitly distinguished from deactivation */
.delete-panel{border:1px solid #75454b;background:#2d252b;border-radius:8px;padding:9px 11px}
.delete-panel summary{cursor:pointer;color:#ff9a9a;font-weight:600;font-size:13px}
.delete-panel[open]{padding-bottom:14px}
.delete-panel .small-form{margin-top:13px}
.delete-panel .delete-warning{font-size:13px;line-height:1.5;color:#ffc8c8;margin:0}
button.danger{background:#ff6b6b;color:#181b20;font-weight:700}
/* 0.1.0.4 – Monatlicher Bandkalender */
.calendar-nav{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:20px 0;padding:9px 4px}.calendar-nav strong{text-transform:capitalize;font-size:clamp(18px,3vw,24px)}.calendar-nav a{display:grid;place-items:center;width:40px;height:40px;background:#303e4e;border-radius:8px;text-decoration:none!important}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid #445161;border-top:1px solid #445161}.dow{text-align:center;color:#a7bad2;font-size:13px;padding:10px 2px;font-weight:700;background:#2a323d;border-right:1px solid #445161;border-bottom:1px solid #445161}.dow:nth-child(6){color:#70acff}.dow:nth-child(7){color:#ff9494}.day-cell{min-height:94px;padding:5px;background:#202a35;border-right:1px solid #445161;border-bottom:1px solid #445161;min-width:0}.day-cell.empty{background:#20252c}.day-cell.is-today{box-shadow:inset 0 0 0 2px #70acff}.day-number{font-size:13px;text-align:right;padding:3px;color:#e5eaf2}.event-chip{display:block;width:100%;border-radius:4px;padding:4px 5px;margin:3px 0;font-size:11px;line-height:1.3;white-space:normal;overflow-wrap:anywhere;text-align:left;color:#171b23;font-weight:700}.event-chip.probe{background:#35d8ff}.event-chip.auftritt{background:#f2b84b}.event-chip.sonstiges{background:#a9a0f2}.calendar-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:17px;font-size:12px}.type-probe{color:#35d8ff}.type-auftritt{color:#f2b84b}.type-sonstiges{color:#a9a0f2}.event-dialog{max-width:min(520px,92vw);border:1px solid #62748a;border-radius:12px;background:#242c36;color:#fff;padding:25px}.event-dialog::backdrop{background:#000b}.event-dialog h2{margin-right:35px}.event-dialog .close-dialog{position:absolute;top:12px;right:12px}.event-dialog p{line-height:1.6;white-space:pre-wrap}@media(max-width:580px){.panel{padding:17px}.day-cell{min-height:66px;padding:2px}.day-number{font-size:11px}.event-chip{font-size:9px;padding:3px 2px}.calendar-legend{gap:8px}}
/* 0.1.0.5 calendar administration and shared rehearsal attendance */
.calendar-admin{border:1px solid #44586e;padding:12px 16px;border-radius:9px;margin:16px 0;background:#252f3b}.calendar-admin>summary,#edit-event-panel>summary{cursor:pointer;color:#83b8ff;font-weight:650}.calendar-admin .band-form,.event-dialog .band-form{max-width:none}.event-dialog{width:min(580px,94vw);max-height:90vh;overflow-y:auto}.event-dialog h3{margin-top:22px}.event-dialog textarea,.calendar-admin textarea{width:100%;padding:12px;color:#fff;background:#181d24;border:1px solid #667588;border-radius:8px;font:inherit}.participant-row{display:flex;justify-content:space-between;gap:16px;padding:7px 0;border-bottom:1px solid #394657;font-size:14px}.status-yes{color:#6ee6b7}.status-no{color:#ff9999}.status-open{color:#bac3d0}#participation-panel[hidden]{display:none}#participation-panel,#edit-event-panel,.event-dialog .delete-panel{margin-top:20px}#participant-list{max-height:225px;overflow:auto;margin-bottom:14px}

/* 0.1.0.6: hidden recurrence date controls must not occupy layout space */
[hidden], label[hidden] { display: none !important; }

/* 0.1.0.7 – Tálatta-parity calendar controls, band palette retained */
.calendar-tools{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:0 0 17px}.calendar-tools label{font-size:12px;color:#c9d5e5;display:grid;gap:5px}.calendar-tools input{padding:9px 11px}.calendar-search-label{flex:1;min-width:160px}.calendar-today{display:inline-flex;align-items:center;justify-content:center;min-height:39px;padding:9px 16px;background:#34485f;border:1px solid #55789e;border-radius:8px;color:#fff!important;text-decoration:none!important}.month-jump input{min-width:155px;color-scheme:dark}.day-cell[data-day]{cursor:pointer;touch-action:pan-y;user-select:none}.day-cell[data-day]:focus-visible{outline:2px solid #70acff;outline-offset:-2px}.calendar-kw{float:left;color:#899bad;font-size:9px;font-weight:400;margin-top:4px}.day-cell[data-day]:has(.calendar-kw) .day-number{text-align:right}.calendar-day-details{border:1px solid #55789e;border-radius:10px;background:#273341;padding:14px;margin-top:17px}.calendar-day-top{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}.calendar-day-top>div{display:flex;gap:7px}.calendar-day-details #calendar-day-items{display:grid;gap:7px}.calendar-day-details .event-chip{font-size:13px;padding:9px 11px}.month-grid.slide-left{animation:es-slide-left .23s ease-out}.month-grid.slide-right{animation:es-slide-right .23s ease-out}@keyframes es-slide-left{from{transform:translateX(26px);opacity:.4}to{transform:translateX(0);opacity:1}}@keyframes es-slide-right{from{transform:translateX(-26px);opacity:.4}to{transform:translateX(0);opacity:1}}@media(prefers-reduced-motion:reduce){.month-grid.slide-left,.month-grid.slide-right{animation:none}}@media(max-width:580px){.calendar-tools{gap:8px}.calendar-today{min-height:36px}.calendar-kw{font-size:8px}.day-cell[data-day]{min-height:70px}}

/* 0.1.0.8 - calendar-wide search and next appointment */
.calendar-next-card,.calendar-search-results{margin:1rem 0;padding:1rem;border:1px solid #394758;border-radius:12px;background:#22272e}
.next-event-link,.calendar-search-results a{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;text-decoration:none;padding:.65rem;border-bottom:1px solid #394758;color:inherit}
.next-event-link:hover,.calendar-search-results a:hover{background:#303945}
.calendar-global-search{display:flex;gap:.75rem;align-items:end;flex-wrap:wrap;margin:1rem 0}
.calendar-global-search label{flex:1;min-width:200px}.calendar-global-search input{width:100%}

/* 0.1.0.9 – Modal day view, predictive global search, adjacent calendar days */
.calendar-search-wrap{position:relative;margin:14px 0 20px;z-index:5}.calendar-search-wrap>label{display:block;font-weight:650;font-size:14px;margin-bottom:7px}.calendar-search-wrap input{width:100%}.calendar-search-suggestions{position:absolute;left:0;right:0;top:100%;z-index:30;max-height:320px;overflow:auto;background:#1f2935;border:1px solid #6a88a9;border-radius:0 0 10px 10px;box-shadow:0 12px 30px #0009}.calendar-search-item{display:flex;flex-direction:column;gap:4px;width:100%;padding:11px 14px;background:transparent;border-radius:0;text-align:left;color:#eaf1ff;border-bottom:1px solid #39485a}.calendar-search-item:hover,.calendar-search-item:focus{background:#34475d;color:#fff}.calendar-search-item small{color:#b7c6d7}.calendar-search-suggestions p{padding:10px}.calendar-day-details{position:fixed;inset:0;margin:auto;width:min(600px,94vw);max-height:85vh;overflow:auto;background:#242f3d;color:#fff;border:1px solid #6b86a4;padding:20px;box-shadow:0 18px 55px #000a}.calendar-day-details::backdrop{background:#000b}.adjacent .day-number{opacity:.35}.calendar-day-details .event-chip{min-height:38px}.month-grid .day-cell:nth-child(7n + 6) .day-number{color:#70acff}.month-grid .day-cell:nth-child(7n) .day-number{color:#ff9999}

/* Own rehearsal status, without altering the Google event classification. */
.event-chip.probe.mine-yes{box-shadow:inset 3px 0 #35e59b}.event-chip.probe.mine-no{box-shadow:inset 3px 0 #ff6b6b}.event-chip.probe.mine-open{box-shadow:inset 3px 0 #b6c0ce}

/* 0.1.0.9a: deutlich wahrnehmbarer Teilnahmezustand auch auf kleinen Displays. */
.month-grid .event-chip.probe.mine-yes{border:2px solid #2cf4a6;border-left:7px solid #20d991;box-shadow:0 0 0 1px #123d34,0 0 11px #20d99170; padding-left:5px}
.month-grid .event-chip.probe.mine-no{border:2px solid #ff6b6b;border-left:7px solid #ff6b6b;box-shadow:0 0 0 1px #5b2323,0 0 11px #ff6b6b66;padding-left:5px}
.month-grid .event-chip.probe.mine-open{border:2px solid #aab6c6;border-left:7px solid #aab6c6;box-shadow:none;padding-left:5px}

/* 0.1.0.9b – Header und Navigation; ersetzt nur den alten separaten Navigationskasten. */
.brand.brand-compact{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:6px 0 15px;margin:0;min-width:0}
.brand-identity{display:flex;align-items:center;gap:13px;min-width:0;flex-shrink:1}
.brand-identity .logo{height:52px;width:52px;flex-shrink:0}
.brand-text{min-width:0}
.brand-compact .brand-name{font-size:clamp(16px,2vw,22px);line-height:1.15;letter-spacing:.035em;white-space:nowrap}
.brand-compact .tag{font-size:10px;letter-spacing:.19em}
.brand-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex:0 0 auto;margin-left:auto}
.brand-actions .nav-logout{margin:0}
.brand-actions .nav-tile{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;min-width:59px;min-height:52px;padding:7px 8px;border:1px solid #43566d;border-radius:9px;background:#273545;color:#e8f1ff;text-decoration:none;font:inherit;font-size:10px;font-weight:650;line-height:1.2;cursor:pointer;transition:background-color .15s,border-color .15s;white-space:nowrap}
.brand-actions .nav-tile svg{height:18px;width:18px;fill:none;stroke:#83b8ff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.brand-actions .nav-tile:hover,.brand-actions .nav-tile:focus-visible{background:#334964;border-color:#83b8ff;text-decoration:none}
.brand-actions .nav-tile.is-active{background:#334e69;border-color:#70acff;box-shadow:inset 0 -2px #70acff}
.brand-actions .nav-tile-logout{border-color:#6b4b55;background:#342e39;color:#ffcad1}
.brand-actions .nav-tile-logout svg{stroke:#ff9ca7}
.brand-actions .nav-tile-logout:hover{border-color:#ff6b6b;background:#49303a}
@media(max-width:760px){.brand.brand-compact{gap:9px}.brand-actions{gap:4px}.brand-actions .nav-tile{min-width:46px;min-height:47px;padding:6px;font-size:9px}.brand-actions .nav-tile svg{height:18px;width:18px}.brand-identity .logo{width:43px;height:43px}.brand-identity{gap:8px}.brand-compact .brand-name{font-size:clamp(13px,2.6vw,19px)}.brand-compact .tag{font-size:8px;letter-spacing:.12em}}
@media(max-width:530px){.brand.brand-compact{align-items:flex-start;flex-wrap:wrap;padding-bottom:10px}.brand-identity{width:100%}.brand-actions{justify-content:flex-end;width:100%;margin:0}.brand-actions .nav-tile{min-height:44px;min-width:51px;flex-direction:row;gap:5px}.brand-actions .nav-tile svg{width:18px;height:18px}.brand-actions .nav-tile span{font-size:9px}.brand-compact .brand-name{font-size:18px}.brand-compact .tag{font-size:9px}}
@media(max-width:365px){.brand-actions{gap:3px}.brand-actions .nav-tile{padding:6px 5px;min-width:39px}.brand-actions .nav-tile span{font-size:8px}}
@media(prefers-reduced-motion:reduce){.brand-actions .nav-tile{transition:none}}

/* 0.1.0.9c: kompakte Kalendersteuerung – bestehende JS-IDs bleiben stabil */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.panel .calendar-heading{font-size:clamp(23px,3vw,32px);margin:2px 0 12px;line-height:1.15}
.calendar-compact-toolbar{display:flex;align-items:center;gap:8px;margin:0 0 10px;min-width:0;position:relative;z-index:10}
.calendar-compact-toolbar .calendar-nav{display:flex;align-items:center;justify-content:flex-start;gap:5px;margin:0;padding:0;flex:none;min-width:0}
.calendar-compact-toolbar .calendar-nav a{width:32px;height:36px;flex:none;font-size:14px}
.calendar-compact-toolbar .calendar-nav strong{font-size:clamp(13px,1.55vw,17px);font-weight:700;white-space:nowrap;min-width:0}
.calendar-compact-toolbar .calendar-tools{display:flex;flex:none;align-items:center;gap:7px;margin:0}
.calendar-compact-toolbar .calendar-today{min-height:36px;padding:7px 10px;font-size:12px;white-space:nowrap}
.calendar-compact-toolbar .month-jump input{min-width:0;width:125px;max-width:125px;padding:7px 5px;font-size:12px;height:36px}
.calendar-compact-toolbar .calendar-add-trigger{flex:none;font-size:12px;padding:7px 9px;min-height:36px;white-space:nowrap}
.calendar-compact-toolbar .calendar-search-wrap{flex:1;min-width:100px;margin:0;z-index:30}
.calendar-compact-toolbar .calendar-search-wrap input{min-height:36px;padding:7px 9px;font-size:12px}
.calendar-compact-toolbar .calendar-search-suggestions{min-width:min(310px,80vw)}
.calendar-admin{margin:0 0 12px}
.calendar-admin>summary.sr-only{display:none}
.calendar-next-card{margin:12px 0 0;padding:10px 13px}
.calendar-next-card h2{font-size:16px;margin:0 0 5px}
.calendar-next-card .next-event-link{padding:5px}
@media(max-width:780px){.calendar-compact-toolbar{flex-wrap:wrap;gap:7px}.calendar-compact-toolbar .calendar-search-wrap{flex-basis:100%;min-width:100%}.calendar-compact-toolbar .calendar-nav{flex:1}.calendar-compact-toolbar .calendar-tools{flex:none}}
@media(max-width:460px){.calendar-compact-toolbar .calendar-nav strong{font-size:13px}.calendar-compact-toolbar .calendar-nav a{width:28px;height:34px}.calendar-compact-toolbar .calendar-tools{gap:4px}.calendar-compact-toolbar .calendar-today{padding:6px;font-size:11px}.calendar-compact-toolbar .month-jump input{width:108px;max-width:108px;font-size:11px}.calendar-compact-toolbar .calendar-add-trigger{padding:6px 7px}}

/* 0.1.0.9c1 – gezielte Layoutkorrekturen zur bestätigten 0.1.0.9c */
/* Header minimal vom Kalenderkasten lösen; weniger Leerraum im Kalenderkasten */
.brand.brand-compact{padding-bottom:19px;margin-bottom:0}
.panel:has(> .calendar-heading){padding-top:24px}
.panel:has(> .calendar-heading) > .eyebrow{margin:0 0 3px}
.panel .calendar-heading{margin-top:3px;margin-bottom:20px}
/* feste Breite – unterschiedliche Monatsnamen verschieben keine Nachbarfelder */
.calendar-compact-toolbar .calendar-nav{flex:0 0 auto;gap:5px}
.calendar-month-anchor{width:170px;flex:0 0 170px;position:relative;display:flex;align-items:center;justify-content:center}
.calendar-month-open{width:100%;min-height:36px;border:0;background:transparent;padding:4px 2px;color:#fff;cursor:pointer;text-align:center}
.calendar-month-open strong{font-size:clamp(13px,1.55vw,17px);white-space:nowrap}
.calendar-month-open:hover strong,.calendar-month-open:focus-visible strong{color:#83b8ff;text-decoration:underline}
.calendar-month-open:focus-visible{outline:2px solid #70acff;outline-offset:1px}
/* Input nur für den nativen Picker und die bereits bestätigte change-Logik */
.calendar-month-native{position:absolute!important;width:32px!important;height:32px!important;min-width:0!important;opacity:0.01!important;overflow:hidden!important;pointer-events:auto!important;right:0;top:50%;transform:translateY(-50%);padding:0!important;border:0!important}
/* Geschlossene Terminerstellung darf keinerlei Leerrahmen hinterlassen */
#calendar-create-panel:not([open]){display:none!important}
#calendar-create-panel[open]{display:block}
/* Kompakteres Monatsraster bei unveränderter Chiplesbarkeit */
.month-grid .day-cell{min-height:76px;padding:3px}
.month-grid .day-number{padding:1px 2px}
.month-grid .dow{padding:7px 2px}
@media(max-width:780px){
 .calendar-compact-toolbar .calendar-nav{flex:0 0 auto}
 .calendar-month-anchor{width:148px;flex-basis:148px}
 .panel:has(> .calendar-heading){padding-top:19px}
 .month-grid .day-cell{min-height:65px;padding:2px}
}
@media(max-width:460px){
 .calendar-month-anchor{width:126px;flex-basis:126px}
 .calendar-month-open strong{font-size:13px}
 .month-grid .day-cell{min-height:58px}
}

/* 0.1.0.9c3: Eigener dunkler Monatsdialog statt Browser-Picker */
.band-month-dialog{background:#202830;color:#f1f5fc;border:1px solid #5684bd;border-radius:14px;padding:0;width:min(340px,calc(100vw - 28px));max-height:calc(100vh - 28px);box-shadow:0 18px 60px #0009,0 0 0 1px #304962;}
.band-month-dialog::backdrop{background:rgba(3,9,17,.72)}
.band-month-dialog-inner{padding:18px;display:grid;gap:15px}
.band-month-dialog-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.band-month-dialog-top strong{color:#e5f0ff;font-size:16px}
.band-month-close{display:grid;place-items:center;padding:0;background:#2b3a4d;color:#c8dfff;border:1px solid #445b78;border-radius:8px;width:34px;height:34px;cursor:pointer;font-size:24px;line-height:1;font-family:inherit}
.band-month-year{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#17212e;padding:7px;border-radius:9px;border:1px solid #384f69}
.band-month-year span{font-weight:700;letter-spacing:.04em;font-size:20px}
.band-month-year button{display:grid;place-items:center;padding:0;width:38px;height:35px;background:#293c53;color:#9fcbff;border:1px solid #486786;border-radius:7px;cursor:pointer;font-size:20px;line-height:1;font-family:inherit}
.band-month-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.band-month-option{background:#273746;color:#e3edf9;border:1px solid #40536a;border-radius:8px;min-height:43px;padding:8px 3px;cursor:pointer;font-size:13px}
.band-month-option:hover,.band-month-option:focus-visible,.band-month-year button:hover{background:#38516d;border-color:#85b5ff}
.band-month-option.is-selected{background:#3976bc;border-color:#8cc7ff;color:white;box-shadow:inset 0 -2px #b1d9ff;font-weight:700}
.band-month-footer{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #3b4e64;padding-top:13px}
.band-month-footer button{background:#2b3f57;border:1px solid #4c6785;border-radius:8px;color:#b9ddff;padding:9px 11px;cursor:pointer}
.band-month-footer button:hover,.band-month-close:hover{background:#3b5879}
.band-month-dialog button:focus-visible{outline:2px solid #88c5ff;outline-offset:2px}
@media(prefers-reduced-motion:reduce){.band-month-dialog *{transition:none!important}}

/* 0.1.0.9d – Erfolgs-Toast und quittierbarer Fehlerdialog */
.band-toast{position:fixed;z-index:2000;top:50%;left:50%;transform:translate(-50%,-50%);width:max-content;max-width:min(440px,calc(100vw - 32px));padding:12px 18px;border:1px solid #74b5ff;border-left:4px solid #70acff;border-radius:10px;background:#23374d;color:#f0f7ff;box-shadow:0 14px 40px #000a;font-size:14px;font-weight:600;line-height:1.4;text-align:center;pointer-events:none;opacity:1;transition:opacity .25s ease,transform .25s ease}
.band-toast.is-hiding{opacity:0;transform:translate(-50%,calc(-50% - 8px))}
.band-error-dialog{width:min(460px,calc(100vw - 28px));max-height:85vh;overflow:auto;border:1px solid #ff6b6b;border-radius:14px;padding:0;background:#28262d;color:#f6eff0;box-shadow:0 20px 60px #000b}
.band-error-dialog::backdrop{background:rgba(0,0,0,.76)}
.band-error-content{padding:24px;display:grid;gap:14px}
.band-error-content h2{font-size:21px;line-height:1.3;margin:0!important;color:#ff9393}
.band-error-content p{margin:0 0 8px!important;max-width:none;color:#ffe4e4!important;line-height:1.55}
.band-error-content form{display:flex;justify-content:flex-end;margin:0}
.band-error-confirm{background:#ff6b6b;color:#1b2026;font-weight:700;padding:10px 16px;min-height:42px}
.band-error-confirm:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.band-toast{transition:none}}

/* 0.1.0.9e – Responsive Feinschliff; ausschließlich Darstellung, keine Logikänderung */
@media(max-width:780px){
  .shell{width:100%;max-width:100%;padding:14px 12px 24px}
  .panel{min-width:0;padding:18px 14px}
  .brand.brand-compact{gap:10px;align-items:center}
  .brand-actions{max-width:100%;min-width:0}
  .calendar-compact-toolbar{min-width:0;gap:8px}
  .calendar-compact-toolbar .calendar-search-wrap{flex:1 1 100%;min-width:0}
  .calendar-compact-toolbar .calendar-search-wrap input{width:100%;font-size:16px}
  .calendar-compact-toolbar .calendar-nav a{min-height:40px;height:40px;min-width:36px}
  .calendar-compact-toolbar .calendar-today,.calendar-compact-toolbar .calendar-add-trigger{min-height:40px}
  .calendar-month-open{min-height:40px}
  .month-grid{width:100%;min-width:0}
  .event-dialog,.calendar-day-details,.band-month-dialog,.band-error-dialog{max-width:calc(100vw - 24px)}
  .event-dialog,.calendar-day-details{max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain}
  .band-month-dialog{max-height:calc(100dvh - 24px);overflow-y:auto}
  .participant-row{gap:8px;align-items:flex-start;flex-wrap:wrap}
  .calendar-next-card{min-width:0;overflow-wrap:anywhere}
}
@media(max-width:530px){
  .shell{padding:10px 8px 20px}
  .panel{padding:14px 9px;border-radius:10px}
  .brand.brand-compact{padding:4px 2px 12px;align-items:flex-start;gap:9px}
  .brand-identity{min-width:0}
  .brand-actions{display:grid;width:100%;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
  .brand-actions .nav-tile{min-width:0;width:100%;min-height:44px;padding:6px 3px;display:flex;flex-direction:column;gap:3px;font-size:9px;white-space:normal;text-align:center}
  .brand-actions .nav-tile svg{width:17px;height:17px;flex-shrink:0}
  .brand-actions .nav-tile span{font-size:9px;line-height:1.12}
  .panel .calendar-heading{font-size:24px;margin-bottom:13px}
  .calendar-compact-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center}
  .calendar-compact-toolbar .calendar-nav{min-width:0;gap:3px;width:100%;justify-content:space-between}
  .calendar-month-anchor{width:auto;min-width:0;flex:1 1 auto}
  .calendar-month-open{min-width:0;padding:4px 0}
  .calendar-month-open strong{font-size:clamp(12px,3.6vw,15px)}
  .calendar-compact-toolbar .calendar-nav a{height:40px;min-height:40px;width:40px;min-width:40px}
  .calendar-compact-toolbar .calendar-tools{min-width:0;gap:5px;justify-content:flex-end}
  .calendar-compact-toolbar .calendar-search-wrap{grid-column:1/-1;width:100%;min-width:0}
  .calendar-compact-toolbar .calendar-search-wrap input{min-height:42px}
  .calendar-search-suggestions{max-height:min(48dvh,310px);min-width:0!important;width:100%}
  .month-grid .dow{font-size:11px;padding:8px 0}
  .month-grid .day-cell{min-height:60px;padding:2px;overflow:hidden}
  .month-grid .day-number{font-size:11px;padding:2px 1px}
  .month-grid .event-chip{font-size:9px;line-height:1.2;padding:3px 2px;overflow:hidden;overflow-wrap:anywhere}
  .calendar-kw{font-size:7px;max-width:24px}
  .calendar-day-details{width:calc(100vw - 16px);padding:14px}
  .event-dialog{width:calc(100vw - 16px);padding:16px}
  .band-month-dialog-inner{padding:13px;gap:12px}
  .band-month-option{min-height:44px}
  .band-error-content{padding:17px}
  .band-toast{max-width:calc(100vw - 24px);font-size:13px}
}
@media(max-width:360px){
  .brand-actions{gap:3px}
  .brand-actions .nav-tile{padding:5px 1px}
  .brand-actions .nav-tile span{font-size:8px}
  .calendar-compact-toolbar .calendar-nav a{min-width:35px;width:35px}
  .calendar-compact-toolbar .calendar-today,.calendar-compact-toolbar .calendar-add-trigger{font-size:11px;padding:6px 7px}
  .month-grid .day-cell{min-height:57px}
}

/* 0.1.0.9e1 – Mobile Kalender weiter verdichten */
@media(max-width:530px){
  /* Kalenderpanel: kompakter Titelbereich */
  .panel:has(> .calendar-heading) > .eyebrow{display:none}
  .panel:has(> .calendar-heading){padding-top:14px}
  .panel .calendar-heading{
    color:#70acff;
    font-size:13px;
    font-weight:700;
    letter-spacing:.15em;
    line-height:1.18;
    margin:0 0 9px;
    text-transform:none;
  }

  /* Kalenderleiste so kompakt wie möglich, Suche in eigener schmaler Zeile */
  .calendar-compact-toolbar{
    grid-template-columns:minmax(0,1fr) auto auto;
    gap:6px;
    margin-bottom:8px;
    align-items:center;
  }
  .calendar-compact-toolbar > .calendar-nav{grid-column:1;min-width:0;width:100%;justify-content:space-between;gap:3px}
  .calendar-compact-toolbar > .calendar-today{grid-column:2}
  .calendar-compact-toolbar > .calendar-add-trigger{grid-column:3}
  .calendar-compact-toolbar > .calendar-search-wrap{grid-column:1 / -1}
  .calendar-compact-toolbar .calendar-tools{grid-column:2 / 4;display:flex;flex-wrap:nowrap;justify-content:flex-end;gap:4px;min-width:0}
  .calendar-month-anchor{flex:1 1 auto;min-width:0;width:auto;max-width:none}
  .calendar-month-open,
  .calendar-compact-toolbar .calendar-nav a,
  .calendar-compact-toolbar .calendar-today,
  .calendar-compact-toolbar .calendar-add-trigger,
  .calendar-compact-toolbar .calendar-search-wrap input{min-height:34px;height:34px}
  .calendar-month-open{padding:2px 0}
  .calendar-month-open strong{font-size:12px}
  .calendar-compact-toolbar .calendar-nav a{width:34px;min-width:34px;font-size:13px}
  .calendar-compact-toolbar .calendar-today,
  .calendar-compact-toolbar .calendar-add-trigger{padding:4px 8px;font-size:11px;border-radius:10px}
  .calendar-compact-toolbar .calendar-search-wrap input{padding:5px 10px;font-size:14px;border-radius:10px}

  /* Monatsraster kompakter, damit der Monat möglichst ohne Scrollen sichtbar bleibt */
  .month-grid .dow{font-size:10px;padding:6px 0}
  .month-grid .day-cell{min-height:51px;padding:1px}
  .month-grid .day-number{font-size:10px;padding:1px}
  .month-grid .event-chip{font-size:8px;line-height:1.12;padding:2px 2px;margin:2px 0}
  .calendar-kw{font-size:6px;max-width:22px;margin-top:2px}

  /* Nachgelagerte Infos ebenfalls dichter */
  .calendar-next-card{margin-top:8px;padding:8px 10px}
  .calendar-next-card h2{font-size:15px}
}

@media(max-width:390px){
  .calendar-compact-toolbar{gap:5px}
  .calendar-compact-toolbar > .calendar-nav{gap:2px}
  .calendar-compact-toolbar .calendar-nav a{width:32px;min-width:32px;height:32px;min-height:32px}
  .calendar-month-open,
  .calendar-compact-toolbar .calendar-today,
  .calendar-compact-toolbar .calendar-add-trigger,
  .calendar-compact-toolbar .calendar-search-wrap input{height:32px;min-height:32px}
  .calendar-compact-toolbar .calendar-today,
  .calendar-compact-toolbar .calendar-add-trigger{padding:3px 7px;font-size:10.5px}
  .month-grid .day-cell{min-height:48px}
}


/* 0.1.0.9e2 – schmalere mobile Kalendersteuerung und feste Terminzeilen */
/* Kalender-Chips bleiben immer einzeilig; nur ihr Text bewegt sich bei Überlänge. */
.month-grid .event-chip{
  display:block;position:relative;width:100%;overflow:hidden;white-space:nowrap;
  overflow-wrap:normal;word-break:normal;text-overflow:clip;
  height:23px;min-height:23px;line-height:17px;padding:3px 4px;margin:2px 0;
}
.month-grid .event-chip .es-chip-label{display:inline-block;white-space:nowrap;vertical-align:top;max-width:none}
.month-grid .event-chip.es-chip-overflow .es-chip-label{
  animation:es-chip-marquee 5.5s ease-in-out infinite alternate;
}
@keyframes es-chip-marquee{0%,16%{transform:translateX(0)}85%,100%{transform:translateX(var(--es-chip-shift,0px))}}
@media(prefers-reduced-motion:reduce){.month-grid .event-chip.es-chip-overflow .es-chip-label{animation:none}}
/* Native Kalender- und Zeiteingabe-Icons in heller Schriftfarbe anzeigen. */
input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{color-scheme:dark}
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator,
input[type="month"]::-webkit-calendar-picker-indicator{filter:brightness(0) invert(.9);opacity:.85;cursor:pointer}
@media(max-width:530px){
  .panel .calendar-heading{font-size:26px;letter-spacing:.065em;line-height:1.15;margin-bottom:10px}
  /* Navigation und Heute/+Termin auf eine einzige Zeile zwingen. */
  .calendar-compact-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 4px;align-items:center}
  .calendar-compact-toolbar .calendar-nav{min-width:0;width:100%;gap:2px;justify-content:space-between}
  .calendar-month-anchor{flex:0 1 104px;width:104px;max-width:104px;min-width:0}
  .calendar-month-open strong{font-size:11px;letter-spacing:-.02em}
  .calendar-compact-toolbar .calendar-nav a{width:30px;min-width:30px;height:33px;min-height:33px}
  .calendar-compact-toolbar .calendar-tools{gap:4px;grid-column:2;min-width:0}
  .calendar-compact-toolbar .calendar-today,.calendar-compact-toolbar .calendar-add-trigger{height:33px;min-height:33px;padding:4px 6px;font-size:10px;white-space:nowrap}
  .calendar-compact-toolbar .calendar-search-wrap{grid-column:1/-1}
  .calendar-compact-toolbar .calendar-search-wrap input{min-height:33px;height:33px;padding:5px 9px;font-size:14px}
  .calendar-legend{font-size:9px;gap:7px;margin-top:9px;align-items:center;flex-wrap:nowrap}
  .calendar-next-card{padding:7px 9px;margin-top:8px}
  .calendar-next-card h2{font-size:13px;line-height:1.2;margin-bottom:3px;font-weight:600}
  .calendar-next-card .next-event-link{padding:2px 3px;gap:2px;font-size:11px;line-height:1.2}
  .calendar-next-card .next-event-link strong{font-size:12px;font-weight:600}
  .calendar-next-card .next-event-link span{font-size:10px}
  .month-grid .event-chip{height:19px;min-height:19px;line-height:15px;font-size:9px;padding:2px 3px;margin:2px 0}
  /* Zwei oder mehr Termine dürfen die Kalenderwoche nicht aufblähen. */
  .month-grid .day-cell{min-height:49px;overflow:hidden}
}
@media(max-width:385px){
  .calendar-month-anchor{flex-basis:92px;width:92px;max-width:92px}
  .calendar-month-open strong{font-size:10px}
  .calendar-compact-toolbar .calendar-nav a{width:27px;min-width:27px}
  .calendar-compact-toolbar .calendar-today,.calendar-compact-toolbar .calendar-add-trigger{font-size:9px;padding:3px 5px}
  .calendar-legend{font-size:8px;gap:5px}
}

/* 0.1.0.9e3 – schnellere, gleichmaessige Laufschrift auf Desktop und Mobil. */
.month-grid .event-chip.es-chip-overflow .es-chip-label{animation:es-chip-marquee 3.2s linear infinite alternate;}
@media(prefers-reduced-motion:reduce){.month-grid .event-chip.es-chip-overflow .es-chip-label{animation:none;}}


/* 0.1.0.10a – gemeinsamer schließbarer Termin-Editor */
.calendar-editor-dialog{width:min(580px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:0;border:1px solid #6184ad;border-radius:13px;background:#222c38;color:#f2f7ff;box-shadow:0 20px 65px #000b;overflow:hidden}
.calendar-editor-dialog::backdrop{background:#000b}
.calendar-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;background:#27384a;border-bottom:1px solid #435a72}
.calendar-editor-head h2{font-size:19px;line-height:1.3;margin:0;color:#edf5ff}
.calendar-editor-close{width:34px;height:34px;flex:none;display:grid;place-items:center;padding:0;line-height:1;font-size:25px;border-radius:8px;background:#2b3c50;color:#d0e5ff;border:1px solid #537399;cursor:pointer}
.calendar-editor-body{max-height:calc(100dvh - 92px);overflow-y:auto;overscroll-behavior:contain;padding:16px}
.calendar-editor-dialog .calendar-admin{display:block!important;margin:0;padding:0;border:0;background:transparent}
.calendar-editor-dialog #calendar-create-panel[hidden],.calendar-editor-dialog #calendar-edit-slot[hidden]{display:none!important}
.calendar-editor-dialog .band-form{max-width:none}
.calendar-editor-dialog .band-form label{min-width:0}
.calendar-editor-dialog .band-form input,.calendar-editor-dialog .band-form select,.calendar-editor-dialog .band-form textarea{max-width:100%}
.calendar-editor-dialog input[type="date"],.calendar-editor-dialog input[type="datetime-local"]{color-scheme:dark}
.calendar-edit-trigger{margin-top:14px}
@media(max-width:530px){.calendar-editor-head{padding:10px 12px}.calendar-editor-head h2{font-size:17px}.calendar-editor-body{padding:12px;max-height:calc(100dvh - 80px)}}
/* Vorherige details-Sichtbarkeitsregel für den neuen Dialog gezielt überschreiben */
.calendar-editor-dialog #calendar-create-panel:not([open]):not([hidden]){display:block!important}


/* 0.1.0.10a1: Termin-Editor kompakter; ausschließlich Dialog, keine globale Formularänderung */
.calendar-editor-head{padding:9px 14px}
.calendar-editor-head h2{font-size:17px;line-height:1.2}
.calendar-editor-close{width:30px;height:30px;font-size:22px}
.calendar-editor-body{padding:12px 14px;max-height:calc(100dvh - 78px)}
.calendar-editor-dialog .band-form{gap:9px;margin-top:0}
.calendar-editor-dialog .band-form label{gap:4px;font-size:12px;line-height:1.25;font-weight:600}
.calendar-editor-dialog .band-form input:not([type="hidden"]),
.calendar-editor-dialog .band-form select,
.calendar-editor-dialog .band-form textarea{min-height:34px;padding:6px 10px;font-size:13px;line-height:1.3;border-radius:7px}
.calendar-editor-dialog .band-form textarea{min-height:55px;padding:7px 10px;resize:vertical}
.calendar-editor-dialog .band-form button[name="action"]{padding:8px 12px;font-size:13px;min-height:35px}
@media(max-width:530px){
  .calendar-editor-head{padding:8px 11px}
  .calendar-editor-head h2{font-size:16px}
  .calendar-editor-body{padding:10px 11px;max-height:calc(100dvh - 68px)}
  .calendar-editor-dialog .band-form{gap:8px}
  .calendar-editor-dialog .band-form input:not([type="hidden"]),
  .calendar-editor-dialog .band-form select{min-height:33px;padding:5px 9px}
}


/* 0.1.0.10b: Wiederholungs-/Serienbedienung im gemeinsamen Termin-Popup */
.calendar-editor-dialog .calendar-series-fieldset{min-width:0;margin:0;padding:9px 10px 10px;border:1px solid #425c79;border-radius:8px;background:#1d2b3b}
.calendar-editor-dialog .calendar-series-fieldset[hidden]{display:none!important}
.calendar-editor-dialog .calendar-series-fieldset legend{padding:0 5px;color:#a9d3ff;font-size:12px;font-weight:700}
.calendar-editor-dialog .calendar-series-fieldset label{display:grid;gap:4px}
.calendar-editor-dialog .calendar-series-fieldset #recurrence-until-wrap{margin-top:8px}
.calendar-editor-dialog .calendar-series-fieldset #recurrence-until-wrap[hidden]{display:none!important}
.calendar-editor-dialog .calendar-optional{font-weight:400;font-size:11px;color:#adbed0}
.calendar-editor-dialog .calendar-scope-info{margin:7px 0 0;line-height:1.35;font-size:11px;color:#adbed0}
@media(max-width:530px){.calendar-editor-dialog .calendar-series-fieldset{padding:7px 8px 8px}}

/* 0.1.0.10c: Bestätigungsdialoge für Termin-/Serienaktionen */
.calendar-action-dialog{width:min(440px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow-y:auto;border:1px solid #597da5;border-radius:12px;background:#222d3a;color:#eff5ff;padding:18px;box-shadow:0 20px 60px #000b}
.calendar-action-dialog::backdrop{background:rgba(3,8,16,.75)}
.calendar-action-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.calendar-action-head h2{font-size:17px;line-height:1.25;margin:0;color:#e9f2ff}
.calendar-action-close{display:grid;place-items:center;flex:none;width:32px;height:32px;padding:0;border:1px solid #526b8b;border-radius:7px;background:#2b3e53;color:#e9f2ff;font-size:22px;line-height:1;cursor:pointer}
.calendar-action-dialog p{font-size:13px;line-height:1.45;margin:0 0 13px;color:#cedaeb}
.calendar-action-dialog .calendar-delete-warning{color:#ff9a9a}
.calendar-action-dialog .small-form{gap:10px}
.calendar-action-dialog .small-form label{font-size:12px}
.calendar-action-dialog .small-form input,.calendar-action-dialog .small-form select{min-height:35px;padding:6px 9px;font-size:13px}
.calendar-action-dialog .calendar-delete-scope-info{font-size:12px;margin:0;color:#a9c9ee}
.calendar-action-buttons{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:12px}
.calendar-action-buttons button{min-height:35px;padding:7px 11px;font-size:12px}
.calendar-delete-trigger{margin-top:10px}
@media(max-width:530px){.calendar-action-dialog{padding:13px}.calendar-action-buttons{gap:6px}.calendar-action-buttons button{padding:7px 9px}}

/* 0.1.0.10d – abschließender mobiler Feinschliff der Termin-Dialoge.
   Rein optische Anpassungen; Formularnamen, Aktionen und Dialog-JS bleiben unverändert. */
@media (max-width: 600px) {
  .calendar-editor-dialog {
    width: calc(100vw - 16px);
    max-width: calc(100vw - 16px);
    max-height: calc(100dvh - 16px);
    border-radius: 11px;
  }
  .calendar-editor-head {
    position: relative;
    padding: 9px 12px;
    min-height: 43px;
    gap: 8px;
  }
  .calendar-editor-head h2 {font-size: 16px; line-height: 1.2; min-width: 0;}
  .calendar-editor-close {width: 30px; height: 30px; min-width: 30px; padding: 0;}
  .calendar-editor-body {
    padding: 10px 12px 12px;
    max-height: calc(100dvh - 62px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
  }
  .calendar-editor-dialog .band-form {gap: 8px; min-width: 0;}
  .calendar-editor-dialog .band-form label {gap: 3px; line-height: 1.25;}
  /* 16 px verhindert das automatische Seiten-Zoomen beim Fokus in iOS Safari. */
  .calendar-editor-dialog .band-form input:not([type="hidden"]),
  .calendar-editor-dialog .band-form select,
  .calendar-editor-dialog .band-form textarea {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 38px;
    padding: 6px 9px;
    font-size: 16px;
    line-height: 1.2;
  }
  .calendar-editor-dialog .band-form textarea {min-height: 58px;}
  .calendar-editor-dialog .calendar-series-fieldset {min-width: 0; padding: 7px 9px 9px;}
  .calendar-editor-dialog .band-form button[name="action"] {
    min-height: 38px;
    padding: 7px 11px;
    font-size: 13px;
    white-space: normal;
  }
  .calendar-action-dialog {
    width: calc(100vw - 24px);
    max-width: calc(100vw - 24px);
    max-height: calc(100dvh - 24px);
    padding: 13px;
    overflow-wrap: anywhere;
    overscroll-behavior-y: contain;
  }
  .calendar-action-head {align-items: center; gap: 8px;}
  .calendar-action-head h2 {min-width: 0; font-size: 16px;}
  .calendar-action-dialog .small-form input,
  .calendar-action-dialog .small-form select {max-width: 100%; font-size: 16px; min-height: 38px;}
  .calendar-action-buttons {gap: 7px; align-items: stretch;}
  .calendar-action-buttons button {min-height: 38px;}
}
@media (max-width: 365px) {
  .calendar-editor-dialog {width: calc(100vw - 10px); max-width: calc(100vw - 10px);}
  .calendar-editor-body {padding: 8px 9px 11px;}
  .calendar-action-dialog {width: calc(100vw - 12px);max-width: calc(100vw - 12px);padding: 11px;}
  .calendar-action-buttons {flex-direction: column;}
  .calendar-action-buttons button {width: 100%;}
}


/* 0.1.0.11 – kompakte Teilnehmerübersicht direkt im Tagespopup */
.calendar-day-event{min-width:0;padding:4px 0 8px;border-bottom:1px solid #415268}
.calendar-day-event:last-child{border-bottom:0;padding-bottom:0}
.calendar-day-event > .event-chip{width:100%;text-align:left;margin:0;min-height:34px}
.calendar-day-participants{margin:5px 0 0;color:#d9e4f2;font-size:11px}
.calendar-day-participants-summary{display:flex;flex-wrap:wrap;align-items:center;gap:5px 8px;cursor:pointer;list-style:none;padding:3px 0}
.calendar-day-participants-summary::-webkit-details-marker{display:none}
.calendar-day-participants-summary::before{content:'▸';color:#91bfff;font-size:12px}
.calendar-day-participants[open] .calendar-day-participants-summary::before{content:'▾'}
.calendar-day-participants-label{font-weight:650;color:#c4d6eb;margin-right:3px}
.calendar-day-status{font-weight:600;white-space:nowrap}
.calendar-day-participants-list{display:grid;gap:6px;margin-top:7px;padding:9px 10px;background:#1b2938;border:1px solid #415773;border-radius:8px}
.calendar-day-participants-group{display:grid;grid-template-columns:85px minmax(0,1fr);gap:8px;line-height:1.35;overflow-wrap:anywhere}
.calendar-day-participants-group strong{font-size:11px}
.calendar-day-participants-group span{color:#d6e2f0}
@media(max-width:530px){
 .calendar-day-event{padding:3px 0 7px}
 .calendar-day-participants{font-size:10px}
 .calendar-day-participants-summary{gap:4px 7px}
 .calendar-day-participants-group{grid-template-columns:72px minmax(0,1fr);gap:5px}
}

/* 0.1.0.12a – Weitere Funktionen im seitlichen Drawer */
.brand.brand-compact .band-menu-toggle{order:3;display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;padding:0;margin-left:4px;background:#293c53;color:#c4e3ff;border:1px solid #55799f;border-radius:10px;cursor:pointer}
.band-menu-toggle svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.band-menu-toggle:hover,.band-menu-toggle.is-active,.band-menu-toggle:focus-visible{background:#354f6d;border-color:#83b8ff}
.brand.brand-compact .brand-actions{order:2}
.band-nav-drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(330px,87vw);height:100dvh;max-height:100dvh;max-width:none;padding:0;border:0;border-left:1px solid #507397;border-radius:0;background:#202b38;color:#eaf3ff;box-shadow:-14px 0 35px #0009;overflow-y:auto}
.band-nav-drawer[open]{animation:band-drawer-slide .2s ease-out}
.band-nav-drawer::backdrop{background:rgba(2,7,15,.65)}
.band-nav-drawer-inner{padding:18px;display:grid;gap:20px}
.band-nav-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #405773;padding-bottom:14px}
.band-nav-drawer-head strong{font-size:19px;letter-spacing:.04em}
.band-drawer-close{display:grid;place-items:center;width:36px;height:36px;min-height:0;padding:0;border:1px solid #516c8a;border-radius:8px;background:#2a4058;color:#dbeeff;font-size:25px;line-height:1;cursor:pointer}
.band-drawer-links{display:grid;gap:10px}
.band-drawer-link{display:flex;align-items:center;gap:13px;min-height:50px;padding:12px 13px;border:1px solid #435b77;border-radius:10px;background:#29394b;color:#eaf3ff;text-decoration:none;font-size:14px;font-weight:600}
.band-drawer-link svg{width:21px;height:21px;flex:none;fill:none;stroke:#8ebfff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.band-drawer-link:hover,.band-drawer-link:focus-visible,.band-drawer-link.is-active{background:#34516e;border-color:#83b8ff;color:white}
/* V1.4.24b – gezielte Abmelden-Farbe im Drawer; kein Einfluss auf andere Links. */
#band-nav-drawer #band-logout-open.band-drawer-logout,
#band-nav-drawer #band-logout-open.band-drawer-logout:hover,
#band-nav-drawer #band-logout-open.band-drawer-logout:focus-visible {
  color:#FF6B6B;
  border-color:#FF6B6B;
  background:#342e39;
}
#band-nav-drawer #band-logout-open.band-drawer-logout svg,
#band-nav-drawer #band-logout-open.band-drawer-logout svg * {
  stroke:#FF6B6B;
}

@keyframes band-drawer-slide{from{transform:translateX(100%)}to{transform:translateX(0)}}
@media(max-width:530px){
 .brand.brand-compact{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
 .brand.brand-compact .brand-identity{order:1;flex:1 1 0;width:auto;min-width:0}
 .brand.brand-compact .band-menu-toggle{order:2;margin-left:auto;width:43px;height:43px;flex-basis:43px}
 .brand.brand-compact .brand-actions{order:3;width:100%;margin-left:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
 .brand.brand-compact .brand-actions .nav-tile{width:100%;min-width:0}
}
@media(prefers-reduced-motion:reduce){.band-nav-drawer[open]{animation:none}}


/* 0.1.0.12b – Probenplanung; Kalenderfunktionen bleiben unangetastet */
.proben-heading{font-size:clamp(24px,3vw,31px)!important;margin:0 0 7px!important}
.proben-intro{font-size:13px;margin:0 0 16px!important;color:#bdccde!important}
.proben-list{display:grid;gap:12px}
.proben-card{background:#26313f;border:1px solid #41546b;border-radius:10px;padding:14px;min-width:0}
.proben-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.proben-card-head strong{font-size:16px;overflow-wrap:anywhere}
.proben-date{font-size:12px;color:#b4c9df;margin-top:3px}
.proben-calendar-link{white-space:nowrap;font-size:12px;color:#a7d1ff!important}
.proben-counts{display:flex;flex-wrap:wrap;gap:7px;margin:11px 0}
.proben-counts span{border-radius:7px;padding:6px 9px;font-weight:650;font-size:12px}
.proben-count-yes{background:#234a3f;color:#87e6bd}
.proben-count-no{background:#52353c;color:#ffa9aa}
.proben-count-open{background:#394554;color:#d4dfec}
.proben-participants{border:1px solid #425873;border-radius:8px;padding:8px 10px;margin:0 0 12px}
.proben-participants summary{cursor:pointer;font-size:12px;color:#bcd8fa;font-weight:650}
.proben-participant-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:11px}
.proben-participant-groups strong{font-size:11px}
.proben-participant-groups p{margin:3px 0 0;font-size:12px;line-height:1.4;color:#e1e9f3;overflow-wrap:anywhere}
.proben-group-yes{color:#87e6bd}.proben-group-no{color:#ffa9aa}.proben-group-open{color:#c0cde0}
.proben-response{display:flex;align-items:flex-end;justify-content:flex-end;gap:8px}
.proben-response label{display:grid;gap:4px;color:#c1d4e9;font-size:12px;min-width:140px}
.proben-response select{min-height:36px;padding:6px 25px 6px 9px;font-size:13px}
.proben-response button{min-height:36px;padding:7px 12px;font-size:12px}
@media(max-width:530px){
 .proben-card{padding:11px 9px}.proben-card-head strong{font-size:14px}
 .proben-counts{gap:5px}.proben-counts span{font-size:10px;padding:5px 7px}
 .proben-calendar-link{font-size:11px}
 .proben-participant-groups{grid-template-columns:1fr;gap:8px}
 .proben-response select{font-size:16px}
 .brand-actions .nav-tile span{overflow-wrap:anywhere}
}

/* 0.1.0.12c – einzeilige Kacheln, harmonisierte Titel, sofortige Teilnahme */
.panel > h1.calendar-heading{font-size:clamp(23px,3vw,32px);line-height:1.15;margin:3px 0 20px}
.panel > h1.proben-heading{font-size:clamp(23px,3vw,32px)!important;margin:3px 0 20px!important}
.brand.brand-compact .brand-actions{min-width:0;flex:1 1 auto;display:flex;flex-wrap:nowrap;justify-content:flex-end}
.brand.brand-compact .brand-actions .nav-tile{min-width:0}
.proben-participant-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.proben-name-chip{display:inline-flex;align-items:center;border:1px solid transparent;border-radius:7px;padding:5px 8px;font-size:12px;font-weight:600;line-height:1.2;white-space:nowrap}
.proben-name-yes{color:#8cf0bc;background:#224d3c;border-color:#35775b}
.proben-name-no{color:#ffb1b6;background:#58343c;border-color:#894a57}
.proben-name-open{color:#d0deee;background:#35475a;border-color:#536c87}
.proben-response{justify-content:flex-start;align-items:flex-start;gap:0}
.proben-response label{font-size:11px;gap:3px;min-width:0;align-items:start}
.proben-response select{min-height:29px;height:29px;width:118px;max-width:100%;padding:3px 24px 3px 7px;font-size:12px;line-height:1.2}
#participation-panel .participation-auto-submit{justify-content:flex-start}
#participation-panel .participation-auto-submit label,.calendar-single-dialog #event-setlist-name{font-size:12px}
#participation-panel .participation-auto-submit label{max-width:155px}
#participation-panel .participation-auto-submit select{height:31px;min-height:31px;padding:3px 24px 3px 8px;font-size:13px}
@media(max-width:780px){
 .brand.brand-compact .brand-actions{flex:1 1 auto;min-width:0;gap:4px}
 .brand.brand-compact .brand-actions .nav-tile{padding:5px 4px;min-height:42px;font-size:9px;white-space:normal;text-align:center}
 .brand.brand-compact .brand-actions .nav-tile svg{width:16px;height:16px;flex-shrink:0}
}
@media(max-width:530px){
 .brand.brand-compact .brand-actions{order:3;width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-left:0}
 .brand.brand-compact .brand-actions .nav-logout{min-width:0;width:100%}
 .brand.brand-compact .brand-actions .nav-tile{width:100%;min-width:0;min-height:42px;padding:5px 2px;font-size:9px;line-height:1.12;overflow-wrap:anywhere}
 .brand.brand-compact .brand-actions .nav-tile span{font-size:9px}
 .panel > h1.calendar-heading,.panel > h1.proben-heading{font-size:26px!important;line-height:1.16;margin:0 0 12px!important}
 .proben-response select{font-size:13px}
 .proben-name-chip{font-size:11px;padding:4px 7px}
}
@media(max-width:360px){.brand.brand-compact .brand-actions{gap:3px}.brand.brand-compact .brand-actions .nav-tile span{font-size:8px}}

/* 0.1.0.12c1 – Einzeltermin-Dialog an Probenplanung angleichen */
.calendar-single-dialog{padding:17px 18px 16px}
.calendar-single-dialog #event-title.calendar-heading{font-size:clamp(23px,3vw,32px);line-height:1.15;margin:2px 42px 12px 0;color:#f7f8fa;font-weight:700}
.calendar-single-dialog > p{font-size:12px;line-height:1.4;margin:5px 0;color:#cdd9e8;white-space:pre-wrap;max-width:none}
.calendar-single-dialog > p:empty{display:none}
.calendar-single-dialog #event-when{color:#eaf2ff;font-weight:600;font-size:13px}
.calendar-single-dialog #participation-panel{margin-top:13px}
.calendar-single-dialog #participation-panel h3,.calendar-single-dialog .event-setlist-head h3{font-size:14px;line-height:1.2;margin:0 0 8px}
.calendar-single-dialog #participant-list.proben-participant-chips{display:flex;flex-wrap:wrap;gap:6px;max-height:none;overflow:visible;margin:0 0 12px}
.calendar-single-dialog #participation-panel .participation-auto-submit{margin:0}
.calendar-single-dialog .calendar-single-actions{display:flex;gap:8px;align-items:stretch;margin-top:14px}
.calendar-single-dialog .calendar-single-actions button{flex:1 1 0;min-width:0;min-height:36px;margin:0;padding:7px 10px;font-size:13px;line-height:1.25;border-radius:8px}
@media(max-width:530px){
 .calendar-single-dialog{padding:13px 12px 12px}
 .calendar-single-dialog #event-title.calendar-heading{font-size:26px;line-height:1.16;margin:0 36px 10px 0}
 .calendar-single-dialog > p{font-size:11px;line-height:1.35;margin:4px 0}
 .calendar-single-dialog #event-when{font-size:12px}
 .calendar-single-dialog #participation-panel{margin-top:10px}
 .calendar-single-dialog .calendar-single-actions{gap:7px;margin-top:11px}
 .calendar-single-dialog .calendar-single-actions button{font-size:12px;padding:7px 5px}
}

/* 0.1.0.13 – Dashboard mit Live-Terminen */
.band-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.band-dashboard-card{background:#273442;border:1px solid #476382;border-radius:11px;padding:16px;display:flex;flex-direction:column;gap:10px;min-width:0}
.band-dashboard-card-title{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#8fbdff;font-size:14px;font-weight:700}
.band-dashboard-card-title span:last-child{font-size:19px}
.band-dashboard-event-name{font-size:17px;line-height:1.25;overflow-wrap:anywhere;color:#f0f5ff}
.band-dashboard-datetime{font-size:13px;color:#b6cbe4}
.band-dashboard-counts{display:flex;gap:6px;flex-wrap:wrap;margin:2px 0}
.band-dashboard-counts span{font-size:11px}
.band-dashboard-my-status{font-size:12px;color:#b6cbe4}
.band-dashboard-my-status strong{color:#e6f0ff}
.band-dashboard-empty{margin:0;color:#aebed2;font-size:13px;line-height:1.5}
.band-dashboard-card-link{color:#a9d4ff!important;font-size:12px;text-decoration:none!important;margin-top:auto;padding-top:5px;align-self:flex-start}
.band-dashboard-card-link:hover,.band-dashboard-card-link:focus-visible{text-decoration:underline!important}
.band-dashboard-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:13px}
.band-dashboard-shortcuts a{display:flex;justify-content:space-between;align-items:center;gap:5px;background:#2d4054;border:1px solid #4e7094;border-radius:9px;padding:10px 12px;color:#e6f3ff!important;text-decoration:none!important;font-size:13px;font-weight:600}
.band-dashboard-shortcuts a:hover,.band-dashboard-shortcuts a:focus-visible{background:#385572}
@media(max-width:600px){.band-dashboard-grid{grid-template-columns:1fr;gap:9px}.band-dashboard-card{padding:12px;gap:7px}.band-dashboard-event-name{font-size:15px}.band-dashboard-card-title{font-size:13px}.band-dashboard-shortcuts a{font-size:11px;padding:9px 8px}.band-dashboard-counts span{font-size:10px}}

/* 0.1.0.13d: Dashboard-Links zuverlässig an gegenüberliegenden Kartenrändern */
.band-dashboard-card-links{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;column-gap:9px;width:100%;margin-top:auto}
.band-dashboard-card-links>.band-dashboard-card-link{min-width:0;margin:0;padding-top:5px;align-self:end}
.band-dashboard-card-links>.band-dashboard-card-link:last-child{justify-self:end;align-self:end;text-align:right}
/* Logout: schließbare Bestätigung; echte Abmeldung weiterhin nur über POST + CSRF */
.band-logout-dialog{width:min(410px,calc(100vw - 28px));max-height:calc(100dvh - 28px);border:1px solid #577ca4;border-radius:12px;padding:0;background:#232f3d;color:#eff5ff;box-shadow:0 18px 60px #000a}
.band-logout-dialog::backdrop{background:rgba(0,0,0,.72)}
.band-logout-dialog-content{padding:17px;display:grid;gap:15px}
.band-logout-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#b9d9ff;font-size:16px}
.band-logout-dialog-close{width:32px;height:32px;display:grid;place-items:center;padding:0;border-radius:7px;border:1px solid #4b6582;background:#2d4157;color:#edf5ff;font-size:23px;line-height:1;cursor:pointer}
.band-logout-dialog p{margin:0;color:#e1eaf6;font-size:14px;line-height:1.4}
.band-logout-dialog-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.band-logout-dialog-actions button{min-height:35px;padding:7px 12px;border-radius:8px;font-size:13px;cursor:pointer}
.band-logout-cancel{background:#304258;color:#eaf3fe;border:1px solid #506782}
.band-logout-confirm{background:#466b93;color:#fff;border:1px solid #7197c0;font-weight:600}
.band-logout-dialog button:focus-visible{outline:2px solid #89c3ff;outline-offset:2px}

/* 0.1.0.13e – Installation als Web-App, nur Drawer und Hilfsdialog */
.band-install-link{width:100%;font-family:inherit;cursor:pointer;text-align:left}
.band-install-dialog{width:min(390px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;padding:0;border:1px solid #58779a;border-radius:12px;background:#202b38;color:#eaf3ff;box-shadow:0 18px 55px #0009}
.band-install-dialog::backdrop{background:rgba(2,7,15,.7)}
.band-install-inner{display:grid;gap:15px;padding:19px}
.band-install-head{display:flex;gap:10px;align-items:center;justify-content:space-between}
.band-install-head strong{font-size:17px;color:#c9e3ff}
.band-install-close{display:grid;place-items:center;width:34px;height:34px;min-height:0;padding:0;border:1px solid #567494;border-radius:8px;background:#2a4058;color:#eaf3ff;font-size:23px;line-height:1;cursor:pointer}
.band-install-inner p{margin:0;line-height:1.55;font-size:14px;white-space:pre-line;color:#dfebf9}
.band-install-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px}
.band-install-actions button{min-height:36px;padding:8px 13px;font-size:13px}
.band-install-actions #band-install-confirm{background:#3976bc;color:#fff}
.band-install-actions #band-install-confirm[hidden]{display:none}

/* 0.1.0.13f – Dashboard-Akzentfarben und Remember-Me */
.band-dashboard-card-title-probe{color:#35d8ff}
.band-dashboard-card-title-gig{color:#f2b84b}
.band-form .band-remember-option{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:13px;color:#d3e1f1;cursor:pointer}
.band-form .band-remember-option input[type=checkbox]{width:17px;height:17px;min-height:0;margin:0;accent-color:#70acff;flex:none}

/* 0.1.0.14a – Songbibliothek */
.song-toolbar{display:flex;align-items:center;gap:10px;margin:0 0 13px}.song-search-wrap{flex:1;min-width:0}.song-search-wrap input{width:100%;min-height:38px;padding:7px 11px}.song-add{min-height:38px;padding:7px 13px;white-space:nowrap}.song-list{display:grid;gap:7px}.song-card{display:flex;align-items:center;gap:12px;background:#283442;border:1px solid #3e5268;border-radius:9px;padding:10px 12px;min-width:0}.song-card[hidden]{display:none!important}.song-card-main{display:grid;gap:2px;flex:1;min-width:0}.song-card-main strong{font-size:14px;color:#f2f6fc}.song-card-main>span,.song-card-notes{font-size:11px;color:#b9cada;overflow-wrap:anywhere}.song-card-notes{white-space:pre-wrap}.song-card-meta{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}.song-card-meta span{padding:3px 6px;border-radius:5px;color:#b6d7ff;background:#1b2939;font-size:11px;white-space:nowrap}.song-edit{padding:6px 10px;font-size:12px;flex:none}.song-empty{font-size:13px;color:#b8cada}.song-editor{background:#212c3a;color:#f3f7ff;border:1px solid #6586a9;border-radius:12px;width:min(540px,calc(100vw - 20px));max-height:calc(100dvh - 20px);padding:0;overflow:auto}.song-editor::backdrop{background:#030812c9}.song-editor-inner{padding:17px;display:grid;gap:12px}.song-editor-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.song-editor h2{font-size:19px;margin:0;color:#eff5ff}.song-editor-head button{padding:0;display:grid;place-items:center;width:32px;height:32px;font-size:21px}.song-editor .band-form{gap:9px}.song-editor .band-form label{font-size:12px;gap:3px}.song-editor .band-form input,.song-editor .band-form textarea{min-width:0;width:100%;min-height:34px;padding:6px 9px;font-size:14px}.song-fields-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.song-editor-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.song-editor-actions button{min-height:34px;padding:7px 13px;font-size:12px}.song-delete-form{justify-self:start}.song-delete-form[hidden]{display:none!important}.song-delete-form button{font-size:12px;padding:7px 11px}.song-delete-confirm p{font-size:13px;line-height:1.45;margin:0;color:#d4e0ed}
@media(max-width:530px){.song-card{gap:7px;padding:9px 8px}.song-card-main strong{font-size:13px}.song-card-meta span{font-size:10px;padding:3px 4px}.song-edit{font-size:11px;padding:5px 6px}.song-editor-inner{padding:12px}.song-fields-row{grid-template-columns:repeat(2,minmax(0,1fr))}.song-editor .band-form input,.song-editor .band-form textarea{font-size:16px}}

/* 0.1.0.14a2: Notizenfeld im Song-Popup – konsistentes Dark Theme */
.song-editor .band-form textarea{background:#181d24;color:#fff;border:1px solid #667588;color-scheme:dark;font:inherit;font-size:14px;resize:vertical}
.song-editor .band-form textarea:focus{outline:2px solid #70acff;outline-offset:2px}
@media(max-width:530px){.song-editor .band-form textarea{font-size:16px}}

/* 0.1.0.14a3 – Eigenkomposition anhand des Interpreten; Cover-Filter */
.song-type-filter-wrap{flex:none;min-width:0}
.song-type-filter-wrap select{min-height:38px;padding:7px 9px;font-size:12px;color:#e4efff;background:#253548;border:1px solid #526b87;border-radius:7px}
.song-card-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.song-type-badge{display:inline-flex;align-items:center;font-size:10px;line-height:1.2;font-weight:600;border-radius:5px;padding:3px 6px;white-space:nowrap}
.song-type-own{background:#174d54;border:1px solid #267f8c;color:#83ebf5}
.song-type-cover{background:#504125;border:1px solid #88723f;color:#f7d189}
@media(max-width:530px){.song-toolbar{flex-wrap:wrap;gap:7px}.song-toolbar .song-search-wrap{flex-basis:100%;order:0}.song-toolbar .song-type-filter-wrap{order:1;flex:1}.song-toolbar .song-type-filter-wrap select{width:100%}.song-toolbar .song-add{order:2}.song-type-badge{font-size:9px;padding:2px 4px}}

/* 0.1.0.14a4: Einheitliches Raster fuer Songkarten (Desktop und Mobil) */
.song-list .song-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(70px,max-content) 100px;
  align-items:center;
  column-gap:10px;
  min-height:94px;
}
.song-list .song-card-main{min-width:0;display:grid;align-content:center;gap:4px}
.song-list .song-card-title-row{display:grid;justify-items:start;align-content:start;gap:5px;min-width:0}
.song-list .song-card-title-row strong{display:block;min-width:0;width:100%;overflow-wrap:anywhere;line-height:1.25}
.song-list .song-type-badge{justify-self:start}
.song-list .song-card-meta{width:100%;min-width:0;justify-content:flex-start;align-content:center;gap:4px}
.song-list .song-edit{width:100%;max-width:100%;min-height:34px;justify-self:end;text-align:center;padding:6px 7px}
@media(max-width:650px){
  .song-list .song-card{grid-template-columns:minmax(0,1fr) 106px;grid-template-rows:auto auto;gap:5px 10px;align-items:center;min-height:102px}
  .song-list .song-card-main{grid-column:1;grid-row:1;align-self:end}
  .song-list .song-card-meta{grid-column:1;grid-row:2;align-self:start;justify-content:flex-start;flex-wrap:wrap}
  .song-list .song-edit{grid-column:2;grid-row:1 / span 2;align-self:center;width:100%}
  .song-list .song-card-main>span{line-height:1.25}
}
@media(max-width:380px){
  .song-list .song-card{grid-template-columns:minmax(0,1fr) 88px;column-gap:7px}
  .song-list .song-edit{font-size:11px}
}

/* 0.1.0.14a5 – Songkarten: Titel/Interpret oben, Bearbeiten rechts; alle Metadaten darunter */
.song-list .song-card{
  grid-template-columns:minmax(0,1fr) 104px;
  grid-template-rows:auto auto;
  align-items:start;
  gap:7px 10px;
  min-height:0;
}
.song-list .song-card-main{grid-column:1;grid-row:1;align-self:start;align-content:start;gap:3px}
.song-list .song-card-title-row{display:block;min-width:0}
.song-list .song-card-title-row strong{overflow-wrap:anywhere}
.song-list .song-card-main>span{display:block;line-height:1.25}
.song-list .song-card-meta{
  grid-column:1 / -1;
  grid-row:2;
  display:flex;
  width:100%;
  align-items:center;
  justify-content:flex-start;
  align-content:center;
  flex-wrap:wrap;
  gap:5px;
}
.song-list .song-card-meta .song-type-badge{color:#83ebf5;background:#174d54;border:1px solid #267f8c;font-size:10px;font-weight:600;padding:3px 6px;line-height:1.2}
.song-list .song-card-meta .song-type-cover{color:#f7d189;background:#504125;border-color:#88723f}
.song-list .song-edit{grid-column:2;grid-row:1;align-self:start;justify-self:stretch;width:100%;margin:0}
@media(max-width:650px){
  .song-list .song-card{grid-template-columns:minmax(0,1fr) 100px;grid-template-rows:auto auto;gap:6px 7px;min-height:0}
  .song-list .song-card-main{grid-column:1;grid-row:1;align-self:start}
  .song-list .song-card-meta{grid-column:1 / -1;grid-row:2;align-self:center}
  .song-list .song-edit{grid-column:2;grid-row:1;align-self:start}
}
@media(max-width:380px){
  .song-list .song-card{grid-template-columns:minmax(0,1fr) 86px}
  .song-list .song-card-meta .song-type-badge{font-size:9px;padding:2px 4px}
}

/* 0.1.0.14a6 – Feste Startposition der Song-Metadaten nach Typ-Kennzeichnung */
.song-list .song-card-meta{
  display:grid;
  grid-template-columns:100px repeat(3,max-content);
  justify-content:start;
  align-items:center;
  column-gap:5px;
  row-gap:5px;
}
.song-list .song-card-meta .song-type-badge{justify-self:start}
@media(max-width:530px){
  .song-list .song-card-meta{grid-template-columns:86px repeat(3,max-content);column-gap:4px}
  .song-list .song-card-meta span{font-size:10px;padding:3px 4px}
}
@media(max-width:360px){
  .song-list .song-card-meta{grid-template-columns:80px repeat(3,max-content);column-gap:3px}
  .song-list .song-card-meta span{font-size:9px;padding:2px 3px}
}

/* 0.1.0.14b1 – Setlisten-Grundverwaltung */
.setlist-new{display:flex;align-items:end;flex-wrap:wrap;gap:9px;margin:0 0 16px}.setlist-new label{flex:1;min-width:190px}.setlist-new button{white-space:nowrap}
.setlist-collection{display:grid;gap:14px}.setlist-card{padding:15px;border:1px solid #435970;border-radius:12px;background:#263340}.setlist-head h2{font-size:18px;margin:0 0 3px}.setlist-head p{font-size:12px;margin:0 0 12px;color:#b3c8db}.setlist-tracks{margin:0 0 13px;padding:0;list-style:none;counter-reset:track}.setlist-tracks li{counter-increment:track;display:flex;align-items:center;gap:9px;padding:7px 0;border-bottom:1px solid #3a4a5b}.setlist-tracks li:before{content:counter(track) '.';width:24px;flex:none;color:#91c8ff;font-size:12px}.setlist-track-info{flex:1;min-width:0;display:grid;gap:2px}.setlist-track-info strong{font-size:13px;overflow-wrap:anywhere}.setlist-track-info small{font-size:11px;color:#b7c8da}.setlist-duration{font-size:12px;color:#bddcff;white-space:nowrap}.setlist-inline button{font-size:11px;padding:5px 7px}.setlist-empty{font-size:13px;color:#b8cadc}.setlist-admin{display:grid;gap:10px;padding-top:10px}.setlist-add{display:flex;gap:7px;align-items:end}.setlist-add label{flex:1;min-width:0}.setlist-add select{width:100%;min-width:0}.setlist-add button{flex:none}.setlist-management{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.setlist-management form:first-child{display:flex;gap:6px;align-items:end;flex:1;min-width:195px}.setlist-management form:first-child label{flex:1;min-width:100px;font-size:12px}.setlist-management button{font-size:12px;padding:8px}.setlist-management .danger{background:#743943}.setlist-card input,.setlist-card select,.setlist-new input{background:#172533;color:#f3f8ff;border:1px solid #50657c;border-radius:7px;min-height:36px;padding:7px;font-size:13px}
@media(max-width:540px){.setlist-card{padding:11px}.setlist-add{flex-wrap:wrap}.setlist-add label{flex-basis:100%}.setlist-management form:first-child{flex-basis:100%}.setlist-new button{width:100%}.setlist-tracks li{gap:5px}.setlist-inline button{font-size:10px}}

/* 0.1.0.14b1a: alle Songeditor-Aktionen in einer Zeile */
.song-editor .song-editor-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;justify-content:stretch;flex-wrap:nowrap}
.song-editor .song-editor-actions button{width:100%;min-width:0;min-height:34px;padding:6px 5px;font-size:clamp(10px,2.7vw,12px);white-space:nowrap}
.song-editor .song-editor-actions button[hidden]{display:none!important}
/* Löschbestätigung weiterhin mit zwei gleich breiten Aktionen */
.song-delete-confirm .song-editor-actions{grid-template-columns:repeat(2,minmax(0,1fr))}

/* 0.1.0.14b2 – Songreihenfolge Desktop/Touch */
.setlist-drag-handle{touch-action:none;cursor:grab;user-select:none;flex:none;width:28px;min-width:28px;padding:5px 3px;background:#30465e;border:1px solid #536d89;border-radius:6px;color:#b4d7ff;font-size:15px;line-height:1.2}
.setlist-drag-handle:active{cursor:grabbing}
.setlist-tracks li.is-sorting{background:#324e68;outline:1px dashed #91c8ff;border-radius:6px}
.setlist-move-buttons{display:flex;gap:3px;flex:none}
.setlist-move-buttons button{min-width:25px;padding:4px;font-size:13px}
.setlist-order-form{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:-3px 0 12px}
.setlist-order-form button{font-size:12px;padding:7px 10px}
.setlist-order-hint{font-size:11px;color:#9eb6cd}
.setlist-order-form.is-changed button{background:#3976bc;border-color:#83b8ff;color:#fff}
@media(max-width:540px){.setlist-tracks li{gap:4px}.setlist-drag-handle{min-width:25px;width:25px}.setlist-move-buttons button{min-width:22px;padding:3px}.setlist-inline button{padding:4px;font-size:9px}.setlist-order-hint{font-size:10px}}

/* 0.1.0.14b3 – Setgrenzen und Pausen */
.setlist-break-inline{display:flex;justify-content:space-between;gap:8px;flex-basis:100%;align-items:center;margin:6px 0 0;padding:7px 9px;border:1px dashed #6788a8;border-radius:7px;color:#c5e1ff;background:#233a50;font-size:11px}
.setlist-break-inline strong{color:#8ed5ff}
.setlist-tracks li:has(.setlist-break-inline){flex-wrap:wrap}
.setlist-end-time{color:#b5d3ee;font-size:12px;padding:4px 0 12px}
.setlist-break-editor{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin:8px 0 12px;padding:10px;background:#203140;border:1px solid #435970;border-radius:9px}
.setlist-break-editor label{display:grid;gap:4px;flex:1 1 130px;min-width:0;font-size:11px;color:#bbcee0}
.setlist-break-editor label:first-of-type{flex:2 1 220px}
.setlist-break-editor button{font-size:12px;white-space:nowrap;padding:8px 10px}
.setlist-break-actions{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}
.setlist-break-actions form{display:flex;align-items:center;gap:6px;border-radius:7px;background:#253f53;padding:5px 7px;font-size:11px}
.setlist-break-actions button{font-size:11px;padding:5px}
@media(max-width:540px){.setlist-break-editor{padding:8px;gap:7px}.setlist-break-editor label:first-of-type{flex-basis:100%}.setlist-break-editor button{width:100%}.setlist-break-inline{font-size:10px}}


/* 0.1.0.14b3a: Setgrenzen wie Songs bewegen und direkt bearbeiten */
.setlist-break-inline{flex-wrap:wrap;justify-content:flex-start;gap:6px;margin-top:5px}
.setlist-break-inline-form{display:flex;gap:4px;align-items:center;flex-wrap:wrap;margin-left:auto}
.setlist-break-inline-form label{display:flex;align-items:center;gap:4px;font-size:11px}
.setlist-card .setlist-break-inline-form input{width:53px;min-height:29px;height:29px;padding:3px 4px;font-size:12px}
.setlist-break-inline-form button,.setlist-break-delete button{padding:4px 7px;font-size:12px;min-height:29px}
.setlist-break-handle{border:1px solid #547999;border-radius:6px;background:#263f57;color:#b5d8fa;font-size:16px;padding:3px 7px;cursor:grab;touch-action:none;user-select:none}
.setlist-break-handle:active{cursor:grabbing}
.setlist-break-inline.is-moving{outline:2px dashed #8ed5ff;background:#355876}
.setlist-break-delete{margin-left:0}
@media(max-width:540px){.setlist-break-inline-form{margin-left:0}.setlist-break-inline{font-size:10px}}


/* 0.1.0.14b3b – Setgrenzen optisch wieder an 0.1.0.14b2 angenähert */
.setlist-tracks li:has(.setlist-break-inline){flex-wrap:wrap}
.setlist-break-inline{display:flex;align-items:center;gap:9px;flex-basis:calc(100% - 33px);margin:6px 0 0 33px;padding:7px 9px;border:1px dashed #6788a8;border-radius:7px;background:#233a50;color:#d4e7fb;box-sizing:border-box}
.setlist-break-handle{touch-action:none;cursor:grab;user-select:none;flex:none;width:28px;min-width:28px;padding:5px 3px;background:#30465e;border:1px solid #536d89;border-radius:6px;color:#b4d7ff;font-size:15px;line-height:1.2}
.setlist-break-handle:active{cursor:grabbing}
.setlist-break-info{flex:1;min-width:0;display:grid;gap:2px}
.setlist-break-info strong{font-size:13px;color:#f1f7ff}
.setlist-break-info small{font-size:11px;color:#b7c8da}
.setlist-break-inline-action{display:flex;gap:3px;align-items:center;margin:0}
.setlist-break-inline-action button{min-width:25px;padding:4px;font-size:13px}
.setlist-break-inline .setlist-inline{margin:0}
.setlist-break-inline .setlist-inline button{font-size:11px;padding:5px 7px}
.setlist-break-inline.is-moving{outline:1px dashed #91c8ff;background:#324e68}
@media(max-width:540px){.setlist-break-inline{gap:4px;flex-basis:calc(100% - 29px);margin-left:29px;padding:6px 7px}.setlist-break-handle{min-width:25px;width:25px}.setlist-break-inline-action button{min-width:22px;padding:3px}.setlist-break-inline .setlist-inline button{padding:4px;font-size:9px}.setlist-break-info strong{font-size:12px}.setlist-break-info small{font-size:10px}}


/* 0.1.0.14b3c – Setgrenzen linksbündig + Drop-Vorschau */
.setlist-break-inline{flex-basis:100%;margin-left:0;padding:7px 9px 7px 33px;position:relative}
.setlist-break-inline .setlist-break-handle{margin-left:0}
.setlist-break-inline.is-moving{outline:1px dashed #91c8ff;background:#324e68}
.setlist-tracks li.break-drop-target{position:relative;background:rgba(94,157,229,.10);border-radius:6px}
.setlist-tracks li.break-drop-target::after{content:"Setgrenze hier";position:absolute;left:33px;right:6px;bottom:-2px;height:0;border-bottom:2px dashed #8ecbff;color:#8ecbff;font-size:10px;line-height:1;padding-bottom:2px;text-align:right;pointer-events:none;background:linear-gradient(to right,transparent 0,transparent calc(100% - 82px),#263340 calc(100% - 82px),#263340 100%)}
@media(max-width:540px){.setlist-break-inline{padding:6px 7px 6px 29px}.setlist-tracks li.break-drop-target::after{left:29px;font-size:9px;right:4px}}


/* 0.1.0.14b3d – Setgrenzen Feinschliff 2 */
.setlist-break-inline{display:grid;grid-template-columns:24px 28px minmax(0,1fr) auto auto;align-items:center;column-gap:5px;row-gap:0;flex-basis:100%;margin-left:0;padding:7px 9px;border:1px dashed #6788a8;border-radius:7px;background:#233a50;color:#d4e7fb;box-sizing:border-box}
.setlist-break-inline::before{content:"";display:block;width:24px;height:1px;grid-column:1}
.setlist-break-handle{grid-column:2;justify-self:start;margin:0}
.setlist-break-info{grid-column:3;min-width:0;display:grid;gap:1px}
.setlist-break-info strong{font-size:13px;letter-spacing:.04em}
.setlist-break-info small{font-size:11px;color:#b7c8da}
.setlist-break-inline > .setlist-move-buttons{grid-column:4}
.setlist-break-inline > .setlist-inline{grid-column:5}
.setlist-tracks li.break-drop-target::after{content:"";position:absolute;left:33px;right:6px;bottom:-2px;height:0;border-bottom:2px dashed #8ecbff;pointer-events:none}
@media(max-width:540px){.setlist-break-inline{grid-template-columns:24px 25px minmax(0,1fr) auto auto;column-gap:4px;padding:6px 7px}.setlist-break-inline::before{width:24px}.setlist-break-handle{min-width:25px;width:25px}.setlist-tracks li.break-drop-target::after{left:29px;right:4px}}

/* 0.1.0.14b3e – Griff exakt auf Songgriff-Spalte (Listenzähler 24px + gap) */
.setlist-break-inline{grid-template-columns:28px minmax(0,1fr) auto auto;column-gap:9px;padding-left:32px}
.setlist-break-inline::before{display:none;content:none}
.setlist-break-inline .setlist-break-handle{grid-column:1;justify-self:start}
.setlist-break-inline .setlist-break-info{grid-column:2}
.setlist-break-inline > .setlist-move-buttons{grid-column:3}
.setlist-break-inline > .setlist-inline{grid-column:4}
@media(max-width:540px){
  .setlist-break-inline{grid-template-columns:25px minmax(0,1fr) auto auto;column-gap:4px;padding-left:27px}
}


/* 0.1.0.14b3f – Übersicht, Detail und Bearbeitungsmodus */
.setlist-open-create{display:block;margin:0 0 16px;width:100%;max-width:380px}
.setlist-overview{display:grid;gap:10px}
.setlist-overview-card{display:flex;width:100%;align-items:center;gap:12px;text-align:left;background:#28394a;color:#f1f7ff;border:1px solid #46627f;border-radius:11px;padding:14px;cursor:pointer}
.setlist-overview-card:hover,.setlist-overview-card:focus-visible{border-color:#85bfff;background:#304962}
.setlist-overview-info{flex:1;min-width:0;display:grid;gap:6px}
.setlist-overview-info strong{font-size:16px;overflow-wrap:anywhere}
.setlist-overview-info small{font-size:12px;color:#b5cee8}
.setlist-overview-arrow{font-size:23px;color:#8dc2ff}
.setlist-detail-nav{margin-bottom:10px}
.setlist-detail-nav button{font-size:12px;padding:7px 10px}
.setlist-title-group{display:flex;align-items:center;gap:7px;min-width:0}
.setlist-title-group h2{margin:0;min-width:0;overflow-wrap:anywhere}
.setlist-title-edit{padding:4px 8px;font-size:16px;flex:none}
.setlist-head{display:flex;align-items:start;justify-content:space-between;gap:8px}
.setlist-head>div:first-child{min-width:0;flex:1}
.setlist-header-actions{display:flex;gap:6px;flex:none}
.setlist-header-actions button{font-size:19px;padding:5px 10px;min-width:38px}
.setlist-edit-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 13px}
.setlist-edit-toolbar button{padding:8px 12px;font-size:12px}
.setlist-card[data-ui-mode="view"] .setlist-drag-handle,.setlist-card[data-ui-mode="view"] .setlist-move-buttons,.setlist-card[data-ui-mode="view"] .setlist-inline,.setlist-card[data-ui-mode="view"] .setlist-break-handle,.setlist-card[data-ui-mode="view"] .setlist-order-form,.setlist-card[data-ui-mode="view"] .setlist-break-editor,.setlist-card[data-ui-mode="view"] .setlist-admin,.setlist-card[data-ui-mode="view"] .setlist-title-edit,.setlist-card[data-ui-mode="view"] .setlist-edit-toolbar{display:none!important}
.setlist-card[data-ui-mode="edit"] .setlist-header-actions .setlist-edit-toggle{display:none!important}
.setlist-card[data-ui-mode="edit"] .setlist-break-editor,.setlist-card[data-ui-mode="edit"] .setlist-admin .setlist-add,.setlist-card[data-ui-mode="edit"] .setlist-management form:first-child{display:none!important}
.setlist-card[data-ui-mode="edit"] .setlist-management{padding-top:10px}
.setlist-card[data-ui-mode="edit"] .setlist-title-edit{display:inline-flex}
.setlist-card[data-ui-mode="view"] .setlist-break-inline{grid-template-columns:minmax(0,1fr);padding:8px 12px}
.setlist-card[data-ui-mode="view"] .setlist-break-info{grid-column:1}
.setlist-card[data-ui-mode="view"] .setlist-break-inline::before{display:none}
.setlist-ui-dialog{width:min(94vw,480px);max-height:min(85vh,740px);overflow:auto;box-sizing:border-box;background:#202b39;color:#edf5ff;border:1px solid #57718b;border-radius:13px;padding:18px;box-shadow:0 18px 60px #0009}
.setlist-ui-dialog::backdrop{background:#000a}
.setlist-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}
.setlist-dialog-head h2{font-size:17px;margin:0}
.setlist-dialog-head button{padding:3px 9px;font-size:22px}
.setlist-dialog-buttons{display:flex;gap:9px;justify-content:flex-end;margin-top:12px}
.setlist-dialog-buttons button{min-height:34px;padding:7px 12px}
.setlist-ui-dialog .setlist-new{display:grid;gap:9px;margin:0}
.setlist-ui-dialog form label{display:grid;gap:6px;font-size:12px;color:#d0e0f0}
.setlist-ui-dialog input,.setlist-ui-dialog select{width:100%;min-width:0;box-sizing:border-box;background:#172533;color:#f3f8ff;border:1px solid #50657c;border-radius:7px;min-height:36px;padding:7px;font-size:14px}
.setlist-ui-dialog .setlist-add,.setlist-ui-dialog .setlist-break-editor,.setlist-ui-dialog .setlist-management form:first-child{display:grid!important;padding:0;margin:0;background:none;border:0;gap:8px}
.setlist-ui-dialog .setlist-add label,.setlist-ui-dialog .setlist-break-editor label{min-width:0;flex:none}
.setlist-ui-dialog .setlist-dialog-buttons button{white-space:nowrap}
@media(max-width:540px){.setlist-overview-card{padding:12px}.setlist-overview-info strong{font-size:14px}.setlist-detail-nav{margin-top:0}.setlist-ui-dialog{padding:13px}.setlist-edit-toolbar{gap:6px}.setlist-edit-toolbar button{font-size:11px;padding:7px 9px}}

#setlist-detail-collection[hidden],#setlist-overview[hidden],#setlist-open-create[hidden]{display:none!important}

/* 0.1.0.14b3g – Setlisten-Ansichten zuverlässig trennen und Header korrigieren */
#setlist-detail-collection[hidden],#setlist-overview[hidden],#setlist-open-create[hidden],
#setlist-detail-collection .setlist-card[hidden]{display:none!important}
.setlist-card .setlist-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-width:0}
.setlist-card .setlist-head-main{min-width:0;flex:1 1 auto;width:auto;max-width:100%}
.setlist-card .setlist-title-group{display:flex;align-items:center;gap:7px;min-width:0;flex-wrap:wrap}
.setlist-card .setlist-title-group h2{display:block;min-width:0;max-width:100%;overflow-wrap:break-word;word-break:normal;white-space:normal;flex:0 1 auto;font-size:18px;line-height:1.3}
.setlist-card .setlist-head-main p{margin:5px 0 12px;font-size:12px;line-height:1.55}
.setlist-card .setlist-header-actions{flex:0 0 auto;display:flex;align-items:center;gap:6px}
.setlist-card .setlist-header-actions button{display:inline-flex;align-items:center;justify-content:center;width:38px;height:36px;min-width:38px;padding:5px}
.setlist-card .setlist-header-actions svg{display:block;flex-shrink:0}
.setlist-card[data-ui-mode="view"] .setlist-edit-toolbar,
.setlist-card[data-ui-mode="view"] .setlist-drag-handle,
.setlist-card[data-ui-mode="view"] .setlist-move-buttons,
.setlist-card[data-ui-mode="view"] .setlist-inline,
.setlist-card[data-ui-mode="view"] .setlist-break-handle,
.setlist-card[data-ui-mode="view"] .setlist-order-form,
.setlist-card[data-ui-mode="view"] .setlist-break-editor,
.setlist-card[data-ui-mode="view"] .setlist-admin,
.setlist-card[data-ui-mode="view"] .setlist-title-edit{display:none!important}
.setlist-card[data-ui-mode="edit"] .setlist-header-actions{display:none!important}
@media(max-width:540px){.setlist-card .setlist-head{gap:8px}.setlist-card .setlist-head-main{min-width:0}.setlist-card .setlist-header-actions button{width:34px;min-width:34px;height:34px}}

/* 0.1.0.14b3i – Setlistenübersicht, gemeinsame Speicherleiste und Pauseneditor */
.setlist-open-create{display:block;width:max-content;max-width:100%;margin:0 0 16px auto;padding:9px 15px}
.setlist-save-delete-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;flex-wrap:wrap}
.setlist-save-delete-row .setlist-order-form{margin:0;flex:0 1 auto}
.setlist-save-delete-row .setlist-delete-form{margin:0 0 0 auto}
.setlist-save-delete-row .setlist-delete-form button{font-size:12px;padding:7px 10px}
.setlist-card[data-ui-mode="view"] [data-break-edit],.setlist-card[data-ui-mode="view"] [data-break-remove]{display:none!important}
.setlist-break-inline{grid-template-columns:24px 28px minmax(0,1fr) auto auto auto}
.setlist-break-inline [data-break-edit],.setlist-break-inline [data-break-remove]{min-width:25px;padding:4px;font-size:12px;white-space:nowrap}
.setlist-break-inline [data-break-edit]{background:#30465e;border:1px solid #536d89;color:#b4d7ff}
.setlist-leave-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}
.setlist-leave-actions button{flex:1 1 auto;min-width:120px;padding:9px 10px;font-size:12px}
.setlist-has-draft .setlist-save-delete-row .setlist-order-form button{background:#3976bc;color:white;border-color:#7db5ff}
@media(max-width:540px){.setlist-break-inline{grid-template-columns:24px 25px minmax(0,1fr) auto auto auto;column-gap:3px}.setlist-break-inline [data-break-edit],.setlist-break-inline [data-break-remove]{font-size:9px;padding:4px 3px}.setlist-save-delete-row{gap:6px}.setlist-save-delete-row button{font-size:11px!important}}
.setlist-card[data-ui-mode="view"] .setlist-save-delete-row{display:none!important}


/* 0.1.0.14b3j – Titelzeile + stabile Pausen-Werkzeugleiste */
.setlist-overview-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px}
.setlist-overview-heading .calendar-heading{margin:0;min-width:0}
.setlist-overview-heading .setlist-open-create{flex:none;width:auto;max-width:52%;margin:0;padding:7px 10px;font-size:12px;line-height:1.25;min-height:34px;white-space:normal;text-align:center}
@media(max-width:540px){.setlist-overview-heading{gap:8px}.setlist-overview-heading .setlist-open-create{padding:6px 9px;font-size:11px;min-height:30px}}
/* Bei Pausen greifen die dynamischen Buttons auf dieselben festen Spalten wie Songaktionen zu. */
.setlist-card[data-ui-mode="edit"] .setlist-break-inline{display:grid;grid-template-columns:25px minmax(0,1fr) auto auto auto;align-items:center;column-gap:4px;padding-left:27px;gap:4px}
.setlist-card[data-ui-mode="edit"] .setlist-break-inline>.setlist-break-handle{grid-column:1}
.setlist-card[data-ui-mode="edit"] .setlist-break-inline>.setlist-break-info{grid-column:2;min-width:0}
.setlist-card[data-ui-mode="edit"] .setlist-break-inline>.setlist-move-buttons{grid-column:3;white-space:nowrap}
.setlist-card[data-ui-mode="edit"] .setlist-break-inline>[data-break-edit]{grid-column:4;flex:none}
.setlist-card[data-ui-mode="edit"] .setlist-break-inline>[data-break-remove]{grid-column:5;flex:none}
.setlist-card[data-ui-mode="edit"] .setlist-break-inline .setlist-move-buttons button{padding:3px;min-width:22px}
.setlist-card[data-ui-mode="edit"] .setlist-break-inline .setlist-break-info small{white-space:nowrap}
@media(min-width:541px){.setlist-card[data-ui-mode="edit"] .setlist-break-inline{grid-template-columns:28px minmax(0,1fr) auto auto auto;padding-left:32px;column-gap:9px}}


/* 0.1.0.14b3k – neue Song- und Pauseneinträge im Entwurf hervorheben */
.setlist-tracks li.setlist-new-entry{border-radius:7px;background:#294c61;box-shadow:inset 3px 0 #71ceff;padding-left:6px;padding-right:4px}
.setlist-tracks .setlist-break-inline.setlist-new-entry{background:#29546d;border-color:#82d6ff;box-shadow:0 0 0 1px #71ceff55}
.setlist-ui-dialog [hidden]{display:none!important}

/* 0.1.0.14b3l – Positionsmarkierung entspricht exakt dem Einfügepunkt */
.setlist-tracks li.break-drop-target.song-drop-before::after{bottom:auto;top:-2px}

/* 0.1.0.14b3m: ruhiger Fingerkontakt, pausenbezogene Drag-Hervorhebung */
.setlist-drag-handle,.setlist-break-handle{touch-action:pan-y;}
.setlist-drag-handle.drag-hold-active,.setlist-break-handle.drag-hold-active{touch-action:none;outline:2px solid #82d6ff;outline-offset:1px;}
.setlist-break-inline.is-pause-sorting{background:#355876;outline:2px dashed #8ed5ff;outline-offset:-2px;}
.setlist-tracks li.pause-drop-target{background:transparent;outline:none;position:relative;}
.setlist-tracks li.pause-drop-target::after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:0;border-bottom:2px dashed #8ecbff;pointer-events:none;}

/* 0.1.0.14b3n: Eigenständige Pausenzeilen; kein gemeinsamer Song-Container */
.setlist-tracks > li.setlist-pause-row{counter-increment:none;display:block;position:relative;padding:0;margin:5px 0 5px 0;border-bottom:0;min-width:0}
.setlist-tracks > li.setlist-pause-row::before{content:none;display:none}
.setlist-tracks > li.setlist-pause-row .setlist-break-inline{margin:0;min-width:0;width:100%;box-sizing:border-box}
.setlist-tracks > li.setlist-pause-row.is-pause-sorting .setlist-break-inline{outline:2px dashed #8ed5ff;background:#355876;outline-offset:-2px}
.setlist-tracks > li.setlist-pause-row.setlist-new-entry{padding:0;background:transparent;box-shadow:none}
.setlist-tracks > li.setlist-pause-row.setlist-new-entry .setlist-break-inline{background:#29546d;border-color:#82d6ff;box-shadow:0 0 0 1px #71ceff55}
.setlist-drag-handle,.setlist-break-handle{touch-action:pan-y}
.setlist-tracks > li[data-sort-item]{min-width:0}
/* Touchbewegung erst nach 1 s durch den aktiven JS-Touch-Handler abfangen; davor normales Scrollen. */
.setlist-drag-handle,.setlist-break-handle{touch-action:auto}

/* 0.1.0.14b4b – Song(s)-Picker mit Suche und Mehrfachauswahl */
.setlist-song-picker{width:min(94vw,620px);max-height:min(90dvh,850px);overflow:hidden;display:flex;flex-direction:column}
.setlist-song-picker-source{display:none!important}
.setlist-song-picker-body{display:flex;flex-direction:column;min-height:0;flex:1;gap:9px}
.setlist-song-picker-search{width:100%;min-height:42px;font-size:15px!important}
.setlist-song-picker-count{margin:0;color:#b8ccdf;font-size:12px}
.setlist-song-picker-list{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;border:1px solid #466078;border-radius:9px;background:#182635}
.setlist-song-picker-row{display:flex!important;flex-direction:row!important;align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid #34485e;cursor:pointer;min-height:45px;color:#f2f7ff}
.setlist-song-picker-row:last-child{border-bottom:0}
.setlist-song-picker-row[hidden]{display:none!important}
.setlist-song-picker-row:has(input:checked){background:#245371}
.setlist-song-picker-row input[type=checkbox]{width:19px!important;height:19px!important;min-height:0!important;flex:0 0 19px;accent-color:#71c4ff}
.setlist-song-picker-meta{display:flex;flex-direction:column;gap:2px;min-width:0}
.setlist-song-picker-meta strong{font-size:14px;line-height:1.25;overflow-wrap:anywhere}
.setlist-song-picker-meta small{font-size:11px;color:#bed0e3}
.setlist-song-picker-actions{margin-top:3px}
@media(max-width:540px){.setlist-song-picker{max-height:92dvh}.setlist-song-picker-row{padding:9px 10px}.setlist-song-picker-meta strong{font-size:13px}}
.setlist-song-picker:not([open]){display:none!important}

/* 0.1.0.14b4c: Songauswahl – altes Formular vollständig ausblenden */
.setlist-ui-dialog form.setlist-add.setlist-song-picker-source{display:none!important}
.setlist-song-picker-filter{width:100%;min-height:39px;background:#172533;color:#edf5ff;border:1px solid #50657c;border-radius:7px;padding:7px;font-size:13px}
.setlist-song-picker-number{width:23px;height:23px;flex:0 0 23px;border:1px solid #7695b1;border-radius:5px;display:grid;place-items:center;font-weight:700;font-size:12px;color:#fff}
.setlist-song-picker-row:has(input:checked) .setlist-song-picker-number{background:#3976bc;border-color:#83d0ff}
.setlist-song-picker-row input[type=checkbox]{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;pointer-events:none}
.setlist-song-picker-row:focus-within{outline:2px solid #89caff;outline-offset:-2px}

/* 0.1.0.14b4d – Stabile mobile Song-Auswahl ohne Dialog-Sprünge */
.setlist-ui-dialog.setlist-song-picker[open]{display:flex!important;flex-direction:column;overflow:hidden!important;height:min(85dvh,760px);max-height:calc(100dvh - 28px);min-height:0}
.setlist-song-picker .setlist-dialog-head{flex:0 0 auto}
.setlist-song-picker .setlist-song-picker-body{flex:1 1 0;min-height:0;overflow:hidden}
.setlist-song-picker .setlist-song-picker-search,.setlist-song-picker .setlist-song-picker-filter,.setlist-song-picker .setlist-song-picker-count,.setlist-song-picker .setlist-song-picker-actions{flex:0 0 auto}
.setlist-song-picker .setlist-song-picker-list{flex:1 1 0;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
@media(max-width:540px){.setlist-ui-dialog.setlist-song-picker[open]{height:min(83dvh,750px)}}

/* b4f: no native hidden checkbox focus/scroll jumps in Android Chrome. */
.setlist-song-picker .setlist-song-picker-list{overflow-anchor:none;contain:layout;touch-action:pan-y}
.setlist-song-picker .setlist-song-picker-row{user-select:none;-webkit-user-select:none;touch-action:pan-y}
.setlist-song-picker .setlist-song-picker-row[aria-checked="true"]{background:#245371}
.setlist-song-picker .setlist-song-picker-row[aria-checked="true"] .setlist-song-picker-number{background:#3976bc;border-color:#83d0ff}
.setlist-song-picker .setlist-song-picker-row:focus-visible{outline:2px solid #89caff;outline-offset:-2px}

/* 0.1.0.14b5 – Setlistenzuordnung für einzelne Proben/Auftritte */
.event-setlist-panel{margin:14px 0;padding:12px;border:1px solid #4e6680;border-radius:9px;background:#1c2c3d}
.event-setlist-panel[hidden],.event-setlist-panel [hidden]{display:none!important}
.event-setlist-panel h3{margin:0 0 9px;font-size:1rem}
.event-setlist-panel p{margin:5px 0;color:#b8c9dc}
.event-setlist-links{display:flex;gap:9px;flex-wrap:wrap;margin-top:9px}
.event-setlist-links a{display:inline-block;padding:7px 10px;background:#2d526f;color:#f4faff;border-radius:6px;font-weight:600;text-decoration:none}
.event-setlist-form{display:flex;gap:9px;align-items:flex-end;flex-wrap:wrap;margin-top:12px}
.event-setlist-form label{flex:1 1 200px;display:grid;gap:5px;font-size:.9rem}
.event-setlist-form select{width:100%;min-height:39px;background:#172533;color:#f0f6ff;border:1px solid #67809a;border-radius:6px;padding:6px}
.event-setlist-form button{flex:0 0 auto}

/* 0.1.0.14b5a: eigene Setlisten-Auswahl bei Proben/Auftritten */
.event-setlist-form[hidden],.event-setlist-form [hidden]{display:none!important}
.event-setlist-open-picker{margin-top:10px}
.event-setlist-picker{box-sizing:border-box;width:min(94vw,510px);max-height:min(82dvh,760px);padding:16px;border:1px solid #526d8a;border-radius:12px;background:#1b2b3c;color:#f0f6ff;overflow:hidden}
.event-setlist-picker::backdrop{background:rgba(0,0,0,.74)}
.event-setlist-picker[open]{display:flex;flex-direction:column;gap:12px}
.event-setlist-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.event-setlist-picker-head h2{font-size:1.12rem;margin:0}
.event-setlist-picker-head button{flex-shrink:0}
.event-setlist-search-label{display:grid;gap:5px;color:#c6d5e5;font-size:.88rem}
.event-setlist-search-label input{box-sizing:border-box;width:100%;min-height:40px;padding:9px 11px;border:1px solid #67809a;border-radius:7px;background:#152332;color:#f0f6ff;font:inherit}
.event-setlist-picker-list{min-height:0;overflow-y:auto;overscroll-behavior:contain;display:grid;align-content:start;gap:5px;flex:1 1 auto;max-height:55dvh}
.event-setlist-option{display:block;width:100%;text-align:left;padding:10px 12px;min-height:44px;border:1px solid #49627c;border-radius:7px;background:#22374b;color:#fff;font:inherit;cursor:pointer}
.event-setlist-option span{display:block;font-size:.8rem;color:#b7cbe0}
.event-setlist-option[hidden]{display:none!important}
.event-setlist-option.is-selected{border-color:#77cdf6;background:#305570;box-shadow:inset 3px 0 #77cdf6}
.event-setlist-no-results{color:#bacbdd;margin:6px 0}
.event-setlist-no-results[hidden]{display:none!important}
.event-setlist-picker-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}

/* b5b: schlanker Setlist-Bereich im Einzeltermin */
.calendar-single-dialog .event-setlist-panel{margin:13px 0 0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.calendar-single-dialog .event-setlist-head{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:32px}
.calendar-single-dialog .event-setlist-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.calendar-single-dialog .event-setlist-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-width:32px;min-height:32px;padding:5px;border:1px solid #536b83;border-radius:7px;background:#34475c;color:#e8f4ff;text-decoration:none;cursor:pointer;box-sizing:border-box}
.calendar-single-dialog .event-setlist-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}
.calendar-single-dialog .event-setlist-icon[hidden]{display:none!important}
.calendar-single-dialog #event-setlist-current{margin:4px 0 0}
.calendar-single-dialog #event-setlist-name{overflow-wrap:anywhere}
.calendar-single-dialog #event-setlist-empty,
.calendar-single-dialog .event-setlist-form{display:none}

/* 0.1.0.14b5d – Terminpopup: lesbare Abschnittstitel und dezente Gliederung.
   Beide Überschriften verwenden weiterhin dieselbe gemeinsame Typografie. */
.calendar-single-dialog #participation-panel h3,
.calendar-single-dialog .event-setlist-head h3,
.calendar-single-dialog .rehearsal-move-panel h3 {
  font-size:16px;
}
/* Abschnittstrenner: folgen der tatsächlichen Sichtbarkeit der Sektionen.
   Ein versteckter Setlist-Bereich erzeugt keine überflüssige Linie. */
.calendar-single-dialog #event-setlist-panel:not([hidden]),
.calendar-single-dialog #participation-panel:not([hidden]) {
  border-top:1px solid rgba(162,185,210,.24);
  padding-top:13px;
  margin-top:15px;
}
@media(max-width:530px) {
  .calendar-single-dialog #event-setlist-panel:not([hidden]),
  .calendar-single-dialog #participation-panel:not([hidden]) {
    padding-top:11px;
    margin-top:13px;
  }
}

/* 0.1.0.14b5e – Zugabe als eigenständiger, verschiebbarer Trenner */
.setlist-tracks > li.setlist-encore-row{counter-increment:none;display:block;position:relative;padding:0;margin:5px 0;border-bottom:0;min-width:0}
.setlist-tracks > li.setlist-encore-row::before{content:none;display:none}
.setlist-tracks > li.setlist-encore-row .setlist-break-inline{margin:0;min-width:0;width:100%;box-sizing:border-box}
.setlist-card[data-ui-mode="edit"] .setlist-encore-row .setlist-break-inline{display:grid;grid-template-columns:25px minmax(0,1fr) auto auto;gap:4px;align-items:center;padding-left:27px}
.setlist-card[data-ui-mode="edit"] .setlist-encore-row .setlist-break-info{min-width:0}
.setlist-encore-handle{touch-action:auto}
.setlist-encore-handle.drag-hold-active{outline:2px solid #82d6ff;outline-offset:1px}
.setlist-tracks > li.setlist-encore-row.is-encore-sorting .setlist-break-inline{outline:2px dashed #8ed5ff;background:#355876;outline-offset:-2px}
.setlist-tracks > li.setlist-encore-row.setlist-new-entry .setlist-break-inline{background:#29546d;border-color:#82d6ff;box-shadow:0 0 0 1px #71ceff55}
.setlist-card[data-ui-mode="view"] .setlist-encore-row .setlist-break-inline{display:block;padding:8px 12px}
.setlist-card[data-ui-mode="view"] .setlist-encore-row .setlist-break-inline>*:not(.setlist-break-info){display:none}
@media(min-width:541px){.setlist-card[data-ui-mode="edit"] .setlist-encore-row .setlist-break-inline{grid-template-columns:28px minmax(0,1fr) auto auto;padding-left:32px;column-gap:9px}}
.setlist-encore-handle{cursor:grab;user-select:none;flex:none;width:28px;min-width:28px;padding:5px 3px;background:#30465e;border:1px solid #536d89;border-radius:6px;color:#b4d7ff;font-size:15px;line-height:1.2;justify-self:start}
.setlist-encore-handle:active{cursor:grabbing}
@media(max-width:540px){.setlist-encore-handle{min-width:25px;width:25px}}

/* 0.1.0.14b5h: Dashboard shortcuts reuse the exact navigation SVGs */
.band-dashboard-card-links{display:flex;align-items:center;justify-content:flex-start;gap:9px;width:100%;margin-top:auto}
.band-dashboard-card-links>.band-dashboard-icon-link:last-child{justify-self:auto;align-self:center;text-align:left}
.band-dashboard-icon-link{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;width:36px;height:36px;min-width:36px;padding:6px!important;margin-top:auto;color:#a9d4ff!important;border:1px solid #4e7094;border-radius:8px;background:#2d4054;text-decoration:none!important}
.band-dashboard-icon-link svg{display:block;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.band-dashboard-icon-link:hover,.band-dashboard-icon-link:focus-visible{background:#385572;outline-offset:2px}

/* 0.1.0.14b5i: Eigene Teilnahme per Namens-Chip und eigenem Dialog */
.calendar-single-dialog .participation-own-chip{appearance:none;font-family:inherit;font-size:12px;font-weight:600;line-height:1.2;padding:5px 8px;cursor:pointer;touch-action:manipulation}
.calendar-single-dialog .participation-own-chip:focus-visible{outline:2px solid #80cffc;outline-offset:3px}
.calendar-single-dialog #participation-panel .participation-auto-submit{display:none}
.participation-choice-dialog{color:#eaf3ff;background:#202b39;border:1px solid #50677e;border-radius:13px;padding:16px;width:min(92vw,390px);max-height:85dvh;box-shadow:0 20px 55px #0009}
.participation-choice-dialog::backdrop{background:rgba(0,0,0,.66)}
.participation-choice-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.participation-choice-head h2{margin:0;font-size:18px;color:#f4f8ff}
.participation-choice-head button{min-width:34px;min-height:34px}
#participation-choice-name{font-size:13px;color:#bdcfe2;margin:10px 0 14px}
.participation-choice-options{display:grid;gap:9px}
.participation-choice-options button{border:1px solid #536c87;border-radius:9px;background:#2c3d50;padding:9px 12px;text-align:left;cursor:pointer;min-height:46px}
.participation-choice-options button.is-selected{border-color:#72caff;background:#294c66}
.participation-choice-options .proben-name-chip{font-size:14px}

/* 0.1.0.14b5j: Native button chip must match adjacent span chips on mobile. */
@media(max-width:540px){.calendar-single-dialog .participation-own-chip{font-size:11px;padding:4px 7px}}

/* 0.1.0.14b5k – visually unmistakable currently saved participation status. */
.participation-choice-options button.is-selected {
  position:relative;
  border:2px solid #80d7ff;
  background:#315878;
  box-shadow:inset 0 0 0 1px #b1eaff,0 0 0 2px rgba(128,215,255,.19);
  padding-right:46px;
}
.participation-choice-options button.is-selected::after {
  content:"✓";
  display:grid;
  place-items:center;
  position:absolute;
  right:12px;
  top:50%;
  transform:translateY(-50%);
  width:23px;
  height:23px;
  border-radius:50%;
  color:#142536;
  background:#92ddff;
  font-size:17px;
  font-weight:800;
}

/* b5n: Zeitraumfilter der Probenplanung, responsiv und ohne Layout-Verschiebungen. */
.proben-range-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.proben-range-head .proben-heading{margin-bottom:0}
.proben-range-form{display:flex;align-items:center;gap:8px;margin:0}
.proben-range-form label{font-size:12px;color:#b9cde2}
.proben-range-form select{font-size:13px;min-height:34px;max-width:150px;padding:5px 26px 5px 9px}
.proben-response[hidden]{display:none!important}
.proben-name-chip.participation-own-chip{font-family:inherit;cursor:pointer}
@media(max-width:500px){.proben-range-head{align-items:center}.proben-range-form label{display:none}.proben-range-form select{font-size:13px}}

/* b5o: kompakte Zeitraumwahl und direkt sichtbare Teilnehmerchips */
.proben-range-head{gap:8px;flex-wrap:nowrap;align-items:center}
.proben-range-form{gap:5px;flex:0 0 auto}
.proben-range-form select{height:28px;min-height:28px;max-width:115px;padding:2px 22px 2px 7px;font-size:11px;line-height:1.1}
.proben-range-form label{font-size:11px}
.proben-list .proben-participant-chips-direct{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0}
@media(max-width:500px){
 .proben-range-head{gap:6px}
 .proben-range-form select{height:27px;min-height:27px;max-width:100px;padding:2px 20px 2px 6px;font-size:11px}
}

/* b6b: Setlist-Suche in der Übersicht; Reihenfolge wird nicht verändert. */
.setlist-overview-search{margin:0 0 12px}
.setlist-overview-search label{display:block;margin-bottom:5px;font-size:12px;color:var(--muted,#b7c9d9)}
.setlist-overview-search input{width:100%;box-sizing:border-box;max-width:460px}
.setlist-overview-card[hidden],.setlist-overview-search[hidden]{display:none!important}

/* 0.1.0.15b – kompakte Verschiebungsabstimmung im Einzeltermin.
   Die Überschrift nutzt absichtlich die gemeinsame Setlist-Typografie. */
.calendar-single-dialog .rehearsal-move-request-action{display:flex;justify-content:flex-end;margin:8px 0 2px}
.calendar-single-dialog .rehearsal-move-request-action[hidden],
.calendar-single-dialog .rehearsal-move-panel[hidden],
.rehearsal-move-dialog [hidden]{display:none!important}
.calendar-single-dialog .rehearsal-move-request-action button{font-size:12px;padding:7px 10px}
.calendar-single-dialog .rehearsal-move-panel{border-top:1px solid rgba(162,185,210,.24);padding-top:13px;margin-top:15px}
/* Bestehende Setlist-Formatierung 1:1 mitnutzen. */
.calendar-single-dialog .rehearsal-move-panel h3{line-height:1.2;margin:0 0 8px}
/* Bestehende Formatierung von „Keine Setlist zugeordnet“ unverändert mitnutzen. */
.calendar-single-dialog .rehearsal-move-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}
.calendar-single-dialog .rehearsal-move-actions button{font-size:12px}
.rehearsal-move-dialog .rehearsal-move-vote-choice{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;min-width:0;width:100%;cursor:pointer}
.rehearsal-move-dialog .rehearsal-move-vote-choice input[type="radio"]{appearance:auto;flex:0 0 19px;width:19px;height:19px;margin:0;accent-color:#70acff}
.rehearsal-move-dialog .rehearsal-move-vote-choice span{flex:1;min-width:0}
@media(max-width:530px){.calendar-single-dialog .rehearsal-move-panel{padding-top:11px;margin-top:13px}}

/* 0.1.0.15b – dezenter Statushinweis in Dashboard und Probenteilnahme. */
.rehearsal-move-indicator{font-size:12px;color:#b8c9dc;line-height:1.35;margin:7px 0}

/* 0.1.0.15c3: Abgeschlossene Verschiebung deutlich markieren. */
.calendar-single-dialog #rehearsal-move-share-completed:not([hidden]){border:2px solid #FF6B6B;color:#FFB0A6;background:transparent;font-weight:600}
.calendar-single-dialog #rehearsal-move-share-completed:not([hidden]):hover{background:rgba(255,107,107,.12)}
/* Neuigkeiten sind bewusst keine zusätzliche Dashboard-Karte. */
.band-dashboard-unread{margin:13px 0 0;text-align:center}
.band-dashboard-unread form{display:inline}
.band-dashboard-unread button{appearance:none;background:none;border:0;color:#FF0000!important;font-size:12px;font-weight:700;line-height:1.4;cursor:pointer;padding:5px 7px;text-decoration:none}
.band-dashboard-unread button:hover,.band-dashboard-unread button:focus-visible{text-decoration:underline}

/* 0.1.0.15c4 – Nur Termin-Einzelansicht: vorhandenen rechten Aktionsbereich
   wieder an der UNTEREN Kante der linken Informationen verankern. */
.calendar-single-dialog .event-obligation-row{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:10px;
  min-width:0;
}
.calendar-single-dialog .event-obligation-row>.event-info-lines{
  flex:1 1 auto;
  min-width:0;
}
.calendar-single-dialog .event-obligation-row>.rehearsal-move-request-action:not([hidden]){
  flex:0 0 auto;
  align-self:flex-end;
  margin:0 0 2px auto;
  justify-content:flex-end;
}
.calendar-single-dialog .event-obligation-row>.rehearsal-move-request-action button{
  white-space:nowrap;
}
/* Der rote Hinweis bleibt lesbar, der Leerraum darunter wird reduziert.
   Nur Dashboard mit angezeigtem Hinweis – andere Seiten unverändert. */
.panel:has(.band-dashboard-unread){padding-bottom:12px}
.panel:has(.band-dashboard-unread)+footer{padding-top:12px}
.band-dashboard-unread{margin-top:8px;margin-bottom:0;line-height:1.2}
.band-dashboard-unread button{padding:2px 5px}
@media(max-width:420px){
 .calendar-single-dialog .event-obligation-row{gap:6px}
 .calendar-single-dialog .event-obligation-row>.rehearsal-move-request-action button{font-size:11px;padding:6px 8px}
}

/* 0.1.0.15c5: Aktionsbutton darf die Infoblock-Hoehe NICHT vergroessern.
   Bewusst nur im Einzeltermin, und nur wenn die Aktion sichtbar ist. */
.calendar-single-dialog .event-obligation-row:has(>.rehearsal-move-request-action:not([hidden])){
  display:block;
  position:relative;
  min-height:0;
}
.calendar-single-dialog .event-obligation-row:has(>.rehearsal-move-request-action:not([hidden]))>.event-info-lines{
  padding-right:180px;
}
.calendar-single-dialog .event-obligation-row>.rehearsal-move-request-action:not([hidden]){
  position:absolute;
  right:0;
  bottom:0;
  margin:0;
  width:auto;
  align-self:auto;
}
@media(max-width:420px){
 .calendar-single-dialog .event-obligation-row:has(>.rehearsal-move-request-action:not([hidden]))>.event-info-lines{padding-right:158px}
}

/* 1.1-test1a: Regression nach Einfuehrung von .event-info-lines beheben.
   Die vier Termininfo-Absätze sind keine direkten Dialogkinder mehr;
   dieselben kompakten Werte wie die bestaetigte Originalregel anwenden. */
.calendar-single-dialog .event-info-lines > p{font-size:12px;line-height:1.4;margin:5px 0;color:#cdd9e8;white-space:pre-wrap;max-width:none}
.calendar-single-dialog .event-info-lines > p:empty{display:none}
@media(max-width:530px){
  .calendar-single-dialog .event-info-lines > p{font-size:11px;line-height:1.35;margin:4px 0}
}

/* 1.2-test1d: OAuth is a link navigation, never a form POST/redirect. */
.band-profile-section .oauth-launch-link{display:block;box-sizing:border-box;width:100%;background:#70acff;border:0;color:#102033;font:inherit;font-weight:700;border-radius:8px;padding:12px 18px;text-align:center;text-decoration:none;cursor:pointer}
.band-profile-section .oauth-launch-link:hover{filter:brightness(1.1)}
.band-profile-section .oauth-launch-link:focus-visible{outline:2px solid #c6e2ff;outline-offset:2px}

/* 1.2-test5a: Einladungsnachpflege als letzte kompakte Termininfo-Zeile. */
.calendar-single-dialog .event-info-lines > .event-invite-sync-panel { margin:5px 0; font-size:12px; line-height:1.4; color:#cdd9e8; max-width:none; }
.calendar-single-dialog .event-info-lines > .event-invite-sync-panel > summary { font:inherit; font-weight:700; color:inherit; cursor:pointer; }
.calendar-single-dialog .event-info-lines > .event-invite-sync-panel > form { margin-top:8px; }
@media (max-width: 700px) { .calendar-single-dialog .event-info-lines > .event-invite-sync-panel {font-size:11px; line-height:1.35; margin:4px 0;} }

/* 1.2-test5b: Nachpflege als eigene volle Zeile UNTER dem Termin-Infoblock. */
.calendar-single-dialog > .event-invite-sync-panel{box-sizing:border-box;width:100%;margin:6px 0 8px;font-size:12px;line-height:1.4;color:#cdd9e8}
.calendar-single-dialog > .event-invite-sync-panel > summary{font:inherit;font-weight:700;color:inherit;cursor:pointer;list-style-position:inside}
.calendar-single-dialog > .event-invite-sync-panel > form{margin-top:8px;width:100%}
.calendar-single-dialog > .event-invite-sync-panel .hint{font-size:10px;line-height:1.35;font-weight:400}
@media(max-width:700px){.calendar-single-dialog > .event-invite-sync-panel{font-size:11px;line-height:1.35;margin:4px 0 7px}.calendar-single-dialog > .event-invite-sync-panel .hint{font-size:9px}}
/* OAuth-Stoerung im selben kompakten Dashboard-Hinweisstil. */
.band-dashboard-oauth-warning{margin:8px 0 0;text-align:center;line-height:1.2}
.band-dashboard-oauth-warning a{color:#FF0000!important;font-size:12px;font-weight:700;text-decoration:none;padding:2px 5px;display:inline-block}
.band-dashboard-oauth-warning a:hover,.band-dashboard-oauth-warning a:focus-visible{text-decoration:underline}
.panel:has(.band-dashboard-oauth-warning){padding-bottom:12px}

/* 1.3.2 – kompakte, barrierearme Profil-Akkordeons. */
.band-profile-fold{margin:12px 0;border:1px solid #44586e;border-radius:10px;background:#252f3b;padding:12px 15px}
.band-profile-fold>summary{cursor:pointer;color:#e9f0f9;font-weight:700;font-size:16px;list-style-position:inside}
.band-profile-fold[open]>summary{padding-bottom:12px;border-bottom:1px solid #44586e}
.band-profile-fold .band-profile-section{padding:0 2px 8px}
.band-profile-fold .band-form{max-width:none;margin-top:14px}
.band-personal-calendar-form{gap:10px!important}
.band-calendar-select-row{display:flex!important;flex-direction:row!important;align-items:center;gap:11px!important;min-height:40px;border-bottom:1px solid #394657;padding:7px 0;overflow-wrap:anywhere}
.band-calendar-select-row input{width:18px;height:18px;flex:0 0 18px;accent-color:#70acff;margin:0}
.band-calendar-select-row span{flex:1;min-width:0;font-size:13px;font-weight:500}

/* 1.3.3 – Zusatzkalender nur als dezente Belegungsleiste links.
   ES-Chips behalten Höhe, Position, Farben, Laufschrift und Bedienung. */
.month-grid .day-cell.has-personal-busy{position:relative;padding-left:12px}
.month-grid .day-cell.has-personal-busy .day-number{position:relative;z-index:1}
.month-grid .personal-busy-rail{position:absolute;z-index:0;left:3px;top:0;bottom:0;width:5px;pointer-events:none;background:rgba(255,255,255,.045);border-radius:3px;overflow:hidden}
.month-grid .personal-busy-segment{position:absolute;left:0;right:0;background:#29d6d0;border-radius:2px;min-height:1px}
.month-grid .personal-busy-segment.personal-busy-allday{background:#3977c8}
@media(max-width:580px){
  .month-grid .day-cell.has-personal-busy{padding-left:9px}
  .month-grid .personal-busy-rail{left:2px;top:0;bottom:0;width:4px}
}

/* 1.3.4 – reine Leseansicht persönlicher Zusatzkalender im Tagesdialog. */
.calendar-personal-section-title{font-size:14px;color:#b9cfe6;margin:12px 0 2px}
.calendar-personal-event{border:1px solid #46576c;border-radius:9px;background:#1c2937;overflow:hidden}
.calendar-personal-summary{display:flex;align-items:center;gap:9px;padding:10px;cursor:pointer;flex-wrap:wrap}
.calendar-personal-indicator{width:5px;min-height:22px;border-radius:3px;background:#29d6d0;flex:none}
.calendar-personal-indicator-allday{background:#3977c8}
.calendar-personal-name{flex:1;min-width:120px;font-weight:650;font-size:13px;overflow-wrap:anywhere}
.calendar-personal-time{font-size:11px;color:#b6c7d8}
.calendar-personal-description{padding:0 11px 11px 24px;color:#cbd7e6;font-size:12px;overflow-wrap:anywhere}
.calendar-personal-description p{margin:5px 0;white-space:pre-wrap}
.calendar-personal-description small{font-size:10px;color:#8fa3b9}

/* 1.3.4c: Balken mit sichtbarem Abstand zu den Rahmen der Tageszellen. */
.month-grid .personal-busy-rail{top:4px;bottom:4px}
@media(max-width:580px){.month-grid .personal-busy-rail{top:4px;bottom:4px}}
/* Nur persönliche Fremdtermine: 08–22 Uhr als Stundenraster (14 x 45px). */
.calendar-personal-timeline{position:relative;height:630px;min-height:630px;border:1px solid #42546a;border-radius:9px;background:#1c2937;overflow-x:hidden;overflow-y:visible;margin-top:8px}
.calendar-personal-hour{position:absolute;left:0;right:0;height:0;border-top:1px solid #37495c;pointer-events:none}
.calendar-personal-hour-label{position:absolute;left:5px;top:-7px;color:#91a5bd;font-size:9px;background:#1c2937;padding-right:3px}
.calendar-personal-lane{position:absolute;left:39px;right:5px;top:0;bottom:0}
.calendar-personal-slot{position:absolute;box-sizing:border-box;min-height:11px;padding:0 2px}
.calendar-personal-slot .calendar-personal-event{height:100%;min-height:0;overflow:visible;border-color:#4b6075;background:#26394b;position:relative}
.calendar-personal-slot .calendar-personal-summary{height:100%;min-height:0;overflow:hidden;padding:2px 5px;gap:5px;flex-wrap:nowrap;align-items:flex-start}
.calendar-personal-slot .calendar-personal-indicator{min-height:10px;height:100%;width:3px}
.calendar-personal-slot .calendar-personal-name{min-width:0;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}
.calendar-personal-slot .calendar-personal-time{font-size:9px;white-space:nowrap;margin-left:auto}
.calendar-personal-slot .calendar-personal-event[open]{z-index:20;box-shadow:0 5px 20px #0009}
.calendar-personal-slot .calendar-personal-event[open] .calendar-personal-description{position:absolute;top:100%;left:0;width:min(340px,65vw);z-index:21;background:#24354a;border:1px solid #60758d;border-radius:8px;padding:10px;box-shadow:0 8px 22px #000b}
.calendar-personal-allday-title{font-size:11px;color:#a9bdd3;margin:12px 0 6px}
.calendar-personal-allday-list{display:grid;gap:6px}
.calendar-personal-empty{color:#90a5bb;font-size:11px;padding:9px 3px}

/* 1.3.4d – Tagesraster kompakter; keine zweite Scrollfläche im Tageskalender. */
.calendar-personal-timeline{height:clamp(245px,39dvh,390px);min-height:0;overflow:hidden}
.calendar-personal-slot .calendar-personal-summary{align-items:center}
.calendar-personal-marquee-viewport{display:block;flex:1;min-width:0;overflow:hidden;white-space:nowrap;font-size:10px;font-weight:650;line-height:1.3}
.calendar-personal-marquee-text{display:inline-block;width:max-content;white-space:nowrap;max-width:none;will-change:transform}
.calendar-personal-marquee-text.is-overflowing{animation:personal-calendar-marquee 6s ease-in-out infinite alternate}
@keyframes personal-calendar-marquee{0%,13%{transform:translateX(0)}87%,100%{transform:translateX(var(--personal-marquee-distance,0px))}}
@media(prefers-reduced-motion:reduce){.calendar-personal-marquee-text.is-overflowing{animation:none}}
/* Bei gewöhnlichem Inhalt bleibt das Tagesdialogfenster ohne eigene vertikale Scrollbewegung.
   Bei vielen zusätzlichen Ganztagsterminen bleibt das Dialogfenster als Fallback bedienbar. */
@media(max-width:580px){.calendar-personal-timeline{height:clamp(215px,35dvh,350px)}}

/* 1.3.4e – Detailfenster zentral über dem Zeitraster, nicht an der schmalen Spalte. */
.calendar-personal-timeline{isolation:isolate}
.calendar-personal-center-popup{position:absolute;z-index:60;top:50%;left:50%;transform:translate(-50%,-50%);width:min(330px,calc(100% - 16px));max-height:calc(100% - 16px);box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;background:#24354a;border:1px solid #60758d;border-radius:10px;padding:12px;box-shadow:0 10px 30px #000b;color:#e8f0fa}
.calendar-personal-center-popup[hidden]{display:none!important}
.calendar-personal-popup-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}
.calendar-personal-popup-head strong{font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.calendar-personal-popup-close{flex:none;border:1px solid #65778d;border-radius:7px;background:#31445a;color:#fff;min-width:29px;min-height:29px;font-size:20px;line-height:1;cursor:pointer}
.calendar-personal-center-popup .calendar-personal-description{padding:0;font-size:11px}
.calendar-personal-slot .calendar-personal-event[open] .calendar-personal-description{display:none}

/* 1.3.4f – Zeitraster auf verfügbaren Raum vergrößern, ohne eigenständigen Scrollbereich.
   Auf kleinen Displays bleibt Luft für Kopfbereich, Ganztagstermine und Schließen. */
.calendar-personal-timeline{height:clamp(310px,48dvh,500px)}
@media(max-width:580px){.calendar-personal-timeline{height:clamp(290px,43dvh,440px)}}
@media(max-height:700px){.calendar-personal-timeline{height:clamp(230px,38dvh,320px)}}
.calendar-personal-popup-period{font-size:11px;color:#bcd2ea;margin:0 0 8px;line-height:1.4}

/* 1.3.4g – höheres, weiterhin nicht selbst scrollendes Tagesraster. */
.calendar-personal-timeline{height:clamp(330px,54dvh,565px)}
@media(max-width:580px){.calendar-personal-timeline{height:clamp(315px,50dvh,510px)}}
@media(max-height:700px){.calendar-personal-timeline{height:clamp(235px,41dvh,350px)}}

/* 1.3.4h – Detail-Popup: kleines, fest dimensioniertes Schließen-X; keine globalen Buttons verändern. */
.calendar-personal-center-popup button.calendar-personal-popup-close{display:grid;place-items:center;flex:0 0 22px;box-sizing:border-box;width:22px;height:22px;min-width:22px;min-height:22px;max-width:22px;max-height:22px;padding:0;margin:0;border-radius:5px;font-size:15px;font-weight:400;line-height:1;text-align:center}

/* 1.3.1 FINAL – ES-Proben und Auftritte zusätzlich im gemeinsamen Tages-Zeitraster. */
.calendar-personal-slot.calendar-es-slot{z-index:2}
.calendar-es-timeline-event{display:flex;align-items:center;width:100%;height:100%;min-width:0;min-height:0;box-sizing:border-box;padding:2px 5px;border:2px solid #72aacf;border-left:5px solid #29d6d0;border-radius:8px;background:#20435c;color:#e9f9ff;box-shadow:0 0 9px #29d6d055;text-align:left;cursor:pointer}
.calendar-es-timeline-event.probe{background:#11526b;border-color:#29d6d0;border-left-color:#29d6d0;box-shadow:0 0 11px #29d6d066}
.calendar-es-timeline-event.auftritt{background:#574520;border-color:#f2b84b;border-left-color:#f2b84b;box-shadow:0 0 11px #f2b84b66}
.calendar-es-timeline-event.sonstiges{background:#3b315c;border-color:#a9a0f2;border-left-color:#a9a0f2;box-shadow:0 0 9px #a9a0f255}
.calendar-es-timeline-event.probe.mine-yes{border-left-color:#27f3a6;box-shadow:0 0 12px #27f3a666}
.calendar-es-timeline-event.probe.mine-no{border-left-color:#ff6b6b}
.calendar-es-timeline-event.probe.mine-open{border-left-color:#bbc6d5}
.calendar-es-timeline-event .calendar-personal-marquee-viewport{color:inherit;font-size:11px;line-height:1.25}
.calendar-es-timeline-event:focus-visible{outline:2px solid white;outline-offset:1px}


/* 1.3.3 FINAL - Einheitliche Schrift in Formulareingaben (Referenz: Mein Profil / Benutzername) */
/* Nur Texteingaben: Labels, Buttons, Checkboxen und Kalenderchips bleiben unveraendert.
   Ein explizites normal-Gewicht verhindert das Vererben des Label-Gewichts (600). */
.band-form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]),
.band-form textarea,
.band-form select,
.small-form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]),
.small-form textarea,
.small-form select,
dialog input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]),
dialog textarea,
dialog select {
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  font-size:16px !important;
  font-weight:400 !important;
  font-style:normal !important;
  letter-spacing:normal !important;
}

/* 1.3.4 FINAL UI 1.3.4: Einheitliche Popup-Schliesser nach Termin erstellen.
   Nur explizite Dialog-Close-Buttons; Abbrechen/Navigation/andere Aktionen bleiben unberuehrt. */
:is(
 .calendar-editor-close,
 .band-month-close,
 .song-editor-head #song-editor-close,
 .setlist-dialog-head [data-dialog-close],
 .participation-choice-head #proben-participation-close,
 .participation-choice-head #participation-choice-close,
 .participation-choice-head #dashboard-participation-close,
 .participation-choice-head [data-move-close],
 .event-setlist-picker-head [data-event-setlist-close],
 .calendar-action-close,
 .calendar-day-top #calendar-day-close,
 .event-dialog .close-dialog,
 .band-logout-dialog-close,
 .band-install-close,
 .band-drawer-close
){
 display:grid;place-items:center;box-sizing:border-box;
 flex:0 0 30px;width:30px;height:30px;
 min-width:30px;min-height:30px;max-width:30px;max-height:30px;
 padding:0;margin:0;border:1px solid #537399;border-radius:8px;
 background:#2b3c50;color:#d0e5ff;
 font-family:inherit;font-size:22px;font-weight:400;line-height:1;
 cursor:pointer;
}
:is(
 .calendar-editor-close,.band-month-close,.song-editor-head #song-editor-close,
 .setlist-dialog-head [data-dialog-close],.participation-choice-head button[aria-label="Schließen"],
 .event-setlist-picker-head button[aria-label="Schließen"],.calendar-action-close,
 .calendar-day-top #calendar-day-close,.event-dialog .close-dialog,
 .band-logout-dialog-close,.band-install-close,.band-drawer-close
):hover{background:#354d67}
/* Kleine Detail-Overlays behalten ihr bestaetigtes 22px-X, aber denselben Stil. */
.calendar-personal-center-popup button.calendar-personal-popup-close{
 border:1px solid #537399;background:#2b3c50;color:#d0e5ff;
}

/* 1.3.4a: Tagesdialog, Aktion links unter dem Datum; X bleibt oben rechts. */
.calendar-day-top{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
.calendar-day-top #calendar-selected-label{min-width:0;}
.calendar-day-top #calendar-day-close{flex-shrink:0;}
.calendar-day-actions{display:flex;justify-content:flex-start;align-items:center;margin:0 0 14px;}
.calendar-day-actions #calendar-day-add{border:1px solid #537399;border-radius:8px;background:#2b3c50;color:#eaf1ff;box-sizing:border-box;}
.calendar-day-actions #calendar-day-add:hover{background:#354d67;}

/* 1.3.3.4 – nur Termin-Editor: kompakte Feld-Proportionen nach RAPT-Vorbild.
   Andere Popups und vorhandene Funktions- oder Formulareigenschaften bleiben unveraendert. */
@media (max-width: 600px) {
 .calendar-editor-dialog {
   width: calc(100vw - 32px);
   max-width: calc(100vw - 32px);
   max-height: calc(100dvh - 28px);
 }
 .calendar-editor-body {
   padding: 11px 13px 13px;
   max-height: calc(100dvh - 82px);
 }
}
.calendar-editor-dialog .band-form {gap: 10px;}
.calendar-editor-dialog .band-form label {
 gap: 4px; font-size: 12px; line-height: 1.25; font-weight: 500;
}
.calendar-editor-dialog .band-form :is(input:not([type="hidden"]),select,textarea) {
 min-height: 34px; padding: 6px 9px; font-size: 14px;
 font-weight: 400; line-height: 1.3; border-radius: 7px;
}
.calendar-editor-dialog .band-form textarea {min-height: 62px;}
.calendar-editor-dialog .calendar-series-fieldset legend {font-size:12px;font-weight:600;}
@media (max-width: 600px) {
 .calendar-editor-dialog .band-form {gap: 9px;}
 .calendar-editor-dialog .band-form :is(input:not([type="hidden"]),select,textarea) {
   min-height: 34px; padding: 6px 9px; font-size: 14px;
 }
}


/* 1.3.3.4b – gezielte 75%-Skalierung der sichtbaren Eingabeschrift (16 -> 12 px).
   Nur Kalender-Termin-Editor, keine globalen Dialog-/Button-Aenderungen.
   Explizites !important notwendig: globale Dialogform-Regel erzwingt sonst 16 px. */
.calendar-editor-dialog .band-form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.calendar-editor-dialog .band-form select,
.calendar-editor-dialog .band-form textarea {
  box-sizing:border-box;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  font-size:12px !important;
  font-weight:400 !important;
  line-height:1.2;
  padding:4px 8px;
  border-radius:7px;
}
.calendar-editor-dialog .band-form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.calendar-editor-dialog .band-form select {
  height:34px;
  min-height:34px;
}
.calendar-editor-dialog .band-form textarea {min-height:58px;}
.calendar-editor-dialog .band-form {gap:8px;}
.calendar-editor-dialog .band-form label {gap:3px;font-size:11px;line-height:1.2;font-weight:500;}
.calendar-editor-dialog .calendar-series-fieldset legend {font-size:11px;}
@media(max-width:600px) {
 .calendar-editor-dialog .band-form {gap:8px;}
 .calendar-editor-dialog .band-form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
 .calendar-editor-dialog .band-form select {height:34px;min-height:34px;padding:4px 8px;font-size:12px !important;}
}


/* 1.3.3.4c: Kalender-Editor: Feldhoehe inkl. Padding fixieren.
   Ca. 4,5 mm am Zieltelefon; CSS-Pixel sind nicht millimetergenau.
   12-px-Eingabeschrift aus 1.3.3.4b unveraendert. */
.calendar-editor-dialog .band-form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]),
.calendar-editor-dialog .band-form select {
  box-sizing: border-box !important;
  height: 27px !important;
  min-height: 27px !important;
  max-height: 27px !important;
  padding: 2px 7px !important;
  line-height: 1.2 !important;
}

/* 1.3.3.4d: Wiederholung wie ein normales Kalender-Eingabefeld.
   Nur der Erstellen-Block: Serienbearbeitung mit eigenem fieldset bleibt unveraendert. */
.calendar-editor-dialog .calendar-recurrence-group {
  display:grid; gap:8px; min-width:0; margin:0; padding:0; border:0; background:transparent;
}
.calendar-editor-dialog .calendar-recurrence-group > label {
  display:grid; gap:3px; min-width:0; font-size:11px; line-height:1.2; font-weight:500;
}
.calendar-editor-dialog .calendar-recurrence-group #recurrence-until-wrap[hidden] {display:none!important;}


/* V1.3.3.5 – Einheitliche Formularproportionen nach bestaetigter
   Termin-Editor-Referenz V1.3.3.4d. Ausschliesslich regulaere Formularfelder.
   Ausgenommen: Termin-Editor, Suche/Toolbar, Picker, Checkboxen, Radios,
   spezielle Zeitraster, Aktionsbuttons und mehrzeilige Textbereiche. */
:is(.song-editor, .band-profile-fold, .calendar-admin, .event-dialog,
    .calendar-action-dialog, .setlist-ui-dialog:not(.setlist-song-picker))
 :is(.band-form, .small-form, form:not(.song-delete-form):not(.song-editor-actions)) {
  row-gap:8px;
}
:is(.song-editor, .band-profile-fold, .calendar-admin, .event-dialog,
    .calendar-action-dialog, .setlist-ui-dialog:not(.setlist-song-picker))
 :is(.band-form, .small-form, form:not(.song-delete-form):not(.song-editor-actions))
 label:not(.band-remember-option):not(.band-calendar-select-row):not(.setlist-song-picker-row) {
  gap:3px;
  font-size:11px;
  font-weight:500;
  line-height:1.2;
}
:is(.song-editor, .band-profile-fold, .calendar-admin, .event-dialog,
    .calendar-action-dialog, .setlist-ui-dialog:not(.setlist-song-picker))
 :is(.band-form, .small-form, form:not(.song-delete-form):not(.song-editor-actions))
 :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="submit"]):not([type="button"]), select) {
  box-sizing:border-box !important;
  height:27px !important;
  min-height:27px !important;
  max-height:27px !important;
  padding:2px 7px !important;
  border-radius:7px;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  font-size:12px !important;
  font-weight:400 !important;
  font-style:normal !important;
  line-height:1.2 !important;
}
/* Mehrzeilige Textfelder behalten ihre erforderliche Hoehe und Resize-Funktion. */
:is(.song-editor, .band-profile-fold, .calendar-admin, .event-dialog,
    .calendar-action-dialog, .setlist-ui-dialog:not(.setlist-song-picker))
 :is(.band-form, .small-form, form:not(.song-delete-form):not(.song-editor-actions))
 textarea {
  box-sizing:border-box;
  padding:5px 7px !important;
  border-radius:7px;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  font-size:12px !important;
  font-weight:400 !important;
  line-height:1.35;
}


/* V1.3.3.6: Einheitlicher Grundstil ausschliesslich fuer regulaere
   Text-Aktionsbuttons in Dialog-Fussbereichen; Farben und Semantik
   (minor / danger) werden NICHT ueberschrieben. Icon-Buttons,
   Navigation, Teilnahme-Chips und Sicherheitsdialog-Sonderstile bleiben. */
:is(.calendar-editor-dialog .band-form,
    .calendar-action-dialog .calendar-action-buttons,
    .song-editor .song-editor-actions,
    .setlist-ui-dialog .setlist-dialog-buttons,
    .band-logout-dialog .band-logout-dialog-actions)
 > button:not([aria-label]):not(.calendar-editor-close) {
  box-sizing:border-box;
  min-height:32px;
  height:auto;
  padding:6px 11px;
  border-radius:8px;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:12px;
  font-weight:600;
  line-height:1.25;
}
/* Gleiche Proportionen fuer direkt im Kalenderformular liegende
   Speichern-Buttons; keine Wirkung auf X oder Checkbox-/Picker-UI. */
.calendar-editor-dialog .band-form button[name="action"] {
  box-sizing:border-box; min-height:32px; padding:6px 11px;
  border-radius:8px; font-size:12px; font-weight:600; line-height:1.25;
}


/* V1.3.3.7 – Einheitliche Feldbeschriftungen in der Benutzerverwaltung.
   Die regulaeren Dialogformulare sind bereits seit V1.3.3.5 vereinheitlicht.
   Hier nur Mitgliedbearbeitung, Passwort-Reset und Neuanlage; Sonderlabels,
   Checkboxen und Warn-/Loeschaktionen bleiben bewusst unveraendert. */
.user-grid .user-card .small-form label:not(.band-remember-option),
.panel .user-grid ~ .band-form label:not(.band-remember-option) {
  display:grid;
  gap:3px;
  font-size:11px;
  font-weight:500;
  line-height:1.2;
}


/* V1.3.3.8 – Benutzerverwaltung: Feld- und Aktionsproportionen angleichen.
   Gezielt auf Mitgliedskarten und das Formular „Neues Bandmitglied“ begrenzt.
   Checkboxen, Loeschwarnungen, Toggle-Semantik und Summary-Steuerung geschuetzt. */
.user-grid .user-card .small-form,
.panel .user-grid ~ .band-form {row-gap:8px;}
.user-grid .user-card .small-form :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),select),
.panel .user-grid ~ .band-form :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),select) {
  box-sizing:border-box !important;
  height:27px !important;
  min-height:27px !important;
  max-height:27px !important;
  padding:2px 7px !important;
  border-radius:7px;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  font-size:12px !important;
  font-weight:400 !important;
  line-height:1.2 !important;
}
/* Normale Buttons in den Nutzerkarten inkl. geoeffneter Details und Neuanlage.
   Farben (minor/danger) sowie alle Aktionswerte bleiben unangetastet. */
.user-grid .user-card button:not([aria-label]),
.panel .user-grid ~ .band-form button:not([aria-label]) {
  box-sizing:border-box;
  min-height:32px;
  height:auto;
  padding:6px 11px;
  border-radius:8px;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:12px;
  font-weight:600;
  line-height:1.25;
}


/* V1.3.3.9: Profil und Administration analog bestaetigter kompakter Formulare.
   Nur Formularaktionen und Accordion-Header; Checkboxen, Suchfelder,
   Sicherheitsbuttons sowie Google-OAuth-Verhalten bleiben unveraendert. */
.band-profile-fold > summary {
  font-size:12px; font-weight:600; line-height:1.3;
}
.band-profile-fold[open] > summary { padding-bottom:9px; }
.band-profile-fold .band-form { row-gap:8px; margin-top:10px; }
.band-profile-fold .band-form > button:not([aria-label]),
.band-admin-settings .band-form > button:not([aria-label]) {
  box-sizing:border-box; min-height:32px; height:auto;
  padding:6px 11px; border-radius:8px;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:12px; font-weight:600; line-height:1.25;
}
.band-admin-settings .band-form { row-gap:8px; }
.band-admin-settings .band-form label:not(.band-remember-option) {
  font-size:11px; font-weight:500; line-height:1.2; gap:3px;
}
.band-admin-settings .oauth-launch-link {
  display:inline-flex; width:auto; max-width:100%; align-items:center; justify-content:center;
  box-sizing:border-box; min-height:32px; padding:6px 11px;
  border-radius:8px; font-size:12px; font-weight:600; line-height:1.25;
}


/* V1.3.3.10 – Einheitliche Suchfelder und kompakte Trefferliste.
   Bewusst NUR Suchfelder der Hauptbereiche (Kalender, Songliste, Setlists).
   Song-Picker, Songtypfilter, Formularfelder, Buttons und Popups bleiben unberuehrt. */
:is(.calendar-compact-toolbar .calendar-search-wrap input[type="search"],
    .song-toolbar .song-search-wrap input[type="search"],
    .setlist-overview-search input[type="search"],
    .event-setlist-search-label input[type="search"]) {
  box-sizing:border-box !important;
  height:34px !important; min-height:34px !important; max-height:34px !important;
  padding:5px 10px !important;
  border-radius:8px !important;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif !important;
  font-size:12px !important; font-weight:400 !important; line-height:1.2 !important;
}
/* Kalender-Suchvorschlaege: kompaktes Schriftbild, ohne
   Trefferlogik, Klickflaechen oder Listen-Positionierung zu aendern. */
.calendar-search-suggestions .calendar-search-item {
  font-size:12px; font-weight:400; line-height:1.3;
}
.calendar-search-suggestions .calendar-search-item small {
  font-size:11px; line-height:1.3;
}


/* V1.3.3.11 – Einheitlicher Rahmenradius fuer regulaere Inhaltskarten.
   Dashboard dient als Referenz (11px, 1px Rahmen). Die individuellen
   Hintergrund-/Statusfarben, Innenabstaende und Raster bleiben bestehen.
   Ausgenommen: Kalender-Tageszellen, Dialoge, Popups, Warnmeldungen,
   Termine, Bedienelemente und kompakte Kalender-Infobloecke. */
:is(.user-grid .user-card, .song-list .song-card,
    .setlist-card, .setlist-overview-card,
    .calendar-next-card, .band-profile-fold) {
  border-radius:11px;
  border-width:1px;
  border-style:solid;
}


/* V1.3.3.12 – Normale Profilbearbeitung optisch klar von
   destruktivem Mitglied-Loeschen trennen. Nur Benutzerverwaltung. */
.user-grid .user-card > details.user-profile-edit {
  border:1px solid #44586e;
  border-radius:11px;
  background:#252f3b;
  padding:9px 11px;
}
.user-grid .user-card > details.user-profile-edit > summary {
  color:#e9f0f9;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:12px;
  font-weight:600;
  line-height:1.3;
  cursor:pointer;
}
.user-grid .user-card > details.user-profile-edit[open] > summary {
  padding-bottom:9px;
  border-bottom:1px solid #44586e;
}


/* V1.3.3.13 – Einheitliche Aufklapp-Pfeile: Profil und Benutzerverwaltung.
   Kein Eingriff in Warnfarben, Formulare oder native details/summary-Funktion. */
.band-profile-fold > summary,
.user-grid .user-card > details.delete-panel > summary {
  display:list-item; list-style:none;
  cursor:pointer;
}
.band-profile-fold > summary::-webkit-details-marker,
.user-grid .user-card > details.delete-panel > summary::-webkit-details-marker {display:none;}
.band-profile-fold > summary::before,
.user-grid .user-card > details.delete-panel > summary::before {
  content:'▸'; display:inline-block; width:14px; margin-right:3px;
  color:#9cc7fa; font-size:12px; font-weight:700;
  vertical-align:baseline; text-align:center;
}
.band-profile-fold[open] > summary::before,
.user-grid .user-card > details.delete-panel[open] > summary::before {content:'▾';}
.user-grid .user-card > details.delete-panel:not(.user-profile-edit) > summary::before {color:#ff9a9a;}

/* V1.4.0: Dashboard-Aktionen oben neben Musiknote/Stern; Überschrift und Icons vertikal zentriert. */
.band-dashboard-card-title{align-items:center;min-height:28px}
.band-dashboard-card-title>span:first-child{min-width:0;line-height:1.2}
.band-dashboard-header-right{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex:none;margin-left:auto}
.band-dashboard-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px}
.band-dashboard-header-actions .band-dashboard-icon-link{box-sizing:border-box;width:28px;height:28px;min-width:28px;min-height:28px;padding:4px!important;margin:0;align-self:center;border-radius:7px}
.band-dashboard-header-actions .band-dashboard-icon-link svg{width:17px;height:17px}
.band-dashboard-card-title .band-dashboard-title-symbol{display:inline-flex;align-items:center;justify-content:center;font-size:19px;line-height:1;min-width:17px}
@media(max-width:380px){.band-dashboard-header-right{gap:4px}.band-dashboard-header-actions{gap:3px}.band-dashboard-header-actions .band-dashboard-icon-link{width:26px;height:26px;min-width:26px;min-height:26px;padding:3px!important}}

/* V1.4.1: gezielte zusätzliche Abstände der Dashboard-Header-Icons.
   3 mm zusätzlich zwischen Icons und Note/Stern; 2 mm zusätzlich zwischen Icons. */
.band-dashboard-header-right{gap:calc(7px + 3mm)}
.band-dashboard-header-actions{gap:calc(5px + 2mm)}
@media(max-width:380px){
  .band-dashboard-header-right{gap:calc(4px + 3mm)}
  .band-dashboard-header-actions{gap:calc(3px + 2mm)}
}

/* V1.4.2 – dritte Dashboardkarte; vorhandene Terminkarten nicht verändern. */
.band-dashboard-facts{background:#273442;border:1px solid #476382;border-radius:11px;padding:12px;margin-top:9px;display:flex;flex-direction:column;gap:9px}
.band-facts-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.band-facts-stat{min-width:0;display:flex;align-items:center;flex-direction:column;gap:4px;padding:9px 3px 8px;background:#223347;border:1px solid #405b77;border-radius:9px;text-align:center}
.band-facts-stat svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.band-facts-stat strong{font-size:22px;line-height:1.1;font-weight:700;font-variant-numeric:tabular-nums}
.band-facts-stat span{font-size:10px;line-height:1.2;color:#bdcad9}
.band-facts-gigs{color:#f7c768}.band-facts-songs{color:#4ade80}.band-facts-duration{color:#83b5f5}
.band-facts-countdown{background:#223347;border:1px solid #405b77;border-radius:9px;padding:12px 8px;text-align:center;display:flex;flex-direction:column;gap:5px}
.band-facts-countdown strong{font-size:18px;line-height:1.25;color:#f1f6fc;font-weight:750;font-variant-numeric:tabular-nums}
.band-facts-countdown span{font-size:12px;color:#c4d4e7}
.band-facts-horizon{text-align:right;font-size:9px;color:#8faac5}
@media(max-width:380px){.band-facts-stat strong{font-size:19px}.band-facts-countdown strong{font-size:16px}.band-facts-stat span{font-size:9px}}

/* V1.4.3 – Band-Facts kompakt, Kennzahlen und Countdown gleich hoch. */
.band-dashboard-facts{gap:7px;padding:10px 12px}
.band-facts-stat-grid{grid-template-rows:76px;align-items:stretch;gap:7px}
.band-facts-stat{box-sizing:border-box;height:76px;min-height:0;gap:2px;padding:6px 2px 5px;justify-content:center}
.band-facts-stat svg{width:16px;height:16px;flex-shrink:0}
.band-facts-stat strong{font-size:19px;line-height:1.05}
.band-facts-stat span{font-size:9px;line-height:1.15}
.band-facts-countdown{box-sizing:border-box;height:76px;min-height:0;padding:8px 5px;gap:4px;justify-content:center}
.band-facts-countdown strong{font-size:16px;line-height:1.2}
.band-facts-countdown span{font-size:11px;line-height:1.15}
@media(max-width:380px){.band-facts-stat strong{font-size:17px}.band-facts-stat span{font-size:8px}.band-facts-countdown strong{font-size:14px}}

/* V1.4.4 – Band-Facts oberhalb der Terminkarten und beide Faktenreihen kompakter. */
.band-dashboard-facts{margin-top:0;margin-bottom:9px;gap:6px;padding:8px 10px}
.band-facts-stat-grid{grid-template-rows:64px;gap:6px}
.band-facts-stat{height:64px;min-height:0;padding:3px 2px;gap:1px}
.band-facts-stat strong{font-size:18px;line-height:1.05}
.band-facts-stat span:not(.band-facts-guitar-icon){font-size:9px;line-height:1.1}
.band-facts-guitar-icon{display:block;font-size:21px;line-height:21px;flex-shrink:0;font-weight:400}
.band-facts-countdown{height:64px;min-height:0;padding:5px 5px;gap:2px}
.band-facts-countdown strong{font-size:15px;line-height:1.15}
.band-facts-countdown span{font-size:11px;line-height:1.15}
@media(max-width:380px){.band-facts-stat strong{font-size:17px}.band-facts-stat span:not(.band-facts-guitar-icon){font-size:8px}.band-facts-countdown strong{font-size:13px}}

/* V1.4.6 – Musik- und Uhrsymbol als Emoji in der Größe der bestätigten Gitarre. */
.band-facts-stat span.band-facts-emoji-icon{display:block;font-family:system-ui,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:21px;line-height:21px;flex-shrink:0;font-weight:400}

/* V1.4.7: Gitarren-Emoji gewinnt gegen die allgemeine 9/10px-Span-Regel.
   Countdown-Text vergroessern, ohne die 64px-Kartenhoehe zu aendern. */
.band-facts-stat span.band-facts-guitar-icon{display:block;font-family:system-ui,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:21px;line-height:21px;flex-shrink:0;font-weight:400}
.band-facts-countdown{height:64px;min-height:0;padding:4px 7px;gap:2px;justify-content:center}
.band-facts-countdown strong{font-size:clamp(14px,3.75vw,18px);line-height:1.12;overflow-wrap:normal}
.band-facts-countdown span{font-size:13px;line-height:1.12}
@media(max-width:380px){.band-facts-countdown strong{font-size:clamp(13px,3.7vw,15px)}.band-facts-countdown span{font-size:12px}}

/* V1.4.8: Dashboard ohne überflüssigen unteren Überlauf; bei zu wenig Platz weiter scrollbar. */
.dashboard-shell{padding-bottom:8px}
.dashboard-shell>footer{padding-top:9px;line-height:1.3}
@media(max-width:600px){.dashboard-shell{padding-bottom:6px}}
/* Hinweise als mittiges Dialogfenster statt zusätzlicher Zeile unter den Karten. */
.dashboard-notice-dialog{position:fixed;inset:0;margin:auto;width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;padding:16px;background:#202d3b;color:#f0f6ff;border:1px solid #597797;border-radius:12px;box-shadow:0 14px 46px #000b}
.dashboard-notice-dialog::backdrop{background:#0009}
.dashboard-notice-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.dashboard-notice-head h2{margin:0;font-size:16px;line-height:1.25}
.dashboard-notice-close{display:grid;place-items:center;width:26px;height:26px;min-height:26px;flex:none;padding:0;background:#2b3c50;color:#d0e5ff;border:1px solid #537399;border-radius:7px;font-size:19px;line-height:1}
.dashboard-notice-entry{padding:10px 0;border-top:1px solid #43556b}
.dashboard-notice-entry strong{display:block;color:#ff8585;font-size:13px}
.dashboard-notice-entry p{margin:5px 0 10px;font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.dashboard-notice-error a{display:inline-block;margin-top:7px;color:#b4d8ff!important;font-size:12px}
.dashboard-notice-entry button,.dashboard-notice-dismiss{padding:7px 11px;font-size:12px;min-height:32px}
.dashboard-notice-dismiss{display:block;margin:10px 0 0 auto}

/* V1.4.9a – Kein erzwungenes Auffuellen der Dashboard-Hoehe.
   Der Footer folgt direkt auf den Inhalt; freier Viewport-Raum erzeugt keinen Scrollbereich.
   Scrollen bleibt bei tatsaechlichem Inhaltsueberlauf erlaubt. */
body:has(> main.dashboard-shell){
  display:block;
  /* 100vh uses the large mobile viewport and can create blank scrollspace. */
  min-height:100dvh;
}
body > main.dashboard-shell{
  display:block;
  flex:none;
  min-height:0;
  height:auto;
  padding-bottom:0;
}
body > main.dashboard-shell > footer{
  margin-top:0;
  padding-top:30px; /* entspricht dem Footerabstand der uebrigen Seiten */
  padding-bottom:2px;
}

/* V1.4.9b: dashboard viewport follows the visible mobile area. */
@supports (height: 100dvh) {
  html:has(body > main.dashboard-shell) { min-height: 0; }
  body:has(> main.dashboard-shell) { min-height: 100dvh; }
}

/* V1.4.9e – durch S24-Messung bestaetigt: BODY min-height 758px trotz Footer-Ende 645px.
   Nur im Dashboard erzwungene Mindesthoehe entfernen; normaler Inhalt darf wachsen. */
html:has(body > main.dashboard-shell){min-height:0;}
body:has(> main.dashboard-shell){min-height:0 !important;height:auto;}

/* V1.4.10 – S24-bestaetigten Scrollfix auf alle Ansichten anwenden.
   Entfernt ausschliesslich erzwungene Dokument-Mindesthoehen; Inhalt darf normal wachsen. */
@media screen {
  html { min-height: 0; }
  body { min-height: 0 !important; height: auto; }
}

/* V1.4.26a – Verwaltungsseite analog Probenplanung / kompakte Admin-Karten.
   Bewusst in styles.css: gemeinsame CSS-Ladekette wie die übrigen Seiten. */
.move-admin-page .calendar-heading{font-size:clamp(23px,3vw,32px);line-height:1.15;margin:3px 0 9px}
.move-admin-page .move-admin-intro{font-size:12px;line-height:1.4;margin:0 0 14px;color:#b8c9da}
.move-admin-page .move-admin-heading{font-size:14px;line-height:1.2;margin:0 0 9px;font-weight:700;color:#dceafa}
.move-admin-page .move-admin-list{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.move-admin-page .move-admin-card{min-width:0;background:#26313f;border:1px solid #41546b;border-radius:10px;padding:10px 11px;display:grid;gap:5px}
.move-admin-page .move-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:6px 9px;flex-wrap:wrap;min-width:0}
.move-admin-page .move-admin-head strong{font-size:12px;line-height:1.35;font-weight:650;overflow-wrap:anywhere;flex:1 1 215px;min-width:0}
.move-admin-page .move-admin-status{font-size:10px;line-height:1.2;color:#c6d5e8;border:1px solid #52667f;border-radius:6px;padding:3px 6px;white-space:nowrap;flex:none}
.move-admin-page .move-admin-status.is-unanimous{color:#9eefd3;border-color:#328a70}
.move-admin-page .move-admin-status.is-pending{color:#ffd39a;border-color:#82624d}
.move-admin-page .move-admin-detail{font-size:11px;line-height:1.3;color:#c9d5e5;overflow-wrap:anywhere;margin:0}
.move-admin-page .move-admin-reason{margin:0;font-size:11px;line-height:1.3;color:#b8c9da;overflow-wrap:anywhere}
.move-admin-page .move-admin-reason summary{cursor:pointer;color:#9eb9d6}
.move-admin-page .move-admin-actions{display:flex;align-items:center;flex-wrap:nowrap;gap:6px;min-width:0;margin-top:3px}
.move-admin-page .move-admin-actions form{display:block;flex:0 1 auto;min-width:0;margin:0}
.move-admin-page .move-admin-actions .calendar-today,.move-admin-page .move-admin-actions button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:auto;min-width:0;min-height:30px;height:30px;padding:4px 9px;margin:0;border-radius:7px;font-size:11px;font-weight:650;line-height:1.1;text-decoration:none;white-space:nowrap}
.move-admin-page .move-admin-actions .calendar-today{flex:0 1 auto;background:#34485f;border:1px solid #55789e;color:#fff}
.move-admin-page .move-admin-actions button.danger{background:#ff6b6b;border:1px solid #ff6b6b;color:#181b20}
.move-admin-page .move-admin-actions .move-admin-approve{background:#2d6d5d;color:#f1fff9;border:1px solid #4db99c}
.move-admin-page .move-admin-archive{margin-top:16px;border:1px solid #40536a;border-radius:10px;padding:0;background:#202a36}
.move-admin-page .move-admin-archive summary{cursor:pointer;padding:10px 11px;font-size:12px;line-height:1.3;font-weight:650;color:#bbccdf}
.move-admin-page .move-admin-archive>.move-admin-list{padding:0 9px 9px;gap:8px}
.move-admin-page .move-admin-archive .move-admin-card{background:#222b35;padding:8px 9px}
.move-admin-page .move-admin-archive .move-admin-detail{display:none}
@media(max-width:530px){
 .move-admin-page .calendar-heading{font-size:23px;letter-spacing:0;margin:2px 0 8px}
 .move-admin-page .move-admin-card{padding:9px;gap:4px}
 .move-admin-page .move-admin-head strong{font-size:11px;flex-basis:195px}
 .move-admin-page .move-admin-actions{gap:5px}
 .move-admin-page .move-admin-actions .calendar-today,.move-admin-page .move-admin-actions button{height:29px;min-height:29px;font-size:10px;padding:4px 7px}
}

/* V1.4.26b – Probenverschiebung im Einzeltermin: gemeinsame kompakte Dialogoptik.
   Nur #rehearsal-move-panel, keine Änderungen an Aktionen, Daten oder anderen Dialogen. */
.calendar-single-dialog #rehearsal-move-panel{margin-top:13px;padding-top:11px}
.calendar-single-dialog #rehearsal-move-panel h3{font-size:16px;line-height:1.2;margin:0 0 7px}
/* .panel p setzt sonst 1.7 Zeilenhöhe und große Absatzabstände durch. */
.calendar-single-dialog #rehearsal-move-summary,
.calendar-single-dialog #rehearsal-move-results,
.calendar-single-dialog #rehearsal-move-results p{font-size:12px;line-height:1.4;color:#cdd9e8;margin:4px 0 7px;max-width:none;overflow-wrap:anywhere}
.calendar-single-dialog #rehearsal-move-results[hidden]{display:none!important}
.calendar-single-dialog #rehearsal-move-panel .rehearsal-move-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:9px 0 0}
.calendar-single-dialog #rehearsal-move-panel .rehearsal-move-actions form{display:inline-flex;align-items:center;margin:0;padding:0;width:auto}
.calendar-single-dialog #rehearsal-move-panel .rehearsal-move-actions button{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:30px;height:30px;width:auto;margin:0;padding:5px 9px;font-size:11px;font-weight:650;line-height:1.15;border-radius:7px;white-space:nowrap}
@media(max-width:530px){
 .calendar-single-dialog #rehearsal-move-panel{margin-top:11px;padding-top:10px}
 .calendar-single-dialog #rehearsal-move-panel h3{font-size:16px;margin-bottom:6px}
 .calendar-single-dialog #rehearsal-move-summary,
 .calendar-single-dialog #rehearsal-move-results,
 .calendar-single-dialog #rehearsal-move-results p{font-size:11px;line-height:1.35;margin:3px 0 6px}
 .calendar-single-dialog #rehearsal-move-panel .rehearsal-move-actions button{height:29px;min-height:29px;padding:4px 8px;font-size:10px}
}

/* V1.4.27 – kompakte, vollstaendige Neuigkeitenliste im Dashboard */
.dashboard-notices-bar{display:flex;justify-content:space-between;align-items:center;gap:9px;padding:7px 0;border-top:1px solid #43556b}
.dashboard-notices-bar strong{font-size:13px;color:#eaf3ff}
.dashboard-notices-bar form,.dashboard-notice-actions form{margin:0}
.dashboard-notices-bar button,.dashboard-notice-actions button{min-height:29px;padding:5px 9px;font-size:11px}
.dashboard-notices-list{display:grid;gap:0;max-height:min(55dvh,420px);overflow-y:auto;overscroll-behavior:contain}
.dashboard-notices-list .dashboard-notice-entry{padding:9px 0}
.dashboard-notice-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dashboard-notice-meta strong{color:#9fc9ff;font-size:12px}
.dashboard-notice-meta time{color:#aebed0;font-size:10px;white-space:nowrap}
.dashboard-notices-list .dashboard-notice-entry p{margin:3px 0 7px;font-size:12px;line-height:1.3}
.dashboard-notice-actions{display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:390px){.dashboard-notice-meta{flex-wrap:wrap}.dashboard-notices-bar button{font-size:10px}}

/* V1.4.28a – Dashboard-Einzeltermin: Namens-Chip und Auswahl-Popup wie Tagesansicht */
#dashboard-event-participation-choice .dashboard-participation-choice-name{font-size:13px;color:#bdcfe2;margin:10px 0 14px;line-height:1.35}

/* V1.4.28b – gemeinsames kompaktes Dialogdesign: Teilnahme-Auswahl und Probenverschiebung.
   Ausschliesslich Darstellung, IDs/Events/Formularaktionen bleiben unveraendert. */
.participation-choice-dialog{
  box-sizing:border-box;width:min(390px,calc(100vw - 24px));
  max-height:calc(100dvh - 24px);overflow-y:auto;
  padding:13px;border-radius:11px;
}
.participation-choice-dialog .participation-choice-head{gap:9px;margin:0 0 9px;min-height:30px}
.participation-choice-dialog .participation-choice-head h2{
  margin:0;font-size:16px;line-height:1.2;font-weight:700;
}
.participation-choice-dialog .participation-choice-head button[aria-label="Schließen"]{
  display:grid;place-items:center;box-sizing:border-box;
  flex:0 0 30px;width:30px;height:30px;min-width:30px;min-height:30px;
  padding:0;border:1px solid #537399;border-radius:8px;
  background:#2b3c50;color:#d0e5ff;font-size:22px;font-weight:400;line-height:1;
}
.participation-choice-dialog :is(#participation-choice-name,#proben-participation-name,#dashboard-participation-name,#dashboard-event-participation-choice-name){
  margin:0 0 9px;font-size:11px;line-height:1.35;color:#bdcfe2;
}
.participation-choice-dialog .participation-choice-options{display:grid;gap:6px}
.participation-choice-dialog .participation-choice-options button{
  box-sizing:border-box;width:100%;min-height:32px;height:auto;
  padding:5px 9px;border-radius:7px;text-align:left;line-height:1.2;
}
.participation-choice-dialog .participation-choice-options .proben-name-chip{font-size:11px}
.participation-choice-dialog .participation-choice-options button.is-selected{padding-right:39px}
.participation-choice-dialog .participation-choice-options button.is-selected::after{
  right:9px;width:19px;height:19px;font-size:13px;
}
/* Die Verschiebungsmaske hat bislang keine eigene Common-Design-Formularformatierung. */
.rehearsal-move-dialog #rehearsal-move-dialog-summary{
  margin:2px 0 10px;max-width:none;font-size:12px;line-height:1.4;
  color:#cdd9e8;overflow-wrap:anywhere;
}
.rehearsal-move-dialog .band-form{display:grid;gap:9px;margin:0;max-width:none}
.rehearsal-move-dialog .band-form label{
  display:grid;gap:4px;margin:0;font-size:11px;font-weight:600;line-height:1.25;color:#cdd9e8;
}
.rehearsal-move-dialog .band-form textarea{
  box-sizing:border-box;display:block;width:100%;min-height:65px;
  padding:6px 8px;border-radius:7px;font-size:12px !important;
  font-weight:400 !important;line-height:1.35;resize:vertical;
  background:#181d24;color:#fff;
}
.rehearsal-move-dialog .band-form > button[type="submit"]{
  box-sizing:border-box;justify-self:end;width:auto;height:30px;min-height:30px;
  padding:5px 11px;font-size:11px;font-weight:650;line-height:1.15;border-radius:7px;
}
.rehearsal-move-dialog .rehearsal-move-vote-choice{
  display:flex;gap:8px;align-items:center;min-height:30px;font-size:11px;
}
.rehearsal-move-dialog .rehearsal-move-vote-choice input[type="radio"]{flex:0 0 17px;width:17px;height:17px}
@media(max-width:530px){
 .participation-choice-dialog{padding:11px}
 .participation-choice-dialog .participation-choice-head h2{font-size:15px}
 .rehearsal-move-dialog #rehearsal-move-dialog-summary{font-size:11px}
}
