:root{--c-bg: #f6f7f9;--c-card: #ffffff;--c-border: #d0d5db;--c-text: #1f2937;--c-muted: #6b7280;--c-primary: #1a4a6b;--c-primary-soft: #e8eef4;--c-accent: #b45309;--c-good: #15803d;--c-warn: #b45309;--c-danger: #b91c1c;--c-wurm: #d97706;--c-salm: #7c3aed;--c-nd: #dc2626;--c-ib: #0891b2;--c-primer: #14b8a6;--c-primun: #a21caf;--c-art: #ea580c;--radius: 6px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--c-text);background:var(--c-bg)}*{box-sizing:border-box}body{margin:0;padding:0;font-size:14px;line-height:1.5}.app{max-width:1400px;margin:0 auto;padding:16px}.app header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--c-primary)}.app header h1{margin:0;font-size:20px;color:var(--c-primary)}.app header .sub{color:var(--c-muted);font-size:12px}.layout{display:grid;grid-template-columns:340px 1fr;gap:16px}@media(max-width:900px){.layout{grid-template-columns:1fr}}.card{background:var(--c-card);border:1px solid var(--c-border);border-radius:var(--radius);padding:14px;margin-bottom:12px}.card h2{margin:0 0 10px;font-size:14px;color:var(--c-primary);text-transform:uppercase;letter-spacing:.5px}.card h3{margin:12px 0 6px;font-size:13px;color:var(--c-primary)}.field{margin-bottom:8px}.field label{display:block;font-size:12px;color:var(--c-muted);margin-bottom:2px}.field input,.field select{width:100%;padding:6px 8px;font-size:13px;border:1px solid var(--c-border);border-radius:4px;background:#fff}.field.row{display:flex;gap:8px;align-items:center}.field.row label{flex:0 0 auto;margin:0}.field.checkbox{display:flex;align-items:center;gap:6px}.field.checkbox input{width:auto;margin:0}.field.checkbox label{flex:1;margin:0}.btn{display:inline-block;padding:6px 12px;font-size:13px;border:1px solid var(--c-border);border-radius:4px;background:#fff;color:var(--c-text);cursor:pointer;text-decoration:none}.btn:hover{border-color:var(--c-primary);color:var(--c-primary)}.btn.primary{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}.btn.primary:hover{background:#123954}.btn-group{display:flex;flex-wrap:wrap;gap:6px}table.plan{width:100%;border-collapse:collapse;font-size:12.5px}table.plan th,table.plan td{padding:5px 8px;text-align:left;border-bottom:1px solid #eee;vertical-align:top}table.plan th{background:var(--c-primary-soft);font-weight:600;color:var(--c-primary);position:sticky;top:0}table.plan tr.past{color:var(--c-muted)}table.plan tr.today{background:#fff8e1}table.plan tr.upcoming{background:#fefefe}table.plan .badge{display:inline-block;padding:2px 6px;border-radius:3px;font-size:11px;font-weight:600;color:#fff}table.plan .badge.ib-primer{background:var(--c-primer)}table.plan .badge.ib-qx{background:var(--c-ib)}table.plan .badge.ib-88{background:#0369a1}table.plan .badge.nd{background:var(--c-nd)}table.plan .badge.salm{background:var(--c-salm)}table.plan .badge.wurm{background:var(--c-wurm)}table.plan .badge.primun{background:var(--c-primun)}table.plan .badge.art{background:var(--c-art)}table.plan .badge.exzolt{background:#64748b}table.plan .badge.aus{background:#000}.summary{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 4px;font-size:12px}.summary .k{color:var(--c-muted)}.summary .v{color:var(--c-text);font-weight:600}.legend{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0;font-size:11.5px}.legend .item{display:flex;align-items:center;gap:4px}.legend .sw{display:inline-block;width:12px;height:12px;border-radius:3px}.hint{font-size:12px;color:var(--c-muted);font-style:italic;margin:4px 0}.divider{height:1px;background:var(--c-border);margin:12px 0}@page{size:A4;margin:14mm 12mm;@bottom-right{content:counter(page) " / " counter(pages);font-size:8pt;color:#666}@bottom-left{content:"Impfplan-Generator · impfplan.dirksiemers.de";font-size:8pt;color:#666}}@media print{body{background:#fff;font-size:10pt}.app{max-width:none;padding:0}.layout{grid-template-columns:1fr}.no-print{display:none!important}.print-only{display:block!important}.card{border:none;padding:0;box-shadow:none;margin-bottom:8pt;break-inside:avoid}.app header{border-bottom:1px solid #333}.app header h1{font-size:14pt}table.plan{font-size:8.5pt}table.plan th,table.plan td{padding:3pt 5pt}table.plan th{background:#e8eef4!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}table.plan tr{break-inside:avoid}table.plan .badge{color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}.print-only{display:none}
