:root { --ink:#1F2328; --ink2:#3A4048; --ink3:#6B7280; --paper:#FBF8F1; --paper2:#F3EEE3; --hi:#FFFFFF; --orange:#F28322; --teal:#1E6B73; --rule:#E4DDCF; --ok:#2E7D4F; --err:#B42318; }
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; background:var(--paper); color:var(--ink); font-size:16px; line-height:1.5; }
.wrap { max-width: 880px; margin: 0 auto; padding: 24px 16px 64px; }
header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:24px; }
.brand { font-weight:800; font-size:20px; } .brand span { color:var(--orange); }
.eyebrow { font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--teal); margin:0 0 6px; }
.card { background:var(--hi); border:1px solid var(--rule); border-radius:16px; padding:22px 22px; margin-bottom:18px; }
h1 { font-size:26px; margin:0 0 4px; } h2 { font-size:19px; margin:0 0 12px; }
.live { display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; font-size:15px; color:var(--ink2); }
.live strong { font-size:22px; color:var(--ink); }
.pill { display:inline-block; font-size:12px; font-weight:700; padding:3px 9px; border-radius:999px; background:var(--paper2); color:var(--ink2); }
.pill.ok { background:#E3F2E8; color:var(--ok); } .pill.warn { background:#FDECDD; color:#9A4A0B; }
form.grid { display:grid; grid-template-columns: 1fr 1fr; gap:12px; margin-top:8px; }
form.grid .voll { grid-column: 1 / -1; }
label { display:flex; flex-direction:column; gap:4px; font-size:14px; font-weight:600; color:var(--ink2); }
input { font: inherit; padding:11px 12px; border:1px solid var(--rule); border-radius:10px; background:var(--paper); min-width:0; width:100%; }
button, .btn { font: inherit; font-weight:700; border:0; border-radius:10px; padding:12px 18px; cursor:pointer; background:var(--orange); color:#fff; text-decoration:none; display:inline-block; }
button.ghost, .btn.ghost { background:transparent; color:var(--ink); border:1px solid var(--ink3); }
button.klein { padding:6px 10px; font-size:13px; }
button:disabled { opacity:.55; cursor:wait; }
.msg { margin-top:12px; padding:10px 12px; border-radius:10px; font-size:15px; display:none; }
.msg.ok { display:block; background:#E3F2E8; color:var(--ok); } .msg.err { display:block; background:#FDE7E5; color:var(--err); } .msg.info { display:block; background:var(--paper2); color:var(--ink2); }
table { width:100%; border-collapse:collapse; font-size:14px; }
td, th { text-align:left; padding:8px 6px; border-bottom:1px solid var(--rule); vertical-align:top; }
th { font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink3); }
.hinweis { font-size:14px; color:var(--ink2); background:var(--paper); border-radius:10px; padding:12px 14px; margin-top:14px; }
.hinweis code { background:var(--paper2); padding:1px 5px; border-radius:5px; }
.links { display:grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap:10px; }
.links a { display:block; padding:12px 14px; border:1px solid var(--rule); border-radius:12px; color:var(--ink); text-decoration:none; background:var(--paper); }
.links a small { display:block; color:var(--ink3); font-size:13px; }
.muted { color:var(--ink3); font-size:14px; }
@media (max-width: 600px) { form.grid { grid-template-columns: 1fr; } .raum { display:none; } }
h2.bereich { font-size:13px; text-transform:uppercase; letter-spacing:.1em; color:var(--ink3); margin:28px 4px 10px; }
select, textarea { font: inherit; padding:11px 12px; border:1px solid var(--rule); border-radius:10px; background:var(--paper); width:100%; }
textarea { resize: vertical; }
details.mehr { margin-top:14px; } details.mehr summary { cursor:pointer; font-weight:600; color:var(--ink2); }
.aend { border:1px solid var(--rule); border-radius:12px; padding:14px 16px; margin-top:14px; background:var(--paper); }
.aend h3 { font-size:16px; margin:0 0 4px; }
.vn { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:10px 0; }
.vn div { background:var(--hi); border:1px solid var(--rule); border-radius:10px; padding:10px 12px; font-size:15px; }
.vn .vor { color:var(--ink3); text-decoration: line-through; text-decoration-color: rgba(180,35,24,.35); }
.vn small { display:block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--ink3); margin-bottom:4px; text-decoration:none; }
.knoepfe { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:10px; }
@media (max-width: 600px) { .vn { grid-template-columns:1fr; } }

h3.gruppe { font-size:15px; margin:22px 0 8px; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.baum details { border:1px solid var(--rule); border-radius:12px; margin-bottom:8px; background:var(--paper); }
.baum summary { cursor:pointer; padding:11px 14px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 10px; list-style:none; font-weight:700; }
.baum summary::-webkit-details-marker { display:none; }
.baum summary::before { content:'▸'; color:var(--ink3); margin-right:6px; }
.baum details[open] > summary::before { content:'▾'; }
.baum summary .nm { flex:1; } .baum summary a { font-weight:400; font-size:13px; color:var(--ink3); }
.baum ul { list-style:none; margin:0; padding:0 14px 12px 34px; }
.baum li { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; padding:8px 0; border-top:1px solid var(--rule); flex-wrap:wrap; }
.baum li .t { flex:1; min-width:200px; } .baum li small { display:block; color:var(--ink3); font-size:13px; }
.editor { width:100%; background:var(--hi); border:2px solid var(--orange); border-radius:12px; padding:12px; margin:8px 0; }
.editor .ziel { margin:0 0 8px; font-weight:700; }

.nach .stuecke { display:flex; flex-direction:column; gap:6px; margin:4px 0 8px; }
.nach .stuecke textarea { font-size:15px; }
.btn.veraltet { opacity:.45; pointer-events:none; }
.vn .nach { background:#fff; }

[hidden] { display:none !important; }
.vn .nach .stuecke { background:none; border:0; padding:0; }
