.school-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid #e5eaf3;border-left:1px solid #e5eaf3}.calendar-weekday{text-align:center;padding:12px 2px;font-weight:700;font-size:12px;background:#f5f8ff;border-right:1px solid #e5eaf3}.calendar-cell{min-height:98px;padding:8px;border-right:1px solid #e5eaf3;border-bottom:1px solid #e5eaf3;min-width:0}.calendar-date{display:block;font-size:12px;margin-bottom:6px}.calendar-cell.today{background:#EBF6FE}.calendar-cell.today .calendar-date{font-weight:800;color:#0873B8}.calendar-cell.outside{background:#fafbfe;color:#9aa6bb}.calendar-event{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#DDEFFC;color:#065A91;font-size:11px;border-radius:4px;padding:4px;margin:2px 0;text-decoration:none}.calendar-event.audience-parents{background:#dff6ea;color:#13673c}.calendar-event.audience-staff{background:#efe5ff;color:#63349b}.calendar-event.cancelled{text-decoration:line-through;opacity:.6}.calendar-legend{padding:12px;font-size:12px}.calendar-panel{padding:0;overflow:hidden}.calendar-toolbar{display:flex;flex-wrap:wrap;gap:8px;padding:16px;align-items:center}.calendar-toolbar label{display:flex;align-items:center;gap:8px}.calendar-toolbar input{min-width:0;max-width:160px}@media(max-width:600px){.calendar-cell{padding:3px;min-height:72px}.calendar-date{font-size:11px}.calendar-event{font-size:9px;padding:3px 2px}.calendar-weekday{font-size:10px}.calendar-toolbar{padding:12px;gap:6px}.calendar-legend{font-size:10px}.calendar-toolbar .button{padding:8px 10px}}
.calendar-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto}.calendar-toolbar label{min-width:0}.calendar-toolbar input{width:100%;box-sizing:border-box}@media(max-width:600px){.calendar-toolbar{gap:5px}.calendar-toolbar label{font-size:0;gap:0}.calendar-toolbar label input{font-size:12px;max-width:none;padding:9px 6px}.calendar-toolbar .button{padding:8px}.calendar-toolbar{padding:12px}}
.calendar-toolbar-title{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:16px;flex-wrap:wrap}.calendar-toolbar-title h3{margin:0}.calendar-search{display:flex;gap:8px;padding:0 16px 12px}.calendar-search input{flex:1;min-width:0}.agenda-days{display:flex;flex-direction:column}.agenda-day{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;padding:16px;border-top:1px solid #e5eaf3}.agenda-day.today{background:#EBF6FE}.agenda-date{display:flex;flex-direction:column;line-height:1.15}.agenda-num{font-size:28px;font-weight:800;color:#152f53}.agenda-day.today .agenda-num{color:#0873B8}.agenda-dow{font-size:12px;font-weight:700;color:#6a7d97}.agenda-date small{font-size:11px;margin-top:4px}.agenda-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.agenda-card{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:10px;background:#DDEFFC;color:#065A91;text-decoration:none;border-left:4px solid #0873B8}.agenda-card strong{font-size:13px}.agenda-card span{font-size:12px}.agenda-card small{font-size:11px;opacity:.8}.agenda-card.audience-parents{background:#dff6ea;color:#13673c;border-left-color:#1f9d5a}.agenda-card.audience-staff{background:#efe5ff;color:#63349b;border-left-color:#8a55d8}.agenda-card.cancelled{opacity:.6}.agenda-card.cancelled strong{text-decoration:line-through}@media(max-width:600px){.agenda-day{grid-template-columns:1fr;gap:8px;padding:12px}.agenda-date{flex-direction:row;align-items:baseline;gap:8px}.agenda-num{font-size:22px}.agenda-cards{grid-template-columns:1fr}}
/* polesan tema baru */
.calendar-cell{transition:background .18s}.calendar-cell:hover{background:#f6f9ff}.calendar-event{transition:transform .18s,box-shadow .18s}.calendar-event:hover{transform:translateX(2px);box-shadow:0 4px 10px rgba(15,27,51,.1)}
.agenda-card{transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s}.agenda-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(15,27,51,.12)}
.agenda-day{transition:background .18s}.agenda-days .agenda-day{animation:rise .4s cubic-bezier(.22,1,.36,1) both}
