.calendar-page{width:var(--sp-rail);padding-bottom:var(--sp-size-80);flex:1;margin:auto}.calendar-heading{padding:var(--sp-size-44) 0 var(--sp-size-32)}.calendar-head-inner{justify-content:space-between;align-items:flex-end;gap:var(--sp-size-28) var(--sp-size-40);flex-wrap:wrap;display:flex}.calendar-title{margin-top:var(--sp-size-8);font-size:clamp(var(--sp-size-36), 3.5vw, var(--sp-size-48));letter-spacing:-.035em;font-weight:600;line-height:1.2}.calendar-tools{align-items:center;gap:var(--sp-size-12);flex-wrap:wrap;display:flex}.calendar-tools button{border-radius:var(--sp-radius-pill);min-height:var(--sp-size-38);cursor:pointer}.calendar-body{grid-template-columns:minmax(0, 1fr) var(--sp-size-280);gap:var(--sp-size-28);align-items:start;display:grid}.calendar-month{border:var(--sp-size-1) solid var(--sp-line);border-radius:var(--sp-r-lg);min-width:0;overflow:hidden}.calendar-weekdays,.calendar-days{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekdays{background:var(--sp-surface);border-bottom:var(--sp-size-1) solid var(--sp-line)}.calendar-days{gap:var(--sp-size-1);background:var(--sp-line)}.calendar-cell{gap:var(--sp-size-4);min-width:0;min-height:var(--sp-size-124);padding:var(--sp-size-8) var(--sp-size-8) var(--sp-size-10);background:var(--sp-canvas);flex-direction:column;display:flex}.calendar-cell-out{background:var(--sp-surface-2)}.calendar-cell-today{background:var(--sp-surface)}.calendar-event{height:var(--sp-size-24);padding:0 var(--sp-size-6);font-size:var(--sp-size-11);border-radius:var(--sp-r-sm);border:var(--sp-size-1) solid var(--sp-line);border-left:var(--sp-size-3) solid var(--sp-line-strong);background:var(--sp-surface-2);color:var(--sp-ink-2);align-items:center;display:flex}.calendar-event-study{background:var(--sp-accent-soft);color:var(--sp-accent);border-color:#0000;border-left-color:var(--sp-accent)}.calendar-event-homework{background:var(--sp-surface);color:var(--sp-ink);border-left-color:var(--sp-ink)}.calendar-sidebar{gap:var(--sp-size-20);flex-direction:column;min-width:0;display:flex}.calendar-sidebar-paper{padding:var(--sp-size-26);background:var(--sp-surface);border:var(--sp-size-1) solid var(--sp-line);border-radius:var(--sp-r-lg);box-shadow:var(--sp-paper-shadow)}.calendar-agenda{display:none}.calendar-agenda-day{grid-template-columns:var(--sp-size-76) minmax(0, 1fr);gap:var(--sp-size-12);padding:var(--sp-size-16);border-bottom:var(--sp-size-1) solid var(--sp-line);display:grid}.calendar-agenda-day time{font-family:var(--font-jetbrains-mono), monospace;font-size:var(--sp-size-12);color:var(--sp-ink-3)}.calendar-agenda-day>div{gap:var(--sp-size-8);flex-direction:column;display:flex}.calendar-upcoming-card{gap:var(--sp-size-14);padding:var(--sp-size-14);border:var(--sp-size-1) solid var(--sp-line);border-radius:var(--sp-r-sm);display:flex}@media (max-width:1000px){.calendar-body{grid-template-columns:1fr}}@media (max-width:600px){.calendar-weekdays,.calendar-days{display:none}.calendar-agenda{background:var(--sp-surface);display:block}.calendar-agenda>p{padding:var(--sp-size-24);color:var(--sp-ink-3)}.calendar-agenda .calendar-event{height:auto;min-height:var(--sp-size-32);font-size:var(--sp-size-13);padding:var(--sp-size-6) var(--sp-size-8)}.calendar-agenda .calendar-event span{white-space:normal}.calendar-cell{min-height:var(--sp-size-92);padding:var(--sp-size-4)}.calendar-event{font-size:var(--sp-size-9);padding:0 var(--sp-size-3)}}
