@font-face{font-family:'Bebas Neue';src:url('../fonts/BebasNeue-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Rajdhani';src:url('../fonts/Rajdhani-SemiBold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Rajdhani';src:url('../fonts/Rajdhani-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
:root{
  --bg:#07111a;
  --panel:#0d1e2a;
  --panel2:#132b3a;
  --paper:#e8f1f5;
  --paper2:#cddde5;
  --ink:#06131d;
  --text:#e9f7ff;
  --muted:#99b6c7;
  --line:#27495b;
  --line2:#5d8498;
  --accent:#15b8ff;
  --accent2:#12d18e;
  --yellow:#ffe100;
  --orange:#ff9d00;
  --red:#e30022;
  --violet:#b200ff;
  --shadow:#02080d;
}
*{box-sizing:border-box}
html{background:var(--bg);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;line-height:1.35}
.admin{display:grid;grid-template-columns:270px 1fr;min-height:100vh}
aside{background:var(--panel);border-right:2px solid var(--line);padding:18px;position:sticky;top:0;height:100vh}
aside h1{font-size:30px;line-height:.95;margin:0 0 18px;letter-spacing:-.055em;border-left:8px solid var(--accent);padding-left:12px;color:var(--text)}
nav{display:grid;gap:8px}
nav a{color:var(--text);text-decoration:none;border:2px solid var(--line2);background:var(--panel2);padding:10px 11px;font-weight:950;text-transform:uppercase;font-size:12px;letter-spacing:.04em}
nav a:hover{border-color:var(--accent);color:var(--accent)}
main{padding:20px;max-width:1140px;width:100%}
h2{font-size:42px;line-height:.95;margin:0 0 18px;letter-spacing:-.055em;color:var(--text)}
h3{margin:0 0 10px;font-size:20px;letter-spacing:-.03em;color:var(--text)}
p{color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}
.cards section,.panel{border:2px solid var(--line);background:var(--panel);box-shadow:8px 8px 0 var(--shadow);padding:16px;margin-bottom:16px}
.big{font-size:34px;font-weight:950;margin:0 0 6px;color:var(--accent)}
.flash{padding:12px 14px;margin-bottom:15px;background:#0f2e27;border:2px solid var(--accent2);font-weight:950;box-shadow:4px 4px 0 var(--shadow)}
.flash.err{background:#321019;border-color:var(--red)}
label{display:grid;gap:6px;margin:0 0 12px;color:var(--text);font-weight:900}
input,select,button,textarea{font:inherit}
input,select,textarea{width:100%;border:2px solid var(--line);background:#04101a;color:var(--text);padding:12px;outline:none;font-weight:800}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(21,184,255,.22)}
button{border:2px solid #02080d;background:var(--accent);color:#02080d;font-weight:950;padding:11px 14px;cursor:pointer;box-shadow:3px 3px 0 #000}
button:active{transform:translate(2px,2px);box-shadow:1px 1px 0 #000}.small{padding:7px 9px;font-size:12px}.danger{background:var(--red);color:white}
.table-wrap{overflow:auto;border:2px solid var(--line);box-shadow:6px 6px 0 var(--shadow)}
table{width:100%;border-collapse:collapse;background:var(--panel)}
th,td{text-align:left;border-bottom:2px solid var(--line);padding:10px;vertical-align:top}
th{color:var(--accent);font-size:12px;text-transform:uppercase;letter-spacing:.08em}td form{display:inline-block;margin:0 5px 5px 0}
code,pre{display:block;white-space:pre-wrap;overflow:auto;background:#04101a;border:2px solid var(--line);padding:12px;color:#d9f5ff}textarea#cron-log{min-height:260px;resize:vertical}.hint{color:var(--muted);font-size:13px}.admin-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.subscriber-list{display:grid;gap:12px}.subscriber-card{border:2px solid var(--line);background:#04101a;padding:12px;box-shadow:5px 5px 0 var(--shadow)}.subscriber-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px;color:var(--text)}.subscriber-head strong{font-size:15px}.subscriber-head span{font-size:12px;color:var(--muted);font-weight:900;text-transform:uppercase}.subscriber-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.subscriber-actions form{margin:0}.sub-form button{margin-top:4px}.settings{display:grid;gap:0}.check{grid-template-columns:auto 1fr;align-items:center}.check input{width:auto}.login{display:grid;place-items:center;min-height:100vh;padding:20px}.login section{width:min(430px,100%);border:2px solid var(--line);background:var(--panel);box-shadow:8px 8px 0 var(--shadow);padding:20px}.login h1{margin:0 0 16px;font-size:36px;line-height:.95;letter-spacing:-.055em;border-left:8px solid var(--accent);padding-left:12px}
@media(max-width:820px){.admin-form-grid{grid-template-columns:1fr 1fr}.admin{grid-template-columns:1fr}aside{position:static;height:auto;border-right:0;border-bottom:2px solid var(--line)}nav{grid-template-columns:repeat(2,1fr)}main{padding:14px}.cards{grid-template-columns:1fr}}@media(max-width:460px){.admin-form-grid{grid-template-columns:1fr}.subscriber-head{display:grid}nav{grid-template-columns:1fr}h2{font-size:32px}.cards section,.panel{box-shadow:5px 5px 0 var(--shadow)}}

/* === Admin Raster-/Frontend-Angleichung v12 === */
:root{--grid:12px;--btn-h:46px;--bg:#06131d;--panel:#0a1c28;--panel2:#102a38;--paper:#eef6f8;--ink:#06131d;--text:#eef9fb;--muted:#9fc0cd;--line:#2f5d6f;--line2:#78a7b7;--accent:#22c7ff;--accent2:#25d48f;--shadow:#00070b}
body{font-family:'Rajdhani',Arial,Helvetica,sans-serif;font-weight:600;letter-spacing:.01em}.admin{grid-template-columns:292px 1fr}aside{background:#0a1c28;border-right:3px solid var(--line2);padding:20px;box-shadow:6px 0 0 var(--shadow)}.admin-kicker{margin:0 0 6px;color:var(--accent);font-size:12px;text-transform:uppercase;letter-spacing:.18em;font-weight:700}aside h1,.login h1{font-family:'Bebas Neue','Arial Narrow',Impact,sans-serif;font-weight:400;letter-spacing:.018em;font-size:50px;line-height:.9;border-left:10px solid var(--accent);padding-left:12px;margin:0 0 20px}nav{display:grid;grid-template-columns:1fr;gap:var(--grid)}nav a{min-height:var(--btn-h);display:flex;align-items:center;border:3px solid var(--line2);background:#102a38;padding:0 12px}main{padding:24px}h2{font-family:'Bebas Neue','Arial Narrow',Impact,sans-serif;font-weight:400;letter-spacing:.018em;font-size:62px;line-height:.9}h3{font-family:'Rajdhani',Arial,Helvetica,sans-serif;font-weight:700}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid)}.cards section,.panel,.login section{border:3px solid var(--line2);box-shadow:6px 6px 0 var(--shadow);border-radius:0;background:#0a1c28}.admin-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--grid);align-items:end}input,select,textarea{height:var(--btn-h);min-height:var(--btn-h);border:3px solid var(--line);border-radius:0;font-family:'Rajdhani',Arial,Helvetica,sans-serif;font-weight:700}.check input{height:auto;min-height:0}button,.small{height:var(--btn-h);min-height:var(--btn-h);display:inline-flex;align-items:center;justify-content:center;border-radius:0;font-family:'Rajdhani',Arial,Helvetica,sans-serif;font-weight:700;padding:0 14px}.small{min-width:110px;font-size:13px}.subscriber-list{gap:var(--grid)}.subscriber-card{border:3px solid var(--line);box-shadow:5px 5px 0 var(--shadow);border-radius:0}.subscriber-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.subscriber-actions form,.subscriber-actions button{width:100%}.table-wrap{border-width:3px}.flash{border-width:3px;box-shadow:4px 4px 0 var(--shadow)}code,pre,textarea#cron-log{border:3px solid var(--line);border-radius:0}.settings{gap:0}.settings>button{width:min(260px,100%)}
@media(max-width:820px){.admin{grid-template-columns:1fr}aside{position:static;height:auto;border-right:0;border-bottom:3px solid var(--line2);box-shadow:0 6px 0 var(--shadow)}nav{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-form-grid{grid-template-columns:1fr 1fr}main{padding:14px}.cards{grid-template-columns:1fr}}
@media(max-width:520px){nav{grid-template-columns:1fr}.admin-form-grid{grid-template-columns:1fr}h2{font-size:44px}aside h1,.login h1{font-size:42px}.subscriber-actions{grid-template-columns:1fr}}

/* === v13 collapsible Mail-Abos === */
.subscriber-card{padding:0;overflow:hidden}.subscriber-card summary{cursor:pointer;list-style:none;padding:12px;margin:0}.subscriber-card summary::-webkit-details-marker{display:none}.subscriber-card summary:after{content:'+';margin-left:auto;color:var(--accent);font-size:20px;line-height:1}.subscriber-card[open] summary:after{content:'–'}.subscriber-card form,.subscriber-card>div.subscriber-actions{padding:12px;border-top:3px solid var(--line)}.subscriber-card:not([open]){background:#06131d}.subscriber-card:not([open]) .subscriber-head{margin-bottom:0}.subscriber-head{min-height:var(--btn-h)}


/* v15 Admin-Ortsauswahl für Mail-Abos */
.admin-form-grid label{position:relative;min-width:0}
.admin-location-choices{position:absolute;left:0;right:0;top:100%;z-index:30;display:grid;gap:4px;background:#06131d;border:3px solid var(--line);padding:6px;box-shadow:5px 5px 0 var(--shadow)}
.admin-location-choices[hidden]{display:none!important}
.admin-location-choices button{height:auto;min-height:42px;display:grid;gap:2px;justify-content:stretch;text-align:left;padding:7px 9px;background:#102a38;color:var(--text);border:2px solid var(--line2);box-shadow:none;text-transform:none}
.admin-location-choices strong{font-size:13px;line-height:1.1}.admin-location-choices small,.admin-location-choices div{font-size:11px;color:var(--muted);font-weight:800}


/* === v18 Statistik === */
.stats-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.stats-filter{display:grid;grid-template-columns:minmax(160px,260px) auto;gap:var(--grid);align-items:end}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--grid)}.rank-list{display:grid;gap:8px}.rank-list div{position:relative;display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center;border:2px solid var(--line);background:#04101a;padding:9px 10px}.rank-list strong{color:var(--text);font-size:15px}.rank-list small{grid-column:1/-1;color:var(--muted);font-weight:800}.rank-list span{min-width:42px;text-align:center;background:var(--accent);color:#02080d;font-weight:950;padding:4px 8px;box-shadow:2px 2px 0 #000}@media(max-width:980px){.stats-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid{grid-template-columns:1fr}}@media(max-width:520px){.stats-cards,.stats-filter{grid-template-columns:1fr}}
