:root{--dvp-accent:#f2c300;--dvp-navy:#082d4f;--dvp-dark:#051d34;--dvp-bg:#f3f6f9;--dvp-card:#fff;--dvp-text:#102033;--dvp-muted:#687789;--dvp-border:#dce4eb;--dvp-radius:16px;--dvp-shadow:0 10px 30px rgba(5,29,52,.08)}
*{box-sizing:border-box}.dvp-app-body{margin:0!important;background:var(--dvp-bg);color:var(--dvp-text);font-family:Arial,Helvetica,sans-serif}.dvp-app-body #wpadminbar{display:none!important}html:has(.dvp-app-shell),html:has(.dvp-standalone-login){margin-top:0!important}.dvp-app-shell{min-height:100vh}.dvp-sidebar{position:fixed;z-index:50;inset:0 auto 0 0;width:250px;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--dvp-dark),var(--dvp-navy));color:#fff;padding:24px 16px}.dvp-brand{display:flex;align-items:center;gap:12px;padding:0 8px 24px;color:#fff;text-decoration:none}.dvp-brand img{width:58px;height:58px;object-fit:contain}.dvp-brand-mark{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--dvp-accent);color:var(--dvp-dark);font-weight:900}.dvp-brand-copy{display:flex;flex-direction:column}.dvp-brand-copy strong{font-size:1.05rem}.dvp-brand-copy small{color:rgba(255,255,255,.65);margin-top:3px}.dvp-side-nav{display:flex;flex-direction:column;gap:5px}.dvp-side-nav a{display:flex;align-items:center;gap:12px;padding:12px 13px;border-radius:10px;color:rgba(255,255,255,.78);text-decoration:none;font-weight:700;transition:.18s}.dvp-side-nav a span{width:22px;text-align:center}.dvp-side-nav a:hover,.dvp-side-nav a.is-active{background:rgba(255,255,255,.11);color:#fff}.dvp-side-nav a.is-active{box-shadow:inset 4px 0 var(--dvp-accent)}.dvp-sidebar-footer{margin-top:auto;padding:18px 12px 4px;border-top:1px solid rgba(255,255,255,.12)}.dvp-sidebar-footer a{color:rgba(255,255,255,.75);text-decoration:none}.dvp-app-main{min-height:100vh;margin-left:250px}.dvp-topbar{position:sticky;z-index:40;top:0;height:72px;display:flex;align-items:center;justify-content:flex-end;padding:0 34px;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--dvp-border)}.dvp-mobile-brand{display:none}.dvp-topbar-user{display:flex;align-items:center;gap:12px;font-weight:700}.dvp-topbar-user a{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--dvp-navy);color:var(--dvp-accent);text-decoration:none}.dvp-app-content{max-width:1280px;margin:0 auto;padding:34px}.dvp-bottom-nav{display:none}.dvp-wrap{max-width:none;margin:0}.dvp-hero{position:relative;overflow:hidden;padding:36px 40px;border-radius:22px;background:linear-gradient(120deg,var(--dvp-dark),var(--dvp-navy));box-shadow:var(--dvp-shadow);margin-bottom:24px;color:#fff}.dvp-hero:after{content:"";position:absolute;right:-65px;bottom:-100px;width:240px;height:240px;border:42px solid rgba(242,195,0,.15);border-radius:50%}.dvp-hero>*{position:relative;z-index:1}.dvp-hero h2{margin:5px 0 8px;color:#fff;font-size:clamp(1.9rem,3vw,2.7rem)}.dvp-hero p{margin:0;color:rgba(255,255,255,.75)}.dvp-eyebrow{color:var(--dvp-accent);font-size:.75rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.dvp-grid,.dvp-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.dvp-tile{position:relative;display:flex;align-items:center;gap:16px;min-height:120px;padding:20px 48px 20px 20px;overflow:hidden;border:1px solid var(--dvp-border);border-radius:var(--dvp-radius);background:#fff;box-shadow:var(--dvp-shadow);text-decoration:none;color:var(--dvp-text);transition:.2s}.dvp-tile:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--dvp-accent)}.dvp-tile:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(5,29,52,.14)}.dvp-tile-icon{display:grid;place-items:center;width:54px;height:54px;flex:0 0 54px;border-radius:50%;background:var(--dvp-navy);font-size:25px}.dvp-tile-copy{display:flex;flex-direction:column;gap:4px}.dvp-tile-copy strong{color:var(--dvp-navy);font-size:1.05rem}.dvp-tile-copy small{color:var(--dvp-muted);line-height:1.4}.dvp-arrow{position:absolute;right:18px;color:#c39a00;font-size:28px}.dvp-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 24px;padding-bottom:18px;border-bottom:3px solid var(--dvp-accent)}.dvp-page-head h2{margin:7px 0 4px;color:var(--dvp-navy);font-size:2rem}.dvp-page-head p{margin:0;color:var(--dvp-muted)}.dvp-back{color:var(--dvp-navy);font-size:.9rem;font-weight:800;text-decoration:none}.dvp-card{position:relative;padding:22px;border:1px solid var(--dvp-border);border-radius:var(--dvp-radius);background:#fff;box-shadow:var(--dvp-shadow)}.dvp-card h3{margin-top:0;color:var(--dvp-navy)}.dvp-card a:not(.dvp-button){color:var(--dvp-navy);font-weight:700}.dvp-form{max-width:780px;padding:28px;border:1px solid var(--dvp-border);border-radius:var(--dvp-radius);background:#fff;box-shadow:var(--dvp-shadow)}.dvp-form label{display:block;margin-bottom:16px;color:var(--dvp-navy);font-weight:800}.dvp-form input,.dvp-form select,.dvp-form textarea{width:100%;min-height:46px;margin-top:7px;padding:11px 13px;border:1px solid #cbd5df;border-radius:9px;background:#fff;font:inherit}.dvp-form textarea{min-height:130px}.dvp-form input:focus,.dvp-form select:focus,.dvp-form textarea:focus,.dvp-login-card input:focus{outline:0;border-color:#c69f00;box-shadow:0 0 0 4px rgba(242,195,0,.18)}.dvp-form button,.dvp-button,.dvp-filter-reset{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 18px;border:0;border-radius:9px;background:var(--dvp-accent);color:var(--dvp-dark)!important;font-weight:900;text-decoration:none;cursor:pointer}.dvp-button-secondary{background:#eef2f7!important;color:var(--dvp-navy)!important}.dvp-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:24px;padding:18px;border-radius:var(--dvp-radius);background:var(--dvp-navy)}.dvp-filters label{color:#fff;font-size:.86rem;font-weight:800}.dvp-filters select{width:100%;min-height:43px;margin-top:6px;padding:9px;border:0;border-radius:8px;background:#fff}.dvp-filter-reset{align-self:end}.dvp-notice{margin:14px 0;padding:14px 17px;border-left:5px solid var(--dvp-accent);border-radius:10px;background:#fff8d5}.dvp-success{border-left-color:#188653;background:#e7f7ef}.dvp-empty{padding:28px;border:2px dashed #cbd5df;border-radius:var(--dvp-radius);text-align:center;color:var(--dvp-muted)}.dvp-training-group{margin-bottom:30px}.dvp-training-group>h3{padding-left:12px;border-left:5px solid var(--dvp-accent);color:var(--dvp-navy)}.dvp-training-day{color:var(--dvp-navy);font-size:.8rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.dvp-training-time{font-size:1.25rem;font-weight:800;color:var(--dvp-navy)}.dvp-training-hall{color:var(--dvp-muted)}.dvp-task-done{opacity:.62}.dvp-task-done h3{text-decoration:line-through}.dvp-training-card[hidden],.dvp-training-group[hidden],[data-filter-empty][hidden],.dvp-contact-card[hidden],[data-contact-empty][hidden]{display:none!important}
.dvp-standalone-login{min-height:100vh}.dvp-login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 85% 15%,rgba(242,195,0,.2),transparent 28%),linear-gradient(135deg,var(--dvp-dark),var(--dvp-navy))}.dvp-login-card{width:min(450px,100%);padding:38px;border-top:7px solid var(--dvp-accent);border-radius:18px;background:#fff;box-shadow:0 25px 70px rgba(0,0,0,.28)}.dvp-login-brand{display:flex;justify-content:center;margin-bottom:14px}.dvp-login-brand img{width:min(230px,75%);height:90px;object-fit:contain}.dvp-login-brand span{display:grid;place-items:center;width:75px;height:75px;border-radius:18px;background:var(--dvp-navy);color:var(--dvp-accent);font-size:1.5rem;font-weight:900}.dvp-login-card h1{text-align:center;color:var(--dvp-navy)}.dvp-login-card>p{text-align:center;color:var(--dvp-muted)}.dvp-login-card label{display:block;margin-top:15px;color:var(--dvp-navy);font-weight:800}.dvp-login-card input[type=text],.dvp-login-card input[type=password]{width:100%;min-height:48px;margin-top:6px;padding:11px;border:1px solid #cbd5df;border-radius:9px}.dvp-login-card input[type=submit]{width:100%;min-height:49px;margin-top:18px;border:0;border-radius:9px;background:var(--dvp-accent);color:var(--dvp-dark);font-weight:900;cursor:pointer}.dvp-login-links{text-align:center}.dvp-login-links a{color:var(--dvp-navy);font-weight:700}
@media(max-width:1050px){.dvp-grid,.dvp-list{grid-template-columns:repeat(2,minmax(0,1fr))}.dvp-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.dvp-sidebar{display:none}.dvp-app-main{margin-left:0}.dvp-topbar{height:62px;padding:0 16px;justify-content:space-between}.dvp-mobile-brand{display:flex;align-items:center;gap:9px;color:var(--dvp-navy);text-decoration:none}.dvp-mobile-brand img{width:38px;height:38px;object-fit:contain}.dvp-mobile-brand span{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:var(--dvp-navy);color:var(--dvp-accent);font-weight:900}.dvp-topbar-user>span{display:none}.dvp-app-content{padding:20px 14px 125px}.dvp-bottom-nav{position:fixed;z-index:60;display:grid;grid-template-columns:repeat(5,1fr);left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));padding:8px 6px;border:1px solid var(--dvp-border);border-radius:18px;background:rgba(255,255,255,.97);backdrop-filter:blur(14px);box-shadow:0 10px 32px rgba(5,29,52,.2)}.dvp-bottom-nav a{display:flex;min-height:54px;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 2px;border-radius:12px;color:#798696;text-decoration:none}.dvp-bottom-nav a span{font-size:23px;line-height:1}.dvp-bottom-nav a small{font-size:.7rem;font-weight:850}.dvp-bottom-nav a.is-active{color:var(--dvp-navy)}.dvp-bottom-nav a.is-active span{color:#c29900}.dvp-hero{padding:27px 23px;border-radius:17px}.dvp-grid,.dvp-list,.dvp-filters{grid-template-columns:1fr}.dvp-tile{min-height:96px}.dvp-page-head{align-items:flex-start;flex-direction:column}.dvp-page-head .dvp-button{width:100%}.dvp-form{padding:20px}.dvp-login-card{padding:29px 22px}}

/* Authentifizierung: Anmeldung und Registrierung */
.dvp-auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:24px 0 18px;padding:5px;border-radius:12px;background:#eef2f6}
.dvp-auth-tab{min-height:42px;border:0;border-radius:9px;background:transparent;color:#526276;font:inherit;font-weight:800;cursor:pointer}
.dvp-auth-tab.is-active{background:#fff;color:#082d4f;box-shadow:0 4px 14px rgba(5,29,52,.1)}
.dvp-auth-panel{display:none}
.dvp-auth-panel.is-active{display:block}
.dvp-register-form label{display:block;margin:0 0 15px;color:#082d4f;font-weight:800}
.dvp-register-form input{box-sizing:border-box;width:100%;min-height:48px;margin-top:6px;padding:11px 13px;border:1px solid #cbd5df;border-radius:9px;background:#fff;color:#102033;font:inherit;outline:none}
.dvp-register-form input:focus{border-color:var(--dvp-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--dvp-accent) 20%,transparent)}
.dvp-register-form .dvp-button{width:100%;margin-top:4px}
.dvp-register-hint{margin:14px 0 0;color:#64748b!important;font-size:.86rem;text-align:center!important}


/* Trainingszeiten 2.3: Listen-/Wochenansicht, Gültigkeit und Bemerkungen */
.dvp-view-switch{display:inline-flex;gap:6px;margin:0 0 18px;padding:5px;border-radius:12px;background:#e8edf3}.dvp-view-button{min-height:42px;padding:9px 15px;border:0;border-radius:9px;background:transparent;color:var(--dvp-muted);font:inherit;font-weight:850;cursor:pointer}.dvp-view-button.is-active{background:#fff;color:var(--dvp-navy);box-shadow:0 4px 14px rgba(5,29,52,.1)}
.dvp-training-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.dvp-training-card-head p{margin:0}.dvp-training-status{padding:4px 8px;border-radius:999px;background:#e7f7ef;color:#12673f;font-size:.72rem;font-weight:900}.dvp-status-future .dvp-training-status{background:#e8f1fb;color:#225b91}.dvp-status-expired{opacity:.64}.dvp-status-expired .dvp-training-status{background:#eef0f3;color:#657080}.dvp-training-validity{margin:12px 0 0;padding-top:10px;border-top:1px solid var(--dvp-border);color:var(--dvp-muted);font-size:.84rem;font-weight:700}.dvp-training-note{margin-top:12px;padding:10px 12px;border-left:4px solid var(--dvp-accent);border-radius:7px;background:#fff8d5;color:#39485a;font-size:.9rem}
.dvp-week-scroll{overflow-x:auto;padding-bottom:10px}.dvp-week-calendar{display:grid;grid-template-columns:66px repeat(7,minmax(145px,1fr));min-width:1080px;border:1px solid var(--dvp-border);border-radius:14px;background:#fff;box-shadow:var(--dvp-shadow);overflow:hidden}.dvp-week-time-head,.dvp-week-day-head{position:sticky;top:0;z-index:3;padding:12px 7px;border-bottom:1px solid var(--dvp-border);background:var(--dvp-navy);color:#fff;text-align:center;font-size:.82rem;font-weight:900}.dvp-week-times{position:relative;border-right:1px solid var(--dvp-border);background:#f5f7fa}.dvp-week-times span{position:absolute;right:8px;transform:translateY(-50%);color:#718096;font-size:.7rem}.dvp-week-day{position:relative;border-right:1px solid var(--dvp-border);background:#fff}.dvp-week-day:last-child{border-right:0}.dvp-week-day>i{position:absolute;left:0;right:0;border-top:1px solid #e8edf3}.dvp-week-event{position:absolute;z-index:2;left:5px;right:5px;overflow:hidden;padding:7px 8px;border-left:4px solid var(--dvp-accent);border-radius:7px;background:#e9f0f7;box-shadow:0 3px 10px rgba(5,29,52,.12);color:var(--dvp-navy);font-size:.72rem;line-height:1.25}.dvp-week-event strong,.dvp-week-event span,.dvp-week-event small{display:block}.dvp-week-event strong{font-size:.77rem}.dvp-week-event small{margin-top:2px;color:#586779}.dvp-week-event.dvp-status-future{border-left-color:#4d8fc7;background:#edf5fc}.dvp-week-event.dvp-status-expired{border-left-color:#9ca7b3;background:#f1f3f5;opacity:.62}.dvp-week-note{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:italic}.dvp-week-event[hidden],[data-training-panel][hidden]{display:none!important}
@media(max-width:760px){.dvp-view-switch{display:grid;grid-template-columns:1fr 1fr;width:100%}.dvp-view-button{padding:8px 5px;font-size:.82rem}.dvp-week-calendar{grid-template-columns:58px repeat(7,135px)}}

/* 2.3.1 – kompakte, überlappungsfreie Trainingswoche */
.dvp-compact-week{display:grid;grid-template-columns:repeat(7,minmax(190px,1fr));gap:14px;overflow-x:auto;padding:4px 2px 14px}
.dvp-compact-day{min-width:190px;background:#fff;border:1px solid rgba(9,35,72,.12);border-radius:16px;overflow:hidden}
.dvp-compact-day>h3{margin:0;padding:12px 14px;background:#0b2b55;color:#fff;font-size:15px}
.dvp-compact-events{display:flex;flex-direction:column;gap:9px;padding:10px}
.dvp-compact-event{display:flex;flex-direction:column;gap:3px;padding:10px;border:1px solid rgba(9,35,72,.12);border-left:4px solid #f2c300;border-radius:10px;background:#f8fafc}
.dvp-compact-event[hidden]{display:none!important}
.dvp-compact-time{font-size:12px;font-weight:800;color:#0b2b55}
.dvp-compact-event strong{font-size:14px;line-height:1.25}
.dvp-compact-event small{font-size:12px;line-height:1.3;color:#526174}
.dvp-compact-note{margin-top:4px;padding-top:5px;border-top:1px solid rgba(9,35,72,.1)}
.dvp-compact-empty{padding:18px 8px;text-align:center;color:#7a8795;font-size:13px}
.dvp-form-hint{margin:-4px 0 14px;color:#667085;font-size:13px}
.dvp-calendar-day.has-events{background:#fff9d9}
@media(max-width:900px){.dvp-compact-week{grid-template-columns:repeat(7,minmax(175px,1fr))}}

/* 2.3.2: kompakte klickbare Zeitachse und Löschaktionen */
.dvp-week-event{overflow:visible!important;min-width:0;padding:0!important;z-index:3}
.dvp-week-event:hover,.dvp-week-event:focus-within{z-index:30}
.dvp-week-event-button{display:block;width:100%;height:100%;min-height:28px;padding:3px 5px;border:0;border-radius:6px;background:transparent;color:inherit;font:inherit;font-size:11px;font-weight:800;line-height:1.1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.dvp-week-event-detail{position:absolute;z-index:100;top:calc(100% + 5px);left:0;width:240px;max-width:75vw;padding:12px;border:1px solid #dce4eb;border-radius:10px;background:#fff;box-shadow:0 12px 32px rgba(5,29,52,.2);color:#082d4f;font-size:13px;line-height:1.4}
.dvp-week-event-detail strong,.dvp-week-event-detail span{display:block;margin-bottom:5px}
.dvp-delete-link{display:inline-flex;align-items:center;gap:5px;color:#b42318;font-weight:700;text-decoration:none}
.dvp-delete-link:hover{text-decoration:underline}

/* 3.2.0 – zentriertes Trainings-Popup */
.dvp-week-event-detail{display:none!important}
.dvp-training-modal[hidden]{display:none!important}
.dvp-training-modal{position:fixed;z-index:100000;inset:0;display:grid;place-items:center;padding:20px}
.dvp-training-modal-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(5,29,52,.62);backdrop-filter:blur(4px);cursor:pointer}
.dvp-training-modal-card{position:relative;z-index:1;width:min(460px,100%);max-height:min(680px,calc(100vh - 40px));overflow:auto;padding:24px;border-radius:18px;background:#fff;box-shadow:0 28px 80px rgba(5,29,52,.35);color:var(--dvp-navy)}
.dvp-training-modal-close{position:absolute;top:10px;right:12px;display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:999px;background:#eef2f6;color:var(--dvp-navy);font-size:28px;line-height:1;cursor:pointer}
.dvp-training-modal-content{padding-right:34px;font-size:15px;line-height:1.55}
.dvp-training-modal-content strong{display:block;margin:0 0 14px;font-size:1.35rem}
.dvp-training-modal-content span{display:block;margin:8px 0}
body.dvp-modal-open{overflow:hidden}
@media(max-width:760px){.dvp-training-modal{align-items:end;padding:12px}.dvp-training-modal-card{width:100%;max-height:78vh;padding:22px 20px calc(22px + env(safe-area-inset-bottom));border-radius:20px 20px 14px 14px}.dvp-training-modal-content{padding-right:30px}.dvp-view-switch{grid-template-columns:1fr}.dvp-week-event-button{min-height:32px;font-size:12px}}

.dvp-topbar-user .dvp-user-avatar{overflow:hidden;padding:0;background:#eef2f7}.dvp-topbar-user .dvp-user-avatar img{width:100%;height:100%;object-fit:cover}.dvp-profile-card{display:grid;grid-template-columns:180px minmax(0,1fr);gap:28px;align-items:start}.dvp-profile-avatar img{display:block;width:180px;height:180px;border-radius:50%;object-fit:cover;border:5px solid #fff;box-shadow:0 8px 24px rgba(5,29,52,.16)}.dvp-profile-image-form{max-width:560px;margin:22px 0;padding:18px;border-radius:12px;background:#f5f7fa}.dvp-profile-image-form label{display:block;font-weight:800;color:var(--dvp-navy)}.dvp-profile-image-form input[type=file]{display:block;width:100%;margin-top:9px;padding:10px;border:1px solid #cbd5df;border-radius:9px;background:#fff}.dvp-profile-image-form small{display:block;margin:8px 0 14px;color:var(--dvp-muted)}.dvp-profile-actions{display:flex;flex-wrap:wrap;gap:10px}@media(max-width:760px){.dvp-profile-card{grid-template-columns:1fr;text-align:center}.dvp-profile-avatar img{width:140px;height:140px;margin:0 auto}.dvp-profile-image-form{text-align:left}.dvp-profile-actions .dvp-button{width:100%}}

/* Ansprechpartner: Mehrfachfunktionen */
.dvp-checkbox-group{border:0;padding:0;margin:0 0 18px}.dvp-checkbox-group legend{font-weight:700;margin-bottom:8px}.dvp-checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px}.dvp-checkbox-grid label{display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px solid rgba(15,23,42,.14);border-radius:10px;background:#fff;cursor:pointer}.dvp-checkbox-grid input{width:18px;height:18px;margin:0;flex:0 0 auto}.dvp-checkbox-grid label:has(input:checked){border-color:var(--dvp-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--dvp-accent) 22%,transparent)}
@media(max-width:600px){.dvp-checkbox-grid{grid-template-columns:1fr}.dvp-checkbox-grid label{min-height:46px}}

.dvp-news-list{display:grid;gap:18px}.dvp-news-card{overflow:hidden;padding:0}.dvp-news-image{display:block;width:100%;max-height:360px;object-fit:cover}.dvp-news-content{padding:22px}.dvp-news-content small{color:var(--dvp-muted)}.dvp-news-content h3{margin:8px 0 12px;color:var(--dvp-navy);font-size:1.35rem}.dvp-news-form small{font-weight:400;color:var(--dvp-muted)}


/* 3.2.6 – Trainingsplan nach Tagen und Hallen */
.dvp-training-card{border-left:6px solid var(--slot-color,var(--dvp-accent))}.dvp-slot-free{background:#f0fbf5}.dvp-slot-free .dvp-training-status{background:#dff5e9;color:#17663f}.dvp-list-closure{border-left-color:#d92d20;background:#fff4f2}.dvp-list-closure .dvp-training-status{background:#fee4e2;color:#b42318}
.dvp-hallplan{display:grid;gap:24px}.dvp-hallplan-day{border:1px solid var(--dvp-border);border-radius:18px;background:#fff;box-shadow:var(--dvp-shadow);overflow:hidden}.dvp-hallplan-day>h3{margin:0;padding:14px 18px;background:var(--dvp-navy);color:#fff;font-size:1.1rem}.dvp-hallplan-scroll{overflow-x:auto}.dvp-hallplan-grid{display:grid;grid-template-columns:repeat(var(--dvp-hall-count),minmax(210px,1fr));min-width:max(100%,calc(var(--dvp-hall-count) * 210px))}.dvp-hall-column{min-width:0;border-right:1px solid var(--dvp-border)}.dvp-hall-column:last-child{border-right:0}.dvp-hall-column>h4{position:sticky;top:0;z-index:2;margin:0;padding:11px 12px;border-bottom:1px solid var(--dvp-border);background:#f3f6f9;color:var(--dvp-navy);text-align:center;font-size:.9rem}.dvp-hall-column-events{display:flex;flex-direction:column;gap:9px;min-height:130px;padding:10px}.dvp-hall-slot{overflow:hidden;border:1px solid color-mix(in srgb,var(--slot-color) 45%,#dce4eb);border-left:7px solid var(--slot-color);border-radius:10px;background:color-mix(in srgb,var(--slot-color) 10%,#fff);box-shadow:0 3px 10px rgba(5,29,52,.08)}.dvp-hall-slot-button{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;width:100%;min-height:52px;padding:10px;border:0;background:transparent;color:var(--dvp-navy);text-align:left;cursor:pointer}.dvp-hall-slot-button span{font-size:.75rem;font-weight:900;white-space:nowrap}.dvp-hall-slot-button strong{overflow:hidden;font-size:.9rem;text-overflow:ellipsis;white-space:nowrap}.dvp-hall-slot:hover{transform:translateY(-1px);box-shadow:0 7px 16px rgba(5,29,52,.13)}.dvp-hall-closure{display:flex;flex-direction:column;gap:3px;padding:10px;border:1px solid #f04438;border-left:7px solid #d92d20;border-radius:10px;background:#fff1f0;color:#7a271a}.dvp-hall-closure strong{font-size:.9rem}.dvp-hall-closure span{font-size:.77rem;font-weight:900}.dvp-hall-closure small{font-size:.75rem;line-height:1.3}.dvp-hall-empty{display:grid;place-items:center;min-height:70px;border:1px dashed #ccd5df;border-radius:10px;color:#8a97a5;font-size:.78rem}.dvp-hall-slot[hidden],.dvp-hall-closure[hidden],.dvp-hall-column[hidden],.dvp-hallplan-day[hidden]{display:none!important}
@media(max-width:760px){.dvp-hallplan{gap:18px}.dvp-hallplan-day>h3{padding:13px 15px}.dvp-hallplan-grid{grid-template-columns:repeat(var(--dvp-hall-count),minmax(185px,1fr));min-width:calc(var(--dvp-hall-count) * 185px)}.dvp-hall-column-events{padding:8px}.dvp-hall-slot-button{grid-template-columns:1fr;gap:3px;min-height:58px}.dvp-hall-slot-button strong{font-size:.86rem}.dvp-hall-slot-button span{font-size:.72rem}}

/* 3.2.7 – Hallenhinweise und kompakte Wochenansicht */
.dvp-hall-column-head{position:sticky;top:0;z-index:2;min-height:48px;padding:9px 10px;border-bottom:1px solid var(--dvp-border);background:#f3f6f9;text-align:center}
.dvp-hall-column-head h4{margin:0;color:var(--dvp-navy);font-size:.9rem}
.dvp-hall-head-closure{display:flex;flex-direction:column;gap:1px;margin-top:5px;color:#c01f16;font-size:.72rem;line-height:1.25}
.dvp-hall-head-closure strong{font-weight:900}.dvp-hall-head-closure span{font-size:.68rem}
.dvp-hall-slot-button{grid-template-columns:auto minmax(0,1fr)}
.dvp-hall-slot-button .dvp-hall-slot-time{grid-column:1;grid-row:1}
.dvp-hall-slot-button>strong{grid-column:2;grid-row:1}
.dvp-hall-slot-note,.dvp-hall-slot-valid{grid-column:1/-1;display:block;overflow:hidden;color:#536273;font-size:.7rem;line-height:1.3;text-overflow:ellipsis;white-space:normal}
.dvp-hall-slot-note{padding-top:5px;border-top:1px solid rgba(9,35,72,.1)}
.dvp-hall-slot-valid{font-weight:700;color:#6b7786}
.dvp-compact-event{border-left-color:var(--slot-color,#f2c300);background:color-mix(in srgb,var(--slot-color,#f2c300) 8%,#fff)}
@media(max-width:760px){.dvp-hall-column-head{min-height:50px}.dvp-hall-slot-button{grid-template-columns:1fr}.dvp-hall-slot-button .dvp-hall-slot-time,.dvp-hall-slot-button>strong{grid-column:1;grid-row:auto}.dvp-hall-slot-note,.dvp-hall-slot-valid{font-size:.68rem}}


/* 3.2.8 – Vollbild-Trainingsplan und Ansprechpartner-Zuordnungen */
.dvp-training-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.dvp-training-toolbar .dvp-view-switch{flex:1;margin:0}.dvp-fullscreen-button{flex:0 0 auto;min-height:44px;padding:10px 16px;border:1px solid var(--dvp-border);border-radius:10px;background:#fff;color:var(--dvp-navy);font-weight:800;cursor:pointer}.dvp-fullscreen-button:hover{background:#f3f6f9}.dvp-training-root:fullscreen,.dvp-training-root.is-fullscreen{overflow:auto;width:100vw;height:100vh;padding:20px;background:#eef2f6}.dvp-training-root:fullscreen .dvp-training-toolbar,.dvp-training-root.is-fullscreen .dvp-training-toolbar{position:sticky;top:0;z-index:50;padding:10px;border-radius:14px;background:rgba(238,242,246,.96);box-shadow:0 8px 24px rgba(5,29,52,.14);backdrop-filter:blur(8px)}body.dvp-training-fullscreen-open{overflow:hidden}.dvp-contact-assignment-form{display:grid;gap:10px}.dvp-contact-assignment-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--dvp-border);border-radius:12px;background:#f7f9fb}.dvp-contact-assignment-row label{margin:0}.dvp-assignment-remove{min-height:44px;padding:8px 10px;border:0;background:transparent;color:#b42318;font-weight:800;cursor:pointer}.dvp-assignment-add{margin-top:10px}.dvp-contact-assignments{display:grid;gap:7px;margin:10px 0 14px}.dvp-contact-assignments p{display:flex;flex-wrap:wrap;gap:6px 10px;margin:0;padding:9px 11px;border-radius:9px;background:#f3f6f9}.dvp-contact-assignments strong{color:var(--dvp-navy)}.dvp-contact-assignments span{color:var(--dvp-muted)}
@media(max-width:760px){.dvp-training-toolbar{align-items:stretch;flex-direction:column}.dvp-fullscreen-button{width:100%}.dvp-training-root:fullscreen,.dvp-training-root.is-fullscreen{padding:10px}.dvp-contact-assignment-row{grid-template-columns:1fr}.dvp-assignment-remove{justify-self:start}}

/* 3.2.9 – eigener Portal-Login mit E-Mail-Unterstützung */
.dvp-portal-login-form .dvp-button{width:100%;margin-top:18px}.dvp-login-remember{display:flex!important;align-items:center;gap:8px;font-weight:700!important}.dvp-login-remember input{width:auto!important;min-height:0!important;margin:0!important}

/* 4.0.0 – Portal Core: modulares Dashboard und feste App-Navigation */
.dvp-core-hero{display:flex;align-items:center;justify-content:space-between;gap:20px}
.dvp-core-welcome{display:flex;align-items:center;gap:18px;min-width:0}
.dvp-core-welcome>img{width:72px;height:72px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.85);box-shadow:0 8px 22px rgba(0,0,0,.18)}
.dvp-core-welcome h2{margin:.2rem 0}.dvp-core-notification{position:relative;display:flex;align-items:center;gap:8px;flex:0 0 auto;padding:11px 14px;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;text-decoration:none;font-weight:800}.dvp-core-notification strong{display:grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:999px;background:var(--dvp-accent);color:var(--dvp-navy);font-size:.75rem}
.dvp-core-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dvp-core-tile{position:relative;overflow:hidden;min-height:112px;border-top:4px solid var(--dvp-tile-color,var(--dvp-accent))}.dvp-core-tile .dvp-tile-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:color-mix(in srgb,var(--dvp-tile-color,var(--dvp-accent)) 18%,#fff);font-size:1.35rem}.dvp-core-tile .dvp-tile-copy strong{font-size:1rem}
.dvp-core-bottom-nav button{appearance:none;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.dvp-core-bottom-nav a,.dvp-core-bottom-nav button{min-width:0}.dvp-core-bottom-nav span{font-size:1.25rem}.dvp-core-bottom-nav small{font-size:.68rem}
.dvp-more-backdrop{position:fixed;inset:0;z-index:9997;background:rgba(5,29,52,.45);opacity:0;transition:opacity .22s ease}.dvp-more-backdrop.is-open{opacity:1}.dvp-more-sheet{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:9998;max-height:min(76vh,680px);overflow:auto;padding:10px 18px calc(18px + env(safe-area-inset-bottom));border-radius:24px;background:#fff;box-shadow:0 24px 80px rgba(5,29,52,.3);transform:translateY(115%);transition:transform .22s ease}.dvp-more-sheet.is-open{transform:translateY(0)}.dvp-more-handle{width:44px;height:5px;margin:2px auto 12px;border-radius:999px;background:#ccd5df}.dvp-more-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;color:var(--dvp-navy);font-size:1.15rem}.dvp-more-head button{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:#eef2f6;color:var(--dvp-navy);font-size:1.6rem;cursor:pointer}.dvp-more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.dvp-more-grid a{display:flex;min-width:0;min-height:92px;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:12px 8px;border:1px solid var(--dvp-border);border-radius:16px;background:#f8fafc;color:var(--dvp-navy);text-align:center;text-decoration:none}.dvp-more-grid a span{font-size:1.35rem}.dvp-more-grid a strong{font-size:.78rem;line-height:1.25}.dvp-more-grid a:hover{border-color:var(--dvp-accent);background:#fff}body.dvp-more-open{overflow:hidden}
@media(min-width:961px){.dvp-more-sheet,.dvp-more-backdrop{display:none!important}}
@media(max-width:760px){.dvp-core-hero{align-items:flex-start;flex-direction:column}.dvp-core-welcome>img{width:58px;height:58px}.dvp-core-notification{align-self:stretch;justify-content:center}.dvp-core-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dvp-core-tile{min-height:126px;align-items:flex-start;flex-direction:column;padding:15px}.dvp-core-tile .dvp-arrow{position:absolute;right:13px;top:13px}.dvp-core-tile .dvp-tile-copy small{display:block;margin-top:4px;font-size:.72rem;line-height:1.35}.dvp-more-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:390px){.dvp-more-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dvp-core-grid{grid-template-columns:1fr}}

/* 4.0.1 – unified dark outline icons and robust mobile controls */
.dvp-icon{display:block;width:1.45em;height:1.45em;color:inherit;pointer-events:none}
.dvp-icon-fallback{display:inline-grid;place-items:center;color:inherit;line-height:1}
.dvp-tile-icon{background:#eef2f6!important;color:var(--dvp-navy)!important}
.dvp-core-tile .dvp-tile-icon{background:color-mix(in srgb,var(--dvp-tile-color,var(--dvp-accent)) 18%,#fff)!important;color:var(--dvp-navy)!important}
.dvp-side-nav a>span,.dvp-more-grid a>span{display:grid;place-items:center;color:currentColor}
.dvp-side-nav .dvp-icon{width:22px;height:22px}
.dvp-topbar-user>a .dvp-icon{width:20px;height:20px;color:var(--dvp-accent)}
.dvp-bottom-nav button{display:flex;min-height:54px;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 2px;border:0;border-radius:12px;background:transparent;color:#798696;font:inherit;cursor:pointer}
.dvp-bottom-nav a span,.dvp-bottom-nav button span{display:grid;place-items:center;width:25px;height:25px;font-size:inherit}
.dvp-bottom-nav .dvp-icon{width:24px;height:24px}
.dvp-bottom-nav a small,.dvp-bottom-nav button small{font-size:.7rem;font-weight:850}
.dvp-bottom-nav a.is-active .dvp-icon{color:#9b7900}
.dvp-more-grid .dvp-icon{width:27px;height:27px;color:var(--dvp-navy)}
.dvp-core-tile:active,.dvp-bottom-nav a:active,.dvp-bottom-nav button:active,.dvp-more-grid a:active{transform:scale(.97)}

.dvp-profile-documents{margin-top:18px}.dvp-profile-document-list{display:grid;gap:10px;margin-top:16px}.dvp-profile-document-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #e5e7eb;border-radius:12px}.dvp-profile-document-item a{display:flex;flex-direction:column;min-width:0}.dvp-profile-document-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dvp-contact-assignment-row{grid-template-columns:repeat(3,minmax(0,1fr)) auto!important}.dvp-team-optional{opacity:.72}@media(max-width:760px){.dvp-contact-assignment-row{grid-template-columns:1fr!important}.dvp-profile-document-item{align-items:flex-start;flex-direction:column}}


/* 4.2.0 – mobile dashboard alignment and UI polish */
@media(max-width:760px){
  .dvp-app-content{padding-top:28px}
  .dvp-core-tile{
    min-height:134px;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:11px;
    padding:18px 48px 18px;
    text-align:center;
  }
  .dvp-core-tile:before{
    top:14px;
    bottom:14px;
    height:auto;
    border-radius:0 999px 999px 0;
  }
  .dvp-core-tile .dvp-tile-icon{
    width:62px;
    height:62px;
    flex:0 0 62px;
    border-radius:17px;
  }
  .dvp-core-tile .dvp-tile-icon .dvp-icon{
    width:34px;
    height:34px;
  }
  .dvp-core-tile .dvp-tile-copy{
    width:100%;
    align-items:center;
    gap:3px;
    text-align:center;
  }
  .dvp-core-tile .dvp-tile-copy strong,
  .dvp-core-tile .dvp-tile-copy small{
    display:block;
    width:100%;
    margin:0;
    text-align:center;
  }
  .dvp-core-tile .dvp-tile-copy strong{font-size:1.03rem;line-height:1.25}
  .dvp-core-tile .dvp-tile-copy small{font-size:.76rem;line-height:1.35}
  .dvp-core-tile .dvp-arrow{
    right:18px;
    top:50%;
    transform:translateY(-50%);
    font-size:25px;
    line-height:1;
  }
}
.dvp-module-group{margin:0 0 24px}.dvp-module-group>h3{margin:0 0 10px;font-size:15px;color:#667085;text-transform:uppercase;letter-spacing:.04em}.dvp-side-group{display:block;padding:16px 14px 6px;color:#98a2b3;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.dvp-more-group{grid-column:1/-1;margin:12px 0 0;font-size:13px;color:#667085;text-transform:uppercase;letter-spacing:.04em}
