.school-calendar{--navy:#0b1f35;--yellow:#ffcc38;--ink:#132338;--muted:#607080;--line:#dce2e7;--soft:#f4f6f7}.school-calendar *{box-sizing:border-box}.school-calendar{margin:0;color:var(--ink);background:#f7f8fa;font-family:Manrope,Arial,sans-serif;line-height:1.6}.school-calendar a{color:inherit}.school-calendar button,.school-calendar select,.school-calendar input{font:inherit}.school-calendar button,.school-calendar a,.school-calendar select,.school-calendar input{touch-action:manipulation}.school-calendar button{cursor:pointer}.school-calendar button:focus-visible,.school-calendar a:focus-visible,.school-calendar select:focus-visible,.school-calendar input:focus-visible{outline:3px solid #327bbd;outline-offset:3px}.school-calendar button:disabled{cursor:default;opacity:.35}.school-calendar [hidden]{display:none!important}.school-calendar .wrap{width:min(1200px,calc(100% - 48px));margin:auto}.school-calendar .top{background:var(--navy);color:#cfd9e2;font-size:11px;padding:8px 0}.school-calendar .header{background:white;border-bottom:1px solid var(--line)}.school-calendar .header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:21px 0}.school-calendar .logo{width:225px;max-width:55%;height:auto}.school-calendar .header a{font-size:12px;font-weight:700;text-decoration:none}.school-calendar .calendar-intro{padding:54px 0 30px}.school-calendar .eyebrow{color:#8a6b00;font-weight:800;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.school-calendar h1,.school-calendar h2,.school-calendar h3{font-family:Newsreader,Georgia,serif;font-weight:500;line-height:1.15}.school-calendar h1{font-size:clamp(36px,5vw,62px);letter-spacing:-.035em;margin:12px 0 16px}.school-calendar h1 span{color:#7a8793}.school-calendar h2{font-size:32px;margin:0}.school-calendar h3{font-size:25px;margin:0}.school-calendar .calendar-intro p{color:var(--muted);max-width:660px;font-size:14px}.school-calendar .hero-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.school-calendar .actions{display:flex;flex-wrap:wrap;gap:10px}.school-calendar .btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 16px;text-decoration:none;border:1px solid var(--line);background:white;color:var(--navy);font-size:12px;font-weight:700;border-radius:6px}.school-calendar .btn:hover{border-color:#8f9fac}.school-calendar .btn.primary{background:var(--yellow);border-color:var(--yellow)}.school-calendar .milestones{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:white;border-radius:12px;overflow:hidden;margin:22px 0 34px}.school-calendar .milestones div{padding:19px 22px;border-right:1px solid var(--line)}.school-calendar .milestones div:last-child{border:0}.school-calendar .milestones small{display:block;color:var(--muted);font-size:10px}.school-calendar .milestones strong{display:block;font-size:15px;margin-top:5px}.school-calendar .layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}.school-calendar .panel{border:1px solid var(--line);border-radius:14px;background:white;overflow:hidden}.school-calendar .toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px;border-bottom:1px solid var(--line)}.school-calendar .toolbar h2{font-size:30px}.school-calendar .toolbar h2 small{font-family:Manrope,Arial,sans-serif;color:var(--muted);font-size:12px;margin-left:10px}.school-calendar .tools{display:flex;gap:7px;align-items:center}.school-calendar .arrow{width:36px;min-height:36px;padding:5px;font-size:21px}.school-calendar .month-select{border:1px solid var(--line);background:white;border-radius:6px;padding:8px 10px;font-size:12px;max-width:175px}.school-calendar .week,.school-calendar .days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.school-calendar .week{padding:14px 14px 8px;color:var(--muted);font-size:10px;font-weight:800;text-align:center}.school-calendar .days{padding:0 14px 16px;gap:5px}.school-calendar .day{position:relative;min-height:72px;border:1px solid transparent;border-radius:8px;text-align:left;padding:10px;background:#f6f7f9;color:var(--ink);display:flex;flex-direction:column;justify-content:space-between}.school-calendar .day span{font-size:14px;font-weight:700}.school-calendar .day small{font-size:9px;line-height:1.3}.school-calendar .day.weekend{background:#fafbfc;color:#88929c}.school-calendar .day:hover{border-color:#9fabb7}.school-calendar .day.empty{background:transparent;pointer-events:none}.school-calendar .day.today{outline:2px solid var(--navy);outline-offset:-2px}.school-calendar .day.selected{box-shadow:inset 0 0 0 2px #327bbd}.school-calendar .day.change,.school-calendar .tag.change{background:#fff1c6;color:#72500b}.school-calendar .day.online,.school-calendar .tag.online{background:#f6e5f2;color:#8c306f}.school-calendar .day.holiday,.school-calendar .tag.holiday{background:#e3eefb;color:#225689}.school-calendar .day.religion,.school-calendar .tag.religion{background:#e5f1e9;color:#356746}.school-calendar .day.break,.school-calendar .tag.break{background:#fff7db;color:#816d22}.school-calendar .day.term,.school-calendar .tag.term{background:#e7eaf0;color:#47546b}.school-calendar .day .dots{display:flex;gap:3px}.school-calendar .dots i{width:4px;height:4px;background:currentColor;border-radius:50%}.school-calendar .legend{display:flex;flex-wrap:wrap;gap:10px 16px;padding:15px 22px;border-top:1px solid var(--line);font-size:10px;color:#4d5e6d}.school-calendar .legend span{display:flex;gap:6px;align-items:center}.school-calendar .legend i{width:8px;height:8px;border-radius:50%}.school-calendar .details{padding:20px 24px;background:#f8fafc;border-top:1px solid var(--line)}.school-calendar .details h3{font-size:23px;margin-bottom:12px}.school-calendar .detail-row{border-top:1px solid var(--line);padding:12px 0}.school-calendar .detail-row:first-of-type{border:0}.school-calendar .detail-row p{margin:5px 0;font-size:12px;color:var(--muted)}.school-calendar .tag{display:inline-block;padding:3px 8px;border-radius:4px;font-size:9px;font-weight:800}.school-calendar .sidebar-head{padding:23px;border-bottom:1px solid var(--line)}.school-calendar .sidebar-head h2{font-size:25px}.school-calendar .sidebar-head p{font-size:11px;color:var(--muted);margin:7px 0 0}.school-calendar .events{padding:0 22px}.school-calendar .event{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;padding:18px 0;border-bottom:1px solid var(--line);width:100%;background:transparent;text-align:left;border-top:0;border-right:0;border-left:0;color:var(--ink)}.school-calendar .event:last-child{border-bottom:0}.school-calendar .event:hover strong{text-decoration:underline}.school-calendar .date-badge{background:#f4f6f7;border-radius:7px;text-align:center;padding:6px 2px;align-self:start}.school-calendar .date-badge b{display:block;font-size:18px;line-height:1.2}.school-calendar .date-badge small{display:block;font-size:8px;color:var(--muted)}.school-calendar .event strong{display:block;font-size:12px;margin:5px 0}.school-calendar .event p{margin:0;color:var(--muted);font-size:10px}.school-calendar .empty-note{padding:26px 0;color:var(--muted);font-size:12px}.school-calendar .year-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.school-calendar .year-card .toolbar{padding:16px}.school-calendar .year-card h2{font-size:23px}.school-calendar .year-card .day{min-height:43px;padding:5px}.school-calendar .year-card .day span{font-size:11px}.school-calendar .year-card .day small{display:none}.school-calendar .year-card .week{font-size:8px}.school-calendar .source{font-size:11px;color:var(--muted);padding:28px 0 40px;max-width:950px}.school-calendar .source a{font-weight:700}.school-calendar .footer{background:var(--navy);color:#b9c7d3;font-size:10px;padding:24px 0}.school-calendar .screen-reader{position:absolute;left:-10000px}.school-calendar .print-title{display:none}@media(max-width:1000px){.school-calendar .layout{grid-template-columns:minmax(0,1fr) 285px}.school-calendar .day{min-height:64px;padding:7px}.school-calendar .day small{font-size:8px}.school-calendar .year-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.school-calendar .wrap{width:calc(100% - 32px)}.school-calendar .header .wrap{padding:15px 0}.school-calendar .logo{width:185px}.school-calendar .calendar-intro{padding:30px 0 18px}.school-calendar .hero-row{align-items:start;flex-direction:column}.school-calendar .calendar-intro p{font-size:12px}.school-calendar .milestones{grid-template-columns:1fr 1fr;margin-top:10px}.school-calendar .milestones div{padding:14px}.school-calendar .milestones div:nth-child(2){border-right:0}.school-calendar .milestones div:nth-child(-n+2){border-bottom:1px solid var(--line)}.school-calendar .milestones strong{font-size:12px}.school-calendar .layout{grid-template-columns:1fr}.school-calendar .toolbar{padding:16px;flex-wrap:wrap;gap:10px}.school-calendar .toolbar h2{font-size:28px}.school-calendar .day{min-height:57px;padding:6px}.school-calendar .day small{font-size:7px;overflow-wrap:anywhere}.school-calendar .days{gap:3px;padding:0 9px 12px}.school-calendar .week{padding:12px 9px 8px;font-size:9px}.school-calendar .day span{font-size:12px}.school-calendar .legend{padding:14px;font-size:9px;gap:9px 13px}.school-calendar .details{padding:16px}.school-calendar .year-grid{grid-template-columns:1fr}.school-calendar .actions .btn{font-size:11px}.school-calendar .top{font-size:9px}.school-calendar .source{font-size:10px}.school-calendar .sidebar-head{padding:17px}.school-calendar .sidebar-head h2{font-size:25px}.school-calendar .event strong{font-size:13px}.school-calendar .event p{font-size:11px}}@media(prefers-reduced-motion:reduce){.school-calendar *{scroll-behavior:auto!important}}@media print{.school-calendar{background:white}.school-calendar .top,.school-calendar .header,.school-calendar .calendar-intro,.school-calendar .milestones,.school-calendar .actions,.school-calendar .layout,.school-calendar .demo,.school-calendar .footer,.school-calendar .tools{display:none!important}.school-calendar .wrap{width:100%}.school-calendar .year-grid{display:grid!important;grid-template-columns:repeat(2,1fr);gap:12px}.school-calendar .year-card{break-inside:avoid}.school-calendar .year-card .day{min-height:34px;font-size:10px;print-color-adjust:exact;-webkit-print-color-adjust:exact}.school-calendar .print-title{display:block;font-size:24px;margin:0 0 20px}.school-calendar .source{padding:18px 0}.school-calendar .year-card .week{padding:7px}.school-calendar .year-card .toolbar{padding:10px}.school-calendar .year-card .days{padding-bottom:10px}@page{size:A4;margin:12mm}}
