/* Schriften liegen lokal (tools/fetch-fonts.sh). Fehlen sie, greifen die Ersatzschriften. */
@font-face{font-family:"Barlow Condensed";font-weight:500;font-style:normal;font-display:swap;src:url("fonts/barlow-condensed-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:600;font-style:normal;font-display:swap;src:url("fonts/barlow-condensed-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Barlow Condensed";font-weight:700;font-style:normal;font-display:swap;src:url("fonts/barlow-condensed-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Inter";font-weight:400;font-style:normal;font-display:swap;src:url("fonts/inter-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Inter";font-weight:500;font-style:normal;font-display:swap;src:url("fonts/inter-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Inter";font-weight:600;font-style:normal;font-display:swap;src:url("fonts/inter-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Inter";font-weight:800;font-style:normal;font-display:swap;src:url("fonts/inter-latin-800-normal.woff2") format("woff2")}
:root{
  --ink:#09090A; --panel:#121214; --raise:#1A1A1D; --line:#26262A; --line2:#34343A;
  --text:#F2F1EE; --muted:#9B9AA0; --faint:#5F5E66;
  --rec:#FF3B30; --warm:#FFC24B; --ok:#3DDC97;
  --cond:"Barlow Condensed","Arial Narrow",system-ui,sans-serif;
  --ui:"Inter",-apple-system,"Segoe UI",system-ui,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;background:var(--ink);color:var(--text);font:15px/1.5 var(--ui);padding-bottom:env(safe-area-inset-bottom,0px)}
a{color:var(--text)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--warm);outline-offset:2px;border-radius:4px}
[hidden]{display:none!important}
.tc{font-family:var(--cond);font-variant-numeric:tabular-nums;letter-spacing:.04em}

/* Kopfzeile */
.slate{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:20px;flex-wrap:wrap;
  padding:calc(12px + env(safe-area-inset-top,0px)) 28px 12px;background:rgba(9,9,10,.88);
  backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.brand{font:700 22px/1 var(--cond);letter-spacing:.01em;text-decoration:none;margin-right:auto}
.nav{display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.nav a,.nav button{color:var(--muted);text-decoration:none;padding:7px 12px;border-radius:999px;background:none;border:0;cursor:pointer;font-size:14px}
.nav a:hover,.nav button:hover{color:var(--text)}
.nav a[aria-current=page]{color:var(--text);background:var(--raise)}
.credits{font:600 15px/1 var(--cond);color:var(--muted);letter-spacing:.03em;white-space:nowrap}
.credits b{color:var(--text)}
.slate .cell{font:500 15px/1 var(--cond);color:var(--muted);letter-spacing:.03em;white-space:nowrap}
.slate .cell b{color:var(--text);font-weight:600}
.status{display:flex;align-items:center;gap:8px}
.status i{width:9px;height:9px;border-radius:50%;background:var(--ok)}
.status.rec i{background:var(--rec);animation:blink 1s steps(2,start) infinite}
@keyframes blink{to{visibility:hidden}}

/* Meldungen */
.flashes{max-width:1180px;margin:16px auto 0;padding:0 28px;display:flex;flex-direction:column;gap:8px}
.flash{padding:12px 16px;border-radius:10px;border:1px solid var(--line2);background:var(--panel)}
.flash.error{border-color:#6B2A26;background:#1C1010}
.flash.ok{border-color:#1E4D3A;background:#0E1813}
.flash form{display:inline}

/* Allgemeine Bausteine */
.page{max-width:1180px;margin:0 auto;padding:32px 28px 64px}
.narrow{max-width:460px}
.scene{display:flex;align-items:baseline;gap:10px;margin:0 0 6px}
.scene span{font:600 14px/1 var(--cond);color:var(--faint);letter-spacing:.04em}
.scene h1,.scene h2{font:700 30px/1.05 var(--cond);margin:0;letter-spacing:.005em}
.scene h2{font-size:24px}
h3{font:600 16px/1.3 var(--ui);margin:0 0 6px}
.sub{font-size:14px;color:var(--muted);margin:0 0 16px;max-width:60ch}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:18px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
label.f{display:block;margin:0 0 14px;font-size:14px;color:var(--muted)}
label.f input,label.f select,label.f textarea{display:block;width:100%;margin-top:6px;background:var(--ink);
  border:1px solid var(--line2);border-radius:10px;padding:11px 13px;color:var(--text)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--muted);margin:4px 0 18px}
.check input{margin-top:3px;accent-color:var(--rec)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;cursor:pointer;border-radius:999px;
  padding:12px 22px;font:700 18px/1 var(--cond);letter-spacing:.02em;background:var(--text);color:var(--ink);text-decoration:none}
.btn i{width:10px;height:10px;border-radius:50%;background:var(--rec)}
.btn.block{width:100%}
.btn:disabled{opacity:.3;cursor:not-allowed}
.ghost{background:none;border:1px solid var(--line2);border-radius:999px;padding:8px 15px;cursor:pointer;color:var(--muted);text-decoration:none;display:inline-block;font-size:14px}
.ghost:hover{color:var(--text);border-color:var(--faint)}
.ghost:disabled{opacity:.4;cursor:not-allowed}
.danger{border-color:#6B2A26;color:#FFB4AE}
.muted{color:var(--muted)} .faint{color:var(--faint)} .small{font-size:13px}
.links{display:flex;justify-content:space-between;gap:12px;font-size:14px;margin-top:16px}
.links a{color:var(--muted)}
code,.mono{font-family:ui-monospace,Menlo,monospace;font-size:13px;background:var(--ink);border:1px solid var(--line2);border-radius:6px;padding:2px 6px;word-break:break-all}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--faint);font-weight:500}
.table-wrap{overflow-x:auto}
.pill{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--raise);font-size:12px;color:var(--muted)}
.pill.ok{color:var(--ok)} .pill.error{color:#FF8A80} .pill.running,.pill.queued{color:var(--warm)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px}
.stat b{display:block;font:700 34px/1 var(--cond)}
.stat span{font-size:13px;color:var(--muted)}
.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.inline input,.inline select{background:var(--ink);border:1px solid var(--line2);border-radius:8px;padding:8px 10px}

/* Tarife */
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:22px}
.plan{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:8px}
.plan.current{border-color:var(--text)}
.plan h3{font:700 24px/1 var(--cond);margin:0}
.plan .price{font:700 40px/1 var(--cond)}
.plan .price small{font:500 15px/1 var(--ui);color:var(--muted)}
.plan ul{margin:6px 0 12px;padding-left:18px;color:var(--muted);font-size:14px;flex:1}

/* Footer */
.foot{border-top:1px solid var(--line);padding:22px 28px;color:var(--faint);font-size:13px;display:flex;gap:18px;flex-wrap:wrap}
.foot a{color:var(--faint)}

@media (max-width:720px){
  .slate{padding-left:16px;padding-right:16px;gap:10px}
  .page,.flashes{padding-left:16px;padding-right:16px}
  .nav a,.nav button{padding:6px 9px}
}
@media (prefers-reduced-motion:reduce){ .status.rec i{animation:none} *{transition:none!important} }
.plan .pill{align-self:flex-start}
