
.tcf-hallenabo{margin:2rem 0;font-size:16px}
.tcf-hallenabo__intro{margin-bottom:1rem}
.tcf-hallenabo__legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:.95rem;margin:1rem 0}
.tcf-hallenabo__legend span{display:inline-flex;align-items:center;gap:.4rem}
.tcf-hallenabo__legend i{width:14px;height:14px;border-radius:3px;display:inline-block;background:#eaf5eb;border:1px solid #3e8b49}
.tcf-hallenabo__legend-booked i{background:#f3e7e7;border-color:#b32d2e}
.tcf-hallenabo__tabs{display:flex;gap:.5rem;border-bottom:1px solid #ddd;margin:1.5rem 0 0}
.tcf-hallenabo__tabs button{border:1px solid #d0d0d0;border-bottom:0;background:#f5f5f5;padding:.7rem 1rem;font:inherit;cursor:pointer;border-radius:5px 5px 0 0}
.tcf-hallenabo__tabs button.is-active{background:#fff;font-weight:700;position:relative;top:1px}
.tcf-hallenabo__panel{display:none;padding-top:1rem}
.tcf-hallenabo__panel.is-active{display:block}
.tcf-hallenabo__week-label{margin-top:0}
.tcf-hallenabo__scroll{overflow-x:auto;border:1px solid #e1e1e1;border-radius:6px}
.tcf-hallenabo__table{border-collapse:collapse;min-width:920px;width:100%;margin:0}
.tcf-hallenabo__table th,.tcf-hallenabo__table td{border:1px solid #e4e4e4;padding:0;text-align:center;vertical-align:middle}
.tcf-hallenabo__table thead th{background:#f4f4f4;padding:.6rem .3rem;font-size:.86rem}
.tcf-hallenabo__table tbody th{background:#fafafa;white-space:nowrap;padding:.3rem .45rem;font-size:.8rem;font-weight:600}
.tcf-hallenabo__slot{display:block;width:100%;min-width:104px;padding:.42rem .25rem;border:0;background:#eaf5eb;color:#1e5627;font:inherit;font-size:.78rem;cursor:pointer}
.tcf-hallenabo__slot:hover,.tcf-hallenabo__slot:focus{outline:3px solid #1d6f32;outline-offset:-3px;background:#d7efd9}
.tcf-hallenabo__slot.is-booked{background:#f3e7e7;color:#852020}
.tcf-hallenabo__slot.is-booked:hover,.tcf-hallenabo__slot.is-booked:focus{outline-color:#b32d2e;background:#efd3d3}
.tcf-hallenabo__dialog{width:min(720px,calc(100% - 2rem));border:0;border-radius:8px;padding:0;box-shadow:0 20px 60px rgba(0,0,0,.28)}
.tcf-hallenabo__dialog::backdrop{background:rgba(0,0,0,.54)}
.tcf-hallenabo__dialog-content{padding:1.5rem}
.tcf-hallenabo__dialog-close{position:absolute;right:.45rem;top:.35rem;margin:0}
.tcf-hallenabo__dialog-close button{border:0;background:transparent;font-size:2rem;line-height:1;cursor:pointer}
.tcf-hallenabo__selected-slot{background:#f4f4f4;border-left:4px solid #777;padding:.8rem}
.tcf-hallenabo__conflict-note{background:#fff2cf;border-left:4px solid #b87900;padding:.8rem}
.tcf-hallenabo__form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem}
.tcf-hallenabo__form p{margin:0 0 .9rem}
.tcf-hallenabo__form label{display:block;font-weight:600}
.tcf-hallenabo__form input,.tcf-hallenabo__form select,.tcf-hallenabo__form textarea{width:100%;box-sizing:border-box;margin-top:.3rem;padding:.65rem;border:1px solid #aaa;border-radius:4px;background:#fff;font:inherit}
.tcf-hallenabo__form input[type=checkbox]{width:auto;margin-right:.4rem}
.tcf-hallenabo__privacy{font-size:.92rem}
.tcf-hallenabo__submit{padding:.78rem 1.1rem;border:0;border-radius:4px;background:#1d6f32;color:#fff;font:inherit;font-weight:700;cursor:pointer}
.tcf-hallenabo__submit:hover,.tcf-hallenabo__submit:focus{background:#155524}
.tcf-hallenabo__form-status{font-weight:600}
.tcf-hallenabo__form-status.is-error{color:#a11d1d}
.tcf-hallenabo__form-status.is-success{color:#166628}
@media(max-width:640px){.tcf-hallenabo__form-grid{grid-template-columns:1fr}.tcf-hallenabo__dialog-content{padding:1.1rem}.tcf-hallenabo__tabs button{padding:.6rem .8rem}}

/* V1.1 – bessere Lesbarkeit in Auswahllisten und wöchentliches Abo */
.tcf-hallenabo__both-weeks{
  margin:.2rem 0 1.1rem;
  padding:.8rem .9rem;
  background:#f4f8f4;
  border-left:4px solid #1d6f32;
  border-radius:2px;
}
.tcf-hallenabo__both-weeks label{font-weight:500}
.tcf-hallenabo__both-weeks input[type=checkbox]{
  width:auto;
  margin:0 .45rem 0 0;
  vertical-align:middle;
}
.tcf-hallenabo__field--full{grid-column:1 / -1}
.tcf-hallenabo__form select{
  min-height:46px;
  color:#1a1a1a !important;
  background-color:#fff !important;
  font-size:16px;
  font-weight:500;
  letter-spacing:normal;
  text-overflow:ellipsis;
}
.tcf-hallenabo__form select option{
  color:#1a1a1a;
  background:#fff;
  font-weight:400;
}
@media(max-width:640px){
  .tcf-hallenabo__field--full{grid-column:auto}
}

/* V1.2 – Statusanzeige im öffentlichen Hallenplan */
.tcf-hallenabo__legend-pending i{background:#fff2cf;border-color:#b87900}
.tcf-hallenabo__slot.is-pending{background:#fff2cf;color:#795300}
.tcf-hallenabo__slot.is-pending:hover,.tcf-hallenabo__slot.is-pending:focus{outline-color:#b87900;background:#ffe8a8}

/* V1.3 – Spielrhythmus und Abbrechen */
.tcf-hallenabo__form-actions{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-top:1.25rem !important}
.tcf-hallenabo__cancel{padding:.78rem 1.1rem;border:1px solid #777;border-radius:4px;background:#fff;color:#333;font:inherit;font-weight:700;cursor:pointer}
.tcf-hallenabo__cancel:hover,.tcf-hallenabo__cancel:focus{border-color:#333;background:#f2f2f2}
.tcf-hallenabo__form-actions .tcf-hallenabo__submit{margin-left:auto}
@media(max-width:480px){.tcf-hallenabo__form-actions{align-items:stretch;flex-direction:column-reverse}.tcf-hallenabo__form-actions .tcf-hallenabo__submit{margin-left:0}}
