/* Shared content-card geometry: safe text insets and equal tracks across rows. */
:root{--edu-card-safe-inset:16px}
/* Keep the whole card legible even when its media fill matches the page background. */
:root{
 --edu-card-border-width:clamp(2px,.12vmin,4px);
 --edu-card-border-color:var(--ev-border,var(--edu-admin-border));
}
@supports(color:color-mix(in srgb,black,white)){
 :root{--edu-card-border-color:color-mix(in srgb,var(--ev-border,var(--edu-admin-border)) 55%,var(--ev-text,var(--edu-admin-ink)) 45%)}
}
html body :is(.edu-admin__card,.calendar-card,.upcoming-day,.forecast-card:not(.station-text .forecast-card),.station-hero,.station-card,.station-day,.hourly-panel,.daily-forecast-panel,.hour-cell,.daily-hour-cell,.metric,.school-card,.page-section,.page-image-box,.sis-item,.sis-week,#edu-card-item),
html body.edu-news-output #news>.card,
html body.edu-wisdom-output .content,
html[data-kiosk-app="documents"] body #browse .tile{
 border:var(--edu-card-border-width) solid var(--edu-card-border-color)!important;
 box-sizing:border-box;
}
html body :is(.edu-admin__card,.calendar-card,.upcoming-day,.forecast-card,.hour-cell,.daily-hour-cell,#edu-card-item){
 box-sizing:border-box;
 padding:max(var(--edu-card-safe-inset),var(--ev-card-pad,16px),calc(var(--ev-card-radius,20px)*.4))!important;
}
html body :is(.app-grid,.system-grid,.upcoming-grid,.forecast-grid,.hourly-grid,.daily-hourly-grid,#edu-card-overview){
 grid-auto-rows:minmax(min-content,1fr)!important;
 align-items:stretch;
}
html body :is(.app-grid,.system-grid,.upcoming-grid,.forecast-grid,.hourly-grid,.daily-hourly-grid,#edu-card-overview)>:is(.card,.edu-admin__card,.upcoming-day,.forecast-card,.hour-cell,.daily-hour-cell,#edu-card-item){
 align-self:stretch;box-sizing:border-box;min-width:0;
}

/* A measured minimum prevents shorter cards in later rows. */
html body :is(.app-grid,.system-grid,.upcoming-grid,.forecast-grid,.hourly-grid,.daily-hourly-grid,#edu-card-overview)>:is(.card,.edu-admin__card,.upcoming-day,.forecast-card,.hour-cell,.daily-hour-cell,#edu-card-item){min-height:var(--edu-card-equal-height,0px)!important}

/* Content starts at the top in every card; card height does not center short text. */
html body :is(.edu-admin__card,.calendar-card,.upcoming-day,.forecast-card,.hour-cell,.daily-hour-cell,#edu-card-item){justify-content:flex-start!important;align-content:start!important}

