:root{--bg:#fafafa;--fg:#1a1a1a;--mu:#6b6b6b;--line:#e2e2e2;--ac:#1f5fbf;--ok:#1a7f37;--warn:#b26a00;--err:#c62828;--card:#fff}
@media (prefers-color-scheme:dark){:root{--bg:#161616;--fg:#e8e8e8;--mu:#9a9a9a;--line:#2e2e2e;--ac:#6ea8ff;--ok:#4cc26a;--warn:#e0a030;--err:#ff6b6b;--card:#1e1e1e}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}
header{display:flex;gap:1.2rem;align-items:center;padding:.6rem 1rem;border-bottom:1px solid var(--line);background:var(--card);flex-wrap:wrap}
header nav{display:flex;gap:.9rem;flex:1;flex-wrap:wrap}
header a{color:var(--fg);text-decoration:none;padding:.2rem 0}
header a.on{border-bottom:2px solid var(--ac);font-weight:600}
.snapshot-label{font-size:.75rem;color:var(--mu);border:1px solid var(--line);border-radius:999px;padding:.1rem .5rem;white-space:nowrap}
main{max-width:1100px;margin:0 auto;padding:1rem}
h1{font-size:1.4rem;margin:.4rem 0 .8rem}
h2{font-size:1.05rem;margin:1.5rem 0 .5rem}
a{color:var(--ac)}
table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line)}
th,td{text-align:left;padding:.4rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}
th{font-weight:600;color:var(--mu);font-size:.85rem}
.kv th{width:12rem}
.r{text-align:right;font-variant-numeric:tabular-nums}
.act{white-space:nowrap}
.muted{color:var(--mu)}
.ok{color:var(--ok)}.warn{color:var(--warn)}.err{color:var(--err)}
.flash{background:var(--card);border:1px solid var(--ac);padding:.5rem .8rem;border-radius:4px}
button{font:inherit;background:var(--ac);color:#fff;border:0;border-radius:4px;padding:.35rem .8rem;cursor:pointer}
button.sec{background:transparent;color:var(--ac);border:1px solid var(--ac)}
button.link{background:none;color:var(--mu);padding:0}
input,select,textarea{font:inherit;color:var(--fg);background:var(--card);border:1px solid var(--line);border-radius:4px;padding:.3rem .5rem;width:100%}
textarea{font-family:ui-monospace,Menlo,monospace;font-size:.85rem}
form.inline{display:flex;gap:.6rem;align-items:center}
form.inline select{width:auto}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.7rem}
.grid label{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem;color:var(--mu)}
.grid .wide{grid-column:1/-1}
.login{max-width:260px;margin:15vh auto;display:flex;flex-direction:column;gap:.6rem}
.tag{display:inline-block;border:1px solid var(--line);border-radius:12px;padding:.1rem .6rem;margin:0 .2rem .3rem 0;text-decoration:none;background:var(--card)}
.validation-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;margin:.8rem 0}
.validation-metrics>div{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:.7rem;display:flex;flex-direction:column;gap:.25rem}
.validation-metrics strong{font-size:1.3rem}.validation-metrics span{color:var(--mu);font-size:.85rem}
button:disabled{opacity:.55;cursor:not-allowed}.table-scroll{overflow-x:auto}
.dot{display:inline-block;width:.7rem;height:.7rem;border-radius:50%;background:var(--mu)}
.dot.gruen{background:var(--ok)}.dot.gelb{background:var(--warn)}.dot.rot{background:var(--err)}
details{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:.5rem .8rem;margin:.5rem 0}
summary{cursor:pointer}
pre{white-space:pre-wrap;font:inherit;line-height:1.55;margin:.5rem 0 0}
@media (max-width:640px){table{font-size:.85rem}th,td{padding:.3rem .4rem}}
.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.page-heading h1{margin-bottom:.1rem}.page-heading p{margin:.1rem 0}
.channel-grid{display:grid;gap:1rem}.channel-card,.step-panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem 1.2rem}
.channel-card.is-inactive{opacity:.75}.channel-card-top,.channel-card-footer{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}
.channel-card h2{font-size:1.1rem;margin:0}.channel-card p{margin:.15rem 0}.channel-card-footer{align-items:center;border-top:1px solid var(--line);padding-top:.8rem}
.status-pill{border:1px solid var(--line);border-radius:999px;padding:.15rem .55rem;font-size:.8rem;white-space:nowrap}
.button{display:inline-block;background:var(--ac);color:#fff;text-decoration:none;border-radius:6px;padding:.4rem .75rem;white-space:nowrap}
.mini-steps,.workflow-steps{display:flex;gap:.3rem;list-style:none;margin:1rem 0;padding:0;overflow-x:auto}
.mini-steps li{flex:1;min-width:65px;text-align:center;color:var(--mu)}.mini-steps span,.workflow-steps span{display:inline-grid;place-items:center;width:1.6rem;height:1.6rem;border:1px solid var(--line);border-radius:50%;margin-right:.2rem}
.mini-steps small{display:block;font-size:.7rem}.mini-steps li.current{color:var(--ac);font-weight:700}.mini-steps li.done span{background:var(--ok);color:#fff;border-color:var(--ok)}
.workflow-steps a{display:flex;align-items:center;gap:.2rem;min-width:max-content;padding:.5rem .65rem;border:1px solid var(--line);border-radius:7px;text-decoration:none;color:var(--fg)}.workflow-steps a.current{border-color:var(--ac);color:var(--ac);font-weight:700;background:var(--card)}
.step-panel{min-height:190px}.step-panel h2{margin-top:0}
.step-card,.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.8rem 1rem;margin:.7rem 0}
.step-card p{margin:.35rem 0}.script-card{margin:1rem 0}.script-card pre{white-space:pre-wrap;overflow-wrap:anywhere}
.market-row{display:flex;gap:.8rem;align-items:center;border-bottom:1px solid var(--line);padding:.55rem 0}.market-row img{width:120px;height:68px;object-fit:cover;border-radius:5px;background:var(--line)}.market-row p{margin:.2rem 0}
.badge{display:inline-block;border-radius:999px;padding:.1rem .5rem;font-size:.75rem;background:var(--line)}.badge.freigegeben{background:var(--ok);color:#fff}.badge.abgelehnt{background:var(--err);color:#fff}
.thema .kopf{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.thema .kopf h3{margin:0;font-size:1.1rem;flex:1}.thema .warum{margin:.5rem 0}.thema .aktion{display:flex;gap:.5rem;margin-top:.6rem}.thema .titel-liste{list-style:none;padding:0}.thema .titel-liste li{display:flex;gap:.4rem;align-items:center;padding:.25rem 0;border-bottom:1px solid var(--line)}.thema .titel-liste li span{flex:1}.thema .st-abgelehnt{opacity:.6}
.note{font-weight:700;border-radius:6px;padding:.1rem .5rem;background:var(--line)}.note.hoch{background:var(--ok);color:#fff}.note.mittel{background:var(--ac);color:#fff}.tag2{font-size:.75rem;border:1px solid var(--line);border-radius:10px;padding:0 .5rem;color:var(--mu)}
.calendar-filter{display:flex;align-items:center;gap:.6rem;margin:1rem 0}.calendar-filter select{width:min(350px,65vw)}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;background:var(--line);border:1px solid var(--line)}
.calendar-head{background:var(--card);padding:.45rem;text-align:center;font-weight:600;color:var(--mu)}
.calendar-day{min-height:110px;background:var(--card);padding:.4rem;overflow:hidden}.calendar-day.outside{opacity:.4}
.calendar-event{display:flex;gap:.25rem;margin-top:.3rem;padding:.25rem;border-left:3px solid var(--ac);background:var(--bg);border-radius:3px;font-size:.75rem;line-height:1.25;overflow-wrap:anywhere}
.calendar-event.produktion{border-color:var(--warn)}.calendar-event.upload{border-color:var(--ac)}.calendar-event.veroeffentlichung{border-color:var(--ok)}
@media (max-width:760px){.calendar-grid{min-width:720px}.calendar-grid{font-size:.82rem}main:has(.calendar-grid){overflow-x:auto}}
