/* Dashboard, Einrichtung, Absage-Seite */
:root{--bg:#06070a;--panel:#0f1218;--panel-2:#141821;--line:rgba(255,255,255,.08);--line-2:rgba(255,255,255,.14);--ink:#eef0f4;--muted:#a2a8b3;--dim:#6f7682;--gold:#f5b54a;--gold-hi:#ffd58a;--red:#ff5d62;--green:#4ade9b;--r:16px;--sans:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
@font-face{font-family:"Geist";src:url("fonts/geist.woff2") format("woff2");font-weight:100 900;font-display:swap}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 var(--sans);-webkit-font-smoothing:antialiased}
a{color:var(--gold-hi)}
h1{font-size:clamp(1.6rem,3vw,2.1rem);letter-spacing:-.025em;line-height:1.15;margin:0 0 18px}
h2{font-size:1.15rem;letter-spacing:-.015em;margin:28px 0 12px}
h3{margin:4px 0 8px;font-size:1.15rem}
p{margin:0 0 12px}
.muted{color:var(--muted)}.small{font-size:14px}.bad{color:#ff9a9d}
.eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-bottom:8px}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

input,select,textarea{width:100%;min-height:46px;padding:10px 14px;border-radius:12px;border:1px solid var(--line-2);background:#090b10;color:var(--ink);font:inherit;font-size:16px}
input[type=checkbox],input[type=radio]{width:20px;height:20px;min-height:0;padding:0;accent-color:var(--gold);flex:none}
input[type=color]{padding:4px;height:46px}
input[type=time]{width:auto;min-width:108px}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:rgba(245,181,74,.7);box-shadow:0 0 0 3px rgba(245,181,74,.15)}
label{display:grid;gap:6px;font-size:14px;color:var(--muted)}
label.check{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:15px}
fieldset{border:1px solid var(--line);border-radius:var(--r);padding:16px;margin:0;display:grid;gap:12px}
legend{padding:0 6px;color:var(--ink);font-weight:600}
.stack{display:grid;gap:14px}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;align-items:end}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 20px;border-radius:999px;border:1px solid var(--line-2);background:rgba(255,255,255,.05);color:var(--ink);font:600 15px var(--sans);text-decoration:none;cursor:pointer;justify-self:start}
.btn:hover{background:rgba(255,255,255,.1)}
.btn.primary{border-color:transparent;color:#140f06;background:linear-gradient(180deg,#ffd58a,#f5b54a 55%,#eaa233)}
.btn.danger{border-color:rgba(255,93,98,.45);color:#ffb3b5;background:rgba(255,93,98,.08)}
.btn.danger:hover{background:rgba(255,93,98,.16)}
.btn.small{min-height:38px;padding:0 14px;font-size:14px}

.note{padding:12px 16px;border-radius:12px;border:1px solid var(--line-2);background:var(--panel-2)}
.note.ok{border-color:rgba(74,222,155,.4);background:rgba(74,222,155,.07)}
.note.err{border-color:rgba(255,93,98,.45);background:rgba(255,93,98,.08)}

/* Einrichtung / Login / Absage */
body.auth{display:grid;place-items:center;min-height:100svh;padding:24px 16px}
.auth-box{width:min(440px,100%);padding:32px 28px;border-radius:24px;background:var(--panel);border:1px solid var(--line-2);box-shadow:0 40px 100px -40px rgba(0,0,0,.9)}
.auth-box .btn{justify-self:stretch}

/* Dashboard */
.top{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;padding:12px 20px;background:rgba(6,7,10,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.brand{font-weight:700;color:var(--ink);text-decoration:none;letter-spacing:-.02em}
.top nav{display:flex;flex-wrap:wrap;gap:4px;flex:1}
.top nav a{padding:8px 12px;border-radius:10px;color:var(--muted);text-decoration:none;font-size:15px}
.top nav a:hover{color:var(--ink);background:rgba(255,255,255,.05)}
.top nav a[aria-current]{color:#140f06;background:var(--gold)}
.logout{margin:0}
.wrap{width:min(1400px,100%);margin:0 auto;padding:28px 20px 80px}
.panel{padding:22px;border-radius:var(--r);background:var(--panel);border:1px solid var(--line);margin-bottom:18px}
.panel h2:first-child{margin-top:0}
.count{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 8px;margin-left:6px;border-radius:999px;background:var(--gold);color:#140f06;font-size:13px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.card{padding:20px;border-radius:var(--r);background:var(--panel);border:1px solid var(--line)}
.when{color:var(--gold-hi);font-weight:600;margin:0}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tags span{padding:3px 10px;border-radius:999px;border:1px solid var(--line-2);font-size:12px;color:var(--muted)}
dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:12px 0 16px;font-size:14px}
dt{color:var(--dim)}dd{margin:0;overflow-wrap:anywhere}
.pre{white-space:pre-line}
.list{width:100%;border-collapse:collapse;font-size:14px}
.list th,.list td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.list th{color:var(--dim);font-weight:500}
.hours{display:grid;gap:10px;margin:14px 0 18px}
.hrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 0;border-bottom:1px solid var(--line)}
.day{width:110px;font-weight:600}
.win{display:inline-flex;align-items:center;gap:6px;color:var(--dim)}
.qrow{display:grid;grid-template-columns:2fr 1fr 2fr auto;gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid var(--line)}
.qopts{display:grid;gap:8px;padding-top:26px}
.calrow{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.calrow>div{flex:1;min-width:220px}
.inline-form{margin-top:18px}
.code{font:13px/1.5 ui-monospace,Consolas,monospace}
details summary{cursor:pointer;color:var(--gold-hi)}
details ol{padding-left:20px}
.bookings{display:grid;gap:16px}
.booking{border-radius:var(--r);background:var(--panel);border:1px solid var(--line);overflow:hidden}
.booking-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 20px;padding:20px 24px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,rgba(245,181,74,.07),transparent 60%)}
.booking-head h3{font-size:1.3rem;margin:4px 0 8px}
.booking-head .tags{margin:0}
.booking-body{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2.2fr);gap:0}
.booking-contact{padding:20px 24px;border-right:1px solid var(--line);overflow-wrap:anywhere}
.booking-contact p{margin:0 0 4px}
.booking-answers{padding:20px 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px 28px;align-content:start}
.answer p{margin:0}
.answer.wide{grid-column:1/-1}
.answer.wide p:not(.label){max-width:900px}
.label{font-size:12px!important;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin:14px 0 4px!important}
.booking-contact .label:first-child,.answer .label{margin-top:0!important}
.answer p:not(.label){font-size:15.5px;line-height:1.55;color:var(--ink);overflow-wrap:anywhere}
@media (max-width:760px){.booking-body{grid-template-columns:minmax(0,1fr)}.booking-contact{border-right:0;border-bottom:1px solid var(--line)}.booking-head,.booking-contact,.booking-answers{padding:18px}}
@media (max-width:760px){.qrow{grid-template-columns:1fr}.qopts{padding-top:0;display:flex;gap:16px}.list{font-size:13px}.day{width:100%}}

/* Direkte Buchungsseite */
body.booking-page{min-height:100svh;background:radial-gradient(70% 50% at 100% 0%,rgba(245,181,74,.12),transparent 60%),radial-gradient(60% 50% at 0% 100%,rgba(77,141,255,.08),transparent 60%),var(--bg)}
.bp-wrap{width:min(920px,100%);margin:0 auto;padding:48px 16px 40px}
.bp-card{padding:clamp(18px,3vw,32px);border-radius:24px;background:#0c0e14;border:1px solid var(--line-2);box-shadow:0 40px 100px -40px rgba(0,0,0,.9)}
.bp-foot{margin-top:18px;text-align:center}
.bp-foot a{color:var(--muted)}

@media (max-width:760px){
  .top{flex-wrap:nowrap;gap:10px;padding:10px 12px}
  .brand{display:none}
  .top nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .top nav::-webkit-scrollbar{display:none}
  .top nav a{white-space:nowrap}
  .wrap{padding:22px 14px 60px}
}
