.calendar-page{max-width:var(--cando-layout-max);margin-inline:auto;padding:var(--cando-space-10) var(--cando-space-6) var(--cando-space-16);color:var(--cando-text-primary)}
.calendar-heading{padding:var(--cando-space-8);margin-block-end:var(--cando-space-8);background:var(--cando-background-surface);border:1px solid var(--cando-border-muted);border-top:3px solid var(--cando-brand-500);border-radius:12px}
.calendar-heading h1{margin:var(--cando-space-2) 0 var(--cando-space-4);font-size:var(--cando-font-size-2xl);color:var(--cando-primary-500)}
.calendar-heading p{margin:0;color:var(--cando-text-secondary);line-height:1.9}
.calendar-heading p:first-child{font-size:var(--cando-font-size-xs)}
.calendar-tabs{display:flex;border-bottom:1px solid var(--cando-primary-100);margin-block-end:var(--cando-space-6)}
.calendar-tabs a{padding:var(--cando-space-3) var(--cando-space-5);border:1px solid var(--cando-primary-100);border-bottom:0;border-radius:8px 8px 0 0;color:var(--cando-primary-500);margin-inline-end:-1px;font-size:var(--cando-font-size-s)}
.calendar-tabs a:hover{background:var(--cando-primary-50)}
.calendar-tabs a[aria-current]{background:var(--cando-background-surface);box-shadow:inset 0 3px var(--cando-primary-500);font-weight:var(--cando-font-weight-bold)}
.calendar-panel{padding:var(--cando-space-6);border:1px solid var(--cando-border-muted);border-radius:12px;background:var(--cando-background-surface)}
.calendar-section-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--cando-space-4);flex-wrap:wrap;margin-block-end:var(--cando-space-4)}
.calendar-section-heading h2{margin:0;font-size:var(--cando-font-size-l);color:var(--cando-primary-500)}
.calendar-section-heading h2 span{font-size:var(--cando-font-size-s);font-weight:var(--cando-font-weight-medium);color:var(--cando-text-secondary)}
.calendar-section-heading a,.calendar-contact a{display:inline-flex;align-items:center;gap:var(--cando-space-2);color:var(--cando-primary-500);font-size:var(--cando-font-size-s)}
.calendar-help{color:var(--cando-text-secondary);font-size:var(--cando-font-size-s);line-height:1.9;margin:0 0 var(--cando-space-6)}
.calendar-categories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--cando-space-4)}
.calendar-category{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--cando-space-3);padding:var(--cando-space-5);border:1px solid var(--cando-border-muted);border-radius:8px;transition:background-color var(--cando-motion-hover-duration) var(--cando-motion-hover-easing)}
.calendar-category:hover{background:var(--cando-primary-50);border-color:var(--cando-primary-200)}
.calendar-category strong{grid-column:2;grid-row:1;font-size:var(--cando-font-size-m);color:var(--cando-primary-500);line-height:1.8}
.calendar-category>span:not(.calendar-category-icon):not(.cando-icon){grid-column:2;grid-row:2;font-size:var(--cando-font-size-xs);color:var(--cando-text-secondary)}
.calendar-category-icon{grid-row:1/3;background:var(--cando-primary-50);border-radius:8px;padding:var(--cando-space-3);color:var(--cando-primary-400)}
.calendar-category>.cando-icon{grid-column:3;grid-row:1/3;color:var(--cando-primary-500)}
.calendar-filters{display:grid;grid-template-columns:2fr 1.5fr 1fr auto;gap:var(--cando-space-4);align-items:end;padding-block-end:var(--cando-space-6);margin-block-end:var(--cando-space-6);border-bottom:1px solid var(--cando-border-muted)}
.calendar-filters label{display:grid;gap:var(--cando-space-2);font-size:var(--cando-font-size-s);min-width:0}
.calendar-filters input,.calendar-filters select{width:100%;min-width:0;min-height:44px;padding:var(--cando-space-2) var(--cando-space-3);border:1px solid var(--cando-border-default);border-radius:6px;background:var(--cando-background-surface);color:var(--cando-text-primary);font:inherit}
.calendar-filters .button{min-height:44px;white-space:nowrap}
.calendar-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:var(--cando-font-size-s);line-height:1.9;border:1px solid var(--cando-border-muted);border-radius:8px;overflow:hidden}
.calendar-table th,.calendar-table td{padding:var(--cando-space-4) var(--cando-space-3);text-align:start;vertical-align:top;overflow-wrap:anywhere;border:0;border-bottom:1px solid var(--cando-border-muted)}
.calendar-table th{background:var(--cando-primary-50);color:var(--cando-primary-500);font-weight:var(--cando-font-weight-semibold);white-space:nowrap}
.calendar-table th:first-child{width:23%}.calendar-table th:nth-child(2){width:12%}.calendar-table th:nth-child(5){width:11%}
.calendar-table tbody tr:last-child td{border-bottom:0}
.calendar-table tbody tr:hover{background:var(--cando-background-page)}
.calendar-course a{font-weight:var(--cando-font-weight-semibold);color:var(--cando-primary-500)}
.calendar-course a:hover,.calendar-details:hover{text-decoration:underline;text-underline-offset:4px}
.calendar-modes{display:flex;gap:var(--cando-space-1);flex-wrap:wrap}
.calendar-modes span{background:var(--cando-primary-50);color:var(--cando-primary-500);font-size:var(--cando-font-size-xs);border-radius:4px;padding:2px var(--cando-space-2);white-space:nowrap}
.calendar-price>small{color:var(--cando-text-secondary);font-size:12px}
.calendar-price+.calendar-price{margin-block-start:var(--cando-space-2)}
.calendar-muted{color:var(--cando-text-secondary);font-size:var(--cando-font-size-xs)}
.calendar-table .button,.calendar-details{display:inline-flex;align-items:center;justify-content:center;gap:var(--cando-space-2);font-size:var(--cando-font-size-xs);min-height:44px;white-space:nowrap}
.calendar-table .button{padding:var(--cando-space-2) var(--cando-space-3)}
.calendar-page .cando-icon{width:20px;height:20px;flex-shrink:0}
.calendar-details .cando-icon{width:16px;height:16px}
.calendar-empty{text-align:center;padding:var(--cando-space-10) var(--cando-space-4);color:var(--cando-text-secondary);line-height:2}
.calendar-empty>.cando-icon{width:40px;height:40px;color:var(--cando-primary-300)}
.calendar-contact{display:flex;align-items:center;justify-content:space-between;gap:var(--cando-space-4);flex-wrap:wrap;padding:var(--cando-space-5);margin-block-start:var(--cando-space-6);background:var(--cando-primary-50);border-radius:8px}
.calendar-contact p{margin:0;font-size:var(--cando-font-size-s)}
@media(max-width:1023px){
 .calendar-categories{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-filters{grid-template-columns:1fr 1fr}
 .calendar-table,.calendar-table tbody{display:block;border:0;overflow:visible}
 .calendar-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .calendar-table tr{display:block;border:1px solid var(--cando-border-muted);border-radius:8px;padding:var(--cando-space-3);margin-block-end:var(--cando-space-4)}
 .calendar-table td{display:flex;justify-content:space-between;gap:var(--cando-space-4);padding:var(--cando-space-2) 0;border:0}
 .calendar-table td::before{content:attr(data-label);flex-shrink:0;color:var(--cando-text-secondary);font-size:var(--cando-font-size-xs)}
 .calendar-table .calendar-course{display:block;font-size:var(--cando-font-size-m);padding-block-end:var(--cando-space-3);margin-block-end:var(--cando-space-2);border-bottom:1px solid var(--cando-border-muted)}
 .calendar-table .calendar-course::before{display:none}
 .calendar-table td:last-child{align-items:center;margin-block-start:var(--cando-space-2);border-top:1px solid var(--cando-border-muted)}
}
@media(max-width:767px){
 .calendar-page{padding:var(--cando-space-6) var(--cando-space-4) var(--cando-space-10)}
 .calendar-heading,.calendar-panel{padding:var(--cando-space-4)}
 .calendar-heading h1{font-size:var(--cando-font-size-xl)}
 .calendar-categories,.calendar-filters{grid-template-columns:1fr}
 .calendar-tabs a{flex:1;text-align:center;padding-inline:var(--cando-space-3)}
}

/* Compact tuition rows and predictable alignment at every viewport. */
.calendar-table th,.calendar-table td{vertical-align:middle}
.calendar-table th:first-child{width:23%}
.calendar-table th:nth-child(2){width:11%}
.calendar-table th:nth-child(3){width:12%}
.calendar-table th:nth-child(4){width:16%}
.calendar-table th:nth-child(5){width:10%}
.calendar-table th:nth-child(6){width:18%}
.calendar-table th:nth-child(7){width:10%}
.calendar-table tbody tr{background:var(--cando-background-surface)}
.calendar-table tbody tr:nth-child(even){background:var(--cando-primary-50)}
.calendar-prices{display:grid;gap:8px;min-width:0}
.calendar-price{display:flex;align-items:baseline;justify-content:flex-start;gap:8px;flex-wrap:wrap}
.calendar-price>small{min-width:3.6em}
/* Chips stay visible on the shaded rows. */
.calendar-modes span{background:var(--cando-background-surface);border:1px solid var(--cando-primary-100)}
.calendar-price+.calendar-price{margin:0}
.calendar-price .cart-money{display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap;font-weight:600}
.calendar-price .cart-money small{display:inline;font-size:11px;font-weight:400;color:var(--cando-text-secondary)}
.calendar-table time{white-space:nowrap;font-variant-numeric:tabular-nums}
.calendar-table .button{box-shadow:none;border-radius:8px}
.calendar-course a{display:block;line-height:1.8;unicode-bidi:plaintext;text-align:right}
.calendar-table tr:hover{box-shadow:inset -3px 0 var(--cando-brand-500)}
@media(min-width:1024px) and (max-width:1279px){.calendar-table{font-size:12px}.calendar-table th,.calendar-table td{padding:14px 8px}.calendar-table .button{padding-inline:8px}}
@media(max-width:1023px){
 .calendar-table tr{padding:18px;border-radius:12px;margin-block-end:16px;box-shadow:0 3px 12px rgb(0 0 0 / 3%)}
 .calendar-table tbody tr:nth-child(even){background:var(--cando-background-surface)}
 .calendar-table td{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;align-items:baseline;padding-block:9px}
 .calendar-table td::before{line-height:1.9}
 .calendar-table td>time,.calendar-table td>.calendar-modes{justify-self:start}
 .calendar-table .calendar-course{font-size:16px;padding-bottom:16px;margin-bottom:8px}
 .calendar-table td[data-label="شهریه"]{padding:14px 12px;margin-block:10px;background:var(--cando-primary-50);border-radius:8px;grid-template-columns:66px minmax(0,1fr)}
 .calendar-price{flex-wrap:nowrap}
 .calendar-table td:last-child{display:block;padding-top:14px}
 .calendar-table td:last-child::before{display:none}
 .calendar-table td:last-child a{width:100%;min-height:44px}
}
@media(max-width:374px){.calendar-panel{padding:10px}.calendar-table tr{padding:12px}.calendar-table td{grid-template-columns:76px minmax(0,1fr);gap:8px}.calendar-table td[data-label="شهریه"]{display:block}.calendar-table td[data-label="شهریه"]::before{display:block;margin-bottom:6px}}
