:root{
  --brand:#b91c1c; --brand-600:#dc2626;
  --ink:#0f172a; --muted:#64748b; --bg:#f8fafc; --card:#ffffff; --border:#e2e8f0; --ring:#94a3b8;
  --success:#16a34a; --warning:#f59e0b; --error:#ef4444; --paused:#6b7280;
  --radius:16px; --radius-sm:12px;
  --shadow:0 10px 20px rgba(2,6,23,0.06), 0 2px 6px rgba(2,6,23,0.05);
  --shadow-sm:0 6px 14px rgba(2,6,23,0.05);
  --shadow-inset:inset 0 0 0 1px var(--border);
}
html,body{height:100%} *{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Arial}
.topbar{background:#fff;border-bottom:4px solid var(--brand);position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:12px 18px;box-shadow:var(--shadow-sm)}
.brand{font-weight:800;letter-spacing:.2px;color:var(--brand);display:flex;gap:10px;align-items:center}
.brand small{color:var(--muted);font-weight:600}
.nav a{color:var(--ink);text-decoration:none;font-weight:600;padding:8px 10px;border-radius:10px}
.nav a:hover{background:rgba(185,28,28,0.08)}
.logout{display:inline-block}
.container{max-width:1160px;margin:22px auto;padding:0 18px}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}
.card+.card{margin-top:16px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border-radius:12px;border:1px solid var(--border);background:#fff;color:var(--ink);text-decoration:none;font-weight:600;box-shadow:var(--shadow-sm);transition:transform .02s ease,box-shadow .15s ease,background .15s ease}
.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.btn:active{transform:translateY(0)}
.btn.brand{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.brand:hover{background:var(--brand-600)}
.btn.ghost{background:#fff}
.btn.muted{color:var(--muted)}
.input,select.input,textarea.input{width:100%;padding:12px 12px;background:#fff;color:var(--ink);border:1px solid var(--border);border-radius:12px;outline:none;box-shadow:var(--shadow-inset)}
.input:focus,select.input:focus,textarea.input:focus{border-color:var(--brand-600);box-shadow:0 0 0 3px rgba(220,38,38,0.15)}
.table{width:100%;border-collapse:separate;border-spacing:0 8px}
.table th{text-align:left;font-size:13px;color:var(--muted);font-weight:700;padding:0 10px 6px}
.table td{background:#fff;border:1px solid var(--border);border-left:none;border-right:none;padding:12px 10px}
.table tr{box-shadow:var(--shadow-sm);border-radius:var(--radius-sm)}
.table tr td:first-child{border-left:1px solid var(--border);border-top-left-radius:var(--radius-sm);border-bottom-left-radius:var(--radius-sm)}
.table tr td:last-child{border-right:1px solid var(--border);border-top-right-radius:var(--radius-sm);border-bottom-right-radius:var(--radius-sm)}
.badge{display:inline-block;padding:6px 10px;font-size:12px;font-weight:700;border-radius:999px;border:1px solid transparent}
.badge.offen{background:rgba(239,68,68,0.12);color:#b91c1c;border-color:rgba(239,68,68,0.25)}
.badge.erledigt{background:rgba(22,163,74,0.12);color:#166534;border-color:rgba(22,163,74,0.25)}
.badge.pausiert{background:rgba(107,114,128,0.14);color:#374151;border-color:rgba(107,114,128,0.25)}
.badge.inarbeit{background:rgba(245,158,11,0.14);color:#92400e;border-color:rgba(245,158,11,0.25)}
.muted{color:var(--muted)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.alert{border-radius:14px;padding:12px 14px;border:1px solid var(--border);background:#fff;box-shadow:var(--shadow-sm)}
.alert.ok{border-color:rgba(22,163,74,0.3)}.alert.err{border-color:rgba(239,68,68,0.3)}
.chat{display:flex;flex-direction:column;gap:10px;max-height:60vh;overflow:auto;padding:8px}
.bubble{max-width:72%;padding:12px 14px;border-radius:16px;border:1px solid var(--border);box-shadow:var(--shadow-sm)}
.bubble.right{align-self:flex-end;background:#111;color:#fff;border-color:#111}
.bubble.left{align-self:flex-start;background:#fff;color:var(--ink)}
.bubble .meta{font-size:12px;color:var(--muted);margin-top:6px}
.stack-sm>*+*{margin-top:8px}.stack-md>*+*{margin-top:12px}.stack-lg>*+*{margin-top:18px}
.hidden{display:none}
