.cal-section{padding-block:var(--section-gap)}.cal-layout{grid-template-columns:1fr 320px;align-items:start;gap:28px;display:grid}.cal-box{background:var(--canvas);border:1px solid var(--surface-active);border-radius:16px;overflow:hidden}.cal-header{border-bottom:1px solid var(--surface-active);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.cal-month-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-primary);font-size:16px;font-weight:800}.cal-nav{border:1px solid var(--surface-active);cursor:pointer;width:34px;height:34px;color:var(--text-muted);background:0 0;border-radius:8px;justify-content:center;align-items:center;font-size:22px;line-height:1;transition:color .15s,border-color .15s;display:flex}.cal-nav:hover{color:var(--brand-dark);border-color:var(--brand-dark)}.cal-weekdays{background:var(--surface-light);border-bottom:1px solid var(--surface-active);grid-template-columns:repeat(7,1fr);display:grid}.cal-weekdays span{text-align:center;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);padding:8px 0;font-size:10px;font-weight:700}.cal-grid{background:var(--surface-active);grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.cal-cell{background:var(--canvas);flex-direction:column;gap:4px;min-height:68px;padding:6px;display:flex}.cal-cell--empty{background:var(--surface-light)}.cal-cell--events{cursor:pointer}.cal-cell--events:hover{background:#f5faf7}.cal-cell--today .cal-day-num{background:var(--primary);color:var(--text-primary);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.cal-cell--sel{background:#edf6f1}.cal-cell--sel:hover{background:#e5f2ec}.cal-day-num{color:var(--text-muted);padding-inline:2px;font-size:11px;font-weight:600;line-height:22px}.cal-cell--events .cal-day-num{color:var(--text-primary)}.cal-dots{flex-wrap:wrap;gap:3px;padding-inline:2px;display:flex}.cal-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.cal-dot--festival{background:#f4c01c}.cal-dot--cultura{background:#266040}.cal-dot--musica{background:#7c5cbf}.cal-dot--mercado{background:#e07b2a}.cal-legend{border-top:1px solid var(--surface-active);background:var(--surface-light);flex-wrap:wrap;gap:16px;padding:14px 18px;display:flex}.cal-legend-item{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}.events-panel{background:var(--canvas);border:1px solid var(--surface-active);border-radius:16px;position:sticky;top:96px;overflow:hidden}.events-panel-head{border-bottom:1px solid var(--surface-active);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.events-panel-title{text-transform:uppercase;letter-spacing:2px;color:var(--text-primary);font-size:11px;font-weight:700}.events-clear{font-family:var(--font);letter-spacing:1px;color:var(--brand-dark);cursor:pointer;text-transform:uppercase;background:0 0;border:none;padding:0;font-size:11px;font-weight:700}.events-clear:hover{text-decoration:underline}.events-list{flex-direction:column;max-height:560px;display:flex;overflow-y:auto}.events-empty{color:var(--text-muted);text-align:center;padding:24px 20px;font-size:14px}.event-item{border-bottom:1px solid var(--surface-active);display:flex}.event-item:last-child{border-bottom:none}.event-bar{flex-shrink:0;width:4px}.event-bar--festival{background:#f4c01c}.event-bar--cultura{background:#266040}.event-bar--musica{background:#7c5cbf}.event-bar--mercado{background:#e07b2a}.event-body{flex-direction:column;gap:3px;padding:14px 16px;display:flex}.event-name{color:var(--text-primary);font-size:12px;font-weight:700}.event-date{letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted);font-size:10px;font-weight:700}.event-desc{color:var(--text-body);margin-top:2px;font-size:12px;line-height:1.5}.event-loc{color:var(--text-muted);margin-top:2px;font-size:11px}@media (width<=900px){.cal-layout{grid-template-columns:1fr}.events-panel{position:static}.events-list{max-height:360px}}@media (width<=480px){.cal-cell{min-height:48px;padding:4px}.cal-weekdays span{letter-spacing:0;font-size:8px}}
