.calendar-toolbar{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px;margin-bottom:12px}.calendar-nav,.calendar-filters,.calendar-source-state{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.calendar-nav strong{min-width:150px;text-align:center}.calendar-toolbar button,.calendar-toolbar select{min-height:38px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--ink);font:750 .78rem/1 inherit}.calendar-toolbar button{padding:8px 11px;cursor:pointer}.calendar-toolbar select{padding:8px 30px 8px 10px}.calendar-source-state{margin:0 0 12px}.calendar-source{display:inline-flex;padding:5px 9px;border-radius:99px;background:#eef3f0;color:#466057;font-size:.72rem;font-weight:800}.calendar-source.read{background:#e9f8ef;color:var(--good)}.calendar-source.empty{background:#edf3f8;color:#3c5871}.calendar-source.failed,.calendar-source.warning{background:#fff1ef;color:var(--danger)}.calendar-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--card);box-shadow:var(--shadow)}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(132px,1fr));min-width:924px}.calendar-weekday{padding:9px 11px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#f1f5f3;color:var(--muted);font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.calendar-weekday:nth-child(7){border-right:0}.calendar-day{min-height:145px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{background:#fafbfa;color:#9aa7a2}.calendar-day.today{box-shadow:inset 0 0 0 2px #7dbda5}.calendar-date{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;font-size:.78rem;font-weight:850}.calendar-date b{display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;border-radius:99px;background:#edf3f0;color:#466057;font-size:.67rem}.calendar-events{display:grid;gap:6px}.calendar-event{display:grid;gap:4px;padding:7px;border:1px solid #dfe7e3;border-left:3px solid #8b9c95;border-radius:8px;background:#fbfcfb;font-size:.7rem;line-height:1.25}.calendar-event.event-published{border-left-color:var(--good)}.calendar-event.event-scheduled{border-left-color:#2d6fb7}.calendar-event.event-planned{border-left-color:#d99021}.calendar-event.event-blocked{border-left-color:var(--danger);background:#fff8f7}.calendar-event.market-us{box-shadow:inset 0 0 0 1px rgba(45,111,183,.08)}.calendar-event>a:not(.sheet-jump),.calendar-event>span{color:var(--ink);font-weight:800;text-decoration:none}.calendar-event>a:not(.sheet-jump):hover{text-decoration:underline}.calendar-event small{color:var(--muted);font-size:.66rem}.event-badges{display:flex;flex-wrap:wrap;gap:4px}.event-badges b,.event-badges span{padding:2px 5px;border-radius:99px;background:#edf3f0;color:#42564f;font-size:.58rem;font-weight:850;text-transform:uppercase}.event-badges b{background:#dff2e9;color:#075e45}.calendar-event.market-us .event-badges b{background:#e5eef8;color:#315d88}.sheet-jump{color:var(--brand);font-size:.62rem;font-weight:800;text-decoration:none}.unscheduled-panel{margin-top:12px;padding:15px;border:1px solid var(--line);border-radius:13px;background:var(--card)}.unscheduled-heading{display:flex;justify-content:space-between;gap:8px;margin-bottom:10px}.unscheduled-heading span{color:var(--muted);font-size:.8rem;font-weight:800}.unscheduled-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.unscheduled-item .calendar-event{height:100%}.unscheduled-panel>p{color:var(--muted);font-size:.8rem}@media(max-width:900px){.calendar-toolbar{align-items:stretch}.calendar-filters{width:100%}.calendar-filters select{flex:1;min-width:145px}.unscheduled-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.calendar-nav{width:100%;justify-content:space-between}.calendar-nav strong{min-width:0}.unscheduled-list{grid-template-columns:1fr}.calendar-filters select{width:100%;flex-basis:100%}}
