/* Interaktywny grafik zajęć */

.grafik-section{text-align:center;}
.grafik-section h2{font-size:1.5rem; margin:0 0 6px;}
.grafik-section .sub{font-size:0.95rem; margin-top:18px;}
.grafik-section .sub a{font-weight:700; text-decoration:underline;}

.gr-interactive{text-align:left;}
.gr-interactive > h2{text-align:center; font-size:1.7rem; margin:0 0 6px;}
.gr-lead{text-align:center; margin:0 auto 26px; max-width:640px; font-size:1rem;}

/* Filtry */
.gr-filters{display:flex; flex-direction:column; gap:12px; margin:0 0 26px; align-items:center;}
.gr-filter{display:flex; align-items:center; gap:12px; flex-wrap:wrap; justify-content:center;}
.gr-filter-label{font-weight:700; font-size:0.85rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--teal-dark); min-width:64px; text-align:right;}
.gr-chips{display:flex; gap:8px; flex-wrap:wrap; justify-content:center;}
.gr-chip{
  font:inherit; font-weight:600; font-size:0.92rem; cursor:pointer;
  min-height:44px; padding:8px 18px; border-radius:999px;
  background:rgba(255,255,255,0.55); color:var(--teal-dark);
  border:2px solid rgba(0,45,43,0.25);
  transition:background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.gr-chip:hover{background:rgba(255,255,255,0.85);}
.gr-chip.is-on{background:var(--teal-dark); color:var(--yellow); border-color:var(--teal-dark);}
.gr-chip:focus-visible, .gr-btn:focus-visible{outline:3px solid var(--teal-dark); outline-offset:2px;}

/* Lista */
.gr-list{display:flex; flex-direction:column; gap:30px; max-width:860px; margin:0 auto;}
.gr-day{display:flex; flex-direction:column; gap:12px;}
.gr-day-title{
  margin:0; font-size:1.15rem; color:var(--teal-dark);
  border-bottom:2px solid rgba(0,45,43,0.2); padding-bottom:6px;
  display:flex; align-items:center; gap:10px;
}
.gr-today{
  font-size:0.72rem; font-weight:700; text-transform:uppercase; letter-spacing:0.08em;
  background:var(--teal-dark); color:var(--yellow); border-radius:999px; padding:2px 10px;
}

/* Karta zajęć */
.gr-card{
  display:grid; grid-template-columns:96px 1fr; gap:18px;
  background:rgba(255,255,255,0.72); border-radius:16px; padding:18px 20px;
  box-shadow:0 2px 10px rgba(0,45,43,0.08);
}
.gr-card.is-cancelled{opacity:0.62;}
.gr-card.is-cancelled .gr-title{text-decoration:line-through;}
.gr-time{display:flex; flex-direction:column; align-items:flex-start; line-height:1.2; padding-top:2px;}
.gr-time-from{font-size:1.5rem; font-weight:800; color:var(--teal-dark); letter-spacing:-0.01em;}
.gr-time-to{font-size:0.88rem; font-weight:600; color:#2c5a56;}
.gr-title{margin:0 0 6px; font-size:1.15rem; font-weight:700; color:var(--teal-dark);}
.gr-meta{margin:0 0 8px; display:flex; flex-wrap:wrap; gap:8px 10px; align-items:center; font-size:0.92rem;}
.gr-place{font-weight:600; text-decoration:none; color:var(--teal-dark); display:inline-flex; align-items:center; gap:5px; min-height:28px;}
a.gr-place{text-decoration:underline; text-underline-offset:3px;}
.gr-place::before{
  content:""; width:14px; height:14px; flex-shrink:0; background-color:var(--teal-dark);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22s7-7.4 7-12.5A7 7 0 0 0 5 9.5C5 14.6 12 22 12 22z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22s7-7.4 7-12.5A7 7 0 0 0 5 9.5C5 14.6 12 22 12 22z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.gr-badge{
  font-size:0.8rem; font-weight:600; border-radius:999px; padding:3px 11px;
  background:rgba(0,45,43,0.1); color:var(--teal-dark); white-space:nowrap;
}
.gr-badge-ok{background:rgba(1,153,142,0.22);}
.gr-badge-low{background:var(--teal-dark); color:var(--yellow);}
.gr-badge-warn{background:#7a1d1d; color:#fff;}
.gr-desc{margin:0 0 12px; font-size:0.95rem; color:#173b39;}

.gr-actions{display:flex; flex-wrap:wrap; gap:10px;}
.gr-btn{
  font:inherit; font-weight:700; font-size:0.92rem; cursor:pointer; text-decoration:none; text-align:center;
  display:inline-flex; align-items:center; justify-content:center;
  min-height:44px; padding:9px 20px; border-radius:999px; border:2px solid var(--teal-dark);
  transition:background 0.15s ease, color 0.15s ease;
}
.gr-btn-primary{background:var(--teal-dark); color:var(--yellow);}
.gr-btn-primary:hover{background:#00403d;}
.gr-btn-ghost{background:transparent; color:var(--teal-dark);}
.gr-btn-ghost:hover{background:rgba(0,45,43,0.1);}

.gr-more-wrap{text-align:center; margin-top:26px;}
.gr-empty{max-width:560px; margin:10px auto; text-align:center; background:rgba(255,255,255,0.6); border-radius:16px; padding:22px;}
.gr-empty p{margin:0 0 14px;}
.gr-loading{text-align:center; font-weight:600;}
.gr-demo{
  max-width:860px; margin:0 auto 18px; text-align:center; font-weight:700; font-size:0.9rem;
  background:var(--teal-dark); color:var(--yellow); border-radius:10px; padding:10px 14px;
}
.gr-note{margin-top:34px; font-size:0.95rem; text-align:center;}
.gr-note a{font-weight:700; text-decoration:underline;}

/* Telefon */
@media (max-width:640px){
  .gr-interactive > h2{font-size:1.5rem;}
  .gr-filter{flex-direction:column; gap:8px;}
  .gr-filter-label{text-align:center; min-width:0;}
  .gr-chips{gap:8px;}
  .gr-chip{padding:8px 16px; font-size:0.9rem;}
  .gr-filter{align-items:center; width:100%;}
  .gr-card{grid-template-columns:1fr; gap:6px; padding:16px;}
  .gr-time{flex-direction:row; align-items:baseline; gap:6px; padding:0;}
  .gr-time-from{font-size:1.35rem;}
  .gr-actions{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
  .gr-actions .gr-btn-primary{grid-column:1 / -1;}
  .gr-btn{width:100%; padding:9px 12px;}
}

/* Szybka tabela tygodniowa */
.tt{text-align:left; margin:0 auto 44px; max-width:960px;}
.tt h2{text-align:center; font-size:1.7rem; margin:0 0 4px;}
.tt-lead{text-align:center; margin:0 0 24px;}
.tt-grid{display:grid; grid-template-columns:repeat(2, 1fr); gap:20px; align-items:start;}
.tt-venue{background:rgba(255,255,255,0.62); border-radius:16px; padding:18px 20px 12px; box-shadow:0 2px 10px rgba(0,45,43,0.08);}
.tt-place{margin:0 0 8px; font-size:0.95rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--teal-dark);}
.tt-table{width:100%; border-collapse:collapse;}
.tt-table tr + tr{border-top:1px solid rgba(0,45,43,0.14);}
.tt-table th, .tt-table td{padding:9px 0; vertical-align:top; text-align:left; font-size:0.97rem;}
.tt-day{width:62px; font-weight:700; color:var(--teal-dark);}
.tt-time{width:112px; white-space:nowrap; font-variant-numeric:tabular-nums; font-weight:600;}
.tt-name{font-weight:500;}
.tt-note{display:block; font-size:0.85rem; font-weight:400; color:#2c5a56;}
.tt-price{text-align:center; margin:22px 0 4px; font-size:1.02rem;}
.tt-contact{text-align:center; margin:0 0 6px;}
.tt-contact a{font-weight:700; text-decoration:underline;}
.tt-more{text-align:center; margin:10px 0 0;}
.tt-more a{font-weight:700; text-decoration:underline; display:inline-block; padding:8px 0;}
.grafik-section .gr-static{margin-top:8px;}
.grafik-section .tt + .gr-interactive{margin-top:36px;}
@media (max-width:760px){
  .tt h2{font-size:1.5rem;}
  .tt-grid{grid-template-columns:1fr; gap:14px;}
  .tt-venue{padding:16px 16px 8px;}
  .tt-day{width:54px;}
  .tt-time{width:104px;}
}
@media (max-width:370px){
  .tt-day{width:48px;} .tt-time{width:96px;} .tt-table th, .tt-table td{font-size:0.92rem;}
}
