/* VdH Kempten Portal – aktive Styles, UI-Pfadtest v38. */
:root {
  --g1:#1e4d1e;--g2:#2d6a2d;--g3:#3a8a3a;--g4:#e8f4e8;--g5:#f4f9f4;
  --gold:#c8a027;--gold2:#f0d060;
  --red:#c0392b;--red2:#fdecea;
  --blue:#1a5fa8;--blue2:#e8f0fc;
  --amber:#b8720a;--amber2:#fff8e1;
  --border:#c4d8c4;--border2:#e0eee0;
  --text:#1a2a1a;--muted:#5a7a5a;--muted2:#8aaa8a;
  --white:#fff;--bg:#f0f5f0;
  --radius:8px;--radius2:12px;
  --shadow:0 2px 12px rgba(45,106,45,.10);
  --app-safe-top:env(safe-area-inset-top,0px);
}
/* Manche installierten iPhone-PWAs melden trotz Statusleiste 0 px. Der
   Mindestwert schützt dann Uhrzeit, Dynamic Island und Systemschaltflächen. */
body.ios-device.pwa-standalone{--app-safe-top:max(env(safe-area-inset-top,0px),44px);}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{max-width:100%;overflow-x:hidden;}
body{font-family:'Segoe UI',system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;}
.app{max-width:960px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;}
.hdr{background:var(--g1);color:#fff;display:flex;align-items:center;gap:14px;padding:11px 20px;border-bottom:3px solid var(--gold);box-shadow:0 2px 8px rgba(0,0,0,.2);}
.hdr-logo{height:48px;object-fit:contain;}
.hdr-info h1{font-size:17px;font-weight:700;letter-spacing:.02em;}
.hdr-info p{font-size:11px;opacity:.8;font-style:italic;}
.hdr-right{margin-left:auto;text-align:right;}
.hdr-user{font-size:12px;color:rgba(255,255,255,.9);margin-bottom:5px;display:flex;align-items:center;gap:7px;justify-content:flex-end;}
.hdr-avatar{width:26px;height:26px;border-radius:50%;object-fit:cover;border:1.5px solid var(--gold2);}
.hdr-btns{display:flex;gap:6px;justify-content:flex-end;}
.hdr-btn{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);color:#fff;padding:4px 12px;border-radius:5px;cursor:pointer;font-size:12px;font-family:inherit;transition:.15s;}
.hdr-btn:hover{background:rgba(255,255,255,.28);}
.hdr-btn.admin{background:rgba(200,160,39,.35);border-color:var(--gold2);}
.hdr-mobile-actions{display:none;}
.hdr-icon-btn{border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.14);color:#fff;border-radius:12px;min-height:40px;padding:0 10px;font-family:inherit;font-weight:900;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;}
.hdr-icon-btn.logout{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.34);}
.hdr-icon-btn.logout:hover{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.48);}
.nav{background:var(--g2);display:flex;padding:0 20px;gap:2px;}
.nav-tab{background:none;border:none;color:rgba(255,255,255,.72);padding:10px 16px;font-size:13px;cursor:pointer;border-bottom:3px solid transparent;font-weight:600;font-family:inherit;transition:.15s;}
.nav-tab:hover{color:#fff;}
.nav-tab.active{color:#fff;border-bottom-color:var(--gold2);}
.content{padding:20px;flex:1;}
.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius2);overflow:hidden;margin-bottom:14px;box-shadow:var(--shadow);}
.card-head{padding:13px 18px;border-bottom:1px solid var(--border2);display:flex;align-items:center;gap:10px;}
.card-head h3{font-size:15px;font-weight:700;color:var(--g1);}
.card-head p{font-size:11px;color:var(--muted);margin-top:2px;}
.card-icon{font-size:24px;}
.card-body{padding:18px;}
.login-wrap{max-width:420px;margin:32px auto;}
.login-logo-box{text-align:center;margin-bottom:24px;}
.login-logo-box img{width:210px;height:auto;display:block;margin:0 auto 14px;}
.login-logo-box h2{font-size:20px;color:var(--g1);font-weight:700;}
.login-logo-box p{font-size:12px;color:var(--muted);margin-top:3px;}
.fld{margin-bottom:14px;}
.fld label{display:block;font-size:11px;font-weight:700;color:var(--muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.07em;}
.fld .hint{display:block;margin-top:5px;font-size:11px;line-height:1.35;color:var(--muted);}
.fld input,.fld select,.fld textarea{width:100%;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--radius);font-size:13px;color:var(--text);background:var(--surface);font-family:inherit;transition:.15s;}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--g2);box-shadow:0 0 0 3px rgba(45,106,45,.1);}
.btn{padding:10px 20px;border-radius:var(--radius);border:none;cursor:pointer;font-size:13px;font-weight:700;font-family:inherit;transition:.15s;}
.btn-g{background:var(--g2);color:#fff;}.btn-g:hover{background:var(--g3);}
.btn-o{background:none;border:1.5px solid var(--border);color:var(--muted);}.btn-o:hover{border-color:var(--g2);color:var(--g2);}
.btn-r{background:var(--red);color:#fff;}.btn-r:hover{opacity:.85;}
.btn-w{width:100%;}
.btn-sm{padding:6px 12px;font-size:12px;}
.err{color:var(--red);font-size:12px;text-align:center;margin-bottom:12px;background:var(--red2);padding:8px;border-radius:6px;}
.ok-msg{color:var(--g1);font-size:12px;text-align:center;margin-bottom:12px;background:var(--g4);padding:8px;border-radius:6px;}
.link-btn{background:none;border:none;color:var(--g2);font-size:12px;cursor:pointer;text-decoration:underline;font-family:inherit;padding:4px;}
.link-btn:hover{color:var(--g3);}
.login-links{text-align:center;margin-top:14px;display:flex;flex-direction:column;gap:6px;}
.welcome{background:var(--white);border:1px solid var(--border);border-left:4px solid var(--g2);border-radius:var(--radius);padding:13px 18px;margin-bottom:18px;box-shadow:var(--shadow);display:flex;align-items:center;gap:14px;}
.welcome-avatar{width:54px;height:54px;border-radius:50%;object-fit:cover;border:2px solid var(--g3);flex-shrink:0;}
.welcome h2{font-size:16px;color:var(--g1);margin-bottom:3px;}
.welcome p{font-size:12px;color:var(--muted);}
.section-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:11px;}
.sport-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:11px;}
.sport-card{background:var(--white);border:2px solid var(--border);border-radius:var(--radius2);padding:15px 13px;cursor:pointer;transition:all .15s;position:relative;box-shadow:var(--shadow);}
.sport-card:hover{border-color:var(--g3);transform:translateY(-2px);box-shadow:0 4px 16px rgba(45,106,45,.14);}
.sport-card.sel{border-color:var(--g2);background:var(--g5);}
.sport-card .sico{font-size:30px;margin-bottom:7px;}
.sport-card .sname{font-size:13px;font-weight:700;color:var(--g1);}
.sport-card .sdesc{font-size:11px;color:var(--muted);margin-top:3px;}
.sport-card .sbadge{position:absolute;top:9px;right:9px;background:var(--g2);color:#fff;font-size:10px;padding:2px 8px;border-radius:10px;}
.sport-open-btn{margin-top:9px;background:var(--g2);color:#fff;border:none;border-radius:6px;padding:6px 10px;font-size:11px;font-weight:700;cursor:pointer;width:100%;font-family:inherit;}
.sport-open-btn:hover{background:var(--g3);}
.igp-tabs{display:flex;gap:7px;margin-bottom:16px;flex-wrap:wrap;}
.itab{padding:8px 18px;border-radius:20px;border:1.5px solid var(--border);background:var(--white);font-size:12px;cursor:pointer;font-weight:700;color:var(--muted);font-family:inherit;transition:.15s;}
.itab:hover{border-color:var(--g2);color:var(--g2);}
.itab.active{background:var(--g2);border-color:var(--g2);color:#fff;}
.sess-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius2);padding:15px 18px;margin-bottom:11px;box-shadow:var(--shadow);}
.sess-hdr{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:11px;}
.sess-date{font-size:14px;font-weight:700;color:var(--g1);}
.sess-meta{font-size:11px;color:var(--muted);margin-top:3px;}
.sess-badges{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.badge{font-size:11px;padding:2px 9px;border-radius:10px;font-weight:600;}
.b-low{background:#e8f5e9;color:#2e7d32;}
.b-mid{background:#fff8e1;color:#f57f17;}
.b-high{background:#fce4ec;color:#c62828;}
.b-weather{background:var(--g4);color:var(--g1);}
.tag-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px;}
.tag{background:var(--g4);color:var(--g1);font-size:11px;padding:3px 9px;border-radius:10px;}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:11px;}
.sl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted2);margin-bottom:4px;}
.sv{font-size:13px;color:var(--text);line-height:1.5;}
.next-box{background:var(--amber2);border:1px solid #f0c040;border-radius:7px;padding:10px 13px;margin-top:10px;}
.next-box .nl{font-size:11px;font-weight:700;color:var(--amber);text-transform:uppercase;letter-spacing:.07em;}
.next-box .nv{font-size:13px;color:#4a3800;margin-top:3px;}
.rating-stars{color:var(--gold);font-size:17px;letter-spacing:2px;}
.del-btn{background:none;border:none;color:#ccc;cursor:pointer;font-size:17px;padding:0 2px;transition:.15s;}
.del-btn:hover{color:var(--red);}
.sess-fotos{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px;}
.sess-foto{width:90px;height:90px;border-radius:8px;object-fit:cover;border:1px solid var(--border);cursor:pointer;transition:.15s;}
.sess-foto:hover{transform:scale(1.05);border-color:var(--g2);}

.sess-videos{margin-top:12px;border-top:1px solid var(--border2);padding-top:10px;}
.video-list{display:flex;flex-direction:column;gap:10px;margin-top:7px;}
.video-card{background:var(--g5);border:1px solid var(--border);border-radius:10px;padding:10px;}
.video-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:7px;}
.video-title{font-size:12px;font-weight:700;color:var(--g1);word-break:break-word;}
.video-meta{font-size:11px;color:var(--muted);margin-top:2px;}
.video-note{font-size:12px;color:var(--text);margin-top:6px;line-height:1.4;}
.sess-video-player{width:100%;max-height:360px;border-radius:8px;background:#111;display:block;}
.video-upload-box{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:9px;background:var(--surface);border:1px dashed var(--border);border-radius:8px;padding:8px;}
.video-upload-box input[type="text"]{flex:1;min-width:180px;padding:7px 9px;border:1.5px solid var(--border);border-radius:6px;font-size:12px;font-family:inherit;}
.video-upload-hint{font-size:11px;color:var(--muted);width:100%;}
.profil-training-card{background:var(--white);border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:10px;box-shadow:var(--shadow);}
.profil-training-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px;}
.profil-training-title{font-size:13px;font-weight:800;color:var(--g1);}
.profil-training-meta{font-size:11px;color:var(--muted);margin-top:2px;}
.add-form{background:var(--white);border:1px solid var(--border);border-top:3px solid var(--gold);border-radius:var(--radius2);padding:18px;margin-bottom:16px;box-shadow:var(--shadow);}
.add-form h3{font-size:14px;font-weight:700;color:var(--g1);margin-bottom:15px;}
.frow{display:grid;gap:11px;margin-bottom:11px;}
.frow.c2{grid-template-columns:1fr 1fr;}
.frow.c3{grid-template-columns:1fr 1fr 1fr;}
.frow.c1{grid-template-columns:1fr;}
.fcol{display:flex;flex-direction:column;min-width:0;}
.live-team-select,.live-share-grid{width:100%;max-width:100%;}
.live-share-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px;}
.live-share-grid .check-pill{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:#eef7f2;min-height:40px;}
.live-share-grid .check-pill input{accent-color:#6ad46a;}
.live-team-empty{font-size:12px;color:var(--muted);padding:10px 0;}
.fcol label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:5px;}
.fcol input,.fcol select,.fcol textarea{padding:9px 11px;border:1.5px solid var(--border);border-radius:var(--radius);font-size:13px;font-family:inherit;color:var(--text);resize:vertical;transition:.15s;}
.fcol input:focus,.fcol select:focus,.fcol textarea:focus{outline:none;border-color:var(--g2);}
.check-grid{display:flex;flex-wrap:wrap;gap:7px;margin-top:2px;}
.check-pill{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:7px 10px;font-size:12px;color:var(--g1);cursor:pointer;user-select:none;}
.check-pill input{width:auto;margin:0;accent-color:var(--g2);}
.helper-text{font-size:11px;color:var(--muted);margin-top:5px;}
.star-rating{display:flex;gap:5px;margin-top:5px;}
.star-btn{background:none;border:none;cursor:pointer;font-size:24px;padding:0;line-height:1;color:var(--gold);}
.form-actions{display:flex;gap:9px;margin-top:6px;}
.open-add{border:2px dashed var(--border);background:none;color:var(--muted);border-radius:var(--radius2);padding:12px;width:100%;font-size:13px;cursor:pointer;font-family:inherit;text-align:center;margin-bottom:14px;transition:.15s;}
.faehrte-box{background:var(--g5);border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:11px;}
.faehrte-title{font-size:12px;font-weight:700;color:var(--g1);margin-bottom:10px;}
.draw-tools{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;}
.draw-tool{padding:6px 12px;border:1.5px solid var(--border);background:var(--surface);border-radius:6px;font-size:12px;cursor:pointer;font-family:inherit;color:var(--muted);}
.draw-tool:hover{border-color:var(--g2);color:var(--g2);}
.draw-tool.active{background:var(--g2);border-color:var(--g2);color:#fff;}
.draw-canvas{width:100%;max-width:600px;border:1.5px solid var(--border);border-radius:8px;background:var(--g5);touch-action:none;cursor:crosshair;display:block;}
.draw-hint{font-size:11px;color:var(--muted);margin-top:5px;font-style:italic;}
.faehrte-details{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.fd-item{background:var(--g4);border-radius:8px;padding:4px 10px;font-size:12px;}
.fd-k{color:var(--muted);font-weight:600;margin-right:5px;}
.fd-v{color:var(--g1);font-weight:700;}
.sess-skizze{max-width:100%;width:auto;max-height:240px;border:1px solid var(--border);border-radius:8px;cursor:pointer;margin-top:4px;}
.open-add:hover{border-color:var(--g2);color:var(--g2);}
.back-btn{background:none;border:1px solid var(--border);border-radius:6px;padding:6px 14px;font-size:12px;cursor:pointer;color:var(--muted);margin-bottom:14px;font-family:inherit;transition:.15s;}
.back-btn:hover{border-color:var(--g2);color:var(--g2);}
.empty{text-align:center;padding:36px;color:var(--muted);font-size:13px;}
.foto-upload-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:5px;align-items:center;}
.foto-preview{width:70px;height:70px;border-radius:8px;object-fit:cover;border:1px solid var(--border);position:relative;}
.foto-preview-wrap{position:relative;}
.foto-remove{position:absolute;top:-6px;right:-6px;background:var(--red);color:#fff;border:none;border-radius:50%;width:20px;height:20px;cursor:pointer;font-size:12px;line-height:1;}
.foto-add-btn{width:70px;height:70px;border:2px dashed var(--border);border-radius:8px;background:none;cursor:pointer;color:var(--muted);font-size:24px;display:flex;align-items:center;justify-content:center;}
.foto-add-btn:hover{border-color:var(--g2);color:var(--g2);}
.admin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;}
.stat-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius2);padding:16px;text-align:center;box-shadow:var(--shadow);}
.stat-num{font-size:34px;font-weight:800;color:var(--g2);}
.stat-num.wait{color:var(--amber);}
.stat-lbl{font-size:11px;color:var(--muted);margin-top:3px;}
.member-table{width:100%;border-collapse:collapse;font-size:13px;}
.member-table th{background:var(--g4);color:var(--g1);padding:9px 13px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;}
.member-table td{padding:10px 13px;border-bottom:1px solid var(--border2);vertical-align:middle;}
.member-table tr:last-child td{border:none;}
.member-table tr:hover td{background:var(--g5);}
.m-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:1px solid var(--border);vertical-align:middle;margin-right:8px;}
.m-avatar-ph{width:32px;height:32px;border-radius:50%;background:var(--g4);display:inline-flex;align-items:center;justify-content:center;font-size:14px;margin-right:8px;vertical-align:middle;}
.role-badge,.status-badge{font-size:10px;padding:2px 8px;border-radius:10px;}
.r-admin{background:#fce4ec;color:#c62828;}
.r-trainer{background:#e3f2fd;color:#1565c0;}
.r-mitglied{background:var(--g4);color:var(--g1);}
.st-aktiv{background:#e8f5e9;color:#2e7d32;}
.st-wartend{background:var(--amber2);color:var(--amber);}
.st-abgelehnt{background:var(--red2);color:var(--red);}
.sport-pills{display:flex;flex-wrap:wrap;gap:4px;}
.sport-pill{font-size:10px;background:var(--blue2);color:var(--blue);padding:2px 8px;border-radius:10px;}
.act-btn{background:none;border:1px solid var(--border);border-radius:4px;padding:4px 10px;font-size:11px;cursor:pointer;font-family:inherit;color:var(--muted);transition:.15s;margin:2px 2px 2px 0;}
.act-btn:hover{border-color:var(--g2);color:var(--g2);}
.act-btn.ok{border-color:#2e7d32;color:#2e7d32;}
.act-btn.ok:hover{background:#e8f5e9;}
.act-btn.no{border-color:var(--red);color:var(--red);}
.act-btn.no:hover{background:var(--red2);}
.admin-menu{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.admin-menu-btn{flex:1;min-width:180px;background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius2);padding:13px 16px;text-align:left;cursor:pointer;font-family:inherit;color:var(--text);box-shadow:var(--shadow);transition:.15s;}
.admin-menu-btn:hover{border-color:var(--g2);transform:translateY(-1px);}
.admin-menu-btn.active{border-color:var(--g2);background:var(--g5);box-shadow:0 0 0 3px rgba(45,106,45,.08);}
.admin-menu-ico{font-size:22px;margin-right:8px;vertical-align:middle;}
.admin-menu-title{font-size:14px;font-weight:800;color:var(--g1);}
.admin-menu-sub{font-size:11px;color:var(--muted);margin-top:3px;}
.wait-card{background:var(--amber2);border:1px solid #f0c040;border-radius:var(--radius2);padding:14px 18px;margin-bottom:10px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow);}
.wait-card .wc-info{flex:1;}
.wait-card .wc-name{font-size:14px;font-weight:700;color:var(--g1);}
.wait-card .wc-meta{font-size:12px;color:var(--muted);margin-top:2px;}
.loading{display:flex;align-items:center;justify-content:center;padding:60px;color:var(--muted);font-size:14px;gap:10px;}
.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--g2);border-radius:50%;animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}
.footer{background:var(--g1);color:rgba(255,255,255,.65);text-align:center;padding:12px;font-size:11px;}
.footer a{color:var(--gold2);text-decoration:none;}
/* Alle Portal-Dialoge verwenden dieselbe feste Ebene. Ältere Dialoge mit
   .modal-backdrop bleiben damit ebenfalls am Desktop im sichtbaren Fenster. */
.modal-overlay,.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:12000;padding:20px;}
.modal{background:var(--white);border-radius:var(--radius2);max-width:440px;width:100%;box-shadow:0 8px 40px rgba(0,0,0,.3);overflow:hidden;max-height:90vh;overflow-y:auto;}
.modal-head{background:var(--g1);color:#fff;padding:14px 18px;border-bottom:3px solid var(--gold);display:flex;align-items:center;justify-content:space-between;}
.modal-head h3{font-size:15px;font-weight:700;}
.modal-close{background:none;border:none;color:#fff;font-size:20px;cursor:pointer;line-height:1;}
.modal-body{padding:18px;}
.modal-msg{font-size:12px;text-align:center;margin-bottom:12px;padding:8px;border-radius:6px;}
.modal-msg.ok{background:var(--g3);color:#fff;}
.modal-msg.err{background:var(--red2);color:var(--red);}
#modal-container:empty{display:none;}
.language-settings-modal{max-width:620px;}
.language-appearance-section{margin-top:16px;padding-top:14px;border-top:1px solid var(--border);}
.language-appearance-section>strong{display:block;color:var(--g1);font-size:13px;text-align:center;}
.language-theme-switch{margin-top:9px;}
.profil-fotos{display:flex;gap:20px;justify-content:center;margin-bottom:16px;}
.profil-foto-col{text-align:center;}
.profil-foto-col label{display:block;font-size:11px;font-weight:700;color:var(--muted);margin-bottom:6px;text-transform:uppercase;}
.profil-foto{width:90px;height:90px;border-radius:50%;object-fit:cover;border:2px solid var(--g3);cursor:pointer;}
.profil-foto-ph{width:90px;height:90px;border-radius:50%;background:var(--g4);display:flex;align-items:center;justify-content:center;font-size:32px;cursor:pointer;border:2px dashed var(--border);}
.hunde-liste{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;}
.hund-item{display:flex;align-items:center;gap:12px;background:var(--g5);border:1px solid var(--border);border-radius:10px;padding:8px 12px;}
.hund-item-foto{width:46px;height:46px;border-radius:50%;object-fit:cover;border:2px solid var(--g3);cursor:pointer;flex-shrink:0;}
.hund-item-foto-ph{width:46px;height:46px;border-radius:50%;background:var(--g4);display:flex;align-items:center;justify-content:center;font-size:22px;cursor:pointer;border:2px dashed var(--border);flex-shrink:0;}
.hund-item-info{flex:1;}
.hund-item-name{font-size:14px;font-weight:700;color:var(--g1);}
.hund-item-rasse{font-size:12px;color:var(--muted);}
.hund-add-form{background:var(--g5);border:1px dashed var(--border);border-radius:10px;padding:12px;}

.profil-modal{max-width:760px;}
.profil-section{margin-top:20px;border-top:1px solid var(--border2);padding-top:16px;}
.profil-section-title{display:block;font-size:11px;font-weight:700;color:var(--muted);margin-bottom:10px;text-transform:uppercase;letter-spacing:.07em;}
.doc-list{display:flex;flex-direction:column;gap:8px;}
.doc-item{display:flex;align-items:center;gap:10px;background:var(--g5);border:1px solid var(--border);border-radius:10px;padding:9px 12px;}
.doc-icon{font-size:24px;flex-shrink:0;}
.doc-info{flex:1;min-width:0;}
.doc-name{font-size:13px;font-weight:700;color:var(--g1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.doc-meta{font-size:11px;color:var(--muted);margin-top:2px;}
.doc-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end;}
.pruefung-list{display:flex;flex-direction:column;gap:8px;margin-top:10px;}
.pruefung-card{background:var(--g5);border:1px solid var(--border);border-radius:10px;padding:10px 12px;}
.pruefung-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;}
.pruefung-title{font-size:13px;font-weight:700;color:var(--g1);}
.pruefung-meta{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.45;}
.pruefung-result{font-size:12px;background:var(--g4);color:var(--g1);border-radius:999px;padding:3px 9px;font-weight:700;white-space:nowrap;}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:2000;cursor:pointer;padding:20px;}
.lightbox img{max-width:90%;max-height:90%;border-radius:8px;}

/* ── MITTEILUNGEN ─────────────────────────── */
.mitt-box{margin-bottom:18px;}
.mitt-card{border:1px solid;border-radius:10px;padding:11px 14px;margin-bottom:8px;display:flex;align-items:flex-start;gap:10px;box-shadow:var(--shadow);}
.mitt-card.info{background:#e8f4e8;border-color:#a5d6a5;}
.mitt-card.warnung{background:#fff8e1;border-color:#ffe082;}
.mitt-card.wichtig{background:#fce4ec;border-color:#ef9a9a;}
.mitt-icon{font-size:20px;flex-shrink:0;}
.mitt-text{flex:1;font-size:13px;line-height:1.5;}
.mitt-meta{font-size:10px;color:var(--muted);margin-top:3px;}
.mitt-form{background:var(--white);border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:8px;box-shadow:var(--shadow);}
.mitt-form h4{font-size:13px;color:var(--g1);margin-bottom:10px;font-weight:700;}
.mitt-form-row{display:flex;gap:8px;flex-wrap:wrap;}
.mitt-form-row input{flex:1;min-width:200px;padding:8px 10px;border:1.5px solid var(--border);border-radius:6px;font-size:13px;font-family:inherit;}
.mitt-form-row select{padding:8px;border:1.5px solid var(--border);border-radius:6px;font-size:12px;font-family:inherit;}

/* ── MITGLIEDER-PROFIL (für Trainer/Admin) ─── */
.profil-view{background:var(--white);border:1px solid var(--border);border-radius:var(--radius2);overflow:hidden;margin-bottom:14px;box-shadow:var(--shadow);}
.profil-header{background:var(--g1);color:#fff;padding:16px 18px;display:flex;align-items:center;gap:14px;}
.profil-header img{width:60px;height:60px;border-radius:50%;object-fit:cover;border:2px solid var(--gold2);}
.profil-header-ph{width:60px;height:60px;border-radius:50%;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;font-size:26px;}
.profil-header h3{font-size:16px;font-weight:700;}
.profil-header p{font-size:12px;opacity:.8;}
.profil-hunde{display:flex;flex-wrap:wrap;gap:10px;padding:14px 18px;background:var(--g5);border-bottom:1px solid var(--border2);}
.profil-hund{display:flex;align-items:center;gap:8px;background:var(--white);border:1px solid var(--border);border-radius:10px;padding:6px 12px;}
.profil-hund img{width:36px;height:36px;border-radius:50%;object-fit:cover;}
.notizen-section{padding:18px;}
.notiz-card{border-left:4px solid;padding:10px 14px;margin-bottom:8px;border-radius:0 8px 8px 0;background:var(--white);box-shadow:0 1px 4px rgba(0,0,0,.05);}
.notiz-card.hausaufgabe{border-left-color:var(--amber);}
.notiz-card.kommentar{border-left-color:var(--g2);}
.notiz-card.lob{border-left-color:var(--gold);}
.notiz-card.erledigt{opacity:.5;text-decoration:line-through;}
.notiz-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;}
.notiz-typ{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;}
.notiz-text{font-size:13px;line-height:1.5;color:var(--text);}
.notiz-meta{font-size:10px;color:var(--muted);margin-top:3px;}

/* ── TRAIL-KARTE ────────────────────────────── */
.trail-map{width:100%;height:350px;border-radius:10px;border:1px solid var(--border);margin-top:10px;}
.trail-map-small{width:100%;height:250px;border-radius:8px;border:1px solid var(--border);margin-top:8px;cursor:pointer;}
.trail-edit-map{width:100%;height:420px;border-radius:10px;border:1px solid var(--border);margin-top:10px;}
.trail-tools{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;align-items:center;}
.trail-tool{padding:7px 14px;border:1.5px solid var(--border);background:var(--surface);border-radius:6px;font-size:12px;cursor:pointer;font-family:inherit;color:var(--muted);font-weight:600;}
.trail-tool:hover{border-color:var(--g2);color:var(--g2);}
.trail-tool.active-runner{background:#c0392b;border-color:#c0392b;color:#fff;}
.trail-tool.active-dog{background:#2980b9;border-color:#2980b9;color:#fff;}
.trail-tool.danger{color:var(--red);border-color:#f5b5b0;}
.trail-laenge-box{background:var(--g4);border-radius:8px;padding:8px 14px;display:flex;gap:18px;font-size:13px;flex-wrap:wrap;margin-top:8px;}
.trail-laenge-box b{color:var(--g1);}
.trail-laenge-runner{color:#c0392b;font-weight:700;}
.trail-laenge-dog{color:#2980b9;font-weight:700;}
.trail-search{position:relative;margin-bottom:8px;}
.trail-search input{width:100%;padding:9px 12px;border:1.5px solid var(--border);border-radius:6px;font-size:13px;font-family:inherit;}
.trail-search-results{position:absolute;top:100%;left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:6px;max-height:200px;overflow-y:auto;z-index:1100;box-shadow:0 4px 16px rgba(0,0,0,.15);}
.trail-search-result{padding:8px 12px;cursor:pointer;font-size:12px;border-bottom:1px solid var(--border2);}
.trail-search-result:hover{background:var(--g5);}
.trail-search-result:last-child{border:none;}
.gpx-upload-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:6px;}
.gpx-label{font-size:12px;padding:6px 14px;border:1.5px solid var(--border);border-radius:6px;cursor:pointer;color:var(--muted);background:var(--white);transition:.15s;}
.gpx-label:hover{border-color:var(--g2);color:var(--g2);}
.gpx-loaded{font-size:11px;color:var(--g2);font-weight:600;}
.trail-legend{display:flex;gap:14px;margin-top:6px;font-size:11px;color:var(--muted);}
.trail-legend span{display:flex;align-items:center;gap:4px;}
.trail-legend .dot{width:12px;height:4px;border-radius:2px;}
.trail-legend .dot-runner{background:#c0392b;}
.trail-legend .dot-dog{background:#2980b9;}

.live-status{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:12px;color:var(--muted);margin-top:8px;line-height:1.5;}
.live-status strong{color:var(--g1);}
.live-status .on{color:#2e7d32;font-weight:800;}
.live-status .off{color:var(--muted);font-weight:700;}
.live-note{font-size:12px;color:var(--muted);line-height:1.45;margin-bottom:10px;}
.live-link-box{background:var(--surface);border:1px dashed var(--g2);border-radius:8px;padding:8px 10px;font-size:12px;color:var(--muted);margin:8px 0;word-break:break-all;}
.live-link-box strong{color:var(--g1);}
.public-live-wrap{max-width:980px;margin:0 auto;}
.public-live-head{background:var(--g1);color:#fff;border-radius:var(--radius2);padding:16px 18px;display:flex;align-items:center;gap:14px;margin-bottom:14px;box-shadow:var(--shadow);}
.public-live-head img{width:54px;height:54px;object-fit:contain;background:var(--surface);border-radius:10px;padding:4px;}
.public-live-head h2{font-size:18px;margin-bottom:3px;}
.public-live-head p{font-size:12px;opacity:.9;}
.public-live-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0;}
.live-team-select{min-height:86px;}
.live-items{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.live-item-pill{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:5px 9px;font-size:11px;color:var(--g1);}
.live-weather{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:12px;color:var(--text);margin-top:8px;}
.live-shared-box{background:var(--white);border:1px solid var(--border);border-radius:var(--radius2);padding:12px 14px;margin-bottom:14px;box-shadow:var(--shadow);}
.live-shared-list{display:flex;flex-direction:column;gap:8px;margin-top:8px;}
.live-shared-card{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--g5);font-size:12px;}
.live-shared-card b{color:var(--g1);}
.live-badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:3px 8px;background:#e8f5e9;color:#2e7d32;font-size:11px;font-weight:700;}
.live-badge.off{background:var(--border2);color:var(--muted);}


/* ── MODERNE ÜBERSICHT / AUFKLAPPBARE BEREICHE ───────────────────────────── */
.portal-hero{background:linear-gradient(135deg,var(--g1),var(--g2));color:#fff;border-radius:var(--radius2);padding:18px 20px;margin-bottom:16px;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;gap:14px;overflow:hidden;position:relative;}
.portal-hero:after{content:"";position:absolute;right:-60px;top:-70px;width:190px;height:190px;border-radius:50%;background:rgba(255,255,255,.08);}
.portal-hero h2{font-size:20px;margin-bottom:4px;position:relative;z-index:1;}
.portal-hero p{font-size:12px;opacity:.9;line-height:1.5;position:relative;z-index:1;}
.portal-hero-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;position:relative;z-index:1;}
.hero-btn{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.32);color:#fff;border-radius:10px;padding:9px 12px;font-size:12px;font-weight:800;cursor:pointer;font-family:inherit;transition:.15s;}
.hero-btn:hover{background:rgba(255,255,255,.24);}
.quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:16px;}
.quick-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius2);padding:13px 14px;box-shadow:var(--shadow);display:flex;align-items:center;gap:11px;cursor:pointer;transition:.15s;text-align:left;font-family:inherit;color:var(--text);}
.quick-card:hover{border-color:var(--g2);transform:translateY(-1px);}
.quick-ico{font-size:24px;line-height:1;}
.quick-title{font-size:13px;font-weight:800;color:var(--g1);}
.quick-sub{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.35;}
.accordion-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius2);box-shadow:var(--shadow);margin-bottom:12px;overflow:hidden;}
.accordion-card>summary{list-style:none;cursor:pointer;padding:13px 16px;display:flex;align-items:center;gap:10px;font-size:13px;font-weight:800;color:var(--g1);border-bottom:1px solid transparent;}
.accordion-card>summary::-webkit-details-marker{display:none;}
.accordion-card>summary:after{content:'▾';margin-left:auto;color:var(--muted);transition:.15s;}
.accordion-card[open]>summary{border-bottom-color:var(--border2);}
.accordion-card:not([open])>summary:after{transform:rotate(-90deg);}
.accordion-body{padding:14px 16px;}
.form-section{background:var(--g5);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;overflow:hidden;}
.form-section>summary{list-style:none;cursor:pointer;padding:12px 14px;background:var(--surface);display:flex;align-items:center;gap:9px;font-size:13px;font-weight:800;color:var(--g1);border-bottom:1px solid transparent;}
.form-section>summary::-webkit-details-marker{display:none;}
.form-section>summary:after{content:'▾';margin-left:auto;color:var(--muted);transition:.15s;}
.form-section:not([open])>summary:after{transform:rotate(-90deg);}
.form-section[open]>summary{border-bottom-color:var(--border2);}
.form-section-body{padding:14px;}
.form-intro{font-size:12px;color:var(--muted);line-height:1.5;margin:-4px 0 14px;}
.sport-head-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius2);padding:14px 16px;margin-bottom:12px;box-shadow:var(--shadow);display:flex;justify-content:space-between;align-items:center;gap:12px;}
.sport-head-main{display:flex;align-items:center;gap:12px;}
.sport-head-icon{font-size:30px;}
.sport-head-title{font-size:16px;font-weight:900;color:var(--g1);}
.sport-head-sub{font-size:12px;color:var(--muted);margin-top:3px;}
.sport-head-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.sess-more{margin-top:10px;border-top:1px solid var(--border2);padding-top:8px;}
.sess-more>summary{cursor:pointer;list-style:none;color:var(--g2);font-size:12px;font-weight:800;display:flex;align-items:center;gap:6px;padding:5px 0;}
.sess-more>summary::-webkit-details-marker{display:none;}
.sess-more>summary:after{content:'Details ausklappen';font-weight:700;color:var(--muted);font-size:11px;margin-left:auto;}
.sess-more[open]>summary:after{content:'Details einklappen';}
.sess-main-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
.form-actions.sticky-actions{position:sticky;bottom:0;background:rgba(255,255,255,.94);backdrop-filter:blur(6px);padding-top:10px;border-top:1px solid var(--border2);z-index:20;}


/* ── APP-/PWA-OPTIMIERUNG ─────────────────────────────────────── */
html{min-height:100%;background:var(--bg);}
body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;}
button,input,select,textarea{touch-action:manipulation;}
.btn,.hdr-btn,.act-btn,.sport-open-btn,.hero-btn,.quick-card,.open-add,.admin-menu-btn{min-height:44px;}
.app-install-card{margin-top:12px;background:linear-gradient(135deg,var(--g5),#fff);border:1px solid var(--border);border-radius:16px;padding:12px;box-shadow:var(--shadow);display:flex;align-items:center;gap:11px;}
.app-install-ico{width:42px;height:42px;border-radius:14px;background:var(--g1);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 6px 18px rgba(30,77,30,.18);flex-shrink:0;}
.app-install-title{font-size:13px;font-weight:900;color:var(--g1);}
.app-install-text{font-size:11px;color:var(--muted);line-height:1.35;margin-top:2px;}
.app-install-actions{display:flex;gap:7px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end;}
.app-install-btn{background:var(--g2);color:#fff;border:none;border-radius:999px;padding:9px 12px;font-size:12px;font-weight:900;font-family:inherit;cursor:pointer;white-space:nowrap;}
.app-install-btn:hover{background:var(--g3);}
.app-installed-pill{background:#e8f5e9;color:#2e7d32;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:900;white-space:nowrap;}
.install-steps{display:flex;flex-direction:column;gap:9px;margin-top:8px;}
.install-step{display:flex;gap:10px;align-items:flex-start;background:var(--g5);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.45;}
.install-step b{color:var(--g1);}

.install-warning{margin-top:10px;background:#fff8e1;border:1px solid #ffe0a3;border-radius:14px;padding:11px 12px;font-size:12px;line-height:1.45;color:#5f4300;}
.install-warning b{color:#3d2b00;}
.install-actions-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.install-actions-row .btn{flex:1;min-width:160px;}
.install-subtle{font-size:11px;color:var(--muted);line-height:1.45;margin-top:8px;}
.install-num{width:24px;height:24px;border-radius:50%;background:var(--g2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:12px;flex-shrink:0;}
.mobile-bottom-nav{display:none;}
.mobile-fab{display:none;}
.pwa-standalone .hdr{position:sticky;top:0;z-index:500;}
.pwa-standalone .footer{display:none;}

/* App-Look: auf mobilen Geräten ruhiger, runder und besser mit Daumen bedienbar */
@media (max-width: 820px) {
  :root{--radius:12px;--radius2:18px;--shadow:0 8px 28px rgba(45,106,45,.10);}
  body{background:linear-gradient(180deg,#eef6ee 0%,#f7fbf7 45%,#eef6ee 100%);}
  .app{max-width:none;width:100%;}
  .content{padding:14px 14px calc(82px + env(safe-area-inset-bottom));}
  .footer{display:none;}
  .hdr{position:sticky;top:0;z-index:800;border-bottom:1px solid rgba(240,208,96,.45);box-shadow:0 8px 24px rgba(0,0,0,.16);padding:10px 14px;background:linear-gradient(135deg,var(--g1),var(--g2));}
  .hdr-logo{height:38px;background:rgba(255,255,255,.95);border-radius:12px;padding:3px;}
  .hdr-info h1{font-size:14px;}
  .hdr-info p{display:none;}
  .hdr-right{width:auto;margin-left:auto;}
  .hdr-user{font-size:11px;margin-bottom:0;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;}
  .hdr-avatar{vertical-align:middle;margin-right:5px;}
  .hdr-btns{display:none;}
  .nav{display:none;}
  .mobile-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:900;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:7px max(8px,env(safe-area-inset-left)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-right));background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-top:1px solid var(--border);box-shadow:0 -8px 26px rgba(30,77,30,.12);}
  .mobile-bottom-nav button{border:none;background:transparent;color:var(--muted);font-family:inherit;font-size:10px;font-weight:800;border-radius:14px;padding:7px 3px;min-height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;}
  .mobile-bottom-nav button span{font-size:20px;line-height:1;}
  .mobile-bottom-nav button.active{background:var(--g4);color:var(--g1);}
  .mobile-bottom-nav button.primary{background:var(--g2);color:#fff;box-shadow:0 8px 18px rgba(45,106,45,.22);}
  .mobile-fab{display:flex;position:fixed;right:16px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:850;width:54px;height:54px;border-radius:50%;background:var(--gold);color:#1c2c1c;border:none;box-shadow:0 10px 28px rgba(0,0,0,.24);align-items:center;justify-content:center;font-size:28px;font-weight:900;}
  .card,.sess-card,.accordion-card,.quick-card,.sport-card,.sport-head-card,.portal-hero,.admin-menu-btn,.stat-card{border-radius:18px;}
  .card,.sess-card,.accordion-card,.quick-card,.sport-card,.sport-head-card,.portal-hero{box-shadow:0 8px 26px rgba(30,77,30,.09);}
  .portal-hero{padding:18px;background:linear-gradient(135deg,#143c14,#2d6a2d 58%,#3a8a3a);}
  .portal-hero h2{font-size:21px;}
  .quick-grid{grid-template-columns:1fr 1fr;gap:10px;}
  .quick-card{min-height:76px;}
  .quick-ico{font-size:26px;}
  .sport-grid{grid-template-columns:1fr 1fr;gap:10px;}
  .sport-card{min-height:132px;display:flex;flex-direction:column;justify-content:space-between;}
  .sport-card:hover,.quick-card:hover,.admin-menu-btn:hover{transform:none;}
  .open-add{background:var(--surface);border-style:solid;border-color:var(--g2);color:var(--g1);font-weight:900;min-height:48px;}
  .sess-card{padding:14px;}
  .sess-hdr{gap:10px;}
  .sess-main-actions .btn,.sess-main-actions .act-btn{flex:1;}
  .trail-map,.trail-edit-map{height:62vh;min-height:360px;}
  .trail-map-small{height:300px;}
  .modal-overlay{align-items:flex-end;padding:0;background:rgba(0,0,0,.42);}
  .modal{border-radius:22px 22px 0 0;max-width:none;width:100%;max-height:88vh;}
  .modal-head{border-radius:22px 22px 0 0;}
  .member-table{display:block;overflow-x:auto;white-space:nowrap;}
  .app-install-card{border-radius:18px;align-items:flex-start;}
  .app-install-actions{width:100%;margin-left:0;justify-content:flex-start;}
  .app-install-btn{width:100%;min-height:42px;}
}

@media (max-width: 520px) {
  .content{padding-left:12px;padding-right:12px;}
  .login-wrap{margin:12px auto 0;}
  .login-logo-box{margin-bottom:14px;}
  .login-logo-box img{width:155px;}
  .login-logo-box h2{font-size:19px;}
  .login-logo-box p{font-size:11px;}
  .login-wrap .card{border-radius:22px;}
  .login-wrap .card-body{padding:18px;}
  .app-install-card{flex-direction:column;}
  .sport-grid,.quick-grid{grid-template-columns:1fr 1fr;}
  .sport-card .sname{font-size:12px;}
  .sport-card .sdesc{font-size:10px;}
  .portal-hero-actions{display:grid;grid-template-columns:1fr 1fr;}
  .hero-btn{min-width:0;width:100%;}
  .admin-grid{grid-template-columns:1fr 1fr;}
  .admin-menu{display:grid;grid-template-columns:1fr;}
  .trail-tools,.draw-tools,.gpx-upload-row,.video-upload-box{display:grid;grid-template-columns:1fr 1fr;}
  .trail-tools .btn,.trail-tool,.draw-tool,.gpx-label,.video-upload-box .btn,.video-upload-box input[type="text"]{width:100%;min-width:0;}
}

/* ── TABLET (bis 768px) ───────────────────────────────────────── */
@media (max-width: 768px) {
  .admin-grid{grid-template-columns:1fr 1fr;}
  .frow.c3{grid-template-columns:1fr 1fr;}
  .sport-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));}
  .content{padding:16px;}
}

/* ── HANDY (bis 600px) ────────────────────────────────────────── */
@media (max-width: 600px) {
  /* Header: untereinander statt nebeneinander */
  .hdr{flex-wrap:wrap;gap:8px;padding:10px 14px;}
  .hdr-logo{height:40px;}
  .hdr-info h1{font-size:15px;}
  .hdr-info p{font-size:10px;}
  .hdr-right{margin-left:auto;width:auto;}
  .hdr-user{font-size:11px;flex-wrap:wrap;justify-content:flex-end;}
  .hdr-btns{flex-wrap:wrap;justify-content:flex-end;}
  .hdr-btn{padding:5px 10px;font-size:11px;}

  /* Navigation */
  .nav{padding:0 14px;overflow-x:auto;}
  .nav-tab{padding:9px 12px;font-size:12px;white-space:nowrap;}

  .content{padding:14px;}

  /* Formulare: alles untereinander */
  .frow.c2,.frow.c3{grid-template-columns:1fr;}
  .row2{grid-template-columns:1fr;}

  /* Sportarten: 2 Spalten */
  .sport-grid{grid-template-columns:1fr 1fr;gap:9px;}
  .sport-card{padding:13px 11px;}
  .sport-card .sico{font-size:26px;}

  /* Statistik-Kacheln: 2 Spalten */
  .admin-grid{grid-template-columns:1fr 1fr;gap:9px;}
  .stat-num{font-size:28px;}

  /* Willkommens-Box */
  .welcome{flex-direction:row;gap:12px;padding:12px 14px;}
  .welcome-avatar{width:46px;height:46px;}
  .welcome h2{font-size:15px;}

  /* Cards & Inhalte */
  .card-body{padding:14px;}
  .card-head{padding:11px 14px;}

  /* Trainingseinheiten */
  .sess-card{padding:13px 14px;}
  .sess-hdr{flex-direction:column;gap:8px;}
  .sess-badges{align-self:flex-start;}
  .sess-foto{width:72px;height:72px;}


  .portal-hero{flex-direction:column;align-items:flex-start;padding:16px;}
  .portal-hero-actions{justify-content:flex-start;width:100%;}
  .hero-btn{flex:1;min-width:130px;}
  .quick-grid{grid-template-columns:1fr;}
  .sport-head-card{flex-direction:column;align-items:flex-start;}
  .sport-head-actions{width:100%;justify-content:flex-start;}
  .accordion-body,.form-section-body{padding:12px;}

  /* Login zentriert mit Rand */
  .login-wrap{margin:18px auto;max-width:100%;}
  .login-logo-box img{width:170px;}

  /* Admin-Tabelle: horizontal scrollbar statt gequetscht */
  .member-table{font-size:12px;min-width:560px;}

  /* Wartende-Anfragen-Karten */
  .wait-card{flex-wrap:wrap;}
  .wait-card .wc-info{flex:1 1 60%;}

  /* Modal füllt mehr Breite */
  .modal{max-width:100%;}
  .profil-fotos{gap:14px;}

  /* Foto-Formular */
  .igp-tabs{gap:5px;}
  .itab{padding:7px 13px;font-size:11px;}

  /* iOS: verhindert automatisches Zoomen beim Antippen von Feldern */
  .fld input,.fld select,.fld textarea,.fcol input,.fcol select,.fcol textarea{font-size:16px;}
}

/* ── KLEINE HANDYS (bis 380px) ────────────────────────────────── */
@media (max-width: 380px) {
  .sport-grid{grid-template-columns:1fr;}
  .admin-grid{grid-template-columns:1fr;}
  .hdr-info h1{font-size:14px;}
}

/* Touch-Geräte: größere Klickflächen */
@media (hover: none) {
  .btn,.hdr-btn,.act-btn,.sport-open-btn{min-height:36px;}
  .nav-tab{min-height:40px;}
}


/* ── APP-DASHBOARD & MODERNE MOBILE UI V2 ─────────────────────────────── */
.app-shell-hint{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.45}
.app-hero{position:relative;overflow:hidden;border-radius:26px;background:linear-gradient(135deg,var(--g1),var(--g2));color:#fff;padding:24px;box-shadow:var(--shadow);margin-bottom:18px;display:grid;grid-template-columns:1.35fr .65fr;gap:16px;align-items:center}
.app-hero:before{content:'';position:absolute;inset:-40% -10% auto auto;width:280px;height:280px;background:rgba(255,255,255,.12);border-radius:50%}
.app-hero h2{position:relative;margin:0;font-size:30px;line-height:1.05;color:#fff}
.app-hero p{position:relative;margin:9px 0 0;color:rgba(255,255,255,.88);font-size:14px;line-height:1.55;max-width:620px}
.app-hero-logo{position:relative;justify-self:end;width:112px;height:112px;border-radius:26px;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;box-shadow:0 18px 42px rgba(0,0,0,.22)}
.app-hero-logo img{max-width:86px;max-height:86px;object-fit:contain}
.app-primary-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0 20px}
.app-action-card{border:1px solid var(--border);background:var(--surface);border-radius:22px;box-shadow:var(--shadow2);padding:16px;text-align:left;font-family:inherit;cursor:pointer;display:flex;align-items:center;gap:12px;min-height:92px;transition:.15s transform,.15s box-shadow,.15s border-color}
.app-action-card:hover{transform:translateY(-2px);border-color:var(--g3);box-shadow:0 14px 36px rgba(30,77,30,.14)}
.app-action-card.primary{background:linear-gradient(135deg,var(--g2),var(--g1));color:#fff;border-color:transparent}
.app-action-card.live{background:linear-gradient(135deg,#173b5f,#2d6a6a);color:#fff;border-color:transparent}
.app-action-card .ico{width:48px;height:48px;border-radius:18px;background:var(--g5);display:flex;align-items:center;justify-content:center;font-size:25px;flex:0 0 auto}
.app-action-card.primary .ico,.app-action-card.live .ico{background:rgba(255,255,255,.18)}
.app-action-card .title{display:block;font-weight:900;font-size:15px;color:inherit}
.app-action-card .sub{display:block;font-size:12px;line-height:1.35;color:var(--muted);margin-top:3px}
.app-action-card.primary .sub,.app-action-card.live .sub{color:rgba(255,255,255,.8)}
.app-section-head{display:flex;align-items:end;justify-content:space-between;gap:10px;margin:22px 0 10px}
.app-section-head h3{margin:0;color:var(--g1);font-size:17px}.app-section-head p{margin:3px 0 0;color:var(--muted);font-size:12px}
.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-bottom:18px}
.module-card{border:1px solid var(--border);background:var(--surface);border-radius:22px;box-shadow:var(--shadow2);padding:15px;position:relative;overflow:hidden;min-height:150px;display:flex;flex-direction:column;gap:10px}
.module-card.active{border-color:var(--g3);background:linear-gradient(180deg,#fff,#f7fbf7)}
.module-top{display:flex;gap:10px;align-items:center}.module-ico{width:46px;height:46px;border-radius:17px;background:var(--g5);display:flex;align-items:center;justify-content:center;font-size:24px}.module-title{font-weight:900;color:var(--g1);font-size:15px}.module-sub{font-size:12px;color:var(--muted);margin-top:2px;line-height:1.35}.module-actions{margin-top:auto;display:flex;gap:7px;flex-wrap:wrap}.module-actions .btn{padding:8px 10px;border-radius:12px}.inactive-note{font-size:11px;color:var(--muted);padding:6px 0}
.status-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:0 0 18px}.status-pill{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:13px;box-shadow:var(--shadow2)}.status-pill strong{display:block;color:var(--g1);font-size:22px;line-height:1}.status-pill span{font-size:12px;color:var(--muted);font-weight:700}
.training-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 0}.training-toolbar .btn{border-radius:14px}.sport-head-card.app-mode{border-radius:26px;padding:18px;background:linear-gradient(135deg,#fff,#f4faf4)}
.training-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px}.training-list-head .section-lbl{margin:0}.training-list-tools{display:flex;gap:8px;flex-wrap:wrap}.tiny-btn{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:7px 10px;font-family:inherit;font-weight:800;color:var(--g1);cursor:pointer;font-size:12px}
.training-wizard{border:1px solid var(--border);background:linear-gradient(135deg,#fff,#f5faf5);border-radius:22px;padding:15px;margin-bottom:12px;box-shadow:var(--shadow2)}.training-wizard h3{margin:0;color:var(--g1);font-size:17px}.training-wizard p{margin:5px 0 12px;color:var(--muted);font-size:12px;line-height:1.45}.wizard-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.wizard-step{border:1px solid var(--border);background:var(--surface);border-radius:14px;padding:10px 8px;font-family:inherit;font-weight:900;color:var(--g1);cursor:pointer;font-size:12px}.wizard-step:hover{border-color:var(--g3);background:var(--g5)}
.sess-card{position:relative}.sess-card:before{content:'';position:absolute;left:-10px;top:22px;width:5px;height:42px;border-radius:999px;background:var(--g3)}.sess-more summary{border-radius:12px}.sess-main-actions{align-items:center}.rating-stars{white-space:nowrap}.media-icons{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.media-icons span{font-size:11px;font-weight:800;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:4px 7px}
.action-sheet-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.28);z-index:1040;display:none}.action-sheet-backdrop.open{display:block}.quick-action-sheet{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom));transform:translate(-50%,18px);width:min(560px,calc(100vw - 22px));background:var(--surface);border:1px solid var(--border);border-radius:28px;box-shadow:0 24px 70px rgba(0,0,0,.28);z-index:1050;padding:14px;opacity:0;pointer-events:none;transition:.18s}.quick-action-sheet.open{opacity:1;pointer-events:auto;transform:translate(-50%,0)}.sheet-handle{width:44px;height:5px;background:#d7e3d7;border-radius:999px;margin:0 auto 10px}.sheet-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.sheet-title{font-weight:900;color:var(--g1);font-size:17px}.sheet-sub{font-size:12px;color:var(--muted);margin-top:2px}.sheet-close{border:none;background:var(--g5);border-radius:50%;width:34px;height:34px;font-weight:900;cursor:pointer}.sheet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.sheet-action{border:1px solid var(--border);background:var(--surface);border-radius:18px;padding:12px;text-align:left;font-family:inherit;cursor:pointer;display:flex;gap:10px;align-items:center;min-height:64px}.sheet-action:hover{background:var(--g5);border-color:var(--g3)}.sheet-action.primary{background:var(--g2);color:#fff;border-color:var(--g2)}.sheet-action.primary small{color:rgba(255,255,255,.82)}.sheet-ico{font-size:24px;width:34px;text-align:center}.sheet-action strong{display:block;font-size:13px}.sheet-action small{display:block;color:var(--muted);font-size:11px;margin-top:2px;line-height:1.25}.mobile-bottom-nav{grid-template-columns:repeat(5,1fr)}.mobile-bottom-nav button.nav-plus{margin-top:-22px;background:transparent}.mobile-bottom-nav button.nav-plus span{width:54px;height:54px;border-radius:50%;background:var(--gold);color:#1c2c1c;display:flex;align-items:center;justify-content:center;font-size:30px;box-shadow:0 12px 30px rgba(0,0,0,.24);border:4px solid #fff}.mobile-bottom-nav button.nav-plus.active span{background:var(--gold)}
.sheet-backdrop{position:fixed;inset:0;background:rgba(10,20,14,.28);backdrop-filter:blur(2px);z-index:3038;opacity:0;pointer-events:none;transition:.18s;}
.sheet-backdrop.open{opacity:1;pointer-events:auto;}
.action-sheet{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));transform:translate(-50%,18px);width:min(560px,calc(100vw - 22px));background:rgba(255,255,255,.98);border:1px solid rgba(216,229,216,.95);border-radius:28px;box-shadow:0 24px 70px rgba(0,0,0,.22);z-index:3045;padding:14px;opacity:0;pointer-events:none;transition:.18s;}
.action-sheet.open{opacity:1;pointer-events:auto;transform:translate(-50%,0);}
.action-sheet .sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;}
.action-sheet .sheet-head > div{min-width:0;}
.action-sheet .sheet-head strong{display:block;color:var(--g1);font-size:18px;line-height:1.15;word-break:break-word;}
.action-sheet .sheet-head span{display:block;color:var(--muted);font-size:12px;line-height:1.35;margin-top:3px;}
.action-sheet .sheet-head button{border:none;background:var(--g5);border-radius:50%;width:34px;height:34px;flex:0 0 34px;font-size:22px;line-height:1;cursor:pointer;color:var(--g1);}
.action-sheet .sheet-actions{display:grid;grid-template-columns:1fr;gap:10px;}
.action-sheet .sheet-action{width:100%;min-width:0;border:1px solid var(--border);background:var(--surface);border-radius:20px;padding:14px;text-align:left;font-family:inherit;cursor:pointer;display:flex;gap:12px;align-items:flex-start;box-shadow:0 6px 18px rgba(30,77,30,.06);}
.action-sheet .sheet-action.primary{background:linear-gradient(135deg,var(--g2),var(--g3));color:#fff;border-color:transparent;}
.action-sheet .sheet-action.primary small{color:rgba(255,255,255,.88);}
.action-sheet .sheet-action.danger{border-color:#f0c3c3;color:#8b1c1c;background:#fff7f7;}
.action-sheet .sheet-ico{width:34px;text-align:center;font-size:24px;line-height:1.2;flex:0 0 34px;}
.action-sheet .sheet-action strong{display:block;font-size:16px;line-height:1.2;}
.action-sheet .sheet-action small{display:block;color:var(--muted);font-size:12px;line-height:1.35;margin-top:4px;}
@media (max-width: 820px){.app-hero{grid-template-columns:1fr;padding:20px;border-radius:24px}.app-hero h2{font-size:25px}.app-hero-logo{display:none}.app-primary-actions{grid-template-columns:1fr;gap:10px}.app-action-card{min-height:78px}.module-grid{grid-template-columns:1fr}.wizard-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.training-list-head{align-items:flex-start;flex-direction:column}.sheet-grid{grid-template-columns:1fr}.quick-action-sheet{bottom:calc(78px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0;width:100%;left:0;transform:translateY(18px);max-height:calc(100vh - 96px);overflow:auto}.quick-action-sheet.open{transform:translateY(0)}.sess-card:before{display:none}.status-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width: 821px){.quick-action-sheet{bottom:30px}.mobile-bottom-nav{display:none!important}}

/* Mobile-PWA-Finale: muss nach den älteren Breakpoints kommen */
@media (max-width: 820px) {
  .content{padding-bottom:calc(86px + env(safe-area-inset-bottom));}
  .footer{display:none;}
  .hdr-btns{display:none;}
  .nav{display:none;}
  .mobile-bottom-nav{display:grid;}
}


/* Mobile Kopfzeile, Abmeldung und sichere Inhaltsbreiten */
html,body{max-width:100%;overflow-x:hidden;}
.hdr,.hdr-info,.hdr-right,.content,.card,.sess-card{min-width:0;}
.hdr-info{flex:1 1 auto;}
.hdr-info h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hdr-user span{min-width:0;overflow:hidden;text-overflow:ellipsis;}
.sheet-action.danger{border-color:#f1c7c1;background:#fff7f6;color:var(--red);}
.sheet-action.danger small{color:#9b6a64;}
@media (max-width: 820px) {
  .hdr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px max(11px,env(safe-area-inset-right)) 9px max(11px,env(safe-area-inset-left));width:100%;overflow:hidden;}
  .hdr-logo{height:36px;width:auto;max-width:52px;justify-self:start;}
  .hdr-info{min-width:0;}
  .hdr-info h1{font-size:13px;line-height:1.15;max-width:100%;}
  .hdr-right{margin-left:0;width:auto;min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:7px;}
  .hdr-user{display:none;}
  .hdr-btns{display:none!important;}
  .hdr-mobile-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto;}
  .hdr-icon-btn{min-width:42px;height:42px;padding:0 10px;border-radius:14px;font-size:13px;box-shadow:0 4px 12px rgba(0,0,0,.12);}
  .hdr-icon-btn.logout{font-size:12px;background:linear-gradient(135deg,rgba(255,255,255,.20),rgba(255,255,255,.10));border-color:rgba(255,255,255,.38);box-shadow:0 6px 18px rgba(0,0,0,.14), inset 0 1px 0 rgba(255,255,255,.16);}
  .hdr-icon-btn.logout .ui-icon{color:#ffd9d5;width:22px;height:22px;}
  .hdr-icon-btn.logout .ui-icon svg{stroke-width:2.8;}
  .hdr-icon-btn.logout .power-glyph{color:#ffe6e2;font-size:23px;line-height:1;font-weight:900;display:inline-flex;align-items:center;justify-content:center;transform:translateY(-1px);}
  .content{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));}
  .app-hero,.portal-hero,.sport-head-card,.training-wizard,.card,.sess-card,.module-card,.app-action-card{max-width:100%;}
  .app-primary-actions,.module-grid,.status-strip,.quick-grid,.sport-grid,.admin-grid,.wizard-steps{width:100%;}
  .sess-hdr,.profil-training-head,.video-head,.card-head{min-width:0;}
  .sess-main-actions,.training-toolbar,.sport-head-actions,.portal-hero-actions{width:100%;max-width:100%;}
  .mobile-bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr));}
  .mobile-bottom-nav button{min-width:0;overflow:hidden;}
  .mobile-bottom-nav button span+*{min-width:0;}
}
@media (max-width: 420px) {
  .hdr{grid-template-columns:auto minmax(0,1fr) auto;gap:8px;padding-top:8px;padding-bottom:8px;}
  .hdr-logo{height:34px;max-width:46px;border-radius:10px;}
  .hdr-info h1{font-size:12px;}
  .hdr-icon-btn{min-width:40px;height:40px;padding:0 9px;}
  .hdr-icon-btn.logout span{display:none;}
  .hdr-icon-btn.logout{min-width:42px;padding:0;font-size:18px;border-radius:15px;background:rgba(255,255,255,.16);}
  .hdr-icon-btn.logout .ui-icon{color:#ffe6e2;width:23px;height:23px;}
  .hdr-icon-btn.logout .ui-icon svg{stroke-width:2.9;}
  .hdr-icon-btn.logout .power-glyph{color:#ffe6e2;font-size:24px;line-height:1;font-weight:900;display:inline-flex;align-items:center;justify-content:center;transform:translateY(-1px);}
  .mobile-bottom-nav{gap:2px;padding-left:6px;padding-right:6px;}
  .mobile-bottom-nav button{font-size:9px;padding-left:1px;padding-right:1px;}
  .mobile-bottom-nav button.nav-plus span{width:50px;height:50px;font-size:28px;border-width:4px;}
}


/* Lesbarkeit, Suche und Touch-Bedienung */
:root{
  --shadow2:0 10px 30px rgba(30,77,30,.10);
  --shadow3:0 18px 48px rgba(30,77,30,.16);
  --soft-surface:rgba(255,255,255,.86);
}
body{
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  background:
    radial-gradient(circle at 20% 0%, rgba(200,160,39,.14), transparent 34%),
    radial-gradient(circle at 100% 10%, rgba(45,106,45,.12), transparent 28%),
    var(--bg);
}
button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent;}
button{touch-action:manipulation;}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
  outline:3px solid rgba(200,160,39,.45);
  outline-offset:2px;
}
.btn,.tiny-btn,.hdr-btn,.hdr-icon-btn,.sheet-action,.app-action-card,.module-card,.quick-card,.wizard-step{
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease, color .16s ease;
}
.btn:active,.tiny-btn:active,.hdr-icon-btn:active,.sheet-action:active,.app-action-card:active,.module-card:active,.quick-card:active,.wizard-step:active{transform:scale(.985);}
.hdr{position:sticky;top:0;z-index:860;backdrop-filter:saturate(1.25) blur(14px);}
.card,.sess-card,.accordion-card,.module-card,.app-action-card,.sport-head-card,.status-pill,.quick-card{border-color:rgba(196,216,196,.9);}
.card-head,.accordion-card>summary{background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(248,252,248,.96));}
.empty{border:1px dashed var(--border);border-radius:18px;background:rgba(255,255,255,.65);}
.app-today-card{
  display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(244,249,244,.96));
  border:1px solid var(--border);border-radius:24px;padding:16px;margin:0 0 16px;box-shadow:var(--shadow2);
}
.today-icon{width:54px;height:54px;border-radius:20px;background:linear-gradient(135deg,var(--gold2),var(--gold));display:flex;align-items:center;justify-content:center;font-size:26px;box-shadow:0 10px 24px rgba(200,160,39,.25);}
.today-eyebrow{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}
.app-today-card h3{font-size:17px;color:var(--g1);margin:2px 0 4px;line-height:1.25;}
.app-today-card p{font-size:12px;color:var(--muted);margin:0;line-height:1.55;}
.quick-chip-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px;}
.quick-chip{border:1px solid var(--border);background:var(--surface);color:var(--g1);border-radius:999px;padding:8px 11px;font-family:inherit;font-size:12px;font-weight:900;cursor:pointer;box-shadow:0 4px 14px rgba(30,77,30,.06);}
.quick-chip.primary{background:var(--g2);color:#fff;border-color:var(--g2);}
.quick-chip.live{background:#173b5f;color:#fff;border-color:#173b5f;}
.app-section-head{position:relative;}
.module-card:after{content:'';position:absolute;right:-38px;bottom:-42px;width:112px;height:112px;border-radius:50%;background:rgba(45,106,45,.055);}
.module-card.active:before{content:'aktiv';position:absolute;right:12px;top:12px;background:var(--g4);color:var(--g1);border:1px solid var(--border);border-radius:999px;padding:3px 8px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;}
.module-actions{position:relative;z-index:1;}
.sport-polish-strip{display:flex;flex-wrap:wrap;gap:7px;margin:-2px 0 12px;}
.sport-polish-chip{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:7px 10px;color:var(--g1);font-size:12px;font-weight:800;box-shadow:0 4px 12px rgba(30,77,30,.06);}
.training-list-head{background:rgba(244,249,244,.72);border:1px solid var(--border);border-radius:18px;padding:10px 12px;margin-bottom:10px;}
.training-list-tools{align-items:center;}
.session-search{min-height:38px;border:1.5px solid var(--border);border-radius:999px;padding:8px 13px;font-family:inherit;font-size:12px;min-width:min(280px,100%);background:var(--surface);color:var(--text);}
.session-search:focus{border-color:var(--g2);box-shadow:0 0 0 3px rgba(45,106,45,.10);outline:none;}
.sess-card{overflow:hidden;}
.sess-date{letter-spacing:-.01em;}
.sess-main-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;}
.sess-more summary{cursor:pointer;margin-top:12px;background:var(--g5);border:1px solid var(--border);padding:9px 11px;font-size:12px;font-weight:900;color:var(--g1);}
.sess-more[open] summary{border-bottom-left-radius:0;border-bottom-right-radius:0;}
.video-card,.doc-item,.pruefung-card,.hund-item{box-shadow:0 4px 14px rgba(30,77,30,.05);}
.modal-overlay{backdrop-filter:blur(4px);}
.modal{box-shadow:0 30px 90px rgba(0,0,0,.32);}
@media (max-width:820px){
  .content{padding-top:14px;}
  .app-today-card{border-radius:22px;grid-template-columns:1fr;padding:14px;}
  .today-icon{width:48px;height:48px;border-radius:18px;}
  .quick-chip-row{display:grid;grid-template-columns:1fr 1fr;}
  .quick-chip{min-height:42px;}
  .status-strip{gap:8px;}
  .status-pill{padding:11px;border-radius:16px;}
  .status-pill strong{font-size:19px;}
  .training-list-head{align-items:stretch!important;width:100%;}
  .training-list-tools{width:100%;display:grid;grid-template-columns:1fr auto;gap:8px;}
  .session-search{width:100%;min-width:0;}
  .sess-card{padding:14px;}
  .sess-hdr{display:grid;grid-template-columns:1fr;gap:10px;}
  .sess-main-actions{justify-content:flex-start;width:100%;}
  .row2,.frow.c2,.frow.c3{grid-template-columns:1fr;}
  .trail-map,.trail-edit-map{height:320px;}
  .trail-map-small{height:240px;}
}
@media (max-width:420px){
  .quick-chip-row{grid-template-columns:1fr;}
  .app-action-card .ico{width:44px;height:44px;border-radius:16px;}
  .app-action-card .title{font-size:14px;}
  .app-action-card .sub{font-size:11px;}
  .module-card{min-height:auto;}
  .training-list-tools{grid-template-columns:1fr;}
}

/* ── Animierter VdH-Helfer & Hilfe ──────────────────────────────────────── */
#help-fab-root:has(.vdh-helper.is-open){z-index:10000;}
.vdh-helper-scrim{position:fixed;inset:0;z-index:1;border:0;background:rgba(7,22,12,.28);cursor:default;}
.vdh-helper{position:fixed;z-index:2;bottom:calc(102px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:flex-end;pointer-events:none;max-width:calc(100vw - 24px);}
.vdh-helper--right{right:-12px}.vdh-helper--left{left:-12px;align-items:flex-start}.vdh-helper--right .vdh-helper-popover{margin-right:12px}.vdh-helper--left .vdh-helper-popover{margin-left:12px}
.vdh-helper-mascot{pointer-events:auto;width:56px;min-height:68px;border:0;background:transparent;padding:0;display:grid;justify-items:center;align-content:end;cursor:pointer;filter:drop-shadow(0 9px 12px rgba(13,53,25,.24));font-family:inherit;color:var(--g1);position:relative;}
.vdh-helper-mascot>span{display:block;margin-top:-5px;border:1px solid rgba(255,255,255,.86);border-radius:999px;background:rgba(255,255,255,.94);box-shadow:0 5px 14px rgba(17,54,26,.16);padding:4px 8px;font-size:10px;line-height:1;font-weight:950;white-space:nowrap;}
.vdh-helper-mascot:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:24px;}
.vdh-helper-dog{display:block;width:56px;height:56px;overflow:visible;transform-origin:50% 90%;animation:vdhDogBreathe 4s ease-in-out infinite;}
.vdh-dog-tail{transform-origin:72px 66px;animation:vdhDogTail 7s ease-in-out infinite;}
.vdh-dog-eyes{transform-origin:50px 35px;animation:vdhDogBlink 6s linear infinite;}
.vdh-dog-question{transform-origin:76px 18px;animation:vdhDogQuestion 7s ease-in-out infinite;}
.vdh-helper-mascot:hover .vdh-dog-tail,.vdh-helper-mascot:focus-visible .vdh-dog-tail{animation-duration:.7s;}
@keyframes vdhDogBreathe{0%,88%,100%{transform:translateY(0)}92%{transform:translateY(-2px)}96%{transform:translateY(0)}}
@keyframes vdhDogTail{0%,76%,100%{transform:rotate(0)}80%{transform:rotate(16deg)}84%{transform:rotate(-12deg)}88%{transform:rotate(14deg)}92%{transform:rotate(0)}}
@keyframes vdhDogBlink{0%,45%,48%,100%{transform:scaleY(1)}46%,47%{transform:scaleY(.08)}}
@keyframes vdhDogQuestion{0%,78%,100%{transform:scale(1)}84%{transform:scale(1.12)}90%{transform:scale(1)}}
.vdh-helper-popover{pointer-events:auto;width:min(340px,calc(100vw - 24px));margin-bottom:8px;background:var(--surface);border:1px solid var(--border);border-radius:24px;box-shadow:0 24px 70px rgba(5,24,11,.28);padding:15px;position:relative;color:var(--text);animation:vdhHelperIn .18s ease-out both;}
.vdh-helper--right .vdh-helper-popover{transform-origin:bottom right}.vdh-helper--left .vdh-helper-popover{transform-origin:bottom left}
@keyframes vdhHelperIn{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.vdh-helper-close{position:absolute;right:10px;top:10px;width:36px;height:36px;border:0;border-radius:50%;background:var(--surface-2);color:var(--g1);font-size:23px;line-height:1;cursor:pointer;}
.vdh-helper-greeting{display:grid;grid-template-columns:58px minmax(0,1fr);gap:11px;align-items:center;padding-right:30px;margin-bottom:12px;}
.vdh-helper-mini{display:grid;place-items:center;width:58px;height:58px;border-radius:20px;background:var(--g5);border:1px solid var(--border2);overflow:hidden;}.vdh-helper-mini .vdh-helper-dog{width:55px;height:55px;margin-top:7px;}
.vdh-helper-greeting strong{display:block;color:var(--g1);font-size:15px;line-height:1.25}.vdh-helper-greeting p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.4;}
.vdh-helper-actions{display:grid;gap:8px}.vdh-helper-actions button{width:100%;min-height:46px;border:1px solid var(--border);border-radius:15px;background:var(--surface-2);color:var(--text);display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:center;padding:9px 12px;text-align:left;font:inherit;font-size:12px;font-weight:850;cursor:pointer;}.vdh-helper-actions button.primary{background:linear-gradient(135deg,var(--g2),var(--g3));border-color:transparent;color:#fff}.vdh-helper-actions button:hover{border-color:var(--g3);transform:translateY(-1px)}
.vdh-helper-settings{max-width:620px}.vdh-helper-settings-preview{display:grid;grid-template-columns:90px minmax(0,1fr);gap:15px;align-items:center;padding:15px;border:1px solid var(--border);border-radius:22px;background:linear-gradient(135deg,var(--g5),var(--surface));margin-bottom:12px}.vdh-helper-settings-preview .vdh-helper-dog{width:86px;height:86px}.vdh-helper-settings-preview strong{color:var(--g1);font-size:17px}.vdh-helper-settings-preview p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.vdh-helper-setting-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid var(--border);border-radius:18px;padding:13px;margin-bottom:10px}.vdh-helper-setting-row strong,.vdh-helper-setting-block>strong{display:block;color:var(--g1);font-size:13px}.vdh-helper-setting-row span{display:block;color:var(--muted);font-size:11px;line-height:1.4;margin-top:3px}.vdh-helper-setting-block{border:1px solid var(--border);border-radius:18px;padding:13px;margin-bottom:10px}.vdh-helper-position-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.vdh-helper-position-choices button{min-height:44px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);color:var(--g1);font:inherit;font-weight:850;cursor:pointer}.vdh-helper-position-choices button.active{background:var(--g2);border-color:var(--g2);color:#fff}.vdh-helper-motion-note{margin:0;border-radius:14px;padding:10px 12px;background:var(--surface-2);color:var(--muted);font-size:11px;line-height:1.45}
html[data-theme="dark"] .vdh-helper-popover{background:#121c16;border-color:#33463a}html[data-theme="dark"] .vdh-helper-greeting strong,html[data-theme="dark"] .vdh-helper-close,html[data-theme="dark"] .vdh-helper-settings-preview strong,html[data-theme="dark"] .vdh-helper-setting-row strong,html[data-theme="dark"] .vdh-helper-setting-block>strong,html[data-theme="dark"] .vdh-helper-position-choices button{color:#e8f4eb}html[data-theme="dark"] .vdh-helper-actions button,html[data-theme="dark"] .vdh-helper-close,html[data-theme="dark"] .vdh-helper-position-choices button{background:#18271e;border-color:#33463a}html[data-theme="dark"] .vdh-helper-actions button.primary,html[data-theme="dark"] .vdh-helper-position-choices button.active{background:#2f8b4e;border-color:#2f8b4e;color:#fff}html[data-theme="dark"] .vdh-helper-settings-preview{background:linear-gradient(135deg,#18271e,#111a15)}
.context-help{display:flex;align-items:flex-start;gap:10px;background:linear-gradient(135deg,#fff,#f7fbf7);border:1px solid var(--border);border-radius:16px;padding:12px 14px;margin:0 0 12px;box-shadow:var(--shadow);}
.context-help .ico{font-size:22px;line-height:1}.context-help strong{display:block;color:var(--g1);font-size:13px;margin-bottom:2px}.context-help span{display:block;color:var(--muted);font-size:12px;line-height:1.45}.context-help button{margin-left:auto;flex-shrink:0}
.help-modal{max-width:880px}.help-intro{background:linear-gradient(135deg,var(--g5),#fff);border:1px solid var(--border);border-radius:18px;padding:14px;margin-bottom:14px;display:flex;gap:12px;align-items:flex-start}.help-intro .big{font-size:34px;line-height:1}.help-intro h4{font-size:16px;color:var(--g1);margin-bottom:3px}.help-intro p{font-size:12px;color:var(--muted);line-height:1.5}.help-search{position:relative;margin-bottom:12px}.help-search input{width:100%;border:1.5px solid var(--border);border-radius:999px;padding:12px 16px 12px 42px;font-family:inherit;font-size:14px;background:var(--surface);box-shadow:0 2px 10px rgba(30,77,30,.06)}.help-search input:focus{outline:none;border-color:var(--g2);box-shadow:0 0 0 4px rgba(45,106,45,.1)}.help-search span{position:absolute;left:15px;top:50%;transform:translateY(-50%);font-size:18px}.help-tabs{display:flex;gap:8px;overflow:auto;padding-bottom:8px;margin-bottom:12px;scrollbar-width:none}.help-tabs::-webkit-scrollbar{display:none}.help-tab{border:1px solid var(--border);background:var(--surface);color:var(--g1);border-radius:999px;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:900;white-space:nowrap;cursor:pointer}.help-tab.active,.help-tab:hover{background:var(--g2);border-color:var(--g2);color:#fff}.help-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.help-card{border:1px solid var(--border);background:var(--surface);border-radius:18px;padding:13px;box-shadow:var(--shadow);}.help-card-head{display:flex;gap:10px;align-items:flex-start;margin-bottom:7px}.help-card-ico{font-size:25px;width:32px;text-align:center}.help-card h4{color:var(--g1);font-size:14px;margin-bottom:2px}.help-card .area{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:900}.help-card p{font-size:12px;color:var(--muted);line-height:1.5;margin-bottom:8px}.help-card ol{padding-left:20px;color:var(--text);font-size:12px;line-height:1.55}.help-card li{margin-bottom:3px}.help-tip{margin-top:9px;background:var(--g5);border:1px solid var(--border2);border-radius:12px;padding:8px 10px;color:var(--g1);font-size:12px;line-height:1.45}.help-empty{text-align:center;color:var(--muted);padding:24px;border:1px dashed var(--border);border-radius:16px;background:var(--g5)}.help-mini-link{border:none;background:transparent;color:var(--g2);font-family:inherit;font-weight:900;text-decoration:underline;cursor:pointer;padding:0;font-size:inherit}.tiny-btn.help{background:var(--surface);border-color:var(--gold);color:#5d4610}.tiny-btn.help:hover{background:var(--amber2);color:#5d4610}
.onboarding-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-bottom:16px}.onboarding-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:12px;box-shadow:var(--shadow);display:flex;gap:10px;align-items:flex-start}.onboarding-card .ico{font-size:25px}.onboarding-card strong{display:block;color:var(--g1);font-size:13px}.onboarding-card span{display:block;color:var(--muted);font-size:12px;line-height:1.35;margin-top:2px}
@media (max-width:820px){.context-help{border-radius:18px;margin-left:0;margin-right:0}.context-help button{padding:7px 10px}.help-modal{max-width:100%;height:auto}.help-intro{border-radius:18px}.help-grid{grid-template-columns:1fr}.help-tabs{margin-left:-2px;margin-right:-2px}.help-card{border-radius:18px}.onboarding-strip{grid-template-columns:1fr}.hdr-btns .help-desktop{display:none}}
@media (min-width:821px){.vdh-helper{bottom:24px}.hdr-btns .help-desktop{display:inline-block}}
@media (max-width:370px){.vdh-helper{bottom:calc(96px + env(safe-area-inset-bottom))}.vdh-helper-popover{padding:13px}.vdh-helper-greeting{grid-template-columns:50px minmax(0,1fr);gap:9px}.vdh-helper-mini{width:50px;height:50px}.vdh-helper-mini .vdh-helper-dog{width:48px;height:48px}.vdh-helper-setting-row{grid-template-columns:1fr}.vdh-helper-setting-row .btn{width:100%}}



/* ── TESTVERSION UX-POLITUR: Trainer/Admin, Status, Feedback ─────────────── */
.toast-stack{position:fixed;right:18px;top:88px;z-index:1400;display:flex;flex-direction:column;gap:8px;max-width:min(360px,calc(100vw - 28px));pointer-events:none}
.toast{pointer-events:auto;background:var(--surface);border:1px solid var(--border);border-left:5px solid var(--g2);border-radius:16px;padding:11px 13px;box-shadow:0 16px 38px rgba(0,0,0,.14);font-size:13px;line-height:1.4;color:var(--text);animation:toastIn .22s ease both;display:flex;gap:10px;align-items:flex-start}
.toast.err{border-left-color:var(--red);background:#fffafa}.toast.warn{border-left-color:var(--amber);background:#fffdf4}.toast.ok{border-left-color:var(--g3)}.toast.info{border-left-color:var(--blue)}.toast .t-ico{font-size:18px;line-height:1}.toast .t-body strong{display:block;color:var(--g1);font-size:13px;margin-bottom:1px}.toast .t-body span{font-size:12px;color:var(--muted)}
@keyframes toastIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.busy-overlay{position:fixed;inset:0;z-index:1350;background:rgba(10,26,10,.32);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px}.busy-card{background:var(--surface);border:1px solid var(--border);border-radius:24px;padding:18px 20px;box-shadow:0 28px 80px rgba(0,0,0,.24);max-width:360px;width:100%;display:flex;gap:14px;align-items:center}.busy-spinner{width:38px;height:38px;border-radius:50%;border:4px solid var(--border2);border-top-color:var(--g2);animation:spin .8s linear infinite;flex-shrink:0}.busy-card strong{color:var(--g1);font-size:15px}.busy-card span{display:block;color:var(--muted);font-size:12px;margin-top:2px;line-height:1.4}@keyframes spin{to{transform:rotate(360deg)}}
.trainer-hero,.admin-polish-panel,.profile-summary-panel,.live-polish-panel{background:linear-gradient(135deg,#fff,#f5faf5);border:1px solid var(--border);border-radius:24px;padding:15px;margin:0 0 14px;box-shadow:var(--shadow2)}
.trainer-hero{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.trainer-hero h3,.profile-summary-panel h3,.admin-polish-panel h3{color:var(--g1);font-size:17px;margin:0 0 3px}.trainer-hero p,.admin-polish-panel p,.profile-summary-panel p{color:var(--muted);font-size:12px;line-height:1.5}.trainer-hero-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:9px;margin:12px 0}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:12px;box-shadow:0 4px 14px rgba(30,77,30,.06)}.kpi-card strong{display:block;color:var(--g1);font-size:24px;line-height:1}.kpi-card span{display:block;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-top:4px}.kpi-card.warn strong{color:var(--amber)}.kpi-card.info strong{color:var(--blue)}
.member-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.member-card{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:13px;box-shadow:var(--shadow);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;position:relative;overflow:hidden}.member-card:hover{transform:translateY(-2px);border-color:var(--g3);box-shadow:0 12px 30px rgba(30,77,30,.13)}.member-card:after{content:'';position:absolute;right:-34px;bottom:-44px;width:105px;height:105px;border-radius:50%;background:rgba(45,106,45,.055)}.member-card-head{display:flex;gap:10px;align-items:center;position:relative;z-index:1}.member-card-title{font-weight:900;color:var(--g1);font-size:14px}.member-card-sub{font-size:11px;color:var(--muted);margin-top:2px;word-break:break-word}.member-card-body{position:relative;z-index:1;margin-top:10px;display:flex;gap:6px;flex-wrap:wrap}.member-meta-chip{border:1px solid var(--border2);background:var(--g5);border-radius:999px;padding:5px 8px;font-size:11px;color:var(--g1);font-weight:800}.member-card-actions{position:relative;z-index:1;margin-top:11px;display:flex;gap:6px;flex-wrap:wrap}.member-search-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin:0 0 12px}.member-search-row input{min-height:42px;border:1.5px solid var(--border);border-radius:999px;padding:10px 14px;font-family:inherit}.member-search-row input:focus{outline:none;border-color:var(--g2);box-shadow:0 0 0 4px rgba(45,106,45,.09)}
.admin-polish-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:12px}.admin-polish-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:12px;display:flex;gap:10px;align-items:flex-start}.admin-polish-ico{font-size:24px;width:34px;text-align:center}.admin-polish-card strong{display:block;color:var(--g1);font-size:13px}.admin-polish-card span{display:block;color:var(--muted);font-size:12px;line-height:1.35;margin-top:2px}.admin-polish-card .state-ok{color:var(--g2);font-weight:900}.admin-polish-card .state-warn{color:var(--amber);font-weight:900}.admin-menu{position:sticky;top:76px;z-index:3;background:rgba(240,245,240,.84);backdrop-filter:blur(10px);padding:8px;border-radius:22px;border:1px solid rgba(196,216,196,.8);margin-bottom:14px}
.profile-summary-panel{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center}.profile-summary-avatar{width:72px;height:72px;border-radius:26px;object-fit:cover;border:2px solid var(--gold2);background:var(--g5);display:flex;align-items:center;justify-content:center;font-size:34px}.profile-summary-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.profile-stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-top:12px}.profile-stat{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:10px}.profile-stat strong{display:block;color:var(--g1);font-size:19px}.profile-stat span{font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.live-polish-panel{margin:12px 0}.live-polish-panel .live-polish-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px}.live-polish-panel h4{color:var(--g1);font-size:15px;margin:0}.live-polish-panel p{font-size:12px;color:var(--muted);line-height:1.45}.live-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:8px}.live-status-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:10px}.live-status-card strong{display:block;color:var(--g1);font-size:17px}.live-status-card span{font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em}.trail-tools{background:rgba(255,255,255,.65);border:1px solid var(--border2);border-radius:18px;padding:9px}.trail-tool{min-height:38px}.trail-edit-map,.trail-map,.trail-map-small{border-radius:18px!important;border:1px solid var(--border)!important;box-shadow:0 6px 20px rgba(30,77,30,.09)}
.form-success-hint{border:1px solid var(--border);background:linear-gradient(135deg,var(--g5),#fff);border-radius:16px;padding:10px 12px;color:var(--g1);font-size:12px;line-height:1.45;margin:8px 0}.section-soft-title{display:flex;justify-content:space-between;gap:8px;align-items:center;margin:10px 0}.section-soft-title strong{color:var(--g1);font-size:14px}.section-soft-title span{color:var(--muted);font-size:12px}.pill-row{display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:820px){.toast-stack{left:12px;right:12px;top:auto;bottom:calc(96px + env(safe-area-inset-bottom));max-width:none}.busy-card{border-radius:22px}.trainer-hero{grid-template-columns:1fr}.trainer-hero-actions{justify-content:flex-start}.member-search-row{grid-template-columns:1fr}.member-card-grid{grid-template-columns:1fr}.admin-menu{position:relative;top:auto}.profile-summary-panel{grid-template-columns:1fr;text-align:left}.profile-summary-actions{display:grid;grid-template-columns:1fr 1fr}.live-polish-panel .live-polish-head{display:block}.live-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.profile-summary-actions{grid-template-columns:1fr}.live-status-grid{grid-template-columns:1fr}.kpi-grid{grid-template-columns:1fr 1fr}.toast{font-size:12px}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important;}
}



/* Desktop-Scrollverhalten für Chrome, macOS und Karten */
html, body{
  height:auto;
  min-height:100%;
  overflow-y:auto !important;
  overflow-x:hidden;
  overscroll-behavior-y:auto;
}
.app,.content{overflow:visible;}
@media (hover:hover) and (pointer:fine){
  body{overscroll-behavior-y:auto;}
  .trail-map,.trail-edit-map,.trail-map-small,.leaflet-container{
    overscroll-behavior:contain;
  }
}

/* ── UI FEINSCHLIFF: leere Zustände, Status, Timeline ───────────── */
.polish-nudges{display:grid;grid-template-columns:1.2fr .8fr;gap:12px;margin:-4px 0 16px;}
.nudge-card{background:linear-gradient(135deg,#fff,#f7fbf7);border:1px solid var(--border);border-radius:22px;padding:15px;box-shadow:0 8px 26px rgba(30,77,30,.08);display:flex;gap:12px;align-items:flex-start;min-width:0;}
.nudge-ico{width:44px;height:44px;border-radius:16px;background:var(--g4);display:flex;align-items:center;justify-content:center;font-size:23px;flex:0 0 auto;}
.nudge-card h3{font-size:15px;color:var(--g1);margin:0 0 4px;}
.nudge-card p{font-size:12px;color:var(--muted);line-height:1.45;margin:0;}
.nudge-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.nudge-chip{border:1px solid var(--border);background:var(--surface);color:var(--g1);border-radius:999px;padding:7px 10px;font-family:inherit;font-weight:900;font-size:12px;cursor:pointer;}
.nudge-chip.primary{background:var(--g2);border-color:var(--g2);color:#fff;}
.nudge-chip:hover{transform:translateY(-1px);border-color:var(--g3);}
.system-pills{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px;}
.system-pill{font-size:11px;font-weight:900;border-radius:999px;padding:5px 8px;border:1px solid var(--border);background:var(--surface);color:var(--g1);}
.system-pill.ok{background:#e8f5e9;color:#256b2b;border-color:#c7e5ca;}
.system-pill.warn{background:var(--amber2);color:#6b4808;border-color:#f0d27a;}
.system-pill.info{background:var(--blue2);color:var(--blue);border-color:#c7d8f4;}
.empty-state{background:linear-gradient(135deg,#fff,#f7fbf7);border:1px dashed var(--border);border-radius:22px;padding:24px;text-align:left;box-shadow:0 8px 26px rgba(30,77,30,.06);display:flex;gap:15px;align-items:flex-start;margin:10px 0;}
.empty-state .empty-ico{font-size:34px;width:46px;text-align:center;flex:0 0 auto;}
.empty-state h3{font-size:16px;color:var(--g1);margin:0 0 5px;}
.empty-state p{font-size:13px;color:var(--muted);line-height:1.5;margin:0;}
.empty-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
.sess-card{transition:.18s transform,.18s box-shadow,.18s border-color;}
.sess-card:hover{transform:translateY(-1px);box-shadow:0 12px 32px rgba(30,77,30,.12);border-color:rgba(58,138,58,.42);}
.sess-card.tone-gps:before{background:#1a5fa8;}
.sess-card.tone-video:before{background:#8a5d1f;}
.sess-card.tone-note:before{background:#6a4fb3;}
.sess-card.tone-basic:before{background:var(--g3);}
.sess-date-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.sess-quality{font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:900;border-radius:999px;padding:3px 7px;background:var(--g5);color:var(--g1);border:1px solid var(--border);}
.sess-quality.good{background:#e8f5e9;color:#256b2b;border-color:#c7e5ca;}
.sess-quality.open{background:var(--amber2);color:#6b4808;border-color:#f0d27a;}
.sess-summary{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 2px;}
.sess-summary span{font-size:11px;font-weight:800;color:var(--text);background:#fafdfa;border:1px solid var(--border2);border-radius:999px;padding:4px 8px;}
.sess-preview{margin-top:8px;background:rgba(244,249,244,.8);border:1px solid var(--border2);border-radius:14px;padding:9px 11px;font-size:12px;color:var(--muted);line-height:1.45;}
.sess-preview strong{color:var(--g1);}
.media-icons span.ok{background:#e8f5e9;color:#256b2b;border-color:#c7e5ca;}
.media-icons span.warn{background:var(--amber2);color:#6b4808;border-color:#f0d27a;}
.media-icons span.live{background:var(--blue2);color:var(--blue);border-color:#c7d8f4;}
.training-list-empty-title{font-weight:900;color:var(--g1);}
@media (max-width:820px){
  .polish-nudges{grid-template-columns:1fr;margin-top:0;}
  .nudge-card{border-radius:20px;padding:13px;}
  .empty-state{border-radius:20px;padding:18px;}
  .empty-state .empty-ico{font-size:28px;width:34px;}
  .sess-summary span{font-size:10.5px;}
}


/* ── Offline & Rundheits-Politur ───────────────────────────────────────── */
.offline-banner{position:sticky;top:0;z-index:80;margin:0 auto 12px;max-width:1120px;border:1px solid #d8ead8;background:linear-gradient(135deg,#f8fff8,#eef8ee);box-shadow:0 10px 24px rgba(22,74,30,.08);border-radius:18px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--g1)}
.offline-banner.warn{background:linear-gradient(135deg,#fff7e6,#fffdf5);border-color:#f1d48f;color:#6b4808}
.offline-banner strong{display:block;font-size:14px}.offline-banner span{display:block;font-size:12px;color:var(--muted);line-height:1.35}.offline-banner-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.offline-card{border:1px solid #d8ead8;background:linear-gradient(135deg,#f8fff8,#ffffff);border-radius:22px;padding:15px;display:grid;grid-template-columns:auto 1fr;gap:12px;box-shadow:0 12px 26px rgba(22,74,30,.06);margin:14px 0}.offline-card.warn{background:linear-gradient(135deg,#fff8e9,#ffffff);border-color:#f0d27a}.offline-card .offline-ico{font-size:28px;width:42px;height:42px;border-radius:16px;background:#ecf7ec;display:grid;place-items:center}.offline-card.warn .offline-ico{background:#fff0c7}.offline-card h3{margin:0 0 4px;color:var(--g1);font-size:18px}.offline-card p{margin:0 0 10px;color:var(--muted);font-size:13px;line-height:1.45}.offline-card .draft-list{display:grid;gap:7px;margin:10px 0}.offline-draft-row{border:1px solid #e4eee4;border-radius:14px;padding:9px 10px;background:var(--surface);display:flex;align-items:center;justify-content:space-between;gap:10px}.offline-draft-row strong{font-size:13px;color:var(--g1)}.offline-draft-row span{font-size:11px;color:var(--muted)}
.offline-mini-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid #d8ead8;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:800;background:#f8fff8;color:var(--g1)}.offline-mini-pill.warn{border-color:#f1d48f;background:#fff7e6;color:#6b4808}
.micro-polish-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}.micro-polish-card{border:1px solid #e0ece0;background:var(--surface);border-radius:20px;padding:14px;box-shadow:0 10px 24px rgba(22,74,30,.05)}.micro-polish-card strong{display:block;color:var(--g1);font-size:14px;margin-bottom:3px}.micro-polish-card span{display:block;color:var(--muted);font-size:12px;line-height:1.35}.micro-polish-card .ico{font-size:23px;margin-bottom:8px;display:block}
@media(max-width:820px){.offline-banner{border-radius:16px;margin:0 0 10px;align-items:flex-start;flex-direction:column}.offline-banner-actions{justify-content:flex-start}.offline-card{grid-template-columns:1fr;padding:14px}.micro-polish-grid{grid-template-columns:1fr}.offline-draft-row{align-items:flex-start;flex-direction:column}}


/* ── Icon-System & Sprachen-Politur ───────────────────────────────────── */
.ui-icon{width:22px;height:22px;display:inline-grid;place-items:center;flex:0 0 auto;color:currentColor}
.ui-icon svg{width:100%;height:100%;display:block;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ui-icon.lg{width:30px;height:30px}.ui-icon.sm{width:18px;height:18px}.ui-icon.solid svg{fill:currentColor;stroke:currentColor}
.icon-badge{width:46px;height:46px;border-radius:17px;background:var(--g4);color:var(--g1);display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(30,77,30,.06)}
.app-action-card .ico,.quick-card .quick-ico,.sheet-ico,.module-ico,.today-icon,.nudge-ico,.micro-polish-card .ico,.onboarding-card .ico{display:grid;place-items:center}
.app-action-card .ico .ui-icon,.quick-card .quick-ico .ui-icon,.sheet-ico .ui-icon,.today-icon .ui-icon,.nudge-ico .ui-icon,.micro-polish-card .ico .ui-icon,.onboarding-card .ico .ui-icon{margin:auto}
.language-switch{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;margin:12px 0 0}
.language-switch.compact{margin:0;justify-content:flex-start}.language-switch.inline{margin:0;display:inline-flex}
.lang-btn{border:1px solid var(--border);background:var(--surface);color:var(--g1);border-radius:999px;padding:6px 10px;font-family:inherit;font-size:12px;font-weight:900;cursor:pointer;min-height:34px;display:inline-flex;align-items:center;gap:6px;transition:.15s}
.lang-btn:hover{border-color:var(--g2);transform:translateY(-1px)}.lang-btn.active{background:var(--g2);border-color:var(--g2);color:#fff;box-shadow:0 6px 18px rgba(30,77,30,.16)}
.lang-dot{width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.55}.lang-btn.active .lang-dot{opacity:1;background:var(--gold2)}
.language-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.language-card{border:1px solid var(--border);background:var(--surface);border-radius:18px;padding:13px;text-align:left;cursor:pointer;font-family:inherit;color:var(--text);box-shadow:var(--shadow);transition:.15s}.language-card:hover{border-color:var(--g2);transform:translateY(-1px)}.language-card.active{border-color:var(--g2);background:var(--g5);box-shadow:0 0 0 3px rgba(45,106,45,.08)}.language-card strong{display:block;color:var(--g1);font-size:15px}.language-card span{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.visual-hint-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.visual-hint{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:12px;display:flex;gap:10px;align-items:flex-start;box-shadow:0 8px 24px rgba(30,77,30,.05)}.visual-hint .icon-badge{width:38px;height:38px;border-radius:14px}.visual-hint strong{display:block;color:var(--g1);font-size:13px}.visual-hint span{display:block;color:var(--muted);font-size:11px;line-height:1.35;margin-top:2px}
@media(max-width:820px){.language-panel{grid-template-columns:1fr}.language-switch{gap:5px}.lang-btn{padding:6px 8px;font-size:11px}.visual-hint-strip{grid-template-columns:1fr 1fr}.visual-hint{padding:10px;border-radius:16px}.icon-badge{width:42px;height:42px;border-radius:15px}}
@media(max-width:420px){.visual-hint-strip{grid-template-columns:1fr}.language-switch .lang-btn{flex:1;justify-content:center;min-width:72px}}


/* ── HAUPTVERWALTUNG / VEREINSINSTANZEN ───────────────────────── */
.club-admin-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;margin:14px 0}
.club-admin-card{background:linear-gradient(135deg,rgba(30,77,30,.10),rgba(200,160,39,.10));border:1px solid rgba(30,77,30,.14);border-radius:22px;padding:16px;box-shadow:var(--shadow-soft)}
.club-admin-card h3{margin:0 0 4px;color:var(--green)}
.club-admin-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}
.club-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:12px}
.club-card{background:var(--card);border:1px solid rgba(30,77,30,.12);border-radius:20px;padding:14px;box-shadow:var(--shadow-soft)}
.club-card-head{display:flex;gap:10px;align-items:center;margin-bottom:10px}
.club-ico{width:42px;height:42px;border-radius:16px;display:grid;place-items:center;background:rgba(30,77,30,.10);font-size:22px;flex:0 0 auto}
.club-title{font-weight:800;color:var(--text);line-height:1.15}.club-domain{font-size:12px;color:var(--muted);margin-top:2px}
.club-meta{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.club-chip{font-size:11px;border:1px solid rgba(30,77,30,.14);border-radius:999px;padding:4px 8px;background:rgba(255,255,255,.65)}
.club-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.club-next{margin:10px 0 0;padding:10px;border-radius:14px;background:rgba(30,77,30,.06);font-size:12px;color:var(--muted);line-height:1.45}
.club-state-ok{color:#247a2d}.club-state-warn{color:#986f00}.club-state-plan{color:#53627c}
@media(max-width:760px){.club-admin-hero{grid-template-columns:1fr}.club-grid{grid-template-columns:1fr}.club-admin-card{border-radius:18px}}


/* Training bearbeiten & bessere Auffindbarkeit */
.edit-mode-banner{display:flex;align-items:flex-start;gap:10px;background:linear-gradient(135deg,#fff7df,#ffffff);border:1px solid #efd58c;border-radius:14px;padding:12px;margin-bottom:12px;color:#4b3a00;box-shadow:0 8px 18px rgba(90,70,0,.06)}
.edit-mode-banner strong{display:block;font-size:14px;margin-bottom:2px}.edit-mode-banner span{font-size:12px;color:#6b5a20}.edit-mode-banner .ico{font-size:22px;line-height:1}
.sess-main-actions .edit-btn,.profil-training-actions .edit-btn{border:1.5px solid var(--border);background:var(--surface);border-radius:999px;padding:7px 10px;font-weight:800;font-size:12px;cursor:pointer;color:var(--green);white-space:nowrap}
.sess-main-actions .edit-btn:hover,.profil-training-actions .edit-btn:hover{background:#f3faf3;border-color:#a9c9a9}.profil-training-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.profil-training-search{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0 14px}.profil-training-search input{flex:1;min-width:220px;padding:11px 13px;border:1.5px solid var(--border);border-radius:999px;font-size:13px;font-family:inherit;background:var(--surface)}.training-media-strip{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.training-media-strip span{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border2);background:var(--surface-2);border-radius:999px;padding:4px 8px;font-size:12px;font-weight:750;color:var(--muted)}.profil-training-card[data-profile-training-card]{scroll-margin-top:90px}.quick-find-box{background:var(--surface-2);border:1px solid var(--border2);border-radius:14px;padding:12px;margin:10px 0 14px}.quick-find-box strong{display:block;font-size:13px;margin-bottom:4px}.quick-find-box p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}
@media(max-width:640px){.sess-main-actions{justify-content:flex-start;width:100%}.sess-main-actions .edit-btn,.sess-main-actions .del-btn,.sess-main-actions .btn{min-height:34px}.profil-training-search input{min-width:100%}}

/* Teams nach Abteilung / Sportart vorsortieren */
.team-dept-panel{background:linear-gradient(135deg,#f7fbf7,#fff);border:1px solid var(--border2);border-radius:20px;padding:13px;margin:12px 0 14px;box-shadow:0 10px 24px rgba(0,0,0,.04)}
.team-dept-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}.team-dept-head strong{display:block;color:var(--green);font-size:14px}.team-dept-head span{display:block;color:var(--muted);font-size:12px;line-height:1.4;margin-top:2px}.team-dept-count{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(30,77,30,.12);border-radius:999px;padding:6px 9px;background:var(--surface);font-size:12px;font-weight:800;color:var(--green);white-space:nowrap}
.team-sport-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 0 4px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.team-sport-tab{border:1.5px solid var(--border);background:var(--surface);border-radius:999px;padding:9px 12px;font-size:13px;font-weight:850;white-space:nowrap;cursor:pointer;color:var(--text);display:inline-flex;gap:6px;align-items:center}.team-sport-tab.active{background:var(--green);border-color:var(--green);color:#fff;box-shadow:0 10px 22px rgba(30,77,30,.18)}.team-sport-tab.soft{background:var(--surface-2)}.team-sport-tab:hover{border-color:#a7c7a7}
.team-section{margin:14px 0 18px}.team-section-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 10px;padding:0 2px}.team-section-title{display:flex;align-items:center;gap:8px;font-weight:900;color:var(--green);font-size:15px}.team-section-title span{font-size:22px}.team-section-meta{color:var(--muted);font-size:12px;font-weight:800;background:var(--surface-2);border:1px solid var(--border2);border-radius:999px;padding:5px 9px}.team-section-empty{display:none;background:var(--surface);border:1px dashed var(--border);border-radius:16px;padding:13px;color:var(--muted);font-size:13px}.team-section[data-empty="true"] .team-section-empty{display:block}.team-section[data-empty="true"] .member-card-grid{display:none}
.member-card .member-card-sub2{font-size:11px;color:var(--muted);margin-top:2px}.sport-pill.match{background:rgba(30,77,30,.10);border-color:rgba(30,77,30,.22);color:var(--green);font-weight:850}
@media(max-width:640px){.team-dept-panel{border-radius:18px;padding:12px}.team-dept-head{display:block}.team-dept-count{margin-top:8px}.team-section-head{align-items:flex-start}.team-sport-tab{padding:9px 11px}}


/* ── Trainingstermine / Anmeldungen ───────────────────────────────────── */
.termine-hero{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;background:linear-gradient(135deg,#fff,#f5faf5);border:1px solid var(--border);border-radius:24px;padding:16px;box-shadow:var(--shadow2);margin-bottom:14px}.termine-hero h3{margin:0;color:var(--g1);font-size:22px}.termine-hero p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.termine-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.termin-form{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:14px;margin-bottom:14px;box-shadow:var(--shadow)}.termin-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.termin-form .fld.full{grid-column:1/-1}.termin-filter-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0 14px}.termin-filter-row input,.termin-filter-row select{border:1.5px solid var(--border);border-radius:999px;padding:10px 12px;font-family:inherit;font-size:13px;background:var(--surface)}.termin-filter-row input{flex:1;min-width:220px}.termin-list{display:grid;gap:12px}.termin-card{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:14px;box-shadow:var(--shadow);position:relative;overflow:hidden}.termin-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--g3)}.termin-card.abgesagt:before{background:var(--red)}.termin-card.erledigt:before{background:var(--muted)}.termin-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.termin-title{font-weight:900;color:var(--g1);font-size:16px}.termin-meta{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.45}.termin-timebox{background:var(--g5);border:1px solid var(--border2);border-radius:16px;padding:9px 11px;text-align:center;min-width:92px}.termin-timebox strong{display:block;color:var(--g1);font-size:15px}.termin-timebox span{font-size:11px;color:var(--muted);font-weight:800}.termin-desc{margin-top:10px;color:var(--text);font-size:13px;line-height:1.5;background:var(--surface-2);border:1px solid var(--border2);border-radius:14px;padding:10px}.termin-counts{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.termin-count{border:1px solid var(--border);border-radius:999px;padding:6px 9px;background:var(--surface);font-size:12px;font-weight:900;color:var(--g1)}.termin-count.yes{background:#edf8ed;border-color:#b7ddb7}.termin-count.maybe{background:#fff8e6;border-color:#f0d27c}.termin-count.no{background:#fff1f1;border-color:#efb6b6}.termin-rsvp{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.termin-rsvp button{border:1.5px solid var(--border);background:var(--surface);border-radius:999px;padding:9px 12px;font-family:inherit;font-weight:900;font-size:12px;cursor:pointer}.termin-rsvp button:disabled{opacity:.5;cursor:not-allowed}.termin-rsvp button.active.yes,.termin-rsvp button.yes:not(:disabled):hover{background:#2d6a2d;color:#fff;border-color:#2d6a2d}.termin-rsvp button.active.maybe,.termin-rsvp button.maybe:not(:disabled):hover{background:#f2b705;color:#3d2c00;border-color:#f2b705}.termin-rsvp button.active.no,.termin-rsvp button.no:not(:disabled):hover{background:#c62828;color:#fff;border-color:#c62828}.termin-comment{display:flex;gap:8px;margin-top:9px}.termin-comment input{flex:1;border:1.5px solid var(--border);border-radius:999px;padding:9px 12px;font-family:inherit;font-size:13px}.termin-participants{margin-top:12px;border-top:1px solid var(--border2);padding-top:10px}.termin-participants summary{font-weight:900;color:var(--g1);cursor:pointer}.termin-people{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.termin-person{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:6px 9px;font-size:12px;color:var(--text)}.termin-person.kommt{background:#edf8ed}.termin-person.vielleicht{background:#fff8e6}.termin-person.absage{background:#fff1f1}.termin-manage{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.termin-kachel{background:linear-gradient(135deg,#fff,#f6faf6);border:1px solid var(--border);border-radius:18px;padding:12px;display:flex;gap:10px;align-items:flex-start;box-shadow:var(--shadow);margin-bottom:12px}.termin-kachel .ico{font-size:25px}.termin-kachel strong{display:block;color:var(--g1);font-size:14px}.termin-kachel span{display:block;color:var(--muted);font-size:12px;line-height:1.4;margin-top:2px}

.push-card{background:linear-gradient(135deg,#fff,#f5f9ff);border:1px solid var(--border);border-radius:22px;padding:14px;box-shadow:var(--shadow);display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin-bottom:14px}.push-card .push-ico{width:44px;height:44px;border-radius:17px;background:#eef6ff;border:1px solid #cfe3ff;display:flex;align-items:center;justify-content:center;color:#1c4f86}.push-card strong{display:block;color:var(--g1);font-size:15px}.push-card span{display:block;color:var(--muted);font-size:12px;line-height:1.4;margin-top:2px}.push-card .push-state{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;border:1px solid var(--border);background:var(--surface);margin-top:7px;color:var(--g1)}.push-card.on .push-state{background:#edf8ed;border-color:#b7ddb7;color:#1d5f1d}.push-card.off .push-state{background:#fff8e6;border-color:#f0d27c;color:#674500}.push-card.unsupported{background:#f7f7f7}.push-card-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.notification-list{display:grid;gap:8px}.notification-item{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:10px}.notification-item.unread{border-left:5px solid var(--g3)}.notification-item strong{display:block;color:var(--g1);font-size:13px}.notification-item span{display:block;color:var(--muted);font-size:11px;margin-top:3px}.notification-item p{margin:5px 0 0;color:var(--text);font-size:12px;line-height:1.4}
@media(max-width:820px){.push-card{grid-template-columns:1fr}.push-card .push-ico{width:40px;height:40px}.push-card-actions{justify-content:stretch}.push-card-actions .btn,.push-card-actions .tiny-btn{flex:1}}

@media(max-width:820px){.termine-hero{grid-template-columns:1fr;border-radius:22px}.termine-actions{justify-content:stretch}.termine-actions .btn,.termine-actions .tiny-btn{flex:1}.termin-form-grid{grid-template-columns:1fr}.termin-head{flex-direction:column}.termin-timebox{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left}.termin-comment{flex-direction:column}.termin-filter-row input,.termin-filter-row select{width:100%;min-width:0}.termin-rsvp{display:grid;grid-template-columns:1fr;}.termin-rsvp button{width:100%;}}


/* ── Eigenes Profil: Schnellzugriffe / persönliche Übersicht ─────────────── */
.profile-quick-panel{background:linear-gradient(135deg,#f7fbf7,#fff);border:1px solid var(--border);border-radius:22px;padding:14px;margin:0 0 16px;box-shadow:var(--shadow2)}
.profile-sport-panel{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:13px;margin:0 0 16px;box-shadow:var(--shadow)}
.profile-sport-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px}.profile-sport-head h4{margin:0;color:var(--g1);font-size:15px}.profile-sport-head p{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.profile-sport-count{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border2);background:var(--g5);color:var(--g1);border-radius:999px;padding:6px 9px;font-size:12px;font-weight:900;white-space:nowrap}
.profile-sport-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px}.profile-sport-toggle{border:1.5px solid var(--border);background:var(--surface);border-radius:16px;padding:10px;text-align:left;cursor:pointer;display:flex;gap:9px;align-items:flex-start;transition:.15s;font-family:inherit;min-height:76px}.profile-sport-toggle:hover{border-color:var(--g3);background:var(--surface-2)}.profile-sport-toggle.active{border-color:var(--g2);background:var(--g5);box-shadow:0 8px 18px rgba(30,77,30,.08)}.profile-sport-toggle .ico{width:34px;height:34px;border-radius:13px;background:var(--surface);border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;font-size:19px;flex:0 0 auto}.profile-sport-toggle strong{display:block;color:var(--g1);font-size:13px}.profile-sport-toggle span{display:block;color:var(--muted);font-size:11px;line-height:1.35;margin-top:2px}.profile-sport-toggle .state{margin-top:5px;display:inline-flex;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:900;border:1px solid var(--border2);background:var(--surface)}.profile-sport-toggle.active .state{background:var(--g2);border-color:var(--g2);color:#fff}
.profile-quick-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px}.profile-quick-head h4{margin:0;color:var(--g1);font-size:16px}.profile-quick-head p{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.profile-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.profile-quick-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:12px;min-height:128px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow)}.profile-quick-card .pq-top{display:flex;gap:9px;align-items:flex-start}.profile-quick-card .pq-ico{width:36px;height:36px;border-radius:14px;background:var(--g5);border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;font-size:18px;flex:0 0 auto}.profile-quick-card strong{display:block;color:var(--g1);font-size:14px}.profile-quick-card small{display:block;color:var(--muted);font-size:11px;line-height:1.35;margin-top:2px}.profile-quick-card .pq-count{font-size:22px;font-weight:950;color:var(--g1);line-height:1}.profile-quick-card .pq-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto}.profile-quick-card .pq-mini-list{display:grid;gap:5px;margin-top:2px}.profile-quick-card .pq-mini{font-size:11px;color:var(--text);background:var(--surface-2);border:1px solid var(--border2);border-radius:999px;padding:5px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-homework-list{display:grid;gap:8px;margin-top:10px}.profile-homework-item{background:var(--surface);border:1px solid var(--border);border-left:5px solid var(--amber);border-radius:16px;padding:10px}.profile-homework-item.done{opacity:.72;border-left-color:var(--g3)}.profile-homework-item .hw-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.profile-homework-item strong{font-size:12px;color:var(--g1)}.profile-homework-item p{margin:5px 0 0;color:var(--text);font-size:12px;line-height:1.45}.profile-homework-item .hw-meta{margin-top:5px;color:var(--muted);font-size:11px}.my-trainings-hero{background:linear-gradient(135deg,#fff,#f6faf6);border:1px solid var(--border);border-radius:24px;padding:16px;box-shadow:var(--shadow2);margin-bottom:14px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.my-trainings-hero h3{margin:0;color:var(--g1);font-size:22px}.my-trainings-hero p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.my-training-list{display:grid;gap:12px}.my-training-card{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:14px;box-shadow:var(--shadow);position:relative;overflow:hidden}.my-training-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--g3)}.my-training-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.my-training-title{font-weight:950;color:var(--g1);font-size:16px}.my-training-meta{color:var(--muted);font-size:12px;margin-top:3px;line-height:1.45}.my-training-note-grid{display:grid;gap:7px;margin-top:10px}.my-training-note{background:var(--surface-2);border:1px solid var(--border2);border-radius:14px;padding:9px}.my-training-note .sl{font-size:10px}.my-training-preview-videos{display:grid;gap:8px;margin-top:10px}.my-training-preview-videos video{width:100%;max-height:260px;border-radius:16px;background:#000}.my-training-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.my-training-search{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.my-training-search input{flex:1;min-width:220px;border:1.5px solid var(--border);border-radius:999px;padding:11px 13px;font-family:inherit;font-size:13px;background:var(--surface)}.training-filter-chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}.training-filter-chip{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:8px 11px;font-family:inherit;font-weight:900;color:var(--g1);cursor:pointer;display:inline-flex;gap:7px;align-items:center}.training-filter-chip span{background:var(--g5);border:1px solid var(--border2);border-radius:999px;padding:2px 6px;font-size:11px}.training-filter-chip.active{background:var(--g1);border-color:var(--g1);color:#fff}.training-filter-chip.active span{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.24);color:#fff}.profile-calendar-teaser{margin-top:10px;background:var(--surface);border:1px dashed var(--border);border-radius:16px;padding:10px;color:var(--muted);font-size:12px;line-height:1.45}
@media(max-width:820px){.profile-quick-grid{grid-template-columns:1fr}.profile-quick-head{display:block}.my-trainings-hero{grid-template-columns:1fr;border-radius:22px}.my-trainings-hero .btn{width:100%}.my-training-head{flex-direction:column}.my-training-search input{min-width:0;width:100%}}



/* ── DOCK-FIX MOBILE: Bottom-Navigation wirklich am Viewport fixieren ── */
#mobile-nav-root{position:relative;z-index:8000;}
#action-sheet-root{position:relative;z-index:9000;}
#help-fab-root{position:relative;z-index:7900;}
@media (max-width: 820px) {
  html,body{height:auto;min-height:100%;overflow-x:hidden;}
  body{padding-bottom:0!important;}
  .app{padding-bottom:calc(98px + env(safe-area-inset-bottom));}
  .content{padding-bottom:calc(112px + env(safe-area-inset-bottom))!important;}
  #mobile-nav-root .mobile-bottom-nav{
    position:fixed!important;
    left:0!important;
    right:0!important;
    top:auto!important;
    bottom:0!important;
    width:100vw!important;
    max-width:100vw!important;
    z-index:3000!important;
    transform:translate3d(0,0,0)!important;
    -webkit-transform:translate3d(0,0,0)!important;
    will-change:transform;
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    padding:7px max(8px,env(safe-area-inset-left)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-right))!important;
    background:rgba(255,255,255,.96)!important;
    -webkit-backdrop-filter:blur(16px);
    backdrop-filter:blur(16px);
    border-top:1px solid var(--border)!important;
    box-shadow:0 -10px 28px rgba(30,77,30,.16)!important;
    overflow:visible!important;
  }
  #mobile-nav-root .mobile-bottom-nav button{min-width:0!important;overflow:hidden;}#mobile-nav-root .mobile-bottom-nav .nav-label{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  #mobile-nav-root .mobile-bottom-nav button.nav-plus{margin-top:-22px!important;}
  #mobile-nav-root .mobile-bottom-nav button.nav-plus span{width:54px;height:54px;}
  #action-sheet-root .action-sheet-backdrop{position:fixed!important;z-index:3040!important;}
  #action-sheet-root .quick-action-sheet{position:fixed!important;z-index:3050!important;}
}
@media (min-width: 821px) {
  #mobile-nav-root .mobile-bottom-nav{display:none!important;}
}



/* ─────────────────────────────────────────────────────────────
   VdH Portal · vereinfachte Mitglieder-/Traineroberfläche
   ───────────────────────────────────────────────────────────── */
:root{
  --app-bg:#f7f7f1;
  --app-surface:#ffffff;
  --app-line:#e2eadf;
  --app-ink:#172317;
  --app-muted:#667466;
  --app-green:#0f3f22;
  --app-green2:#1f6a36;
  --app-green3:#eaf3ea;
  --app-dark:#091017;
  --app-card:#101822;
  --app-yellow:#f4bd24;
  --app-radius:24px;
  --shadow:0 14px 38px rgba(15,63,34,.09);
  --shadow2:0 18px 55px rgba(15,63,34,.14);
  --radius:14px;--radius2:20px;
}
body{background:radial-gradient(circle at 10% 0%,#eef6eb 0,#f7f7f1 38%,#f7f7f1 100%);color:var(--app-ink);}
.app{max-width:1180px;}
.content{padding:24px;}
.hdr{background:rgba(15,63,34,.96);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.12);box-shadow:0 10px 28px rgba(10,35,17,.20);border-radius:0 0 24px 24px;margin:0 10px;}
.hdr-logo{height:42px;background:rgba(255,255,255,.92);border-radius:14px;padding:4px;}
.hdr-info h1{font-size:15px;letter-spacing:.01em}.hdr-info p{font-style:normal;opacity:.78}.hdr-btn{border-radius:999px;padding:8px 12px;background:rgba(255,255,255,.10)}
.nav{display:none!important;}
.app-main-nav{max-width:1180px;margin:12px auto 0;padding:8px;background:rgba(255,255,255,.92);border:1px solid var(--app-line);border-radius:999px;box-shadow:var(--shadow);display:grid;grid-template-columns:repeat(var(--app-nav-count,5),minmax(0,1fr));gap:6px;}
.app-nav-tab{border:0;background:transparent;color:var(--app-muted);border-radius:999px;padding:10px 12px;font-weight:950;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;transition:.15s;}
.app-nav-tab:hover,.app-nav-tab.active{background:var(--app-green3);color:var(--app-green);}
.app-nav-tab.app-nav-plus{background:var(--app-green);color:#fff;box-shadow:0 10px 24px rgba(15,63,34,.16);}
.app-nav-tab.app-nav-plus.active{background:#123f25;color:#fff;}
@media(max-width:820px){.app-main-nav{display:none!important;}}
.footer{display:none;}
.card,.accordion-card,.sport-head-card,.termine-hero,.admin-menu-btn,.stat-card,.sess-card{border-radius:var(--app-radius)!important;box-shadow:var(--shadow);border-color:var(--app-line)!important;}
.btn,.tiny-btn,.act-btn,.edit-btn{border-radius:999px!important;}

/* Profil/Einstellungen wirken zentraler */
.profil-modal{max-width:900px;}.profile-quick-panel,.profile-sport-panel{border-radius:26px;box-shadow:var(--shadow);border-color:var(--app-line);}.profile-quick-grid{gap:12px}.profile-quick-card{border-radius:22px!important}

/* Sportseite ruhiger */
.sport-head-card.app-mode{background:linear-gradient(135deg,#fff,#eef7ec);border-radius:30px!important;padding:20px!important}.training-toolbar{gap:8px}.training-list-head{margin-top:18px}

@media(max-width:900px){
  .content{padding:16px 14px 112px;}
  .hdr{margin:0;border-radius:0 0 22px 22px;padding:10px 12px;position:sticky;top:0;z-index:50;}
  .hdr-info h1{max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.hdr-user{display:none}.hdr-btns{display:none}.hdr-mobile-actions{display:flex;gap:6px;justify-content:flex-end;}
  .mobile-bottom-nav{position:fixed!important;left:10px!important;right:10px!important;bottom:calc(10px + env(safe-area-inset-bottom))!important;width:auto!important;border-radius:28px!important;background:rgba(255,255,255,.88)!important;border:1px solid rgba(226,234,223,.85)!important;backdrop-filter:blur(18px);box-shadow:0 18px 50px rgba(15,63,34,.18)!important;padding:8px!important;z-index:990!important;}
  .mobile-bottom-nav button{border-radius:20px!important;min-width:0!important}.mobile-bottom-nav .nav-plus{transform:translateY(-12px);box-shadow:0 12px 28px rgba(15,63,34,.22)!important;background:var(--app-green)!important;color:#fff!important}.mobile-bottom-nav .nav-plus span{background:var(--app-yellow)!important;color:#1c2400!important;border-radius:50%;}
  .action-sheet{left:12px!important;right:12px!important;bottom:calc(100px + env(safe-area-inset-bottom))!important;border-radius:28px!important;max-height:72vh;overflow:auto;}
}
@media(min-width:901px){.mobile-bottom-nav,.action-sheet{display:none!important}.content{padding-bottom:34px}}
@media(max-width:640px){
  .action-sheet{left:10px!important;right:10px!important;width:auto!important;bottom:calc(96px + env(safe-area-inset-bottom))!important;max-height:calc(100vh - 126px);overflow:auto;padding:12px!important;border-radius:26px!important;transform:translateY(18px)!important;}
  .action-sheet.open{transform:translateY(0)!important;}
  .action-sheet .sheet-head button{align-self:flex-start;}
  .action-sheet .sheet-action{padding:13px 12px;border-radius:18px;}
  .form-actions.sticky-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 12px!important;}
  .form-actions.sticky-actions .btn{width:100%;min-width:0;}
}
@media(max-width:420px){
  .form-actions.sticky-actions{grid-template-columns:1fr 1fr;}
  .mobile-bottom-nav button{font-size:9px!important;}
  .mobile-bottom-nav button span{font-size:19px!important;}
}

/*
 * Mobile Bedienflächen
 * Alle kompakten Aktionen bleiben mindestens 44 × 44 px groß. Das verhindert
 * Fehlklicks und hält Löschen-, Filter- und Formularaktionen einheitlich.
 */
@media (max-width: 820px) {
  html {
    scroll-padding-top: 76px;
    scroll-padding-bottom: calc(124px + env(safe-area-inset-bottom));
  }

  .app-install-btn,
  .portal-btn,
  .btn,
  .btn-sm,
  .tiny-btn,
  .edit-btn,
  .del-btn,
  .wizard-step,
  .training-filter-chip,
  .termin-rsvp button,
  .lang-btn,
  .sheet-close,
  .action-sheet .sheet-head button {
    min-height: 46px !important;
  }

  .del-btn,
  .sheet-close,
  .action-sheet .sheet-head button {
    min-width: 44px !important;
    padding: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
  }

  .sess-main-actions {
    row-gap: 8px;
  }

  .sess-main-actions .edit-btn,
  .sess-main-actions .btn-sm {
    padding: 9px 12px;
  }

  .training-filter-chips {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding: 2px 2px 8px;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
  }

  .training-filter-chips::-webkit-scrollbar {
    display: none;
  }

  .training-filter-chip {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }

  .termin-actions .btn,
  .termin-actions .tiny-btn,
  .termin-comment .tiny-btn,
  .mobile-form-stepbar .wizard-step {
    min-height: 44px !important;
  }

  /* Genug Nachlauf, damit Inhalte nie hinter dem schwebenden Dock enden. */
  .content {
    padding-bottom: calc(132px + env(safe-area-inset-bottom)) !important;
  }
}

/* --- UI-Konzept 2026: sauberer Überblick für Mitglied / Trainer --- */
.v3-dashboard{display:grid;gap:20px;}
.v3-brand-hero{display:grid;grid-template-columns:minmax(0,1.15fr) auto;gap:18px;align-items:center;background:linear-gradient(135deg,#ffffff 0%,#f5faf4 52%,#eef6ee 100%);border:1px solid var(--app-line);border-radius:34px;padding:26px;box-shadow:var(--shadow2);position:relative;overflow:hidden;}
.v3-brand-hero:after{content:"";position:absolute;right:-70px;top:-70px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle at center,rgba(48,112,56,.12),rgba(48,112,56,0));}
.v3-overline{font-size:13px;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:var(--app-green2);margin-bottom:8px;}
.v3-brand-hero h2{margin:0;font-size:clamp(28px,4.6vw,52px);line-height:1.03;color:var(--app-green);}
.v3-brand-hero p{margin:10px 0 0;font-size:15px;line-height:1.6;color:var(--app-muted);max-width:720px;}
.v3-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;}
.v3-hero-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px;}
.v3-hero-badges span{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border-radius:999px;background:var(--surface);border:1px solid var(--app-line);font-size:12px;font-weight:900;color:var(--app-green);box-shadow:0 6px 16px rgba(17,63,34,.05);}
.v3-brand-mark{position:relative;z-index:1;width:124px;height:124px;border-radius:34px;background:var(--surface);border:1px solid var(--app-line);display:grid;place-items:center;box-shadow:var(--shadow);}
.v3-brand-mark img{max-width:86%;max-height:86%;object-fit:contain;}
.v3-overview-grid{display:grid;grid-template-columns:.78fr 1.05fr 1.12fr;gap:18px;align-items:start;}
.v3-pane{background:rgba(255,255,255,.95);border:1px solid var(--app-line);border-radius:30px;padding:18px;box-shadow:var(--shadow);min-width:0;}
.v3-pane h3{margin:0;color:var(--app-green);font-size:22px;line-height:1.1;}
.v3-pane-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px;}
.v3-pane-head p{margin:4px 0 0;font-size:13px;color:var(--app-muted);line-height:1.45;}
.v3-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;border:1px solid var(--app-line);background:#f8fbf7;font-size:12px;font-weight:900;color:var(--app-green);white-space:nowrap;}
.v3-member-header{display:flex;gap:12px;align-items:center;margin-bottom:14px;}
.v3-member-icon{width:52px;height:52px;border-radius:18px;background:linear-gradient(135deg,#1f6a36,#2f8b48);display:grid;place-items:center;color:#fff;font-size:24px;box-shadow:0 14px 28px rgba(31,106,54,.20);}
.v3-phone-card{background:linear-gradient(180deg,#ffffff 0%,#f4faf4 100%);border:1px solid var(--app-line);border-radius:30px;padding:14px;box-shadow:0 16px 34px rgba(15,63,34,.09);margin-bottom:14px;}
.v3-phone-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;}
.v3-phone-user{font-size:12px;color:var(--app-muted);}
.v3-phone-user strong{display:block;font-size:17px;color:var(--app-green);margin-bottom:2px;}
.v3-phone-bell{width:34px;height:34px;border-radius:12px;border:1px solid var(--app-line);background:var(--surface);display:grid;place-items:center;color:var(--app-green);}
.v3-phone-next{background:var(--surface);border:1px solid var(--app-line);border-radius:20px;padding:12px;}
.v3-phone-next .lbl,.v3-mini-panel .lbl,.v3-list-card .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:var(--app-muted);margin-bottom:6px;}
.v3-phone-next strong{display:block;color:var(--app-green);font-size:15px;margin-bottom:3px;}
.v3-phone-next span{display:block;color:var(--app-muted);font-size:12px;line-height:1.45;}
.v3-phone-map{height:84px;border-radius:16px;margin-top:10px;position:relative;overflow:hidden;border:1px solid rgba(34,84,45,.08);background:
  radial-gradient(circle at 18% 28%, rgba(124,166,117,.72) 0 18%, transparent 19%),
  radial-gradient(circle at 72% 34%, rgba(142,178,135,.58) 0 16%, transparent 17%),
  radial-gradient(circle at 36% 72%, rgba(172,193,171,.52) 0 20%, transparent 21%),
  linear-gradient(135deg,#c6d1c8 0%,#b9c8bc 45%,#cfd7d0 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55);
}
.v3-phone-map:before{content:"";position:absolute;inset:0;background:
  linear-gradient(90deg, transparent 0 11%, rgba(255,255,255,.28) 11% 13%, transparent 13% 26%, rgba(255,255,255,.18) 26% 27%, transparent 27% 100%),
  linear-gradient(180deg, transparent 0 38%, rgba(255,255,255,.26) 38% 40%, transparent 40% 69%, rgba(255,255,255,.16) 69% 70%, transparent 70% 100%);
  opacity:.9;
}
.v3-phone-map:after{content:"";position:absolute;left:16%;top:53%;width:56%;height:4px;border-radius:999px;background:#2f8bd8;transform:rotate(-12deg);box-shadow:36px -18px 0 #2f8bd8, 67px -12px 0 -1px rgba(47,139,216,.86), 53px -9px 0 8px rgba(47,139,216,.14);}
.v3-phone-map .map-pin,.v3-phone-map-pin{display:none;}
.v3-seg-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.v3-seg-row button{border:1px solid var(--app-line);background:var(--surface);border-radius:14px;padding:8px 11px;font-family:inherit;font-weight:800;color:var(--app-green);cursor:pointer;}
.v3-list-card{border:1px solid var(--app-line);background:var(--surface-2);border-radius:20px;padding:12px;}
.v3-task-list{display:grid;gap:8px;}
.v3-task-item{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:start;padding:8px 0;border-bottom:1px dashed rgba(163,186,164,.5);}
.v3-task-item:last-child{border-bottom:0;padding-bottom:0;}
.v3-task-bullet{width:28px;height:28px;border-radius:11px;background:#edf6ed;color:var(--app-green);display:grid;place-items:center;font-size:15px;}
.v3-task-item strong{display:block;color:var(--app-green);font-size:13px;}
.v3-task-item span{display:block;color:var(--app-muted);font-size:12px;line-height:1.4;}
.v3-link-list{display:grid;gap:10px;}
.v3-link-btn{width:100%;border:1px solid var(--app-line);background:var(--surface);border-radius:18px;padding:13px 14px;display:flex;align-items:center;gap:12px;font-family:inherit;cursor:pointer;text-align:left;color:inherit;}
.v3-link-btn .ico{width:40px;height:40px;border-radius:14px;background:#eef6ee;display:grid;place-items:center;color:var(--app-green);font-size:20px;flex:0 0 40px;}
.v3-link-btn strong{display:block;color:var(--app-green);font-size:14px;}
.v3-link-btn span{display:block;color:var(--app-muted);font-size:12px;line-height:1.35;margin-top:2px;}
.v3-center-grid,.v3-right-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.v3-mini-panel{background:var(--surface-2);border:1px solid var(--app-line);border-radius:22px;padding:14px;min-width:0;}
.v3-mini-panel h4{margin:0;color:var(--app-green);font-size:15px;line-height:1.25;}
.v3-mini-panel p{margin:2px 0 0;font-size:12px;color:var(--app-muted);line-height:1.45;}
.v3-list-rows{display:grid;gap:9px;margin-top:10px;}
.v3-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;min-width:0;}
.v3-row .dot{width:10px;height:10px;border-radius:50%;background:var(--app-green2);box-shadow:0 0 0 5px rgba(31,106,54,.12);}
.v3-row .avatar-stack{display:flex;align-items:center;}
.v3-row .avatar-stack span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#dfece0;color:var(--app-green);font-size:11px;font-weight:900;border:2px solid #fff;margin-left:-6px;}
.v3-row .avatar-stack span:first-child{margin-left:0;}
.v3-row strong{display:block;color:var(--app-green);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.v3-row small{display:block;color:var(--app-muted);font-size:11px;line-height:1.35;}
.v3-status{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:900;border:1px solid var(--app-line);background:var(--surface);white-space:nowrap;}
.v3-status.live{background:#eef7ee;color:#2f8b48;}
.v3-status.warn{background:#fff8e8;color:#9a6a00;}
.v3-status.dim{background:#f5f7f5;color:#6c7a6c;}
.v3-messages{display:grid;gap:10px;margin-top:10px;}
.v3-message{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;}
.v3-message .thumb{width:38px;height:38px;border-radius:14px;background:#edf6ed;color:var(--app-green);display:grid;place-items:center;font-size:18px;}
.v3-message strong{display:block;color:var(--app-green);font-size:13px;line-height:1.35;}
.v3-message span{display:block;font-size:11px;color:var(--app-muted);line-height:1.4;margin-top:2px;}
.v3-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-top:10px;}
.v3-calendar span{display:grid;place-items:center;aspect-ratio:1;border-radius:12px;font-size:11px;color:#526052;background:var(--surface);border:1px solid rgba(220,232,220,.8);}
.v3-calendar span.head{background:transparent;border:none;font-weight:900;color:var(--app-muted);aspect-ratio:auto;padding-bottom:4px;}
.v3-calendar span.today{background:var(--app-green);color:#fff;border-color:var(--app-green);font-weight:900;box-shadow:0 10px 20px rgba(31,106,54,.18);}
.v3-team-list{display:grid;gap:10px;margin-top:10px;}
.v3-team-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;}
.v3-team-row .team-ico{width:36px;height:36px;border-radius:14px;background:#eef6ee;display:grid;place-items:center;color:var(--app-green);font-size:18px;}
.v3-team-row strong{display:block;color:var(--app-green);font-size:13px;}
.v3-team-row small{display:block;color:var(--app-muted);font-size:11px;}
.v3-bar{width:100%;height:7px;border-radius:999px;background:#ebf1ea;overflow:hidden;margin-top:6px;}
.v3-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1f6a36,#4aa55d);}
.v3-doc-list{display:grid;gap:9px;margin-top:10px;}
.v3-doc{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;}
.v3-doc .doc-ico{width:34px;height:34px;border-radius:12px;background:#eef6ee;display:grid;place-items:center;color:var(--app-green);font-size:17px;}
.v3-doc strong{display:block;color:var(--app-green);font-size:13px;}
.v3-doc small{display:block;color:var(--app-muted);font-size:11px;line-height:1.35;}
.v3-doc .mini-btn{border:1px solid var(--app-line);background:var(--surface);border-radius:999px;padding:7px 10px;font-family:inherit;font-size:11px;font-weight:900;color:var(--app-green);cursor:pointer;}
.v3-note-list{display:grid;gap:9px;margin-top:10px;}
.v3-note{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:start;}
.v3-note .note-ico{width:28px;height:28px;border-radius:10px;background:#fff2ce;color:#a17200;display:grid;place-items:center;font-size:14px;}
.v3-note strong{display:block;color:var(--app-green);font-size:13px;}
.v3-note span{display:block;color:var(--app-muted);font-size:11px;line-height:1.4;margin-top:2px;}
.v3-feature-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.v3-feature{background:rgba(255,255,255,.94);border:1px solid var(--app-line);border-radius:22px;padding:14px;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;box-shadow:var(--shadow);}
.v3-feature .ico{width:44px;height:44px;border-radius:16px;background:#1f6a36;color:#fff;display:grid;place-items:center;font-size:20px;}
.v3-feature strong{display:block;color:var(--app-green);font-size:14px;}
.v3-feature span{display:block;color:var(--app-muted);font-size:12px;line-height:1.45;margin-top:3px;}
.v3-split-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;}

/* Fokussierter GPS-Modus: Das normale Portal bleibt im Hintergrund vollständig verborgen. */
body.immersive-live-active,body:has(.add-form.live-immersive){background:#08111b;overflow:hidden;}
body.immersive-live-active #mobile-nav-root,body:has(.add-form.live-immersive) #mobile-nav-root,
body.immersive-live-active #help-fab-root,body:has(.add-form.live-immersive) #help-fab-root,
body.immersive-live-active #action-sheet-root,body:has(.add-form.live-immersive) #action-sheet-root{display:none!important;}
.app.immersive-live-active,.app:has(.add-form.live-immersive){max-width:none;background:#08111b;}
.app.immersive-live-active .hdr,.app:has(.add-form.live-immersive) .hdr,
.app.immersive-live-active .app-main-nav,.app:has(.add-form.live-immersive) .app-main-nav{display:none!important;}
.app.immersive-live-active .content,.app:has(.add-form.live-immersive) .content{padding:0!important;background:#08111b;}
body.immersive-live-active .add-form.live-immersive,.app.immersive-live-active .add-form.live-immersive{padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;max-width:none!important;margin:0!important;}
body.immersive-live-active .training-wizard,body.immersive-live-active #form-basis,
body.immersive-live-active #form-bewertung,body.immersive-live-active #form-medien,
body.immersive-live-active .form-actions.live-sticky{display:none!important;}
body.immersive-live-active #form-details{margin:0!important;background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;}
body.immersive-live-active #form-details>summary{display:none!important;}
body.immersive-live-active #form-details>.form-section-body{padding:0!important;}
body.immersive-live-active .add-form.live-immersive .form-section{overflow:visible!important;}

/* Mini-Karte entfernt: keine künstlichen Linien mehr über/unter Logo */
.v3-phone-map{display:none!important;}
.v3-phone-map:before,.v3-phone-map:after{display:none!important;content:none!important;}
.v3-next-clean{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;}
.v3-next-clean span{display:inline-flex!important;align-items:center;gap:5px;width:auto!important;background:#f2f8f1;border:1px solid var(--app-line);border-radius:999px;padding:7px 9px;color:var(--app-green)!important;font-size:11px!important;font-weight:900;line-height:1.2!important;}



/* --- VdH Portal: vereinfachte Mitglieder-/Traineroberfläche --- */
.portal-dashboard{max-width:1180px;margin:0 auto;display:grid;gap:22px;}
.portal-gps-recovery{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 22px;border:1px solid color-mix(in srgb,var(--green) 48%,var(--app-line));border-radius:26px;background:linear-gradient(135deg,color-mix(in srgb,var(--green) 13%,var(--card)),var(--card));box-shadow:var(--shadow);}
.portal-gps-recovery h3{margin:3px 0 4px;font-size:20px}.portal-gps-recovery p{margin:0;color:var(--muted);font-size:13px}.portal-gps-recovery .portal-btn{flex:0 0 auto;}
.portal-hero{background:linear-gradient(135deg,#fff 0%,#f7fbf6 58%,#eff7ef 100%);border:1px solid var(--app-line);border-radius:34px;padding:28px;box-shadow:var(--shadow2);display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;overflow:hidden;position:relative;}
.portal-hero:after{content:"";position:absolute;right:-90px;top:-90px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(31,106,54,.13),rgba(31,106,54,0) 68%);}
.portal-eyebrow{font-size:13px;font-weight:950;text-transform:uppercase;letter-spacing:.12em;color:var(--app-green2);margin-bottom:8px;}
.portal-hero h2{margin:0;color:var(--app-green);font-size:clamp(30px,5vw,56px);line-height:1.02;letter-spacing:-.04em;}
.portal-hero p{margin:10px 0 0;color:var(--app-muted);font-size:16px;line-height:1.55;max-width:720px;}
.portal-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;}
.portal-hero-logo{position:relative;z-index:1;width:112px;height:112px;border-radius:32px;background:var(--surface);border:1px solid var(--app-line);display:grid;place-items:center;box-shadow:var(--shadow);}
.portal-hero-logo img{max-width:85%;max-height:85%;object-fit:contain;}
.portal-day-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}
.portal-card{background:var(--surface);border:1px solid var(--app-line);border-radius:30px;padding:20px;box-shadow:var(--shadow);min-width:0;display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden;}
.portal-card:before{content:"";position:absolute;left:0;top:0;right:0;height:5px;background:linear-gradient(90deg,var(--app-green),#5faa67);opacity:.9;}
.portal-card.soft:before{background:linear-gradient(90deg,#e2ae22,#f4cf5d)}
.portal-card h3{margin:0;color:var(--app-green);font-size:21px;line-height:1.1;letter-spacing:-.02em;}
.portal-card p{margin:0;color:var(--app-muted);font-size:13px;line-height:1.5;}
.portal-card-title{display:flex;align-items:flex-start;gap:12px;}
.portal-ico{width:48px;height:48px;border-radius:18px;background:#eef6ee;border:1px solid var(--app-line);display:grid;place-items:center;color:var(--app-green);font-size:23px;flex:0 0 48px;}
.portal-card strong.main{display:block;color:var(--app-green);font-size:19px;line-height:1.2;margin-top:2px;}
.portal-card .meta{display:block;color:var(--app-muted);font-size:13px;line-height:1.45;margin-top:6px;}
.portal-chip-row{display:flex;gap:8px;flex-wrap:wrap;}
.portal-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--app-line);color:var(--app-green);font-size:12px;font-weight:900;line-height:1.15;}
.portal-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:auto;}
.portal-btn{border:1px solid var(--app-line);background:var(--surface);color:var(--app-green);border-radius:999px;padding:10px 14px;font-family:inherit;font-weight:900;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;box-shadow:0 6px 15px rgba(17,63,34,.06);}
.portal-btn.primary{background:var(--app-green);border-color:var(--app-green);color:#fff;}
.portal-btn.gold{background:#f3c331;border-color:#f3c331;color:#1d2b1d;}
.portal-activity-list{display:grid;gap:9px;}
.portal-mini-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;min-width:0;border:1px solid var(--app-line);background:var(--surface-2);border-radius:18px;padding:10px;}
.portal-mini-row .dot{width:11px;height:11px;border-radius:50%;background:var(--app-green2);box-shadow:0 0 0 5px rgba(31,106,54,.12);}
.portal-mini-row strong{display:block;color:var(--app-green);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.portal-mini-row span{display:block;color:var(--app-muted);font-size:12px;line-height:1.35;}
.portal-status{white-space:nowrap;border-radius:999px;border:1px solid var(--app-line);background:var(--surface);padding:6px 9px;font-size:11px;font-weight:950;color:var(--app-green);}
.portal-trainer-strip{background:var(--surface);border:1px solid var(--app-line);border-radius:30px;padding:18px;box-shadow:var(--shadow);display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;}
.portal-trainer-strip h3{margin:0;color:var(--app-green);font-size:22px}.portal-trainer-strip p{margin:5px 0 0;color:var(--app-muted);font-size:13px;line-height:1.45}.portal-trainer-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end;}
.portal-profile-center{background:linear-gradient(135deg,#fff,#f7fbf7);border:1px solid var(--app-line);border-radius:28px;padding:16px;margin:0 0 16px;box-shadow:var(--shadow2);}
.portal-profile-center-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px;}
.portal-profile-center-head h4{margin:0;color:var(--app-green);font-size:21px;line-height:1.1}.portal-profile-center-head p{margin:5px 0 0;color:var(--app-muted);font-size:13px;line-height:1.45}.portal-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.portal-profile-tile{border:1px solid var(--app-line);background:var(--surface);border-radius:22px;padding:14px;display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:flex-start;text-align:left;font-family:inherit;cursor:pointer;color:inherit;box-shadow:0 8px 18px rgba(17,63,34,.05);min-width:0;}
.portal-profile-tile .ico{width:42px;height:42px;border-radius:16px;background:#eef6ee;display:grid;place-items:center;color:var(--app-green);font-size:21px;}
.portal-profile-tile strong{display:block;color:var(--app-green);font-size:14px;line-height:1.25;}.portal-profile-tile span{display:block;color:var(--app-muted);font-size:12px;line-height:1.35;margin-top:3px;}.portal-profile-tile:hover{border-color:var(--app-green2);background:var(--surface-2);}
@media(max-width:1180px){.portal-day-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.portal-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:760px){.portal-dashboard{gap:16px}.portal-gps-recovery{align-items:stretch;flex-direction:column;padding:17px;border-radius:24px}.portal-gps-recovery .portal-btn{width:100%;justify-content:center}.portal-hero{grid-template-columns:1fr;padding:22px;border-radius:28px}.portal-hero-logo{display:none}.portal-day-grid{grid-template-columns:1fr}.portal-card{border-radius:26px;padding:18px}.portal-trainer-strip{grid-template-columns:1fr;border-radius:26px}.portal-trainer-actions{justify-content:flex-start}.portal-profile-grid{grid-template-columns:1fr}.portal-profile-center{border-radius:24px}.portal-profile-center-head{display:block}.portal-actions .portal-btn{flex:1;justify-content:center}.portal-mini-row{grid-template-columns:auto 1fr}.portal-status{grid-column:2;justify-self:flex-start}}



/* ── MOBILE LAYOUT PATCH: Dock, Plus und Action-Sheet sauber fixieren ──
   Dieser Block steht bewusst spät im Stylesheet. Er überstimmt ältere
   mobile Regeln, die alle <span>-Elemente in der Bottom-Bar vergrößert
   haben und dadurch Texte abgeschnitten/überlappt haben. */
@media (max-width: 820px) {
  .app{padding-bottom:calc(96px + env(safe-area-inset-bottom))!important;}
  .content{padding-bottom:calc(118px + env(safe-area-inset-bottom))!important;}

  #mobile-nav-root .mobile-bottom-nav.app-dock{
    position:fixed!important;
    left:max(10px, env(safe-area-inset-left))!important;
    right:max(10px, env(safe-area-inset-right))!important;
    bottom:calc(10px + env(safe-area-inset-bottom))!important;
    width:auto!important;
    max-width:none!important;
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    align-items:end!important;
    gap:2px!important;
    padding:7px 6px!important;
    box-sizing:border-box!important;
    border-radius:24px!important;
    background:rgba(255,255,255,.95)!important;
    border:1px solid rgba(226,234,223,.95)!important;
    -webkit-backdrop-filter:blur(18px)!important;
    backdrop-filter:blur(18px)!important;
    box-shadow:0 18px 48px rgba(15,63,34,.22)!important;
    overflow:visible!important;
    z-index:3000!important;
  }

  #mobile-nav-root .mobile-bottom-nav.app-dock button{
    appearance:none!important;
    -webkit-appearance:none!important;
    min-width:0!important;
    width:100%!important;
    min-height:54px!important;
    height:54px!important;
    margin:0!important;
    padding:5px 2px!important;
    border:0!important;
    border-radius:18px!important;
    background:transparent!important;
    color:var(--app-muted)!important;
    box-shadow:none!important;
    transform:none!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:3px!important;
    overflow:hidden!important;
    font-size:0!important;
    line-height:1!important;
    white-space:nowrap!important;
  }

  #mobile-nav-root .mobile-bottom-nav.app-dock button.active:not(.nav-plus){
    background:var(--app-green3)!important;
    color:var(--app-green)!important;
  }

  #mobile-nav-root .mobile-bottom-nav.app-dock .nav-icon{
    width:24px!important;
    height:24px!important;
    min-width:24px!important;
    min-height:24px!important;
    display:grid!important;
    place-items:center!important;
    flex:0 0 auto!important;
    font-size:0!important;
    line-height:1!important;
    color:currentColor!important;
  }
  #mobile-nav-root .mobile-bottom-nav.app-dock .nav-icon .ui-icon{
    width:24px!important;
    height:24px!important;
    display:grid!important;
    place-items:center!important;
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    color:inherit!important;
  }
  #mobile-nav-root .mobile-bottom-nav.app-dock .nav-label{
    display:block!important;
    max-width:100%!important;
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:11px!important;
    line-height:1.05!important;
    letter-spacing:-.01em!important;
    font-weight:850!important;
  }

  #mobile-nav-root .mobile-bottom-nav.app-dock button.nav-plus{
    height:70px!important;
    min-height:70px!important;
    padding:0!important;
    border-radius:22px!important;
    overflow:visible!important;
    transform:translateY(-13px)!important;
    background:var(--app-green)!important;
    color:#1c2400!important;
    box-shadow:0 14px 34px rgba(15,63,34,.22)!important;
  }
  #mobile-nav-root .mobile-bottom-nav.app-dock button.nav-plus .nav-icon{
    width:58px!important;
    height:58px!important;
    min-width:58px!important;
    min-height:58px!important;
    border-radius:999px!important;
    background:var(--app-yellow)!important;
    border:5px solid #fff!important;
    box-shadow:0 10px 26px rgba(0,0,0,.20)!important;
    color:#1c2400!important;
  }
  #mobile-nav-root .mobile-bottom-nav.app-dock button.nav-plus .nav-icon .ui-icon{
    width:31px!important;
    height:31px!important;
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    color:inherit!important;
  }
  #mobile-nav-root .mobile-bottom-nav.app-dock button.nav-plus .nav-label{
    display:none!important;
  }

  #action-sheet-root .sheet-backdrop{
    z-index:3040!important;
  }
  #action-sheet-root .action-sheet{
    position:fixed!important;
    left:max(10px, env(safe-area-inset-left))!important;
    right:max(10px, env(safe-area-inset-right))!important;
    bottom:calc(96px + env(safe-area-inset-bottom))!important;
    width:auto!important;
    max-width:none!important;
    max-height:min(72vh,560px)!important;
    overflow:auto!important;
    box-sizing:border-box!important;
    z-index:3050!important;
    border-radius:28px!important;
    transform:translate3d(0,18px,0)!important;
  }
  #action-sheet-root .action-sheet.open{
    transform:translate3d(0,0,0)!important;
  }
  #action-sheet-root .action-sheet .sheet-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
}

@media (max-width: 520px) {
  .portal-hero{
    padding:22px!important;
    border-radius:28px!important;
  }
  .portal-hero h2{
    font-size:clamp(32px,10vw,44px)!important;
    line-height:1.06!important;
  }
  .portal-hero p{
    font-size:15px!important;
    line-height:1.55!important;
  }
  .portal-hero-actions.compact{
    display:grid!important;
    grid-template-columns:1fr!important;
    width:100%!important;
    gap:9px!important;
  }
  .portal-hero-actions.compact .portal-btn{
    width:100%!important;
    justify-content:center!important;
    min-height:52px!important;
  }
}

@media (max-width: 380px) {
  #mobile-nav-root .mobile-bottom-nav.app-dock{
    left:6px!important;
    right:6px!important;
    padding-left:4px!important;
    padding-right:4px!important;
  }
  #mobile-nav-root .mobile-bottom-nav.app-dock .nav-label{
    font-size:10px!important;
  }
  #mobile-nav-root .mobile-bottom-nav.app-dock .nav-icon,
  #mobile-nav-root .mobile-bottom-nav.app-dock .nav-icon .ui-icon{
    width:22px!important;
    height:22px!important;
  }
  #mobile-nav-root .mobile-bottom-nav.app-dock button.nav-plus .nav-icon{
    width:54px!important;
    height:54px!important;
    min-width:54px!important;
    min-height:54px!important;
  }
}


/* ── MOBILE-OVERLAY-REPARATUR: Portale wirklich über App-Inhalt legen ──
   Wichtig: Die Portal-Roots dürfen keinen gemeinsamen z-index:0-Stacking-Context
   bekommen. Sonst liegen Dashboard-Texte mit eigenem z-index über dem Bottom-Sheet. */
#mobile-nav-root{position:relative;z-index:8000;}
#action-sheet-root{position:relative;z-index:9000;}
#help-fab-root{position:relative;z-index:7900;}

@media (max-width:820px){
  body.action-sheet-open{overflow:hidden;overscroll-behavior:none;}
  body.action-sheet-open .content{pointer-events:none;}
  body.action-sheet-open #action-sheet-root,
  body.action-sheet-open #action-sheet-root *{pointer-events:auto;}
  #action-sheet-root .sheet-backdrop{
    position:fixed!important;
    inset:0!important;
    z-index:1!important;
    background:rgba(8,24,12,.34)!important;
    -webkit-backdrop-filter:blur(3px)!important;
    backdrop-filter:blur(3px)!important;
  }
  #action-sheet-root .action-sheet{
    position:fixed!important;
    z-index:2!important;
    left:max(10px,env(safe-area-inset-left))!important;
    right:max(10px,env(safe-area-inset-right))!important;
    bottom:calc(96px + env(safe-area-inset-bottom))!important;
    width:auto!important;
    max-width:none!important;
    max-height:min(72svh,560px)!important;
    overflow:auto!important;
    box-sizing:border-box!important;
    border-radius:28px!important;
    background:var(--surface)!important;
    box-shadow:0 24px 80px rgba(0,0,0,.30)!important;
    transform:translate3d(0,18px,0)!important;
    isolation:isolate!important;
  }
  #action-sheet-root .action-sheet.open{transform:translate3d(0,0,0)!important;}
  #action-sheet-root .action-sheet .sheet-head,
  #action-sheet-root .action-sheet .sheet-actions,
  #action-sheet-root .action-sheet .sheet-handle{position:relative;z-index:1;}
  #action-sheet-root .action-sheet .sheet-actions{grid-template-columns:1fr!important;}
  #mobile-nav-root .mobile-bottom-nav.app-dock{z-index:8000!important;}
}

/* ============================================================================
   PROFI-DESIGN-SCHICHT (konsolidiert) — letzte CSS-Ebene.
   Vereinheitlicht Farben, Typografie, Abstände, Radien und Schatten zu einem
   ruhigen, professionellen System. Es werden bewusst NUR visuelle
   Eigenschaften gesetzt (Farbe, Hintergrund, Rahmen, Schatten, Radius,
   Typografie). Position/Layout/Overflow/Z-Index/Overlays bleiben unangetastet,
   damit die Mobil- und Live-Ansichten stabil bleiben.
   ========================================================================== */
:root{
  /* Eine einheitliche, ruhige Vereinspalette (Grün + dezentes Gold) */
  --g1:#1d4d2b; --g2:#296b3d; --g3:#34814b; --g4:#eaf3ec; --g5:#f4f8f4;
  --gold:#c0902f; --gold2:#e6cf94;
  --red:#bb3a2d; --red2:#fbeceb;
  --blue:#2563a8; --blue2:#e9f1fb;
  --amber:#a9710f; --amber2:#fdf4e3;
  --border:#dde6dd; --border2:#e8efe8;
  --text:#1b2620; --muted:#5d6f60; --muted2:#8aa08c;
  --white:#fff; --bg:#f5f7f3;
  --radius:12px; --radius2:16px;
  --shadow:0 1px 2px rgba(18,42,24,.05), 0 6px 18px rgba(18,42,24,.06);
  --shadow2:0 10px 30px rgba(18,42,24,.09);
  --shadow3:0 20px 48px rgba(18,42,24,.12);
  --soft-surface:#fff;
  --surface:#fff; --surface-2:#f6faf5;
  /* App-Tokens sind jetzt Aliasse der Kern-Tokens — eine Quelle der Wahrheit.
     Folgen automatisch dem Dark-Mode-Override der Kern-Tokens. */
  --app-bg:var(--bg); --app-surface:var(--surface); --app-line:var(--border);
  --app-ink:var(--text); --app-muted:var(--muted);
  --app-green:var(--g1); --app-green2:var(--g2); --app-green3:var(--g4);
  --app-yellow:var(--gold); --app-radius:var(--radius2);
}

/* Ruhiger, flacher Hintergrund statt mehrfacher Verläufe */
body{ background:var(--bg)!important; color:var(--text); -webkit-font-smoothing:antialiased; }

/* Kopfzeile: ein klares, flaches Vereinsgrün */
.hdr{ background:var(--g1)!important; backdrop-filter:none!important;
  box-shadow:0 1px 0 rgba(0,0,0,.04)!important; border-bottom:3px solid var(--gold)!important; }
.hdr-info h1{ font-weight:700; letter-spacing:.01em; }
.hdr-info p{ font-style:normal; opacity:.8; }
.hdr-btn{ background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); border-radius:999px; }
.hdr-btn:hover{ background:rgba(255,255,255,.22); }
.hdr-btn.admin{ background:rgba(192,144,47,.30); border-color:var(--gold2); }
.hdr-icon-btn{ border-radius:999px; border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.12); }

/* Karten: weiß, ein feiner Rahmen, ein dezenter Schatten — keine Verläufe */
.card,.v4-card,.sess-card,.accordion-card,.module-card,.app-action-card,
.quick-card,.app-today-card,.status-pill,.sport-head-card{
  background:var(--white)!important; border:1px solid var(--border)!important;
  border-radius:var(--radius2)!important; box-shadow:var(--shadow)!important;
}
.card-head,.accordion-card>summary{ background:var(--white)!important; border-bottom:1px solid var(--border2)!important; }
.card-head h3{ color:var(--g1); }

/* Primär-/Sekundär-Buttons konsistent */
.btn-g,.v4-btn.primary,.sheet-action.primary{ background:var(--g2)!important; color:#fff!important; border-color:var(--g2)!important; }
.btn-g:hover,.v4-btn.primary:hover{ background:var(--g3)!important; }
.v4-btn.gold{ background:var(--gold)!important; color:#231a05!important; border-color:var(--gold)!important; }
.btn,.v4-btn{ border-radius:var(--radius); font-weight:700; }
.btn-o,.v4-btn:not(.primary):not(.gold){ background:var(--surface)!important; border:1px solid var(--border)!important; color:var(--g1)!important; }
.btn-o:hover,.v4-btn:not(.primary):not(.gold):hover{ border-color:var(--g3)!important; color:var(--g2)!important; }

/* Formularfelder einheitlich */
.fld input,.fld select,.fld textarea,.frow input,.frow select,.frow textarea{
  border:1px solid var(--border); border-radius:var(--radius); }
.fld input:focus,.fld select:focus,.fld textarea:focus{
  border-color:var(--g2); box-shadow:0 0 0 3px rgba(41,107,61,.14); }
.fld label{ color:var(--muted); letter-spacing:.06em; }

/* Navigation: ruhige, klare Flächen (nur Farben/Radius, keine Position) */
.app-main-nav{ background:var(--surface)!important; border:1px solid var(--border)!important; box-shadow:var(--shadow)!important; }
.app-main-nav .app-nav-tab.active{ color:var(--g1); }
.mobile-bottom-nav,.mobile-bottom-nav.app-dock,
#mobile-nav-root .mobile-bottom-nav.app-dock{ background:rgba(255,255,255,.96)!important; border:1px solid var(--border)!important; }

/* Schnellstart-Sheet & Hero ruhiger */
.action-sheet,.quick-action-sheet,.v4-hero{ background:var(--surface)!important; }
.v4-hero{ border:1px solid var(--border)!important; box-shadow:var(--shadow)!important; }
.v4-eyebrow{ color:var(--g2); }
.v4-chip,.v4-status{ background:var(--g4)!important; color:var(--g1)!important; border-color:var(--border)!important; }

/* Akzent-/Statusfarben einheitlich */
.err{ background:var(--red2); color:var(--red); }
.ok-msg{ background:var(--g4); color:var(--g1); }

/* ---- Theme-Umschalter (Login) ---- */
.theme-switch{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;margin:10px 0 0}
.theme-btn{border:1px solid var(--border);background:var(--surface);color:var(--g1);border-radius:999px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:900;cursor:pointer;min-height:34px;display:inline-flex;align-items:center;gap:6px;transition:.15s}
.theme-btn:hover{border-color:var(--g2);transform:translateY(-1px)}
.theme-btn.active{background:var(--g2);border-color:var(--g2);color:#fff;box-shadow:0 6px 18px rgba(30,77,30,.16)}

/* ============================================================================
   DARK MODE — wird über <html data-theme="dark"> aktiviert.
   Setzt die Design-Tokens auf dunkle Werte und korrigiert die wenigen
   Flächen, die fest helle Farben verwenden. Position/Layout bleibt unberührt.
   ========================================================================== */
html[data-theme="dark"]{
  --bg:#0e1512; --white:#16201a; --soft-surface:#16201a;
  --text:#e6efe8; --muted:#9fb6a6; --muted2:#7f9686;
  --border:#26352c; --border2:#1f2c25;
  --g4:#16271b; --g5:#13201a;
  --g2:#2f8b4e; --g3:#39a25d;
  --gold:#d8b35a; --gold2:#e6cf94;
  --red2:#3a1f1c; --blue2:#152334; --amber2:#33270f;
  /* --app-* sind Aliasse der Kern-Tokens und flippen automatisch mit */
  --shadow:0 1px 2px rgba(0,0,0,.45), 0 6px 18px rgba(0,0,0,.45);
  --shadow2:0 12px 32px rgba(0,0,0,.5); --shadow3:0 22px 50px rgba(0,0,0,.55);
  --surface:#16201a; --surface-2:#13201a;
  color-scheme:dark;
}
html[data-theme="dark"] body{ background:var(--bg)!important; color:var(--text); }

/* Kopfzeile + Navigation dunkel */
html[data-theme="dark"] .hdr{ background:#11271b!important; border-bottom-color:var(--gold)!important; }
html[data-theme="dark"] .app-main-nav{ background:#16201a!important; border-color:var(--border)!important; }
html[data-theme="dark"] .mobile-bottom-nav,
html[data-theme="dark"] .mobile-bottom-nav.app-dock,
html[data-theme="dark"] #mobile-nav-root .mobile-bottom-nav.app-dock{ background:rgba(18,28,22,.97)!important; border-color:var(--border)!important; }
html[data-theme="dark"] .mobile-bottom-nav button{ color:var(--muted); }
html[data-theme="dark"] .mobile-bottom-nav button.active:not(.nav-plus){ color:var(--text); }
html[data-theme="dark"] .hdr-icon-btn{background:rgba(255,255,255,.08)!important;border-color:rgba(230,207,148,.20)!important;color:#e6efe8!important;}
html[data-theme="dark"] .hdr-icon-btn.logout{background:linear-gradient(135deg,rgba(230,207,148,.16),rgba(255,255,255,.06))!important;border-color:rgba(230,207,148,.28)!important;box-shadow:0 8px 22px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.08)!important;}
html[data-theme="dark"] .hdr-icon-btn.logout .ui-icon{color:#f1c89f!important;}
html[data-theme="dark"] .hdr-icon-btn.logout .power-glyph{color:#f1c89f!important;}
html[data-theme="dark"] .hdr-icon-btn.logout:hover{background:linear-gradient(135deg,rgba(230,207,148,.24),rgba(255,255,255,.10))!important;border-color:rgba(230,207,148,.42)!important;}

/* Karten, Hero, Sheets, Modale dunkel */
html[data-theme="dark"] .card,html[data-theme="dark"] .v4-card,html[data-theme="dark"] .sess-card,
html[data-theme="dark"] .accordion-card,html[data-theme="dark"] .module-card,html[data-theme="dark"] .app-action-card,
html[data-theme="dark"] .quick-card,html[data-theme="dark"] .app-today-card,html[data-theme="dark"] .status-pill,
html[data-theme="dark"] .sport-head-card,html[data-theme="dark"] .v4-hero,
html[data-theme="dark"] .action-sheet,html[data-theme="dark"] .quick-action-sheet,
html[data-theme="dark"] .modal,html[data-theme="dark"] .modal-body,html[data-theme="dark"] .sheet-action,
html[data-theme="dark"] .portal-profile-tile,html[data-theme="dark"] .empty{
  background:#16201a!important; border-color:var(--border)!important; color:var(--text);
}
html[data-theme="dark"] .card-head,html[data-theme="dark"] .accordion-card>summary,
html[data-theme="dark"] .modal-head{ background:#18241d!important; border-bottom-color:var(--border)!important; }
html[data-theme="dark"] .card-head h3,html[data-theme="dark"] .login-logo-box h2,
html[data-theme="dark"] .v4-eyebrow,html[data-theme="dark"] h1,html[data-theme="dark"] h2,
html[data-theme="dark"] h3,html[data-theme="dark"] h4{ color:#cfead6; }
html[data-theme="dark"] .v4-chip,html[data-theme="dark"] .v4-status{ background:#16271b!important; color:#cfead6!important; border-color:var(--border)!important; }

/* Formularfelder dunkel */
html[data-theme="dark"] .fld input,html[data-theme="dark"] .fld select,html[data-theme="dark"] .fld textarea,
html[data-theme="dark"] .frow input,html[data-theme="dark"] .frow select,html[data-theme="dark"] .frow textarea,
html[data-theme="dark"] input[type="text"],html[data-theme="dark"] input[type="email"],
html[data-theme="dark"] input[type="password"],html[data-theme="dark"] input[type="number"],
html[data-theme="dark"] input[type="date"],html[data-theme="dark"] input[type="search"],
html[data-theme="dark"] textarea,html[data-theme="dark"] select{
  background:#0f1813!important; color:var(--text)!important; border-color:var(--border)!important;
}
html[data-theme="dark"] input::placeholder,html[data-theme="dark"] textarea::placeholder{ color:var(--muted2); }

/* Sekundär-/Outline-Buttons + Umschalter dunkel */
html[data-theme="dark"] .btn-o,
html[data-theme="dark"] .v4-btn:not(.primary):not(.gold),
html[data-theme="dark"] .theme-btn,html[data-theme="dark"] .lang-btn,
html[data-theme="dark"] .tiny-btn{ background:#16201a!important; color:#cfead6!important; border-color:var(--border)!important; }
html[data-theme="dark"] .theme-btn.active,html[data-theme="dark"] .lang-btn.active{ background:var(--g2)!important; color:#fff!important; border-color:var(--g2)!important; }

/* Tabellen (Adminbereich) dunkel */
html[data-theme="dark"] table,html[data-theme="dark"] th,html[data-theme="dark"] td{ color:var(--text); border-color:var(--border)!important; }
html[data-theme="dark"] thead th,html[data-theme="dark"] tr:nth-child(even) td{ background:#13201a!important; }

/* Statushinweise dunkel lesbar */
html[data-theme="dark"] .err{ background:#3a1f1c!important; color:#f3b6ae!important; }
html[data-theme="dark"] .ok-msg{ background:#16271b!important; color:#bfe3c8!important; }
html[data-theme="dark"] .link-btn{ color:#7fd29a; }

/* ---- Nachzügler: fest helle Panels/Karten/Badges im Dark Mode ---- */
html[data-theme="dark"] .trainer-hero,
html[data-theme="dark"] .admin-polish-panel,
html[data-theme="dark"] .profile-summary-panel,
html[data-theme="dark"] .live-polish-panel,
html[data-theme="dark"] .profile-quick-panel,
html[data-theme="dark"] .my-trainings-hero{
  background:linear-gradient(135deg,#18241d,#141e18)!important; border-color:var(--border)!important;
}
html[data-theme="dark"] .push-card,
html[data-theme="dark"] .notification-item,
html[data-theme="dark"] .profile-quick-card,
html[data-theme="dark"] .profile-homework-item,
html[data-theme="dark"] .my-training-card,
html[data-theme="dark"] .admin-polish-card,
html[data-theme="dark"] .micro-polish-card,
html[data-theme="dark"] .training-filter-chip,
html[data-theme="dark"] .profile-calendar-teaser,
html[data-theme="dark"] .profile-sport-panel,
html[data-theme="dark"] .profile-stat,
html[data-theme="dark"] .v3-hero-badges span{
  background:#16201a!important; border-color:var(--border)!important; color:var(--text)!important;
}
html[data-theme="dark"] .push-card.unsupported{ background:#13201a!important; }
html[data-theme="dark"] .admin-menu{ background:rgba(18,28,22,.9)!important; border-color:var(--border)!important; }
html[data-theme="dark"] .my-training-search input{ background:#0f1813!important; color:var(--text)!important; border-color:var(--border)!important; }

/* Innere Mini-Flächen */
html[data-theme="dark"] .push-card .push-ico{ background:#13243a!important; border-color:#27456b!important; color:#9cc4f5!important; }
html[data-theme="dark"] .push-card .push-state,
html[data-theme="dark"] .pq-mini,
html[data-theme="dark"] .my-training-note{ background:#13201a!important; border-color:var(--border)!important; color:var(--text)!important; }
html[data-theme="dark"] .sport-pill{ background:#152334!important; color:#9cc4f5!important; }

/* Titeltexte in diesen Karten (sonst dunkelgrün auf dunkel) */
html[data-theme="dark"] .trainer-hero h3,
html[data-theme="dark"] .admin-polish-panel h3,
html[data-theme="dark"] .profile-summary-panel h3,
html[data-theme="dark"] .profile-quick-head h4,
html[data-theme="dark"] .profile-quick-card strong,
html[data-theme="dark"] .profile-quick-card .pq-count,
html[data-theme="dark"] .admin-polish-card strong,
html[data-theme="dark"] .push-card strong,
html[data-theme="dark"] .notification-item strong,
html[data-theme="dark"] .profile-homework-item strong,
html[data-theme="dark"] .my-trainings-hero h3,
html[data-theme="dark"] .my-training-title,
html[data-theme="dark"] .micro-polish-card strong,
html[data-theme="dark"] .profile-stat strong,
html[data-theme="dark"] .v3-hero-badges span,
html[data-theme="dark"] .training-filter-chip{ color:#cfead6!important; }
html[data-theme="dark"] .admin-polish-card .state-ok{ color:#7fd29a!important; }
html[data-theme="dark"] .training-filter-chip.active{ background:var(--g2)!important; border-color:var(--g2)!important; color:#fff!important; }

/* ---- Dashboard (portal-*) im Dark Mode ---- */
html[data-theme="dark"] .portal-hero{
  background:linear-gradient(135deg,#18241d 0%,#142019 58%,#11241a 100%)!important;
  border-color:var(--border)!important;
}
html[data-theme="dark"] .portal-eyebrow{ color:#7fd29a!important; }
html[data-theme="dark"] .portal-hero h2{ color:#dcefe1!important; }
html[data-theme="dark"] .portal-card,
html[data-theme="dark"] .portal-card.soft,
html[data-theme="dark"] .portal-trainer-strip{
  background:#16201a!important; border-color:var(--border)!important;
}
html[data-theme="dark"] .portal-card h3,
html[data-theme="dark"] .portal-card strong.main,
html[data-theme="dark"] .portal-trainer-strip h3,
html[data-theme="dark"] .portal-mini-row strong{ color:#dcefe1!important; }
html[data-theme="dark"] .portal-ico{ background:#16271b!important; border-color:var(--border)!important; color:#9ed8ad!important; }
html[data-theme="dark"] .portal-chip{ background:#16271b!important; border-color:var(--border)!important; color:#bfe3c8!important; }
html[data-theme="dark"] .portal-mini-row{ background:#13201a!important; border-color:var(--border)!important; }
html[data-theme="dark"] .portal-status{ background:#13201a!important; border-color:var(--border)!important; color:#bfe3c8!important; }
html[data-theme="dark"] .portal-btn{ background:#16201a!important; border-color:var(--border)!important; color:#cfead6!important; }
html[data-theme="dark"] .portal-btn.primary{ background:var(--g2)!important; border-color:var(--g2)!important; color:#fff!important; }
html[data-theme="dark"] .portal-btn.gold{ background:var(--gold)!important; border-color:var(--gold)!important; color:#1d2b1d!important; }
html[data-theme="dark"] .portal-hero-logo{ background:#f3f6f2!important; border-color:var(--border)!important; }

/* ---- Restliche Verlaufs-Panels (Kalender, Trainingseintrag, Team, Leerzustände, Offline) ---- */
html[data-theme="dark"] .context-help,
html[data-theme="dark"] .edit-mode-banner,
html[data-theme="dark"] .empty-state,
html[data-theme="dark"] .nudge-card,
html[data-theme="dark"] .offline-banner,
html[data-theme="dark"] .offline-card,
html[data-theme="dark"] .portal-profile-center,
html[data-theme="dark"] .sport-head-card,
html[data-theme="dark"] .team-dept-panel,
html[data-theme="dark"] .termin-kachel,
html[data-theme="dark"] .termine-hero,
html[data-theme="dark"] .training-wizard{
  background:linear-gradient(135deg,#18241d,#141e18)!important;
  border-color:var(--border)!important; color:var(--text);
}
html[data-theme="dark"] .context-help h3,html[data-theme="dark"] .empty-state h3,
html[data-theme="dark"] .termine-hero h3,html[data-theme="dark"] .sport-head-card h3,
html[data-theme="dark"] .team-dept-panel h3,html[data-theme="dark"] .training-wizard h3,
html[data-theme="dark"] .nudge-card strong,html[data-theme="dark"] .termin-kachel strong{ color:#dcefe1!important; }

/* Gemeinsame mobile Grundgestaltung */
@media (max-width:820px){
  /* Die Safe-Area oben gehört ausschließlich zum Header. So wird sie weder
     doppelt berechnet noch von der 100dvh-Apphöhe abgeschnitten. */
  body{padding-top:0!important;}
  .app{padding-bottom:calc(124px + env(safe-area-inset-bottom))!important;}
  .content{padding:12px max(12px,env(safe-area-inset-right)) calc(154px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))!important;}
  /* Der Header liegt in installierten iOS-PWAs unter der Statusleiste.
     Die Safe-Area wird deshalb direkt am Header reserviert. */
  .hdr{border-radius:0 0 18px 18px!important;min-height:calc(58px + var(--app-safe-top))!important;padding-top:calc(8px + var(--app-safe-top))!important;padding-bottom:8px!important;}
  .hdr-logo{height:32px!important;max-width:44px!important;}
  .hdr-info p{display:none!important;}
  .hdr-icon-btn{width:40px!important;min-width:40px!important;height:40px!important;padding:0!important;border-radius:999px!important;background:rgba(255,255,255,.12)!important;box-shadow:none!important;}
  .hdr-icon-btn.logout{background:rgba(255,255,255,.12)!important;border-color:rgba(255,255,255,.24)!important;}
  .hdr-icon-btn.logout .power-glyph{font-size:23px!important;}

  .portal-dashboard{gap:12px!important;}
  .portal-hero{padding:16px!important;border-radius:22px!important;box-shadow:var(--shadow)!important;}
  .portal-hero:after{width:150px!important;height:150px!important;right:-64px!important;top:-64px!important;}
  .portal-eyebrow{font-size:11px!important;margin-bottom:5px!important;letter-spacing:.10em!important;}
  .portal-hero h2{font-size:clamp(25px,8vw,32px)!important;letter-spacing:-.03em!important;line-height:1.06!important;}
  .portal-hero p{font-size:13px!important;line-height:1.42!important;margin-top:7px!important;}
  .portal-hero-actions.compact{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;width:100%!important;margin-top:13px!important;}
  .portal-hero-actions.compact .portal-btn{width:100%!important;min-height:46px!important;justify-content:center!important;padding:10px 8px!important;}

  .portal-day-grid{gap:10px!important;}
  .portal-card,.portal-trainer-strip,.profile-quick-panel,.profile-sport-panel,.my-training-card,.termin-card,.termine-hero,.my-trainings-hero{border-radius:20px!important;box-shadow:var(--shadow)!important;}
  .portal-card{padding:14px!important;gap:10px!important;}
  .portal-card:before{height:3px!important;}
  .portal-ico{width:38px!important;height:38px!important;border-radius:14px!important;font-size:19px!important;flex-basis:38px!important;}
  .portal-card h3{font-size:16px!important;}
  .portal-card strong.main{font-size:15px!important;}
  .portal-card .meta,.portal-chip,.portal-mini-row span{font-size:12px!important;}
  .portal-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;}
  .portal-actions .portal-btn{width:100%!important;justify-content:center!important;min-height:44px!important;}
  .portal-card.soft .portal-actions{grid-template-columns:1fr 1fr!important;}
  .portal-trainer-strip{padding:14px!important;gap:10px!important;}
  .portal-trainer-strip h3{font-size:17px!important;}
  .portal-trainer-strip p{font-size:12px!important;}
  .portal-trainer-actions{display:grid!important;grid-template-columns:1fr!important;width:100%!important;}
  .portal-trainer-actions .portal-btn{justify-content:center!important;min-height:44px!important;}

  #action-sheet-root .action-sheet{border-radius:24px!important;bottom:calc(94px + env(safe-area-inset-bottom))!important;padding:12px!important;}
  #action-sheet-root .action-sheet .sheet-head{padding:4px 4px 8px!important;}
  #action-sheet-root .action-sheet .sheet-head strong{font-size:18px!important;}
  #action-sheet-root .sheet-actions{gap:8px!important;}
  .sheet-section-label{font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);padding:4px 4px 0;margin-top:4px;}
  .sheet-section-label:first-child{margin-top:0;}
  #action-sheet-root .sheet-action{border-radius:18px!important;min-height:62px!important;padding:11px 12px!important;}
  #action-sheet-root .sheet-action .sheet-ico{width:36px!important;height:36px!important;border-radius:14px!important;background:var(--g4)!important;display:grid!important;place-items:center!important;color:var(--g1)!important;}
  #action-sheet-root .sheet-action.primary .sheet-ico{background:rgba(255,255,255,.16)!important;color:#fff!important;}

  .my-trainings-hero,.termine-hero{padding:14px!important;gap:10px!important;}
  .my-trainings-hero h3,.termine-hero h3{font-size:20px!important;}
  .my-training-search,.termin-filter-row{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;}
  .my-training-card{padding:14px!important;margin-bottom:10px!important;}
  .my-training-head{gap:8px!important;}
  .my-training-title{font-size:16px!important;line-height:1.2!important;}
  .my-training-meta{font-size:12px!important;line-height:1.35!important;}
  .my-training-card .sess-fotos{display:none!important;}
  .rating-stars{font-size:12px!important;white-space:nowrap;}

  .modal-overlay{align-items:stretch!important;justify-content:center!important;padding:0!important;background:rgba(8,24,12,.42)!important;z-index:12000!important;}
  #modal-container{position:relative!important;z-index:12000!important;}
  body:has(#modal-container .modal-overlay){overflow:hidden!important;}
  body:has(#modal-container .modal-overlay) #mobile-nav-root,
  body:has(#modal-container .modal-overlay) #help-fab-root{display:none!important;}
  .modal{width:100%!important;max-width:none!important;max-height:100svh!important;height:100svh!important;border-radius:0!important;display:flex!important;flex-direction:column!important;}
  .modal-head{border-radius:0!important;min-height:58px!important;flex:0 0 auto!important;}
  .modal-body{flex:1 1 auto!important;overflow:auto!important;padding:14px 14px calc(34px + env(safe-area-inset-bottom))!important;}
  /* iPhone-PWA: Modale berücksichtigen die Statusleiste; Android bleibt unverändert. */
  .ios-device.pwa-standalone .modal-head{padding-top:calc(14px + var(--app-safe-top))!important;min-height:calc(58px + var(--app-safe-top))!important;align-items:flex-end!important;padding-bottom:13px!important;}
  .android-device.pwa-standalone .modal-head{padding-top:14px!important;min-height:58px!important;align-items:center!important;}
  .ios-device.pwa-standalone .modal-close{align-self:flex-end!important;margin-bottom:-2px!important;}
  /* Rückmeldungen zur Push-Aktivierung bleiben über dem Profil sichtbar. */
  body:has(#modal-container .modal-overlay) .busy-overlay{z-index:13050!important;}
  body:has(#modal-container .modal-overlay) .toast-stack{z-index:13100!important;}
  .profil-modal{max-width:none!important;}
}
@media (max-width:380px){
  .portal-hero-actions.compact{grid-template-columns:1fr!important;}
}
html[data-theme="dark"] .portal-card,
html[data-theme="dark"] .portal-trainer-strip,
html[data-theme="dark"] .portal-hero{background:#16201a!important;border-color:var(--border)!important;color:var(--text)!important;}
html[data-theme="dark"] .portal-ico,
html[data-theme="dark"] #action-sheet-root .sheet-action .sheet-ico{background:#13201a!important;color:#cfead6!important;border-color:var(--border)!important;}
html[data-theme="dark"] #mobile-nav-root .mobile-bottom-nav.app-dock button.active:not(.nav-plus){background:#203526!important;color:#d8f3df!important;}

/* Einheitliche mobile Navigation, Karten, Trainings- und Kalenderflächen */
@media (max-width:820px){
  .mobile-card-system{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;}
  .mobile-card-system .quick-card{display:none!important;}
  .portal-card.next-card{border-top-color:var(--g2)!important;}
  .portal-card.task-card,.portal-card.activity-card{padding:12px!important;}
  .portal-card.task-card .portal-card-title,.portal-card.activity-card .portal-card-title{align-items:center!important;}
  .portal-card.task-card .portal-actions,.portal-card.activity-card .portal-actions{margin-top:8px!important;}
  .trainer-compact{display:grid!important;grid-template-columns:1fr!important;margin-top:2px!important;padding:12px 14px!important;background:linear-gradient(135deg,#fff,#f8fbf8)!important;color:var(--g1)!important;border:1px solid var(--border)!important;}
  .trainer-compact h3{font-size:16px!important;margin-bottom:3px!important;}
  .trainer-compact p{font-size:12px!important;line-height:1.35!important;color:var(--muted)!important;}
  .trainer-compact .portal-trainer-actions{grid-template-columns:1fr 1fr!important;gap:8px!important;}
  .trainer-compact .portal-btn{min-height:46px!important;border-radius:999px!important;}

  .training-filter-chips{display:flex!important;gap:8px!important;overflow-x:auto!important;padding:0 0 4px!important;margin:0 0 10px!important;scroll-snap-type:x proximity;}
  .training-filter-chip{flex:0 0 auto!important;scroll-snap-align:start;min-height:38px!important;border-radius:999px!important;padding:8px 12px!important;}
  .training-media-strip{display:flex!important;gap:6px!important;overflow-x:auto!important;white-space:nowrap!important;margin:10px 0!important;}
  .training-media-strip span{flex:0 0 auto!important;border-radius:999px!important;background:var(--g5)!important;border:1px solid var(--border)!important;padding:6px 9px!important;font-size:11px!important;color:var(--muted)!important;}
  .status-label{display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:999px!important;background:var(--gold2)!important;color:#352505!important;border:1px solid rgba(183,134,45,.28)!important;padding:5px 8px!important;font-size:12px!important;}
  .training-card-more{margin:8px 0!important;border:1px solid var(--border)!important;border-radius:16px!important;background:var(--surface)!important;overflow:hidden!important;}
  .training-card-more summary,.termin-admin-actions summary,.termin-participants summary{list-style:none!important;cursor:pointer!important;font-weight:900!important;color:var(--g1)!important;padding:10px 12px!important;border-radius:16px!important;}
  .training-card-more summary::-webkit-details-marker,.termin-admin-actions summary::-webkit-details-marker,.termin-participants summary::-webkit-details-marker{display:none!important;}
  .training-card-more[open] summary,.termin-admin-actions[open] summary,.termin-participants[open] summary{border-bottom:1px solid var(--border)!important;border-radius:16px 16px 0 0!important;background:var(--g5)!important;}
  .training-card-more .tag-row,.training-card-more .my-training-note-grid,.training-card-more .my-training-preview-videos{padding:10px 12px!important;}
  .my-training-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;margin-top:10px!important;}
  .my-training-actions button{width:100%!important;justify-content:center!important;border-radius:999px!important;min-height:42px!important;}
  .my-training-actions .act-btn:first-child{background:var(--g2)!important;color:#fff!important;border-color:var(--g2)!important;}

  .termine-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;width:100%!important;}
  .termine-actions .btn,.termine-actions .tiny-btn{width:100%!important;justify-content:center!important;min-height:46px!important;border-radius:999px!important;}
  .termin-kachel{border-radius:20px!important;padding:12px!important;margin:0 0 10px!important;}
  .termin-card{padding:14px!important;border-radius:20px!important;}
  .termin-head{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;}
  .termin-timebox{display:flex!important;align-items:center!important;justify-content:space-between!important;width:100%!important;border-radius:16px!important;padding:10px 12px!important;}
  .termin-counts{display:flex!important;overflow-x:auto!important;gap:6px!important;white-space:nowrap!important;}
  .termin-count{flex:0 0 auto!important;border-radius:999px!important;}
  .termin-rsvp{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;}
  .termin-rsvp button,.termin-comment button{min-height:42px!important;border-radius:999px!important;}
  .termin-comment{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;}
  .termin-participants,.termin-admin-actions{margin-top:8px!important;border:1px solid var(--border)!important;border-radius:16px!important;background:var(--surface)!important;overflow:hidden!important;}
  .termin-admin-actions .termin-manage{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;padding:10px!important;}
  .termin-admin-actions .termin-manage button{width:100%!important;justify-content:center!important;border-radius:999px!important;min-height:40px!important;}
}
html[data-theme="dark"] .trainer-compact,
html[data-theme="dark"] .training-card-more,
html[data-theme="dark"] .termin-participants,
html[data-theme="dark"] .termin-admin-actions{background:#16201a!important;border-color:var(--border)!important;color:var(--text)!important;}
html[data-theme="dark"] .training-media-strip span{background:#13201a!important;border-color:var(--border)!important;color:var(--muted)!important;}
html[data-theme="dark"] .training-card-more[open] summary,
html[data-theme="dark"] .termin-admin-actions[open] summary,
html[data-theme="dark"] .termin-participants[open] summary{background:#203526!important;color:#d8f3df!important;}

/* Mobile Formulare als fokussierte Abläufe */
@media (max-width:820px){
  body:has(.add-form) #mobile-nav-root,
  body:has(.termin-form) #mobile-nav-root{display:none!important;}
  .app-form-flow{border-radius:24px!important;border:1px solid var(--border)!important;background:var(--surface)!important;box-shadow:var(--shadow)!important;padding:12px!important;margin-bottom:calc(28px + env(safe-area-inset-bottom))!important;}
  .app-form-flow .training-wizard,.termin-app-form .section-soft-title{border-radius:22px!important;background:linear-gradient(135deg,var(--g5),#fff)!important;border:1px solid var(--border)!important;padding:14px!important;margin-bottom:12px!important;}
  .app-form-flow .training-wizard h3,.termin-app-form .section-soft-title strong{font-size:20px!important;color:var(--g1)!important;line-height:1.1!important;}
  .app-form-flow .training-wizard p,.termin-app-form .section-soft-title span{font-size:13px!important;line-height:1.45!important;color:var(--muted)!important;margin-top:6px!important;}
  .mobile-form-stepbar,.wizard-steps.mobile-form-stepbar{display:flex!important;gap:8px!important;overflow-x:auto!important;white-space:nowrap!important;padding:2px 0 4px!important;margin-top:12px!important;}
  .mobile-form-stepbar .wizard-step{flex:0 0 auto!important;border-radius:999px!important;border:1px solid var(--border)!important;background:var(--surface)!important;color:var(--g1)!important;min-height:36px!important;padding:8px 12px!important;font-weight:900!important;box-shadow:none!important;}
  .mobile-form-stepbar .wizard-step.active,.mobile-form-stepbar .wizard-step:first-child{background:var(--g2)!important;color:#fff!important;border-color:var(--g2)!important;}
  .app-form-flow .form-section,.termin-optional-details{border:1px solid var(--border)!important;border-radius:20px!important;background:var(--surface)!important;box-shadow:none!important;margin:10px 0!important;overflow:hidden!important;}
  .app-form-flow .form-section summary,.termin-optional-details summary{list-style:none!important;cursor:pointer!important;padding:14px 16px!important;font-size:16px!important;font-weight:950!important;color:var(--g1)!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;}
  .app-form-flow .form-section summary::after,.termin-optional-details summary::after{content:'⌄';font-size:18px;color:var(--muted);transition:transform .16s ease;}
  .app-form-flow .form-section[open] summary::after,.termin-optional-details[open] summary::after{transform:rotate(180deg);}
  .app-form-flow .form-section summary::-webkit-details-marker,.termin-optional-details summary::-webkit-details-marker{display:none!important;}
  .app-form-flow .form-section[open] summary,.termin-optional-details[open] summary{background:var(--g5)!important;border-bottom:1px solid var(--border)!important;}
  .app-form-flow .form-section-body{padding:12px!important;}
  .app-form-flow .frow,.termin-app-form .termin-form-grid{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;}
  .app-form-flow .fcol,.termin-app-form .fld{min-width:0!important;width:100%!important;}
  .app-form-flow label,.termin-app-form label{font-size:12px!important;font-weight:950!important;letter-spacing:.02em!important;color:var(--g1)!important;margin-bottom:6px!important;text-transform:none!important;}
  .app-form-flow input,.app-form-flow select,.app-form-flow textarea,
  .termin-app-form input,.termin-app-form select,.termin-app-form textarea{width:100%!important;box-sizing:border-box!important;min-height:46px!important;border-radius:16px!important;border:1.5px solid var(--border)!important;background:var(--surface)!important;color:var(--text)!important;font-size:16px!important;padding:11px 12px!important;font-family:inherit!important;}
  .app-form-flow textarea,.termin-app-form textarea{min-height:92px!important;line-height:1.45!important;}
  .termin-required-fields{border:1px solid var(--border)!important;border-radius:20px!important;background:var(--surface)!important;padding:12px!important;margin:10px 0!important;}
  .termin-required-fields .mobile-form-stepbar{margin-top:0!important;margin-bottom:10px!important;}
  .termin-app-form .fld.full{grid-column:1/-1!important;}

  /* Zentrale Breiten- und Safe-Area-Regeln für mobile Formulare. */
  .content:has(.app-form-flow){padding-left:max(12px,env(safe-area-inset-left))!important;padding-right:max(12px,env(safe-area-inset-right))!important;overflow-x:hidden!important;}
  /* Die obere Safe-Area steckt bereits im Header; ein zweiter Abstand würde
     auf iPhones eine große leere Fläche über dem Formular erzeugen. */
  .ios-device.pwa-standalone .content:has(.app-form-flow){padding-top:14px!important;}
  .android-device.pwa-standalone .content:has(.app-form-flow){padding-top:14px!important;}
  .app-form-flow,.termin-required-fields,.termin-optional-details{width:100%!important;max-width:100%!important;min-width:0!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important;overflow:hidden!important;}
  .app-form-flow *,.termin-required-fields *,.termin-optional-details *{max-width:100%!important;box-sizing:border-box!important;}
  .termin-required-fields>.mobile-form-stepbar{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;width:100%!important;overflow:hidden!important;}
  .termin-required-fields>.mobile-form-stepbar .wizard-step{min-width:0!important;width:100%!important;justify-content:center!important;overflow:hidden!important;text-overflow:ellipsis!important;padding-left:8px!important;padding-right:8px!important;}
  .app-form-flow input,.app-form-flow select,.app-form-flow textarea,
  .termin-app-form input,.termin-app-form select,.termin-app-form textarea{display:block!important;max-width:100%!important;min-width:0!important;}
  .app-form-flow select,.termin-app-form select{-webkit-appearance:none!important;appearance:none!important;padding-right:34px!important;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%)!important;background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%!important;background-size:6px 6px,6px 6px!important;background-repeat:no-repeat!important;}
  /* Mobile Formularaktionen bleiben im Dokumentfluss. Sticky/Fixed verdeckte
     beim Scrollen optionale Felder und Auswahlboxen. */
  .form-actions.sticky-actions,.termin-app-form .form-actions.sticky-actions{position:static!important;inset:auto!important;z-index:auto!important;display:grid!important;grid-template-columns:1fr!important;gap:8px!important;background:rgba(255,255,255,.96)!important;border:1px solid var(--border)!important;border-radius:22px!important;padding:10px!important;box-shadow:0 10px 28px rgba(30,77,30,.14)!important;backdrop-filter:none!important;margin-top:14px!important;}
  .form-actions.sticky-actions .btn,.termin-app-form .form-actions.sticky-actions .btn{width:100%!important;min-height:48px!important;border-radius:999px!important;justify-content:center!important;font-size:15px!important;font-weight:950!important;}
  .form-save-primary{order:1!important;}
  .form-cancel-secondary{order:2!important;background:var(--surface)!important;}
  .foto-upload-row,.video-upload-box{border-radius:18px!important;border:1px dashed var(--border)!important;background:var(--g5)!important;padding:12px!important;}
  .star-rating{display:flex!important;gap:6px!important;justify-content:center!important;background:var(--g5)!important;border:1px solid var(--border)!important;border-radius:18px!important;padding:10px!important;}
  .star-btn{min-width:42px!important;min-height:42px!important;border-radius:14px!important;}
}
html[data-theme="dark"] .app-form-flow,
html[data-theme="dark"] .termin-required-fields,
html[data-theme="dark"] .app-form-flow .form-section,
html[data-theme="dark"] .termin-optional-details{background:#16201a!important;border-color:var(--border)!important;color:var(--text)!important;}
html[data-theme="dark"] .app-form-flow .training-wizard,
html[data-theme="dark"] .termin-app-form .section-soft-title,
html[data-theme="dark"] .app-form-flow .form-section[open] summary,
html[data-theme="dark"] .termin-optional-details[open] summary{background:#203526!important;border-color:var(--border)!important;}
html[data-theme="dark"] .form-actions.sticky-actions{background:rgba(18,28,22,.92)!important;border-color:var(--border)!important;}
html[data-theme="dark"] .app-form-flow label,
html[data-theme="dark"] .termin-app-form label,
html[data-theme="dark"] .termin-optional-details summary,
html[data-theme="dark"] .app-form-flow .form-section summary,
html[data-theme="dark"] .mobile-form-stepbar .wizard-step{color:#d8f3df!important;}
html[data-theme="dark"] .mobile-form-stepbar .wizard-step.active,
html[data-theme="dark"] .mobile-form-stepbar .wizard-step:first-child{color:#fff!important;}
html[data-theme="dark"] .app-form-flow input,
html[data-theme="dark"] .app-form-flow select,
html[data-theme="dark"] .app-form-flow textarea,
html[data-theme="dark"] .termin-app-form input,
html[data-theme="dark"] .termin-app-form select,
html[data-theme="dark"] .termin-app-form textarea{background:#0f1913!important;border-color:#2b4636!important;color:#eef8f0!important;}

/* Die untere Navigation bleibt auch bei geöffneten Aktionsflächen bedienbar. */
@media (max-width:820px){
  body.action-sheet-open #mobile-nav-root{z-index:9500!important;pointer-events:auto!important;}
}

/* Trainer- und Adminansichten mobil als Karten statt breiter Tabellen */
.admin-member-card-list{display:none;}
@media (max-width:820px){
  .admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;}
  .admin-grid .stat-card,.kpi-card{border-radius:18px!important;padding:12px!important;}
  .admin-menu{display:flex!important;gap:8px!important;overflow-x:auto!important;flex-wrap:nowrap!important;padding:3px 2px 8px!important;margin-bottom:12px!important;scroll-snap-type:x proximity!important;}
  .admin-menu-btn{flex:0 0 76%!important;min-width:0!important;border-radius:20px!important;padding:12px!important;scroll-snap-align:start!important;box-shadow:var(--shadow)!important;}
  .admin-menu-btn.active{background:var(--g2)!important;color:#fff!important;}
  .admin-menu-btn.active .admin-menu-title,.admin-menu-btn.active .admin-menu-sub{color:#fff!important;}
  .admin-polish-panel,.trainer-hero,.team-dept-panel{border-radius:22px!important;padding:14px!important;margin-bottom:12px!important;}
  .admin-polish-grid{display:flex!important;gap:8px!important;overflow-x:auto!important;grid-template-columns:none!important;padding-bottom:4px!important;}
  .admin-polish-card{flex:0 0 178px!important;border-radius:18px!important;min-height:76px!important;}
  .admin-member-card-list{display:grid!important;gap:10px!important;margin:8px 0 14px!important;}
  .admin-member-table-card{display:none!important;}
  .admin-member-card{background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:22px!important;padding:13px!important;box-shadow:var(--shadow)!important;}
  .admin-member-head{display:grid!important;grid-template-columns:auto 1fr auto!important;gap:10px!important;align-items:center!important;}
  .admin-member-head strong{display:block;color:var(--g1);font-size:15px;line-height:1.15;}
  .admin-member-head span:not(.role-badge){display:block;color:var(--muted);font-size:12px;margin-top:2px;word-break:break-word;}
  .admin-member-meta{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0;}
  .admin-member-meta span{background:var(--g5);border:1px solid var(--border);border-radius:999px;padding:5px 8px;font-size:11.5px;color:var(--g1);font-weight:800;}
  .admin-action-drawer{margin-top:10px;border:1px solid var(--border);border-radius:16px;overflow:hidden;background:var(--g5);}
  .admin-action-drawer summary{list-style:none;cursor:pointer;padding:11px 12px;font-weight:950;color:var(--g1);display:flex;justify-content:space-between;align-items:center;}
  .admin-action-drawer summary::after{content:'⌄';color:var(--muted);}
  .admin-action-drawer[open] summary::after{transform:rotate(180deg);}
  .admin-action-drawer summary::-webkit-details-marker{display:none;}
  .admin-member-actions{display:grid;gap:8px;padding:0 10px 10px;}
  .admin-member-actions .act-btn,.admin-member-actions select{width:100%;min-height:44px;border-radius:999px!important;box-sizing:border-box;}
  .admin-member-actions label{font-size:12px;font-weight:900;color:var(--g1);display:grid;gap:5px;}
  .wait-card{display:grid!important;grid-template-columns:auto 1fr!important;gap:10px!important;border-radius:20px!important;}
  .wait-card>div:last-child{grid-column:1/-1;display:grid!important;grid-template-columns:1fr 1fr;gap:8px;}
  .wait-card .act-btn{width:100%;min-height:44px;}
  .admin-config-accordion{display:grid;gap:10px;}
  .admin-config-accordion>.form-section{border:1px solid var(--border);border-radius:22px;background:var(--surface);overflow:hidden;box-shadow:var(--shadow);}
  .admin-config-accordion>.form-section>summary{padding:14px 16px;font-size:16px;font-weight:950;color:var(--g1);list-style:none;cursor:pointer;display:flex;justify-content:space-between;}
  .admin-config-accordion>.form-section>summary::after{content:'⌄';color:var(--muted);}
  .admin-config-accordion>.form-section[open]>summary{background:var(--g5);border-bottom:1px solid var(--border);}
  .admin-config-accordion .form-section-body{padding:0 0 10px;}
  .admin-config-accordion .card{box-shadow:none!important;border:none!important;margin-top:0!important;border-radius:0!important;}
  .admin-config-accordion .frow{grid-template-columns:1fr!important;gap:10px!important;}
}
html[data-theme="dark"] .admin-member-card,
html[data-theme="dark"] .admin-action-drawer,
html[data-theme="dark"] .admin-config-accordion>.form-section{background:#16201a!important;border-color:var(--border)!important;}
html[data-theme="dark"] .admin-member-meta span,
html[data-theme="dark"] .admin-action-drawer,
html[data-theme="dark"] .admin-config-accordion>.form-section[open]>summary{background:#203526!important;}
html[data-theme="dark"] .admin-member-head strong,
html[data-theme="dark"] .admin-member-card-list .section-soft-title strong,
html[data-theme="dark"] .admin-action-drawer summary,
html[data-theme="dark"] .admin-member-actions label{color:#dff4e5!important;}
html[data-theme="dark"] .admin-member-head span:not(.role-badge),
html[data-theme="dark"] .admin-member-card-list .section-soft-title span{color:#b8cdbc!important;}
html[data-theme="dark"] .admin-member-meta span{color:#d8f3df!important;border-color:#31503d!important;}
html[data-theme="dark"] .admin-member-card .sport-pill{background:#10253d!important;color:#b9d8ff!important;border-color:#1e3f66!important;}

/* Desktop-Dialoge sperren die Seite nur, solange ihre sichtbare Ebene existiert.
   Die Regel steht nach dem allgemeinen Desktop-Scrollverhalten, damit dessen
   overflow-y:auto!important den Modaldialog nicht wieder aus dem Viewport schiebt. */
body.modal-open{overflow:hidden!important;touch-action:none;}
@media (min-width:821px){
  body.modal-open #modal-container{position:fixed;inset:0;z-index:12000;pointer-events:none;}
  body.modal-open #modal-container .modal-overlay,
  body.modal-open #modal-container .modal-backdrop{pointer-events:auto;}
  body.modal-open #help-fab-root{visibility:hidden;}
}

/* Gemeinsame Regeln für Overlays, Dock, Administration und Dark Mode */
@media (max-width:820px){
  .content{padding-bottom:calc(172px + env(safe-area-inset-bottom))!important;}
  body.mobile-form-open .content{padding-bottom:calc(34px + env(safe-area-inset-bottom))!important;}

  body.action-sheet-open{overflow:hidden!important;touch-action:none;}
  body.action-sheet-open #mobile-nav-root,
  body.action-sheet-open #help-fab-root{display:none!important;}
  body.action-sheet-open .content{pointer-events:none!important;}
  body.action-sheet-open #action-sheet-root{position:fixed!important;inset:0!important;z-index:12000!important;pointer-events:none!important;}
  body.action-sheet-open #action-sheet-root .sheet-backdrop{position:fixed!important;inset:0!important;z-index:1!important;display:block!important;pointer-events:auto!important;background:rgba(8,24,12,.46)!important;-webkit-backdrop-filter:blur(5px)!important;backdrop-filter:blur(5px)!important;}
  body.action-sheet-open #action-sheet-root .action-sheet{position:fixed!important;left:max(10px,env(safe-area-inset-left))!important;right:max(10px,env(safe-area-inset-right))!important;bottom:calc(12px + env(safe-area-inset-bottom))!important;z-index:2!important;max-height:calc(100svh - 34px - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important;overflow:auto!important;pointer-events:auto!important;border-radius:28px!important;}

  body.modal-open{overflow:hidden!important;touch-action:none;}
  body.modal-open #app{max-height:100svh!important;overflow:hidden!important;pointer-events:none!important;}
  body.modal-open #mobile-nav-root,
  body.modal-open #help-fab-root{display:none!important;}
  body.modal-open #modal-container{position:fixed!important;inset:0!important;z-index:12000!important;pointer-events:none!important;}
  body.modal-open #modal-container .modal-overlay,
  body.modal-open #modal-container .modal-backdrop{position:fixed!important;inset:0!important;z-index:1!important;display:flex!important;align-items:stretch!important;justify-content:center!important;pointer-events:auto!important;background:rgba(8,24,12,.55)!important;}
  body.modal-open #modal-container .modal{height:100svh!important;max-height:100svh!important;box-shadow:none!important;}
  body.modal-open #toast-stack,.modal-open .toast-stack{z-index:13100!important;}

  .admin-menu{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;overflow:visible!important;flex-wrap:initial!important;padding:0!important;margin:0 0 12px!important;scroll-snap-type:none!important;}
  .admin-menu-btn{width:100%!important;max-width:100%!important;flex:1 1 auto!important;min-width:0!important;white-space:normal!important;scroll-snap-align:none!important;display:grid!important;grid-template-columns:auto 1fr!important;column-gap:8px!important;align-items:start!important;}
  .admin-menu-ico{grid-row:1/3!important;margin-right:0!important;}
  .admin-menu-title,.admin-menu-sub{min-width:0!important;max-width:100%!important;overflow:visible!important;text-overflow:clip!important;white-space:normal!important;overflow-wrap:anywhere!important;}
  .admin-polish-grid{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;overflow:visible!important;padding-bottom:0!important;}
  .admin-polish-card{width:100%!important;max-width:100%!important;min-width:0!important;flex:1 1 auto!important;box-sizing:border-box!important;}

  .push-state{display:inline-flex!important;width:max-content;max-width:100%;margin-top:6px!important;margin-right:6px!important;white-space:normal!important;}
  .push-state.server-state{background:var(--surface-2)!important;color:var(--muted)!important;}
}
html[data-theme="dark"] .portal-profile-center,
html[data-theme="dark"] .profile-quick-panel,
html[data-theme="dark"] .profile-sport-panel,
html[data-theme="dark"] .portal-profile-tile{background:#16201a!important;border-color:#2b4636!important;color:#e6efe8!important;}
html[data-theme="dark"] .portal-profile-center-head h4,
html[data-theme="dark"] .portal-profile-tile strong,
html[data-theme="dark"] .profile-quick-card strong,
html[data-theme="dark"] .profile-sport-panel strong{color:#e8f8ec!important;}
html[data-theme="dark"] .portal-profile-center-head p,
html[data-theme="dark"] .portal-profile-tile span,
html[data-theme="dark"] .profile-quick-card small{color:#b8cdbc!important;}
html[data-theme="dark"] .portal-profile-tile.active,
html[data-theme="dark"] .portal-profile-tile:hover{background:#203526!important;border-color:#4b9a61!important;}
html[data-theme="dark"] .push-state.server-state{background:#13201a!important;color:#b8cdbc!important;border-color:#2b4636!important;}

/* Fokussierte mobile Formularabläufe */
@media (max-width:820px){
  body.mobile-form-open .training-list-while-form,
  body.mobile-form-open .termin-list-while-form,
  body.mobile-form-open .termine-hero,
  body.mobile-form-open .termin-kachel{display:none!important;}
  body.mobile-form-open .content{padding-bottom:calc(28px + env(safe-area-inset-bottom))!important;}
  .form-flow-page{display:block!important;width:100%!important;max-width:100%!important;}
  .form-flow-shell{border-radius:28px!important;padding:14px!important;background:linear-gradient(180deg,#ffffff,#f7fbf7)!important;border:1px solid var(--border)!important;box-shadow:0 20px 56px rgba(30,77,30,.14)!important;margin:0 0 calc(24px + env(safe-area-inset-bottom))!important;overflow:hidden!important;}
  .form-flow-progress{position:relative!important;}
  .termin-flow-shell>.section-soft-title.form-flow-progress{display:block!important;padding:22px!important;border-radius:24px!important;}
  .termin-flow-shell>.section-soft-title.form-flow-progress strong{display:block!important;font-size:30px!important;line-height:1.08!important;color:var(--g1)!important;margin:0 0 8px!important;}
  .termin-flow-shell>.section-soft-title.form-flow-progress span{display:block!important;font-size:16px!important;line-height:1.45!important;color:var(--muted)!important;}
  .form-flow-kicker{display:inline-flex!important;align-items:center!important;gap:6px!important;font-size:11px!important;font-weight:950!important;text-transform:uppercase!important;letter-spacing:.10em!important;color:var(--muted)!important;margin-bottom:8px!important;}
  .form-flow-shell .mobile-form-stepbar{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(88px,1fr))!important;gap:7px!important;margin-top:12px!important;overflow:visible!important;white-space:normal!important;}
  .form-flow-shell .wizard-step{width:100%!important;min-width:0!important;min-height:46px!important;border-radius:999px!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;font-size:12px!important;line-height:1.12!important;padding:8px 8px!important;}
  .form-flow-shell .wizard-step.active{background:var(--g2)!important;color:#fff!important;border-color:var(--g2)!important;box-shadow:0 8px 20px rgba(30,77,43,.20)!important;}
  .form-flow-stage{margin:12px 0!important;border-radius:24px!important;border:1px solid var(--border)!important;background:var(--surface)!important;box-shadow:none!important;overflow:hidden!important;}
  .form-flow-section-label{min-height:52px!important;padding:15px 16px!important;font-size:16px!important;font-weight:950!important;color:var(--g1)!important;background:linear-gradient(135deg,#fff,#f7fbf7)!important;}
  .form-flow-stage[open]>.form-flow-section-label{background:linear-gradient(135deg,var(--g5),#fff)!important;border-bottom:1px solid var(--border)!important;}
  .form-flow-stage:not([open]){background:rgba(255,255,255,.78)!important;}
  .training-required-fields[open]::after{content:'Danach kannst du Details, Bewertung oder Medien öffnen.';display:block;margin:0 12px 12px;padding:10px 12px;border-radius:16px;background:var(--g5);color:var(--muted);font-size:12px;line-height:1.35;}
  .termin-required-fields::after{content:'Danach kannst du Weitere Angaben öffnen.';display:block;margin:0 12px 12px;padding:10px 12px;border-radius:16px;background:var(--g5);color:var(--muted);font-size:12px;line-height:1.35;}
  .training-secondary-fields:not([open]),.training-rating-fields:not([open]),.training-media-fields:not([open]),.termin-optional-details:not([open]){opacity:.92;}
  .termin-flow-shell .termin-required-fields{padding:12px!important;border-radius:24px!important;background:var(--surface)!important;}
  .termin-flow-shell .termin-required-fields .mobile-form-stepbar{margin-bottom:12px!important;}
  .termin-flow-shell .form-actions.sticky-actions,.training-flow-shell .form-actions.sticky-actions{position:static!important;inset:auto!important;border-radius:24px!important;background:rgba(255,255,255,.95)!important;}
}
html[data-theme="dark"] .form-flow-shell{background:linear-gradient(180deg,#132019,#101812)!important;border-color:#2b4636!important;box-shadow:0 20px 56px rgba(0,0,0,.36)!important;}
html[data-theme="dark"] .form-flow-kicker{color:#a9c7af!important;}
html[data-theme="dark"] .termin-flow-shell>.section-soft-title.form-flow-progress strong{color:#eef8f0!important;}
html[data-theme="dark"] .termin-flow-shell>.section-soft-title.form-flow-progress span{color:#b8cdbc!important;}
html[data-theme="dark"] .form-flow-stage,
html[data-theme="dark"] .termin-flow-shell .termin-required-fields{background:#16201a!important;border-color:#2b4636!important;color:#eef8f0!important;}
html[data-theme="dark"] .form-flow-section-label,
html[data-theme="dark"] .form-flow-stage[open]>.form-flow-section-label{background:#203526!important;color:#eef8f0!important;border-color:#2b4636!important;}
html[data-theme="dark"] .training-required-fields[open]::after,
html[data-theme="dark"] .termin-required-fields::after{background:#203526!important;color:#b8cdbc!important;}
html[data-theme="dark"] .termin-flow-shell .form-actions.sticky-actions,
html[data-theme="dark"] .training-flow-shell .form-actions.sticky-actions{background:rgba(18,28,22,.96)!important;border-color:#2b4636!important;}

/* Interaktion, Touch-Ziele und barrierearme Overlays */
.password-toggle{margin-top:8px;border:0;background:transparent;color:var(--g2);font:inherit;font-size:12px;font-weight:800;text-decoration:underline;cursor:pointer;padding:8px 0;}

/* Datenschutz & Konto: persönliche E-Mail-Freigabe und Passwort bleiben in
   klar getrennten Abschnitten. Der Schalter ist auch auf kleinen iPhones groß
   genug und zeigt seinen Zustand zusätzlich als Text an. */
.account-security-modal{max-width:620px}
.account-security-modal .modal-body{display:grid;gap:12px}
.account-settings-section{border:1px solid var(--border);border-radius:20px;background:var(--surface);padding:16px}
.account-settings-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:13px}
.account-settings-head>span{width:38px;height:38px;flex:0 0 auto;display:grid;place-items:center;border-radius:13px;background:var(--g5);font-size:20px}
.account-settings-head h4{margin:1px 0 3px;color:var(--g1);font-size:15px}
.account-settings-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}
.email-privacy-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid var(--border2);border-radius:16px;padding:12px;background:var(--surface-2)}
.email-privacy-row strong,.email-privacy-row span{display:block}
.email-privacy-row strong{color:var(--g1);font-size:13px}
.email-privacy-row>div>span{margin-top:3px;color:var(--muted);font-size:11px;overflow-wrap:anywhere}
.email-privacy-switch{min-width:112px;min-height:46px;border:0;border-radius:999px;padding:5px 11px 5px 6px;display:flex;align-items:center;justify-content:flex-start;gap:7px;color:#fff;font:inherit;font-size:12px;font-weight:900;cursor:pointer;transition:background .16s,box-shadow .16s}
.email-privacy-switch.is-visible{background:var(--g2);box-shadow:0 6px 16px rgba(31,143,67,.2)}
.email-privacy-switch.is-private{background:#58625b}
.email-privacy-switch:disabled{opacity:.65;cursor:wait}
.email-privacy-switch-knob{width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:#fff;box-shadow:0 2px 7px rgba(0,0,0,.2);position:relative}
.email-privacy-switch-knob:after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;color:var(--g2);font-size:15px}
.email-privacy-switch.is-private .email-privacy-switch-knob:after{content:'×';color:#58625b}
.account-privacy-note{margin:10px 0 0;padding:10px 11px;border-radius:14px;background:var(--g5);color:var(--muted);font-size:11px;line-height:1.45}
.member-email-private{color:var(--muted);font-style:normal;font-weight:750}
html[data-theme="dark"] .account-settings-section{background:#121c16;border-color:#33463a}
html[data-theme="dark"] .email-privacy-row{background:#18271e;border-color:#33463a}
html[data-theme="dark"] .account-settings-head h4,html[data-theme="dark"] .email-privacy-row strong{color:#e8f4eb}
@media(max-width:420px){.account-settings-section{padding:13px}.email-privacy-row{grid-template-columns:1fr}.email-privacy-switch{width:100%;justify-content:center}.account-security-modal .modal-body{padding-inline:12px}}
.login-preferences{margin:12px auto 0;max-width:390px;text-align:center;}
.login-preferences>summary{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--g2);font-size:12px;font-weight:800;padding:8px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);}
.login-preferences>div{padding-top:10px;}
.own-profile-page-shell{max-width:1120px;margin:0 auto;}
.own-profile-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px;padding:22px 24px;border:1px solid var(--border);border-radius:24px;background:var(--surface);box-shadow:var(--shadow);}
.own-profile-page-head h2{margin:0;color:var(--g1);font-size:28px;}
.own-profile-page-head p{margin:5px 0 0;color:var(--muted);}
#own-profile-page-host{display:grid;gap:16px;}
#own-profile-page-host>.portal-profile-center,#own-profile-page-host>.profile-sport-panel,#own-profile-page-host>.profil-section,#own-profile-page-host>.profil-fotos,#own-profile-page-host>.fld,#own-profile-page-host>.btn{max-width:100%;}
.profile-group-title{margin:18px 0 8px;color:var(--muted);font-size:12px;letter-spacing:.08em;text-transform:uppercase;}
.training-search-v31{align-items:flex-start;}
.training-filter-menu{position:relative;flex:0 0 auto;}
.training-filter-menu>summary,.training-action-menu>summary,.admin-row-actions>summary{list-style:none;cursor:pointer;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--g1);font-weight:800;padding:10px 16px;}
.training-filter-menu>summary::-webkit-details-marker,.training-action-menu>summary::-webkit-details-marker,.admin-row-actions>summary::-webkit-details-marker{display:none;}
.training-filter-menu>div,.training-action-menu>div,.admin-row-actions>div{display:grid;gap:8px;margin-top:8px;padding:10px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:var(--shadow);}
.training-filter-menu>div{position:absolute;right:0;z-index:20;min-width:190px;}
.my-training-card{cursor:pointer;}
.my-training-card:focus-visible{outline:3px solid var(--gold);outline-offset:3px;}
.my-training-actions{justify-content:flex-end;}
.training-action-menu{margin-left:auto;min-width:128px;}
.training-action-menu>summary span{font-size:12px;margin-left:4px;}
.training-card-more>summary{font-weight:900;color:var(--g1);}
.termin-segment{display:inline-flex;border:1px solid var(--border);border-radius:999px;padding:3px;background:var(--surface);}
.termin-segment .tiny-btn{border:0!important;box-shadow:none!important;}
.admin-permission-note{margin:0 0 12px;padding:12px 14px;border:1px solid #e6d28a;border-radius:16px;background:#fff9e4;color:#594b18;font-size:12px;}
.admin-member-filter{display:grid;grid-template-columns:auto minmax(220px,420px);align-items:center;gap:10px;margin-bottom:12px;}
.admin-member-filter label{font-size:12px;font-weight:900;color:var(--g1);}
.admin-member-filter input{min-height:44px;border:1.5px solid var(--border);border-radius:999px;padding:10px 14px;font:inherit;}
.admin-row-actions{min-width:120px;position:relative;}
.admin-row-actions>div{position:absolute;right:20px;z-index:30;min-width:240px;}
.admin-row-actions label{display:grid;gap:5px;font-size:11px;font-weight:800;}
.admin-row-actions select{min-height:44px;}
.admin-protected-state{display:inline-flex;align-items:center;min-height:44px;color:var(--muted);font-size:12px;}
.profile-homework-item .hw-head{gap:12px;flex-wrap:wrap;}

@media(max-width:900px){
  button,.btn,.tiny-btn,.act-btn,.edit-btn,.del-btn,.link-btn,.nudge-chip,.portal-btn,.training-filter-chip,summary{min-height:44px;}
  .hdr-icon-btn{width:44px!important;height:44px!important;min-width:44px!important;}
  .hdr-mobile-actions{gap:0!important;}
  .mobile-bottom-nav button{min-height:58px;}
  .mobile-bottom-nav button.nav-plus{min-height:64px;}
  .sheet-close,.action-sheet .sheet-head button,.modal-close{min-width:44px!important;min-height:44px!important;width:44px!important;height:44px!important;}
  .content{padding-bottom:calc(118px + env(safe-area-inset-bottom))!important;scroll-padding-bottom:calc(118px + env(safe-area-inset-bottom));}
  .portal-day-grid{grid-template-columns:1fr!important;}
  .own-profile-page-head{padding:18px;border-radius:20px;}
  .own-profile-page-head h2{font-size:24px;}
  .portal-profile-grid{grid-template-columns:1fr!important;}
  .training-filter-chips{display:flex!important;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;flex-wrap:nowrap!important;}
  .training-filter-chip{flex:0 0 auto;}
  .training-search-v31{display:grid!important;grid-template-columns:1fr auto!important;gap:8px!important;}
  .training-search-v31 input{min-width:0!important;}
  .training-filter-menu>div{right:0;}
  .my-training-card{padding:16px!important;}
  .my-training-actions{margin-top:8px!important;}
  .training-action-menu{width:100%;}
  .training-action-menu>summary{text-align:center;}
  .training-action-menu>div{position:static;}
  .termin-segment{display:grid;grid-template-columns:1fr 1fr;width:100%;}
  .admin-member-filter{grid-template-columns:1fr;}
  .admin-row-actions>div{position:static;}
}
html[data-theme="dark"] .admin-permission-note{background:#332f1c;color:#f2e8b5;border-color:#655d32;}
@media(min-width:901px){
  #action-sheet-root .action-sheet.open{display:block!important;bottom:40px!important;max-height:calc(100vh - 80px);overflow:auto;}
  #action-sheet-root .sheet-backdrop.open{display:block!important;position:fixed;inset:0;background:rgba(8,24,12,.38);z-index:3040;}
}

/* Globale Korrekturen für schmale Ansichten */
@media(max-width:820px){
  html,body,#app,.app,.content{max-width:100%;overflow-x:clip;}
  body.has-mobile-nav{height:100vh;height:100dvh;overflow:hidden;}
  body.has-mobile-nav .app{height:100vh;height:100dvh;min-height:0;padding-bottom:0!important;overflow:hidden;}
  body.has-mobile-nav .content{min-height:0;overflow-y:auto!important;margin-bottom:calc(98px + env(safe-area-inset-bottom));padding-bottom:24px!important;scroll-padding-bottom:24px!important;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;}
  .content>*,.card,.card-body,.portal-dashboard,.own-profile-page-shell,
  #own-profile-page-host,.portal-profile-center,.profile-sport-panel,
  .profile-quick-panel,.my-trainings-hero,.termine-hero,.my-training-card,
  .termin-card,.add-form,.form-flow-shell,.admin-polish-panel{min-width:0;max-width:100%;box-sizing:border-box;}

  .content h1,.content h2,.content h3,.content h4,.content h5,
  .content p,.content strong,.content small,.content label,
  .portal-card-title>div,.portal-profile-tile>span:last-child,
  .sheet-action>span:last-child,.profile-sport-toggle>span:last-child,
  .admin-member-head>div,.team-section-title{min-width:0;overflow-wrap:break-word;word-break:normal;hyphens:auto;}

  img,video,canvas,svg{max-width:100%;}
  input:not([type="checkbox"]):not([type="radio"]),select,textarea{max-width:100%;box-sizing:border-box;}
  .frow,.frow.c1,.frow.c2,.frow.c3,.termin-form-grid{grid-template-columns:minmax(0,1fr)!important;}

  .profile-sport-head,.portal-profile-center-head,.profile-quick-head,
  .training-list-head,.team-dept-head,.section-soft-title{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    align-items:start!important;
    gap:9px!important;
  }
  .profile-sport-head>div,.portal-profile-center-head>div,.profile-quick-head>div{min-width:0;width:100%;}
  .profile-sport-count,.portal-profile-center-head .portal-chip,
  .profile-quick-head>.tiny-btn,.section-soft-title>span{
    justify-self:start!important;
    max-width:100%!important;
    width:auto!important;
    white-space:normal!important;
    text-align:left!important;
  }
  .profile-sport-head h4{font-size:19px!important;line-height:1.25!important;}
  .profile-sport-head p{font-size:13px!important;line-height:1.5!important;max-width:none!important;}
  .profile-sport-grid{grid-template-columns:minmax(0,1fr)!important;width:100%;}
  .profile-sport-toggle{
    width:100%!important;
    min-width:0!important;
    display:grid!important;
    grid-template-columns:44px minmax(0,1fr)!important;
    align-items:start!important;
    gap:11px!important;
    padding:13px!important;
  }
  .profile-sport-toggle .ico{width:44px!important;height:44px!important;margin:0!important;}
  .profile-sport-toggle strong{font-size:15px!important;line-height:1.25!important;}
  .profile-sport-toggle span{font-size:12px!important;line-height:1.4!important;}
  .profile-sport-toggle .state{width:max-content!important;max-width:100%!important;}

  .portal-profile-tile{grid-template-columns:44px minmax(0,1fr)!important;width:100%;}
  .portal-profile-tile .ico{width:44px!important;height:44px!important;}
  .card-head,.portal-card-title,.admin-member-head,.termin-head,.my-training-head{
    min-width:0!important;
  }
  .card-head{flex-wrap:wrap!important;}
  .portal-chip-row,.termin-counts,.sport-pills,.profile-summary-actions,
  .doc-actions,.foto-upload-row,.form-actions,.termin-manage{max-width:100%;flex-wrap:wrap!important;}
  .portal-chip,.sport-pill,.termin-count,.profile-sport-count{overflow-wrap:anywhere;}

  .btn,.portal-btn,.tiny-btn,.act-btn,.edit-btn,.del-btn,.nudge-chip,
  .sheet-action,.link-btn{white-space:normal!important;overflow-wrap:anywhere;text-align:center;}

  /* Der mittlere Dock-Tab zeigt jetzt seine tatsächliche Bezeichnung. */
  #mobile-nav-root .mobile-bottom-nav.app-dock button.nav-plus{
    height:68px!important;
    min-height:68px!important;
    padding:3px 2px 5px!important;
    gap:1px!important;
    transform:translateY(-9px)!important;
    color:#fff!important;
  }
  #mobile-nav-root .mobile-bottom-nav.app-dock button.nav-plus .nav-icon{
    width:46px!important;
    height:46px!important;
    min-width:46px!important;
    min-height:46px!important;
    border-width:4px!important;
    color:#1c2400!important;
  }
  #mobile-nav-root .mobile-bottom-nav.app-dock button.nav-plus .nav-icon .ui-icon{
    width:25px!important;
    height:25px!important;
  }
  #mobile-nav-root .mobile-bottom-nav.app-dock button.nav-plus .nav-label{
    display:block!important;
    flex:0 0 auto!important;
    width:auto!important;
    height:auto!important;
    min-width:0!important;
    min-height:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    align-items:initial!important;
    justify-content:initial!important;
    color:#fff!important;
    font-size:11px!important;
    line-height:1!important;
    font-weight:950!important;
    letter-spacing:0!important;
    overflow:visible!important;
  }

  .content{padding-bottom:calc(172px + env(safe-area-inset-bottom))!important;scroll-padding-bottom:calc(172px + env(safe-area-inset-bottom))!important;}
  :target,[id]{scroll-margin-bottom:calc(120px + env(safe-area-inset-bottom));}
}

@media(max-width:420px){
  .content{padding-left:max(10px,env(safe-area-inset-left))!important;padding-right:max(10px,env(safe-area-inset-right))!important;}
  .portal-profile-center,.profile-sport-panel,.profile-quick-panel,.profil-section{padding:13px!important;border-radius:20px!important;}
  .profile-sport-count{font-size:11px!important;padding:6px 9px!important;}
  .portal-profile-center-head h4{font-size:19px!important;}
  .portal-profile-center-head p{font-size:12px!important;}
  .portal-card-title{gap:9px!important;}
  .portal-card h3{font-size:15px!important;}
}

@media(max-width:340px){
  #mobile-nav-root .mobile-bottom-nav.app-dock button.nav-plus .nav-label{font-size:10px!important;}
}

html[data-theme="dark"] #mobile-nav-root .mobile-bottom-nav.app-dock button.nav-plus .nav-label{color:#f1f7f2!important;}

/* GPS-Karten in gespeicherten, geteilten und öffentlichen Ansichten. */
:root{--trail-runner:#3b82f6;--trail-dog:#ff5157;--trail-map-ink:#07121c;}
#faehrte-gpx-runner,#faehrte-gpx-dog,#gpx-runner,#gpx-dog{display:none!important;}
.trail-legend .dot-runner{background:var(--trail-runner)!important}.trail-legend .dot-dog{background:var(--trail-dog)!important}
.trail-tool.active-runner{background:var(--trail-runner)!important;border-color:var(--trail-runner)!important}.trail-tool.active-dog{background:var(--trail-dog)!important;border-color:var(--trail-dog)!important}
.trail-compare-shell{margin-top:12px;border:1px solid var(--border);border-radius:22px;background:var(--surface-2);padding:12px;box-shadow:0 8px 22px rgba(15,63,34,.07)}
.trail-compare-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.trail-compare-title strong{display:block;color:var(--g1);font-size:15px;line-height:1.2}.trail-compare-title span{display:block;color:var(--muted);font-size:12px;line-height:1.4;margin-top:3px}
.trail-view-toggle{display:inline-grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:3px;padding:4px;border:1px solid var(--border);background:var(--surface);border-radius:999px}
.trail-view-toggle button{border:0;background:transparent;color:var(--muted);border-radius:999px;min-height:34px;padding:7px 10px;font:inherit;font-size:11px;font-weight:900;white-space:nowrap;cursor:pointer}.trail-view-toggle button.active{background:var(--g2);color:#fff;box-shadow:0 5px 14px rgba(30,77,30,.18)}
.trail-compare-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:10px}.trail-compare-metric{min-width:0;border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:9px 10px}.trail-compare-metric strong{display:block;color:var(--g1);font-size:17px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trail-compare-metric span{display:block;color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.04em;margin-top:4px}.trail-compare-metric.runner{border-left:4px solid var(--trail-runner)}.trail-compare-metric.dog{border-left:4px dashed var(--trail-dog)}
.trail-compare-legend{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;color:var(--muted);font-size:11px;line-height:1.35;margin-top:9px}.trail-line-sample{display:inline-block;width:24px;height:0;vertical-align:middle;margin-right:6px;border-top:4px solid var(--trail-runner);border-radius:999px}.trail-line-sample.dog{border-top-color:var(--trail-dog);border-top-style:dashed}
.trail-map-small.trail-compare-map,.trail-edit-map.trail-compare-map{border-radius:18px!important;overflow:hidden;border:1px solid var(--border)!important}.live-viewer-summary,.public-live-summary{margin:10px 0}
html[data-theme="dark"] .trail-compare-shell,html[data-theme="dark"] .trail-compare-metric{background:#16201a!important;border-color:#2b4636!important}html[data-theme="dark"] .trail-compare-title strong,html[data-theme="dark"] .trail-compare-metric strong{color:#e8f8ec!important}
@media(max-width:820px){.trail-compare-shell{padding:10px;border-radius:19px}.trail-compare-head{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.trail-view-toggle{width:100%}.trail-view-toggle button{padding:7px 5px}.trail-compare-metrics{grid-template-columns:1fr 1fr}.trail-compare-metric{padding:8px 9px}.trail-compare-metric strong{font-size:15px}.trail-map-small.trail-compare-map{height:330px!important}}

/* GPS-Arbeitsbereich: Aufnahmeablauf nach den Mockups 1–12 */
:root{--trail-runner:#3b82f6;--trail-dog:#ff5157;--gps36-bg:#0c0e14;--gps36-panel:#12151d;--gps36-line:#2a2e39;--gps36-text:#f2f3f7;--gps36-muted:#a8acb8;--gps36-blue:#8ab9ff;--gps36-green:#8dcc46;--gps36-orange:#ff9f0a;--gps36-red:#ff5157;}
.gps36-workspace{position:fixed;inset:0;z-index:1400;background:var(--gps36-bg);color:var(--gps36-text);overflow:hidden;font-family:inherit;}
.gps36-workspace *{box-sizing:border-box;}
.gps36-map-screen,.gps36-detail-screen{position:absolute;inset:0;background:var(--gps36-bg);overflow:hidden;}
.gps36-map{position:absolute!important;z-index:1!important;inset:0!important;width:100%!important;height:100%!important;border:0!important;border-radius:0!important;background:#16231c!important;}
.gps36-topbar{position:absolute;z-index:8;left:0;right:0;top:0;min-height:calc(76px + var(--app-safe-top));padding:calc(12px + var(--app-safe-top)) 18px 12px;display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:10px;background:linear-gradient(180deg,rgba(9,11,16,.86),rgba(9,11,16,0));pointer-events:none;}
.gps36-topbar>*{pointer-events:auto}.gps36-top-title{text-align:center;min-width:0}.gps36-top-title strong{display:block;font-size:18px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gps36-top-title span{display:block;font-size:11px;color:rgba(255,255,255,.68);margin-top:3px;}
.gps36-icon-btn{width:46px;height:46px;display:grid;place-items:center;border:0;border-radius:50%;background:rgba(10,12,18,.84);color:#f6f7fb;font:inherit;font-size:23px;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.22);backdrop-filter:blur(12px);}
.gps36-icon-btn:focus-visible,.gps36-primary:focus-visible,.gps36-nav-btn:focus-visible{outline:3px solid #fff;outline-offset:2px;}
.gps36-map-tools{position:absolute;z-index:8;right:14px;bottom:18px;display:grid;gap:10px;}
.gps36-map-screen>.gps36-map-tools{bottom:calc(292px + env(safe-area-inset-bottom));}
.gps36-map-tools .gps36-icon-btn{background:#0d1018;}
.gps36-record-card{position:absolute;z-index:9;left:0;right:0;bottom:calc(78px + env(safe-area-inset-bottom));padding:0 12px;pointer-events:none;}
.gps36-record-card>*{pointer-events:auto}.gps36-start-wrap{max-width:720px;margin:0 auto;}
.gps36-primary{width:100%;min-height:72px;border:0;border-radius:26px;background:var(--gps36-green);color:#10200b;font:inherit;font-size:22px;font-weight:900;cursor:pointer;box-shadow:0 14px 32px rgba(0,0,0,.28);}
.gps36-live-panel{max-width:720px;margin:0 auto;border-radius:28px;background:rgba(10,12,18,.96);box-shadow:0 18px 40px rgba(0,0,0,.38);overflow:hidden;backdrop-filter:blur(16px);}
.gps36-live-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:16px 12px 13px;border-bottom:1px solid rgba(255,255,255,.08);}
.gps36-live-metric{text-align:center;min-width:0;padding:0 6px}.gps36-live-metric strong{display:block;font-size:clamp(22px,6vw,34px);line-height:1.05;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gps36-live-metric span{display:block;margin-top:6px;color:#d5d8df;font-size:12px}.gps36-live-metric.runner strong{color:#80b5ff}.gps36-live-metric.dog strong{color:#ff8185}.gps36-live-metric.deviation strong{color:#ffd166}
.gps36-live-actions{display:flex;justify-content:center;align-items:center;gap:18px;min-height:108px;padding:13px 18px;}
.gps36-pause{width:126px;min-height:78px;border:0;border-radius:28px;background:var(--gps36-orange);color:white;font:inherit;font-size:23px;font-weight:850;cursor:pointer;}
.gps36-round-action{width:58px;height:58px;border:0;border-radius:50%;background:transparent;color:#e8eaf0;font-size:27px;cursor:pointer;}
.gps36-paused-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px;}.gps36-paused-actions button{min-height:72px;border:0;border-radius:28px;color:#fff;font:inherit;font-size:20px;font-weight:850;cursor:pointer}.gps36-paused-actions .continue{background:var(--gps36-green);color:#13230d}.gps36-paused-actions .finish{background:var(--gps36-red);}
.gps36-bottom-nav{position:absolute;z-index:11;left:0;right:0;bottom:0;height:calc(78px + env(safe-area-inset-bottom));padding:7px 16px env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(3,1fr);background:rgba(10,12,18,.98);border-top:1px solid rgba(255,255,255,.07);}
.gps36-nav-btn{border:0;background:transparent;color:#aeb2bd;font:inherit;font-size:12px;display:grid;place-content:center;gap:3px;cursor:pointer}.gps36-nav-btn .ico{font-size:25px;line-height:1}.gps36-nav-btn.active{color:#b4d3ff}.gps36-nav-btn strong{font-weight:750;}
.gps36-modal-layer{position:absolute;z-index:20;inset:0;padding:calc(90px + var(--app-safe-top)) 18px calc(96px + env(safe-area-inset-bottom));display:grid;place-items:center;background:rgba(5,7,11,.48);backdrop-filter:blur(3px);}
.gps36-dialog{width:min(100%,430px);max-height:100%;overflow:auto;border-radius:30px;background:#292c34;color:#f4f5f8;box-shadow:0 24px 70px rgba(0,0,0,.5);}
.gps36-dialog h3{font-size:27px;line-height:1.2;margin:0;padding:26px 24px 20px;font-weight:650}.gps36-dialog p{margin:-8px 24px 20px;color:#c6c9d1;font-size:13px;line-height:1.45}.gps36-choice-row{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #444853}.gps36-choice-row button,.gps36-dialog-list button,.gps36-dialog-cancel{border:0;background:#2b5d91;color:#eef6ff;font:inherit;font-size:20px;min-height:76px;cursor:pointer}.gps36-choice-row button+button{border-left:1px solid #1d4167}.gps36-dialog-list{display:grid;border-top:1px solid #444853}.gps36-dialog-list button{background:#11141b;border-bottom:1px solid #343844;padding:16px 20px;text-align:left;font-size:16px;display:flex;justify-content:space-between;gap:12px}.gps36-dialog-list button span{color:#d7dae1;font-size:13px;text-align:right}.gps36-dialog-cancel{width:100%;background:#2b5d91}.gps36-dialog-secondary{width:100%;min-height:58px;border:0;background:#20232b;color:#aecdff;font:inherit;font-weight:750;cursor:pointer;}
.gps36-panel-screen{position:absolute;inset:0;padding:calc(12px + var(--app-safe-top)) 0 calc(79px + env(safe-area-inset-bottom));overflow:hidden;background:var(--gps36-bg);display:flex;flex-direction:column;}
.gps36-panel-head{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;padding:8px 18px 18px;gap:10px;flex:0 0 auto}.gps36-panel-head h2{margin:0;text-align:center;font-size:clamp(18px,5vw,24px);line-height:1.15;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gps36-panel-body{width:min(100%,720px);margin:0 auto;padding:0 18px 26px;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}
.gps36-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--gps36-line);margin:0 -18px}.gps36-tabs button{min-height:80px;border:0;background:transparent;color:#b4b7c0;font:inherit;font-size:17px;display:grid;place-content:center;gap:4px;cursor:pointer;position:relative}.gps36-tabs button .ico{font-size:25px}.gps36-tabs button.active{color:var(--gps36-blue)}.gps36-tabs button.active:after{content:"";position:absolute;bottom:-1px;left:25%;right:25%;height:4px;border-radius:4px 4px 0 0;background:var(--gps36-blue);}
.gps36-trail-list{display:grid}.gps36-trail-row{width:100%;min-height:118px;border:0;border-bottom:1px solid var(--gps36-line);background:transparent;color:var(--gps36-text);padding:17px 4px;display:grid;grid-template-columns:78px 1fr auto;align-items:center;gap:12px;text-align:left;cursor:pointer}.gps36-weather{font-size:38px;text-align:center}.gps36-trail-row strong{display:block;font-size:22px;font-weight:550}.gps36-trail-row span{display:block;margin-top:7px;color:#c2c5cd;font-size:14px}.gps36-trail-row time{align-self:end;color:#d6d8df;font-size:13px}.gps36-empty{text-align:center;color:var(--gps36-muted);padding:70px 20px;line-height:1.6;}
.gps36-settings-list{display:grid;gap:12px}.gps36-setting-card{border:1px solid var(--gps36-line);border-radius:22px;background:var(--gps36-panel);padding:18px}.gps36-setting-card h3{margin:0 0 7px;font-size:17px}.gps36-setting-card p{margin:0 0 14px;color:var(--gps36-muted);font-size:13px;line-height:1.5}.gps36-setting-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gps36-setting-actions button{min-height:48px;border:1px solid #373c48;border-radius:15px;background:#1b1e27;color:#eef0f5;font:inherit;font-weight:750;cursor:pointer}.gps36-setting-actions .danger{color:#ff898d;border-color:#63383e}
/* Begleiter werden als klare Auswahlzeilen statt frei umbrechender Pills
   dargestellt. Die eigene Checkbox vermeidet übergroße iOS-Checkboxen. */
.gps36-settings-list .live-share-grid{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}
.gps36-settings-list .live-share-grid .check-pill{position:relative;width:100%;min-width:0;min-height:58px;margin:0;padding:10px 12px;display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:10px;border-radius:16px;background:#1b1e27;border:1px solid #373c48;color:#eef0f5;text-align:left}
.gps36-settings-list .f-live-share-check{position:absolute!important;inline-size:1px!important;block-size:1px!important;min-width:0!important;min-height:0!important;opacity:0!important;pointer-events:none!important}
.gps36-team-check{width:22px;height:22px;border:2px solid #7f8592;border-radius:7px;background:#0f1219;display:grid;place-items:center}
.f-live-share-check:checked+.gps36-team-check{background:#299b58;border-color:#65d58a}
.f-live-share-check:checked+.gps36-team-check::after{content:'✓';color:#fff;font-size:15px;font-weight:950;line-height:1}
.f-live-share-check:focus-visible+.gps36-team-check{outline:3px solid #8ab9ff;outline-offset:3px}
.gps36-team-person{min-width:0;display:block;line-height:1.25;hyphens:none;word-break:normal;overflow-wrap:normal}
.gps36-team-person strong{display:block;color:#f2f3f7;font-size:14px;font-weight:800}
.gps36-team-person small{display:block;margin-top:3px;color:#aeb4c0;font-size:11px;font-weight:650}
.gps36-detail-screen{overflow:auto;padding-bottom:calc(78px + env(safe-area-inset-bottom));}.gps36-detail-map{position:relative;height:min(70vh,680px);min-height:440px}.gps36-detail-map .gps36-map{position:absolute!important}.gps36-detail-top{background:rgba(10,12,18,.94)}.gps36-detail-top .ui-icon{width:24px;height:24px}.gps36-detail-content{width:min(100%,720px);margin:0 auto;padding:20px 20px 34px}.gps36-route-legend{display:flex;flex-wrap:wrap;gap:14px 26px;align-items:center;margin-bottom:22px}.gps36-route-legend span{display:flex;align-items:center;gap:10px;color:#e4e6eb}.gps36-route-dot{width:22px;height:22px;border-radius:50%;background:var(--trail-runner)}.gps36-route-dot.dog{background:var(--trail-dog)}
.gps36-detail-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:22px}.gps36-detail-metric{padding:13px 10px;border:1px solid var(--gps36-line);border-radius:18px;background:#12151d;min-width:0}.gps36-detail-metric strong{display:block;font-size:19px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gps36-detail-metric span{display:block;margin-top:5px;color:var(--gps36-muted);font-size:10px;text-transform:uppercase;font-weight:800;letter-spacing:.04em}.gps36-section-title{margin:24px 0 10px;color:var(--gps36-blue);font-size:17px;text-transform:uppercase;letter-spacing:.06em;border-bottom:2px solid var(--gps36-blue);padding-bottom:9px}.gps36-detail-grid{display:grid;grid-template-columns:minmax(110px,.7fr) 1.3fr;gap:10px 16px;font-size:15px}.gps36-detail-grid dt{color:#c6c9d1;text-transform:uppercase;font-size:12px;letter-spacing:.04em}.gps36-detail-grid dd{margin:0;color:#f3f4f7}.gps36-detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}.gps36-detail-actions button{min-height:52px;border:0;border-radius:17px;background:#262a34;color:#fff;font:inherit;font-weight:800;cursor:pointer}.gps36-detail-actions .save{background:#279755}
.gps36-form-screen{position:absolute;z-index:18;inset:0;overflow:hidden;background:var(--gps36-bg);padding:var(--app-safe-top) 0 calc(32px + env(safe-area-inset-bottom));display:flex;flex-direction:column}.gps36-form-screen>.gps36-panel-head{flex:0 0 auto}.gps36-form-body{width:min(100%,720px);margin:0 auto;padding:0 20px 28px;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.gps36-form-section-title{color:var(--gps36-blue);font-size:17px;text-transform:uppercase;letter-spacing:.06em;border-bottom:2px solid var(--gps36-blue);padding:18px 0 10px;margin-bottom:16px}.gps36-field{display:grid;grid-template-columns:128px minmax(0,1fr);align-items:center;gap:14px;margin-bottom:12px}.gps36-field label{font-size:12px;color:#d3d5dc;text-transform:uppercase;text-align:right;letter-spacing:.04em}.gps36-field input,.gps36-field select,.gps36-field textarea{width:100%;min-height:52px;border:1px solid #686d79;border-radius:10px;background:#10131a;color:#f4f5f8;padding:12px 14px;font:inherit}.gps36-field textarea{min-height:84px;resize:vertical}.gps36-form-save{position:sticky;bottom:10px;width:100%;min-height:58px;border:0;border-radius:18px;background:#299b58;color:#fff;font:inherit;font-weight:900;font-size:17px;cursor:pointer;box-shadow:0 10px 28px rgba(0,0,0,.35)}
.gps36-share-layer{position:absolute;z-index:30;inset:0;display:grid;align-items:end;padding:20px 18px calc(20px + env(safe-area-inset-bottom));background:rgba(0,0,0,.58);backdrop-filter:blur(3px)}.gps36-share-sheet{width:min(100%,520px);margin:0 auto;border-radius:28px;background:#25272d;overflow:hidden;text-align:center}.gps36-share-sheet h3{margin:0;padding:22px 20px 4px}.gps36-share-sheet p{margin:0;padding:0 24px 20px;color:#c5c8d0;font-size:13px;line-height:1.45}.gps36-share-sheet button{width:100%;min-height:68px;border:0;border-top:1px solid #454951;background:transparent;color:#9fc4ff;font:inherit;font-size:19px;cursor:pointer}.gps36-share-sheet .cancel{margin-top:12px;border:0;border-radius:24px;background:#25272d;color:#9fc4ff;}
.gps36-map-toggle{position:absolute;z-index:8;left:50%;top:calc(74px + var(--app-safe-top));transform:translateX(-50%);display:grid;grid-auto-flow:column;padding:3px;border-radius:999px;background:rgba(10,12,18,.88);backdrop-filter:blur(12px);box-shadow:0 8px 22px rgba(0,0,0,.24)}.gps36-map-toggle button{min-width:70px;min-height:34px;border:0;border-radius:999px;background:transparent;color:#bfc2ca;font:inherit;font-size:11px;font-weight:800;cursor:pointer}.gps36-map-toggle button.active{background:#f1f3f6;color:#11151d}.gps36-map-toggle button:disabled{opacity:.35}
.gps36-gps-health{position:absolute;z-index:7;top:calc(124px + var(--app-safe-top));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 36px);padding:9px 13px;border:1px solid rgba(255,255,255,.13);border-radius:999px;background:rgba(8,10,15,.88);color:#e6e8ed;font-size:11px;line-height:1.35;display:flex;align-items:center;gap:8px;box-shadow:0 8px 24px rgba(0,0,0,.24);backdrop-filter:blur(12px)}
.gps36-wake-warning{position:absolute;z-index:7;top:calc(164px + var(--app-safe-top));left:50%;transform:translateX(-50%);padding:7px 11px;border:1px solid rgba(255,187,82,.45);border-radius:999px;background:rgba(66,43,5,.9);color:#ffe2a3;font-size:10px;font-weight:800;white-space:nowrap;box-shadow:0 8px 20px rgba(0,0,0,.2)}
.gps36-gps-health i,.gps36-stability-state i{width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:#f0bd58;box-shadow:0 0 0 4px rgba(240,189,88,.13)}
.gps36-gps-health.ok i,.gps36-stability-state.ok i{background:#5dd682;box-shadow:0 0 0 4px rgba(93,214,130,.13)}
.gps36-gps-health.error i,.gps36-stability-state.error i{background:#ff696e;box-shadow:0 0 0 4px rgba(255,105,110,.13)}
.gps36-gps-health.paused i,.gps36-gps-health.background i,.gps36-stability-state.paused i,.gps36-stability-state.background i{background:#9ba1ad;box-shadow:0 0 0 4px rgba(155,161,173,.13)}
.gps36-stability-state{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid #373c48;border-radius:14px;background:#1b1e27;color:#dfe2e8;font-size:12px;line-height:1.45}.gps36-stability-state i{margin-top:4px}
.gps-trail-endpoint-wrap{background:transparent!important;border:0!important}.gps36-workspace .gps-trail-endpoint{display:block!important;width:28px!important;min-width:28px!important;height:28px!important;box-sizing:border-box!important;border:4px solid #fff;border-radius:50%;box-shadow:0 2px 8px rgba(0,0,0,.6)}.gps36-workspace .gps-trail-endpoint.start{background:#21cf45}.gps36-workspace .gps-trail-endpoint.finish{width:30px!important;min-width:30px!important;height:30px!important;background:conic-gradient(#111 0 25%,#fff 0 50%,#111 0 75%,#fff 0) 0 0/10px 10px}.gps-trail-endpoint.runner{outline:2px solid rgba(59,130,246,.7)}.gps-trail-endpoint.dog{outline:2px solid rgba(255,81,87,.75)}
.gps36-form-body{padding-bottom:120px}
@media(min-width:850px){.gps36-workspace:before{content:"";position:absolute;inset:0;background:#080a0f}.gps36-map-screen,.gps36-detail-screen,.gps36-panel-screen,.gps36-form-screen{left:50%;right:auto;width:min(760px,100%);transform:translateX(-50%);box-shadow:0 0 70px rgba(0,0,0,.55)}.gps36-bottom-nav{left:50%;right:auto;width:min(760px,100%);transform:translateX(-50%)}.gps36-modal-layer,.gps36-share-layer{left:50%;right:auto;width:min(760px,100%);transform:translateX(-50%)}}
@media(max-width:520px){.gps36-settings-list .live-share-grid{grid-template-columns:1fr}.gps36-settings-list .live-share-grid .check-pill{min-height:60px}}
@media(max-width:420px){.gps36-topbar{padding-left:12px;padding-right:12px}.gps36-panel-head{grid-template-columns:44px minmax(0,1fr) 44px;padding-left:12px;padding-right:12px;gap:6px}.gps36-icon-btn{width:44px;height:44px}.gps36-map-tools{right:10px}.gps36-map-screen>.gps36-map-tools{bottom:calc(292px + env(safe-area-inset-bottom))}.gps36-record-card{padding:0 8px}.gps36-primary{min-height:68px;border-radius:24px}.gps36-live-panel{border-radius:24px}.gps36-live-actions{gap:9px;padding-left:8px;padding-right:8px}.gps36-pause{width:118px}.gps36-detail-map{height:68vh;min-height:430px}.gps36-detail-metrics{grid-template-columns:1fr 1fr}.gps36-field{grid-template-columns:98px minmax(0,1fr);gap:10px}.gps36-field label{font-size:10px}.gps36-trail-row{grid-template-columns:62px 1fr auto}.gps36-trail-row strong{font-size:19px}.gps36-gps-health{top:calc(116px + var(--app-safe-top));font-size:10px;border-radius:17px;text-align:left}}

/* Letzte mobile Sicherheitsregel: auch GPS-Karten- und Vergleichsschalter sind
   ohne Präzisionstreffer bedienbar. Diese Regel steht bewusst am Dateiende. */
@media (max-width: 820px) {
  .app-install-btn,
  .portal-btn,
  .btn,
  .btn-sm,
  .tiny-btn,
  .edit-btn,
  .del-btn,
  .wizard-step,
  .training-filter-chip,
  .termin-rsvp button,
  .lang-btn,
  .sheet-close,
  .action-sheet .sheet-head button,
  .trail-view-toggle button,
  .gps36-map-toggle button {
    min-height: 46px !important;
  }

  .del-btn,
  .sheet-close,
  .action-sheet .sheet-head button {
    min-width: 44px !important;
  }

  .gps36-icon-btn {
    width: 44px !important;
    height: 44px !important;
  }

  /* Das Dock erhält einen eigenen Bereich. So liegen Formulare, Karten und
     Suchfelder auch während des Scrollens nie unter der Navigation. */
  body.has-mobile-nav {
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
  }

  body.has-mobile-nav .app {
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    padding-bottom: 0 !important;
    overflow: hidden;
  }

  body.has-mobile-nav .content {
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
    margin-bottom: calc(98px + env(safe-area-inset-bottom));
    padding-bottom: 24px !important;
    scroll-padding-top: 16px;
    scroll-padding-bottom: 24px !important;
  }
}

/* Kalender v39: Teilnehmernamen bleiben in beiden Farbschemata lesbar. */
.termin-people{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;}
.termin-person{min-width:0;min-height:42px;display:flex;align-items:center;padding:9px 12px;border-radius:14px;font-weight:800;line-height:1.35;white-space:normal;overflow-wrap:anywhere;color:#183d20;}
.termin-person.kommt{color:#164a20;}
.termin-person.vielleicht{color:#604800;}
.termin-person.absage{color:#8a1f1f;}
html[data-theme="dark"] .termin-person{background:#18261d!important;border-color:#395044!important;color:#eff8f1!important;}
html[data-theme="dark"] .termin-person.kommt{background:#173d25!important;border-color:#347a48!important;color:#dfffe7!important;}
html[data-theme="dark"] .termin-person.vielleicht{background:#3c3218!important;border-color:#87722a!important;color:#fff1a8!important;}
html[data-theme="dark"] .termin-person.absage{background:#412021!important;border-color:#925052!important;color:#ffd9da!important;}

/* Meine Trainings v40: Medien direkt ansehen statt nur deren Anzahl zu zeigen. */
.media-open-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;}
.my-training-media{margin:12px;padding:12px;border:1px solid var(--border);border-radius:18px;background:var(--surface-2);}
.my-training-media-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;}
.my-training-media-head strong{color:var(--g1);font-size:14px;}
.my-training-media-head span{color:var(--muted);font-size:11px;font-weight:800;}
.my-training-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:9px;margin-bottom:12px;}
.my-training-photo{min-width:0;aspect-ratio:4/3;padding:0;border:1px solid var(--border);border-radius:15px;overflow:hidden;background:#101813;cursor:pointer;box-shadow:0 6px 16px rgba(15,63,34,.10);}
.my-training-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .16s ease;}
.my-training-photo:hover img{transform:scale(1.035);}
.my-training-photo:focus-visible{outline:3px solid var(--gold);outline-offset:3px;}
.my-training-media .my-training-preview-videos{margin-top:10px;}
.my-training-media .video-card{background:var(--surface);}
.lightbox{z-index:16000;cursor:default;}
.lightbox img{max-width:min(96vw,1200px);max-height:88vh;object-fit:contain;box-shadow:0 20px 70px rgba(0,0,0,.5);}
.lightbox-close{position:fixed;top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));z-index:1;width:48px;height:48px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(10,16,12,.82);color:#fff;font:inherit;font-size:30px;line-height:1;cursor:pointer;display:grid;place-items:center;backdrop-filter:blur(10px);}
@media(max-width:820px){
  .my-training-media{margin:10px;padding:10px;border-radius:16px;}
  .my-training-media-head{display:grid;grid-template-columns:1fr;gap:3px;}
  .my-training-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .my-training-photo{width:100%;min-height:112px!important;}
  .my-training-media .my-training-preview-videos video{max-height:58vh;}
  .media-open-btn{width:100%;min-height:46px!important;}
}

/* Foto- und Kartenlinks v41: sichtbare Medienaktion und mobiler Terminort. */
.photo-upload-box{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:9px;background:var(--g5);border:1px dashed var(--border);border-radius:18px;padding:12px;}
.photo-select-btn{min-height:44px;justify-content:center;}
.photo-upload-empty{width:100%;font-size:11px;color:var(--muted);padding-top:2px;}
.photo-upload-box .foto-upload-row{width:100%;margin-top:4px;padding:0!important;border:0!important;background:transparent!important;}
.termin-desc{overflow-wrap:anywhere;white-space:normal;}
.termin-desc a{color:var(--link,#1769aa);font-weight:850;text-decoration:underline;text-underline-offset:2px;}
.termin-desc a:focus-visible,.termin-map-link:focus-visible{outline:3px solid var(--gold);outline-offset:3px;}
.termin-map-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;}
.termin-map-preview{min-height:44px;white-space:nowrap;}
.termin-location-card{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;padding:10px 11px;border:1px solid var(--border2);border-radius:15px;background:var(--g5);}
.termin-location-card>div{display:flex;gap:8px;align-items:center;min-width:0;}
.termin-location-icon{font-size:20px;}
.termin-location-card strong,.termin-location-card small{display:block;}
.termin-location-card strong{color:var(--g1);font-size:13px;overflow-wrap:anywhere;}
.termin-location-card small{color:var(--muted);font-size:11px;margin-top:2px;}
.termin-map-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 12px;border-radius:999px;background:var(--g2);color:#fff!important;text-decoration:none!important;font-size:12px;font-weight:900;white-space:nowrap;}
html[data-theme="dark"] .termin-desc a{color:#8fc5ff;}
@media(max-width:560px){
  .termin-map-input-row{grid-template-columns:1fr;}
  .termin-map-preview,.termin-map-link,.photo-select-btn{width:100%;}
  .termin-location-card{align-items:stretch;flex-direction:column;}
}

/* Dark-Mode-Training v42: ältere, fest helle Mini-Flächen übernehmen das Theme. */
html[data-theme="dark"] .training-list-head{
  background:#16201a!important;
  border-color:#33483a!important;
  box-shadow:0 8px 24px rgba(0,0,0,.20);
}
html[data-theme="dark"] .training-list-head .section-lbl{
  color:#c6dacb!important;
}
html[data-theme="dark"] .app-main-nav .app-nav-tab{
  color:#b8cdbc!important;
}
html[data-theme="dark"] .app-main-nav .app-nav-tab.active:not(.app-nav-plus){
  background:#203526!important;
  color:#e8f8ec!important;
}
html[data-theme="dark"] .app-main-nav .app-nav-tab.app-nav-plus{
  background:var(--g2)!important;
  color:#fff!important;
}
html[data-theme="dark"] .edit-mode-banner span{
  color:#d7cfa9!important;
}
html[data-theme="dark"] .sess-card{
  background:#16201a!important;
  border-color:#33483a!important;
  color:#e8f2ea!important;
}
html[data-theme="dark"] .sess-date,
html[data-theme="dark"] .sess-card .fd-v,
html[data-theme="dark"] .sess-card .sv{
  color:#e8f2ea!important;
}
html[data-theme="dark"] .sess-meta,
html[data-theme="dark"] .sess-card .sl{
  color:#b8cdbc!important;
}
html[data-theme="dark"] .sess-meta strong{
  color:#e8f2ea!important;
}
html[data-theme="dark"] .sess-summary span,
html[data-theme="dark"] .media-icons span,
html[data-theme="dark"] .sess-card .tag,
html[data-theme="dark"] .sess-card .fd-item{
  background:#1d2b22!important;
  border-color:#3a5041!important;
  color:#e8f2ea!important;
}
html[data-theme="dark"] .sess-preview{
  background:#1b2920!important;
  border-color:#3a5041!important;
  color:#c8d9cc!important;
}
html[data-theme="dark"] .sess-preview strong{
  color:#f0f8f2!important;
}
html[data-theme="dark"] .sess-quality,
html[data-theme="dark"] .sess-quality.good{
  background:#173d25!important;
  border-color:#347a48!important;
  color:#dfffe7!important;
}
html[data-theme="dark"] .sess-quality.open{
  background:#3c3218!important;
  border-color:#87722a!important;
  color:#fff1a8!important;
}
html[data-theme="dark"] .sess-card .badge.b-weather,
html[data-theme="dark"] .sess-card .badge.b-low{
  background:#173d25!important;
  color:#dfffe7!important;
  border:1px solid #347a48!important;
}
html[data-theme="dark"] .sess-card .badge.b-mid,
html[data-theme="dark"] .media-icons span.warn{
  background:#3c3218!important;
  color:#fff1a8!important;
  border:1px solid #87722a!important;
}
html[data-theme="dark"] .sess-card .badge.b-high{
  background:#412021!important;
  color:#ffd9da!important;
  border:1px solid #925052!important;
}
html[data-theme="dark"] .media-icons span.live{
  background:#152b43!important;
  border-color:#37658f!important;
  color:#c7e1ff!important;
}
html[data-theme="dark"] .media-icons span.ok{
  background:#173d25!important;
  border-color:#347a48!important;
  color:#dfffe7!important;
}
html[data-theme="dark"] .sess-more>summary{
  background:#1d2b22!important;
  border-color:#3a5041!important;
  color:#e8f2ea!important;
}
html[data-theme="dark"] .sess-card .next-box{
  background:#3c3218!important;
  border-color:#87722a!important;
}
html[data-theme="dark"] .sess-card .next-box .nl,
html[data-theme="dark"] .sess-card .next-box .nv{
  color:#fff1a8!important;
}
/* ─────────────────────────────────────────────────────────────
   v50 · Runner-Auswahl und GPS-Rettung; Chat-Start bleibt erhalten
   Termin-, Gruppen- und Direktchats teilen dieselbe ruhige Kartenoptik.
   ───────────────────────────────────────────────────────────── */
.chat-unread-badge{
  display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;
  border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:900;
  line-height:1;box-shadow:0 0 0 2px var(--surface,#102319)
}
.chat-header-icon{position:relative;font-size:20px}.chat-header-icon .chat-unread-badge{position:absolute;right:2px;top:1px}
.chat-header-link{gap:7px}.chat-card{border-top-color:#65a9ff!important}
.termin-chat-button{
  width:100%;min-height:48px;margin:12px 0;border:1px solid rgba(101,169,255,.45);
  border-radius:16px;background:rgba(101,169,255,.10);color:var(--text,#edf7ef);
  font:inherit;font-weight:850;cursor:pointer
}
.termin-chat-button:hover{background:rgba(101,169,255,.18);border-color:#65a9ff}
.termin-chat-hint{margin:12px 0;padding:11px 13px;border:1px dashed var(--border);border-radius:14px;background:var(--surface-2);color:var(--muted);font-size:12px;line-height:1.4}
.chat-loading{display:grid;place-items:center;min-height:55vh;color:var(--muted);font-weight:800}
.chat-shell{
  display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);height:min(760px,calc(100dvh - 245px));
  min-height:580px;overflow:hidden;border:1px solid var(--line);border-radius:28px;
  background:color-mix(in srgb,var(--surface) 94%,#000);box-shadow:0 20px 55px rgba(0,0,0,.22)
}
.chat-sidebar{display:flex;min-width:0;flex-direction:column;border-right:1px solid var(--line);background:rgba(5,18,12,.38)}
.chat-sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 22px 14px}
.chat-sidebar-head h2{margin:3px 0 0;font-size:28px;line-height:1.05}.chat-sidebar-head .portal-eyebrow{font-size:11px}
.chat-new-button{
  display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border:0;border-radius:16px;
  background:var(--green,#2d9c55);color:#fff;font:900 26px/1 system-ui;cursor:pointer
}
.chat-search{display:flex;align-items:center;gap:8px;margin:0 16px 12px;padding:0 13px;border:1px solid var(--line);border-radius:14px;background:var(--field,#0c1a13)}
.chat-search input{width:100%;min-width:0;height:44px;padding:0;border:0;background:transparent;color:var(--text);font:inherit;outline:0}
.chat-list{min-height:0;overflow-y:auto;padding:0 10px 16px;overscroll-behavior:contain}
.chat-list-item{
  display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:11px;width:100%;min-height:72px;
  padding:10px;border:0;border-radius:17px;background:transparent;color:var(--text);text-align:left;font:inherit;cursor:pointer
}
.chat-list-item:hover{background:rgba(255,255,255,.045)}.chat-list-item.active{background:rgba(45,156,85,.18);box-shadow:inset 3px 0 0 var(--green)}
.chat-avatar{display:grid;place-items:center;width:48px;height:48px;overflow:hidden;border:1px solid var(--line);border-radius:50%;background:linear-gradient(145deg,#204a32,#14271c);color:#dff7e7;font-weight:900}
.chat-avatar img{width:100%;height:100%;object-fit:cover}.chat-list-copy{display:block;min-width:0}.chat-list-copy>span{display:flex;align-items:center;justify-content:space-between;gap:8px}
.chat-list-copy strong,.chat-list-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-list-copy strong{font-size:14px}.chat-list-copy small{margin-top:5px;color:var(--muted);font-size:12px}
.chat-list-copy time{color:var(--muted);font-size:10px;white-space:nowrap}.chat-count{display:grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:999px;background:var(--green);color:#fff;font-size:11px;font-weight:900}
.chat-empty-small,.chat-welcome,.chat-empty-thread{display:grid;place-items:center;text-align:center;color:var(--muted)}
.chat-empty-small{gap:7px;padding:50px 22px}.chat-empty-small>span,.chat-welcome>div{font-size:42px}.chat-empty-small strong,.chat-welcome h2,.chat-empty-thread strong{color:var(--text)}
.chat-empty-small button{min-height:42px;margin-top:8px;padding:0 16px;border:0;border-radius:13px;background:var(--green);color:#fff;font-weight:850}
.chat-welcome{align-content:center;gap:9px;padding:40px}.chat-welcome h2,.chat-welcome p{max-width:470px;margin:0}.chat-welcome p{line-height:1.55}
.chat-conversation{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;min-height:0;background:linear-gradient(180deg,rgba(18,42,27,.48),rgba(6,15,10,.72))}
.chat-conversation-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:76px;padding:10px 18px;border-bottom:1px solid var(--line);background:rgba(8,25,16,.88);backdrop-filter:blur(14px)}
.chat-conversation-head>div{min-width:0}.chat-conversation-head strong,.chat-conversation-head span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-conversation-head strong{font-size:17px}.chat-conversation-head span{margin-top:4px;color:var(--muted);font-size:12px}
.chat-back,.chat-info-button{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.035);color:var(--text);font:700 24px/1 system-ui;cursor:pointer}.chat-back{display:none;font-size:34px}
.chat-messages{min-height:0;overflow-y:auto;padding:22px clamp(12px,3vw,34px);overscroll-behavior:contain;scroll-behavior:smooth}
.chat-day-divider{display:flex;justify-content:center;margin:9px 0 17px}.chat-day-divider span{padding:5px 11px;border:1px solid var(--line);border-radius:999px;background:rgba(6,15,10,.78);color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.chat-message-row{display:flex;margin:5px 0}.chat-message-row.own{justify-content:flex-end}.chat-bubble{max-width:min(76%,620px);padding:9px 12px 7px;border:1px solid var(--line);border-radius:17px 17px 17px 5px;background:#16291e;color:var(--text);box-shadow:0 5px 16px rgba(0,0,0,.13)}
.chat-message-row.own .chat-bubble{border-color:rgba(65,178,102,.35);border-radius:17px 17px 5px 17px;background:#1d5b35}.chat-bubble>strong{display:block;margin-bottom:4px;color:#8fd6a6;font-size:11px}.chat-message-text{overflow-wrap:anywhere;white-space:pre-wrap;line-height:1.42}.chat-message-text a{color:#9dc7ff;text-decoration:underline}
.chat-message-meta{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:4px;color:rgba(255,255,255,.62);font-size:9px}.chat-message-meta button{padding:0;border:0;background:transparent;color:inherit;cursor:pointer}.chat-bubble.deleted{background:rgba(255,255,255,.04);color:var(--muted);font-size:12px}
.chat-audio-message{display:grid;grid-template-columns:auto minmax(150px,300px) auto;align-items:center;gap:8px}.chat-audio-message audio{width:100%;height:38px}.chat-audio-message small{white-space:nowrap;color:var(--muted)}
.chat-empty-thread{align-content:center;min-height:100%;gap:6px;padding:20px}.chat-empty-thread>span{font-size:38px}.chat-empty-thread small{max-width:430px;line-height:1.55}
.chat-compose-bar{display:flex;align-items:flex-end;gap:9px;padding:12px max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border-top:1px solid var(--line);background:rgba(6,20,12,.94);backdrop-filter:blur(16px)}
.chat-compose-bar textarea{width:100%;min-height:46px;max-height:120px;resize:none;padding:12px 14px;border:1px solid var(--line);border-radius:17px;background:var(--field,#0b1b12);color:var(--text);font:inherit;line-height:1.35;outline:0}.chat-compose-bar textarea:focus{border-color:var(--green)}
.chat-mic-button,.chat-send-button{display:grid;place-items:center;height:46px;border:0;border-radius:15px;color:#fff;font-size:19px;cursor:pointer}.chat-mic-button{grid-template-columns:auto auto;gap:4px;width:auto;min-width:64px;padding:0 9px;flex:0 0 auto;background:rgba(255,255,255,.09)}.chat-mic-label{font-size:10px;font-weight:850}.chat-send-button{width:46px;flex:0 0 46px;background:var(--green)}
.chat-compose-bar.recording,.chat-compose-bar.audio-ready{align-items:center;flex-wrap:wrap;min-height:72px}.chat-record-dot{width:12px;height:12px;border-radius:50%;background:#ef4444;animation:chat-record-pulse 1s infinite}.chat-compose-bar.recording button,.chat-compose-bar.audio-ready button{min-height:42px;padding:0 14px;border:1px solid var(--line);border-radius:13px;background:transparent;color:var(--text);font-weight:800}.chat-compose-bar .chat-stop-record,.chat-compose-bar .chat-send-audio{margin-left:auto!important;border-color:transparent!important;background:var(--green)!important;color:#fff!important}.chat-compose-bar.audio-ready audio{flex:1;min-width:210px;height:40px}.chat-compose-bar.audio-ready>span{color:var(--muted);font-size:11px}
@keyframes chat-record-pulse{50%{opacity:.35;transform:scale(.8)}}
.chat-modal-backdrop{position:fixed;z-index:50000;inset:0;background:rgba(0,0,0,.64);backdrop-filter:blur(5px)}
.chat-new-modal{position:fixed;z-index:50001;top:50%;left:50%;display:grid;width:min(560px,calc(100vw - 28px));height:min(760px,calc(100dvh - 28px));overflow:hidden;transform:translate(-50%,-50%);border:1px solid var(--line);border-radius:25px;background:var(--surface,#102319);box-shadow:0 28px 90px rgba(0,0,0,.48)}
.chat-new-modal.direct{grid-template-rows:auto auto auto minmax(140px,1fr) auto}.chat-new-modal.group{grid-template-rows:auto auto auto auto minmax(140px,1fr) auto}
.chat-new-modal>header{display:flex;align-items:center;justify-content:space-between;padding:22px 22px 12px}.chat-new-modal h2{margin:3px 0 0}.chat-new-modal>header>button{width:42px;height:42px;border:1px solid var(--line);border-radius:13px;background:transparent;color:var(--text);font-size:25px}
.chat-type-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 22px 15px;padding:5px;border:1px solid var(--line);border-radius:15px}.chat-type-tabs button{min-height:42px;border:0;border-radius:11px;background:transparent;color:var(--muted);font-weight:850}.chat-type-tabs button.active{background:var(--green);color:#fff}
.chat-group-title,.chat-member-search{display:grid;gap:6px;margin:0 22px 13px;color:var(--muted);font-size:12px;font-weight:800}.chat-group-title input,.chat-member-search input{height:46px;padding:0 13px;border:1px solid var(--line);border-radius:13px;background:var(--field,#0b1b12);color:var(--text);font:inherit}
.chat-member-list{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 14px 12px}.chat-member-choice{display:grid;grid-template-columns:auto 48px minmax(0,1fr);align-items:center;gap:10px;width:100%;min-height:66px;padding:8px;border:0;border-radius:15px;background:transparent;color:var(--text);text-align:left;font:inherit;cursor:pointer}.chat-member-choice.direct{grid-template-columns:48px minmax(0,1fr) auto}.chat-member-choice:hover,.chat-member-choice.selected{background:rgba(45,156,85,.12)}.chat-member-choice input{width:20px;height:20px;accent-color:var(--green)}.chat-member-choice .chat-avatar{width:44px;height:44px}.chat-member-choice strong,.chat-member-choice small{display:block}.chat-member-choice small{margin-top:3px;color:var(--muted)}.chat-member-open{padding:0 8px;color:var(--green);font-size:34px;line-height:1}
.chat-new-modal>footer{position:relative;z-index:2;display:flex;justify-content:flex-end;gap:9px;padding:14px 22px max(20px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--white);box-shadow:0 -12px 25px rgba(0,0,0,.08)}.chat-new-modal>footer p{margin:0 auto 0 0;color:var(--muted);font-size:12px;line-height:1.35}.chat-new-modal>footer button{min-height:46px;padding:0 18px;border:1px solid var(--line);border-radius:14px;background:transparent;color:var(--text);font-weight:850}.chat-new-modal>footer button.primary{border-color:transparent;background:var(--green);color:#fff}
body.chat-composer-open{overflow:hidden}body.chat-composer-open #mobile-nav-root,body.chat-composer-open #help-fab-root{display:none!important}

@media(max-width:760px){
  .chat-header-link{display:none!important}.chat-shell{grid-template-columns:1fr;width:calc(100% + 16px);height:calc(100dvh - 225px);min-height:0;margin:0 -8px;border-radius:22px}
  .chat-sidebar{border-right:0}.chat-shell:not(.has-active) .chat-conversation{display:none}.chat-shell.has-active .chat-sidebar{display:none}.chat-conversation-head{min-height:68px;padding:8px 10px}.chat-back{display:grid}
  .chat-messages{padding:16px 10px}.chat-bubble{max-width:86%}.chat-audio-message{grid-template-columns:auto minmax(130px,1fr)}.chat-audio-message small{grid-column:2}
  .chat-compose-bar{padding-bottom:max(11px,env(safe-area-inset-bottom))}.chat-compose-bar.audio-ready audio{min-width:160px;width:100%}.chat-compose-bar.audio-ready>span{display:none}
  .chat-new-modal{top:auto;bottom:0;left:0;width:100%;height:min(90dvh,780px);transform:none;border-radius:24px 24px 0 0}
  .chat-sidebar-head{padding:18px 17px 12px}.chat-sidebar-head h2{font-size:25px}.chat-search{margin-inline:12px}.chat-list{padding-inline:6px}
}
@media(max-width:390px){
  .chat-shell{height:calc(100dvh - 210px)}.chat-bubble{max-width:91%}.chat-compose-bar{gap:6px}.chat-mic-button{min-width:58px;height:43px;padding-inline:7px}.chat-send-button{width:43px;height:43px;flex-basis:43px}.chat-new-modal>header,.chat-new-modal>footer{padding-inline:16px}.chat-type-tabs,.chat-group-title,.chat-member-search{margin-inline:16px}
}
@media(max-height:650px){
  /* Auf sehr kurzen iPhones scrollt die Mitgliederliste, während die
     Gruppenaktionen vollständig im sichtbaren Dialog bleiben. */
  .chat-new-modal.group{grid-template-rows:auto auto auto auto minmax(70px,1fr) auto}
  .chat-new-modal>header{padding-top:14px;padding-bottom:8px}
  .chat-type-tabs{margin-bottom:10px}.chat-group-title,.chat-member-search{margin-bottom:8px}
}
@media(prefers-reduced-motion:reduce){.chat-record-dot{animation:none}.chat-messages{scroll-behavior:auto}}

/* Theme-Korrektur: Basis ist hell, die vorhandenen Portal-Tokens wechseln im
   dunklen Theme automatisch. Damit bleiben Text und Bedienelemente lesbar. */
.chat-shell{background:var(--white);box-shadow:0 20px 55px rgba(0,0,0,.16)}
.chat-sidebar{border-color:var(--border);background:var(--surface-2)}
.chat-search{border-color:var(--border);background:var(--surface)}
.chat-list-item:hover{background:rgba(45,106,45,.07)}
.chat-list-item.active{background:rgba(45,156,85,.14);box-shadow:inset 3px 0 0 var(--g2)}
.chat-conversation{background:linear-gradient(180deg,var(--surface-2),var(--bg))}
.chat-conversation-head{border-color:var(--border);background:color-mix(in srgb,var(--surface) 94%,transparent)}
.chat-back,.chat-info-button{border-color:var(--border);background:var(--surface-2);color:var(--text)}
.chat-day-divider span{border-color:var(--border);background:var(--surface);color:var(--muted)}
.chat-bubble{border-color:var(--border);background:var(--white);color:var(--text);box-shadow:0 5px 16px rgba(0,0,0,.09)}
.chat-message-row.own .chat-bubble{border-color:rgba(65,178,102,.35);background:var(--g2);color:#fff}
.chat-bubble>strong{color:var(--g2)}
.chat-message-text{color:inherit}
.chat-message-text a{color:var(--blue)}
.chat-message-row.own .chat-message-text a{color:#d4e9ff}
.chat-message-meta{color:var(--muted)}
.chat-message-row.own .chat-message-meta{color:rgba(255,255,255,.74)}
.chat-bubble.deleted{background:var(--surface-2);color:var(--muted)}
.chat-compose-bar{border-color:var(--border);background:color-mix(in srgb,var(--surface) 96%,transparent)}
.chat-compose-bar textarea,.chat-group-title input,.chat-member-search input{border-color:var(--border);background:var(--surface-2);color:var(--text)}
.chat-new-modal{border-color:var(--border);background:var(--white);box-shadow:0 28px 90px rgba(0,0,0,.32)}
html[data-theme="dark"] .chat-new-modal>footer{background:var(--white)}
html[data-theme="dark"] .chat-list-item:hover{background:rgba(255,255,255,.045)}
html[data-theme="dark"] .chat-list-item.active{background:rgba(45,156,85,.18)}
html[data-theme="dark"] .chat-message-row.own .chat-bubble{background:#1d5b35}
html[data-theme="dark"] .chat-bubble>strong{color:#8fd6a6}
html[data-theme="dark"] .chat-message-text a{color:#9dc7ff}
.chat-new-button,.chat-count,.chat-empty-small button,.chat-send-button,
.chat-compose-bar .chat-stop-record,.chat-compose-bar .chat-send-audio,
.chat-type-tabs button.active,.chat-new-modal>footer button.primary{background:var(--g2)!important;color:#fff!important}
.chat-compose-bar textarea:focus{border-color:var(--g2)}
.chat-new-modal>footer{align-items:center;min-height:80px}
.chat-new-modal>footer button{height:46px;min-height:46px;align-self:center}
.chat-shell,.chat-avatar,.chat-compose-bar.recording button,.chat-compose-bar.audio-ready button,
.chat-new-modal>header>button,.chat-type-tabs,.chat-new-modal>footer{border-color:var(--border)}
@media(max-width:820px){
  body.chat-view-active .vdh-helper{bottom:calc(214px + env(safe-area-inset-bottom))}
  body.chat-view-active .vdh-helper:not(.is-open) .vdh-helper-mascot{transform:scale(.78);transform-origin:bottom right}
  body.chat-view-active .vdh-helper--left:not(.is-open) .vdh-helper-mascot{transform-origin:bottom left}
}
