*{box-sizing:border-box}
:root{
  --bg:#031326;--panel:#071b32;--panel2:#041426;--line:#1c86e8;
  --text:#f5f9ff;--muted:#b9c9dc;--blue:#55a7ff;
  --green:#2eb83c;--yellow:#ffc936;--soft:#dbe8f6;
}
html{min-height:100%;background:#031326}
body{
  margin:0;min-height:100vh;color:var(--text);
  font-family:Inter,Segoe UI,Arial,sans-serif;
  background: linear-gradient(rgba(2,12,26,.18),rgba(1,12,25,.30)), url("assets/lerntrainer-bg.jpg") center top/cover fixed no-repeat;
}
body:before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;
  background: radial-gradient(circle at 10% 17%,rgba(40,135,255,.08),transparent 23%), radial-gradient(circle at 92% 12%,rgba(40,135,255,.06),transparent 25%);
  background-size:auto,auto;
}
.page-shell{width:min(1220px,calc(100% - 34px));margin:0 auto;padding:24px 0 22px}
.hero{text-align:center;padding:0 0 24px}
.academy-mark{width:108px;height:70px;margin:0 auto 5px;filter:drop-shadow(0 0 16px rgba(70,163,255,.2))}
.academy-mark svg{width:100%;height:100%;fill:#68b4ff}
.brand h1{margin:0;font-size:clamp(34px,5vw,56px);line-height:.94;letter-spacing:-1.8px;font-weight:900}
.brand h1 span{color:#5eaaff}
.brand-sub{margin-top:12px;letter-spacing:10px;font-size:clamp(15px,2vw,24px);color:#d9e4f1;font-weight:300}
.brand-line{width:136px;height:3px;background:#55a7ff;margin:18px auto 16px;border-radius:9px;box-shadow:0 0 12px rgba(85,167,255,.35)}
.brand p{margin:0;font-size:clamp(18px,2vw,25px);letter-spacing:.6px;color:#f1f6fc}

.trainer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.trainer-card{
  position:relative;display:flex;flex-direction:column;min-height:314px;overflow:hidden;
  border:1.5px solid #2789e5;border-radius:13px;background:#041426;color:inherit;
  text-decoration:none;text-align:left;box-shadow:0 15px 40px rgba(0,0,0,.24),inset 0 0 0 1px rgba(255,255,255,.025);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
  padding:0;font:inherit;cursor:pointer
}
.trainer-card:hover,.trainer-card:focus-visible{
  transform:translateY(-4px);border-color:#69b9ff;
  box-shadow:0 20px 48px rgba(0,0,0,.33),0 0 22px rgba(41,137,229,.18);
  outline:none
}
.card-art{height:150px;background-position:center;background-size:cover;position:absolute;inset:0 0 auto 0}
.card-shade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(2,10,22,.02) 0,rgba(3,15,29,.22) 30%,#041426 58%,#041426 100%)}
.card-body{position:relative;z-index:2;display:flex;gap:14px;align-items:flex-start;padding:140px 16px 0}
.icon-badge{
  width:62px;height:62px;flex:0 0 62px;border-radius:50%;display:grid;place-items:center;
  border:3px solid #fff;box-shadow:0 0 0 3px rgba(255,255,255,.12),0 6px 22px rgba(0,0,0,.22)
}
.icon-badge.blue{background:#3f8de3}.icon-badge.red{background:#e42027}.icon-badge.indigo{background:#263f9f}
.icon-badge svg{width:38px;height:38px;fill:#fff}.icon-badge svg .inner{fill:none;stroke:#fff;stroke-width:4}
.icon-badge svg .stroke{fill:none;stroke:#fff;stroke-width:4;stroke-linecap:round}
.steering svg{fill:none;stroke:#fff;stroke-width:4}.steering svg .inner{fill:none}
.text h2{font-size:21px;line-height:1.02;margin:6px 0 12px;font-weight:850;letter-spacing:-.2px}
.text p{text-transform:uppercase;font-size:12.5px;line-height:1.45;letter-spacing:.8px;color:#c3d2e4;margin:0}
.card-footer{position:relative;z-index:3;margin-top:auto;padding:17px 16px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.status{display:inline-flex;align-items:center;gap:8px;height:35px;padding:0 14px;border-radius:10px;font-size:12px;font-weight:900;letter-spacing:1.3px;white-space:nowrap}
.status b{font-size:18px;line-height:1}
.status-live{background:linear-gradient(#3bbb44,#24962f);color:#fff}
.status-work{background:linear-gradient(#ffda48,#ffbd22);color:#1d2630}
.status-soon{background:linear-gradient(#e5edf5,#cbd9e8);color:#203046}
.arrow{width:40px;height:40px;border-radius:50%;border:2px solid #4da8ff;color:#d7efff;display:grid;place-items:center;font-size:35px;line-height:1;font-weight:300}

.more{padding:34px 0 0}
.more-title{display:flex;align-items:center;justify-content:center;gap:24px;color:#72b8ff;font-size:14px;letter-spacing:5px;text-align:center}
.more-title span{height:1px;background:#69b6ff;width:130px}
.benefits{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:720px;margin:30px auto 0}
.benefit{text-align:center;color:#b8cbe0;font-size:11px;letter-spacing:.9px;line-height:1.35}
.benefit svg{width:42px;height:42px;display:block;margin:0 auto 8px;fill:none;stroke:#56aaff;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
.benefit strong{font-weight:600}
footer{text-align:center;color:#6f8eae;font-size:11px;letter-spacing:1.2px;padding:22px 0 0}

.modal[hidden]{display:none}.modal{position:fixed;inset:0;z-index:99;display:grid;place-items:center;padding:20px}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,8,18,.78);backdrop-filter:blur(8px)}
.modal-card{position:relative;width:min(440px,100%);background:linear-gradient(145deg,#0a2542,#06172b);border:1px solid #358ee1;border-radius:18px;padding:34px;text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 28px rgba(57,146,229,.15)}
.modal-close{position:absolute;right:12px;top:8px;border:0;background:transparent;color:#9ebbd7;font-size:32px;cursor:pointer}
.modal-clock{font-size:42px;color:#6bb7ff}.modal-card h3{margin:8px 0 10px;letter-spacing:3px}.modal-card p{margin:0 0 22px;color:#c9d8e8;line-height:1.55}
.modal-ok{border:1px solid #55a9f7;background:#116dbb;color:white;border-radius:10px;padding:10px 28px;font-weight:800;cursor:pointer}

@media(max-width:940px){.trainer-grid{grid-template-columns:repeat(2,1fr)}.page-shell{width:min(860px,calc(100% - 28px))}}
@media(max-width:620px){
  .page-shell{width:min(430px,calc(100% - 20px));padding-top:18px}
  .academy-mark{width:82px;height:52px}.brand-sub{letter-spacing:6px}.hero{padding-bottom:20px}
  .trainer-grid{grid-template-columns:1fr;gap:15px}.trainer-card{min-height:292px}
  .card-art{height:142px}.card-body{padding-top:138px}
  .more-title{gap:10px;letter-spacing:2px}.more-title span{width:36px}
  .benefits{grid-template-columns:repeat(2,1fr)}
}


.app-logo{
  width:78px;height:78px;flex:0 0 78px;border-radius:18px;
  display:grid;place-items:center;padding:5px;
  background:linear-gradient(145deg,rgba(4,20,38,.84),rgba(10,39,68,.78));
  border:1.5px solid rgba(101,183,255,.85);
  box-shadow:0 8px 26px rgba(0,0,0,.30),0 0 18px rgba(61,158,244,.12);
  backdrop-filter:blur(5px);
}
.app-logo img{
  width:100%;height:100%;object-fit:contain;display:block;
  filter:drop-shadow(0 5px 8px rgba(0,0,0,.26));
}
.trainer-card:nth-child(1) .app-logo{padding:0;background:rgba(2,14,27,.74)}
.trainer-card:nth-child(2) .app-logo{background:rgba(244,248,255,.94);border-color:rgba(255,255,255,.95)}


.trainer-card:nth-child(1) .trainer-logo,
  .trainer-card:nth-child(2) .trainer-logo{width:92px;height:92px}
}


/* v4 – Original LernTrainer logos supplied by the user */
.trainer-logo{
  position:absolute;
  z-index:5;
  top:10px;
  left:50%;
  transform:translateX(-50%);
  width:150px;
  height:132px;
  object-fit:contain;
  object-position:center;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.48));
  pointer-events:none;
}
.card-34a .trainer-logo{
  width:154px;
  height:138px;
  top:7px;
}
.card-rettungssanitaeter .trainer-logo{
  width:160px;
  height:136px;
  top:7px;
}
.card-notfallsanitaeter .trainer-logo{
  width:154px;
  height:136px;
  top:7px;
}
.card-fahrschule .trainer-logo{
  width:154px;
  height:136px;
  top:7px;
}

/* The four uploaded full logos replace the small generic circular badge. */
.card-34a .icon-badge,
.card-rettungssanitaeter .icon-badge,
.card-notfallsanitaeter .icon-badge,
.card-fahrschule .icon-badge{
  display:none;
}

/* Keep text clean beneath the logo area. */
.card-34a .card-body,
.card-rettungssanitaeter .card-body,
.card-notfallsanitaeter .card-body,
.card-fahrschule .card-body{
  padding-top:154px;
  padding-left:20px;
  padding-right:20px;
}
.card-34a .text,
.card-rettungssanitaeter .text,
.card-notfallsanitaeter .text,
.card-fahrschule .text{
  width:100%;
  text-align:center;
}
.card-34a .text h2,
.card-rettungssanitaeter .text h2,
.card-notfallsanitaeter .text h2,
.card-fahrschule .text h2{
  margin-top:2px;
}

/* Slightly darken card artwork behind the full badge logo for contrast. */
.card-34a .card-shade,
.card-rettungssanitaeter .card-shade,
.card-notfallsanitaeter .card-shade,
.card-fahrschule .card-shade{
  background:linear-gradient(to bottom,rgba(2,10,22,.16) 0,rgba(3,15,29,.50) 39%,#041426 61%,#041426 100%);
}

@media(max-width:620px){
  .trainer-logo{
    width:140px;
    height:122px;
  }
  .card-34a .trainer-logo,
  .card-rettungssanitaeter .trainer-logo,
  .card-notfallsanitaeter .trainer-logo,
  .card-fahrschule .trainer-logo{
    width:144px;
    height:126px;
  }
}


/* v5 – Final uploaded logos for Rettungshelfer + Erste Hilfe/Sanitätsdienst */
.card-rettungshelfer .trainer-logo,
.card-erste-hilfe .trainer-logo{
  width:158px;
  height:138px;
  top:7px;
}
.card-rettungshelfer .icon-badge,
.card-erste-hilfe .icon-badge{
  display:none;
}
.card-rettungshelfer .card-body,
.card-erste-hilfe .card-body{
  padding-top:154px;
  padding-left:20px;
  padding-right:20px;
}
.card-rettungshelfer .text,
.card-erste-hilfe .text{
  width:100%;
  text-align:center;
}
.card-rettungshelfer .text h2,
.card-erste-hilfe .text h2{
  margin-top:2px;
}
.card-rettungshelfer .card-shade,
.card-erste-hilfe .card-shade{
  background:linear-gradient(to bottom,rgba(2,10,22,.16) 0,rgba(3,15,29,.50) 39%,#041426 61%,#041426 100%);
}
@media(max-width:620px){
  .card-rettungshelfer .trainer-logo,
  .card-erste-hilfe .trainer-logo{
    width:144px;
    height:126px;
  }
}


/* ==========================================================
   Zentrales LernTrainer-Konto
   ========================================================== */
.central-account-bar{
  display:flex;justify-content:flex-end;min-height:72px;margin-bottom:4px;position:relative;z-index:15
}
.quick-login,.account-summary{
  display:flex;align-items:flex-end;gap:9px;padding:10px 12px;border:1px solid rgba(95,172,244,.55);
  border-radius:14px;background:rgba(4,20,38,.88);box-shadow:0 12px 34px rgba(0,0,0,.28);backdrop-filter:blur(12px)
}
.quick-login-title{align-self:center;font-size:12px;font-weight:900;letter-spacing:.8px;color:#82c2ff;white-space:nowrap;margin-right:3px}
.quick-login label{display:grid;gap:4px}.quick-login label span{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:#9db6cf}
.quick-login input{width:150px;height:36px;border-radius:9px;border:1px solid #285c8d;background:#061a30;color:#fff;padding:0 10px;outline:none}
.quick-login input:focus{border-color:#62b1ff;box-shadow:0 0 0 2px rgba(98,177,255,.14)}
.account-btn{height:36px;border:1px solid #4ca3f3;border-radius:9px;padding:0 14px;font-weight:850;cursor:pointer}
.account-btn.primary{background:linear-gradient(#2386da,#1268b2);color:#fff}.account-btn.secondary{background:#0b2948;color:#eaf5ff}.account-btn.danger{background:#551d28;border-color:#a74b5b;color:#fff}
.account-link{height:36px;border:0;background:transparent;color:#7fc1ff;font-weight:800;cursor:pointer;padding:0 7px}
.quick-login-message{position:absolute;right:12px;top:62px;color:#ff9a9a;font-size:11px;max-width:440px;text-align:right}
.account-summary{align-items:center;gap:10px;flex-wrap:wrap;max-width:780px}
.account-summary-main{display:grid;gap:2px;margin-right:5px}.account-summary-main strong{font-size:14px}.account-summary-main small{color:#9fb9d2}
.account-module-chips{display:flex;gap:6px;flex-wrap:wrap}.account-module-chip{font-size:10px;letter-spacing:.5px;padding:5px 8px;border:1px solid #2e7dbd;border-radius:999px;color:#cce9ff;background:#09233e}
.account-role-chip{font-size:10px;font-weight:900;padding:5px 8px;border-radius:999px;background:#173f65;color:#e7f5ff}.account-role-chip.owner{background:#6a4c10;color:#ffe5a1}.account-role-chip.admin{background:#5b214e;color:#ffd8f5}
.module-selected-badge{position:absolute;right:12px;top:12px;z-index:8;padding:6px 9px;border-radius:999px;background:#167d43;color:#fff;font-size:9px;font-weight:900;letter-spacing:.8px;box-shadow:0 5px 16px rgba(0,0,0,.28)}
.trainer-card.is-account-module{border-color:#43b878;box-shadow:0 15px 40px rgba(0,0,0,.24),0 0 0 1px rgba(67,184,120,.25),0 0 22px rgba(67,184,120,.13)}
.trainer-grid-main{grid-template-columns:repeat(3,1fr)}
.card-rettung .app-logo{background:rgba(244,248,255,.94);border-color:rgba(255,255,255,.95)}

.account-modal[hidden]{display:none}.account-modal{position:fixed;inset:0;z-index:150;display:grid;place-items:center;padding:20px}
.account-modal-backdrop{position:absolute;inset:0;background:rgba(0,7,16,.82);backdrop-filter:blur(8px)}
.account-modal-card{position:relative;width:min(670px,100%);max-height:min(86vh,820px);overflow:auto;background:linear-gradient(145deg,#0a2542,#06172b);border:1px solid #358ee1;border-radius:18px;padding:30px;box-shadow:0 30px 90px rgba(0,0,0,.62),0 0 28px rgba(57,146,229,.15)}
.account-modal-head{text-align:center;margin-bottom:20px}.account-modal-head h2{font-size:30px;margin:5px 0 7px}.account-modal-head p{margin:0;color:#aac0d7}.account-kicker{font-size:10px;font-weight:900;letter-spacing:1.8px;color:#65b1f8}
.account-form{display:grid;gap:14px}.account-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.account-field{display:grid;gap:6px}.account-field span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:#9fb8d0}.account-field input{width:100%;height:43px;border-radius:10px;border:1px solid #2b628f;background:#05182c;color:#fff;padding:0 12px;outline:none}.account-field input:focus{border-color:#68b7ff;box-shadow:0 0 0 2px rgba(104,183,255,.14)}
.account-module-picker{display:grid;gap:9px;padding:14px;border:1px solid rgba(68,139,202,.45);border-radius:13px;background:rgba(4,19,35,.55)}.account-module-picker h3{margin:0 0 3px;font-size:15px}.account-check{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border-radius:10px;background:rgba(9,38,65,.65);cursor:pointer}.account-check input{margin-top:3px}.account-check b{display:block}.account-check small{display:block;color:#9eb6cd;margin-top:2px}.account-check.all{border:1px dashed rgba(93,177,251,.5)}
.account-consent{display:flex;gap:9px;align-items:flex-start;font-size:12px;color:#b8cbe0}.account-consent input{margin-top:3px}
.account-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:3px}.account-message{min-height:18px;font-size:12px}.account-message.error{color:#ff9e9e}.account-message.ok{color:#84e6ae}
.account-switch{text-align:center;margin-top:12px;color:#9fb7cf;font-size:12px}.account-switch button{border:0;background:none;color:#77baff;font-weight:800;cursor:pointer}
.account-profile-box{display:grid;gap:14px}.account-profile-ident{padding:14px;border:1px solid rgba(74,154,222,.4);border-radius:13px;background:rgba(6,28,50,.68)}.account-profile-ident h3{margin:0 0 4px;font-size:23px}.account-profile-ident p{margin:0;color:#abc1d7}.account-profile-note{font-size:12px;color:#9db6cd;line-height:1.5}

@media(max-width:940px){.central-account-bar{justify-content:center}.quick-login{flex-wrap:wrap;justify-content:center}.quick-login-message{position:static;flex-basis:100%;text-align:center}.trainer-grid-main{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.central-account-bar{margin-bottom:12px}.quick-login{align-items:stretch}.quick-login-title{flex-basis:100%;text-align:center}.quick-login label{flex:1 1 130px}.quick-login input{width:100%}.account-form-grid{grid-template-columns:1fr}.account-modal-card{padding:24px 18px}.trainer-grid-main{grid-template-columns:1fr}}
