.tsvhp{--ink:#1d2733;--muted:#5f6d7c;--line:#dfe5ec;--soft:#f4f6f9;--red:#C62F28;container-type:inline-size;color:var(--ink);font-family:inherit;line-height:1.4}
.tsvhp *{box-sizing:border-box}
.tsvhp .hp-head{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:flex-end;justify-content:space-between;margin-bottom:18px}
.tsvhp .hp-kicker{margin:0;font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.tsvhp h2{margin:.2em 0 .25em;font-size:clamp(1.5rem,4cqi,2.2rem);line-height:1.1}
.tsvhp .hp-period{margin:0;color:var(--muted)}
.tsvhp .hp-period b{color:var(--ink)}
.tsvhp .hp-closed{border:2px solid var(--red);background:#FDF1EF;border-radius:12px;padding:10px 16px;font-size:.95rem}
.tsvhp .hp-closed strong{display:block;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:2px}
.tsvhp .hp-closed p{margin:2px 0}
.tsvhp .hp-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.tsvhp .hp-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:99px;padding:6px 13px;font:inherit;font-size:.88rem;cursor:pointer}
.tsvhp .hp-chip i{width:13px;height:11px;border-radius:3px;border-left:4px solid}
.tsvhp .hp-chip.is-on{background:var(--ink);color:#fff;border-color:var(--ink)}
.tsvhp .hp-chip:focus-visible,.tsvhp .hp-tab:focus-visible{outline:3px solid #3657C4;outline-offset:2px}
.tsvhp.is-filtered [data-cat]:not(.is-match){opacity:.18;filter:grayscale(1)}
.tsvhp .hp-item,.tsvhp .hp-li{transition:opacity .2s}
/* Wochenansicht */
.tsvhp .hp-week{display:none;grid-template-columns:58px repeat(3,minmax(0,1fr)) minmax(0,1.15fr) 10px repeat(3,minmax(0,1fr)) minmax(0,1.15fr) 10px repeat(3,minmax(0,1fr)) minmax(0,1.15fr) 10px repeat(3,minmax(0,1fr)) minmax(0,1.15fr) 10px repeat(3,minmax(0,1fr)) minmax(0,1.15fr);grid-template-rows:34px 24px 22px repeat(4,minmax(96px,auto));gap:3px}
.tsvhp .hp-day{background:var(--ink);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;border-radius:8px 8px 0 0}
.tsvhp .hp-building{background:#dfe5ec;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#3f4d5c;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.1}
.tsvhp .hp-old{background:#c9d2dc}
.tsvhp .hp-hall{background:#eef2f6;font-size:.72rem;font-weight:600;color:var(--muted);display:flex;align-items:center;justify-content:center}
.tsvhp .hp-time{grid-column:1;display:flex;flex-direction:column;justify-content:center;border-top:1.5px solid var(--line)}
.tsvhp .hp-time b{font-size:1.05rem}.tsvhp .hp-time span{font-size:.75rem;color:var(--muted)}
.tsvhp .hp-slot{display:flex;flex-direction:column;gap:3px;min-width:0}
.tsvhp .hp-item{flex:1;background:var(--bg);border-left:5px solid var(--ac);border-radius:6px;padding:6px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;hyphens:manual}
.tsvhp .hp-item b{font-size:.9rem;line-height:1.15}
.tsvhp .hp-item small{font-size:.76rem;color:#3f4d5c;margin-top:2px;line-height:1.2}
.tsvhp .hp-narrow .hp-item{padding:5px 3px}.tsvhp .hp-narrow .hp-item b{font-size:.82rem}.tsvhp .hp-narrow .hp-item small{font-size:.7rem}
.tsvhp .hp-when{font-size:.68rem;font-weight:700;color:var(--ac,#5f6d7c);background:#fff;border-radius:99px;padding:1px 7px;margin-bottom:3px;white-space:nowrap}
.tsvhp .hp-free{border:2px dashed #b9c4cf;border-radius:6px;align-items:center;justify-content:center}
.tsvhp .hp-free span{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8796a5}
/* Tagesansicht */
.tsvhp .hp-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:14px;position:sticky;top:0;background:#fff;padding:6px 0;z-index:2}
.tsvhp .hp-tab{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:10px;padding:10px 4px;font:inherit;font-weight:700;cursor:pointer;text-align:center;text-decoration:none}
.tsvhp:not(.hp-js) .hp-chips{display:none}
.tsvhp.hp-js .hp-panel:not(.is-active){display:none}
.tsvhp:not(.hp-js) .hp-panel{scroll-margin-top:70px;margin-bottom:22px}
.tsvhp .hp-tab span{display:none}
.tsvhp .hp-tab[aria-pressed="true"]{background:var(--red);border-color:var(--red);color:#fff}
.tsvhp .hp-panel-title{margin:0 0 8px;font-size:1.2rem}
.tsvhp .hp-block{margin-bottom:14px}
.tsvhp .hp-block h4{margin:0 0 6px;font-size:1rem;padding-bottom:4px;border-bottom:1.5px solid var(--line)}
.tsvhp .hp-block h4 span{font-weight:400;color:var(--muted)}
.tsvhp .hp-block ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.tsvhp .hp-li{display:grid;grid-template-columns:minmax(0,8.6em) minmax(0,1fr);min-width:0;column-gap:10px;align-items:baseline;background:var(--bg);border-left:5px solid var(--ac);border-radius:8px;padding:9px 12px}
.tsvhp .hp-li .hp-where{grid-row:1/span 2;font-size:.74rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.02em;overflow-wrap:anywhere}
.tsvhp .hp-li b{font-size:1rem}
.tsvhp .hp-li small{grid-column:2;color:#3f4d5c}
.tsvhp .hp-li .hp-when{grid-column:2;justify-self:start;margin:4px 0 0}
.tsvhp .hp-li b{overflow-wrap:anywhere}
.tsvhp .hp-li-free{background:#fff;border:2px dashed #b9c4cf;border-left-width:2px;color:#8796a5}
/* Hinweise */
.tsvhp .hp-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:22px}
.tsvhp .hp-card{background:var(--soft);border-radius:12px;padding:14px 16px;font-size:.92rem}
.tsvhp .hp-card h3{margin:0 0 6px;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.tsvhp .hp-card p,.tsvhp .hp-card li{margin:0 0 6px}
.tsvhp .hp-card ul{margin:0;padding-left:18px}
.tsvhp .hp-foot{margin:14px 0 0;font-size:.8rem;color:var(--muted)}
@container (min-width:1000px){
 .tsvhp .hp-week{display:grid}
 .tsvhp .hp-dayview{display:none}
}
@container (min-width:520px){.tsvhp .hp-tab span{display:inline}}
@media print{.tsvhp .hp-chips,.tsvhp .hp-tabs{display:none}}
.tsvhp [data-cat="c0"]{--bg:#FBE4E1;--ac:#C62F28}.tsvhp [data-cat="c1"]{--bg:#DDF0E2;--ac:#23874F}.tsvhp [data-cat="c2"]{--bg:#FFF0D2;--ac:#C98400}.tsvhp [data-cat="c3"]{--bg:#E2E9FB;--ac:#3657C4}.tsvhp [data-cat="c4"]{--bg:#F1E5FA;--ac:#8443C1}.tsvhp [data-cat="c5"]{--bg:#DCF2F2;--ac:#118585}.tsvhp [data-cat="c6"]{--bg:#EAF1D5;--ac:#5E8A12}.tsvhp [data-cat="c7"]{--bg:#ECEFF3;--ac:#5B6B7F}
