/* Designtokens aus dem bestehenden Kunden-Dashboard (Anuga/LinkedIn),
   auf mehrere Plattformen erweitert. */
:root { color-scheme: light }
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0 }
:root{
  --bg:#f4f2ee; --surface:#fff; --surface2:#f9f8f6;
  --border:rgba(0,0,0,.08); --border-strong:rgba(0,0,0,.14);
  --text-primary:#111110; --text-secondary:#6b6a66; --text-muted:#a09e99;
  --accent:#0a66c2; --accent-light:#e8f1fb;
  --violet:#6d28d9; --violet-light:#ede9fe;
  --green:#057642; --green-light:#e3f2ea;
  --red:#b91c1c; --red-light:#fee2e2;
  --amber:#b45309; --amber-light:#fef3c7;
  --ink:#1e3a5f;
  --r:10px; --rl:14px;
}
[data-platform="instagram"]{ --accent:#c13584; --accent-light:#fbe9f4 }
[data-platform="linkedin"] { --accent:#0a66c2; --accent-light:#e8f1fb }

html{ font-size:15px }
body{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Helvetica Neue',Arial,sans-serif;
  background:var(--bg); color:var(--text-primary); min-height:100vh; line-height:1.55;
}
a{ color:var(--accent) }
.shell{ max-width:1040px; margin:0 auto; padding:2.5rem 1.5rem 5rem }

/* Kopf */
.page-header{ display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:2rem;
  padding-bottom:1.25rem; border-bottom:1px solid var(--border-strong); flex-wrap:wrap; gap:1rem }
.eyebrow{ font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); margin-bottom:4px }
.page-title{ font-size:22px; font-weight:600; letter-spacing:-.02em }
.page-sub{ font-size:13px; color:var(--text-secondary); margin-top:3px }
.header-actions{ display:flex; align-items:center; gap:10px; font-size:12px; color:var(--text-secondary) }

/* Tabs */
.cat-tabs{ display:flex; gap:6px; margin-bottom:1.75rem; flex-wrap:wrap }
.cat-tab{ font-size:14px; font-weight:500; padding:9px 20px; border-radius:30px; border:1.5px solid var(--border-strong);
  background:var(--surface); color:var(--text-secondary); cursor:pointer; transition:all .15s; font-family:inherit }
.cat-tab.active{ background:var(--accent); border-color:var(--accent); color:#fff }
.cat-tab[data-cat="fazit"].active{ background:var(--ink); border-color:var(--ink) }
.cat-tab:not(.active):hover{ border-color:var(--border-strong); color:var(--text-primary) }
.cat-section{ display:none }
.cat-section.active{ display:block; animation:fadeUp .2s ease }
@keyframes fadeUp{ from{opacity:0; transform:translateY(6px)} to{opacity:1; transform:translateY(0)} }

/* Kacheln */
.kpi-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:10px; margin-bottom:1.5rem }
.kpi{ background:var(--surface); border:1px solid var(--border); border-radius:var(--r); padding:13px 15px }
.kpi-label{ font-size:11px; color:var(--text-muted); text-transform:uppercase; letter-spacing:.05em; margin-bottom:5px }
.kpi-value{ font-size:24px; font-weight:600; letter-spacing:-.03em }
.kpi-delta{ font-size:11px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; margin-top:3px }
.up{ color:var(--green) } .down{ color:var(--red) } .neu{ color:var(--text-muted) }

/* Karten & Charts */
.chart-card{ background:var(--surface); border:1px solid var(--border); border-radius:var(--rl);
  padding:1.1rem 1.4rem 1rem; margin-bottom:1rem }
.chart-card-title{ font-size:13px; font-weight:500; color:var(--text-secondary); margin-bottom:12px }
.chart-wrap{ position:relative; width:100% }
.h180{ height:180px } .h220{ height:220px } .h260{ height:260px }
.chart-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:1rem }
.sec-label{ font-size:11px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.06em;
  text-transform:uppercase; color:var(--text-muted); margin-bottom:10px; padding-bottom:7px; border-bottom:1px solid var(--border) }

/* Tabellen */
.sum-table{ width:100%; border-collapse:collapse; font-size:13px }
.sum-table th{ text-align:left; font-size:10px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  text-transform:uppercase; letter-spacing:.05em; color:var(--text-muted); padding:8px 10px;
  border-bottom:1px solid var(--border); font-weight:400 }
.sum-table td{ padding:9px 10px; border-bottom:1px solid var(--border); vertical-align:top }
.sum-table tr:last-child td{ border-bottom:none }
.sum-table tr:hover td{ background:var(--surface2) }
.num{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; white-space:nowrap }

/* Beitragskarten */
.post-list{ display:flex; flex-direction:column; gap:8px }
.post-card{ background:var(--surface); border:1px solid var(--border); border-radius:var(--r); padding:11px 13px }
.post-card.is-top{ border-left:3px solid var(--green) }
.post-card.is-flop{ border-left:3px solid var(--amber) }
.post-head{ display:flex; align-items:flex-start; gap:8px; margin-bottom:7px }
.post-date{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:11px; color:var(--text-muted);
  white-space:nowrap; padding-top:2px }
.post-title{ font-size:13px; font-weight:500; line-height:1.4; flex:1 }
.badges{ display:flex; gap:5px; flex-wrap:wrap; margin-bottom:7px }
.badge{ font-size:10px; font-weight:500; padding:2px 8px; border-radius:20px; background:var(--surface2); color:var(--text-secondary) }
.badge-top{ background:var(--green-light); color:var(--green) }
.badge-flop{ background:var(--amber-light); color:var(--amber) }
.post-stats{ display:flex; flex-wrap:wrap; gap:12px }
.stat{ font-size:12px; color:var(--text-secondary) }
.stat-eng{ margin-left:auto; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; font-weight:500 }

/* Fazit */
.fazit-block{ background:var(--surface); border:1px solid var(--border); border-radius:var(--rl);
  padding:1.5rem 1.75rem; margin-bottom:1.25rem }
.fazit-lead{ font-size:15px; line-height:1.7 }
.fazit-sections{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:1.5rem; margin-top:1.5rem }
.fazit-col-head{ font-size:10px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.07em;
  text-transform:uppercase; margin-bottom:10px; display:flex; align-items:center; gap:6px; color:var(--text-secondary) }
.fazit-col-head-dot{ width:6px; height:6px; border-radius:50%; flex-shrink:0 }
.fazit-col ul{ list-style:none; display:flex; flex-direction:column; gap:7px }
.fazit-col li{ font-size:13px; line-height:1.55; color:var(--text-secondary); padding-left:14px; position:relative }
.fazit-col li::before{ content:''; position:absolute; left:0; top:7px; width:5px; height:5px;
  border-radius:50%; background:currentColor; opacity:.4 }
.trend-row{ display:flex; align-items:flex-start; gap:12px; padding:9px 0; border-bottom:1px solid var(--border) }
.trend-row:last-child{ border-bottom:none }
.trend-icon{ font-size:12px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; padding:2px 8px;
  border-radius:20px; white-space:nowrap; flex-shrink:0 }
.trend-pos{ background:var(--green-light); color:var(--green) }
.trend-neg{ background:var(--red-light); color:var(--red) }
.trend-text{ font-size:13px; line-height:1.6; color:var(--text-secondary) }

/* Formulare & Meldungen */
.card{ background:var(--surface); border:1px solid var(--border); border-radius:var(--rl); padding:1.5rem 1.75rem; margin-bottom:1.25rem }
.field{ margin-bottom:1rem }
label{ display:block; font-size:12px; color:var(--text-secondary); margin-bottom:5px }
input[type=text], input[type=email], input[type=password], input[type=file], select{
  width:100%; font:inherit; font-size:14px; padding:9px 11px; border:1px solid var(--border-strong);
  border-radius:var(--r); background:var(--surface); color:var(--text-primary) }
input:focus, select:focus{ outline:2px solid var(--accent); outline-offset:-1px }
.btn{ font:inherit; font-size:14px; font-weight:500; padding:10px 22px; border-radius:30px; border:1.5px solid var(--accent);
  background:var(--accent); color:#fff; cursor:pointer }
.btn:hover{ filter:brightness(1.08) }
.btn-ghost{ background:var(--surface); color:var(--text-secondary); border-color:var(--border-strong) }
.msg{ padding:12px 15px; border-radius:var(--r); font-size:13px; margin-bottom:1rem; line-height:1.5 }
.msg-ok{ background:var(--green-light); color:var(--green) }
.msg-err{ background:var(--red-light); color:var(--red) }
.msg-warn{ background:var(--amber-light); color:var(--amber) }
.muted{ color:var(--text-muted); font-size:12px }
.login-shell{ max-width:380px; margin:12vh auto; padding:0 1.5rem }

@media(max-width:700px){
  .chart-grid, .fazit-sections{ grid-template-columns:1fr }
  .page-header{ flex-direction:column; align-items:flex-start }
}
