/* ───────── Dashboard „Mein BÖLK-LAN“ ───────── */
.dnav{justify-content:space-between}
.dnav__actions{display:flex;gap:1.6rem;align-items:center;color:var(--mute)}
.dnav__actions a:hover,.dnav__logout:hover{color:var(--amber)}
.dnav__logout{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}

.dash{max-width:1400px;margin:0 auto;padding:calc(var(--nav-h) + clamp(1.5rem,4vw,3rem)) var(--gutter) clamp(4rem,8vw,8rem);min-height:100svh}
.dash__kicker{color:var(--amber);margin-bottom:1rem}
.dash h1{font-size:clamp(3.4rem,9vw,8rem)}
.dash__head{margin-bottom:clamp(2rem,5vw,4rem)}
.dash__line{margin-top:1.2rem;font-size:clamp(1.1rem,1.6vw,1.4rem);color:rgba(244,239,230,.88);max-width:46ch}
.dash__days{margin-top:.9rem;color:var(--mute)}

.auth{max-width:560px;margin:0 auto;padding-top:clamp(1rem,6vh,4rem)}
.auth__lead{margin:1.4rem 0 2rem;color:rgba(244,239,230,.85);max-width:46ch}
.auth__form{max-width:480px}

.dash__grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(1.5rem,4vw,4rem);align-items:start}
.dash__pass{position:sticky;top:calc(var(--nav-h) + 1rem)}
.dash__stage{max-height:min(74svh,760px)}
.dash__code{margin-top:.8rem;text-align:center;color:var(--mute)}
.dash__pass.no-gl #pass-canvas{display:none}
.dash__pass.no-gl .pass2d{display:flex}

.dash__cols{display:grid;gap:clamp(1rem,2vw,1.6rem)}
.dcard{border:1px solid var(--line);background:linear-gradient(170deg,var(--ink-3),var(--ink-2));padding:clamp(1.3rem,2.6vw,2.2rem);display:grid;gap:1.1rem;align-content:start;border-radius:6px}
.dcard h2{font-size:clamp(2.2rem,4vw,3.2rem);line-height:.9}
.dcard__note{color:var(--mute);font-size:.95rem}
.dcard__empty{color:var(--mute)}
.dcard__sub{font-size:1.5rem;margin-top:.6rem}
.dcard form{display:grid;gap:1.2rem}
.dcard textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(244,239,230,.35);padding:.6rem 0;font:inherit;font-size:1.1rem;color:var(--paper);resize:vertical;border-radius:0;min-height:7rem}
.dcard textarea:focus{outline:none;border-color:var(--amber)}
.dcard[data-free] [data-for="spieler"]{display:none}
.dcard fieldset:disabled{opacity:.55}

.dinfo{padding:1rem 0;border-top:1px solid var(--line)}
.dinfo:first-child{border-top:0;padding-top:0}
.dinfo h3{font-size:1.7rem;margin-bottom:.4rem}
.dinfo p{white-space:pre-wrap;color:rgba(244,239,230,.88);max-width:60ch}

.sticket{border:1px solid var(--line);padding:1rem 1.1rem;display:grid;gap:.6rem;border-radius:6px;margin-top:.8rem;background:rgba(10,10,12,.35)}
.sticket header{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center;color:var(--mute)}
.sticket header b{color:var(--amber)}
.sticket h3{font-size:1.5rem}
.sticket__msg{white-space:pre-wrap;color:rgba(244,239,230,.85)}
.sticket.is-done{opacity:.65}
.chip-status{margin-left:auto;border:1px solid var(--line);border-radius:999px;padding:.15rem .6rem}
.sticket__answer{border-left:3px solid var(--amber);background:rgba(249,166,0,.07);padding:.7rem .9rem}
.sticket__answer b{color:var(--amber);display:block;margin-bottom:.3rem}
.sticket__answer p{white-space:pre-wrap}

@media (max-width:900px){
  .dash__grid{grid-template-columns:1fr}
  .dash__pass{position:static}
  .dash__stage{aspect-ratio:1/1.05;max-height:62svh}
  .dnav__actions{gap:1rem}
}

.dcard{scroll-margin-top:calc(var(--nav-h) + 1rem)}
.dnav .nav__logo b{white-space:nowrap}
@media (max-width:480px){
  .dnav{gap:.8rem}
  .dnav .nav__logo{font-size:1.5rem;gap:.5rem}
  .dnav .nav__logo img{width:34px;height:34px}
  .dnav__actions{gap:.8rem;font-size:.68rem}
}

/* ───────── Ladeanimation ───────── */
.boot{display:grid;justify-items:center;align-content:center;gap:1.1rem;min-height:70svh;text-align:center}
.boot[hidden]{display:none}
.boot__glass{width:96px;height:auto;overflow:visible}
.boot__liquid{animation:boot-fill 2.6s cubic-bezier(.45,0,.2,1) infinite}
@keyframes boot-fill{0%{transform:translateY(160px)}62%{transform:translateY(0)}86%{transform:translateY(0)}100%{transform:translateY(160px)}}
.boot__text{color:var(--amber)}
.boot__text::after{content:"";display:inline-block;width:1.5ch;text-align:left;animation:boot-dots 1.4s steps(4) infinite}
@keyframes boot-dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}
.boot__hint{max-width:34ch;color:var(--mute);font-size:.95rem}
@media (prefers-reduced-motion:reduce){.boot__liquid{animation:none;transform:translateY(40px)}.boot__text::after{animation:none;content:"…"}}

/* Platzhalter für den Pass, bis das 3D-Modell fertig ist */
.pass-skel{position:absolute;inset:0;pointer-events:none}
.pass-skel i{position:absolute;top:0;width:7%;height:30%;background:linear-gradient(180deg,rgba(54,77,170,.0),rgba(54,77,170,.55));transform-origin:top center}
.pass-skel i:first-child{left:41%;transform:rotate(-9deg)}
.pass-skel i:nth-child(2){right:41%;transform:rotate(9deg)}
.pass-skel b{position:absolute;left:19%;right:19%;top:26%;bottom:10%;border-radius:22px;border:1px solid var(--line);
  background:linear-gradient(110deg,rgba(27,27,34,.9) 30%,rgba(60,60,80,.9) 50%,rgba(27,27,34,.9) 70%);background-size:220% 100%;animation:skel 1.6s ease-in-out infinite}
@keyframes skel{0%{background-position:120% 0}100%{background-position:-120% 0}}
.dash__pass.is-ready .pass-skel,.dash__pass.no-gl .pass-skel{display:none}
@media (prefers-reduced-motion:reduce){.pass-skel b{animation:none}}
