/*
 * SAMS Stage0031 C2 R4 — Responsive Contract Rev2
 * PWA-CR-20260821-0787 / 0789 / 0793 / 0796 / 0798 / 0799
 *
 * OWNERSHIP RULE:
 *   Global foundation owns only shrink/overflow/safe-area/touch defaults.
 *   Component geometry is owned by the component selectors below.
 *   This file must not auto-fit every form/card/table or redesign a healthy
 *   desktop component merely because the viewport changed.
 */
:root{
  --sams-touch-target:44px;
  --sams-page-gutter:clamp(10px,2vw,34px);
  --sams-modal-gutter:clamp(10px,3vw,28px);
  --sams-table-cell-x:clamp(10px,1.15vw,16px);
  --sams-overlay-gap:8px;
}
html{inline-size:100%;max-inline-size:100%;text-size-adjust:100%;-webkit-text-size-adjust:100%}
*,*::before,*::after{box-sizing:border-box}
.app-shell,.app-stage,.main-content,#page,.page-header,.card,.reference-panel,.reference-side-card,
.r5-filter-card,.stage31-integrated-list,.stage29-calendar-page,.stage31-integrated-work-page{min-inline-size:0}
.main-content{inline-size:100%;padding-inline:var(--sams-page-gutter)}
#page{inline-size:100%;min-inline-size:0}
#page>*{min-inline-size:0;max-inline-size:100%}
.page-header>*,.actions>*,.reference-dashboard>*,.reference-dashboard-primary>*,.reference-dashboard-side>*{min-inline-size:0}
button,input,select,textarea{max-inline-size:100%;box-sizing:border-box}
select{min-block-size:44px;line-height:1.25;padding-block:0!important}
button,.button,.primary,.secondary,.danger-button{min-block-size:var(--sams-touch-target)}

/* Semantic text that must stay intact. */
.status,.badge,.stage31-source-badge,.board-type-badge,.board-pin-badge,.c3-school-chip,
.stage27-assignee-chip,.reference-status-pill,.entity-id-link,.reference-incident-link,
.r4-sort-control-group,.r4-management-control-group{word-break:keep-all;overflow-wrap:normal;white-space:nowrap}

/* --------------------------------------------------------------------------
 * General Schedule Modal — component-owned geometry.
 * REV1 rule: layout follows field meaning, not a global auto-fit rule.
 * -------------------------------------------------------------------------- */
.stage29-general-dialog{
  width:min(920px,calc(100vw - (2 * var(--sams-modal-gutter))))!important;
  inline-size:min(920px,calc(100vw - (2 * var(--sams-modal-gutter))))!important;
  max-width:920px!important;
  max-inline-size:920px!important;
  max-block-size:calc(100dvh - (2 * var(--sams-modal-gutter)));
  margin:auto;
  padding:0;
  border:0;
  border-radius:20px;
  background:var(--surface-card);
  color:var(--text-primary);
  box-shadow:0 28px 80px rgba(7,24,43,.34);
  overflow:hidden;
}
.stage29-general-dialog::backdrop{background:rgba(8,24,42,.52);backdrop-filter:blur(2px)}
.stage29-general-dialog .stage30-general-schedule-form{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:16px 18px!important;
  width:100%!important;
  inline-size:100%!important;
  max-width:none!important;
  max-inline-size:none!important;
  max-block-size:calc(100dvh - (2 * var(--sams-modal-gutter)))!important;
  padding:24px!important;
  margin:0!important;
  overflow:auto!important;
  overscroll-behavior:contain;
  background:var(--surface-card)!important;
}
.stage29-general-dialog .stage30-general-schedule-form>h2,
.stage29-general-dialog .gs-field-title,
.stage29-general-dialog .gs-field-school,
.stage29-general-dialog .gs-field-schedule,
.stage29-general-dialog .gs-field-assignee,
.stage29-general-dialog .gs-field-assignee-summary,
.stage29-general-dialog .gs-field-description,
.stage29-general-dialog .gs-field-reason,
.stage29-general-dialog .gs-field-actions{grid-column:1 / -1!important}
.stage29-general-dialog .gs-field-project,.stage29-general-dialog .gs-field-type,.stage29-general-dialog .gs-field-status{grid-column:auto!important}
.stage29-general-dialog .stage30-general-schedule-form>*{min-inline-size:0}
.stage29-general-dialog .stage30-general-schedule-form>h2{margin:0 0 2px!important;font-size:24px;line-height:1.25}
.stage29-general-dialog .stage30-general-schedule-form>label{display:grid;gap:7px;align-content:start}
.stage29-general-dialog .stage30-general-schedule-form>label>span:first-child{font-weight:750;line-height:1.35;color:var(--text-secondary)}
.stage29-general-dialog .stage30-general-schedule-form>.actions{display:flex!important;justify-content:flex-end!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important;margin-top:2px!important}
.stage29-general-dialog .stage30-general-schedule-form>.actions>button{inline-size:auto!important;min-inline-size:108px!important;block-size:44px!important;min-block-size:44px!important}
.stage29-general-dialog .stage30-c2-schedule-editor{display:grid;gap:12px;min-inline-size:0;padding:14px;border:1px solid var(--border-default);border-radius:12px;background:var(--surface-subtle)}
.stage29-general-dialog .stage30-c2-schedule-editor .c6-schedule-range{grid-template-columns:repeat(2,minmax(0,1fr));min-inline-size:0}
.stage29-general-dialog .stage27-assignee-selector,.stage29-general-dialog .stage30-c2-general-school-selector{min-inline-size:0;inline-size:100%}
.stage29-general-dialog .r5-selected-summary{min-inline-size:0;margin:0}
.stage29-general-dialog.c2r4-selector-open{overflow:hidden!important}

/* Selector top layer. Keep the popup stable; JS owns anchored width/position. */
.c5-overlay-root{pointer-events:none}
.stage31-selector-popover[popover],dialog[open]>.stage31-selector-popover{
  position:fixed!important;
  margin:0!important;
  box-sizing:border-box!important;
  width:auto;
  min-width:0;
  max-width:calc(100vw - 24px);
  max-height:min(68dvh,640px)!important;
  overflow:hidden!important;
  pointer-events:auto!important;
  background:var(--surface-overlay-solid)!important;
  color:var(--text-primary)!important;
  border:1px solid var(--border-strong)!important;
  border-radius:14px!important;
  box-shadow:var(--overlay-shadow)!important;
  z-index:2147483000!important;
  contain:layout paint;
}
.stage31-selector-popover:popover-open{display:grid!important;visibility:visible!important;opacity:1!important}
.stage31-selector-popover .stage27-assignee-options,
.stage31-selector-popover .c3-school-results{overflow:auto;max-block-size:min(52dvh,480px);overscroll-behavior:contain}
.stage31-selector-popover .school-search-option,.stage31-selector-popover .stage27-assignee-option{min-block-size:44px;pointer-events:auto;scroll-margin-block:6px}

/* --------------------------------------------------------------------------
 * Dashboard notification preview — stable internal geometry.
 * -------------------------------------------------------------------------- */
.reference-alert-list{display:grid;gap:8px}
.reference-alert-item{
  display:grid!important;
  grid-template-columns:42px minmax(0,1fr) auto!important;
  grid-template-areas:"icon copy meta"!important;
  align-items:center!important;
  gap:0 11px!important;
  min-block-size:88px!important;
  block-size:auto!important;
  padding:11px 12px!important;
  overflow:hidden!important;
}
.reference-alert-icon{grid-area:icon;align-self:center}
.reference-alert-copy{grid-area:copy;display:grid!important;grid-template-rows:20px 36px!important;gap:4px!important;min-inline-size:0;align-content:center}
.reference-alert-copy strong{display:block;min-inline-size:0;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;line-height:20px!important}
.reference-alert-copy p{display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden!important;margin:0!important;line-height:18px!important;min-block-size:36px!important;max-block-size:36px!important;word-break:keep-all!important;overflow-wrap:anywhere}
.reference-alert-meta{grid-area:meta;position:static!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:7px!important;align-self:start!important;padding-top:2px!important;min-inline-size:max-content}
.reference-alert-item time{display:inline!important;position:static!important;font-size:12px!important;line-height:18px!important;color:var(--text-meta)!important;white-space:nowrap!important}
.reference-alert-dot{position:static!important;display:inline-block!important;inline-size:7px!important;block-size:7px!important;flex:0 0 7px!important;margin:0!important}

/* --------------------------------------------------------------------------
 * Integrated Work table — header/body use one column model and one alignment.
 * -------------------------------------------------------------------------- */
.stage31-integrated-list{container-type:inline-size;container-name:integrated-list;overflow:hidden}
.stage31-integrated-list>.table-wrap,.stage31-integrated-list .table-wrap{max-inline-size:100%;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
.r3-integrated-table{table-layout:fixed!important;inline-size:100%!important;min-inline-size:1060px}
.r3-integrated-table th,.r3-integrated-table td{box-sizing:border-box!important;vertical-align:middle!important;padding-inline:var(--sams-table-cell-x)!important}
.r3-integrated-table th:nth-child(1),.r3-integrated-table td:nth-child(1),
.r3-integrated-table th:nth-child(2),.r3-integrated-table td:nth-child(2),
.r3-integrated-table th:nth-child(3),.r3-integrated-table td:nth-child(3),
.r3-integrated-table th:nth-child(4),.r3-integrated-table td:nth-child(4),
.r3-integrated-table th:nth-child(5),.r3-integrated-table td:nth-child(5),
.r3-integrated-table th:nth-child(6),.r3-integrated-table td:nth-child(6),
.r3-integrated-table th:nth-child(7),.r3-integrated-table td:nth-child(7),
.r3-integrated-table th:nth-child(8),.r3-integrated-table td:nth-child(8),
.r3-integrated-table th:nth-child(9),.r3-integrated-table td:nth-child(9){text-align:center!important}
.r3-integrated-table th:nth-child(1),.r3-integrated-table td:nth-child(1),
.r3-integrated-table th:nth-child(2),.r3-integrated-table td:nth-child(2),
.r3-integrated-table th:nth-child(3),.r3-integrated-table td:nth-child(3),
.r3-integrated-table th:nth-child(5),.r3-integrated-table td:nth-child(5),
.r3-integrated-table th:nth-child(6),.r3-integrated-table td:nth-child(6),
.r3-integrated-table th:nth-child(7),.r3-integrated-table td:nth-child(7),
.r3-integrated-table th:nth-child(8),.r3-integrated-table td:nth-child(8),
.r3-integrated-table th:nth-child(9),.r3-integrated-table td:nth-child(9){white-space:nowrap!important;word-break:keep-all!important}
.r3-integrated-table td:nth-child(4){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stage31-source-badge{inline-size:max-content;max-inline-size:none;flex:0 0 auto!important}
@container integrated-list (max-width:1080px){
  .r3-integrated-table{table-layout:auto!important;inline-size:max-content!important;min-inline-size:1180px!important}
  .r3-integrated-table col.stage31-col-type{inline-size:118px!important}
  .r3-integrated-table col.stage31-col-number{inline-size:168px!important}
  .r3-integrated-table col.stage31-col-project{inline-size:180px!important}
  .r3-integrated-table col.stage31-col-title{inline-size:230px!important}
  .r3-integrated-table col.stage31-col-school{inline-size:190px!important}
  .r3-integrated-table col.stage31-col-schedule{inline-size:190px!important}
  .r3-integrated-table col.stage31-col-progress{inline-size:120px!important}
  .r3-integrated-table col.stage31-col-status{inline-size:120px!important}
  .r3-integrated-table col.stage31-col-assignee{inline-size:175px!important}
}

/* Classification/reference management — cells own the column; child groups own flex. */
.r1-category-table th:nth-child(5),.r1-category-table td:nth-child(5),
.r1-category-table th:nth-child(6),.r1-category-table td:nth-child(6){text-align:center!important;vertical-align:middle!important;white-space:nowrap!important}
.r1-category-table .r4-sort-cell,.r1-category-table .r4-management-cell{display:table-cell!important}
.r4-sort-control-group,.r4-management-control-group{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:9px!important;margin:0 auto!important;min-block-size:38px}
.r4-sort-control-group .stage29-order-index{min-inline-size:50px!important;text-align:center!important}
.r4-sort-control-group .stage29-order-button{inline-size:76px!important;min-inline-size:76px!important}
.r4-management-control-group>button{min-inline-size:82px!important;min-block-size:36px!important}

/* Donut: populated state has no gray full background track. */
.reference-donut-track:not(.reference-donut-empty-track){display:none!important}
.reference-donut-empty-track{opacity:.30!important;stroke-width:15!important}

/* --------------------------------------------------------------------------
 * Weather Hero / widget — high-resolution campus photo + actual motion layer.
 * -------------------------------------------------------------------------- */
.reference-hero.r3-photo-hero{background-image:var(--r3-sky),var(--r3-photo)!important;background-size:cover!important;background-position:center center!important}
.r3-photo-hero.hero-weather-clear,.r3-photo-hero.hero-weather-fair{--r3-sky:linear-gradient(90deg,rgba(22,112,169,.76),rgba(46,143,190,.38) 58%,rgba(73,166,207,.10))}
.r3-photo-hero.hero-weather-partly_cloudy{--r3-sky:linear-gradient(90deg,rgba(34,100,143,.77),rgba(92,141,164,.36) 60%,rgba(217,230,236,.08))}
.r3-photo-hero.hero-weather-cloudy{--r3-sky:linear-gradient(90deg,rgba(47,80,105,.86),rgba(84,109,122,.52) 58%,rgba(146,159,164,.22))}
.r3-photo-hero.hero-weather-fog{--r3-sky:linear-gradient(90deg,rgba(71,104,123,.77),rgba(155,175,184,.50) 58%,rgba(224,231,232,.26))}
.r3-photo-hero.hero-weather-rain,.r3-photo-hero.hero-weather-sleet{--r3-sky:linear-gradient(90deg,rgba(27,62,88,.91),rgba(50,83,102,.62) 58%,rgba(73,99,112,.28))}
.r3-photo-hero.hero-weather-snow{--r3-sky:linear-gradient(90deg,rgba(62,105,138,.80),rgba(134,162,179,.48) 58%,rgba(232,240,244,.18))}
.r3-photo-hero.hero-weather-thunder{--r3-sky:linear-gradient(90deg,rgba(14,31,52,.94),rgba(38,56,73,.68) 58%,rgba(55,65,78,.30))}
.r3-photo-hero.hero-weather-unknown{--r3-sky:linear-gradient(90deg,rgba(34,93,130,.80),rgba(89,131,153,.43) 58%,rgba(186,204,212,.14))}
.r3-weather-fx{position:absolute!important;inset:0!important;z-index:2!important;overflow:hidden!important;pointer-events:none!important;border-radius:inherit!important;display:block!important;visibility:visible!important;opacity:1!important}
.r4-weather-canvas{position:absolute;inset:0;inline-size:100%!important;block-size:100%!important;pointer-events:none;z-index:2;opacity:.96}
.r4-weather-mist{position:absolute;left:-10%;right:-10%;bottom:-10%;height:48%;z-index:3;background:linear-gradient(180deg,transparent,rgba(220,236,246,.20));filter:blur(16px);animation:r4WeatherMist 7.5s ease-in-out infinite alternate}
.r4-weather-lightning{position:absolute;inset:0;z-index:5;background:rgba(245,250,255,.88);opacity:0;animation:r4WeatherLightning 8.4s steps(1,end) infinite}
.r4-weather-fog-band{position:absolute;left:-18%;right:-18%;height:36%;border-radius:50%;filter:blur(18px);background:linear-gradient(90deg,transparent,rgba(244,249,251,.50),rgba(238,246,249,.28),transparent);opacity:.70}
.r4-weather-fog-band.far{top:20%;animation:r4FogDrift 18s ease-in-out infinite alternate}.r4-weather-fog-band.near{bottom:5%;opacity:.52;animation:r4FogDriftReverse 24s ease-in-out infinite alternate}
.r4-weather-cloud-band{position:absolute;left:-25%;width:150%;height:48%;filter:blur(22px);background:radial-gradient(ellipse at 24% 44%,rgba(240,246,249,.42) 0 13%,transparent 27%),radial-gradient(ellipse at 57% 36%,rgba(220,231,237,.32) 0 17%,transparent 31%),radial-gradient(ellipse at 82% 50%,rgba(235,243,247,.26) 0 13%,transparent 28%)}
.r4-weather-cloud-band.one{top:-10%;animation:r4CloudDrift 28s ease-in-out infinite alternate}.r4-weather-cloud-band.two{top:10%;opacity:.48;animation:r4CloudDriftReverse 38s ease-in-out infinite alternate}
.r4-weather-sun-glow{position:absolute;right:5%;top:-18%;width:58%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,246,181,.48) 0 10%,rgba(255,225,119,.24) 22%,rgba(255,220,114,.08) 40%,transparent 65%);animation:r4SunBreath 8s ease-in-out infinite alternate}
@keyframes r4WeatherMist{from{transform:translate3d(-2%,2%,0);opacity:.55}to{transform:translate3d(3%,-2%,0);opacity:.82}}
@keyframes r4WeatherLightning{0%,80%,82%,84%,100%{opacity:0}80.5%{opacity:.60}81%{opacity:.08}82.6%{opacity:.86}83.1%{opacity:.14}}
@keyframes r4FogDrift{from{transform:translateX(-6%)}to{transform:translateX(7%)}}@keyframes r4FogDriftReverse{from{transform:translateX(8%)}to{transform:translateX(-6%)}}
@keyframes r4CloudDrift{from{transform:translateX(-4%)}to{transform:translateX(6%)}}@keyframes r4CloudDriftReverse{from{transform:translateX(5%)}to{transform:translateX(-5%)}}
@keyframes r4SunBreath{from{transform:scale(.96);opacity:.70}to{transform:scale(1.05);opacity:1}}

/* Weather widget — Golden reference hierarchy, implemented as live DOM not an image. */
.r4-weather-card{
  inline-size:min(410px,100%)!important;padding:18px 19px 15px!important;border:1px solid rgba(255,255,255,.68)!important;
  border-radius:19px!important;background:rgba(248,252,255,.90)!important;box-shadow:0 14px 34px rgba(5,25,46,.16)!important;
  backdrop-filter:blur(14px) saturate(1.08)!important;-webkit-backdrop-filter:blur(14px) saturate(1.08)!important;color:#10243a!important;
}
.r4-weather-primary{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:13px;align-items:center}
.r4-weather-icon{inline-size:64px!important;block-size:64px!important;border:0!important;border-radius:17px!important;background:rgba(255,255,255,.94)!important;color:#1878d1!important;box-shadow:0 6px 16px rgba(31,93,154,.11)!important}
.r4-weather-icon .ui-icon{inline-size:40px!important;block-size:40px!important}
.r4-weather-condition-copy{display:grid;gap:3px;min-inline-size:0}.r4-weather-condition-copy>strong{font-size:1.12rem;line-height:1.2;color:#18334d}.r4-weather-condition-copy>span{font-size:.76rem;color:#6c8094}
.r4-weather-temperature{font-size:3.05rem;line-height:.94;font-weight:850;letter-spacing:-.06em;color:#091f35;white-space:nowrap}
.r4-weather-range{display:grid;grid-template-columns:1fr 1px 1fr;align-items:center;margin:13px 0 11px;padding:0 4px 11px;border-bottom:1px solid rgba(50,78,104,.16)}
.r4-weather-range>span:not(.r4-weather-range-divider){display:flex;justify-content:center;align-items:baseline;gap:7px}.r4-weather-range small{font-size:.72rem;color:#718397}.r4-weather-range strong{font-size:.90rem}
.r4-weather-high strong{color:#df5a67}.r4-weather-low strong{color:#2f78d8}.r4-weather-range-divider{inline-size:1px;block-size:20px;background:rgba(56,83,106,.14)}
.r4-weather-details{display:grid!important;grid-template-columns:1fr 1fr!important;gap:0!important;margin:0!important}
.r4-weather-details>span{display:grid!important;grid-template-columns:25px 1fr!important;align-items:center!important;gap:8px!important;padding:4px 12px!important;font-size:.78rem!important}
.r4-weather-details>span+span{border-left:1px solid rgba(56,83,106,.14)}.r4-weather-details .ui-icon{width:21px!important;height:21px!important;color:#327ed2!important}
.r4-weather-details>span>span{display:grid;gap:1px}.r4-weather-details small{font-size:.69rem;color:#74879a}.r4-weather-details strong{font-size:.84rem;color:#17344f}
.r4-weather-card .r3-weather-attribution{margin-top:8px!important;text-align:right!important;font-size:.61rem!important;color:#8998a8!important}

/* --------------------------------------------------------------------------
 * Board — content-first control sizing. Text must never be clipped vertically.
 * -------------------------------------------------------------------------- */
.board-page{min-inline-size:0}
.board-filter{
  display:grid!important;
  grid-template-columns:minmax(320px,1fr) minmax(176px,210px) max-content max-content!important;
  gap:12px!important;
  align-items:end!important;
}
.board-filter>label{min-inline-size:0}
.board-filter input,.board-filter select{box-sizing:border-box!important;block-size:44px!important;min-block-size:44px!important;line-height:20px!important}
.board-filter input{padding-block:0!important;padding-inline:12px!important}
.board-filter select{min-inline-size:176px!important;padding-block:0!important;padding-left:12px!important;padding-right:42px!important;white-space:nowrap!important;text-overflow:clip!important}
.board-filter .inline-check{min-block-size:44px!important;white-space:nowrap!important}
.board-filter-actions{display:flex!important;grid-column:4;gap:8px!important;flex-wrap:nowrap!important;align-items:end!important}
.board-filter-actions>button{min-inline-size:76px!important;white-space:nowrap!important}
@media(max-width:980px){
  .board-filter{grid-template-columns:minmax(0,1fr) minmax(176px,220px)!important}
  .board-filter>label:nth-child(3),.board-filter-actions{grid-column:auto}
  .board-filter-actions{justify-self:end}
}
@media(max-width:820px){
  .stage29-general-dialog{width:min(760px,calc(100vw - 20px))!important;inline-size:min(760px,calc(100vw - 20px))!important}
  .stage29-general-dialog .stage30-general-schedule-form{grid-template-columns:1fr!important}
  .stage29-general-dialog .stage30-general-schedule-form>*{grid-column:1!important}
}
@media(max-width:700px){
  .board-filter{grid-template-columns:1fr!important}
  .board-filter select{inline-size:100%!important;min-inline-size:0!important}
  .board-filter .inline-check{justify-content:flex-start}
  .board-filter-actions{justify-self:stretch;display:grid!important;grid-template-columns:1fr 1fr!important}
  .board-filter-actions>button{inline-size:100%!important;min-inline-size:0!important}
}

/* Header/actions adapt only when the component itself becomes narrow. */
.page-header{container-type:inline-size;container-name:page-header}
@container page-header (max-width:720px){.page-header{align-items:stretch}.page-header-actions{display:flex!important;flex-wrap:wrap!important}.page-header-actions>button{flex:1 1 160px;width:auto!important}}

@media(max-width:1024px){
  .main-content{padding-inline:clamp(12px,2vw,22px)!important}
  .sidebar{max-inline-size:min(84vw,320px)}
  .r5-dashboard-header>.reference-kpis.r3-hero-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:700px){
  .main-content{padding-inline:10px!important;padding-bottom:max(24px,env(safe-area-inset-bottom))!important}
  .page-header{display:grid!important;grid-template-columns:1fr!important;align-items:start!important;gap:10px!important}
  .stage29-general-dialog{width:calc(100vw - 12px)!important;inline-size:calc(100vw - 12px)!important;max-block-size:calc(100dvh - 12px)!important;border-radius:16px!important}
  .stage29-general-dialog .stage30-general-schedule-form{grid-template-columns:1fr!important;max-block-size:calc(100dvh - 12px)!important;padding:18px 14px!important;gap:15px!important}
  .stage29-general-dialog .stage30-general-schedule-form>*{grid-column:1!important}
  .stage29-general-dialog .stage30-c2-schedule-editor .c6-schedule-range{grid-template-columns:1fr!important}
  .stage29-general-dialog .stage30-general-schedule-form>.actions{display:grid!important;grid-template-columns:1fr 1fr!important}
  .stage29-general-dialog .stage30-general-schedule-form>.actions>button{inline-size:100%!important;min-inline-size:0!important}
  .stage31-selector-popover[popover],dialog[open]>.stage31-selector-popover{left:8px!important;right:8px!important;bottom:max(8px,env(safe-area-inset-bottom))!important;top:auto!important;inline-size:auto!important;max-inline-size:none!important;max-block-size:min(72dvh,620px)!important;border-radius:18px!important}
  .reference-alert-item{grid-template-columns:38px minmax(0,1fr)!important;grid-template-areas:"icon copy" "icon meta"!important;align-items:start!important;min-block-size:92px!important}
  .reference-alert-icon{align-self:start;margin-top:3px}.reference-alert-meta{justify-content:flex-start!important;align-self:end!important;padding-top:3px!important}
  .reference-alert-copy strong{font-size:14px!important}.reference-alert-copy p{font-size:13px!important}
  .r4-weather-card{inline-size:100%!important;padding:16px!important}.r4-weather-primary{grid-template-columns:56px minmax(0,1fr) auto;gap:10px}.r4-weather-icon{inline-size:56px!important;block-size:56px!important}.r4-weather-icon .ui-icon{inline-size:34px!important;block-size:34px!important}.r4-weather-temperature{font-size:2.5rem}.r4-weather-details>span{padding-inline:8px!important}
  .r1-category-result>.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.r1-category-table{min-inline-size:900px!important}
}
@media(max-width:430px){
  .r4-weather-primary{grid-template-columns:52px minmax(0,1fr) auto}.r4-weather-icon{inline-size:52px!important;block-size:52px!important}.r4-weather-temperature{font-size:2.25rem}
}
@media(prefers-reduced-motion:reduce){
  .r4-weather-canvas,.r4-weather-mist,.r4-weather-lightning,.r4-weather-fog-band,.r4-weather-cloud-band,.r4-weather-sun-glow{animation:none!important}
  .r4-weather-canvas{opacity:.35!important}
}

/* ========================================================================== */
/* Stage0031 C2 R5 — shared responsive recovery + approved expansion UI.      */
/* PWA-CR-20260821-0822                                                      */
/* ========================================================================== */

/* Content-sized query actions. The component owns wrapping; controls do not
 * grow merely to consume empty space. */
.r5-date-action-cluster{
  display:flex!important;align-items:end!important;justify-content:flex-start!important;
  gap:10px!important;flex-wrap:wrap!important;min-inline-size:0!important;
}
.r5-date-quick-actions,.r5-date-commit-actions{
  display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important;
  inline-size:auto!important;min-inline-size:0!important;
}
.r5-date-quick-actions>button,.r5-date-commit-actions>button,
.stage21-dashboard-period button{
  inline-size:auto!important;min-inline-size:max-content!important;max-inline-size:100%!important;
  flex:0 0 auto!important;white-space:nowrap!important;
}
.r5-filter-secondary input[type="date"],.stage21-dashboard-period input[type="date"]{
  inline-size:clamp(150px,12rem,190px)!important;min-inline-size:0!important;max-inline-size:100%!important;
}

/* Selected people are owned by the selector. A separate summary is only a
 * compact mirror and never reparents the live selected-state DOM. */
.stage27-assignee-selector{min-inline-size:0!important;inline-size:100%!important}
.stage27-assignee-selector>.stage27-assignee-selected{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-inline-size:0;min-block-size:32px;
}
.stage27-assignee-chip,.r5-selected-chip{
  display:inline-flex;align-items:center;max-inline-size:100%;min-block-size:30px;padding:4px 9px;
  border:1px solid var(--border-default);border-radius:999px;background:var(--surface-subtle);
  color:var(--text-primary);font-size:.82rem;font-weight:750;white-space:nowrap;
}
.stage27-assignee-chip>span{min-inline-size:0;max-inline-size:min(36ch,70vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stage27-assignee-chip>button{min-inline-size:26px!important;min-block-size:26px!important;padding:0 4px!important;margin-inline-start:4px}
.r5-selected-summary{
  display:flex!important;align-items:flex-start!important;gap:8px!important;flex-wrap:wrap!important;
  margin:2px 0 0!important;padding:0!important;border:0!important;background:transparent!important;
  min-inline-size:0!important;
}
.r5-selected-summary>strong{padding-top:5px!important;font-size:.78rem;color:var(--text-muted);white-space:nowrap}
.r5-selected-summary-chips{display:flex;flex:1 1 220px;min-inline-size:0;flex-wrap:wrap;gap:6px;align-items:center}
.r5-selected-summary-empty{display:inline-flex;align-items:center;min-block-size:30px}
.stage29-general-dialog .gs-field-assignee-summary{grid-column:1/-1!important}

/* Common selector popovers: width is anchored by available space, never by a
 * page-specific fixed giant width. */
.stage31-selector-popover[popover],.c5-overlay-root>.stage31-selector-popover{
  inline-size:auto;min-inline-size:0;
  max-inline-size:calc(100vw - 24px);
}
.stage27-assignee-popover-head,.c5-school-search-popover-head{min-inline-size:0;gap:8px}
.stage27-assignee-popover-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.stage27-assignee-popover-actions>button{inline-size:auto!important;min-inline-size:max-content!important}

/* Calendar: the central axis belongs to previous/current/next only. Today is
 * a secondary action and therefore must not shift the month title. */
.r5-calendar-heading{display:grid!important;justify-items:center!important;gap:8px!important;inline-size:100%!important}
.r5-calendar-nav-shell{
  position:relative;display:grid!important;grid-template-columns:1fr auto 1fr!important;
  align-items:center!important;inline-size:min(100%,760px)!important;min-inline-size:0!important;
}
.r5-calendar-primary-nav{
  grid-column:2!important;display:grid!important;grid-template-columns:auto minmax(150px,max-content) auto!important;
  align-items:center!important;justify-content:center!important;gap:12px!important;min-inline-size:0!important;
}
.r5-calendar-primary-nav .stage31-calendar-month-title{text-align:center!important;white-space:nowrap!important}
.r5-calendar-today{grid-column:3!important;justify-self:start!important;margin-inline-start:12px!important;inline-size:auto!important;min-inline-size:max-content!important}
.r5-calendar-heading>.r3-calendar-visible-range{justify-self:center!important;text-align:center!important;margin:0!important;white-space:normal!important}

/* AttachmentPicker: controls keep their content size, file text owns the
 * remaining space, and narrow layouts stack monotonically. */
.c6-attachment-upload-row,.c7-attachment-container{container-type:inline-size;min-inline-size:0!important;max-inline-size:100%!important}
.c6-attachment-upload-row{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:10px!important;align-items:center!important;
}
.c6-attachment-picker,.c6-attachment-picker:has(.c6-file-camera){
  display:grid!important;grid-template-columns:max-content max-content minmax(0,1fr)!important;
  gap:8px!important;align-items:center!important;min-inline-size:0!important;max-inline-size:100%!important;
}
.c6-attachment-picker:not(:has(.c6-file-camera)){grid-template-columns:max-content minmax(0,1fr)!important}
.c6-file-choose,.c6-file-camera,.c6-attachment-upload-action{inline-size:auto!important;min-inline-size:max-content!important;white-space:nowrap!important}
.c6-file-name{inline-size:100%!important;min-inline-size:0!important;max-inline-size:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.attachment-row,.board-attachment-row,.stage21-intake-file{min-inline-size:0!important;max-inline-size:100%!important}
.attachment-row>div:first-child,.board-attachment-row>a,.stage21-intake-file>div{min-inline-size:0!important}
.attachment-row strong,.board-attachment-row a,.stage21-intake-file strong{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;max-inline-size:100%!important}
.attachment-row>.actions,.board-attachment-row>.actions{flex:0 0 auto!important;flex-wrap:wrap!important;justify-content:flex-end!important}
@container (max-width:560px){
  .c6-attachment-upload-row{grid-template-columns:1fr!important}
  .c6-attachment-upload-action{justify-self:start!important}
}
@container (max-width:420px){
  .c6-attachment-picker,.c6-attachment-picker:has(.c6-file-camera),.c6-attachment-picker:not(:has(.c6-file-camera)){grid-template-columns:1fr 1fr!important}
  .c6-file-name{grid-column:1/-1!important}
  .c6-file-choose,.c6-file-camera,.c6-attachment-upload-action{inline-size:100%!important;min-inline-size:0!important}
  .attachment-row,.board-attachment-row{align-items:flex-start!important;flex-direction:column!important}
  .attachment-row>.actions,.board-attachment-row>.actions{inline-size:100%!important;justify-content:flex-start!important}
}

/* Weather Hero: campus photograph remains canonical; weather layers visibly
 * replace the baked clear-day sky signal for non-clear conditions. */
.r3-photo-hero{--r3-photo:url('/assets/hero-campus.jpg?v=stage31-c2-r7')!important}
.r3-photo-hero.hero-weather-clear,.r3-photo-hero.hero-weather-fair,
.r3-photo-hero.hero-weather-partly_cloudy,.r3-photo-hero.hero-weather-cloudy,
.r3-photo-hero.hero-weather-fog,.r3-photo-hero.hero-weather-rain,
.r3-photo-hero.hero-weather-sleet,.r3-photo-hero.hero-weather-snow,
.r3-photo-hero.hero-weather-thunder,.r3-photo-hero.hero-weather-unknown{
  --r3-photo:url('/assets/hero-campus.jpg?v=stage31-c2-r7')!important;
}
.r3-weather-fx::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none}
.weather-fx-partly_cloudy::before{
  background:radial-gradient(circle at 87% 8%,rgba(168,194,208,.96) 0 8%,rgba(153,184,201,.72) 12%,transparent 22%),
             linear-gradient(180deg,rgba(105,151,177,.20),transparent 58%);
}
.weather-fx-cloudy::before{
  background:radial-gradient(circle at 87% 8%,rgba(116,138,151,.98) 0 9%,rgba(116,138,151,.80) 14%,transparent 26%),
             linear-gradient(180deg,rgba(62,82,96,.56),rgba(78,96,107,.24) 60%,transparent 100%);
}
.weather-fx-fog::before{
  background:radial-gradient(circle at 87% 8%,rgba(193,207,214,.98) 0 10%,rgba(193,207,214,.82) 15%,transparent 28%),
             linear-gradient(180deg,rgba(188,205,214,.48),rgba(221,231,235,.28) 72%,transparent 100%);
}
.weather-fx-rain::before,.weather-fx-sleet::before{
  background:radial-gradient(circle at 87% 8%,rgba(66,84,98,.98) 0 10%,rgba(66,84,98,.84) 15%,transparent 28%),
             linear-gradient(180deg,rgba(27,48,64,.58),rgba(43,68,83,.32) 70%,transparent 100%);
}
.weather-fx-snow::before{
  background:radial-gradient(circle at 87% 8%,rgba(173,193,205,.99) 0 10%,rgba(173,193,205,.84) 15%,transparent 28%),
             linear-gradient(180deg,rgba(122,154,174,.38),rgba(210,225,233,.26) 72%,transparent 100%);
}
.weather-fx-thunder::before{
  background:radial-gradient(circle at 87% 8%,rgba(36,45,57,.99) 0 10%,rgba(36,45,57,.90) 15%,transparent 30%),
             linear-gradient(180deg,rgba(13,25,39,.72),rgba(27,43,56,.42) 72%,transparent 100%);
}
.r4-weather-cloud-band,.r4-weather-fog-band,.r4-weather-sun-glow,.r4-weather-canvas,.r4-weather-mist,.r4-weather-lightning{z-index:2!important}

/* R5 expansion pages. */
.r5-planner-page,.r5-general-notices-page,.r5-ops-page,.r5-dynamic-board-page,.r5-custom-page,.r5-qr-intake-page{display:grid;gap:16px;min-inline-size:0}
.r5-toolbar,.r5-ops-tabs,.r5-inline-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-inline-size:0}
.r5-toolbar>button,.r5-ops-tabs>button,.r5-inline-actions>button,.r5-inline-actions>a{inline-size:auto!important;min-inline-size:max-content!important}
.r5-table-wrap{max-inline-size:100%;overflow:auto;-webkit-overflow-scrolling:touch}
.r5-table{inline-size:100%;border-collapse:collapse}.r5-table th,.r5-table td{padding:10px 12px;border-bottom:1px solid var(--border-default);vertical-align:middle}.r5-table th{text-align:left;color:var(--text-secondary);font-size:.82rem}
.r5-custom-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;min-inline-size:0}.r5-custom-widget{grid-column:span var(--r5-span,12);min-inline-size:0}.r5-widget-kpi{display:block;font-size:2rem;line-height:1.1}
.r5-builder-widgets{display:grid;gap:10px}.r5-builder-widget{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid var(--border-default);border-radius:12px;background:var(--surface-subtle)}
.r5-builder-widget[draggable="true"]{cursor:grab}.r5-builder-widget input,.r5-builder-widget select,.r5-builder-widget textarea{min-inline-size:0}
.r5-notice-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;padding:14px 0;border-bottom:1px solid var(--border-default)}
.r5-notice-row:last-child{border-bottom:0}.r5-notice-meta{display:flex;gap:8px;flex-wrap:wrap;color:var(--text-muted);font-size:.78rem}.r5-notice-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}
.r5-qr-intake-card{max-inline-size:720px;justify-self:center;inline-size:100%}

@media(max-width:780px){
  .r5-calendar-nav-shell{grid-template-columns:1fr!important;gap:8px!important;justify-items:center!important}
  .r5-calendar-primary-nav{grid-column:1!important;grid-template-columns:auto minmax(120px,1fr) auto!important;inline-size:100%!important}
  .r5-calendar-today{grid-column:1!important;justify-self:center!important;margin-inline-start:0!important}
  .r5-custom-grid{grid-template-columns:1fr}.r5-custom-widget{grid-column:1!important}
  .r5-builder-widget{grid-template-columns:1fr}
  .r5-filter-secondary input[type="date"],.stage21-dashboard-period input[type="date"]{inline-size:100%!important}
}


/* REV4: PWA-CR-20260822-0831/0832 global Common Responsive Component contract
   withdrawn by the user. Business-specific layout fixes live with their owning
   feature styles; no page-wide/container auto-normalization is retained here. */

/* REV4: withdrawn R7 common responsive component contract removed. */

/* Stage0031 C2 R7 permission scope controls */
.r7-permission-row{display:grid;grid-template-columns:minmax(15rem,1fr) minmax(8rem,.45fr) minmax(9rem,.55fr) auto;align-items:center;gap:.75rem;padding:.7rem .25rem;border-bottom:1px solid var(--border,#dbe4ee)}
.r7-permission-copy{display:grid;gap:.15rem;min-width:0}
.r7-permission-copy small{overflow-wrap:anywhere}
.r7-permission-effect,.r7-permission-scope{min-width:0;width:100%}
.r7-scope-school-button{white-space:nowrap}
@media (max-width:760px){.r7-permission-row{grid-template-columns:1fr 1fr}.r7-permission-copy{grid-column:1/-1}.r7-scope-school-button{grid-column:1/-1;justify-self:start}}
@media (max-width:480px){.r7-permission-row{grid-template-columns:1fr}.r7-permission-copy,.r7-scope-school-button{grid-column:auto}}

/* REV4: rejected global responsive auto-ownership rules removed. */

/* R7 final action sizing overrides: actions size to content unless the component semantics require otherwise. */
.page-header-actions{inline-size:auto!important;max-inline-size:100%!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:var(--sams-space-2,.5rem)!important;flex-wrap:wrap!important}
.page-header-actions>button,.page-header-actions>a{inline-size:auto!important;min-inline-size:max-content!important;max-inline-size:100%!important;flex:0 0 auto!important}
@container page-header (max-width:720px){
  .page-header{align-items:flex-start!important}
  .page-header-actions{inline-size:auto!important;align-self:flex-start!important;justify-content:flex-start!important}
  .page-header-actions>button,.page-header-actions>a{inline-size:auto!important;flex:0 1 auto!important}
}
@media(max-width:760px){
  .r1-category-toolbar.admin-list-toolbar,.r1-category-toolbar{grid-template-columns:minmax(0,1fr) minmax(120px,160px) auto!important;align-items:end!important}
  .r1-category-toolbar>.admin-add-button,.r1-category-toolbar>button:last-child{inline-size:auto!important;min-inline-size:max-content!important;justify-self:end!important}
}
@media(max-width:520px){
  .r1-category-toolbar.admin-list-toolbar,.r1-category-toolbar{grid-template-columns:1fr!important}
  .r1-category-toolbar>.admin-add-button,.r1-category-toolbar>button:last-child{inline-size:auto!important;min-inline-size:max-content!important;justify-self:start!important}
  .audit-filter-grid>.audit-actions.r6-filter-actions{justify-content:flex-start!important}
  .audit-actions.r6-filter-actions>.audit-export-button{flex-basis:auto!important;inline-size:auto!important;min-inline-size:max-content!important}
}
