main.app{max-width:1100px;margin:auto;padding:24px 16px 40px}
input[type=checkbox],input[type=radio]{width:auto;margin:0 8px 0 0;vertical-align:middle}
label{display:block;font-weight:600;font-size:14px;margin-top:6px}label.o{font-weight:400}
button.lnk{background:none;border:0;color:#dbe6ff;font-size:15px;cursor:pointer;margin-left:16px;padding:0}
form.inl{display:inline}
.btn.full{display:block;width:100%;text-align:center;margin-top:10px}.btn.sm{padding:6px 14px;font-size:14px}.btn.s.dark,.btn.s{border-color:#0b3d91}.btn.s.dark{background:#0b3d91;color:#fff}
.modal.wide{max-width:560px}.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.two .modal{max-width:none}
.info.err{border-left-color:#c0392b;background:#fdecea}.small{font-size:13px;color:#556}
.tabs a.tab{text-decoration:none}.days{display:flex;gap:6px;overflow-x:auto;padding:4px 0}.day{flex:1;min-width:52px;text-align:center;background:#fff;border:2px solid #d5e0f5;border-radius:12px;padding:6px 4px;color:#0b3d91;text-decoration:none;font-size:13px}.day.a{background:#0b3d91;color:#fff;border-color:#0b3d91}
.nav2{text-align:center}.nav2 a{margin:0 12px;color:#0b3d91;font-weight:700;text-decoration:none}
.calw{overflow-x:auto}.bk{margin:1px 0;text-align:center}a.bk{display:block;text-decoration:none}.bk small{font-weight:400}
.cal td{height:38px}.cal.adm td{text-align:left;font-size:13px;padding:6px}.card.row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:10px 0}
.hint{margin-top:10px}
.belegung{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.belegung .st{font-weight:800}.ok{color:#1d6a0e}.no{color:#a33}

.banner{background:#fff3b0;border-left:5px solid #e0a800;border-radius:8px;padding:12px 14px;margin:0 0 14px;font-size:15px;display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.hd{background:#fff;border-radius:16px;padding:16px 18px;box-shadow:0 2px 10px #0b3d9122;margin:12px 0}.hd small{color:#556}
.dr{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border-radius:14px;padding:10px 14px;margin:8px 0;box-shadow:0 1px 6px #0b3d9114}
.dr .n{font-weight:700}.dr .p{font-size:13px;color:#556}.dr.lk{background:#f1f1f1;box-shadow:none}
.qty{display:flex;align-items:center;gap:10px}.qty b{min-width:22px;text-align:center;font-size:18px}.qty form{margin:0}
.rd{width:42px;height:42px;border-radius:50%;border:2px solid #0b3d91;background:#fff;color:#0b3d91;font-size:24px;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.rd.pl{background:#c8e04a;border-color:#c8e04a;color:#0b2a63}.rd.off{opacity:.3;cursor:default}
.sum{display:flex;justify-content:space-between;font-size:20px;font-weight:800;color:#0b3d91;padding:14px 4px;border-top:2px solid #0b3d91;margin-top:10px}
.badge{display:inline-block;border-radius:999px;padding:3px 12px;font-size:13px;font-weight:700}.b1{background:#ffe9a8;color:#7a5a00}.b2{background:#cfe0ff;color:#0b3d91}.b3{background:#e5e5e5;color:#555}
.grp{margin:18px 0 4px;color:#0b3d91;border-bottom:2px solid #d5e0f5;padding-bottom:4px}
a.lnkcard{text-decoration:none;color:inherit}.plist{max-height:260px;overflow:auto;margin-bottom:8px}


/* Farben: frei = knallgrün, belegt = rot, gesperrt = rot-weiß schraffiert */
.cal .bk{background:#e53935;color:#fff}.cal .bk small{color:#ffe0e0}
.cal .bk.an{background:#ef5350;color:#fff}
.cal .bk.vz{background:#ffd9a8;color:#7a3e00}.cal .bk.vz small{color:#7a3e00}
.cal .bk.kd{background:#e7c8f5;color:#5b1d7a}.cal .bk.kd small{color:#5b1d7a}
.cal .bk.fr,.cal a.bk.fr{background:#2eea5c;color:#04340f;font-weight:800}
.cal .bk.cl{background:#eee;color:#999}
.cal .bk.sp{background:repeating-linear-gradient(45deg,#e53935 0 8px,#fff 8px 16px);color:#6b0b0b;font-weight:800;text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 3px #fff}
.legend i.lg-fr{background:#2eea5c}.legend i.lg-bel{background:#e53935}.legend i.lg-an{background:#ef5350}
.legend i.lg-sp{background:repeating-linear-gradient(45deg,#e53935 0 3px,#fff 3px 6px);border:1px solid #e53935}
.optbox{background:#f3f8ff;border:2px solid #d5e0f5;border-radius:12px;padding:10px 12px;margin:10px 0}
