/* MoyaVPN Kundenkonto — gemeinsamer Stil, angelehnt an trial.html und die App */
:root{color-scheme:dark}
*{box-sizing:border-box}
body{
  margin:0; font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  background:radial-gradient(1200px 600px at 50% -10%,#1b2c52 0%,#0E1626 55%);
  background-attachment:fixed; color:#fff; min-height:100vh;
}
a{color:#3DDC97; text-decoration:none; font-weight:600}
a:hover{text-decoration:underline}

.wrap{width:100%; max-width:480px; margin:0 auto; padding:40px 20px 48px}
.wrap.wide{max-width:1080px}

.logo{width:76px; height:76px; margin:0 auto 14px; display:block}
.logo img{width:100%; height:100%; object-fit:contain}
h1{font-size:26px; margin:0 0 6px; letter-spacing:.3px; text-align:center}
.tag{color:#9fb0c9; font-size:15.5px; line-height:1.5; margin:0 0 24px; text-align:center}

.card{
  padding:22px 20px; border-radius:18px; background:#121c30;
  border:1px solid #21304d; margin:0 0 16px;
}
.card h2{font-size:17px; margin:0 0 14px; letter-spacing:.2px}
.card h2 .sub{color:#62748f; font-weight:400; font-size:13px; margin-left:6px}

label{display:block; color:#cdd8ea; font-size:13.5px; margin:14px 0 6px; font-weight:600}
label:first-of-type{margin-top:0}
input,select{
  width:100%; padding:14px 15px; border-radius:13px; border:1px solid #2a3a5b;
  background:#0d1626; color:#fff; font-size:16px; outline:none; font-family:inherit;
}
input:focus,select:focus{border-color:#2C6BED}
input.code{font-size:26px; letter-spacing:8px; font-weight:700; text-align:center}
input::placeholder{color:#4c5d78}

.btn{
  display:flex; align-items:center; justify-content:center; gap:9px; width:100%;
  padding:15px; border-radius:14px; font-weight:700; font-size:16px; margin:16px 0 0;
  border:none; cursor:pointer; font-family:inherit; text-decoration:none;
}
.btn:disabled{opacity:.5; cursor:default}
.btn:hover{text-decoration:none}
.primary{background:linear-gradient(135deg,#2C6BED,#3DDC97); color:#fff;
  box-shadow:0 8px 24px rgba(44,107,237,.32)}
.ghost{background:#17223A; color:#fff; border:1px solid #26334f}
.danger{background:#2a1a1e; color:#ff9d95; border:1px solid #4d2a2a}
.btn.small{padding:9px 14px; font-size:13.5px; width:auto; margin:0; border-radius:10px}

.row{display:flex; gap:10px; margin-top:16px; flex-wrap:wrap}
.row .btn{margin:0; flex:1}

.note{color:#62748f; font-size:12.5px; line-height:1.55; margin:14px 0 0}
.err{color:#ff8a8a; font-size:14px; margin:14px 0 0; min-height:18px; line-height:1.45}
.ok{color:#3DDC97; font-size:14px; margin:14px 0 0; line-height:1.45}
.muted{color:#9fb0c9; font-size:14px; line-height:1.55}
.hidden{display:none !important}

.spin{display:inline-block; width:17px; height:17px; border:3px solid rgba(255,255,255,.3);
  border-top-color:#fff; border-radius:50%; animation:s .8s linear infinite; vertical-align:-3px}
@keyframes s{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){ .spin{animation:none} }

/* Kopfzeile im eingeloggten Bereich */
.top{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:16px 20px; border-bottom:1px solid #1c2942; background:#0d1626;
  position:sticky; top:0; z-index:5;
}
.top .brand{display:flex; align-items:center; gap:10px; font-weight:700; font-size:15px}
.top .brand img{width:28px; height:28px}
.top nav{display:flex; gap:4px; flex-wrap:wrap}
.top nav a{
  color:#9fb0c9; font-size:14px; padding:7px 12px; border-radius:9px; font-weight:600;
}
.top nav a.on{background:#17223A; color:#fff}
.top nav a:hover{text-decoration:none; color:#fff}

/* Status */
.status{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:6px}
.badge{
  font-size:12.5px; font-weight:700; padding:5px 12px; border-radius:999px;
  background:#12332a; color:#3DDC97; letter-spacing:.3px;
}
.badge.grey{background:#1a2438; color:#9fb0c9}
.badge.warn{background:#33280f; color:#e0a44c}
.badge.crit{background:#3a1d1b; color:#f2796f}
.big{font-size:22px; font-weight:700; margin:8px 0 2px}

.kv{display:flex; justify-content:space-between; gap:14px; padding:9px 0;
  border-bottom:1px solid #1c2942; font-size:14.5px}
.kv:last-child{border-bottom:none}
.kv .k{color:#9fb0c9}
.kv .v{font-weight:600; text-align:right}

/* Standorte */
.loc{display:flex; gap:16px; align-items:flex-start; padding:16px 0; border-bottom:1px solid #1c2942}
.loc:last-child{border-bottom:none}
.loc .qr{background:#fff; border-radius:12px; padding:8px; flex:none}
.loc .qr img{display:block; width:104px; height:104px}
.loc .info{flex:1; min-width:0}
.loc .name{font-weight:700; font-size:16px; margin-bottom:3px}
.loc .acts{display:flex; gap:8px; flex-wrap:wrap; margin-top:10px}

/* Kurzanleitung „Konfiguration in die App holen" */
.how{
  background:#0d1626; border:1px solid #21304d; border-radius:14px;
  padding:16px 18px; margin:0 0 18px;
}
.how h3{font-size:14.5px; margin:0 0 12px; color:#cdd8ea; font-weight:700}
.step{display:flex; gap:12px; align-items:flex-start; margin:11px 0;
  color:#cdd8ea; font-size:14px; line-height:1.5}
.step .num{
  flex:0 0 25px; height:25px; border-radius:50%; background:#2C6BED; color:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:12.5px;
}
.step b{color:#fff}
.how .hint{color:#9fb0c9; font-size:13px; line-height:1.55; margin:12px 0 0}

/* MoyaVPN-App — die hervorgehobene Empfehlung */
.card.lead{
  background:linear-gradient(150deg,#16305c 0%,#121c30 62%);
  
  border-color:#2b4a80;
}
.applead{display:flex; gap:16px; align-items:flex-start}
.applead .shot{
  width:60px; height:60px; border-radius:15px; flex:none; background:#0d1626;
  border:1px solid #2b4a80; display:flex; align-items:center; justify-content:center;
}
.applead .shot img{width:42px; height:42px; object-fit:contain}
.applead .txt{flex:1; min-width:0}
.applead .nm{font-size:17px; font-weight:700; display:flex; align-items:center;
  gap:9px; flex-wrap:wrap; margin-bottom:4px}
.applead .nm .badge{font-size:11px; padding:3px 9px}
.applead p{color:#9fb0c9; font-size:14px; line-height:1.55; margin:0}

/* Weitere Programme — je Zeile ein Icon */
.plat{
  display:flex; align-items:center; gap:14px;
  padding:13px 0; border-bottom:1px solid #1c2942;
}
.plat:last-child{border-bottom:none}
.plat .ic{width:22px; height:22px; flex:none; fill:#7e90ab}
.plat .os{flex:1; min-width:0; font-weight:600; font-size:14.5px}
.plat .os small{display:block; color:#62748f; font-weight:400; font-size:12.5px; margin-top:2px}
.plat .dl{display:flex; gap:14px; align-items:center; font-size:13.5px; flex:none}
.platrow{border-bottom:1px solid #1c2942}
.platrow:last-child{border-bottom:none}
.platrow .plat{border-bottom:none}

/* Ausklappbare Einrichtungs-Anleitung je System */
.guide{margin:0 0 4px}
.guide summary{
  cursor:pointer; list-style:none; user-select:none;
  color:#3DDC97; font-size:13px; font-weight:600;
  padding:0 0 12px 36px;
}
.guide summary::-webkit-details-marker{display:none}
.guide summary::before{
  content:"\203a"; display:inline-block; width:12px; margin-left:-12px;
  transition:transform .15s ease;
}
.guide[open] summary::before{transform:rotate(90deg)}
.guide ol{
  margin:0 0 4px; padding:0 0 0 52px; list-style:decimal;
  color:#9fb0c9; font-size:13.5px; line-height:1.6;
}
.guide li{margin:8px 0; padding-left:3px}
.guide li b{color:#e4ebf5; font-weight:600}
.guide .ghint{
  margin:10px 0 14px; padding-left:36px;
  color:#62748f; font-size:12.5px; line-height:1.55;
}

@media (max-width:420px){
  .plat{flex-wrap:wrap}
  .plat .dl{width:100%; padding-left:36px}
  .guide summary{padding-left:36px}
  .guide ol{padding-left:50px}
  .guide .ghint{padding-left:36px}
}

/* Tabelle im Verwaltungsbereich */
.tbl-wrap{overflow-x:auto; border-radius:14px; border:1px solid #21304d; background:#121c30}
table{border-collapse:collapse; width:100%; font-size:13.5px; min-width:760px}
th,td{text-align:left; padding:10px 13px; border-bottom:1px solid #1c2942; white-space:nowrap}
th{color:#7e90ab; font-size:11.5px; text-transform:uppercase; letter-spacing:.08em;
  background:#0f1a2c; font-weight:600; position:sticky; top:0}
tr:last-child td{border-bottom:none}
td.wrap-cell{white-space:normal; max-width:220px}
.tag-src{font-size:11px; padding:2px 7px; border-radius:999px; background:#1a2438; color:#9fb0c9}
.tag-src.portal{background:#152a4d; color:#7fb0ff}

footer{color:#41506b; font-size:12px; padding:22px 20px; text-align:center}
.lang{margin-top:20px; text-align:center}
.lang a{color:#62748f; font-size:13px; margin:0 6px; cursor:pointer; font-weight:600}
.lang a.on{color:#3DDC97}
:focus-visible{outline:2px solid #3DDC97; outline-offset:2px}

/* Paketauswahl */
.kv.pack{cursor:pointer; padding:12px 12px; border-radius:11px; border:1px solid transparent;
  margin-bottom:2px}
.kv.pack:hover{background:#17223A}
.kv.pack.on{background:#17223A; border-color:#2C6BED}
.kv.pack .v{color:#3DDC97}
#methods .btn.on{border-color:#2C6BED; background:#16305c}

/* Aktions-Link (?aktion=<slug>): Geschenk-Banner über der Anmeldung */
.promo{
  background:linear-gradient(135deg,#12301f,#14283c);
  border:1px solid #2b5c43; border-radius:14px;
  padding:16px 18px; margin:0 0 18px; text-align:center;
}
.promo .gift{font-size:26px; line-height:1; display:block; margin-bottom:6px}
.promo b{color:#3DDC97; font-size:17px; display:block; margin-bottom:4px}
.promo span.txt{color:#9fb0c9; font-size:14px; line-height:1.5}
.promo.done{background:#17223A; border-color:#26334f}
.promo.done b{color:#9fb0c9}

/* Serverzustand in der Verwaltung (Daten aus dem VPN-Monitor) */
#srvGrid{display:grid; gap:10px; grid-template-columns:repeat(auto-fill,minmax(196px,1fr))}
.srv{border:1px solid #21304d; border-radius:13px; padding:11px 13px; background:#0f1930}
.srv .top{display:flex; align-items:center; gap:7px; margin-bottom:5px}
.srv .fl{font-size:17px}
.srv .nm{font-weight:600; font-size:14px; flex:1}
.srv .dot{width:8px; height:8px; border-radius:50%; background:#3DDC97; flex:none}
.srv.down{opacity:.62}
.srv.down .dot{background:#ff6b6b}
.srv .big{font-size:23px; font-weight:600; line-height:1.2}
.srv .big small{font-size:12px; font-weight:400; color:#62748f; margin-left:5px}
.srv .kv{display:flex; justify-content:space-between; gap:8px; font-size:12px; color:#9fb0c9; margin-top:3px}
.srv .warn{color:#ffc857}
.srv .crit{color:#ff6b6b}
.srv-fuss{color:#62748f; font-size:12.5px; margin-top:12px}

/* „Alle Standorte auf einmal" — AmneziaVPN-Sicherungsdatei */
#alleBox{margin:0 0 18px; padding:14px 15px; border:1px solid #21304d; border-radius:14px; background:#0f1930}
#alleBox .hint{margin:10px 0 0}
#alleBox .err:empty{display:none}

/* Warnung im Kasten „Alle Standorte auf einmal" */
.warnung{color:#ffc857}
#alleBox{border-color:#3a3a1f}
