/* Fahrschule Haas – Termine (WordPress-Plugin)
   Alle Regeln sind unter .haas-app gescopt, damit sie das WP-Theme nicht beeinflussen. */
.haas-app{
  --red:#DB0016; --red-dark:#b0000f; --ink:#171C24; --text:#333; --muted:#6b7280;
  --line:#e6e8ec; --card:#fff; --radius:14px;
  --shadow:0 1px 2px rgba(16,24,40,.06),0 6px 20px rgba(16,24,40,.06);
  --shadow-hover:0 4px 8px rgba(16,24,40,.08),0 16px 40px rgba(16,24,40,.12);
  font-family:"Mulish",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  color:var(--text); line-height:1.5; -webkit-font-smoothing:antialiased;
  padding-top:32px;
}
.haas-app *{box-sizing:border-box}
.haas-app a{color:inherit}
.haas-app .wrap{max-width:100%;margin:0;padding:0}

/* Optionaler Kopf */
.haas-app .hero-inner{padding:0 0 22px}
.haas-app h1.haas-title{font-size:clamp(24px,4vw,34px);line-height:1.1;color:var(--ink);
  margin:0 0 8px;font-weight:800;letter-spacing:-.02em}
.haas-app .lead{max-width:640px;color:var(--muted);font-size:15.5px;margin:0}

/* Filterbar (im Plugin NICHT sticky, um mit Theme-Headern nicht zu kollidieren) */
.haas-app .filterbar{position:static;background:transparent;border-bottom:1px solid var(--line);margin-bottom:6px}
.haas-app .filterbar-inner{padding:0 0 14px;display:flex;flex-direction:column;gap:12px}
.haas-app .searchrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.haas-app .search{flex:1;min-width:220px;position:relative}
.haas-app .search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted)}
.haas-app .search input{width:100%;padding:12px 14px 12px 42px;border:1px solid var(--line);
  border-radius:11px;font:inherit;font-size:15px;background:#fff;color:var(--ink);outline:none;transition:.15s}
.haas-app .search input:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(219,0,22,.12)}
.haas-app .view-toggle{display:inline-flex;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:#fff}
.haas-app .view-toggle button{border:0;background:transparent;padding:11px 15px;font:inherit;font-weight:600;
  font-size:14px;color:var(--muted);cursor:pointer;display:flex;align-items:center;gap:7px}
.haas-app .view-toggle button.active{background:var(--ink);color:#fff}

.haas-app .filter-btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;
  color:var(--ink);padding:11px 16px;border-radius:11px;font:inherit;font-weight:700;font-size:14px;cursor:pointer;transition:.15s}
.haas-app .filter-btn:hover{border-color:#c9cdd4}
.haas-app .filter-btn.open{background:var(--ink);color:#fff;border-color:var(--ink)}
.haas-app .filter-btn .fcount{background:var(--red);color:#fff;font-size:11.5px;font-weight:800;min-width:19px;height:19px;
  padding:0 5px;border-radius:999px;display:inline-grid;place-items:center}
.haas-app .filter-btn.open .fcount{background:#fff;color:var(--ink)}
.haas-app .filters-panel{display:none;flex-direction:column;gap:12px;padding-top:2px;animation:haasSlideDown .18s ease}
.haas-app .filters-panel.open{display:flex}
@keyframes haasSlideDown{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.haas-app .chips{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.haas-app .chip-group{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.haas-app .chip-label{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-right:2px}
.haas-app .chip{border:1px solid var(--line);background:#fff;color:var(--text);padding:7px 13px;border-radius:999px;
  font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;transition:.15s;white-space:nowrap;line-height:1.3}
.haas-app .chip:hover{border-color:#c9cdd4}
.haas-app .chip.active{background:var(--red);border-color:var(--red);color:#fff}
.haas-app .chip.toggle.active{background:var(--ink);border-color:var(--ink)}
.haas-app .sep{width:1px;height:22px;background:var(--line);margin:0 3px}
.haas-app .resetbtn{margin-left:auto;background:none;border:0;color:var(--red);font:inherit;font-weight:700;
  font-size:13.5px;cursor:pointer;padding:7px 4px;display:none}
.haas-app .resetbtn.show{display:inline}

/* Liste */
.haas-app .listwrap{padding:8px 0 10px}
.haas-app .count{font-size:13.5px;color:var(--muted);margin:0 0 16px;font-weight:600}
.haas-app .count b{color:var(--ink)}
.haas-app .section-title{display:flex;align-items:center;gap:10px;margin:6px 0 14px;font-size:15px;
  font-weight:800;color:var(--ink);text-transform:uppercase;letter-spacing:.04em}
.haas-app .section-title .dot{width:9px;height:9px;border-radius:50%;background:var(--red)}
.haas-app .section-title.ongoing .dot{background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.18)}
.haas-app .month-block{margin-bottom:30px}
.haas-app .month-count{font-size:12px;font-weight:700;color:var(--muted);background:#eef1f6;
  padding:2px 9px;border-radius:999px;text-transform:none;letter-spacing:0}
.haas-app .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}

/* Card */
.haas-app .card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;display:flex;flex-direction:column;transition:.18s;position:relative}
.haas-app .card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);border-color:#dfe2e7}
.haas-app .card.abgesagt{opacity:.65}
.haas-app .card .catbar{height:5px;width:100%;background:var(--cat,#999)}
.haas-app .card-body{padding:16px 17px 15px;display:flex;flex-direction:column;gap:11px;flex:1}
.haas-app .card-top{display:flex;gap:13px;align-items:flex-start}
.haas-app .datebadge{flex:none;width:60px;text-align:center;border:1px solid var(--line);border-radius:11px;
  padding:7px 4px;background:#fff}
.haas-app .datebadge .d{font-size:22px;font-weight:800;color:var(--ink);line-height:1}
.haas-app .datebadge .m{font-size:11px;font-weight:700;color:var(--red);text-transform:uppercase;letter-spacing:.06em;margin-top:3px}
.haas-app .datebadge.range .d{font-size:15px;margin-bottom:2px}
.haas-app .card h3{margin:0;font-size:16.5px;line-height:1.25;color:var(--ink);font-weight:800}
.haas-app .cat-name{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--cat,#666);margin-bottom:5px}
.haas-app .meta{display:flex;flex-direction:column;gap:6px;font-size:13.5px;color:var(--muted);font-weight:500}
.haas-app .meta .row{display:flex;align-items:center;gap:8px}
.haas-app .meta svg{flex:none;color:#9aa1ab}
.haas-app .labels{display:flex;gap:7px;flex-wrap:wrap;margin-top:1px}
.haas-app .lbl{font-size:11.5px;font-weight:700;padding:4px 9px;border-radius:999px;letter-spacing:.02em}
.haas-app .lbl.free{background:#e7f6ec;color:#137a3a}
.haas-app .lbl.ongoing{background:#eefaf1;color:#16a34a}
.haas-app .lbl.type{background:#eef1f6;color:#475569}
.haas-app .lbl.anm{background:#fdeaec;color:var(--red-dark)}
.haas-app .lbl.voll{background:#fef3c7;color:#b45309}
.haas-app .lbl.abgesagt{background:#fee2e2;color:#b91c1c}
.haas-app .card-foot{padding:13px 17px;border-top:1px solid var(--line);display:flex;gap:9px;align-items:center}
.haas-app .btn{border:0;border-radius:10px;padding:10px 15px;font:inherit;font-weight:700;font-size:14px;
  cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:7px;transition:.15s;white-space:nowrap}
.haas-app .btn-primary{background:var(--red);color:#fff}
.haas-app .btn-primary:hover{background:var(--red-dark);color:#fff}
.haas-app .btn-ghost{background:#fff;color:var(--ink);border:1px solid var(--line);margin-left:auto}
.haas-app .btn-ghost:hover{border-color:#c9cdd4}
.haas-app .btn.ext::after{content:"↗";font-weight:700}
.haas-app .btn[disabled],.haas-app .btn.disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed;pointer-events:none}

.haas-app .empty{text-align:center;padding:60px 20px;color:var(--muted)}
.haas-app .empty svg{color:#c9cdd4;margin-bottom:12px}
.haas-app .empty b{display:block;color:var(--ink);font-size:17px;margin-bottom:4px}

/* Kalender */
.haas-app .cal{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.haas-app .cal-head{display:grid;grid-template-columns:repeat(7,1fr);background:#fafbfc;border-bottom:1px solid var(--line)}
.haas-app .cal-head div{padding:10px;text-align:center;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.haas-app .cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.haas-app .cal-cell{min-height:104px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px;position:relative}
.haas-app .cal-cell:nth-child(7n){border-right:0}
.haas-app .cal-cell.out{background:#fafbfc}
.haas-app .cal-cell .num{font-size:13px;font-weight:700;color:var(--ink);margin-bottom:5px}
.haas-app .cal-cell.out .num{color:#c9cdd4}
.haas-app .cal-ev{display:block;font-size:11px;font-weight:700;color:#fff;padding:3px 6px;border-radius:5px;margin-bottom:3px;
  cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--cat,#999);text-decoration:none}
.haas-app .cal-more{font-size:11px;color:var(--muted);font-weight:600}

.haas-app .haas-err{padding:16px;border:1px solid var(--line);border-radius:var(--radius);color:var(--muted);background:#fff}

@media(max-width:560px){
  .haas-app .datebadge{width:52px}
  .haas-app .grid{grid-template-columns:1fr}
  .haas-app .cal-cell{min-height:70px}
  .haas-app .cal-ev{font-size:0;padding:5px}
  .haas-app .cal-ev::before{content:"";display:block;height:4px}
}
