.calendar{--cat-mise:var(--color-info);--cat-portya:var(--color-primary);--cat-verseny:var(--color-gold);--cat-tabor:var(--color-earth);--cat-egyeb:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:clamp(var(--space-4), 3vw, var(--space-8));box-shadow:var(--shadow-sm)}.calendar__header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;display:flex}.calendar__title{font-family:var(--font-display);font-size:var(--text-xl);text-align:center;font-weight:700}.calendar__nav{border-radius:var(--radius-full);width:44px;height:44px;color:var(--color-text);border:1px solid var(--color-border);transition:background var(--transition-interactive), color var(--transition-interactive);justify-content:center;align-items:center;display:inline-flex}.calendar__nav:hover{background:var(--color-primary-light);color:var(--color-primary)}.calendar__grid{gap:var(--space-1);grid-template-columns:repeat(7,1fr);display:grid}.calendar__weekday{text-align:center;font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);padding-bottom:var(--space-2);font-weight:700}.calendar__cell{aspect-ratio:1;min-height:44px;padding:var(--space-2) 0 var(--space-1);border-radius:var(--radius-md);color:var(--color-text);font:inherit;background:0 0;flex-direction:column;align-items:center;gap:4px;display:flex;position:relative}.calendar__cell--empty{pointer-events:none}.calendar__cell:disabled{cursor:default;color:var(--color-text-muted)}.calendar__cell--has-event:not(:disabled){cursor:pointer}.calendar__cell--has-event:hover{background:var(--color-surface-offset)}.calendar__cell--today .calendar__daynum{background:var(--color-primary);color:#fff;border-radius:var(--radius-full);justify-content:center;align-items:center;width:1.75em;height:1.75em;display:inline-flex}.calendar__cell--selected{background:var(--color-primary-light);outline:2px solid var(--color-primary)}.calendar__daynum{font-size:var(--text-sm);font-variant-numeric:tabular-nums}.calendar__chips{flex-wrap:wrap;justify-content:center;gap:3px;max-width:90%;display:flex}.calendar__chip{border-radius:var(--radius-full);background:var(--color-text-muted);width:7px;height:7px}.calendar__chip--mise{background:var(--cat-mise)}.calendar__chip--portya{background:var(--cat-portya)}.calendar__chip--verseny{background:var(--cat-verseny)}.calendar__chip--tábor{background:var(--cat-tabor)}.calendar__chip--egyéb{background:var(--cat-egyeb)}.calendar__detail{margin-top:var(--space-6);gap:var(--space-4);animation:.4s cubic-bezier(.16,1,.3,1) fadeInUp;display:grid}.calendar__event{padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface-offset);border:1px solid var(--color-border)}.calendar__event-title{font-family:var(--font-display);font-size:var(--text-lg);margin:var(--space-2) 0 var(--space-1)}.calendar__event-date{font-size:var(--text-sm);color:var(--color-primary);margin-bottom:var(--space-2);font-weight:600;display:block}.calendar__event-desc{font-size:var(--text-sm);color:var(--color-text-muted)}.calendar__legend{gap:var(--space-4);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-divider);font-size:var(--text-xs);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.calendar__legend-item{align-items:center;gap:var(--space-2);display:inline-flex}.event-badge--mise{background:color-mix(in oklab, var(--color-info) 18%, transparent);color:var(--color-info)}.event-badge--portya{background:var(--color-primary-light);color:var(--color-primary)}.event-badge--verseny{background:var(--color-gold-light);color:var(--color-warning)}.event-badge--tábor{background:var(--color-earth-light);color:var(--color-earth)}.event-badge--egyéb{background:var(--color-surface-offset-2);color:var(--color-text-muted)}.page-hero{background:linear-gradient(160deg, var(--color-surface-offset) 0%, var(--color-bg) 70%);padding-block:clamp(var(--space-12), 8vw, var(--space-20));border-bottom:1px solid var(--color-divider)}.page-hero__subtitle{font-size:var(--text-lg);color:var(--color-text-muted);max-width:60ch;margin-top:var(--space-4);line-height:1.65}.naptar__toolbar{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.naptar__toggle{gap:var(--space-1);padding:var(--space-1);background:var(--color-surface-offset);border-radius:var(--radius-full);border:1px solid var(--color-border);display:inline-flex}.naptar__toggle-btn{min-height:44px;padding:var(--space-2) var(--space-5);border-radius:var(--radius-full);font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-muted);transition:background var(--transition-interactive), color var(--transition-interactive);font-weight:600}.naptar__toggle-btn.active{background:var(--color-primary);color:#fff}.naptar__list{gap:var(--space-4);display:grid}.event-row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-5);transition:box-shadow var(--transition-interactive), transform var(--transition-interactive), border-color var(--transition-interactive)}.event-row:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary-highlight);transform:translate(4px)}.event-row__title{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-text);margin:var(--space-2) 0 var(--space-1);font-weight:700}.event-row__time{font-size:var(--text-xs);color:var(--color-primary);margin-bottom:var(--space-2);font-weight:600;display:block}.event-row__desc{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.65}.naptar__skeleton{gap:var(--space-3);display:grid}.naptar__skeleton-row{border-radius:var(--radius-xl);background:linear-gradient(90deg, var(--color-surface-offset) 25%, var(--color-surface-offset-2) 37%, var(--color-surface-offset) 63%);background-size:400% 100%;height:84px;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.naptar__skeleton-row{animation:none}}
