/* PSZS – most: kalendarz, komunikaty, kontakty. Kolory z logo PSZS; dziedziczą krój pisma motywu. */
.pszs-cal, .pszs-tabs, .pszs-contacts, .pszs-next { --pszs-red: #c8141c; --pszs-gold: #f2c80f; --pszs-line: #e2e0da; --pszs-soft: #f7f6f2; --pszs-muted: #6a665f; }
.pszs-empty { color: #6a665f; font-style: italic; }
.pszs-muted { color: var(--pszs-muted); font-size: .9em; }
.pszs-toolbar { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.pszs-filter, .pszs-viewsw { display: flex; gap: 4px; flex-wrap: wrap; }
.pszs-filter button, .pszs-viewsw button, .pszs-tablist button { border: 1px solid var(--pszs-line); background: #fff; color: #222; border-radius: 99px; padding: 6px 14px; cursor: pointer; font-size: .92em; line-height: 1.2; }
.pszs-filter button.on, .pszs-viewsw button.on, .pszs-tablist button.on { background: var(--pszs-red); border-color: var(--pszs-red); color: #fff; }
.pszs-cal[data-view="grid"] .pszs-list, .pszs-cal[data-view="list"] .pszs-grid-wrap { display: none; }
.pszs-month { margin-bottom: 24px; }
.pszs-month h3 { margin: 0 0 8px; }
.pszs-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; }
.pszs-wd { font-size: .78em; text-transform: uppercase; color: var(--pszs-muted); text-align: center; padding: 4px 0; }
.pszs-day { min-height: 84px; border: 1px solid var(--pszs-line); border-radius: 4px; padding: 3px; background: #fff; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pszs-day.empty { border: 0; background: none; }
.pszs-day .n { font-size: .8em; color: var(--pszs-muted); }
.pszs-day.has { background: var(--pszs-soft); }
.pszs-ev { display: block; font-size: .74em; line-height: 1.2; padding: 2px 4px; border-radius: 3px; text-decoration: none; color: #fff; background: var(--pszs-red); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pszs-ev.cat-ID { background: #e07b00; } .pszs-ev.cat-IMS { background: #c8141c; } .pszs-ev.cat-LO { background: #23589e; }
.pszs-item { display: flex; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--pszs-line); }
.pszs-item.past { opacity: .65; }
.pszs-date { flex: 0 0 64px; text-align: center; border-radius: 6px; background: var(--pszs-soft); padding: 6px 2px; border-top: 3px solid var(--pszs-red); height: fit-content; }
.cat-ID .pszs-date { border-top-color: #e07b00; } .cat-LO .pszs-date { border-top-color: #23589e; }
.pszs-date b { display: block; font-size: 1.6em; line-height: 1; }
.pszs-date span, .pszs-date small { display: block; font-size: .78em; color: var(--pszs-muted); }
.pszs-body { min-width: 0; flex: 1; }
.pszs-body h4 { margin: 2px 0 4px; } .pszs-body h4 small { font-weight: 400; color: var(--pszs-muted); }
.pszs-body p { margin: 0 0 4px; }
.pszs-cat { font-size: .78em; text-transform: uppercase; letter-spacing: .05em; color: var(--pszs-muted); }
.pszs-links { display: flex; gap: 6px 14px; flex-wrap: wrap; font-size: .92em; }
.pszs-dl { color: var(--pszs-muted); }
.pszs-tablist { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.pszs-tablist button span { opacity: .75; font-size: .85em; }
.pszs-comm { border: 1px solid var(--pszs-line); border-radius: 6px; margin-bottom: 8px; background: #fff; }
.pszs-comm summary { cursor: pointer; padding: 10px 12px; display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.pszs-date-s { color: var(--pszs-muted); font-size: .88em; min-width: 120px; }
.pszs-pdf { margin-left: auto; font-size: .85em; border: 1px solid var(--pszs-red); color: var(--pszs-red); border-radius: 4px; padding: 1px 8px; text-decoration: none; }
.pszs-comm-body { padding: 0 12px 12px; }
.pszs-comm-body h5 { margin: 12px 0 6px; }
.pszs-tw { overflow-x: auto; }
.pszs-tw table { width: 100%; border-collapse: collapse; font-size: .92em; }
.pszs-tw th, .pszs-tw td { border-bottom: 1px solid var(--pszs-line); padding: 5px 8px; text-align: left; }
.pszs-tw td:first-child { width: 60px; text-align: center; font-weight: 600; }
.pszs-contacts { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.pszs-card { border: 1px solid var(--pszs-line); border-radius: 8px; padding: 14px; background: #fff; border-top: 3px solid var(--pszs-red); }
.pszs-card h4 { margin: 0 0 4px; } .pszs-card p { margin: 0 0 6px; }
.pszs-org { grid-column: 1 / -1; border-top-color: var(--pszs-gold); }
@media (max-width: 700px) {
  .pszs-cal[data-view="grid"] .pszs-grid-wrap { display: none; } .pszs-cal[data-view="grid"] .pszs-list { display: block; }
  .pszs-viewsw { display: none; }
}
