.calendar-page{padding:26px clamp(16px,5vw,80px) 70px}.calendar-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:22px}.calendar-heading h1{font-size:clamp(34px,5vw,56px);margin:5px 0}.calendar-heading>div:first-child>p:last-child{color:#6e665e}.sync-card{display:flex;align-items:center;gap:11px;max-width:520px;padding:14px 16px;border:1px solid #ddc7b5;border-radius:15px;background:linear-gradient(145deg,#fffdf8,#f5e9dc);box-shadow:0 8px 18px rgba(113,67,43,.1)}.sync-card>div{display:flex;flex:1;flex-direction:column;gap:3px}.sync-card small{color:#75675d;line-height:1.35}.sync-dot{flex:0 0 11px;height:11px;border-radius:50%;background:#a89c91}.sync-dot.status-success{background:#3d8a65;box-shadow:0 0 0 4px #dceee5}.sync-dot.status-failed{background:#bd6548}.sync-card button{padding:9px 12px;border:1px solid #b56f46;border-radius:9px;background:#fff;color:#874b2c;font-weight:800;cursor:pointer}.calendar-messages p{padding:12px;border-radius:9px;background:#dceee5}.calendar-messages .error{background:#f8e3d8}.calendar-card{overflow:hidden;border:1px solid #dcc9b8;border-radius:20px;background:#fffdf8;box-shadow:0 18px 38px rgba(75,50,35,.12)}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;border-bottom:1px solid #e2d5c9;background:linear-gradient(135deg,#fffdf8,#f6eee4)}.calendar-move,.calendar-tools,.view-switch{display:flex;align-items:center;gap:8px}.calendar-move h2{min-width:210px;margin:0 0 0 8px;font-size:24px}.calendar-toolbar button{padding:9px 12px;border:1px solid #d0baa8;border-radius:9px;background:#fff;color:#704a35;font-weight:800;cursor:pointer}.view-switch{padding:3px;border-radius:11px;background:#eadfd5}.view-switch button{border:0;background:transparent}.view-switch button[aria-pressed=true]{background:#96593f;color:#fff;box-shadow:0 3px 7px rgba(84,48,31,.2)}.calendar-tools input{width:190px;padding:10px 12px;border:1px solid #d0baa8;border-radius:10px;background:#fff}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid #e2d5c9;background:#faf5ee}.calendar-weekdays span{padding:10px;text-align:center;color:#7a6a5f;font-size:11px;font-weight:900;letter-spacing:.08em}.calendar-grid.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal-day{min-height:125px;padding:7px;border-right:1px solid #e7ddd4;border-bottom:1px solid #e7ddd4;background:#fffdf9}.cal-day:nth-child(7n){border-right:0}.cal-day.outside{background:#f4f0ea;color:#9c928a}.cal-day.today{box-shadow:inset 0 0 0 2px #c76d3b}.day-number{display:block;margin-bottom:5px;font-size:12px;font-weight:900}.cal-event{display:block;width:100%;margin:3px 0;padding:5px 6px;border:0;border-left:4px solid #a87c63;border-radius:5px;background:#f1e5dc;color:#49392f;text-align:left;font-size:10px;line-height:1.25;cursor:pointer}.cal-event.math{border-color:#2f6b63;background:#e0ece8}.cal-event.reading{border-color:#76558f;background:#ece5f1}.cal-event.science{border-color:#3c748f;background:#e0edf2}.cal-event.social{border-color:#a15f46;background:#f2e4dd}.cal-event.school{border-color:#c76d3b;background:#f8e5d8}.calendar-grid.week{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));overflow-x:auto}.calendar-grid.week .cal-day{min-height:420px}.calendar-grid.year{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:13px;padding:16px;background:#f5eee7}.year-month{padding:13px;border:1px solid #ddcfc2;border-radius:12px;background:#fff;box-shadow:0 4px 10px rgba(75,50,35,.07)}.year-month h3{margin:0 0 9px;font:700 18px 'Fraunces',serif}.mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.mini-grid span,.mini-grid button{display:grid;place-items:center;min-height:27px;border:0;border-radius:5px;background:transparent;font-size:10px}.mini-grid .has-events{background:#eaded4;color:#704a35;font-weight:900;cursor:pointer}.mini-grid .today{outline:2px solid #c76d3b}.calendar-empty{padding:40px;text-align:center;color:#786b62}.event-detail{position:fixed;right:22px;bottom:22px;z-index:20;width:min(390px,calc(100vw - 44px));padding:24px;border:1px solid #d5bdab;border-radius:17px;background:#fffdf8;box-shadow:0 18px 48px rgba(51,35,25,.25)}.event-detail>button{position:absolute;right:12px;top:10px;border:0;background:transparent;font-size:26px;cursor:pointer}.event-detail h2{padding-right:22px}.event-detail p{white-space:pre-line;line-height:1.5}.event-detail small{color:#765f52}.calendar-source{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:15px;padding:16px 4px;font-size:12px;color:#75675d}.calendar-source a{color:#8a4e36;font-weight:800}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.cal-day.weekend{background:radial-gradient(circle at 50% 20%,rgba(95,160,116,.2),rgba(222,240,225,.62) 55%,rgba(242,248,242,.92));box-shadow:inset 0 0 18px rgba(65,135,88,.12)}
.cal-day.outside.weekend{background:radial-gradient(circle,rgba(116,164,126,.14),#eef2ec 72%)}
.cal-event.schedule{border-color:#8a7567;background:#eee9e4;color:#5f5148}
.cal-event.special{border-color:#d3942e;background:#fff0c9;color:#674810}
.cal-event.gifted{border-color:#8b58a5;background:#eee0f5;color:#573368}
.mini-grid .weekend{background:radial-gradient(circle,rgba(103,166,117,.24),rgba(235,245,236,.75));color:#477052}
.sync-now{padding:9px 13px;border:1px solid #b56f46;border-radius:9px;background:#fffdf8;color:#874b2c;font-weight:800;cursor:pointer;box-shadow:0 5px 12px rgba(113,67,43,.1)}
.calendar-source .calendar-meta{margin:0 0 5px;color:#66594f;font-size:10px;font-weight:800;letter-spacing:.01em}.calendar-source p{margin-top:0;font-size:11px}
@media(max-width:950px){.calendar-heading{align-items:flex-start;flex-direction:column}.calendar-toolbar{align-items:flex-start;flex-direction:column}.calendar-tools{width:100%;justify-content:space-between}.calendar-grid.year{grid-template-columns:repeat(2,minmax(220px,1fr))}}
@media(max-width:650px){.calendar-page{padding-left:10px;padding-right:10px}.sync-card{align-items:flex-start;flex-wrap:wrap}.calendar-move{flex-wrap:wrap}.calendar-move h2{order:3;width:100%;margin:6px 0 0}.calendar-tools{align-items:stretch;flex-direction:column}.calendar-tools input{width:100%}.calendar-grid.month{grid-template-columns:1fr}.calendar-weekdays{display:none}.cal-day{min-height:80px;border-right:0}.cal-day.outside{display:none}.calendar-grid.year{grid-template-columns:1fr}.calendar-source{align-items:flex-start;flex-direction:column}}
.cal-day.today{position:relative;z-index:1;background:linear-gradient(145deg,#fff9ea,#ffe7c1);box-shadow:inset 0 0 0 4px #e2642f,0 0 0 2px #fff,0 5px 15px rgba(178,72,33,.24)}
.cal-day.today::before{content:"TODAY";position:absolute;right:7px;top:6px;padding:3px 6px;border-radius:999px;background:#d94f1f;color:#fff;font-size:8px;font-weight:950;letter-spacing:.09em;box-shadow:0 3px 8px rgba(139,45,15,.28)}
.cal-day.today .day-number{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#d94f1f;color:#fff;font-size:14px}
.mini-grid .today{outline:3px solid #e2642f;background:#d94f1f;color:#fff;font-size:12px;font-weight:950;box-shadow:0 3px 8px rgba(178,72,33,.3)}
.cal-day.today{background:#fffdf9;box-shadow:none}
.cal-day.today.weekend{background:radial-gradient(circle at 50% 20%,rgba(95,160,116,.2),rgba(222,240,225,.62) 55%,rgba(242,248,242,.92));box-shadow:inset 0 0 18px rgba(65,135,88,.12)}
.cal-day.today::before{background:#2878b8;box-shadow:0 3px 8px rgba(29,86,132,.28)}
.cal-day.today .day-number{display:block;width:auto;height:auto;border-radius:0;background:transparent;color:inherit;font-size:12px}
.mini-grid .today{outline:0;background:#2878b8;color:#fff;font-size:10px;box-shadow:0 2px 6px rgba(29,86,132,.25)}
