.buldo-header{display:flex;justify-content:space-between;align-items:end;gap:20px}.buldo-header h1{font-size:clamp(22px,2vw,34px);margin:7px 0}.buldo-header p{font-size:13px;color:#a9bcc3;margin:0}.buldo-controls{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.buldo-controls label{font-size:12px;color:#dce9ee}.buldo-controls select{background:#142128;color:#fff;border:1px solid #3b5b67;border-radius:5px;padding:8px;margin-left:6px}.buldo-check{display:flex;align-items:center;gap:7px}.buldo-check input{appearance:auto;width:16px;height:16px;min-width:16px;min-height:16px;margin:0;accent-color:#32cee0}.buldo-legend,.buldo-source{font-size:11px;color:#9cb8c2}.buldo-source a{color:#65e9ef}.buldo-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:11px;align-content:start}.buldo-list h2{grid-column:1/-1;margin:16px 0 0;font-size:17px;text-transform:capitalize;color:#e7f7fa}.buldo-card{--buldo-color:#92accb;position:relative;background:linear-gradient(110deg,#17252d,#111b21);border:1px solid #38525d;border-left:4px solid var(--buldo-color);border-radius:8px;padding:11px 13px;min-width:0}.buldo-card-head{display:flex;justify-content:space-between;gap:6px;align-items:start}.buldo-card time{font-size:12px;color:var(--buldo-color);font-weight:800;white-space:nowrap}.buldo-card h3{font-size:15px;line-height:1.3;margin:10px 0 6px}.buldo-details{font-size:11px;color:#d1dee2;line-height:1.55;margin:0 0 9px}.buldo-card a{font-size:11px;color:var(--buldo-color);font-weight:700}.buldo-tags{display:flex;justify-content:flex-end;gap:4px;flex-wrap:wrap}.buldo-tags span{font-size:9px;background:#21343c;border:1px solid #3f5861;padding:2px 5px;border-radius:3px;color:#dcf0f3}.buldo-championship{box-shadow:inset 0 0 0 1px #ffd2715c}.buldo-championship .buldo-tags span:nth-child(2){color:#ffe18a;border-color:#997a37}.buldo-dursin{--buldo-color:#43dfea}.buldo-disco{--buldo-color:#f4a0cb}.buldo-arts{--buldo-color:#bcacff}.buldo-hiphop{--buldo-color:#eaa77d}.buldo-kids{--buldo-color:#92cf8b}.buldo-belal{--buldo-color:#e9c46c}.buldo-day-badges{display:flex;flex-direction:column;gap:3px;margin:4px;flex-shrink:0}.buldo-day-badge{display:block;border-left:3px solid currentColor;border-radius:3px;background:#15303a;color:#a6d7e3;padding:4px 5px;font-size:9px;font-weight:700;line-height:1.2;text-decoration:none;overflow-wrap:anywhere}.buldo-day-badge:hover{text-decoration:underline}.buldo-day-badge.buldo-dursin{background:#0b5460;color:#aaf9ff}.buldo-day-badge.buldo-disco{border-color:#f4a0cb}.buldo-day-badge.buldo-arts{border-color:#bcacff}.buldo-day-badge.buldo-hiphop{border-color:#eaa77d}.buldo-day-badge.buldo-kids{border-color:#92cf8b}.buldo-day-badge.buldo-belal{border-color:#e9c46c}.season-competition-day{position:relative}.season-competition-marker{position:absolute;right:2px;top:2px;font-size:8px;color:#f8d477;text-shadow:0 1px #000}@media(max-width:700px){.viewer-mode .app-navigation{overflow-x:auto;scrollbar-width:thin}.viewer-mode .app-navigation button{flex:0 0 auto;min-width:76px;padding:7px 8px}.mobile-competitions h3{font-size:16px;margin:14px 0 8px}.mobile-competitions .buldo-day-badge{padding:10px;font-size:13px}.buldo-list{grid-template-columns:1fr}.buldo-controls{gap:8px}.buldo-day-badges{margin:3px}}
@media print{.buldo-card{break-inside:avoid;color:#000;background:#fff}.buldo-card h3,.buldo-details{color:#000}.buldo-controls{display:none}.buldo-list{grid-template-columns:repeat(2,1fr)}}
/* BULDO records appear in the regular agenda. Without confirmed rooms/hours they never reserve a lane. */
.buldo-calendar-event.external-event{--buldo-color:#9ab0c3;background:linear-gradient(110deg,#14242b,#17262d);border:1px solid #385763;border-left:4px solid var(--buldo-color);color:#e8f4f7;box-shadow:none}
.buldo-calendar-event.buldo-disco{--buldo-color:#f4a0cb}.buldo-calendar-event.buldo-arts{--buldo-color:#bcacff}.buldo-calendar-event.buldo-hiphop{--buldo-color:#eaa77d}.buldo-calendar-event.buldo-kids{--buldo-color:#92cf8b}.buldo-calendar-event.buldo-belal{--buldo-color:#e9c46c}
.buldo-calendar-event.external-event .event-banner-icon{color:var(--buldo-color)}
.buldo-calendar-event.external-event .event-banner-copy small{color:#b9d0d6}
.buldo-calendar-event.own-event .event-banner-copy small{color:#073744}
.mobile-event-card.buldo-calendar-event.external-event{background:linear-gradient(110deg,#14242b,#17262d);color:#e8f4f7;border:1px solid #385763;border-left:4px solid var(--buldo-color)}
#season-day-dialog .buldo-calendar-event.external-event{background:linear-gradient(110deg,#14242b,#17262d);color:#e8f4f7;border:1px solid #385763;border-left:4px solid var(--buldo-color)}
@media print{.buldo-calendar-event.external-event{background:#fff;color:#111;border-color:var(--buldo-color)}.buldo-calendar-event.external-event .event-banner-copy small{color:#333}}
/* Holiday ribbons must not collapse the date cells when November has several notices. */
.season-calendar-week:has(.season-holiday-ribbon){flex:1 1 0}
.season-multirow .season-month-notes{gap:4px}
.season-multirow .event-note .season-note-event{margin-top:2px;line-height:1.2}
.season-competition-marker.buldo-dursin{color:#053e48}.season-competition-marker.buldo-disco{color:#f4a0cb}.season-competition-marker.buldo-arts{color:#bcacff}.season-competition-marker.buldo-hiphop{color:#eaa77d}.season-competition-marker.buldo-kids{color:#92cf8b}.season-competition-marker.buldo-belal{color:#e9c46c}
@media screen and (max-height:820px) and (min-width:701px){
 .viewer:has(.season-dashboard){overflow:auto}
 .season-dashboard{flex:0 0 auto;min-height:680px;overflow:visible}
 .season-dashboard .viewer-months{height:auto;grid-template-rows:repeat(var(--season-rows,1),minmax(680px,auto))}
 .season-dashboard .viewer-month{min-height:680px}
}
@media screen and (max-width:700px){
 .viewer-mode .app-navigation:has([data-screen=personal]:not([hidden])){flex-wrap:nowrap}
 .viewer-mode .app-navigation [data-screen=personal]{flex-basis:auto;min-width:88px}
}
@media screen and (max-width:700px){.viewer-mode .app-navigation{scrollbar-width:none}.viewer-mode .app-navigation::-webkit-scrollbar{display:none}}
/* A yellow diamond and yellow cards identify competitions away from Dursin; Dursin-hosted events stay cyan. */
.season-legend .season-key-competition{width:auto;height:auto;background:none;border-radius:0;color:#f4cd57;font-size:17px;line-height:12px}
.season-legend .season-key-competition::before{content:'◆'}
.season-competition-marker{color:#ffe073!important;text-shadow:0 1px 2px #000,0 0 3px #000}
.season-week-cells .season-external-day{box-shadow:inset 0 -2px #f4cd57}
.buldo-card:not(.buldo-dursin){--buldo-color:#f4cd57;background:linear-gradient(110deg,#302917,#20231e);border-color:#8a712e;border-left-color:#f4cd57}
.buldo-calendar-event.external-event,.mobile-event-card.buldo-calendar-event.external-event,#season-day-dialog .buldo-calendar-event.external-event{--buldo-color:#f4cd57;background:linear-gradient(115deg,#ffe079,#efbf45);border:1px solid #ffe692;border-left:4px solid #cc9630;color:#382907;box-shadow:inset 0 0 0 1px #b4842466}
.buldo-calendar-event.external-event .event-banner-icon{display:inline-flex;color:#5a420b}
.buldo-calendar-event.external-event .event-banner-copy small{color:#584310!important}
.buldo-day-badge:not(.buldo-dursin){background:#3c331b;color:#ffe079;border-color:#f4cd57}
.buldo-drawer-list{margin:13px 0 8px;border-top:1px solid #4a4a4a;padding-top:10px}
.buldo-drawer-list>summary{cursor:pointer;color:#ffe079;font-size:12px;font-weight:800;margin:0 0 8px}
.buldo-drawer-list .school-event-list-row{padding:8px 0}
@media print{.buldo-calendar-event.external-event,.mobile-event-card.buldo-calendar-event.external-event{background:#ffe079!important;color:#382907!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}}
