/* ditix-tools — gemeinsames Admin-Design-System.
   Eingebunden von allen /admin-Seiten: <link rel="stylesheet" href="/admin/admin.css">. */

:root {
  --lime:#caeb30; --magenta:#ff3ec7; --bg:#0a0a0a; --panel:#141414;
  --text:#f5f5f5; --muted:#a3a3a3; --border:#262626; --danger:#f87171; --warn:#d4a017;
  --success:#4ade80;
}
* { box-sizing: border-box; }
html, body { margin:0; padding:0; min-height:100%; background:var(--bg); color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; }
a { color:var(--lime); }
.wrap { max-width:980px; margin:0 auto; padding:64px 24px 80px; }
.wrap.wide { max-width:1100px; }

.brand { font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--lime); margin-bottom:14px; font-weight:600; }
h1 { font-size:34px; line-height:1.1; margin:0 0 12px; font-weight:700; letter-spacing:-0.02em; }
.lead { color:var(--muted); max-width:640px; font-size:14px; line-height:1.6; margin:0 0 32px; }
.small { font-size:12px; color:var(--muted); }
.muted { color:var(--muted); }
.crumbs { font-size:12px; color:var(--muted); margin-bottom:18px; }
.crumbs a { color:var(--muted); text-decoration:none; }
.crumbs a:hover { color:var(--lime); }

/* Buttons */
button { font-family:inherit; cursor:pointer; border:none; border-radius:10px; font-size:14px; font-weight:600; padding:11px 18px; }
.btn-primary { background:var(--lime); color:#0a0a0a; }
.btn-primary:hover { filter:brightness(1.06); }
.btn-ghost { background:transparent; color:var(--muted); border:1px solid var(--border); }
.btn-ghost:hover { color:var(--text); border-color:var(--lime); }
.btn-danger { background:transparent; color:var(--danger); border:1px solid #3a2020; padding:8px 12px; font-size:13px; }
.btn-danger:hover { background:#2a1515; }

/* Inputs */
label { display:block; font-size:12px; color:var(--muted); margin:0 0 6px; letter-spacing:.02em; }
input, select { width:100%; background:#0f0f0f; border:1px solid var(--border); border-radius:10px;
  color:var(--text); padding:11px 12px; font-size:14px; font-family:inherit; }
input:focus, select:focus { outline:none; border-color:var(--lime); }

/* Cards / Kachel-Grid */
.card { background:var(--panel); border:1px solid var(--border); border-radius:16px; padding:24px; margin-bottom:20px; }
.card h2 { font-size:18px; margin:0 0 18px; font-weight:600; }
.grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(320px, 1fr)); gap:20px; }
.tile {
  background:var(--panel); border:1px solid var(--border); border-radius:18px;
  padding:26px 26px 22px; text-decoration:none; color:inherit;
  transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease;
  display:flex; flex-direction:column; gap:14px; position:relative; overflow:hidden; min-height:200px;
}
.tile::before { content:""; position:absolute; inset:0; border-radius:18px; pointer-events:none;
  background:radial-gradient(circle at 0% 0%, rgba(202,235,48,0.10), transparent 60%); opacity:0; transition:opacity .2s ease; }
.tile:hover { transform:translateY(-2px); border-color:var(--lime); box-shadow:0 16px 44px -18px rgba(202,235,48,.5); }
.tile:hover::before { opacity:1; }
.tile h2 { font-size:21px; margin:0; font-weight:600; letter-spacing:-0.01em; }
.tile .desc { color:var(--muted); font-size:14px; line-height:1.55; flex:1; }
.tile .cta { color:var(--lime); font-size:13px; font-weight:500; margin-top:4px; }

/* Admin-Übersicht: kompakte Kacheln (mehr Bereiche auf einen Blick) — nur #tiles */
#tiles { grid-template-columns:repeat(auto-fill, minmax(214px, 1fr)); gap:14px; }
#tiles .tile { min-height:0; padding:15px 16px 13px; gap:7px; border-radius:14px; }
#tiles .tile .icon { width:32px; height:32px; border-radius:9px; }
#tiles .tile .icon svg { width:17px; height:17px; }
#tiles .tile h2 { font-size:15.5px; }
#tiles .tile .desc { font-size:12.5px; line-height:1.45; }
#tiles .tile .cta { margin-top:2px; font-size:12px; }
.icon { width:44px; height:44px; border-radius:12px; background:rgba(202,235,48,.08);
  border:1px solid rgba(202,235,48,.18); display:inline-flex; align-items:center; justify-content:center; color:var(--lime); }
.icon svg { width:22px; height:22px; }

/* Meldungen */
.msg { padding:11px 14px; border-radius:10px; font-size:13px; margin-bottom:18px; display:none; }
.msg.err { background:#2a1515; color:var(--danger); display:block; }
.msg.ok { background:#16240a; color:var(--lime); display:block; }

/* Login-Gate */
#gate { display:none; }

/* Layout-Helfer */
.row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.row.full { grid-template-columns:1fr; }
.actions { display:flex; gap:10px; margin-top:6px; }
.section-head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:40px 0 16px; }
.section-head h2 { font-size:16px; margin:0; }

/* Veranstalter-Liste (Weeze) */
.org { border:1px solid var(--border); border-radius:14px; padding:18px 20px; margin-bottom:14px; background:#101010; }
.org-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.org-name { font-size:16px; font-weight:600; }
.org-meta { color:var(--muted); font-size:12px; margin-top:4px; line-height:1.7; word-break:break-all; }
.url-box { display:flex; gap:8px; margin-top:14px; }
.url-box input { font-size:12px; color:var(--lime); background:#0c0c0c; }
.hint { color:var(--muted); font-size:12px; margin-top:8px; line-height:1.6; }
.tag { display:inline-block; background:rgba(202,235,48,.1); color:var(--lime); border:1px solid rgba(202,235,48,.2);
  border-radius:6px; padding:2px 8px; font-size:11px; font-weight:600; }

/* Konfig-Liste (z.B. GSC-Status) */
.kv { display:grid; grid-template-columns:200px 1fr; gap:8px 16px; font-size:13px; line-height:1.6; }
.kv dt { color:var(--muted); }
.kv dd { margin:0; word-break:break-all; }
.kv code, code.inline { background:#0c0c0c; border:1px solid var(--border); border-radius:5px; padding:1px 6px; color:var(--lime); font-size:12px; }

/* Protokoll / Log */
.toolbar { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; margin:8px 0 18px; }
.filters { display:flex; flex-wrap:wrap; gap:8px; }
.chip { background:transparent; color:var(--muted); border:1px solid var(--border); border-radius:999px; padding:7px 14px; font-size:13px; font-weight:600; }
.chip:hover { color:var(--text); border-color:var(--lime); }
.chip.active { background:rgba(202,235,48,.12); color:var(--lime); border-color:rgba(202,235,48,.35); }
.count { color:var(--muted); font-size:12px; }
.logrow { display:flex; gap:14px; padding:11px 0; border-bottom:1px solid var(--border); }
.logtime { color:var(--muted); font-size:12px; white-space:nowrap; min-width:150px; }
.logmain { font-size:13px; line-height:1.55; flex:1; min-width:0; }
.logstatus { font-weight:600; }
.logtickets { margin-top:6px; line-height:1.8; word-break:break-all; }
.logtickets code, code.inline { background:#0c0c0c; border:1px solid var(--border); border-radius:5px; padding:1px 6px; color:var(--lime); font-size:12px; }
.logdim { color:var(--muted); }
.type { display:inline-block; border-radius:6px; padding:1px 8px; font-size:11px; font-weight:700; letter-spacing:.02em; margin-right:8px; vertical-align:1px; }
.type-weeze  { background:rgba(202,235,48,.10); color:var(--lime); border:1px solid rgba(202,235,48,.25); }
.type-import { background:rgba(120,170,255,.10); color:#8ab4ff; border:1px solid rgba(120,170,255,.25); }
.type-gsc    { background:rgba(212,160,23,.12); color:var(--warn); border:1px solid rgba(212,160,23,.3); }
.type-brevo  { background:rgba(52,211,153,.12); color:#34d399; border:1px solid rgba(52,211,153,.3); }
.type-notify { background:rgba(167,139,250,.12); color:#a78bfa; border:1px solid rgba(167,139,250,.3); }
.type-health { background:rgba(74,222,128,.12); color:var(--success); border:1px solid rgba(74,222,128,.3); }

/* Toggle-Switch (Feld-Schalter) */
.switch { display:inline-flex; align-items:center; gap:10px; cursor:pointer; font-size:14px; color:var(--text); }
.switch input { display:none; }
.switch .track { width:38px; height:22px; border-radius:999px; background:#2a2a2a; border:1px solid var(--border);
  position:relative; transition:background .15s, border-color .15s; flex:none; }
.switch .track::after { content:""; position:absolute; top:2px; left:2px; width:16px; height:16px; border-radius:50%;
  background:var(--muted); transition:transform .15s, background .15s; }
.switch input:checked + .track { background:rgba(202,235,48,.25); border-color:var(--lime); }
.switch input:checked + .track::after { transform:translateX(16px); background:var(--lime); }
.switch.locked { cursor:default; }
.switch.locked .track { background:rgba(202,235,48,.25); border-color:var(--lime); }
.switch.locked .track::after { transform:translateX(16px); background:var(--lime); }
.switch .lockhint { font-size:11px; color:var(--muted); }

@media (max-width:600px) {
  .row { grid-template-columns:1fr; }
  .kv { grid-template-columns:1fr; gap:2px 0; }
  .kv dt { margin-top:8px; }
}
