
:root{--text:#f4f6fb;--muted:#aeb7c8;--border:rgba(135,177,216,.28);--accent:#f5222d;--panel:rgba(18,42,65,.62);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;width:100%}body{min-height:100vh;color:var(--text);background:radial-gradient(70% 55% at 85% 10%,rgba(15,82,135,.17),transparent 72%),radial-gradient(65% 55% at 12% 86%,rgba(75,35,88,.13),transparent 72%),linear-gradient(135deg,#06111d,#0a1726 55%,#15121e);background-attachment:fixed}button,input{font:inherit}.hidden,.va-hidden{display:none!important}
.auth{width:100%;padding:36px 20px 24px;display:flex;justify-content:center;align-items:flex-start}
.card,.va-login,.va-wrap>.va-glass{background:linear-gradient(145deg,rgba(17,40,62,.78),rgba(8,27,45,.72));border:1px solid var(--border);border-radius:18px;box-shadow:0 24px 64px rgba(0,0,0,.27),inset 0 1px 0 rgba(255,255,255,.04);backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%)}
.portal-card{position:relative;width:min(760px,100%);height:460px;padding:28px 30px 22px;display:flex;flex-direction:column;text-align:center}
.wordlogo{font-size:27px;font-weight:800;line-height:1;margin:4px auto 24px;color:#fff}.wordlogo img{display:block;max-width:235px;max-height:58px;object-fit:contain}.shield{display:inline-grid;place-items:center;width:30px;height:30px;margin-right:1px;border:3px solid var(--accent);border-radius:45% 45% 55% 55%;font-size:19px}
h1{margin:0;font-size:30px;line-height:1.15}.subtitle{margin:12px 0 25px;color:var(--muted);font-size:15px}
.admin-corner{position:absolute;top:14px;right:14px;width:30px;height:30px;display:grid;place-items:center;border:1px solid rgba(135,177,216,.18);border-radius:8px;background:rgba(18,42,65,.38);color:var(--muted);text-decoration:none}
.top-back{position:absolute;top:17px;left:18px;min-height:0;padding:0;border:0;background:none;color:var(--accent);font-weight:600;cursor:pointer}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:18px;width:100%}.tile{min-height:150px;padding:17px;border:1px solid var(--border);border-radius:14px;background:rgba(18,42,65,.58);color:#fff;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer}.tile:hover,.tile:focus-visible{border-color:var(--accent);outline:0}.tile-icon{width:38px;height:38px;fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tile b{font-size:17px}.tile span{font-size:13px;color:var(--muted)}
.customer-form{width:min(520px,100%);margin:0 auto;display:grid;gap:10px;text-align:left}.customer-form label{font-size:14px}.input-wrap{position:relative;width:100%}.input-wrap input{width:100%;height:48px;padding:0 44px;color:#fff;background:rgba(7,25,43,.74);border:1px solid var(--border);border-radius:10px;outline:0}.input-wrap input:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(245,34,45,.10)}.input-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:#8fa2b7;pointer-events:none}.input-icon svg,.eye-button svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.customer-form>button,.va-form>button{height:46px;border:1px solid var(--accent);border-radius:9px;background:var(--accent);color:#fff;font-weight:700;cursor:pointer}.customer-form .secondary{background:rgba(18,42,65,.58);border-color:var(--border)}#msg{min-height:18px;color:#ff9198;text-align:center}
footer{margin-top:auto;padding-top:18px;color:var(--muted);font-size:11px;text-align:center}

/* Admin login: same proportions as portal/login mockup */
.va-login{position:relative;width:min(580px,calc(100% - 40px));height:460px;margin:36px auto 24px;padding:28px 30px 22px;display:flex;flex-direction:column;text-align:center}.va-login.va-hidden{display:none!important}.va-back{position:absolute;top:17px;left:18px;color:var(--accent);text-decoration:none;font-weight:600}.admin-brand{height:58px;display:flex;align-items:center;justify-content:center;margin:10px auto 20px}.admin-brand .logo{display:none;max-width:235px;max-height:58px;object-fit:contain}.admin-brand .wordlogo{margin:0}.va-login h1{font-size:30px}.va-login .subtitle{margin:12px 0 24px}.va-form{width:min(440px,100%);margin:0 auto;display:grid;gap:11px}.va-form .input-wrap input{height:48px}.eye-button{position:absolute;right:9px;top:50%;transform:translateY(-50%);width:34px;height:34px;min-height:0;padding:8px;border:0;background:transparent;color:#8fa2b7;cursor:pointer}.va-form .input-wrap:has(.eye-button) input{padding-right:48px}.va-msg{min-height:20px;margin-top:8px;color:#ff9198}

/* Logged-in Admin remains full-featured, but uses the same visual language. */
.va-wrap{width:min(1120px,calc(100% - 40px));margin:28px auto}.va-wrap>.va-glass{padding:28px}.va-wrap h1{text-align:center}.va-wrap>div>p{text-align:center;color:var(--muted)}.va-section{margin-top:18px;padding:20px;border:1px solid rgba(135,177,216,.20);border-radius:14px;background:rgba(12,30,48,.58)}.va-section h2{margin-top:0}.va-section label{display:block;margin:11px 0 6px}.va-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.va-section input:not([type=color]){width:100%;min-height:46px;padding:0 13px;border:1px solid var(--border);border-radius:9px;background:rgba(7,25,43,.74);color:#fff}.va-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}.va-actions button{min-height:44px;padding:0 16px;border:1px solid var(--accent);border-radius:9px;background:var(--accent);color:#fff;font-weight:700}.va-actions button:disabled{opacity:.45}.va-section input[type=file]{width:100%;padding:9px;border:1px solid var(--border);border-radius:9px;background:rgba(7,25,43,.74);color:#fff}.va-section input[type=file]::file-selector-button{padding:7px 11px;margin-right:9px;border:1px solid var(--border);border-radius:7px;background:var(--panel);color:#fff}.va-section .va-msg{color:var(--muted)}

@media(max-width:700px){
 body{background-attachment:scroll}.auth{padding:10px}.portal-card{width:100%;height:auto;min-height:calc(100dvh - 20px);padding:26px 14px 18px;border-radius:20px}.wordlogo{margin-top:24px;margin-bottom:24px;font-size:23px}.wordlogo img{max-width:210px;max-height:54px}h1{font-size:27px}.subtitle{margin:12px 0 22px}.tiles{grid-template-columns:1fr;gap:10px}.tile{min-height:132px}.tile-icon{width:36px;height:36px}.customer-form{width:100%;margin-top:14px}.customer-form .input-wrap input{height:50px}.customer-form>button{height:50px}.top-back{top:17px;left:16px}.admin-corner{top:14px;right:14px}footer{padding-top:22px}
 .va-login{width:calc(100% - 20px);height:auto;min-height:calc(100dvh - 20px);margin:10px auto;padding:26px 14px 18px;border-radius:20px}.admin-brand{margin-top:34px;margin-bottom:24px}.admin-brand .logo{max-width:210px;max-height:54px}.va-login h1{font-size:27px}.va-form{width:100%;margin-top:8px}.va-form .input-wrap input,.va-form>button{height:50px}.va-login footer{margin-top:auto}
 .va-wrap{width:calc(100% - 20px);margin:10px auto}.va-wrap>.va-glass{padding:16px}.va-grid{grid-template-columns:1fr}.va-actions{display:grid}.va-actions button{width:100%}
}

/* 2.0.10: Desktop-Zentrierung wie freigegebene Vorlage */
@media (min-width:701px){
  .auth{min-height:100vh;padding:24px 20px;align-items:center}
  .va-login{margin:0 auto;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
}
@media (max-width:700px){
  .va-login{position:relative;left:auto;top:auto;transform:none}
}

/* 2.0.11 Hintergrundbild: ausschließlich vollflächiger Seitenhintergrund */
body{
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
}
.background-upload{grid-column:1/-1;margin:12px 0 6px}
.background-upload>label{display:block}
.background-upload .va-actions{margin-top:10px}
.secondary{background:rgba(18,42,65,.58)!important;border-color:var(--border)!important}
@media(min-width:701px){body{background-attachment:fixed!important}}
@media(max-width:700px){body{background-attachment:scroll!important}}

/* 2.0.14 – Kontakt-Fallback für Kunden ohne Kundennummer */
.no-customer-contact{margin:2px 0 10px;padding:13px;border:1px solid var(--border);border-radius:10px;background:rgba(7,25,43,.62);text-align:left}
.no-customer-contact strong{display:block;margin-bottom:7px}
.no-customer-contact .contact-link{display:block;padding:7px 0;color:var(--text);font-weight:700;text-decoration:none;overflow-wrap:anywhere}
.no-customer-contact .contact-link:hover{text-decoration:underline}

/* 2.0.15 – Hinweis als Overlay: Außenrahmen/Login-Karte bleibt immer gleich groß. */
.no-customer-contact{
 position:absolute!important;inset:0!important;z-index:30!important;margin:0!important;padding:18px!important;
 border:0!important;border-radius:inherit!important;background:rgba(3,12,22,.58)!important;
 display:flex!important;align-items:center!important;justify-content:center!important;text-align:left!important;
 backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)
}
.no-customer-contact.hidden{display:none!important}
.no-customer-contact-card{
 position:relative;width:min(100%,430px);padding:22px 20px 18px;border:1px solid rgba(116,163,201,.34);
 border-radius:14px;background:linear-gradient(145deg,rgba(12,39,63,.97),rgba(7,25,43,.97));
 box-shadow:0 18px 45px rgba(0,0,0,.28)
}
.no-customer-contact-card>strong{display:block;margin:0 38px 10px 0;font-size:18px}
.no-customer-contact-card span{display:block;color:var(--muted);line-height:1.45}
.no-customer-contact .contact-link{
 display:block;margin-top:10px;padding:11px 12px;border:1px solid var(--border);border-radius:10px;
 background:rgba(7,25,43,.62);color:var(--text);font-weight:700;text-decoration:none;overflow-wrap:anywhere
}
.no-customer-contact-close{
 position:absolute;right:12px;top:10px;width:36px!important;height:36px!important;min-height:36px!important;
 padding:0!important;border:1px solid var(--border)!important;border-radius:9px!important;
 background:rgba(7,25,43,.72)!important;color:var(--text)!important;font-size:23px!important;line-height:1!important
}
#form{position:relative}
@media(max-width:600px){.no-customer-contact{padding:12px!important}.no-customer-contact-card{padding:20px 16px 16px}}

/* 2.0.17 – Kontaktanzeige Koblenz / Helbra */
.no-customer-contact-card{width:min(100%,620px)!important}
.contact-intro{display:block;margin-bottom:13px}
.location-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.location-contact{min-width:0;padding:14px;border:1px solid rgba(116,163,201,.30);border-radius:12px;background:rgba(7,25,43,.48)}
.location-contact>strong{display:block;margin-bottom:8px;font-size:17px}
.location-contact .contact-link{margin-top:7px!important;padding:10px!important}
.contact-empty{font-size:13px;color:var(--muted)}
.location-contact-admin{min-width:0;padding:14px;border:1px solid var(--border);border-radius:12px;background:rgba(7,25,43,.42)}
.location-contact-admin>strong{display:block;margin-bottom:10px}
@media(max-width:600px){.location-contact-grid{grid-template-columns:1fr}.no-customer-contact-card{max-height:calc(100% - 8px);overflow:auto}}

/* 2.0.19 – Kontaktfenster optisch mittig; E-Mail/Telefon ohne redundante Präfixe. */
.no-customer-contact{
 align-items:center!important;
 justify-content:center!important;
}
.no-customer-contact-card{
 margin:auto!important;
 align-self:center!important;
}
.location-contact .contact-link{
 display:flex!important;
 align-items:center!important;
 min-height:44px;
 line-height:1.3!important;
}

/* 2.0.20 – echtes überlagerndes Kontaktfenster; Hauptrahmen bleibt unverändert. */
body>.no-customer-contact{
 position:fixed!important;inset:0!important;z-index:9999!important;
 display:flex!important;align-items:center!important;justify-content:center!important;
 margin:0!important;padding:16px!important;border:0!important;border-radius:0!important;
 background:rgba(3,12,22,.42)!important;
 backdrop-filter:blur(3px)!important;-webkit-backdrop-filter:blur(3px)!important;
 box-sizing:border-box!important;
}
body>.no-customer-contact.hidden{display:none!important}
body>.no-customer-contact>.no-customer-contact-card{
 position:relative!important;inset:auto!important;margin:0!important;align-self:auto!important;
 width:min(620px,calc(100vw - 32px))!important;max-width:620px!important;
}
@media(max-width:600px){
 body>.no-customer-contact{padding:12px!important}
 body>.no-customer-contact>.no-customer-contact-card{width:calc(100vw - 24px)!important;max-height:calc(100% - 24px)!important;overflow:auto!important}
}

/* 2.0.21 – Kontakt-Overlay: keine Rahmen-in-Rahmen; gleiche Höhe; Kontaktwerte untereinander. */
body>.no-customer-contact .location-contact-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:0!important;align-items:stretch!important;margin-top:14px!important}
body>.no-customer-contact .location-contact{display:flex!important;flex-direction:column!important;min-width:0!important;min-height:132px!important;padding:8px 22px!important;border:0!important;border-radius:0!important;background:transparent!important}
body>.no-customer-contact .location-contact+.location-contact{border-left:1px solid rgba(116,163,201,.34)!important}
body>.no-customer-contact .location-contact>strong{display:block!important;margin:0 0 10px!important;font-size:17px!important;line-height:1.3!important}
body>.no-customer-contact .location-contact .contact-link{display:block!important;margin:0!important;padding:7px 0!important;min-height:0!important;border:0!important;border-radius:0!important;background:transparent!important;line-height:1.35!important;font-weight:700!important;overflow-wrap:anywhere!important}
body>.no-customer-contact .location-contact .contact-link+.contact-link{margin-top:4px!important}
body>.no-customer-contact .contact-empty{display:block!important;padding:7px 0!important}
@media(max-width:600px){body>.no-customer-contact .location-contact-grid{grid-template-columns:1fr!important}body>.no-customer-contact .location-contact{min-height:0!important;padding:10px 6px!important}body>.no-customer-contact .location-contact+.location-contact{border-left:0!important;border-top:1px solid rgba(116,163,201,.34)!important;margin-top:8px!important;padding-top:16px!important}}

/* 2.0.31 – Copyright einheitlich außerhalb des Portal-/Login-Kastens */
.portal-card>footer,.va-login>footer{position:absolute!important;left:0!important;right:0!important;bottom:-30px!important;width:100%!important;margin:0!important;padding:0!important;text-align:center!important;color:var(--muted)!important;font-size:11px!important;white-space:nowrap}
@media(max-width:700px){.portal-card>footer,.va-login>footer{bottom:-26px!important;font-size:10px!important}.portal-card,.va-login{margin-bottom:34px!important}}

/* 2.0.35 – Ticketsystem-Overlay: Schließen-Button im Portal-Design. */
#ticketComingSoonButton{
 width:100%;
 margin-top:16px;
 min-height:44px;
 padding:11px 18px;
 border:1px solid var(--border);
 border-radius:10px;
 background:rgba(15,42,66,.78);
 color:var(--text);
 font:inherit;
 font-weight:700;
 cursor:pointer;
 transition:background .15s ease,border-color .15s ease,transform .15s ease;
}
#ticketComingSoonButton:hover{
 background:rgba(24,57,86,.92);
 border-color:rgba(140,180,214,.45);
}
#ticketComingSoonButton:active{transform:translateY(1px)}
#ticketComingSoonButton:focus-visible{
 outline:2px solid var(--accent);
 outline-offset:2px;
}

/* 3.0.0 – Ticketsystem: Schließen-Button rot. */
#ticketComingSoonButton{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}
#ticketComingSoonButton:hover{filter:brightness(.92);background:var(--accent)!important;border-color:var(--accent)!important}

