.calendar-controls{display:grid;gap:1rem}.calendar-nav,.calendar-view-switch,.calendar-filters,.calendar-create-fields{display:flex;gap:.7rem;align-items:end;flex-wrap:wrap}.calendar-nav strong{margin-left:auto;font-size:1.1rem;text-transform:capitalize}.calendar-filters{padding:1rem;border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);background:var(--ui-surface-deep)}.calendar-filters>label{min-width:220px}.calendar-filters fieldset{display:flex;gap:.6rem;flex-wrap:wrap;border:0;padding:0}.calendar-filters fieldset label{display:flex;align-items:center;gap:.35rem;padding:.45rem .6rem;border:1px solid var(--ui-border);border-radius:8px;background:var(--ui-surface);font-size:.76rem}.calendar-filters input{width:auto;min-height:auto;accent-color:var(--ui-accent)}
.calendar-month,.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow:hidden;border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);background:var(--ui-surface-deep)}.calendar-day{min-height:8rem;overflow:hidden;padding:.5rem;border-right:1px solid var(--ui-border);border-bottom:1px solid var(--ui-border);background:var(--ui-surface)}.calendar-day>strong{display:inline-grid;width:27px;height:27px;place-items:center;border-radius:8px;font-size:.78rem}.calendar-day:hover{background:var(--ui-surface-elevated)}.calendar-day.outside{background:var(--ui-surface-deep);color:#789095}.calendar-week .calendar-day{min-height:22rem}.calendar-weekday{padding:.6rem;background:var(--ui-surface-deep);color:var(--ui-text-muted);font-size:.68rem;font-weight:850;letter-spacing:.05em;text-align:center;text-transform:uppercase}.calendar-event{display:block;overflow-wrap:anywhere;margin:.3rem 0;padding:.38rem .45rem;border-left:.3rem solid rgba(0,0,0,.3);border-radius:7px;color:#fff;font-size:.72rem;text-decoration:none;box-shadow:0 2px 6px rgba(0,0,0,.2)}.calendar-event:hover{filter:brightness(1.08);color:#fff}.calendar-event.historical{border:1px dashed var(--ui-text-muted);background:repeating-linear-gradient(135deg,#2c4d55,#2c4d55 6px,#1f4149 6px,#1f4149 12px);color:var(--ui-text-muted)}.calendar-event small{display:block;color:inherit;opacity:.88}.calendar-agenda{display:grid;gap:.6rem}.calendar-agenda .calendar-event{padding:.7rem;font-size:.88rem}.calendar-create h2{margin-top:0}.calendar-create>p{color:var(--ui-text-muted)}.calendar-create-fields label{flex:1;min-width:12rem;font-size:.8rem;font-weight:750}.calendar-create-fields input,.calendar-create-fields select{width:100%;margin-top:.4rem}
@media(max-width:768px){.calendar-nav strong{width:100%;order:-1;margin:0;font-size:1.05rem}.calendar-month,.calendar-week{display:block;border:0;background:transparent}.calendar-weekday{display:none}.calendar-day{min-height:auto;margin-bottom:.5rem;border:1px solid var(--ui-border);border-radius:10px;cursor:pointer}.calendar-day.outside.calendar-empty{display:none}.calendar-week .calendar-day{min-height:auto}.calendar-event{font-size:.83rem}.calendar-view-switch{display:grid;grid-template-columns:repeat(3,1fr)}.calendar-view-switch .button{width:100%}.calendar-filters>label{width:100%;min-width:100%}}
@media(max-width:480px){.calendar-nav{display:grid;grid-template-columns:repeat(3,1fr)}.calendar-nav strong{grid-column:1/-1}.calendar-nav .button{padding-inline:.35rem}.calendar-filters fieldset{display:grid;grid-template-columns:repeat(2,1fr);width:100%}.calendar-create-fields label{min-width:100%}}
