/* PWA Stage 0017 — official visual-reference dashboard rebuild + export UX */
[hidden]{display:none!important}
:root{
  --bg:#f4f6fa;
  --surface:#ffffff;
  --surface-soft:#f8fafc;
  --text:#10213a;
  --muted:#6c7a8e;
  --line:#e3e8ef;
  --nav:#081b32;
  --nav-2:#0b2748;
  --nav-text:#d9e4f0;
  --brand:#315ff0;
  --brand-2:#6846ef;
  --danger:#ef4e55;
  --warning:#f39a21;
  --success:#2ea962;
  --info:#347cf3;
  --shadow:0 12px 34px rgba(28,48,77,.07);
  --shadow-soft:0 5px 18px rgba(28,48,77,.045);
  --radius:18px;
  --radius-sm:12px;
  --sidebar:clamp(270px,17vw,340px);
  --topbar:84px;
  font-family:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html{min-width:320px;scroll-behavior:smooth;scrollbar-gutter:stable}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-size:16px;line-height:1.58;letter-spacing:-.022em}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.52}
a{color:var(--brand)}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid rgba(49,95,240,.22);outline-offset:2px}
#main-content:focus{outline:none}
.skip-link{position:fixed;left:.8rem;top:-5rem;z-index:9999;background:#fff;color:#111;padding:.7rem 1rem;border-radius:.6rem;box-shadow:var(--shadow)}
.skip-link:focus{top:.8rem}
.muted{color:var(--muted)}
.eyebrow{margin:0 0 .35rem;text-transform:uppercase;letter-spacing:.1em;font-size:13px;color:#4f6f9b;font-weight:700}
.grid{display:grid;gap:1rem}.stack{display:grid;gap:1rem}
.ui-icon,.brand-icon,.avatar-icon,.install-phone-icon,.install-bell-icon,.profile-chevron{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}

/* Login — preserve established secure-login behavior. */
.auth-page{min-height:100vh;padding:clamp(1rem,4vw,3rem);background:radial-gradient(circle at 15% 15%,#dbeafe 0,transparent 30%),linear-gradient(135deg,#edf3fb 0,#f8fafc 48%,#eef2ff 100%);display:grid;place-items:center}
.auth-shell{width:min(1120px,100%);min-height:min(720px,calc(100vh - 3rem));display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);background:#fff;border:1px solid rgba(148,163,184,.28);border-radius:28px;overflow:hidden;box-shadow:0 26px 80px rgba(14,38,73,.14)}
.auth-brand-panel{position:relative;padding:clamp(2rem,4vw,4rem);color:#fff;background:linear-gradient(145deg,rgba(7,25,49,.96),rgba(16,49,86,.94)),url('/assets/hero-school.svg') center/cover;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
.auth-brand-panel:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(88,116,255,.45),transparent 68%);right:-110px;bottom:-120px;pointer-events:none}
.auth-brand-lockup,.auth-card-heading{display:flex;align-items:center;gap:1rem}.auth-brand-lockup h1{font-size:1.25rem;margin:0}.auth-brand-panel .eyebrow{color:#9fc6f7}
.brand-shield{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(223,235,248,.48);background:rgba(255,255,255,.035);box-shadow:inset 0 0 0 5px rgba(255,255,255,.025);color:#e8f0fa;flex:0 0 auto}.brand-shield.small{width:52px;height:52px}.brand-icon{width:28px;height:28px;stroke-width:1.55}.brand-shield.small .brand-icon{width:27px;height:27px}
.auth-brand-copy{position:relative;z-index:1;max-width:540px}.auth-chip{display:inline-flex;padding:.4rem .7rem;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);border-radius:999px;font-size:13px;font-weight:700}.auth-brand-copy h2{margin:1.2rem 0 .9rem;font-size:clamp(2rem,4vw,3.4rem);line-height:1.15;letter-spacing:-.04em}.auth-brand-copy p{margin:0;max-width:500px;color:#d9e7f7;line-height:1.75}
.auth-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;position:relative;z-index:1}.auth-feature-grid div{padding:1rem;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.07);border-radius:16px;display:grid;gap:.25rem}.auth-feature-grid strong{font-size:13px;color:#92b9ee}.auth-feature-grid span{font-weight:700}
.auth-form-panel{display:grid;place-items:center;padding:clamp(1.5rem,4vw,4rem);background:linear-gradient(#fff,#fbfcfe)}.auth-card{width:min(100%,430px)}.auth-card-heading{margin-bottom:1.7rem}.auth-card-heading h2{font-size:2rem;margin:.05rem 0 .25rem;letter-spacing:-.03em}.auth-card-heading p{margin:.2rem 0}.auth-card-icon{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,#eaf1ff,#f0ebff);display:grid;place-items:center;color:var(--brand-2);font-size:1.2rem;font-weight:900}
.stack label{display:grid;gap:.45rem;font-weight:700;color:#27364a}.stack input{min-height:50px}.auth-submit{min-height:52px;margin-top:.25rem;background:linear-gradient(90deg,#2563eb,#6b4df8)}.security-note{margin-top:1.3rem;padding:1rem 1.1rem;border-radius:14px;background:#f6f8fb;border:1px solid var(--line);display:grid;gap:.2rem;font-size:14px}.security-note span{color:var(--muted)}.form-message{min-height:1.3rem;color:var(--danger);margin:.8rem 0 0;font-size:14px}

/* Application shell — full viewport usage, no desktop max-width dead zone. */
.app-shell{min-height:100vh;width:100%;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);background:var(--bg)}
.app-stage{min-width:0;min-height:100vh;display:flex;flex-direction:column}
.sidebar{position:sticky;top:0;height:100vh;padding:31px 24px 22px;background:radial-gradient(circle at 40% 100%,rgba(34,91,158,.17),transparent 28%),linear-gradient(180deg,#06192e 0%,#09213d 56%,#081b32 100%);color:var(--nav-text);display:flex;flex-direction:column;justify-content:space-between;gap:20px;overflow:auto;z-index:50}
.sidebar-brand{display:flex;align-items:center;gap:12px;padding:3px 3px 25px;border-bottom:1px solid rgba(255,255,255,.07);margin-bottom:24px;min-width:0}
.sidebar-brand>div{min-width:0}.sidebar-brand strong{display:block;color:#fff;font-size:18px;font-weight:800;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-brand span{display:block;color:#aab9ca;font-size:13px;line-height:1.45;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-pwa-badge{display:inline-flex!important;width:auto!important;margin-left:5px!important;padding:2px 6px;border-radius:999px;background:#5b55f5;color:#fff!important;font-size:11px!important;font-style:normal;font-weight:800;vertical-align:middle}
.nav-stack{display:grid;gap:8px}.nav-item{width:100%;min-height:54px;border:0;background:transparent;color:#cbd7e5;padding:0 15px;border-radius:11px;display:flex;align-items:center;gap:15px;font-size:15.5px;font-weight:700;text-align:left;transition:background .16s,color .16s,transform .16s}.nav-item:hover,.nav-item:focus-visible{background:rgba(255,255,255,.07);color:#fff}.nav-item.active{background:linear-gradient(100deg,#365df4,#7044ec);color:#fff;box-shadow:0 12px 25px rgba(63,69,224,.27)}
.nav-icon{width:29px;height:29px;border-radius:8px;display:grid;place-items:center;flex:0 0 auto;color:#adbed0;background:transparent}.nav-icon .ui-icon{width:22px;height:22px;stroke-width:1.75}.nav-item[data-route="dashboard"] .nav-icon,.nav-item[data-route="incidents"] .nav-icon,.nav-item[data-route="new"] .nav-icon,.nav-item[data-route="notifications"] .nav-icon,.nav-item[data-route="admin"] .nav-icon{color:#adbed0;background:transparent}.nav-item.active .nav-icon{color:#fff;background:transparent}
.nav-badge{margin-left:auto;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:#ef4444;color:#fff;display:grid;place-items:center;font-size:12px;font-weight:900}
.sidebar-bottom{display:grid;gap:14px}.sidebar-install-card{position:relative;min-height:210px;padding:17px 14px 14px;border:1px solid rgba(255,255,255,.12);border-radius:15px;background:linear-gradient(150deg,rgba(255,255,255,.09),rgba(255,255,255,.035));overflow:hidden}.sidebar-install-copy{position:relative;z-index:2;width:66%}.sidebar-install-card strong{display:block;color:#fff;font-size:15px}.sidebar-install-card p{margin:8px 0 0;color:#b3c1d1;font-size:14px;line-height:1.58}.install-visual{position:absolute;right:10px;top:60px;width:78px;height:100px;border-radius:15px 15px 12px 12px;border:3px solid #d8e8ff;background:linear-gradient(155deg,#2e74e8,#4f8ee9 58%,#7b69f2);transform:rotate(4deg);display:grid;place-items:center;color:#fff;box-shadow:0 12px 24px rgba(0,0,0,.18)}.install-phone-icon{width:34px;height:34px}.install-bell-icon{position:absolute;right:-7px;bottom:3px;width:30px;height:30px;color:#ffc64f;filter:drop-shadow(0 4px 6px rgba(0,0,0,.25));fill:rgba(255,196,62,.12)}
.sidebar-install-button{position:absolute;left:14px;right:14px;bottom:13px;min-height:43px;border:1px solid rgba(75,133,235,.55);background:#174d94;color:#fff;border-radius:8px;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px}.sidebar-install-button .ui-icon{width:17px;height:17px}.sidebar-install-button:hover{background:#1b5aab}
.sidebar-footer{display:grid;gap:4px;padding:0 3px;color:#8fa4bb;font-size:12.5px;line-height:1.5}.pwa-status{font-weight:700;color:#dbeafe}

.topbar{height:var(--topbar);position:sticky;top:0;z-index:40;background:rgba(255,255,255,.97);backdrop-filter:blur(16px);border-bottom:1px solid #e7ebf1;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,2.4vw,42px);gap:18px}
.topbar-main,.topbar-actions,.welcome-copy{display:flex;align-items:center}.welcome-copy{gap:10px}.welcome-copy strong{font-size:16px;font-weight:800;color:#17253a}.role-chip{font-size:13.5px;font-weight:700;color:#6449db;background:#f0ebff;padding:5px 9px;border-radius:999px}.topbar-actions{gap:15px}.network-state{display:none}.network-state.offline{display:inline-flex;font-size:13px;font-weight:700;color:#b42318;background:#fff0ee;padding:6px 10px;border-radius:999px}
.topbar-icon-button,.topbar-install-action,.profile-menu-toggle{border:0;background:transparent;color:#22334c}.topbar-icon-button{position:relative;width:42px;height:42px;border-radius:10px;display:grid;place-items:center}.topbar-icon-button .ui-icon{width:24px;height:24px;color:#314665}.topbar-icon-button:hover,.topbar-install-action:hover,.profile-menu-toggle:hover{background:#f6f8fb}.badge{position:absolute;right:0;top:-2px;min-width:21px;height:21px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;padding:0 5px;border:2px solid #fff}
.topbar-install-action{min-height:42px;padding:0 12px;border-radius:10px;display:flex;align-items:center;gap:9px;font-size:15px;font-weight:700}.topbar-install-action .ui-icon{width:22px;height:22px}.topbar-divider{width:1px;height:31px;background:#e1e6ed;margin:0 1px}.profile-menu-wrap{position:relative}.profile-menu-toggle{min-height:54px;padding:4px 7px;display:flex;align-items:center;gap:10px;border-radius:12px;text-align:left}.avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;color:#1c3555;background:linear-gradient(145deg,#e6edf8,#d5dfef);flex:0 0 auto}.avatar-icon{width:26px;height:26px;stroke-width:1.7}.user-chip-copy{display:grid;gap:1px;min-width:92px}.user-chip-copy strong{font-size:15px;color:#14243a}.user-chip-copy small{font-size:13px;color:#738198}.profile-chevron{width:17px;height:17px;color:#45566d}.profile-menu{position:absolute;right:0;top:60px;width:150px;padding:7px;border:1px solid var(--line);background:#fff;border-radius:11px;box-shadow:0 18px 38px rgba(15,31,51,.14)}.profile-menu button{width:100%;min-height:39px;border:0;border-radius:8px;background:transparent;color:var(--text-secondary);text-align:left;padding:0 12px;font-size:14px;font-weight:700}.profile-menu button:hover{background:var(--surface-hover);color:var(--text-primary)}
.mobile-only{display:none}

.main-content{width:100%;max-width:none;margin:0;padding:18px clamp(22px,2.1vw,34px) 34px;min-width:0;flex:1}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:18px}.dashboard-header-hidden{display:none}.page-header-copy h1{margin:0;font-size:26px;letter-spacing:-.035em}.page-header-copy p{margin:5px 0 0;color:var(--muted);font-size:15px;line-height:1.55}

/* Shared controls and non-dashboard pages. */
input,select,textarea{width:100%;padding:.74rem .82rem;border:1px solid #dbe3ee;border-radius:10px;background:#fff;color:var(--text);transition:border-color .15s,box-shadow .15s}input:hover,select:hover,textarea:hover{border-color:#b8c6d8}input:focus,select:focus,textarea:focus{border-color:#7ca4ff;box-shadow:0 0 0 4px rgba(37,99,235,.08);outline:0}textarea{min-height:8rem;resize:vertical}
.primary,.secondary,.danger{border-radius:10px;padding:.72rem 1rem;border:1px solid transparent;font-weight:700}.primary{background:linear-gradient(90deg,#315ff0,#6846ef);color:#fff;box-shadow:0 6px 16px rgba(37,99,235,.16)}.primary:hover{filter:brightness(.98);transform:translateY(-1px)}.secondary{background:#fff;color:#334155;border-color:#dbe3ee}.secondary:hover{background:#f8fafc}.danger{background:#fff1f1;color:#b42318;border-color:#fecaca}.compact{padding:.5rem .74rem;font-size:14px}.actions{display:flex;gap:.55rem;flex-wrap:wrap}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.1rem;box-shadow:var(--shadow-soft)}.card h2{margin:.1rem 0 .9rem;font-size:18px;letter-spacing:-.02em}.card h3{margin:1.1rem 0 .55rem;font-size:16px}.empty{padding:2.6rem 1rem;text-align:center;border:1px dashed #ccd7e5;background:#fbfcfe;color:var(--muted);border-radius:14px;font-size:15px}.toolbar{display:flex;gap:.6rem;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:1rem}.toolbar select{max-width:220px;background:#fff}.table-wrap{overflow:auto;border:1px solid var(--border-default);border-radius:14px;background:var(--surface-card)}table{width:100%;border-collapse:collapse;min-width:720px}th,td{text-align:left;padding:.78rem .74rem;border-bottom:1px solid #edf1f5;vertical-align:middle}th{font-size:14px;color:var(--text-muted);background:var(--table-head-bg);font-weight:700;white-space:nowrap}td{font-size:15px;background:transparent}tbody tr{background:var(--row-surface)}tbody tr:hover{background:var(--row-hover-surface)}tr:last-child td{border-bottom:0}.link-button{border:0;background:none;color:#2d64c8;padding:0;text-align:left;font-weight:700}.status{display:inline-flex;align-items:center;padding:.3rem .58rem;border-radius:999px;font-size:13px;font-weight:700;background:var(--surface-soft);color:var(--text-secondary);white-space:nowrap}.status.RECEIVED{color:var(--status-info-text);background:var(--status-info-bg)}.status.ASSIGNED{color:var(--brand-text);background:var(--brand-soft)}.status.IN_PROGRESS{color:var(--status-warning-text);background:var(--status-warning-bg)}.status.RESOLVED,.status.USER_CONFIRMED{color:var(--status-success-text);background:var(--status-success-bg)}.status.CLOSED{color:var(--text-secondary);background:var(--surface-soft)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.form-grid label,.stack label{display:grid;gap:.42rem;font-size:15px;font-weight:700;color:#405066}.span-2{grid-column:1/-1}.detail-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(270px,1fr);gap:1rem}.meta-list{display:grid;grid-template-columns:8.5rem 1fr;gap:.58rem 1rem;margin:0}.meta-list dt{color:#7b8798;font-size:14px}.meta-list dd{margin:0;font-size:15px;word-break:break-word}.timeline{display:grid;gap:.75rem}.timeline-item{position:relative;border-left:2px solid #c9d9f2;padding:.15rem 0 .2rem 1rem}.timeline-item:before{content:"";position:absolute;left:-5px;top:.35rem;width:8px;height:8px;border-radius:50%;background:#3b82f6}.timeline-item p{margin:.25rem 0;font-size:15px}.timeline-item small{color:var(--muted);font-size:13px}.attachment-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.75rem 0;border-bottom:1px solid #edf1f5}.attachment-row:last-child{border-bottom:0}
.notification-list{display:grid;gap:.7rem}.notification{background:#fff;border:1px solid var(--line);border-radius:14px;padding:.95rem 1rem}.notification.unread{border-left:4px solid #2f80ed}.notification-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.35rem}.notification-head small{color:var(--muted);font-size:13px}.toast{position:fixed;right:1rem;bottom:1rem;z-index:100;background:#102038;color:#fff;border-radius:12px;padding:.85rem 1rem;box-shadow:0 14px 30px rgba(15,23,42,.24);max-width:min(28rem,calc(100vw - 2rem))}
.list-page,.intake-page,.notification-page{display:grid;gap:1rem}.intake-card{padding:1.2rem}.push-panel{background:linear-gradient(135deg,#f8fbff,#faf8ff);border-color:#dfe6f2}.push-panel>strong{font-size:17px}.push-panel .actions{margin-top:.9rem}.page-header>.status{margin-bottom:.15rem}

/* Stage 0014 official-reference dashboard. */
.reference-dashboard{width:100%;display:grid;grid-template-columns:minmax(0,1fr) clamp(340px,24vw,410px);gap:18px;align-items:start}
.reference-dashboard-primary,.reference-dashboard-side{min-width:0;display:grid;gap:16px;align-content:start}
.reference-hero{position:relative;isolation:isolate;min-height:366px;padding:35px 26px 20px;border-radius:17px;overflow:hidden;color:#fff;background-image:linear-gradient(90deg,rgba(30,115,165,.82) 0%,rgba(43,131,181,.50) 47%,rgba(31,93,132,.16) 76%,rgba(16,55,82,.10) 100%),url('/assets/hero-campus.jpg');background-size:cover;background-position:center 53%;box-shadow:0 14px 32px rgba(35,83,117,.13)}
.reference-hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(0,31,51,.06))}
.reference-hero-top{display:flex;justify-content:space-between;gap:25px;padding:0 7px;position:relative;z-index:2}
.reference-hero-message{max-width:620px}.reference-hero-message h1{white-space:pre-line;margin:0;color:#fff;font-size:34px;line-height:1.25;letter-spacing:-.045em;font-weight:800;text-shadow:0 2px 5px rgba(0,44,71,.13)}.reference-hero-message p{margin:16px 0 0;max-width:560px;color:#eefaff;font-size:15px;line-height:1.65;font-weight:500}
.reference-hero-meta{min-width:190px;display:flex;flex-direction:column;align-items:flex-end;text-align:right;color:#fff}.reference-hero-date{font-size:13px;font-weight:700;color:#f0f9ff}.reference-hero-time{margin-top:6px;font-size:50px;line-height:1;font-weight:800;letter-spacing:-.055em;font-variant-numeric:tabular-nums;text-shadow:0 2px 5px rgba(0,44,71,.12)}.reference-hero-live{margin-top:13px;display:flex;align-items:center;gap:9px}.reference-hero-live>.ui-icon{width:29px;height:29px;color:#fff}.reference-hero-live>div{display:grid;gap:1px;text-align:left}.reference-hero-live strong{font-size:14px}.reference-hero-live span{font-size:13px;color:#eaf6fc}
.reference-kpis{position:absolute;left:16px;right:16px;bottom:14px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;z-index:3}
.reference-kpi{min-width:0;min-height:120px;padding:15px 14px;border:1px solid rgba(255,255,255,.75);border-radius:14px;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);box-shadow:0 10px 24px rgba(20,60,89,.10);display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:start;color:#13243b}.reference-kpi-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center}.reference-kpi-svg{width:20px;height:20px}.reference-kpi.tone-danger{background:#fff1f1;border-color:#fecaca;color:#b42318}.reference-kpi.tone-danger .reference-kpi-icon{background:#ffe8e8;color:#ef4e57}.reference-kpi.tone-warning .reference-kpi-icon{background:#fff1dc;color:#f29a21}.reference-kpi.tone-info .reference-kpi-icon{background:#e7f1ff;color:#347cf3}.reference-kpi.tone-success .reference-kpi-icon{background:#e9f8ec;color:#2eaf64}.reference-kpi-copy{min-width:0}.reference-kpi-label{display:block;color:#3f4f64;font-size:14px;font-weight:700}.reference-kpi-value{display:flex;align-items:baseline;gap:4px;margin-top:4px}.reference-kpi-value strong{font-size:29px;line-height:1;font-weight:800}.reference-kpi-value span{font-size:14px;font-weight:700;color:#394b61}.reference-kpi-helper{display:block;margin-top:9px;padding-top:7px;border-top:1px solid #e5eaf0;color:#728196;font-size:13px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reference-panel,.reference-side-card{background:#fff;border:1px solid #e0e6ee;border-radius:15px;box-shadow:0 7px 22px rgba(28,48,77,.055)}.reference-panel{padding:16px 17px}.reference-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.reference-panel-head h2{margin:0;color:#14243a;font-size:18px;line-height:1.35;font-weight:800;letter-spacing:-.025em}.reference-panel-link{min-height:36px;padding:0 13px;border:1px solid #dce3ec;background:#fff;border-radius:8px;color:#53657c;font-size:13px;font-weight:700}.reference-panel-link:hover{background:#f7f9fc}
.reference-recent{min-height:250px;padding-bottom:16px}.reference-table-wrap{border:1px solid #e8edf3;border-radius:11px;overflow:auto}.reference-table{width:100%;min-width:760px;border-collapse:collapse}.reference-table th{height:38px;padding:0 10px;background:var(--table-head-bg);color:var(--text-muted);font-size:12.5px;font-weight:700;text-align:left;border-bottom:1px solid #e8edf3;white-space:nowrap}.reference-table td{height:40px;padding:0 10px;color:var(--text-secondary);font-size:13.5px;border-bottom:0;background:transparent;white-space:nowrap}.reference-table tbody tr{background:var(--row-surface);border-bottom:1px solid var(--row-border)}.reference-table tbody tr:last-child{border-bottom:0}.reference-table tbody tr:hover{background:var(--row-hover-surface)}.reference-title-cell{max-width:310px;overflow:hidden;text-overflow:ellipsis}.reference-incident-link{border:0;background:transparent;padding:0;color:var(--text-link);font-size:14px;font-weight:700}.reference-incident-link:hover{color:var(--text-link-hover);text-decoration:underline}.reference-status-pill{display:inline-flex;align-items:center;justify-content:center;min-width:55px;height:27px;border-radius:999px;padding:0 9px;font-size:12.5px;font-weight:800}.reference-status-pill.new{background:var(--status-info-bg);color:var(--status-info-text)}.reference-status-pill.progress{background:var(--status-warning-bg);color:var(--status-warning-text)}.reference-status-pill.done{background:var(--status-success-bg);color:var(--status-success-text)}.reference-status-pill.neutral{background:var(--surface-soft);color:var(--text-secondary)}.reference-empty{height:180px;display:grid;place-items:center;color:var(--text-muted);font-size:15px;background:var(--surface-subtle)}
.reference-analytics{display:grid;grid-template-columns:1fr 1fr;gap:14px}.reference-analytic-card{min-height:248px}.reference-donut-layout{display:grid;grid-template-columns:148px minmax(0,1fr);gap:14px;align-items:center;min-height:180px}.reference-donut{width:136px;height:136px;border-radius:50%;position:relative;margin:auto}.reference-donut:after{content:"";position:absolute;inset:30px;background:#fff;border-radius:50%}.reference-donut-center{position:absolute;inset:0;z-index:1;display:grid;place-content:center;text-align:center}.reference-donut-center strong{font-size:28px;line-height:1;font-weight:800}.reference-donut-center span{margin-top:6px;font-size:13px;color:#6e7d91}.reference-school-legend{display:grid;gap:10px}.reference-school-row{display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:9px;align-items:center;font-size:14px}.reference-dot{width:8px;height:8px;border-radius:50%}.reference-school-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#45566c}.reference-school-row strong{font-size:13px;color:#65758a;white-space:nowrap}.reference-type-list{display:grid;gap:15px;padding:3px 0}.reference-type-row{display:grid;grid-template-columns:29px minmax(92px,125px) minmax(70px,1fr) 82px;gap:10px;align-items:center}.reference-type-icon{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#eef4ff;color:#3277e8}.reference-type-icon .ui-icon{width:15px;height:15px}.reference-type-icon.tone-1{background:#ffeded;color:#ea5050}.reference-type-icon.tone-2{background:#fff2dc;color:#ef951c}.reference-type-icon.tone-3{background:#e9f8ef;color:#36a76a}.reference-type-icon.tone-4{background:#f0f3f7;color:#68798f}.reference-type-name{font-size:14px;font-weight:700;color:#43536a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reference-type-track{height:8px;background:#eef2f6;border-radius:999px;overflow:hidden}.reference-type-fill{height:100%;border-radius:999px}.reference-type-row strong{font-size:13px;color:#69788c;text-align:right;white-space:nowrap}
.reference-dashboard-side{gap:16px}.reference-side-card{padding:17px}.reference-alert-card{min-height:420px}.reference-alert-list{display:grid;gap:10px}.reference-alert-item{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:start;min-height:70px;padding:10px;border:1px solid #e4e9f0;border-radius:11px;background:#fff}.reference-alert-icon{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;background:#eef4ff;color:#3679e9}.reference-alert-icon .ui-icon{width:19px;height:19px}.reference-alert-item.danger .reference-alert-icon{background:#ffeaea;color:#e94f55}.reference-alert-item.warning .reference-alert-icon{background:#fff2df;color:#f09a21}.reference-alert-item.success .reference-alert-icon{background:#e9f8ed;color:#2fa35e}.reference-alert-copy{min-width:0}.reference-alert-copy strong{display:block;color:#223349;font-size:15px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reference-alert-copy p{margin:5px 0 0;color:#6e7c90;font-size:14px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.reference-alert-item time{font-size:13px;color:#7c899a;white-space:nowrap}.reference-alert-dot{position:absolute;right:10px;top:31px;width:6px;height:6px;border-radius:50%;background:#3f7be1}.reference-alert-item.danger .reference-alert-dot{background:#e94f55}.reference-alert-item.warning .reference-alert-dot{background:#f09a21}.reference-alert-item.success .reference-alert-dot{background:#2fa35e}.reference-alert-link{width:100%;min-height:45px;margin-top:13px;border:1px solid #dfe5ed;background:#fff;border-radius:9px;color:#4773d7;font-size:14px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:12px}.reference-alert-link .ui-icon{width:18px;height:18px}.reference-side-empty{min-height:300px;display:grid;place-items:center;color:#8996a8;font-size:15px}
.reference-push-card{min-height:370px}.reference-push-heading h2{margin:0;color:#14243a;font-size:20px;font-weight:800}.reference-push-heading p{margin:8px 0 18px;color:#6f7e92;font-size:14px;line-height:1.55}.reference-push-summary{min-height:112px;padding:15px;border:1px solid #e3e7ef;border-radius:11px;display:flex;align-items:center;gap:18px;background:#fff}.reference-push-bell{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#dcd8ff,#c8c3ff);color:#f4a100;flex:0 0 auto}.reference-push-bell .ui-icon{width:31px;height:31px}.reference-push-bell.warning{background:#fff0dc;color:#e78918}.reference-push-summary>div{display:grid;gap:4px;min-width:0}.reference-push-summary strong{font-size:18px;color:#2250b9;font-weight:800}.reference-push-summary span{font-size:15px;color:#269651;font-weight:700}.reference-push-summary small{font-size:13px;color:#8290a2;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:235px}.reference-push-actions{display:grid;gap:10px;margin-top:16px}.reference-action{width:100%;min-height:46px;border-radius:9px;font-size:15px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px}.reference-action.primary{border:0;color:#fff;background:linear-gradient(100deg,#315ff0,#6744e9);box-shadow:0 8px 18px rgba(77,76,234,.16)}.reference-action.secondary{background:#fff;border:1px solid #dfe5ed;color:#273950}.reference-action.danger-outline{color:#b74b50;border-color:#f0d1d3;background:#fffafa}.reference-action-icon{width:18px;height:18px}

/* Stage 0015 — incident workbench, server-side search/filter/pagination. */
.incident-workspace{display:grid;gap:16px;min-height:520px}.incident-queue-tabs{display:flex;flex-wrap:wrap;gap:9px;min-height:42px;align-items:center}.incident-queue-tab{min-height:42px;padding:0 16px;border:1px solid #dbe2eb;border-radius:999px;background:#fff;color:#4a5b70;font-size:14px;font-weight:750}.incident-queue-tab:hover{background:#f8faff}.incident-queue-tab.active{border-color:#5269ef;background:linear-gradient(100deg,#315ff0,#6744e9);color:#fff;box-shadow:0 8px 20px rgba(69,77,231,.16)}
.incident-filter-card{padding:18px 19px;display:grid;gap:15px;min-height:170px;contain:layout paint}.incident-search-row{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:10px}.incident-search-row input{min-height:46px}.incident-search-row button{min-height:46px;padding:0 18px}.incident-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.incident-filter-grid label{display:grid;gap:6px;color:#53647a;font-size:13.5px;font-weight:700}.incident-filter-grid select,.incident-filter-grid input{width:100%;min-height:44px;border:1px solid #d8e0e9;border-radius:9px;background:#fff;color:#1f3148;padding:0 11px;font-size:14px}.incident-result-summary{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#65758a;font-size:14px;padding:0 2px}.incident-result-summary strong{color:#1d3048;font-size:15px}.incident-table-card{padding:0;overflow:hidden;min-height:120px}.incident-table-card>.table-wrap{border:0;border-radius:0}.incident-work-table{width:100%;min-width:1080px;border-collapse:collapse}.incident-work-table th{height:46px;padding:0 14px;background:#f8fafc;color:#66768a;font-size:13.5px;font-weight:750;text-align:left;border-bottom:1px solid #e4e9ef;white-space:nowrap}.incident-work-table td{height:52px;padding:0 14px;border-bottom:1px solid #edf1f5;color:#2c3f56;font-size:14px;white-space:nowrap}.incident-work-row{cursor:pointer}.incident-work-row:hover{background:#f8fbff}.incident-work-row:last-child td{border-bottom:0}.incident-title-cell{max-width:320px;overflow:hidden;text-overflow:ellipsis}.incident-pager{display:flex;align-items:center;justify-content:center;gap:14px}.incident-pager button{min-width:78px;min-height:40px}.incident-pager span{min-width:82px;text-align:center;font-size:14px;font-weight:700;color:#526176}
.reference-kpi.interactive,.reference-school-row.interactive,.reference-type-row.interactive,.reference-alert-item.interactive{cursor:pointer}.reference-kpi.interactive{transition:transform .16s ease,box-shadow .16s ease}.reference-kpi.interactive:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(20,60,89,.14)}.reference-school-row.interactive:hover,.reference-type-row.interactive:hover{background:#f7f9fc;border-radius:8px}.reference-alert-item.interactive:hover{border-color:#cad7e7;background:#fbfdff}

/* Wide desktop scaling: use all available space without stretching the rail excessively. */
@media(min-width:1760px){
  .main-content{padding-left:36px;padding-right:36px}
  .reference-dashboard{grid-template-columns:minmax(0,1fr) 405px;gap:20px}
  .reference-hero{min-height:382px;padding-top:38px}
  .reference-hero-message h1{font-size:36px}.reference-hero-message p{font-size:15px}
  .reference-hero-time{font-size:52px}
  .reference-kpis{left:17px;right:17px;bottom:15px;gap:9px}.reference-kpi{min-height:122px;padding:15px 14px}.reference-kpi-value strong{font-size:30px}
  .reference-recent{min-height:254px}.reference-analytic-card{min-height:252px}
  .reference-alert-card{min-height:426px}.reference-push-card{min-height:376px}
}

/* Medium desktop/tablet: move the right rail below the main column when needed. */
@media(max-width:1240px){
  :root{--sidebar:232px}
  .sidebar{padding-left:17px;padding-right:17px}
  .reference-dashboard{grid-template-columns:minmax(0,1fr) 330px;gap:16px}
  .reference-hero-message h1{font-size:31px}
  .reference-kpi{grid-template-columns:42px minmax(0,1fr);gap:8px;padding-left:11px;padding-right:11px}.reference-kpi-icon{width:42px;height:42px}.reference-kpi-value strong{font-size:25px}
  .reference-type-row{grid-template-columns:28px 90px minmax(65px,1fr) 75px}
}
@media(max-width:1080px){
  .reference-dashboard{grid-template-columns:1fr}
  .reference-dashboard-side{grid-template-columns:1fr 1fr}
  .reference-alert-card,.reference-push-card{min-height:auto}
  .reference-alert-card{min-height:420px}
  .reference-analytics{grid-template-columns:1fr 1fr}
}

/* Mobile/tablet shell. Normal text remains readable; layout changes instead of shrinking text. */
@media(max-width:1100px){.incident-filter-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}}
@media(max-width:650px){.incident-search-row{grid-template-columns:1fr 1fr}.incident-search-row input{grid-column:1/-1}.incident-filter-grid{grid-template-columns:1fr}.incident-queue-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px}.incident-queue-tab{white-space:nowrap}.incident-result-summary{align-items:flex-start;flex-direction:column;gap:2px}}

@media(max-width:860px){
  :root{--topbar:64px}
  .app-shell{grid-template-columns:1fr}.app-stage{width:100%;max-width:100vw}
  .sidebar{position:fixed;left:0;top:0;bottom:0;width:min(84vw,305px);height:100dvh;transform:translateX(-105%);transition:transform .22s ease;z-index:100;box-shadow:18px 0 42px rgba(5,24,44,.25)}.sidebar.open{transform:translateX(0)}
  .mobile-only{display:inline-flex!important}.desktop-only{display:none!important}
  .topbar{padding:0 10px;gap:7px}.topbar-actions{gap:5px}.topbar-icon-button{width:38px;height:38px}.profile-menu-toggle{min-height:42px;padding:2px}.avatar{width:38px;height:38px}.profile-menu{top:49px}.network-state.offline{font-size:12px;padding:5px 7px}
  .main-content{padding:13px 10px 28px}
  .reference-dashboard{grid-template-columns:1fr;gap:14px}.reference-dashboard-primary,.reference-dashboard-side{gap:14px}.reference-dashboard-side{grid-template-columns:1fr}
  .reference-hero{min-height:500px;padding:24px 15px 15px;background-position:62% center}.reference-hero-top{display:block;padding:0 4px}.reference-hero-message{max-width:100%}.reference-hero-message h1{font-size:29px}.reference-hero-message p{margin-top:11px;max-width:100%;font-size:15px}.reference-hero-meta{align-items:flex-start;text-align:left;margin-top:18px;min-width:0}.reference-hero-time{font-size:38px}.reference-hero-live{margin-top:7px}.reference-kpis{grid-template-columns:1fr 1fr;left:12px;right:12px;bottom:12px;gap:8px}.reference-kpi{min-height:118px;padding:13px 11px;grid-template-columns:38px minmax(0,1fr);gap:8px}.reference-kpi-icon{width:38px;height:38px}.reference-kpi-svg{width:18px;height:18px}.reference-kpi-label{font-size:14px}.reference-kpi-value strong{font-size:24px}.reference-kpi-value span{font-size:14px}.reference-kpi-helper{margin-top:8px;padding-top:7px;font-size:13px}
  .reference-panel,.reference-side-card{border-radius:14px;padding:15px}.reference-panel-head h2{font-size:18px}.reference-analytics{grid-template-columns:1fr;gap:14px}.reference-donut-layout{grid-template-columns:155px minmax(0,1fr)}.reference-donut{width:140px;height:140px}.reference-donut:after{inset:31px}.reference-alert-card{min-height:auto}.reference-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.reference-table{min-width:760px}.sidebar-install-card{min-height:205px}
  .detail-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.auth-shell{grid-template-columns:1fr}.auth-brand-panel{display:none}.auth-form-panel{padding:2rem 1.2rem}
}
@media(max-width:540px){
  body{font-size:16px}
  .main-content{padding-left:8px;padding-right:8px}
  .reference-hero{min-height:535px;padding:20px 11px 11px}.reference-hero-message h1{font-size:27px}.reference-hero-message p{font-size:15px}.reference-hero-time{font-size:34px}
  .reference-kpis{grid-template-columns:1fr 1fr}.reference-kpi{min-height:120px;grid-template-columns:35px minmax(0,1fr);padding:12px 9px}.reference-kpi-icon{width:35px;height:35px}.reference-kpi-label{font-size:14px}.reference-kpi-value strong{font-size:22px}.reference-kpi-helper{font-size:13px;white-space:normal}
  .reference-panel{padding:13px}.reference-panel-head{margin-bottom:11px}.reference-panel-link{min-height:34px;padding:0 10px}
  .reference-donut-layout{grid-template-columns:1fr}.reference-school-legend{padding:0 4px}.reference-type-row{grid-template-columns:28px minmax(86px,115px) minmax(55px,1fr) 78px;gap:7px}.reference-type-name,.reference-type-row strong,.reference-school-row,.reference-school-row strong{font-size:13px}
  .reference-alert-item{grid-template-columns:41px minmax(0,1fr);padding:11px}.reference-alert-item time{display:inline}.reference-alert-dot{top:25px}.reference-alert-copy strong{font-size:14px}.reference-alert-copy p{font-size:13px}
  .reference-push-summary{padding:14px;gap:13px}.reference-push-bell{width:62px;height:62px}.reference-push-bell .ui-icon{width:31px;height:31px}.reference-push-summary strong{font-size:16px}.reference-push-summary span{font-size:14px}.reference-push-summary small{font-size:13px;white-space:normal;max-width:none}.reference-action{min-height:50px;font-size:15px}
  table{min-width:660px}.meta-list{grid-template-columns:1fr}.meta-list dt{margin-top:.4rem}
}
.nav-chevron{width:17px;height:17px;margin-left:auto;color:#91a5bd;fill:none;stroke:currentColor;stroke-width:1.8}.nav-item.active .nav-chevron{color:#fff}

/* Stage 0017 — stable workbench, compact audit console, official common emblem. */
.school-emblem-wrap{width:58px;height:58px;display:grid;place-items:center;flex:0 0 58px;background:transparent;box-shadow:none;overflow:visible}
.school-emblem{display:block;width:54px;height:54px;object-fit:contain;filter:none}
.page-header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.incident-workspace{min-height:520px;contain:layout paint;overflow-anchor:none}
.incident-workspace[style*="min-height"]{transition:none}
.incident-queue-tabs{min-height:42px;align-items:center;scrollbar-gutter:stable}
.incident-queue-tab{box-sizing:border-box;border-width:1px;transform:none!important}
.incident-queue-tab.active{font-weight:800}
.incident-filter-card{min-height:184px}
.incident-table-card{min-height:100px}
.incident-pager{min-height:40px}
.main-content{scrollbar-gutter:stable}
.admin-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.admin-section-head h2{margin:0}.admin-section-head p{margin:4px 0 0}
.admin-audit-card{padding:20px}.audit-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:12px;margin-bottom:16px}.audit-filter-grid label{display:grid;gap:6px;font-size:14px;font-weight:700;color:#53647a}.audit-filter-grid input,.audit-filter-grid select{width:100%;min-height:44px;border:1px solid #d8e0e9;border-radius:9px;background:#fff;padding:0 11px;color:#1f3148}.audit-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:flex-end;gap:8px;min-height:40px}.audit-action-button{width:auto!important;min-width:82px!important;height:40px!important;min-height:40px!important;padding:0 15px!important;align-self:center!important;line-height:1!important;white-space:nowrap!important;flex:0 0 auto!important}.audit-export-button{display:inline-flex;align-items:center;justify-content:center;gap:7px}.audit-export-button .ui-icon{width:17px;height:17px}
.audit-result-region{min-height:220px}.audit-result-region[aria-busy="true"]{opacity:.72}.audit-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}.audit-table{width:100%;min-width:1080px;border-collapse:collapse}.audit-table th{height:44px;padding:0 12px;background:#f8fafc;color:#66768a;font-size:13.5px;text-align:left;border-bottom:1px solid #e4e9ef}.audit-table td{height:48px;padding:0 12px;color:#2c3f56;font-size:14px;border-bottom:1px solid #edf1f5;white-space:nowrap}.audit-table tr:last-child td{border-bottom:0}.empty-cell{text-align:center;color:#7d8a9b!important;height:100px!important}
@media(max-width:1100px){.audit-filter-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}}
@media(max-width:650px){.school-emblem-wrap{width:50px;height:50px;flex-basis:50px}.school-emblem{width:44px;height:44px}.audit-filter-grid{grid-template-columns:1fr}.page-header-actions{width:100%;justify-content:flex-start}}
html{scrollbar-gutter:stable}
.incident-queue-tab.active{font-weight:750}

/* PWA Stage 0018 — approved dashboard reference polish + centered data-table contract. */
:root{
  --sidebar:clamp(258px,17.4vw,336px);
  --topbar:88px;
  font-family:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
}
body{font-weight:400;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
.sidebar{padding-top:28px;padding-left:22px;padding-right:22px}
.sidebar-brand{gap:13px;padding-bottom:23px;margin-bottom:21px}
.sidebar-brand strong{font-size:19px;letter-spacing:-.03em}.sidebar-brand span{font-size:13.5px}
.nav-stack{gap:9px}.nav-item{min-height:55px;font-size:16px;letter-spacing:-.025em}
.nav-item[data-route="dashboard"] .nav-icon{color:#b9ccff}
.nav-item[data-route="incidents"] .nav-icon{color:#9eb8d7}
.nav-item[data-route="new"] .nav-icon{color:#9bc6ec}
.nav-item[data-route="notifications"] .nav-icon{color:#aabed7}
.nav-item[data-route="admin"] .nav-icon{color:#aebed2}
.nav-item.active .nav-icon{color:#fff}
.topbar{padding-left:clamp(26px,2.55vw,46px);padding-right:clamp(24px,2.35vw,42px)}
.welcome-copy strong{font-size:16.5px;letter-spacing:-.025em}.role-chip{font-size:13.5px;padding:5px 10px}
.topbar-icon-button{color:#315ff0}.topbar-icon-button .ui-icon{color:#315ff0;stroke-width:1.9}
.topbar-install-action{color:#263a59}.topbar-install-action .ui-icon{color:#5c64e8;stroke-width:1.9}
.avatar{width:48px;height:48px;background:linear-gradient(145deg,#e6edf8,#d9e4f3);color:#17365f}.avatar-icon{width:28px;height:28px;stroke-width:1.9}
.main-content{padding-top:14px;padding-bottom:38px}
.reference-dashboard{grid-template-columns:minmax(0,1fr) clamp(352px,24.6vw,424px);gap:20px}
.reference-dashboard-primary,.reference-dashboard-side{gap:18px}
.reference-hero{min-height:374px;padding:37px 28px 20px;border-radius:18px;box-shadow:0 16px 36px rgba(35,83,117,.14)}
.reference-hero-message h1{font-size:35px;line-height:1.22;font-weight:850;letter-spacing:-.048em}.reference-hero-message p{font-size:15.5px;line-height:1.68}
.reference-hero-time{font-size:52px;font-weight:850}.reference-hero-date{font-size:13.5px}
.reference-kpis{left:17px;right:17px;bottom:15px;gap:10px}
.reference-kpi{min-height:124px;padding:16px 15px;grid-template-columns:44px minmax(0,1fr);gap:11px;border-radius:15px;box-shadow:0 11px 26px rgba(20,60,89,.11)}
.reference-kpi-icon{width:44px;height:44px}.reference-kpi-svg{width:21px;height:21px;stroke-width:1.9}
.reference-kpi-label{font-size:14.5px}.reference-kpi-value strong{font-size:30px}.reference-kpi-helper{font-size:13px;color:#66768a}
.reference-panel,.reference-side-card{border-color:#dfe5ed;border-radius:16px;box-shadow:0 9px 26px rgba(28,48,77,.06)}
.reference-panel{padding:17px 18px}.reference-panel-head h2{font-size:18.5px}
.reference-alert-card{min-height:424px}.reference-push-card{min-height:374px}
.reference-alert-icon .ui-icon,.reference-type-icon .ui-icon,.reference-push-bell .ui-icon,.reference-action-icon{stroke-width:1.9}
.reference-push-bell{box-shadow:inset 0 0 0 1px rgba(92,76,220,.08)}
.reference-action.primary .reference-action-icon{color:#fff}.reference-action.secondary .reference-action-icon{color:#425a79}.reference-action.danger-outline .reference-action-icon{color:#c4585e}

/* Stage0018: each data value is centered on the same column axis as its header. */
.incident-work-table th,.incident-work-table td,
.audit-table th,.audit-table td,
.reference-table th,.reference-table td{text-align:center;vertical-align:middle}
.incident-work-table .link-button,.reference-table .reference-incident-link{display:inline-flex;align-items:center;justify-content:center;text-align:center}
.incident-work-table td .status,.reference-table td .reference-status-pill{margin-inline:auto}
.audit-table .empty-cell,.incident-work-table .empty-cell,.reference-table .empty-cell{text-align:center!important}

@media(min-width:1760px){
  :root{--sidebar:clamp(286px,17vw,350px)}
  .reference-dashboard{grid-template-columns:minmax(0,1fr) 420px;gap:22px}
  .reference-hero{min-height:392px;padding-top:40px}
  .reference-hero-message h1{font-size:38px}.reference-hero-time{font-size:56px}
  .reference-kpi{min-height:128px}.reference-kpi-value strong{font-size:31px}
}
@media(max-width:1240px){
  :root{--sidebar:232px}
  .reference-dashboard{grid-template-columns:minmax(0,1fr) 336px;gap:16px}
}
@media(max-width:860px){
  :root{--topbar:66px}
  .reference-dashboard{grid-template-columns:1fr}
  .reference-dashboard-side{grid-template-columns:1fr}
  .reference-hero{padding-top:26px}
}



/* PWA Stage 0018 R1 — field feedback: general-user wording + hero readability. */
.reference-hero-date{font-size:16px;font-weight:800;line-height:1.35}
.reference-hero-live strong{font-size:16px;line-height:1.35}
.reference-hero-live span{font-size:14.5px;line-height:1.4;color:#f4fbff}
@media (min-width:1440px){
  .reference-hero-date{font-size:16.5px}
  .reference-hero-live strong{font-size:16.5px}
  .reference-hero-live span{font-size:15px}
}
@media (max-width:720px){
  .reference-hero-date{font-size:15.5px}
  .reference-hero-live strong{font-size:15.5px}
  .reference-hero-live span{font-size:14px}
}


/* PWA Stage 0019 — approved account/reference-data/branding UX. */
.auth-brand-copy h2{font-size:clamp(34px,3.1vw,50px);line-height:1.22;max-width:13.5em;text-wrap:balance}
.password-control{position:relative;display:flex;align-items:center;width:100%}.password-control input{width:100%;padding-right:74px!important}.password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);min-width:56px;min-height:36px;border:0;border-radius:8px;background:#eef3f9;color:#28435f;font-weight:750;cursor:pointer}.password-toggle:focus-visible{outline:3px solid rgba(38,95,215,.25);outline-offset:2px}
.sidebar-brand .school-emblem{object-fit:contain;max-width:58px;max-height:58px}.sidebar-brand strong{overflow-wrap:anywhere}
.stage19-admin-forms{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:16px;margin-bottom:16px}.stage19-create-card{align-content:start}.stage19-create-card h2{margin-bottom:0}.stage19-create-card>.muted{margin-top:-8px;line-height:1.55}.stage19-admin-card{padding:20px}.stage19-admin-table th,.stage19-admin-table td{text-align:center;vertical-align:middle}.compact-action{width:auto!important;min-width:80px!important;min-height:38px!important;padding:0 13px!important}.stage19-school-filter{width:min(100%,460px);margin:0 0 14px}
.school-field-with-action{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start}.school-search-control{position:relative;min-width:0}.school-search-control input[type="search"]{width:100%}.school-search-results{position:absolute;z-index:80;left:0;right:0;top:calc(100% + 5px);max-height:260px;overflow:auto;border:1px solid #ccd7e5;border-radius:10px;background:#fff;box-shadow:0 14px 32px rgba(18,45,73,.18);padding:5px}.school-search-option{display:block;width:100%;min-height:42px;padding:8px 10px;border:0;border-radius:7px;background:#fff;color:#24384e;text-align:left;cursor:pointer}.school-search-option:hover,.school-search-option:focus{background:#edf4ff;outline:none}.stage19-dialog{border:0;border-radius:16px;padding:0;max-width:min(92vw,520px);width:100%;box-shadow:0 26px 70px rgba(7,28,49,.28)}.stage19-dialog::backdrop{background:rgba(8,24,42,.48)}.stage19-dialog-card{display:grid;gap:14px;padding:22px}.inline-check{display:inline-flex;align-items:center;gap:7px;min-height:42px}.inline-check input{width:20px;height:20px}
@media(max-width:1150px){.stage19-admin-forms{grid-template-columns:1fr 1fr}.stage19-admin-forms>.stage19-create-card:last-child{grid-column:1/-1}}
@media(max-width:760px){.stage19-admin-forms{grid-template-columns:1fr}.stage19-admin-forms>.stage19-create-card:last-child{grid-column:auto}.school-field-with-action{grid-template-columns:1fr}.auth-brand-copy h2{font-size:clamp(29px,8vw,38px);max-width:15em}}

/* PWA Stage 0020 — Visual Reference continuity + role/admin workbench density. */
:root{--stage20-card-radius:14px;--stage20-control:42px}
.page-header{align-items:center;margin-bottom:14px}.page-header-copy h1{font-size:25px;line-height:1.28}.page-header-copy p{margin-top:4px;line-height:1.5}
.card{border-radius:var(--stage20-card-radius)}
.sidebar-brand.global-brand{align-items:center;gap:12px}.school-emblem-wrap.global-brand-logo{width:136px;height:40px;flex:0 0 136px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}.school-emblem-wrap.global-brand-logo .school-emblem{width:132px;height:auto;max-width:132px;max-height:34px;object-fit:contain}.sidebar-brand.global-brand>div{min-width:72px}.sidebar-brand.global-brand strong{font-size:17px}
.nav-submenu{display:grid;gap:5px;margin:-3px 0 5px 42px;padding-left:12px;border-left:1px solid rgba(255,255,255,.12)}.nav-submenu[hidden]{display:none}.nav-subitem{min-height:39px;border:0;border-radius:9px;background:transparent;color:#b8c7d8;text-align:left;padding:0 11px;font-size:14.5px;font-weight:650;cursor:pointer}.nav-subitem:hover,.nav-subitem:focus-visible{background:rgba(255,255,255,.07);color:#fff;outline:none}.nav-subitem.active{background:rgba(81,117,255,.23);color:#fff;font-weight:800}.nav-item.admin-nav.active{background:rgba(81,117,255,.14)}
.stage20-admin-page{display:grid;gap:13px}.admin-list-toolbar{display:grid;grid-template-columns:minmax(230px,1.5fr) repeat(2,minmax(135px,.55fr)) auto auto auto;align-items:end;gap:9px;padding:14px 15px;border:1px solid var(--line);border-radius:var(--stage20-card-radius);background:#fff}.admin-list-toolbar>.stage20-combobox{min-width:180px}.admin-list-toolbar input,.admin-list-toolbar select{width:100%;min-height:var(--stage20-control);border:1px solid #d7e0e9;border-radius:9px;background:#fff;padding:0 11px;color:#20354d}.admin-list-toolbar button{min-height:var(--stage20-control)}.admin-add-button{justify-self:end}.admin-toolbar-actions{grid-template-columns:1fr auto}.stage20-admin-tabs{margin-bottom:0}.stage19-admin-table{width:100%;border-collapse:collapse;min-width:820px;background:#fff}.stage19-admin-table th{height:43px;background:#f7f9fc;color:#65768a;font-size:13.5px;border-bottom:1px solid #e3e9ef;padding:0 11px}.stage19-admin-table td{height:50px;border-bottom:1px solid #edf1f5;color:#293e55;font-size:14px;padding:6px 11px}.stage19-admin-table tbody tr:hover{background:#fafcff}.admin-row-actions{display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.empty-cell{height:92px!important}.stage20-dialog .stage19-dialog-card{max-height:min(78vh,720px);overflow:auto}.temporary-password-box{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px;border:1px dashed #a9bad0;border-radius:11px;background:#f7faff}.temporary-password-box strong{font-size:23px;letter-spacing:.06em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#183856}
.stage20-combobox{position:relative}.stage20-combobox .school-search-results{min-width:100%;max-width:min(520px,90vw)}.school-search-option{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.school-search-option strong{font-size:14px;font-weight:750}.school-search-option small{font-size:12.5px;color:#718198}
.stage20-filter-card{min-height:0!important;padding:14px 15px;gap:10px}.incident-search-row{grid-template-columns:minmax(280px,1fr) auto auto;gap:8px}.incident-search-row input,.incident-search-row button{min-height:42px}.incident-filter-primary{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:9px}.incident-filter-primary label,.incident-filter-secondary label{display:grid;gap:5px;color:#52647a;font-size:13px;font-weight:750}.incident-filter-primary input,.incident-filter-primary select,.incident-filter-secondary input,.incident-filter-secondary select{width:100%;min-height:42px;border:1px solid #d7e0e9;border-radius:9px;background:#fff;padding:0 10px;color:#20354d}.incident-detail-filters{border-top:1px solid #edf1f5;padding-top:5px}.incident-detail-filters summary{width:max-content;cursor:pointer;color:#3e5f7f;font-size:13.5px;font-weight:750;padding:5px 2px}.incident-filter-secondary{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:9px;padding-top:8px}.incident-filter-secondary input[type="date"]{padding-right:7px}.incident-filter-secondary input[type="date"]::-webkit-calendar-picker-indicator{width:20px;height:20px;opacity:.72;cursor:pointer}.incident-queue-tabs{margin-bottom:0}.incident-queue-tab{min-height:38px;padding:0 13px;font-size:13.5px}.incident-result-summary{min-height:30px}
.stage20-intake-card{padding:17px 18px;gap:13px}.intake-top-grid{display:grid;gap:10px;grid-column:1/-1}.intake-top-grid.four{grid-template-columns:minmax(210px,1.35fr) minmax(180px,1fr) minmax(140px,.7fr) minmax(210px,1.1fr)}.intake-top-grid.three{grid-template-columns:minmax(230px,1.4fr) minmax(180px,1fr) minmax(140px,.7fr)}.intake-top-grid label,.stage20-intake-card>label{display:grid;gap:6px;color:#53647a;font-size:13.5px;font-weight:750}.intake-top-grid input,.intake-top-grid select,.stage20-intake-card>label input,.stage20-intake-card>label textarea{min-height:43px}.readonly-field{display:flex;align-items:center;min-height:43px;padding:0 12px;border:1px solid #dfe5ec;border-radius:9px;background:#f5f7fa;color:#344a62;font-weight:650}.stage20-intake-card textarea{min-height:150px;resize:vertical}
.password-change-page{min-height:100vh;display:grid;place-items:center;padding:22px;background:linear-gradient(140deg,#eef4fb,#f7f9fd)}.password-change-card{width:min(100%,520px);padding:27px;border:1px solid #dde6ef;border-radius:18px;background:#fff;box-shadow:0 24px 60px rgba(20,45,74,.12)}.password-change-card h2{margin:2px 0 5px;font-size:25px}.password-change-card .stack{margin-top:18px}.password-change-card label{display:grid;gap:6px}.password-change-card input{min-height:45px}

@media(max-width:1280px){.sidebar-brand.global-brand{display:grid;grid-template-columns:1fr}.school-emblem-wrap.global-brand-logo{width:128px;flex-basis:128px}.incident-filter-primary{grid-template-columns:repeat(3,minmax(150px,1fr))}.admin-list-toolbar{grid-template-columns:minmax(220px,1fr) repeat(2,minmax(130px,.65fr)) auto auto}.admin-add-button{grid-column:auto}.intake-top-grid.four{grid-template-columns:repeat(2,minmax(210px,1fr))}}
@media(max-width:900px){.admin-list-toolbar{grid-template-columns:1fr 1fr}.admin-list-toolbar>.stage20-combobox,.admin-list-toolbar>input[type="search"]{grid-column:1/-1}.admin-add-button{justify-self:stretch}.incident-filter-primary{grid-template-columns:repeat(2,minmax(145px,1fr))}.incident-filter-secondary{grid-template-columns:repeat(2,minmax(145px,1fr))}.intake-top-grid.four,.intake-top-grid.three{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.sidebar-brand.global-brand{grid-template-columns:auto minmax(0,1fr)}.school-emblem-wrap.global-brand-logo{width:112px;height:34px;flex-basis:112px;padding:0}.school-emblem-wrap.global-brand-logo .school-emblem{width:108px;height:auto}.nav-submenu{margin-left:36px}.admin-list-toolbar{grid-template-columns:1fr}.admin-list-toolbar>*{grid-column:1!important}.incident-filter-primary,.incident-filter-secondary,.intake-top-grid.four,.intake-top-grid.three{grid-template-columns:1fr}.incident-search-row{grid-template-columns:1fr 1fr}.incident-search-row input{grid-column:1/-1}.stage20-intake-card{padding:14px}.page-header-copy h1{font-size:23px}.temporary-password-box{align-items:flex-start;flex-direction:column}.temporary-password-box strong{font-size:20px}}

/* PWA Stage 0021 — approved operations usability / mobile-first completion. */
.login-remember-row{display:flex!important;align-items:center;gap:9px!important;min-height:36px;font-size:14px;font-weight:700;color:#53647a}.login-remember-row input{width:18px!important;height:18px!important;min-height:0!important;margin:0;accent-color:#3d63f4}.sidebar-footer:empty{display:none}.network-state[hidden]{display:none!important}.network-state.offline{display:inline-flex!important;color:#b42318;background:#fff0ef;border:1px solid #ffd3cf;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}
.stage21-school-hero{background-image:linear-gradient(90deg,rgba(21,111,164,.90) 0%,rgba(34,132,184,.71) 42%,rgba(31,111,158,.35) 64%,rgba(15,69,103,.10) 100%),url('/assets/hero-school.svg')!important;background-size:cover!important;background-position:center 50%!important}.stage21-school-hero:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(25,128,182,.16),rgba(0,0,0,0) 55%)}
.stage21-dashboard-period{display:grid;grid-template-columns:minmax(160px,.8fr) auto minmax(300px,1fr);gap:12px;align-items:center;padding:12px 14px;border:1px solid #e0e7ef;border-radius:13px;background:#fff;box-shadow:0 6px 20px rgba(35,72,108,.05)}.stage21-dashboard-period>div:first-child{display:grid;gap:2px}.stage21-dashboard-period>div:first-child span{color:#6e7d91;font-size:12.5px}.stage21-period-quick{display:flex;gap:6px;flex-wrap:wrap}.stage21-period-quick button,.stage21-dashboard-period-custom button{min-height:36px;padding:0 10px}.stage21-dashboard-period-custom{display:grid;grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr) auto;gap:7px;align-items:center}.stage21-date-input{height:42px!important;min-height:42px!important;padding:0 42px 0 11px!important;font-variant-numeric:tabular-nums}.stage21-date-input::-webkit-calendar-picker-indicator{width:20px!important;height:20px!important;padding:8px!important;margin-right:-5px!important;opacity:.78!important;cursor:pointer!important}.stage21-date-input:focus{outline:3px solid rgba(55,100,235,.14);outline-offset:1px;border-color:#7c9dff!important}
.stage21-mobile-incident-list{display:none}.stage21-mobile-incident-card{width:100%;border:1px solid #e1e8f0;border-radius:11px;background:#fff;padding:12px;text-align:left;color:#23384f}.stage21-mobile-incident-card p{margin:8px 0;color:#30465d;font-weight:700;line-height:1.45}.stage21-mobile-incident-head,.stage21-mobile-incident-meta{display:flex;gap:8px;align-items:center;justify-content:space-between}.stage21-mobile-incident-head strong{font-size:12.5px;overflow-wrap:anywhere}.stage21-mobile-incident-meta{justify-content:flex-start;flex-wrap:wrap;color:#718197;font-size:12px}.stage21-mobile-incident-meta span+span:before{content:"·";margin-right:8px}
.stage21-intake-upload,.attachment-panel{display:grid;gap:10px;padding:14px;border:1px solid var(--border-default);border-radius:12px;background:var(--surface-panel);color:var(--text-primary)}.stage21-upload-copy{display:grid;gap:3px}.stage21-upload-copy span{font-size:13px;color:var(--text-muted)}.stage21-intake-upload input[type=file]{min-height:42px;padding:8px;background:var(--surface-control);color:var(--text-primary);border:1px solid var(--border-default);border-radius:9px}.stage21-intake-files{display:grid;gap:7px}.stage21-intake-file{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid var(--border-soft);border-radius:9px;background:var(--surface-control);color:var(--text-primary)}.stage21-intake-file>div{min-width:0;display:grid;gap:2px}.stage21-intake-file strong{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stage21-intake-file small{color:var(--text-muted)}
.stage21-assignee-contact{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 16px;padding:11px 12px;border:1px solid #dfe8f1;border-radius:10px;background:#f6f9fc}.stage21-assignee-contact strong{color:#203a55}.stage21-phone-link{color:#2f65d9;font-weight:800;text-decoration:none}.stage21-phone-link:hover{text-decoration:underline}
.stage21-user-school-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start}.stage21-inline-add{min-height:42px!important;white-space:nowrap}.danger-button{border:1px solid #f1b9b5;background:#fff5f4;color:#b42318;border-radius:8px;font-weight:800;cursor:pointer}.danger-button:hover{background:#ffe8e6}
.stage21-notification-controls{display:grid;gap:12px;margin-bottom:12px;padding:14px}.stage21-notification-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.stage21-notification-filter{display:grid;grid-template-columns:auto minmax(140px,.7fr) minmax(145px,.7fr) minmax(145px,.7fr) auto auto;gap:8px;align-items:center}.stage21-notification-filter select,.stage21-notification-filter input{min-height:42px}.stage21-notification-list{display:grid;gap:9px}.stage21-notification-date{margin:9px 2px 1px;color:#50647a;font-size:14px}.stage21-load-more{width:min(100%,420px);margin:14px auto;display:block}.stage21-load-more[hidden]{display:none}.stage21-push-details{margin-top:14px;padding:14px}.stage21-push-details summary{cursor:pointer;font-weight:800;color:#31465d}.stage21-push-details>.muted{margin-top:12px}
.stage21-install-dialog{max-width:min(92vw,560px)}.stage21-install-guide{gap:12px}.stage21-install-guide-head{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;align-items:center}.stage21-install-guide-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:#edf3ff;color:#315edb}.stage21-install-guide-icon .ui-icon{width:24px;height:24px}.stage21-guide-step{display:grid;grid-template-columns:34px minmax(0,1fr);gap:11px;align-items:start;padding:10px 11px;border:1px solid #e1e8f0;border-radius:10px}.stage21-guide-step strong{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#365ee8;color:#fff}.stage21-guide-step span{padding-top:5px;line-height:1.55}.sidebar-install-card{min-height:0!important;padding-bottom:12px}.sidebar-install-card .install-visual{opacity:.88}.sidebar-install-button[disabled]{opacity:.62;cursor:default}

@media(max-width:1100px){.stage21-dashboard-period{grid-template-columns:1fr 1fr}.stage21-dashboard-period>div:first-child{grid-column:1/-1}.stage21-dashboard-period-custom{grid-column:1/-1}.stage21-notification-filter{grid-template-columns:1fr 1fr 1fr}.stage21-notification-filter .inline-check{grid-column:1/-1}}
@media(max-width:768px){
  html,body{max-width:100%;overflow-x:hidden}.app-stage,.main-content,#page-content,.reference-dashboard,.reference-dashboard-primary,.reference-dashboard-side,.reference-panel,.reference-side-card,.card{min-width:0!important;max-width:100%!important}.app-stage{overflow-x:hidden}.main-content{padding:12px!important}.topbar{padding-left:12px!important;padding-right:12px!important}
  .reference-hero.stage21-school-hero{min-height:0!important;padding:22px 14px 14px!important;background-position:66% center!important}.reference-hero-top{display:flex!important;align-items:flex-start}.reference-hero-message h1{font-size:clamp(25px,7.4vw,31px)!important;line-height:1.24!important;overflow-wrap:anywhere}.reference-hero-message p{font-size:14px!important;max-width:92%!important}.reference-hero-meta{margin-top:0!important;margin-left:auto!important;align-items:flex-end!important;text-align:right!important}.reference-hero-time{font-size:34px!important}.reference-kpis{position:static!important;margin-top:24px!important;grid-template-columns:1fr 1fr!important;left:auto!important;right:auto!important;bottom:auto!important}.reference-kpi{min-height:104px!important}.reference-kpi-helper{white-space:normal!important}
  .stage21-dashboard-period{grid-template-columns:1fr;padding:11px}.stage21-dashboard-period>div:first-child,.stage21-dashboard-period-custom{grid-column:auto}.stage21-period-quick{overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px}.stage21-period-quick button{white-space:nowrap}.stage21-dashboard-period-custom{grid-template-columns:1fr auto 1fr}.stage21-dashboard-period-custom button{grid-column:1/-1}
  .stage21-desktop-incident-table{display:none!important}.stage21-mobile-incident-list{display:grid;gap:8px}.reference-table-wrap.stage21-dashboard-incidents{overflow:visible!important}.reference-recent{padding:13px!important}
  .reference-analytics{grid-template-columns:1fr!important}.reference-donut-layout{grid-template-columns:1fr!important;min-height:0!important}.reference-donut{display:none}.reference-school-legend{gap:7px}.reference-school-row{min-height:38px;padding:5px 0;border-bottom:1px solid #edf1f5}.reference-school-name{white-space:normal!important}.reference-analytic-card{min-height:0!important}.reference-type-row{grid-template-columns:28px minmax(82px,1fr) minmax(70px,1.25fr) auto!important}.reference-type-track{min-width:0}.reference-dashboard-side{grid-template-columns:1fr!important}.reference-alert-card{min-height:0!important}
  .stage21-user-school-field{grid-template-columns:1fr}.stage21-inline-add{width:100%}.stage21-notification-filter{grid-template-columns:1fr 1fr}.stage21-notification-filter .inline-check{grid-column:1/-1}.stage21-notification-filter button{width:100%}.stage21-notification-toolbar{align-items:flex-start}.stage21-intake-file{align-items:flex-start}.stage21-assignee-contact{display:grid;grid-template-columns:1fr}
  .table-wrap{max-width:100%;overflow-x:auto}.stage19-admin-table{min-width:680px}.admin-row-actions{flex-wrap:wrap}.sidebar-install-card{padding:14px}.install-visual{display:none!important}
}
@media(max-width:480px){
  .main-content{padding:9px!important}.reference-hero.stage21-school-hero{padding:18px 11px 11px!important;background-position:71% center!important}.reference-hero-top{display:block!important}.reference-hero-meta{display:flex!important;flex-direction:row!important;align-items:baseline!important;gap:9px!important;margin:14px 0 0!important;text-align:left!important}.reference-hero-time{font-size:29px!important}.reference-kpis{grid-template-columns:1fr 1fr!important;margin-top:18px!important}.reference-kpi{min-height:100px!important;padding:10px 8px!important;grid-template-columns:33px minmax(0,1fr)!important}.reference-kpi-icon{width:33px!important;height:33px!important}.reference-kpi-label{font-size:12.5px!important}.reference-kpi-value strong{font-size:21px!important}.reference-kpi-helper{font-size:11.5px!important}.stage21-dashboard-period-custom{grid-template-columns:1fr}.stage21-dashboard-period-custom span{display:none}.stage21-notification-filter{grid-template-columns:1fr}.stage21-notification-filter>*{grid-column:1!important}.reference-type-row{grid-template-columns:28px minmax(72px,.8fr) minmax(60px,1.2fr)!important}.reference-type-row strong{grid-column:2/-1;text-align:right}.stage19-admin-table{min-width:620px}
}

/* Stage0021 install-card visual: shared icon language, no decorative phone mock-up. */
.sidebar-install-card{display:grid;grid-template-columns:minmax(0,1fr) 56px;grid-template-areas:"copy icon" "button button";align-items:start;gap:12px;min-height:0!important;padding:15px!important}
.sidebar-install-copy{grid-area:copy;width:auto!important;min-width:0}.install-visual{grid-area:icon;position:static!important;width:52px!important;height:52px!important;border:1px solid rgba(145,185,255,.28)!important;border-radius:14px!important;background:rgba(69,119,211,.18)!important;transform:none!important;box-shadow:none!important;color:#a9c9ff!important;display:grid!important;place-items:center!important;opacity:1!important}.install-phone-icon{width:27px!important;height:27px!important}.install-bell-icon{display:none!important}.sidebar-install-button{grid-area:button;position:static!important;left:auto!important;right:auto!important;bottom:auto!important;width:100%;margin-top:0}
@media(max-width:768px){.sidebar-install-card{grid-template-columns:minmax(0,1fr) 52px}.install-visual{display:grid!important;width:48px!important;height:48px!important}.install-phone-icon{width:25px!important;height:25px!important}}

/* PWA Stage0021 R1 — shared modal, select/date controls, audit usability, responsive recovery. */
body.r1-modal-open{overflow:hidden}
.r1-action-dialog{width:min(92vw,560px);max-width:560px;border:0;padding:0;background:transparent}
.r1-action-dialog::backdrop{background:rgba(12,27,45,.52);backdrop-filter:blur(2px)}
.r1-action-modal{width:100%;display:grid;gap:14px;padding:22px;border-radius:18px;box-shadow:0 24px 60px rgba(14,33,54,.28)}
.r1-action-modal h2{margin:0;font-size:22px;letter-spacing:-.025em}.r1-modal-description{margin:-4px 0 0;line-height:1.65}
.r1-modal-meta{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 14px;margin:0;padding:12px 13px;border:1px solid #e3e9f0;border-radius:11px;background:#f8fafc}.r1-modal-meta dt{font-size:13px;font-weight:800;color:#617187}.r1-modal-meta dd{margin:0;min-width:0;overflow-wrap:anywhere;color:#263b52;font-weight:650}
.r1-action-modal textarea{min-height:92px}.r1-modal-actions{margin-top:2px}.r1-modal-confirm{min-width:108px}.r1-action-modal .danger-button{min-height:42px;padding:0 17px}

/* Common select/combobox visual token. The full field remains the click target. */
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23566b82' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 9 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px 18px;padding-right:44px!important}
.stage20-combobox{position:relative}.stage20-combobox>input[type="search"]{padding-right:44px!important}.stage20-combobox::after{content:"";position:absolute;right:14px;top:21px;width:18px;height:18px;transform:translateY(-50%);pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23566b82' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 9 5 5 5-5'/%3E%3C/svg%3E") center/18px 18px no-repeat;opacity:.9}
.stage20-combobox:focus-within::after{filter:saturate(1.2);opacity:1}.r1-local-combobox-results{max-height:320px;overflow:auto}.r1-local-combobox-results small{color:#77879a}

/* Common DateField token. Browser-native indicator stays transparent; JS showPicker makes the entire input clickable. */
input[type="date"].stage21-date-input,input[type="date"]{min-width:172px!important;min-height:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%2346576c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 14px center!important;background-size:20px 20px!important;padding:0 46px 0 12px!important;font-variant-numeric:tabular-nums}
input[type="date"]::-webkit-calendar-picker-indicator{opacity:0!important;width:40px!important;height:100%!important;margin:0 -8px 0 0!important;padding:0!important;cursor:pointer!important}
.incident-filter-secondary input[type="date"]{padding-right:46px!important}.incident-filter-secondary input[type="date"]::-webkit-calendar-picker-indicator{opacity:0!important;width:40px!important;height:100%!important;margin-right:-8px!important}

/* Audit filters are structure-first and remain usable without knowing internal technical codes. */
.r1-audit-filter-grid{grid-template-columns:repeat(4,minmax(165px,1fr))!important}.r1-audit-search{grid-column:span 2}.r1-audit-filter-grid .audit-actions{grid-column:1/-1}.r1-audit-card .audit-table-wrap{overflow:auto;border:1px solid #e5ebf2;border-radius:12px}.r1-page-number-pager{flex-wrap:wrap}.r1-page-button{min-width:40px;padding:0 10px}.r1-page-summary{min-width:110px;text-align:center;color:#65758a}

/* Reporter contact is intentionally a detail/intake field, not a list column. */
.stage20-intake-card label>small{font-size:12.5px;line-height:1.5;font-weight:500}.stage21-phone-link{overflow-wrap:anywhere}

/* Date-range fields must retain a full YYYY-MM-DD plus the icon; quick buttons wrap before the date is clipped. */
.stage21-dashboard-period{grid-template-columns:minmax(160px,.72fr) minmax(300px,auto) minmax(390px,1fr)!important}.stage21-dashboard-period-custom{grid-template-columns:minmax(172px,1fr) 14px minmax(172px,1fr) minmax(72px,auto)!important}.stage21-dashboard-period-custom input[type="date"]{width:100%;min-width:172px!important}

/* Narrow desktop/tablet shell recovery. 1180px is deliberately wider than the old mobile breakpoint. */
@media(max-width:1180px){
  html,body{max-width:100%;overflow-x:hidden}.app-shell{grid-template-columns:1fr!important}.app-stage{width:100%;max-width:100vw;min-width:0;overflow-x:hidden}.main-content,#page-content{min-width:0;max-width:100%;overflow-x:hidden}
  .sidebar{position:fixed!important;left:0;top:0;bottom:0;width:min(var(--sidebar),86vw);height:100dvh!important;transform:translateX(-105%);transition:transform .18s ease;box-shadow:18px 0 42px rgba(4,20,39,.28);z-index:90}.sidebar.open{transform:translateX(0)}
  .mobile-only{display:inline-flex!important}.desktop-only{display:none!important}.topbar{padding:0 14px!important;gap:10px}.topbar-main{min-width:0}.welcome-copy{min-width:0}.welcome-copy strong{white-space:normal;line-height:1.25}.role-chip{white-space:normal;text-align:center}.topbar-actions{gap:7px;min-width:0}.topbar-divider{display:none}.profile-menu-toggle{min-width:0}.user-chip-copy{display:none}.topbar-install-action{padding:0 8px}
  .reference-dashboard{grid-template-columns:1fr!important;gap:14px!important;max-width:100%!important}.reference-dashboard-primary,.reference-dashboard-side{min-width:0!important;max-width:100%!important}.reference-dashboard-side{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
  .reference-hero.stage21-school-hero{min-height:0!important;padding:28px 18px 16px!important}.reference-kpis{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;margin-top:26px!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}.reference-kpi{min-width:0!important}.reference-hero-message{min-width:0}.reference-hero-message h1{white-space:pre-line!important;overflow-wrap:anywhere}.reference-hero-top{gap:18px}.reference-hero-meta{flex:0 0 auto}
  .reference-panel,.reference-side-card,.card{min-width:0!important;max-width:100%!important}.reference-alert-item{min-width:0}.reference-alert-copy strong{max-width:100%}
  .stage21-dashboard-period{grid-template-columns:1fr!important}.stage21-dashboard-period>div:first-child,.stage21-dashboard-period-custom{grid-column:auto!important}.stage21-period-quick{order:2}.stage21-dashboard-period-custom{order:3;grid-template-columns:minmax(172px,1fr) 14px minmax(172px,1fr) minmax(72px,auto)!important}
  .r1-audit-filter-grid{grid-template-columns:repeat(2,minmax(180px,1fr))!important}.r1-audit-search{grid-column:1/-1}
}
@media(max-width:768px){
  select{background-size:20px 20px;background-position:right 14px center;padding-right:44px!important}.stage20-combobox::after{width:20px;height:20px;background-size:20px 20px}
  input[type="date"].stage21-date-input,input[type="date"]{min-width:0!important;width:100%!important;background-size:21px 21px!important}
  .reference-dashboard-side{grid-template-columns:1fr!important}.reference-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}.reference-hero-top{display:block!important}.reference-hero-meta{margin-top:14px!important;align-items:flex-start!important;text-align:left!important}
  .stage21-dashboard-period-custom{grid-template-columns:1fr 1fr!important}.stage21-dashboard-period-custom span{display:none}.stage21-dashboard-period-custom button{grid-column:1/-1}.stage21-period-quick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible!important}.stage21-period-quick button{width:100%;min-width:0;white-space:normal}
  .r1-audit-filter-grid{grid-template-columns:1fr!important}.r1-audit-filter-grid>*{grid-column:1!important}.r1-action-modal{padding:18px 15px}.r1-modal-meta{grid-template-columns:1fr;gap:3px}.r1-modal-meta dd{margin-bottom:7px}.r1-modal-actions{display:grid;grid-template-columns:1fr 1fr}.r1-modal-actions button{width:100%}
}
@media(max-width:480px){
  .reference-kpis{grid-template-columns:1fr!important}.stage21-period-quick{grid-template-columns:repeat(2,minmax(0,1fr))}.stage21-dashboard-period-custom{grid-template-columns:1fr!important}.stage21-dashboard-period-custom button{grid-column:auto}.topbar{min-height:var(--topbar);height:auto;padding-top:7px!important;padding-bottom:7px!important}.welcome-copy{align-items:flex-start}.role-chip{font-size:12px}.topbar-icon-button{width:38px}.profile-menu-toggle{padding:2px}.avatar{width:40px;height:40px}
}

/* ========================================================================== */
/* Stage0022 — release trust / legal public pages / canonical icon language.  */
/* ========================================================================== */
:root{
  --icon-stroke:1.8;
  --icon-size-sm:16px;
  --icon-size-md:20px;
  --icon-size-lg:24px;
  --icon-badge-sm:40px;
  --icon-badge-md:52px;
  --icon-badge-lg:62px;
}
.ui-icon,.brand-icon,.avatar-icon,.install-phone-icon,.install-bell-icon,.profile-chevron{
  fill:none;stroke:currentColor;stroke-width:var(--icon-stroke);stroke-linecap:round;stroke-linejoin:round;
}
.reference-push-bell.ready{background:linear-gradient(145deg,#ddd8ff,#c9c5ff);color:#159447}
.reference-push-bell.warning{background:#fff0dc;color:#e78918}
.reference-push-bell .ui-icon{width:30px;height:30px}
.install-visual{color:#b9d4ff!important;background:rgba(55,103,188,.22)!important;border-color:rgba(149,190,255,.34)!important}
.install-phone-icon{width:26px!important;height:26px!important}
.auth-card-icon{font-size:0}.auth-card-icon .ui-icon{width:23px;height:23px}

/* Login legal/operator footer: always available before authentication. */
.auth-form-panel{align-content:center;gap:24px}
.auth-legal-footer{width:min(100%,520px);text-align:center;color:#73849a;font-size:12.5px;line-height:1.65;padding:4px 10px 0}
.auth-legal-footer p{margin:3px 0;overflow-wrap:anywhere}
.auth-legal-links{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:10px}
.auth-legal-links a{color:#425b78;text-decoration:none;font-weight:700}
.auth-legal-links a:hover{text-decoration:underline}.auth-legal-links a:focus-visible{border-radius:5px}
.auth-legal-links strong{color:#172a44}
.auth-copyright{margin-top:13px!important;color:#93a2b5!important;font-size:11.5px}

/* Public legal documents. */
.legal-document-body{min-height:100vh;background:linear-gradient(180deg,#eef4fb 0,#f8fafc 240px,#f4f6fa 100%)}
.legal-document-shell{width:min(960px,calc(100% - 28px));margin:0 auto;padding:42px 0 56px}
.legal-document-header{padding:0 8px 22px}.legal-document-header h1{font-size:clamp(2rem,5vw,3rem);margin:.15rem 0 .45rem;letter-spacing:-.045em}.legal-document-header>p:not(.eyebrow){margin:0;color:#63748a}.legal-back-link{display:inline-flex;align-items:center;gap:7px;margin-bottom:24px;text-decoration:none;font-weight:750;color:#315eae}.legal-back-icon{width:17px;height:17px;transform:rotate(180deg)}.legal-effective{display:inline-flex;margin-top:14px;padding:6px 10px;border:1px solid #dce5f0;border-radius:999px;background:#fff;color:#607287;font-size:12px;font-weight:700}
.legal-document-card{background:#fff;border:1px solid #dfe7f0;border-radius:20px;padding:clamp(22px,4vw,42px);box-shadow:0 16px 44px rgba(25,51,82,.07)}
.legal-document-card section+section{border-top:1px solid #edf1f5;margin-top:28px;padding-top:28px}.legal-document-card h2{margin:0 0 12px;font-size:1.15rem;letter-spacing:-.025em}.legal-document-card p,.legal-document-card li{color:#42546b;line-height:1.78}.legal-document-card p{margin:8px 0}.legal-document-card ul{margin:8px 0;padding-left:1.25rem}.legal-document-card li+li{margin-top:7px}.legal-document-card a{font-weight:750}.legal-draft-note{background:#fff9ed;border:1px solid #f1dfb8!important;border-radius:12px;padding:18px!important;margin-top:30px!important}.legal-draft-note h2{color:#81591b}.legal-document-footer{display:grid;gap:4px;text-align:center;padding:24px 12px 0;color:#75859a;font-size:12px}.legal-document-footer a{font-weight:750;text-decoration:none}.legal-document-footer strong{color:#42566f}

/* Stage0022 dashboard period: allocate real width to YYYY-MM-DD + calendar + apply. */
@media(min-width:1181px){
  .stage21-dashboard-period{grid-template-columns:minmax(160px,180px) minmax(330px,max-content) minmax(480px,1fr)!important;gap:10px!important}
  .stage21-dashboard-period-custom{grid-template-columns:minmax(172px,1fr) 14px minmax(172px,1fr) minmax(72px,auto)!important;gap:8px!important;min-width:0}
  .stage21-dashboard-period-custom input[type="date"]{min-width:172px!important;width:100%!important}
  .stage21-dashboard-period-custom button{min-width:72px!important;white-space:nowrap!important;padding-inline:14px!important}
  .stage21-period-quick{gap:5px!important;flex-wrap:nowrap!important}
  .stage21-period-quick button{white-space:nowrap!important;padding-inline:9px!important}
}
@media(max-width:1180px) and (min-width:769px){
  .stage21-dashboard-period-custom{grid-template-columns:minmax(172px,1fr) 14px minmax(172px,1fr) minmax(72px,auto)!important}
  .stage21-dashboard-period-custom input[type="date"]{min-width:172px!important}
  .stage21-dashboard-period-custom button{white-space:nowrap!important;min-width:72px!important}
}
@media(max-width:768px){
  .auth-form-panel{gap:18px}.auth-legal-footer{padding-inline:4px}.auth-legal-links{gap:9px;flex-wrap:wrap}
  .legal-document-shell{width:min(100% - 20px,960px);padding-top:24px}.legal-document-card{border-radius:15px}
}
@media(max-width:480px){
  .auth-legal-footer{font-size:11.8px}.auth-copyright{font-size:11px}.legal-document-shell{width:min(100% - 14px,960px)}
}

/* Destructive lifecycle action is visually distinct from reversible soft delete. */
.permanent-delete-button{border:1px solid #d92d20;background:#fff;color:#b42318;border-radius:8px;font-weight:800;cursor:pointer}
.permanent-delete-button:hover{background:#fff1f0}.permanent-delete-button .ui-icon{width:15px;height:15px}

/* ========================================================================== */
/* Stage0023 — UI correction batch + SAMS Support Request MVP.               */
/* ========================================================================== */

/* Login shell returns to a focused card; legal/operator information is a page footer. */
.auth-page-stack{width:min(1120px,100%);display:grid;justify-items:center;gap:16px}
.auth-page-stack>.auth-shell{width:100%;min-height:min(650px,calc(100vh - 185px))}
.auth-page-stack>.auth-legal-footer{width:min(900px,100%);padding:2px 12px 0}
.auth-brand-korean{margin:5px 0 0;color:#d9e7f7;font-size:14px;font-weight:700;letter-spacing:-.02em}
.auth-brand-lockup>div{min-width:0}.auth-brand-lockup h1{overflow-wrap:anywhere}
.security-note{display:none!important}

/* Modal surface correction: only the backdrop is dimmed. */
.r1-action-dialog{opacity:1!important;filter:none!important;isolation:isolate;background:transparent!important}
.r1-action-dialog::backdrop{background:rgba(12,27,45,.52)!important;backdrop-filter:blur(2px)}
.r1-action-dialog>.r1-action-modal,.r1-action-modal{background:#fff!important;color:var(--text)!important;opacity:1!important;filter:none!important;isolation:isolate}
.r1-action-modal input,.r1-action-modal textarea,.r1-action-modal select{background-color:#fff;color:var(--text)}

/* Common DateField correction: one SAMS calendar glyph; no native indicator residue. */
input[type="date"]{appearance:none!important;-webkit-appearance:none!important;color:var(--text)!important}
input[type="date"]::-webkit-calendar-picker-indicator{display:none!important;-webkit-appearance:none!important;appearance:none!important;width:0!important;height:0!important;margin:0!important;padding:0!important;opacity:0!important}
input[type="date"]::-webkit-clear-button,input[type="date"]::-webkit-inner-spin-button{display:none!important;-webkit-appearance:none!important;appearance:none!important}

/* Permanent delete uses text only; no decorative trash glyph. */
.permanent-delete-button .ui-icon{display:none!important}

/* Support Request workspace. */
.support-request-page{display:grid;gap:16px;min-width:0}
.support-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:9px}
.support-filter-grid>label{display:grid;gap:5px;color:#52647a;font-size:13px;font-weight:750;min-width:0}
.support-filter-grid input,.support-filter-grid select{width:100%;min-width:0;min-height:42px;border:1px solid #d7e0e9;border-radius:9px;background:#fff;padding:0 10px;color:#20354d}
.support-request-table{min-width:1040px}
.support-mobile-list{display:none}
.support-type-chip{display:inline-flex;align-items:center;min-height:28px;padding:0 9px;border-radius:999px;background:#edf4ff;color:#315eae;font-size:12px;font-weight:800}
.support-detail-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}
.support-detail-heading h2{margin:8px 0 0;font-size:clamp(21px,2vw,28px);line-height:1.35;overflow-wrap:anywhere}
.support-detail-list{margin-bottom:20px}
.support-description,.support-resolution p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.75}
.support-resolution{margin-top:22px;padding:16px;border:1px solid var(--border-default);border-radius:12px;background:var(--surface-soft)}
.support-resolution h3{margin:0 0 8px;color:var(--status-success-text)}
.support-timeline{display:grid;gap:0}
.support-timeline-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.support-timeline-head span{font-size:12px;white-space:nowrap}
.support-comment-form textarea{min-height:120px}
.support-attachment-card{align-self:start}
.support-mobile-card{width:100%;border:1px solid #e0e7ef;border-radius:13px;background:#fff;padding:14px;text-align:left;color:var(--text);display:grid;gap:10px;box-shadow:var(--shadow-soft)}
.support-mobile-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.support-mobile-card-title{font-weight:800;font-size:15px;line-height:1.45;overflow-wrap:anywhere}
.support-mobile-card-meta{display:flex;flex-wrap:wrap;gap:5px 12px;color:#6c7a8e;font-size:12.5px}
.support-mobile-card-meta span:empty{display:none}

/* Keep Support Request controls within the viewport instead of shrinking desktop tables. */
@media(max-width:1180px){
  .support-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:1024px){
  .support-desktop-list{display:none!important}.support-mobile-list{display:grid;gap:10px}
  .support-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .support-detail-grid{grid-template-columns:1fr!important}
}
@media(max-width:768px){
  .auth-page{padding:12px}.auth-page-stack{gap:12px}.auth-page-stack>.auth-shell{min-height:0}.auth-page-stack>.auth-legal-footer{padding:2px 5px 14px}
  .support-filter-grid{grid-template-columns:1fr}.support-detail-heading{align-items:flex-start}.support-timeline-head{align-items:flex-start;flex-direction:column;gap:2px}.support-timeline-head span{white-space:normal}
}
@media(max-width:430px){
  .auth-legal-footer{font-size:11.5px;line-height:1.55}.auth-legal-links{margin-bottom:7px}
  .support-mobile-card{padding:12px}.support-mobile-card-head{align-items:flex-start}.support-detail-heading{display:grid}.support-detail-heading>.status{justify-self:start}
}

/* Stage0023 R2 candidate: compact login legal/operator footer (CR-0215). */
.auth-legal-footer-compact{gap:5px!important;padding-top:14px!important;padding-bottom:14px!important}
.auth-legal-footer-compact .auth-legal-links{margin-bottom:2px}
.auth-legal-footer-compact .auth-legal-links a{font-weight:800}
.auth-legal-footer-compact .auth-operator-line,.auth-legal-footer-compact .auth-support-line,.auth-legal-footer-compact .auth-copyright{margin:0!important}
.auth-legal-footer-compact .auth-operator-line{color:#607089}
.auth-legal-footer-compact .auth-support-line{color:#71819a}
.auth-legal-footer-compact .auth-copyright{margin-block-start:3px!important;color:#98a5b8}
@media (max-width:640px){.auth-legal-footer-compact{padding:12px 12px 16px!important}.auth-legal-footer-compact .auth-legal-links{gap:7px!important}.auth-legal-footer-compact .auth-operator-line,.auth-legal-footer-compact .auth-support-line,.auth-legal-footer-compact .auth-copyright{font-size:11px!important;line-height:1.45}}

/* ========================================================================== */
/* Stage0024 — approved UI correction / workflow management.                 */
/* ========================================================================== */

/* Structural DateField: users see text + one project calendar button only. */
.stage24-date-field{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 42px;align-items:center;min-width:0;width:100%;min-height:42px;border:1px solid #d7e0e9;border-radius:9px;background:#fff;overflow:hidden}
.stage24-date-field:focus-within{border-color:#7c9dff;box-shadow:0 0 0 3px rgba(55,100,235,.14)}
.stage24-date-text{min-width:0!important;width:100%!important;height:40px!important;min-height:40px!important;border:0!important;border-radius:0!important;background:#fff!important;padding:0 10px!important;font-variant-numeric:tabular-nums;box-shadow:none!important;outline:0!important}
.stage24-date-button{width:42px;height:40px;min-width:42px!important;min-height:40px!important;padding:0!important;border:0!important;border-left:1px solid #e3e8ef!important;border-radius:0!important;background:#fff!important;color:#46576c!important;display:grid!important;place-items:center!important}
.stage24-date-button:hover{background:#f5f8fc!important;color:#315edb!important}.stage24-date-button .ui-icon{width:20px;height:20px}
input[type="date"].stage24-date-native{position:absolute!important;left:-9999px!important;top:auto!important;width:1px!important;height:1px!important;min-width:0!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important;opacity:0!important;pointer-events:none!important;background:none!important}
.stage21-dashboard-period{grid-template-columns:minmax(150px,170px) minmax(295px,max-content) minmax(380px,1fr)!important;gap:10px!important}
.stage21-dashboard-period-custom{grid-template-columns:minmax(184px,1fr) 14px minmax(184px,1fr) minmax(72px,auto);gap:8px;justify-content:end;min-width:0}
.stage21-dashboard-period-custom .stage24-date-field{min-width:184px;max-width:none}
.stage21-dashboard-period-custom>span{text-align:center;color:var(--text-meta)}.stage21-dashboard-period-custom>button{min-width:72px;padding-inline:14px;white-space:nowrap}

/* Focused login composition. */
.auth-page-stack{width:min(1020px,100%)!important;gap:26px!important}
.auth-page-stack>.auth-shell{min-height:min(570px,calc(100vh - 205px))!important;grid-template-columns:minmax(0,1.06fr) minmax(350px,.94fr)!important}
.auth-brand-panel{padding:34px 36px!important}.auth-form-panel{padding:30px!important}
.auth-chip{padding:.48rem .95rem!important;letter-spacing:.01em}
.auth-brand-copy h2{margin:1.05rem 0 .75rem!important;font-size:clamp(1.9rem,3.1vw,2.65rem)!important;line-height:1.2!important}
.auth-brand-copy p{max-width:460px!important;line-height:1.65!important}
.login-preference-row{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.login-preference-row .login-remember-row{margin:0}
.auth-page-stack>.auth-legal-footer{width:min(860px,100%)!important;padding-top:18px!important;margin-top:2px!important}

/* Reference-image scale: semantic icons and school donut are easier to scan. */
.reference-kpi{grid-template-columns:48px minmax(0,1fr)!important;gap:12px;align-items:start}.reference-kpi-icon{width:48px!important;height:48px!important;min-width:48px;min-height:48px;display:flex;align-items:center;justify-content:center;line-height:0}.reference-kpi-svg{display:block;width:24px!important;height:24px!important;max-width:24px;max-height:24px;vertical-align:middle}
.reference-donut-layout{grid-template-columns:164px minmax(0,1fr)!important}.reference-donut{width:150px!important;height:150px!important}.reference-donut:after{inset:32px!important}.reference-donut-center strong{font-size:31px!important}
.reference-alert-item{grid-template-columns:48px minmax(0,1fr) auto!important}.reference-alert-icon{width:46px!important;height:46px!important}.reference-alert-icon .ui-icon{width:23px!important;height:23px!important}
.reference-push-bell{width:68px!important;height:68px!important}.reference-push-bell .ui-icon{width:34px!important;height:34px!important}
.sidebar-install-card{grid-template-columns:minmax(0,1fr) 74px!important;gap:14px!important;padding:16px!important}.install-visual{width:70px!important;height:70px!important;border-radius:18px!important}.install-phone-icon{width:38px!important;height:38px!important}.sidebar-install-button{min-height:46px!important}.sidebar-install-button .ui-icon{width:20px!important;height:20px!important}
.stage24-incident-edit{max-width:min(94vw,640px)}.stage24-change-history{border-left-color:#7b61e8!important}.stage24-incident-management .actions{justify-content:flex-start;flex-wrap:wrap}

@media(max-width:1180px) and (min-width:769px){
  .stage21-dashboard-period{grid-template-columns:1fr 1fr!important}.stage21-dashboard-period>div:first-child{grid-column:1/-1}.stage21-dashboard-period-custom{grid-column:1/-1!important;grid-template-columns:minmax(152px,165px) 14px minmax(152px,165px) minmax(68px,auto)!important;justify-content:start}
}
@media(max-width:768px){
  .auth-page-stack{gap:16px!important}.auth-page-stack>.auth-shell{display:block!important}.auth-brand-panel{padding:24px 20px!important}.auth-form-panel{padding:22px 18px!important}.auth-brand-copy h2{font-size:clamp(1.7rem,7vw,2.15rem)!important}.login-preference-row{gap:14px 20px}
  .stage21-dashboard-period{grid-template-columns:1fr!important}.stage21-dashboard-period-custom{grid-template-columns:1fr 14px 1fr!important}.stage21-dashboard-period-custom .stage24-date-field{min-width:0;max-width:none}.stage21-dashboard-period-custom button{grid-column:1/-1}
  .reference-kpi{grid-template-columns:40px minmax(0,1fr)!important}.reference-kpi-icon{width:40px!important;height:40px!important}.reference-kpi-svg{width:20px!important;height:20px!important}
  .reference-donut{display:block!important;width:126px!important;height:126px!important}.reference-donut:after{inset:28px!important}.reference-donut-layout{grid-template-columns:140px minmax(0,1fr)!important}
  .sidebar-install-card{grid-template-columns:minmax(0,1fr) 66px!important}.install-visual{display:grid!important;width:62px!important;height:62px!important}.install-phone-icon{width:34px!important;height:34px!important}
}
@media(max-width:480px){
  .stage21-dashboard-period-custom{grid-template-columns:1fr!important}.stage21-dashboard-period-custom>span{display:none}.stage21-dashboard-period-custom button{grid-column:auto}.reference-donut-layout{grid-template-columns:1fr!important}.reference-donut{width:118px!important;height:118px!important;margin-bottom:6px!important}.reference-donut:after{inset:26px!important}
}

/* PWA Stage0025 — approved DateField/login/registration/test-data UI correction. */
.stage25-date-field{position:relative;display:grid;grid-template-columns:minmax(11ch,1fr) 40px;align-items:center;min-width:0;width:100%;min-height:42px;border:1px solid var(--border-default);border-radius:9px;background:var(--surface-input);overflow:hidden;transition:background .14s,border-color .14s,box-shadow .14s}
.stage25-date-field:focus-within{border-color:var(--brand-primary);box-shadow:0 0 0 3px var(--focus-ring)}
.stage25-date-text{grid-column:1;min-width:11ch;width:100%;min-height:40px!important;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;padding:0 10px!important;font:inherit;font-variant-numeric:tabular-nums;color:var(--text-primary)}
.stage25-date-button{grid-column:2;position:static!important;transform:none!important;width:36px!important;height:40px!important;min-width:36px!important;min-height:40px!important;padding:0!important;border:0!important;border-left:1px solid var(--border-soft)!important;border-radius:0!important;background:transparent!important;color:var(--text-secondary)!important;display:grid!important;place-items:center!important;cursor:pointer}
.stage25-date-button:hover{background:var(--control-hover-bg)!important;color:var(--brand-text)!important}
.stage25-date-button:focus-visible{background:var(--surface-input)!important;color:var(--brand-text)!important;outline:2px solid var(--focus-ring)!important;outline-offset:-3px!important}
.stage25-date-button .ui-icon{width:19px;height:19px}
.stage25-date-native{position:fixed!important;left:-10000px!important;top:-10000px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;border:0!important;padding:0!important}
.stage21-dashboard-period-custom .stage25-date-field{min-width:184px;max-width:none}

/* Login composition: body/card/footer are separate layout regions, not margin hacks. */
.auth-page-stack{min-height:calc(100dvh - 48px);grid-template-rows:minmax(0,1fr) auto;align-items:center;gap:48px!important}
.auth-page-stack>.auth-shell{align-self:center;min-height:540px!important}
.auth-page-stack>.auth-legal-footer{align-self:end;margin:0!important;padding:0 12px 8px!important}
.auth-brand-copy h2{max-width:11em!important;margin:1.1rem 0 .6rem!important;line-height:1.18!important}
.auth-chip{padding:7px 14px!important;letter-spacing:.01em}
.registration-entry{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:15px;color:#71819a;font-size:13.5px}
.link-button{border:0;background:transparent;color:#315edb;font:inherit;font-weight:800;padding:5px 4px;cursor:pointer;text-decoration:none}
.link-button:hover{text-decoration:underline}.link-button:focus-visible{outline:2px solid #7c9dff;outline-offset:2px;border-radius:5px}

.registration-page{padding:28px 16px;align-items:flex-start;overflow:auto}
.registration-card{width:min(680px,100%);margin:auto;background:var(--surface-card);border:1px solid var(--border-default);border-radius:18px;box-shadow:0 20px 55px rgba(29,48,78,.12);padding:28px;display:grid;gap:20px}
.registration-two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.registration-school-control{position:relative}
.registration-school-results{position:absolute;z-index:30;top:calc(100% + 4px);left:0;right:0;max-height:260px;overflow:auto;background:var(--surface-overlay-solid);border:1px solid var(--border-default);border-radius:10px;box-shadow:0 14px 34px rgba(22,43,72,.14);padding:5px}
.registration-school-results .school-search-option{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;border:0;background:var(--surface-card);border-radius:8px;padding:10px;cursor:pointer;color:var(--text-primary)}
.registration-school-results .school-search-option:hover,.registration-school-results .school-search-option:focus-visible{background:var(--surface-hover);outline:0}
.registration-school-results small{color:#71819a}.school-search-empty{padding:12px;color:#71819a;font-size:13px}
.registration-consents{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--border-default);border-radius:10px;background:transparent}
.registration-consents a{color:#315edb;font-weight:700}
.registration-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.test-data-summary{display:grid;gap:12px}.test-data-actions{justify-content:flex-end;margin-top:2px}

@media(max-width:760px){
  .auth-page-stack{min-height:0;grid-template-rows:auto auto;gap:34px!important}.auth-page-stack>.auth-shell{min-height:0!important}.auth-page-stack>.auth-legal-footer{padding-bottom:16px!important}
  .stage21-dashboard-period-custom .stage25-date-field{min-width:0;max-width:none}
  .registration-page{padding:12px}.registration-card{padding:20px 16px;border-radius:14px}.registration-two-col{grid-template-columns:1fr}.registration-actions{display:grid;grid-template-columns:1fr}.registration-actions button{width:100%}
}


/* Stage0025 R1 admin hub / category lifecycle. */
.r1-admin-hub{min-width:0}.r1-admin-hub-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;padding:5px;background:#f4f7fb;border:1px solid #e3e9f1;border-radius:12px}.r1-admin-hub-tab{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 15px;border:0;border-radius:9px;background:transparent;color:#607089;font-weight:800;cursor:pointer}.r1-admin-hub-tab:hover{background:#fff;color:#315edb}.r1-admin-hub-tab.active{background:#fff;color:#315edb;box-shadow:0 2px 8px rgba(35,61,98,.09)}.r1-tab-badge{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#eef2ff;color:#4f46e5;font-size:11px}.r1-admin-hub-content,.r1-admin-tab-panel,.r1-category-result{min-width:0}.r1-category-toolbar{grid-template-columns:minmax(180px,1fr) minmax(130px,180px) auto}.r1-category-table td,.r1-category-table th{vertical-align:middle}.r1-order-actions{white-space:nowrap}.r1-order-actions button{min-width:34px;padding-inline:9px}.r1-sort-help{margin:-2px 0 4px;font-size:12.5px}.r1-admin-hub .stage20-admin-tabs{margin-top:0}
@media(max-width:760px){.r1-admin-hub-tabs{display:grid;grid-template-columns:1fr 1fr}.r1-admin-hub-tab{justify-content:center}.r1-category-toolbar{grid-template-columns:1fr}.r1-category-toolbar .admin-add-button{width:100%}}

/* Stage0026 work/inspection domain */
.stage26-maintenance-page{display:grid;gap:18px}.stage26-filter{display:grid;grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) minmax(150px,1fr) auto;gap:12px;align-items:end}.stage26-filter label,.stage26-form label{display:grid;gap:7px}.stage26-filter label>span,.stage26-form label>span{font-size:13px;font-weight:700;color:var(--muted)}.stage26-list-card{padding:0;overflow:hidden}.stage26-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px}.stage26-table-wrap{overflow:auto}.stage26-click-row{cursor:pointer}.stage26-click-row:hover{background:var(--panel-soft)}.stage26-badge{display:inline-flex;align-items:center;min-height:26px;padding:3px 9px;border:1px solid var(--line);border-radius:999px;font-size:12px;font-weight:800}.stage26-badge.info{background:var(--status-info-bg);border-color:color-mix(in srgb,var(--status-info-text) 32%,var(--border-default));color:var(--status-info-text)}.stage26-badge.progress{background:var(--status-warning-bg);border-color:color-mix(in srgb,var(--status-warning-text) 32%,var(--border-default));color:var(--status-warning-text)}.stage26-badge.done{background:var(--status-success-bg);border-color:color-mix(in srgb,var(--status-success-text) 32%,var(--border-default));color:var(--status-success-text)}.stage26-badge.danger{background:var(--status-danger-bg);border-color:color-mix(in srgb,var(--status-danger-text) 32%,var(--border-default));color:var(--status-danger-text)}.stage26-form{display:grid;gap:18px}.stage26-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.stage26-full{grid-column:1/-1}.stage26-target-picker{display:grid;gap:12px;padding-top:8px;border-top:1px solid var(--line)}.stage26-school-search{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,2fr) auto;gap:10px}.stage26-target-draft-list{display:grid;gap:8px}.stage26-target-draft{display:grid;grid-template-columns:minmax(160px,1fr) minmax(240px,3fr) auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft)}.stage26-target-grid{display:grid;gap:14px}.stage26-target-card{display:grid;gap:12px}.stage26-target-card .stage26-section-head{padding:0}.stage26-target-card h3{margin:0}.stage26-target-card p{margin:4px 0 0}.stage26-meta-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.stage26-meta-grid>div{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}.stage26-meta-grid span{font-size:12px;color:var(--muted)}.stage26-meta-grid strong{font-size:14px;word-break:break-word}.stage26-history{border-top:1px solid var(--line);padding-top:10px}.stage26-history summary{cursor:pointer;font-weight:800}.stage26-history-row{display:grid;grid-template-columns:minmax(160px,1fr) auto;gap:6px 12px;padding:10px 0;border-bottom:1px dashed var(--line)}.stage26-history-row p{grid-column:1/-1;margin:0}.stage26-attachment-list{display:grid;gap:8px;padding:0 18px 16px}.stage26-upload-row{display:flex;gap:10px;align-items:center;padding:0 18px 18px}.stage26-plan-summary{display:grid;gap:14px}.stage26-plan-summary h2{margin:0 0 6px}.stage26-plan-summary p{margin:0;white-space:pre-wrap}.danger-text{color:var(--danger,#b91c1c)}
@media(max-width:900px){.stage26-filter{grid-template-columns:1fr 1fr}.stage26-form-grid{grid-template-columns:1fr 1fr}.stage26-meta-grid{grid-template-columns:1fr 1fr}.stage26-school-search{grid-template-columns:1fr}.stage26-target-draft{grid-template-columns:1fr auto}.stage26-target-draft .muted{grid-column:1/-1}}
@media(max-width:620px){.stage26-filter,.stage26-form-grid,.stage26-meta-grid{grid-template-columns:1fr}.stage26-filter button{width:100%}.stage26-target-draft{grid-template-columns:1fr}.stage26-target-actions,.stage26-upload-row{flex-direction:column;align-items:stretch}.stage26-history-row{grid-template-columns:1fr}.stage26-history-row p{grid-column:1}.stage26-section-head{align-items:flex-start;flex-direction:column}.stage26-work-table{min-width:820px}}
.stage26-recipient-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:10px;max-height:220px;overflow:auto}.stage26-recipient-option{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px;font-size:13px}.stage26-recipient-option input{width:18px;height:18px;flex:0 0 auto}@media(max-width:620px){.stage26-recipient-list{grid-template-columns:1fr}}

/* Stage0026 C2 System Settings Foundation */
.c2-system-settings{display:grid;gap:16px}.c2-settings-tabs{display:flex;gap:8px;flex-wrap:wrap}.c2-settings-tab{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer}.c2-settings-tab.active{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.c2-settings-host{display:grid;gap:16px}.c2-settings-card{display:grid;gap:16px}.c2-settings-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.c2-version{font-size:12px;color:var(--muted);white-space:nowrap}.c2-policy-status{display:grid;gap:4px;padding:14px;border:1px solid var(--line);border-radius:12px;background:transparent}.c2-policy-status.delayed{border-style:dashed}.c2-policy-status span{color:var(--muted);font-size:13px}.c2-settings-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.c2-toggle-row,.c2-readonly-field{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:transparent}.c2-toggle-row input{width:18px;height:18px}.c2-toggle-row span{display:grid;gap:2px}.c2-toggle-row small,.c2-readonly-field span{color:var(--muted)}.c2-readonly-field{justify-content:space-between}.c2-settings-readonly-grid{display:grid;grid-template-columns:minmax(150px,.55fr) minmax(0,1fr);margin:0;border-top:1px solid var(--line)}.c2-settings-readonly-grid dt,.c2-settings-readonly-grid dd{margin:0;padding:12px;border-bottom:1px solid var(--line)}.c2-settings-readonly-grid dt{color:var(--muted);font-weight:700}.c2-settings-readonly-grid dd{overflow-wrap:anywhere}
@media (max-width:720px){.c2-settings-form-grid{grid-template-columns:1fr}.c2-settings-head{display:grid}.c2-settings-readonly-grid{grid-template-columns:1fr}.c2-settings-readonly-grid dt{padding-bottom:3px;border-bottom:0}.c2-settings-readonly-grid dd{padding-top:3px}.c2-settings-tabs{display:grid;grid-template-columns:1fr 1fr}.c2-settings-tab:last-child{grid-column:1/-1}}
.c2-notification-policy-banner{display:flex;justify-content:space-between;gap:12px;align-items:center}.c2-notification-policy-banner span{color:var(--muted)}.c2-notification-policy-banner.delayed{border-style:dashed}@media(max-width:720px){.c2-notification-policy-banner{display:grid}}

/* Stage0026 C3 - compact settings, common datetime, and school selectors */
.c3-notification-policy{max-width:880px;width:100%;justify-self:start}.c3-settings-top-row{display:grid;grid-template-columns:minmax(240px,1fr) minmax(220px,.8fr);gap:12px}.c3-quiet-time-group{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:transparent;max-width:620px}.c3-quiet-time-inputs{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:12px}.c3-settings-toggle-row{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px}.c3-datetime-field{display:grid;grid-template-columns:minmax(145px,1fr) minmax(105px,.55fr);gap:8px;align-items:center}.c3-datetime-field input{min-width:0}.c3-multi-school-filter,.c3-target-selector{display:grid;gap:8px}.c3-school-results{display:grid;gap:4px;max-height:210px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:6px;background:var(--panel)}.c3-school-results:empty{display:none}.c3-school-results .school-search-option{width:100%;text-align:left}.c3-school-results .school-search-option.selected{border-color:var(--primary);background:var(--panel-soft)}.c3-school-chips{display:flex;gap:6px;flex-wrap:wrap}.c3-school-chip{border:1px solid var(--line);background:var(--panel-soft);border-radius:999px;padding:6px 10px;cursor:pointer;color:var(--text)}.c3-target-mode{display:flex;gap:16px;flex-wrap:wrap}.c3-target-mode label{display:flex!important;align-items:center;gap:7px!important}.c3-target-mode input{width:18px;height:18px}.c3-target-summary{font-weight:700}.c3-compact-empty{display:grid;gap:5px;padding:6px 18px 18px;max-width:680px}.c3-empty-list-card{min-height:0}.c3-maintenance-filter{grid-template-columns:minmax(180px,1.3fr) minmax(130px,.7fr) minmax(130px,.7fr) minmax(280px,1.6fr) auto}.incident-filter-primary .c3-multi-school-filter,.support-filter-grid .c3-multi-school-filter{min-width:260px}
@media(max-width:900px){.c3-settings-toggle-row{grid-template-columns:1fr 1fr}.c3-maintenance-filter{grid-template-columns:1fr 1fr}.c3-maintenance-filter label:has(.c3-multi-school-filter){grid-column:1/-1}}
@media(max-width:620px){.c3-settings-top-row,.c3-quiet-time-inputs,.c3-settings-toggle-row,.c3-datetime-field,.c3-maintenance-filter{grid-template-columns:1fr}.c3-notification-policy{max-width:none}.c3-maintenance-filter label:has(.c3-multi-school-filter){grid-column:auto}.c3-school-results{max-height:180px}}

/* Stage0026 C4 Common Filter Recovery + Excel Schedule Import */
.c3-notification-policy.c4-settings-surface{max-width:none;width:100%;justify-self:stretch}
.c4-settings-inner{display:grid;gap:16px;max-width:880px;width:100%}
.c4-filter-main{align-items:start}
.c4-filter-main>label{align-content:start;min-width:0}
.c4-filter-main>label>input,.c4-filter-main>label>select,.c4-filter-main>label>.school-search-control,.c4-filter-main>label>.c4-multi-school-filter{min-height:42px;height:42px}
.c4-multi-school-filter{position:relative;display:block;min-width:0}
.c4-multi-school-filter>input{width:100%;height:42px;min-height:42px;margin:0}
.c4-school-popover{position:absolute;z-index:80;left:0;right:0;top:calc(100% + 6px);display:grid;gap:6px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 14px 34px rgba(15,35,62,.16);max-height:310px;overflow:hidden}
.c4-school-popover[hidden]{display:none!important}
.c4-school-popover-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 2px 4px;font-size:12px}
.c4-school-popover-close{border:0;background:transparent;color:var(--muted);font-weight:800;cursor:pointer;padding:5px 7px;border-radius:7px}
.c4-school-popover-close:hover,.c4-school-popover-close:focus-visible{background:var(--panel-soft);color:var(--text)}
.c4-school-popover-list{display:grid;gap:4px;overflow:auto;max-height:250px}
.c4-school-no-result{padding:10px}
.c4-school-selection-tray{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px 12px;padding:10px 12px;border-top:1px solid var(--line);background:transparent;min-height:44px}
.c4-school-selection-tray>strong{font-size:13px;white-space:nowrap}
.c4-school-selection-tray .c4-school-tray-chips{min-width:0}
.c4-school-selection-tray>small{white-space:nowrap}
.c4-filter-card{display:grid;gap:8px}
.c4-filter-card .c3-maintenance-filter{padding:0;border:0;background:transparent;box-shadow:none}
.c4-excel-schedule-card{display:grid;gap:12px}
.c4-excel-actions{display:grid;grid-template-columns:auto minmax(240px,1fr) auto;align-items:center;gap:10px;padding:0 18px 18px}
.c4-excel-pending{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 18px;padding:12px 14px;border:1px dashed #f0b44d;border-radius:12px;background:#fffaf0}
.c4-excel-pending p{margin:4px 0 0}
.c4-excel-dialog{width:min(1040px,calc(100vw - 28px))}
.c4-excel-preview{width:100%;max-width:none}
.c4-excel-summary{display:grid;grid-template-columns:repeat(5,minmax(100px,1fr));gap:10px}
.c4-excel-summary>div{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}
.c4-excel-summary span{font-size:12px;color:var(--muted)}
.c4-excel-errors{display:grid;gap:6px;padding:12px;border:1px solid #fecaca;border-radius:10px;background:#fff7f7;max-height:230px;overflow:auto}
.c4-excel-error{font-size:13px;color:#991b1b}
.c4-excel-table{min-width:760px}
@media(max-width:900px){
  .c4-school-selection-tray{grid-template-columns:1fr}.c4-school-selection-tray>small{white-space:normal}
  .c4-excel-actions{grid-template-columns:1fr}.c4-excel-actions button{width:100%}
  .c4-excel-summary{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .c4-settings-inner{max-width:none}.c4-school-popover{position:fixed;left:12px;right:12px;top:auto;bottom:12px;max-height:60vh;z-index:220}
  .c4-school-popover-list{max-height:calc(60vh - 54px)}
  .c4-excel-pending{align-items:stretch;flex-direction:column}.c4-excel-summary{grid-template-columns:1fr}
}

/* Stage0026 C5 - Windows client recovery + maintenance target operations */
.c5-overlay-root{position:fixed;inset:0;z-index:4000;pointer-events:none;isolation:isolate}
.c5-school-overlay-popover{position:fixed!important;z-index:4001!important;pointer-events:auto;left:auto;right:auto;top:auto;bottom:auto;width:auto;max-width:calc(100vw - 24px);max-height:min(380px,62vh);overflow:hidden;border:1px solid var(--border-default);background:var(--surface-overlay);box-shadow:0 24px 60px rgba(7,22,42,.24)}
.c5-school-popover-head{display:grid!important;gap:4px!important;align-items:stretch!important}.c5-school-popover-title-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.c5-school-popover-head>small{display:block;line-height:1.45;white-space:normal}
.c5-maintenance-filter{align-items:end!important;gap:10px!important}.c5-maintenance-filter.has-school{grid-template-columns:minmax(220px,1.2fr) minmax(136px,.55fr) minmax(136px,.55fr) minmax(260px,1.35fr) auto}.c5-maintenance-filter.no-school{grid-template-columns:minmax(260px,1.35fr) 150px 150px auto;justify-content:start}
.c5-maintenance-filter>label{align-content:end}.c5-maintenance-filter input,.c5-maintenance-filter select,.c5-filter-select{box-sizing:border-box!important;min-height:42px!important;height:42px!important;line-height:normal!important;padding-top:0!important;padding-bottom:0!important}.c5-maintenance-filter input{padding-left:12px!important;padding-right:12px!important}.c5-maintenance-filter select,.c5-filter-select{padding-left:12px!important;padding-right:42px!important;white-space:nowrap;text-overflow:ellipsis}
.c5-filter-submit{box-sizing:border-box!important;width:auto!important;min-width:82px!important;max-width:96px!important;height:var(--stage20-control)!important;min-height:var(--stage20-control)!important;padding:0 16px!important;flex:0 0 auto!important;font-weight:800!important}
.c5-target-operations{display:grid;gap:14px}.c5-target-summary{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px}.c5-summary-chip{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--text);cursor:pointer}.c5-summary-chip strong{font-variant-numeric:tabular-nums}.c5-summary-chip.active,.c5-summary-chip:hover{border-color:#8b8de3;background:#f0f1ff;color:#3730a3}
.c5-target-filters{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(145px,.75fr) minmax(165px,.85fr) minmax(110px,.55fr) 92px;gap:12px;align-items:end;padding:0 18px}.c5-target-filters label{display:grid;gap:7px;min-width:0}.c5-target-filters label>span{font-size:13px;font-weight:700;color:var(--muted)}.c5-target-filters input,.c5-target-filters select{box-sizing:border-box;min-height:42px;height:42px;line-height:20px}.c5-target-filters select{padding-right:46px!important}
.c5-target-table{min-width:900px}.c5-target-table td:first-child{display:grid;gap:2px}.c5-target-table td:first-child small{display:block}.c5-attention-cell{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.c5-attention-badge{display:inline-flex;align-items:center;min-height:25px;padding:3px 8px;border:1px solid var(--line);border-radius:999px;font-size:12px;font-weight:800;background:var(--panel-soft)}.c5-attention-badge.school_request{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.c5-attention-badge.republish_required{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.c5-attention-badge.schedule_changed{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.c5-attention-badge.unassigned{background:#f8fafc;border-color:#cbd5e1;color:#475569}.c5-detail-toggle{min-width:64px}.c5-target-detail-row>td{background:var(--panel-soft);padding:14px 18px!important}.c5-target-detail-row .stage26-target-card{margin:0}.c5-target-pager{padding:0 18px 18px}
@media(max-width:900px){.c5-maintenance-filter.has-school,.c5-maintenance-filter.no-school{grid-template-columns:1fr 1fr}.c5-maintenance-filter label:has(.c4-multi-school-filter){grid-column:1/-1}.c5-target-filters{grid-template-columns:1fr 1fr}.c5-target-filters>button{width:92px!important}.c5-target-filters label:first-child{grid-column:1/-1}}
@media(max-width:620px){.c5-school-overlay-popover{position:fixed!important;left:12px!important;right:12px!important;top:auto!important;bottom:12px!important;width:auto!important;max-width:none!important;max-height:60vh!important}.c5-maintenance-filter.has-school,.c5-maintenance-filter.no-school,.c5-target-filters{grid-template-columns:1fr}.c5-maintenance-filter label:has(.c4-multi-school-filter),.c5-target-filters label:first-child{grid-column:auto}.c5-filter-submit,.c5-target-filters>button{width:100%!important;max-width:none!important}.c5-target-summary{overflow-x:auto;flex-wrap:nowrap}.c5-summary-chip{flex:0 0 auto}}

/* Stage0026 C6 — Common UI semantic system + schedule precision */
.primary,.secondary,.danger{min-height:42px;transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .15s,filter .15s}
.primary{background:linear-gradient(100deg,#315ff0,#6744e9);border-color:transparent;color:#fff;box-shadow:0 7px 18px rgba(69,77,231,.17)}
.primary:hover:not(:disabled){filter:brightness(.985);transform:translateY(-1px);box-shadow:0 9px 21px rgba(69,77,231,.21)}
.primary:active:not(:disabled){transform:translateY(0);filter:brightness(.96)}
.secondary{background:linear-gradient(180deg,#f8f7ff,#f0f1ff);color:#4338a8;border-color:#c8c9f6;box-shadow:0 3px 10px rgba(79,70,229,.055)}
.secondary:hover:not(:disabled){background:#e9eaff;border-color:#a6a9ee;color:#3730a3}
.secondary:active:not(:disabled){background:#dfe1ff}
.secondary.neutral-action{background:#fff;color:#334155;border-color:#dbe3ee;box-shadow:none}
.secondary.neutral-action:hover:not(:disabled){background:#f8fafc;border-color:#c7d2df;color:#1f334d}
.secondary.neutral-action:active:not(:disabled){background:#f1f5f9}
.compact-search-action{min-width:88px;white-space:nowrap}
.primary:focus-visible,.secondary:focus-visible,.danger:focus-visible,.danger-button:focus-visible{outline:3px solid rgba(49,95,240,.22);outline-offset:2px}

/* Same visual family, distinct semantics: navigation tab vs filter chip. */
.incident-queue-tab,.c2-settings-tab,.c5-summary-chip{box-sizing:border-box;min-height:38px;border:1px solid #dbe2eb;border-radius:999px;background:#fff;color:#44566d;font-size:13.5px;font-weight:750;box-shadow:none;transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .15s}
.incident-queue-tab:hover:not(.active),.c2-settings-tab:hover:not(.active),.c5-summary-chip:hover:not(.active){background:#f5f6ff;border-color:#c8caf2;color:#4338a8}
.incident-queue-tab.active,.c2-settings-tab.active,.c5-summary-chip.active{border-color:transparent;background:linear-gradient(100deg,#315ff0,#6744e9);color:#fff;box-shadow:0 7px 18px rgba(69,77,231,.16);font-weight:800}
.c2-settings-tab{padding:0 14px;cursor:pointer}
.c2-settings-tabs{gap:9px}
.c5-summary-chip{padding:6px 12px;gap:7px}
.c5-summary-chip.active:hover{color:#fff}

/* SchoolSearch overlay: one header, one count line, incremental server paging. */
.c5-school-overlay-popover{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:0!important;padding:0!important;overflow:hidden!important;background:var(--surface-overlay)}
.c5-school-popover-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:12px!important;padding:10px 12px!important;border-bottom:1px solid var(--border-soft);font-size:13px!important;background:var(--surface-elevated)}
.c5-school-popover-head strong{font-size:14px;color:var(--text-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.c4-school-popover-close{justify-self:end;min-height:32px!important;padding:0 10px!important;white-space:nowrap;border:1px solid var(--border-default)!important;background:var(--surface-soft)!important;color:var(--text-secondary)!important}
.c5-school-result-meta{padding:7px 12px;font-size:12.5px;border-bottom:1px solid var(--border-soft);background:var(--surface-subtle);color:var(--text-muted)}
.c5-school-load-state{min-height:30px;padding:6px 12px 8px;text-align:center;font-size:12px;background:var(--surface-subtle);border-top:1px solid var(--border-soft);color:var(--text-muted)}
.c4-school-popover-list{max-height:none!important;min-height:0;overflow-y:auto;padding:6px;scrollbar-gutter:stable}
.c4-school-popover-list .school-search-option,.c6-target-school-results .school-search-option{min-height:42px;border:1px solid transparent;border-radius:9px;background:var(--surface-card);color:var(--text-primary);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px}
.c4-school-popover-list .school-search-option:hover,.c6-target-school-results .school-search-option:hover{background:var(--surface-hover);border-color:var(--brand-border)}
.c4-school-popover-list .school-search-option.selected,.c6-target-school-results .school-search-option.selected{background:var(--surface-selected);border-color:var(--brand-border);color:var(--brand-text)}
.c4-school-popover-list .school-search-option small,.c6-target-school-results .school-search-option small{color:var(--text-muted);white-space:nowrap}
.c6-target-school-results{max-height:260px;scrollbar-gutter:stable}
.c3-target-selector>.c5-school-result-meta{border:1px solid var(--line);border-bottom:0;border-radius:10px 10px 0 0;margin-bottom:-8px;padding:7px 10px;background:#fbfcfe}
.c3-target-selector>.c5-school-load-state{border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px;margin-top:-8px;padding:6px 10px}

/* Filter actions use the common compact Primary action. */
.c5-filter-submit{box-sizing:border-box!important;width:auto!important;min-width:82px!important;max-width:96px!important;height:var(--stage20-control)!important;min-height:var(--stage20-control)!important;padding:0 16px!important;flex:0 0 auto!important;font-weight:800!important;box-shadow:none!important}

/* Schedule precision editor — date range vs exact datetime is explicit. */
.c6-schedule-editor{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(0,2fr);gap:12px;align-items:end;padding:12px;border:1px solid #e3e8ef;border-radius:12px;background:#fbfcfe}
.c6-schedule-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}
.c6-schedule-range[hidden]{display:none!important}
.c6-schedule-editor label{min-width:0}
.c6-schedule-precision{min-height:42px}

/* Common AttachmentPicker — native input remains functional but is visually replaced. */
.c6-native-file-input{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;opacity:0!important;pointer-events:none!important}
.c6-attachment-upload-row{display:grid;grid-template-columns:minmax(240px,520px) minmax(104px,120px);gap:10px;align-items:center;padding:0 18px 18px;justify-content:start}
.c6-attachment-picker{min-width:0;display:grid;grid-template-columns:auto minmax(120px,1fr);gap:8px;align-items:center}
.c6-attachment-picker:has(.c6-file-camera){grid-template-columns:auto auto minmax(120px,1fr)}
.c6-file-choose,.c6-file-camera,.c6-attachment-upload-action{min-height:42px;white-space:nowrap}
.c6-file-name{display:block;min-width:0;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:9px 11px;border:1px solid var(--border-default);border-radius:10px;background:var(--surface-control);color:var(--text-muted);font-size:14px}
.c6-attachment-picker.has-file .c6-file-name{color:var(--text-primary)}
.c6-attachment-upload-action{width:100%;min-width:104px}
.c6-intake-attachment .c6-attachment-picker{max-width:640px}
.stage21-intake-file strong{display:block;max-width:min(520px,65vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.support-comment-form .c6-attachment-picker{max-width:640px}

@media(max-width:760px){
  .c6-schedule-editor{grid-template-columns:1fr}.c6-schedule-range{grid-template-columns:1fr}
  .c6-attachment-upload-row{grid-template-columns:minmax(0,1fr) 112px;padding-left:0;padding-right:0}
  .c6-file-name{max-width:none}
}
@media(max-width:620px){
  .c5-school-overlay-popover{max-height:65vh!important}
  .c6-attachment-upload-row{grid-template-columns:1fr}.c6-attachment-picker,.c6-attachment-picker:has(.c6-file-camera){grid-template-columns:1fr 1fr}.c6-file-name{grid-column:1/-1}
  .c6-attachment-upload-action{width:100%;min-width:0}
  .c5-filter-submit,.c5-target-filters>button{width:100%!important;max-width:none!important}
}


/* ========================================================================== */
/* Stage0026 C7 — Light baseline completion + semantic Light/Dark Theme System */
/* ========================================================================== */
:root,
html[data-theme="light"]{
  color-scheme:light;
  --surface-page:#f4f6fa;
  --surface-card:#ffffff;
  --surface-elevated:#ffffff;
  --surface-soft:#f8fafc;
  --surface-subtle:#fbfcfe;
  --surface-input:#ffffff;
  --surface-hover:#f5f7fb;
  --surface-selected:#eef0ff;
  --surface-overlay:rgba(255,255,255,.97);
  --surface-panel:#ffffff;
  --surface-control:#ffffff;
  --surface-interactive:#f5f7fb;
  --surface-overlay-solid:#ffffff;
  --text-primary:#10213a;
  --text-secondary:#405066;
  --text-muted:#6c7a8e;
  --text-placeholder:#8391a4;
  --text-disabled:#8795a7;
  --text-link:#315edb;
  --text-link-hover:#244fc2;
  --text-meta:#5f7086;
  --text-inverse:#ffffff;
  --border-default:#e3e8ef;
  --border-soft:#edf1f5;
  --border-strong:#c9d3df;
  --brand-primary:#315ff0;
  --brand-secondary:#6744e9;
  --brand-text:#3730a3;
  --brand-soft:#f0f1ff;
  --brand-border:#c8c9f6;
  --neutral-action-bg:#f2f5f9;
  --neutral-action-hover:#e9eef5;
  --neutral-action-active:#dfe6ee;
  --neutral-action-border:#c7d2df;
  --neutral-action-text:#263a52;
  --preference-off-bg:#f2f5f9;
  --preference-off-hover:#e8edf4;
  --preference-off-border:#bdc9d7;
  --preference-off-text:#32475f;
  --table-head-bg:#f8fafc;
  --table-row-hover:#f8fbff;
  --focus-ring:rgba(49,95,240,.25);
  --shadow-theme-card:0 5px 18px rgba(28,48,77,.045);
  --status-info-bg:#edf4ff;
  --status-info-text:#2563eb;
  --status-success-bg:#eaf9f0;
  --status-success-text:#16864d;
  --status-warning-bg:#fff4df;
  --status-warning-text:#9a5800;
  --status-danger-bg:#fff1f1;
  --status-danger-text:#b42318;
}
html[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0d1522;
  --surface:#131d2b;
  --surface-soft:#182435;
  --text:#e8eef7;
  --muted:#94a6bb;
  --line:#2a394d;
  --surface-page:#0d1522;
  --surface-card:#131d2b;
  --surface-elevated:#131d2b;
  --surface-soft:#172334;
  --surface-subtle:#131d2b;
  --surface-input:#101a28;
  --surface-hover:#1d2a3c;
  --surface-selected:#263253;
  --surface-overlay:rgba(19,29,43,.97);
  --surface-panel:#131d2b;
  --surface-control:#101a28;
  --surface-interactive:#1a283a;
  --surface-overlay-solid:#172335;
  --text-primary:#e8eef7;
  --text-secondary:#c2cfde;
  --text-muted:#94a6bb;
  --text-placeholder:#7f91a8;
  --text-disabled:#73859b;
  --text-link:#9eb7ff;
  --text-link-hover:#c2ceff;
  --text-meta:#a7b6c8;
  --text-inverse:#ffffff;
  --border-default:#2a394d;
  --border-soft:#223044;
  --border-strong:#3b4c61;
  --brand-primary:#8393ff;
  --brand-secondary:#a07eff;
  --brand-text:#b9c2ff;
  --brand-soft:#252d4f;
  --brand-border:#4c5683;
  --neutral-action-bg:#1b293a;
  --neutral-action-hover:#243449;
  --neutral-action-active:#2d3f56;
  --neutral-action-border:#405269;
  --neutral-action-text:#d5e0ec;
  --preference-off-bg:#222d3c;
  --preference-off-hover:#2a394b;
  --preference-off-border:#536176;
  --preference-off-text:#d7e2ed;
  --table-head-bg:#162131;
  --table-row-hover:#172538;
  --focus-ring:rgba(142,160,255,.42);
  --shadow-theme-card:0 8px 24px rgba(0,0,0,.24);
  --status-info-bg:#172d4d;
  --status-info-text:#8dbaff;
  --status-success-bg:#163527;
  --status-success-text:#7fdda8;
  --status-warning-bg:#3a2b16;
  --status-warning-text:#f6c36e;
  --status-danger-bg:#3c2024;
  --status-danger-text:#ff9ca3;
}

/* Approved Button geometry: no per-button vertical nudge hacks. */
.primary,.secondary,.danger,.danger-button,.compact-search-action,.reference-action,
.c6-file-choose,.c6-file-camera,.c6-attachment-upload-action{
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1.2;
  padding-block:0;
  vertical-align:middle;
}
.primary,.secondary,.danger,.danger-button{min-height:42px}
.primary.compact,.secondary.compact,.danger.compact,.compact-action{min-height:36px}
.c5-filter-submit{display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:1.2!important;padding-top:0!important;padding-bottom:0!important}

/* Neutral / reversible preference actions must remain subordinate but visibly actionable. */
.secondary.neutral-action{
  background:var(--neutral-action-bg);
  color:var(--neutral-action-text);
  border-color:var(--neutral-action-border);
  box-shadow:none;
}
.secondary.neutral-action:hover:not(:disabled){background:var(--neutral-action-hover);border-color:var(--border-strong);color:var(--text-primary)}
.secondary.neutral-action:active:not(:disabled){background:var(--neutral-action-active)}
.preference-off-action{
  background:var(--preference-off-bg)!important;
  color:var(--preference-off-text)!important;
  border-color:var(--preference-off-border)!important;
  box-shadow:none!important;
}
.preference-off-action:hover:not(:disabled){background:var(--preference-off-hover)!important;border-color:var(--border-strong)!important}
.primary:focus-visible,.secondary:focus-visible,.danger:focus-visible,.danger-button:focus-visible,.theme-choice:focus-visible,.topbar-theme-toggle:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}

/* Container-aware AttachmentPicker. */
.c7-attachment-container{container-type:inline-size;grid-template-columns:minmax(0,520px) minmax(104px,120px);max-width:100%}
.c6-attachment-picker,.c6-attachment-picker:has(.c6-file-camera){min-width:0;grid-template-columns:auto auto minmax(0,1fr)}
.c6-attachment-picker:not(:has(.c6-file-camera)){grid-template-columns:auto minmax(0,1fr)}
.c6-file-name{min-width:0;max-width:none;width:100%;background:var(--surface-input);border-color:var(--border-default);color:var(--text-muted)}
.c6-attachment-picker.has-file .c6-file-name{color:var(--text-primary)}
.c6-attachment-upload-action{flex:0 0 auto;white-space:nowrap;min-width:104px}
@container (max-width:520px){
  .c7-attachment-container{grid-template-columns:1fr;align-items:stretch}
  .c7-attachment-container .c6-attachment-upload-action{width:112px;justify-self:end}
}
@container (max-width:400px){
  .c7-attachment-container .c6-attachment-picker,.c7-attachment-container .c6-attachment-picker:has(.c6-file-camera){grid-template-columns:1fr 1fr}
  .c7-attachment-container .c6-file-name{grid-column:1/-1}
  .c7-attachment-container .c6-attachment-upload-action{width:100%;min-width:0}
}

/* Theme switch controls share one controller before and after login. */
.theme-switch{display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid var(--border-default);border-radius:12px;background:var(--surface-soft)}
.theme-switch-auth{justify-self:end;margin:0 0 18px auto}
.theme-choice{min-height:34px;padding:0 11px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:13px;font-weight:800;line-height:1.2}
.theme-choice:hover{background:var(--surface-hover);color:var(--text-primary)}
.theme-choice.active{background:var(--surface-card);border-color:var(--brand-border);color:var(--brand-text);box-shadow:0 2px 8px rgba(31,44,70,.09)}
.topbar-theme-toggle{min-height:42px;padding:0 11px;border:1px solid var(--border-default);border-radius:10px;background:var(--surface-soft);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:14px;font-weight:800;line-height:1.2}
.topbar-theme-toggle:hover{background:var(--surface-hover);border-color:var(--border-strong);color:var(--text-primary)}
.theme-toggle-icon{font-size:17px;line-height:1}

/* Semantic surfaces: Light baseline values are unchanged; Dark uses shared tokens. */
body,.app-shell,.app-stage,.main-content{background:var(--surface-page);color:var(--text-primary)}
.card,.reference-panel,.reference-side-card,.notification,.admin-list-toolbar,.table-wrap,.audit-table-wrap,
.stage19-admin-table,.stage21-dashboard-period,.stage21-mobile-incident-card,.support-mobile-card,
.legal-document-card,.registration-card,.password-change-card,.profile-menu,.reference-push-summary,
.r1-action-dialog>.r1-action-modal,.r1-action-modal,.c5-school-overlay-popover,.school-search-results,.registration-school-results{
  background:var(--surface-card);
  color:var(--text-primary);
  border-color:var(--border-default);
}
.auth-shell{background:var(--surface-card);border-color:var(--border-default);box-shadow:var(--shadow-theme-card)}
.auth-form-panel{background:linear-gradient(var(--surface-card),var(--surface-subtle))}
.security-note,.empty,.reference-empty,.readonly-field,
.c6-schedule-editor,.r1-modal-meta,.c5-school-result-meta,.c5-school-load-state{
  background:var(--surface-subtle)!important;
  border-color:var(--border-default)!important;
  color:var(--text-secondary)!important;
}
input,select,textarea,.stage24-date-text,.stage24-date-button,.stage25-date-field,.stage25-date-text,.stage25-date-button,
.r1-action-modal input,.r1-action-modal textarea,.r1-action-modal select,.stage21-intake-upload input[type=file]{
  background:var(--surface-input)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-default)!important;
}
input::placeholder,textarea::placeholder{color:var(--text-placeholder);opacity:1}
input:disabled,select:disabled,textarea:disabled,button:disabled{color:var(--text-disabled)}
.stack label,.form-grid label,.incident-filter-grid label,.audit-filter-grid label,.support-filter-grid>label,
.incident-filter-primary label,.incident-filter-secondary label,.intake-top-grid label,.stage20-intake-card>label{
  color:var(--text-secondary)
}
.muted,.reference-kpi-helper,.reference-alert-copy p,.reference-push-heading p,.support-mobile-card-meta,
.auth-legal-footer,.auth-legal-footer-compact .auth-operator-line,.auth-legal-footer-compact .auth-support-line,
.c2-toggle-row small,.c2-readonly-field span,.c5-target-filters label>span{color:var(--text-muted)!important}

/* App shell/elevated overlays. */
.topbar{background:var(--surface-overlay);border-color:var(--border-default)}
.welcome-copy strong,.user-chip-copy strong,.reference-panel-head h2,.reference-push-heading h2,
.reference-alert-copy strong,.c5-school-popover-head strong,.temporary-password-box strong{color:var(--text-primary)}
.user-chip-copy small,.profile-chevron,.topbar-icon-button,.topbar-install-action,.profile-menu button{color:var(--text-secondary)}
.topbar-icon-button:hover,.topbar-install-action:hover,.profile-menu-toggle:hover,.profile-menu button:hover{background:var(--surface-hover)}
.avatar{background:linear-gradient(145deg,var(--surface-soft),var(--surface-elevated));color:var(--brand-primary)}
.topbar-divider{background:var(--border-default)}
.badge{border-color:var(--surface-card)}

/* Tables/list rows. */
th,.reference-table th,.incident-work-table th,.audit-table th,.stage19-admin-table th{background:var(--table-head-bg)!important;color:var(--text-muted)!important;border-color:var(--border-soft)!important}
td,.reference-table td,.incident-work-table td,.audit-table td,.stage19-admin-table td{color:var(--text-secondary)!important;border-color:var(--border-soft)!important}
tbody tr:hover,.reference-table tbody tr:hover{background:var(--table-row-hover)}
.attachment-row,.timeline-item{border-color:var(--border-default)}

/* Search overlays, segmented tabs and chips. */
.incident-queue-tab,.c2-settings-tab,.c5-summary-chip{background:var(--surface-card);color:var(--text-secondary);border-color:var(--border-default)}
.incident-queue-tab:hover:not(.active),.c2-settings-tab:hover:not(.active),.c5-summary-chip:hover:not(.active){background:var(--brand-soft);border-color:var(--brand-border);color:var(--brand-text)}
.c4-school-popover-list .school-search-option,.c6-target-school-results .school-search-option,.school-search-option,.registration-school-results .school-search-option{background:var(--surface-card)!important;color:var(--text-primary)!important}
.c4-school-popover-list .school-search-option:hover,.c6-target-school-results .school-search-option:hover,.school-search-option:hover{background:var(--surface-hover)!important;border-color:var(--border-default)!important}
.c4-school-popover-list .school-search-option.selected,.c6-target-school-results .school-search-option.selected{background:var(--surface-selected)!important;border-color:var(--brand-border)!important;color:var(--brand-text)!important}
.c4-school-popover-list .school-search-option small,.c6-target-school-results .school-search-option small,.school-search-option small{color:var(--text-muted)!important}

/* Status semantics preserve meaning in both themes without low contrast. */
.status.RECEIVED,.stage26-badge.info{background:var(--status-info-bg)!important;color:var(--status-info-text)!important}
.status.RESOLVED,.status.USER_CONFIRMED{background:var(--status-success-bg)!important;color:var(--status-success-text)!important}
.status.IN_PROGRESS,.stage26-badge.progress,.c5-attention-badge.school_request{background:var(--status-warning-bg)!important;color:var(--status-warning-text)!important;border-color:color-mix(in srgb,var(--status-warning-text) 35%,transparent)!important}
.danger,.danger-button,.c5-attention-badge.republish_required{background:var(--status-danger-bg)!important;color:var(--status-danger-text)!important;border-color:color-mix(in srgb,var(--status-danger-text) 35%,transparent)!important}
.status.CLOSED,.c5-attention-badge.unassigned{background:var(--surface-soft)!important;color:var(--text-secondary)!important;border-color:var(--border-default)!important}

/* Dark-specific shell/form/elevated contrast corrections, grouped by semantic surface. */
html[data-theme="dark"] .auth-page{background:radial-gradient(circle at 15% 15%,#172744 0,transparent 30%),linear-gradient(135deg,#0b1320 0,#101a28 48%,#16182d 100%)}
html[data-theme="dark"] .auth-brand-panel{background:linear-gradient(145deg,rgba(5,15,29,.98),rgba(11,34,60,.96)),url('/assets/hero-school.svg') center/cover}
html[data-theme="dark"] .auth-chip,html[data-theme="dark"] .auth-feature-grid div{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.16)}
html[data-theme="dark"] .role-chip{color:#c6b9ff;background:#2c2851}
html[data-theme="dark"] .network-state.offline{color:#ffb4ac;background:#3b2223}
html[data-theme="dark"] .reference-kpi,html[data-theme="dark"] .reference-alert-item{background:var(--surface-card);color:var(--text-primary);border-color:var(--border-default)}
html[data-theme="dark"] .reference-kpi-label,html[data-theme="dark"] .reference-kpi-value span,
html[data-theme="dark"] .reference-type-name,html[data-theme="dark"] .reference-school-name,
html[data-theme="dark"] .reference-push-summary small,html[data-theme="dark"] .reference-alert-item time{color:var(--text-secondary)}
html[data-theme="dark"] .reference-panel-link,html[data-theme="dark"] .reference-alert-link{background:var(--surface-soft);color:#9bb7ff;border-color:var(--border-default)}
html[data-theme="dark"] .reference-donut:after{background:var(--surface-card)}
html[data-theme="dark"] .reference-donut-center span{color:var(--text-muted)}
html[data-theme="dark"] .reference-action.secondary{background:var(--brand-soft);border-color:var(--brand-border);color:#d8ddff}
html[data-theme="dark"] .reference-action.danger-outline{background:var(--status-danger-bg);border-color:#704049;color:#ffb2b7}
html[data-theme="dark"] .password-toggle{background:var(--surface-soft);color:var(--text-secondary)}
html[data-theme="dark"] .link-button,html[data-theme="dark"] a{color:#9bb7ff}
html[data-theme="dark"] .legal-effective{background:var(--surface-soft);color:var(--text-secondary);border-color:var(--border-default)}
html[data-theme="dark"] .legal-document-card p,html[data-theme="dark"] .legal-document-card li,html[data-theme="dark"] .legal-document-footer{color:var(--text-secondary)}
html[data-theme="dark"] .legal-draft-note{background:#332b19;border-color:#554720;color:#f1d18b}
html[data-theme="dark"] .stage21-install-guide-icon{background:var(--brand-soft);color:#a9b6ff}
html[data-theme="dark"] .r1-admin-hub-tab:hover,html[data-theme="dark"] .r1-admin-hub-tab.active{background:var(--surface-elevated);color:#9bb7ff}
html[data-theme="dark"] .r1-tab-badge{background:var(--brand-soft);color:#c2c9ff}
html[data-theme="dark"] .c4-excel-pending{background:#312a18;border-color:#5d4b20;color:#f2d38a}
html[data-theme="dark"] .c4-excel-errors{background:#361f24;border-color:#65343c;color:#ffadb4}
html[data-theme="dark"] .school-emblem-wrap.global-brand-logo{background:transparent}
html[data-theme="dark"] ::selection{background:#5368c7;color:#fff}

@media(max-width:720px){
  .topbar-theme-toggle{width:42px;padding:0}
  .theme-switch-auth{margin-bottom:14px}
}

/* ========================================================================== */
/* Stage0026 C8 C2 — semantic component reconstruction after Windows review    */
/* DG-0383/0385/0386 · CR-0384/0387                                           */
/* ========================================================================== */
:root,
html[data-theme="light"]{
  --button-secondary-bg:#f0f1ff;
  --button-secondary-hover:#e5e8ff;
  --button-secondary-active:#d9ddff;
  --button-secondary-border:#b9c0f3;
  --button-secondary-text:#3542a5;
  --button-query-bg:#edf2ff;
  --button-query-hover:#dfe8ff;
  --button-query-active:#d2ddff;
  --button-query-border:#aebdf0;
  --button-query-text:#2454c6;
  --button-neutral-focus-bg:#f2f5f9;
  --button-danger-focus-bg:#fff1f1;
  --control-hover-bg:#f7f9fc;
  --control-active-bg:#eef2f7;
  --chart-track:#e7edf5;
  --row-surface:#ffffff;
  --row-hover-surface:#f5f8fd;
  --overlay-shadow:0 24px 60px rgba(7,22,42,.20);
}
html[data-theme="dark"]{
  --button-secondary-bg:#222f4b;
  --button-secondary-hover:#2b3b5b;
  --button-secondary-active:#344665;
  --button-secondary-border:#455b7f;
  --button-secondary-text:#d8e4ff;
  --button-query-bg:#1c315b;
  --button-query-hover:#254373;
  --button-query-active:#2d4d82;
  --button-query-border:#4669a6;
  --button-query-text:#c7d8ff;
  --button-neutral-focus-bg:#1b293a;
  --button-danger-focus-bg:#3c2024;
  --control-hover-bg:#1a293b;
  --control-active-bg:#22344a;
  --chart-track:#26364b;
  --row-surface:#131d2b;
  --row-hover-surface:#18273a;
  --overlay-shadow:0 28px 70px rgba(0,0,0,.42);
}

/* One semantic treatment for secondary actions across Light/Dark. */
.secondary:not(.neutral-action):not(.preference-off-action),
.secondary-brand-action,
.audit-export-button,
.c4-excel-schedule-card .secondary{
  background:var(--button-secondary-bg);
  color:var(--button-secondary-text);
  border-color:var(--button-secondary-border);
  box-shadow:none;
  filter:none;
}
.secondary:not(.neutral-action):not(.preference-off-action):hover:not(:disabled),
.secondary-brand-action:hover:not(:disabled),
.audit-export-button:hover:not(:disabled),
.c4-excel-schedule-card .secondary:hover:not(:disabled){background:var(--button-secondary-hover);color:var(--button-secondary-text);border-color:var(--brand-border);filter:none}
.secondary:not(.neutral-action):not(.preference-off-action):active:not(:disabled),
.secondary-brand-action:active:not(:disabled),
.audit-export-button:active:not(:disabled),
.c4-excel-schedule-card .secondary:active:not(:disabled){background:var(--button-secondary-active);color:var(--button-secondary-text);transform:none}
.secondary:not(.neutral-action):not(.preference-off-action):focus-visible,
.secondary-brand-action:focus-visible,
.audit-export-button:focus-visible,
.c4-excel-schedule-card .secondary:focus-visible{background:var(--button-secondary-bg);color:var(--button-secondary-text);border-color:var(--brand-primary);outline:3px solid var(--focus-ring);outline-offset:2px}
.secondary.neutral-action:focus-visible,.preference-off-action:focus-visible{background:var(--button-neutral-focus-bg);color:var(--neutral-action-text);border-color:var(--border-strong);outline:3px solid var(--focus-ring);outline-offset:2px}
.danger:focus-visible,.danger-button:focus-visible,.permanent-delete-button:focus-visible{background:var(--button-danger-focus-bg);color:var(--status-danger-text);outline:3px solid var(--focus-ring);outline-offset:2px}

/* Query/search is a compact secondary brand action, never a giant white control. */
.compact-search-action,.c5-filter-submit{
  box-sizing:border-box!important;
  min-width:82px!important;
  width:auto!important;
  max-width:96px!important;
  height:var(--stage20-control)!important;
  min-height:var(--stage20-control)!important;
  padding:0 16px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1.1!important;
  white-space:nowrap;
  border:1px solid var(--button-query-border)!important;
  border-radius:10px;
  background:var(--button-query-bg)!important;
  color:var(--button-query-text)!important;
  box-shadow:none!important;
  font-weight:800!important;
  transform:none!important;
  filter:none!important;
}
.compact-search-action:hover:not(:disabled),.c5-filter-submit:hover:not(:disabled){background:var(--button-query-hover)!important;border-color:var(--brand-primary)!important;color:var(--button-query-text)!important;transform:none!important;filter:none!important}
.compact-search-action:active:not(:disabled),.c5-filter-submit:active:not(:disabled){background:var(--button-query-active)!important;transform:none!important;filter:none!important}
.compact-search-action:focus-visible,.c5-filter-submit:focus-visible{background:var(--button-query-bg)!important;border-color:var(--brand-primary)!important;outline:3px solid var(--focus-ring)!important;outline-offset:2px!important}

/* Windows-native select text must not clip. Reserve chevron space without vertical padding hacks. */
.c5-maintenance-filter input,.c5-maintenance-filter select,.c5-filter-select,
.admin-list-toolbar input,.admin-list-toolbar select,.audit-filter-grid input,.audit-filter-grid select,
.c5-target-filters input,.c5-target-filters select{
  box-sizing:border-box;
  min-height:42px;
  height:42px;
  line-height:normal;
}
.c5-maintenance-filter select,.c5-filter-select,.admin-list-toolbar select,.audit-filter-grid select,.c5-target-filters select{padding-top:0!important;padding-bottom:0!important;padding-left:12px!important;padding-right:42px!important;white-space:nowrap;text-overflow:ellipsis}
.c5-maintenance-filter input,.admin-list-toolbar input,.audit-filter-grid input,.c5-target-filters input{padding-top:0!important;padding-bottom:0!important}
.c5-maintenance-filter.no-school{grid-template-columns:minmax(260px,1.35fr) 150px 150px auto!important;justify-content:start}
.c5-maintenance-filter.has-school{grid-template-columns:minmax(220px,1.15fr) 142px 142px minmax(260px,1.35fr) auto!important}

/* True body-level portal overlay: no parent card clipping or stacking-context trap. */
.c5-overlay-root{position:fixed;inset:0;z-index:4000;pointer-events:none;isolation:isolate}
.c5-school-overlay-popover,.c8-combobox-overlay{
  position:fixed!important;
  z-index:4001!important;
  pointer-events:auto;
  overflow:hidden!important;
  border:1px solid var(--border-default)!important;
  border-radius:12px;
  background:var(--surface-overlay)!important;
  box-shadow:var(--overlay-shadow)!important;
  color:var(--text-primary);
}
.c5-school-popover-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:12px!important;padding:10px 12px!important;background:var(--surface-elevated)!important;border-bottom:1px solid var(--border-soft)!important}
.c5-school-popover-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)!important;font-size:14px}
.c4-school-popover-close{min-height:32px!important;padding:0 10px!important;border:1px solid var(--border-default)!important;border-radius:8px!important;background:var(--surface-soft)!important;color:var(--text-secondary)!important;box-shadow:none!important}
.c4-school-popover-close:hover,.c4-school-popover-close:focus-visible{background:var(--surface-hover)!important;color:var(--text-primary)!important;border-color:var(--brand-border)!important}
.c5-school-result-meta{padding:7px 12px!important;background:var(--surface-subtle)!important;color:var(--text-muted)!important;border-bottom:1px solid var(--border-soft)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c5-school-load-state{background:var(--surface-subtle)!important;color:var(--text-muted)!important;border-block-start:1px solid var(--border-soft)!important}
.c4-school-popover-list{min-height:0;overflow-y:auto;padding:6px;scrollbar-gutter:stable}
.c4-school-popover-list .school-search-option,.c8-combobox-popover-list .school-search-option,.c6-target-school-results .school-search-option{background:var(--surface-card)!important;color:var(--text-primary)!important;border:1px solid transparent;border-radius:9px}
.c4-school-popover-list .school-search-option:hover,.c8-combobox-popover-list .school-search-option:hover,.c6-target-school-results .school-search-option:hover{background:var(--surface-hover)!important;border-color:var(--brand-border)!important}
.c4-school-popover-list .school-search-option.selected,.c6-target-school-results .school-search-option.selected{background:var(--surface-selected)!important;border-color:var(--brand-border)!important;color:var(--brand-text)!important}
.c4-school-popover-list .school-search-option small,.c8-combobox-popover-list .school-search-option small,.c6-target-school-results .school-search-option small{color:var(--text-muted)!important;white-space:nowrap}
.c4-school-selection-tray{position:relative;z-index:0;grid-template-columns:auto minmax(0,1fr) auto;gap:8px 12px}
.c4-school-selection-tray>small{justify-self:end;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted)}

/* Dashboard analytics: no Light track/row survives Dark or hover/focus. */
.reference-school-row,.reference-type-row{border-radius:8px;background:transparent;color:var(--text-primary);transition:background .14s,border-color .14s,color .14s}
.reference-school-row.interactive:hover,.reference-school-row.interactive:focus-within,.reference-type-row.interactive:hover,.reference-type-row.interactive:focus-within{background:var(--surface-hover)}
.reference-type-track{background:var(--chart-track)!important}
.reference-school-name,.reference-type-name{color:var(--text-secondary)!important}
.reference-school-row strong,.reference-type-row strong{color:var(--text-muted)!important}
.reference-type-icon{border:1px solid color-mix(in srgb,currentColor 18%,transparent)}
html[data-theme="dark"] .reference-type-icon{background:var(--surface-soft)!important;color:#9bb7ff!important}
html[data-theme="dark"] .reference-type-icon.tone-1{color:#ff9ca3!important}
html[data-theme="dark"] .reference-type-icon.tone-2{color:#f6c36e!important}
html[data-theme="dark"] .reference-type-icon.tone-3{color:#7fdda8!important}
html[data-theme="dark"] .reference-type-icon.tone-4{color:#aebed0!important}

/* Row-owned table surface: cells never draw independent white blocks. */
tbody tr{background:var(--row-surface)}
tbody tr:hover,.reference-table tbody tr:hover,.incident-work-row:hover,.stage26-click-row:hover{background:var(--row-hover-surface)}
tbody tr>td{background:transparent!important}
.c5-target-table{border-collapse:collapse!important}
.c5-target-table>tbody>tr:not(.c5-target-detail-row){background:var(--row-surface)!important;border-bottom:1px solid var(--border-soft)!important}
.c5-target-table>tbody>tr:not(.c5-target-detail-row)>td{border-bottom:0!important;background:transparent!important}
.c5-target-table td:first-child{display:table-cell!important}.c5-target-table td:first-child>strong,.c5-target-table td:first-child>small{display:block}.c5-target-table td:first-child>small{margin-block-start:3px}.c5-target-table .c5-attention-cell{display:table-cell!important}
.c5-target-detail-row>td{background:var(--surface-subtle)!important;border-bottom:1px solid var(--border-soft)!important}

/* Date/time interaction contract. */
.stage25-date-field,.stage24-date-field{background:var(--surface-input)!important;border-color:var(--border-default)!important;transition:background .14s,border-color .14s,box-shadow .14s}
.stage25-date-field:hover,.stage24-date-field:hover{background:var(--control-hover-bg)!important;border-color:var(--border-strong)!important}
.stage25-date-field:focus-within,.stage24-date-field:focus-within{background:var(--surface-input)!important;border-color:var(--brand-primary)!important;box-shadow:0 0 0 3px var(--focus-ring)!important}
.stage25-date-button,.stage24-date-button{background:var(--surface-soft)!important;color:var(--text-secondary)!important;border-color:var(--border-default)!important}
.stage25-date-button:hover,.stage24-date-button:hover{background:var(--surface-hover)!important;color:var(--brand-text)!important}
.stage25-date-button:active,.stage24-date-button:active{background:var(--control-active-bg)!important;color:var(--brand-text)!important}
.stage25-date-button:focus-visible,.stage24-date-button:focus-visible{background:var(--surface-soft)!important;color:var(--brand-text)!important;outline:3px solid var(--focus-ring)!important;outline-offset:2px!important}
.stage25-date-native.c8-date-picker-proxy{position:absolute!important;right:0!important;top:0!important;width:42px!important;height:100%!important;min-height:40px!important;opacity:0!important;pointer-events:none!important;z-index:0!important}
.c3-datetime-field input[type="time"]{background:var(--surface-input)!important;border-color:var(--border-default)!important;transition:background .14s,border-color .14s,box-shadow .14s,color .14s}
.c3-datetime-field input[type="time"]:hover{background:var(--control-hover-bg)!important;border-color:var(--border-strong)!important}
.c3-datetime-field input[type="time"]:focus,.c3-datetime-field input[type="time"]:focus-visible{background:var(--surface-input)!important;border-color:var(--brand-primary)!important;box-shadow:0 0 0 3px var(--focus-ring)!important;outline:0!important}

/* Dreaminfo uses real transparent Light/Dark assets: no artificial plate, no filter/invert. */
.sidebar-brand.global-brand{display:grid;grid-template-columns:132px minmax(0,1fr);align-items:center;column-gap:10px}.school-emblem-wrap.global-brand-logo{width:132px!important;height:34px!important;flex-basis:132px!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important;display:flex;align-items:center;justify-content:flex-start}
.school-emblem-wrap.global-brand-logo .school-emblem{display:block;width:132px!important;height:34px!important;max-width:132px!important;max-height:34px!important;object-fit:contain!important;object-position:left center;filter:none!important}.sidebar-brand.global-brand>div{min-width:0;height:34px;display:flex;align-items:center}.sidebar-brand.global-brand strong{display:flex;align-items:center;min-height:34px;margin:0;line-height:1;font-size:17px;white-space:nowrap}

/* Common focus/hover surfaces. */
input:hover,select:hover,textarea:hover{background-color:var(--control-hover-bg);border-color:var(--border-strong)}
input:focus,select:focus,textarea:focus{background-color:var(--surface-input);border-color:var(--brand-primary);box-shadow:0 0 0 3px var(--focus-ring)}
.primary:focus-visible,.secondary:focus-visible,.danger:focus-visible,.danger-button:focus-visible,.sidebar-install-button:focus-visible,.reference-action:focus-visible,.reference-panel-link:focus-visible,.reference-alert-link:focus-visible,.link-button:focus-visible,.topbar-icon-button:focus-visible,.topbar-install-action:focus-visible,.profile-menu-toggle:focus-visible,.profile-menu button:focus-visible,.incident-queue-tab:focus-visible,.c2-settings-tab:focus-visible,.c5-summary-chip:focus-visible,.r1-admin-hub-tab:focus-visible,.c3-school-chip:focus-visible,.school-search-option:focus-visible{outline:3px solid var(--focus-ring)!important;outline-offset:2px!important}
.profile-menu button{background:var(--surface-card)!important;color:var(--text-secondary)!important}.profile-menu button:hover,.profile-menu button:focus-visible{background:var(--surface-hover)!important;color:var(--text-primary)!important}
.r1-admin-hub-tabs{background:var(--surface-soft)!important;border-color:var(--border-default)!important}.r1-admin-hub-tab:hover,.r1-admin-hub-tab.active,.r1-admin-hub-tab:focus-visible{background:var(--surface-elevated)!important;color:var(--brand-text)!important}
.permanent-delete-button{background:var(--status-danger-bg)!important;color:var(--status-danger-text)!important;border-color:color-mix(in srgb,var(--status-danger-text) 35%,transparent)!important}.permanent-delete-button:hover:not(:disabled),.permanent-delete-button:active:not(:disabled){background:color-mix(in srgb,var(--status-danger-bg) 82%,var(--status-danger-text) 18%)!important;color:var(--status-danger-text)!important}

@media(max-width:900px){
  .c5-maintenance-filter.has-school,.c5-maintenance-filter.no-school{grid-template-columns:1fr 1fr!important}
  .c5-maintenance-filter label:has(.c4-multi-school-filter){grid-column:1/-1}
}
@media(max-width:620px){
  .c5-school-overlay-popover,.c8-combobox-overlay{left:12px!important;right:12px!important;top:auto!important;bottom:12px!important;width:auto!important;max-width:none!important;max-height:65vh!important}
  .c5-maintenance-filter.has-school,.c5-maintenance-filter.no-school{grid-template-columns:1fr!important}
  .compact-search-action,.c5-filter-submit{width:100%!important;max-width:none!important}
  .c4-school-selection-tray{grid-template-columns:1fr}.c4-school-selection-tray>small{justify-self:start;max-width:none;white-space:normal}
  .sidebar-brand.global-brand{grid-template-columns:108px minmax(0,1fr);column-gap:9px}.school-emblem-wrap.global-brand-logo{width:108px!important;height:30px!important;flex-basis:108px!important}.school-emblem-wrap.global-brand-logo .school-emblem{width:108px!important;height:30px!important;max-width:108px!important;max-height:30px!important}.sidebar-brand.global-brand>div,.sidebar-brand.global-brand strong{height:30px;min-height:30px}
}


/* ========================================================================== */
/* Stage0026 C8 C3 — semantic geometry/surface/text reconstruction              */
/* DG-0388/0390/0393/0395/0397; CR-0389/0391/0394/0396/0398; IC-0401      */
/* ========================================================================== */

/* Surface ownership: canvas -> panel -> control -> interactive -> overlay. */
.card,.reference-panel,.reference-side-card,.notification,.admin-list-toolbar,.table-wrap,.audit-table-wrap,.stage19-admin-table,.stage21-dashboard-period,.stage21-mobile-incident-card,.support-mobile-card,.legal-document-card,.registration-card,.password-change-card,.reference-push-summary,.r1-action-modal{background:var(--surface-panel);color:var(--text-primary);border-color:var(--border-default)}
.c2-policy-status,.c2-toggle-row,.c2-readonly-field,.c3-quiet-time-group,.c3-settings-toggle-row>.c2-toggle-row,.stage26-meta-grid>div{background:transparent}
input,select,textarea,.readonly-field,.stage25-date-field,.c6-file-name{background:var(--surface-control);color:var(--text-primary);border-color:var(--border-default)}
.c5-school-overlay-popover,.school-search-results,.registration-school-results{background:var(--surface-overlay-solid);color:var(--text-primary);border-color:var(--border-default)}

/* AttachmentPanel owns one panel surface; inner filename/file rows are controls. */
.attachment-panel,.stage21-intake-upload{background:var(--surface-panel);border-color:var(--border-default)}
.attachment-panel .c6-file-name,.stage21-intake-upload .c6-file-name,.stage21-intake-file{background:var(--surface-control);border-color:var(--border-soft)}

/* Common row ownership. Cells never paint their own surface. */
.table-wrap tbody tr,.stage19-admin-table tbody tr,.reference-table tbody tr,.incident-work-table tbody tr{background:var(--row-surface);border-bottom:1px solid var(--row-border)}
.table-wrap tbody tr:last-child,.stage19-admin-table tbody tr:last-child,.reference-table tbody tr:last-child,.incident-work-table tbody tr:last-child{border-bottom:0}
.table-wrap tbody tr:hover,.stage19-admin-table tbody tr:hover,.reference-table tbody tr:hover,.incident-work-table tbody tr:hover{background:var(--row-hover-surface)}
.table-wrap tbody td,.stage19-admin-table tbody td,.reference-table tbody td,.incident-work-table tbody td{background:transparent;border-bottom:0;color:var(--text-secondary)}

/* Identifier/link/meta semantics are identical across pages. */
.entity-id-link,.reference-incident-link{color:var(--text-link);font-weight:750}
.entity-id-link:hover,.reference-incident-link:hover{color:var(--text-link-hover)}
.entity-id-static{color:var(--text-secondary);font-weight:700}
.text-meta,.incident-result-summary,.incident-pager span,.c5-school-result-meta,.c5-school-load-state{color:var(--text-meta)}
.muted{color:var(--text-muted)}

/* DateField geometry is real layout, not text/icon overlay. */
.stage25-date-field{display:grid;grid-template-columns:minmax(11ch,1fr) 40px;overflow:hidden}
.stage25-date-text{grid-column:1;min-width:11ch;padding-inline:10px}
.stage25-date-button{grid-column:2;position:static;transform:none;border-left:1px solid var(--border-soft)}
.stage21-dashboard-period-custom{grid-template-columns:minmax(184px,1fr) 14px minmax(184px,1fr) minmax(72px,auto);min-width:0}
.stage21-dashboard-period-custom .stage25-date-field{min-width:184px;max-width:none}
@media(max-width:760px){.stage21-dashboard-period-custom{grid-template-columns:minmax(184px,1fr) 14px minmax(184px,1fr)}.stage21-dashboard-period-custom>button{grid-column:1/-1;justify-self:end}}
@media(max-width:520px){.stage21-dashboard-period-custom{grid-template-columns:1fr}.stage21-dashboard-period-custom>span{display:none}.stage21-dashboard-period-custom>button{grid-column:auto;justify-self:stretch}}

/* School user selector keeps the shared body-level portal above modal/card clipping. */
.c8c3-school-user-selector{min-width:0}.c8c3-school-user-selector .c6-single-school-selector{min-width:0}
.c8c3-school-user-selector .school-search-control input{width:100%}

/* Light/Dark readable status/identifier without white fallback surfaces. */
html[data-theme="dark"] .status,html[data-theme="dark"] .reference-status-pill{border:1px solid color-mix(in srgb,currentColor 28%,transparent)}

/* ========================================================================== */
/* Stage0026 C9 C1 — UI consistency + Weather/Time Hero completion           */
/* CR-0404/0406/0408/0410, CR-0210, IC-0413                                 */
/* ========================================================================== */

/* Weather/time-aware Hero. The reference image remains; semantic state overlays it. */
.reference-hero{--hero-state-overlay:linear-gradient(90deg,rgba(30,115,165,.82),rgba(43,131,181,.48) 48%,rgba(31,93,132,.13) 78%,rgba(16,55,82,.08))}
.reference-hero.hero-time-dawn{--hero-state-overlay:linear-gradient(90deg,rgba(39,93,145,.82),rgba(111,122,170,.43) 52%,rgba(214,154,112,.12))}
.reference-hero.hero-time-evening{--hero-state-overlay:linear-gradient(90deg,rgba(28,77,125,.86),rgba(91,82,145,.50) 55%,rgba(209,126,95,.12))}
.reference-hero.hero-time-night{--hero-state-overlay:linear-gradient(90deg,rgba(10,38,74,.92),rgba(20,58,96,.72) 55%,rgba(9,30,54,.46))}
.reference-hero.hero-weather-rain,.reference-hero.hero-weather-thunder{--hero-state-overlay:linear-gradient(90deg,rgba(24,66,94,.90),rgba(45,84,105,.67) 58%,rgba(35,63,77,.30))}
.reference-hero.hero-weather-snow{--hero-state-overlay:linear-gradient(90deg,rgba(62,111,148,.77),rgba(125,158,180,.48) 58%,rgba(231,241,247,.18))}
.reference-hero.hero-weather-cloudy,.reference-hero.hero-weather-fog{--hero-state-overlay:linear-gradient(90deg,rgba(44,94,124,.85),rgba(93,126,142,.55) 58%,rgba(159,177,181,.18))}
.reference-hero.stage21-school-hero{background-image:var(--hero-state-overlay),url('/assets/hero-campus.jpg')}
.reference-hero-weather{margin-top:10px;display:inline-flex;align-items:center;justify-content:flex-end;min-height:28px;padding:4px 9px;border:1px solid rgba(255,255,255,.34);border-radius:999px;background:rgba(7,40,67,.20);color:#fff;font-size:13px;font-weight:750;white-space:nowrap;backdrop-filter:blur(4px)}
.reference-hero-weather.stale::after{content:" · 캐시";font-size:11px;opacity:.85}
.reference-hero-weather.fallback,.reference-hero-weather.unconfigured{background:rgba(7,40,67,.14);color:#f0f7fc}
.reference-hero-attribution{margin-top:5px;color:rgba(255,255,255,.78);font-size:10.5px;line-height:1.2}

/* Query actions share one geometry. Earlier canonical action rules carry selector specificity. */
.query-action-control{box-sizing:border-box;height:var(--stage20-control);min-height:var(--stage20-control);padding:0 15px;display:inline-flex;align-items:center;justify-content:center;line-height:1;border-radius:9px;white-space:nowrap;flex:0 0 auto}
.stage21-notification-filter,.admin-list-toolbar,.audit-actions{align-items:center}
.stage21-notification-filter>.query-action-control,.admin-list-toolbar>.query-action-control{min-width:82px;max-width:96px;width:auto}

/* Current page is status, not an action control. */
.r1-page-current{min-width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--brand-border);border-radius:9px;background:var(--brand-soft);color:var(--brand-text);font-size:14px;font-weight:800;line-height:1;cursor:default;user-select:none}

@media(max-width:620px){
  .stage21-notification-filter>.query-action-control,.admin-list-toolbar>.query-action-control{min-width:82px;justify-self:start}
}
@media(max-width:768px){
  .reference-hero-weather{justify-content:flex-start;white-space:normal}
}



/* ========================================================================== */
/* Stage0026 C10 C2 — controlled visual reconstruction from C9 FIELD baseline */
/* ========================================================================== */

/* Canonical Dreaminfo asset: use the existing official dark lockup unchanged. */
.sidebar-brand.global-brand{display:grid;grid-template-columns:132px minmax(0,1fr);align-items:center;column-gap:10px}
.school-emblem-wrap.global-brand-logo{width:132px;height:34px;flex:0 0 132px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;display:flex;align-items:center;justify-content:flex-start}
.school-emblem-wrap.global-brand-logo .school-emblem{display:block;width:132px;height:34px;max-width:132px;max-height:34px;object-fit:contain;object-position:left center;filter:none}
.sidebar-brand.global-brand>div{min-width:0;height:34px;display:flex;align-items:center}.sidebar-brand.global-brand strong{display:flex;align-items:center;min-height:34px;margin:0;line-height:1;white-space:nowrap}

/* Canonical user-provided PWA illustration: asset bytes are not transformed. */
.sidebar-bottom{display:flex;flex-direction:column;gap:14px;align-items:stretch}
.sidebar-install-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 90px;grid-template-areas:"copy icon" "button button";align-items:center;gap:12px;height:auto;min-height:0;padding:16px;border:1px solid rgba(255,255,255,.12);border-radius:15px;background:linear-gradient(150deg,rgba(255,255,255,.09),rgba(255,255,255,.035));overflow:hidden}
.sidebar-install-copy{grid-area:copy;width:auto;min-width:0}.sidebar-install-copy p{margin:8px 0 0}
.install-visual{grid-area:icon;position:static;width:88px;height:112px;border:0!important;border-radius:0!important;background:transparent!important;transform:none;box-shadow:none!important;display:flex;align-items:center;justify-content:center;overflow:visible}
.install-canonical-image{display:block;width:78px;height:100px;max-width:100%;max-height:100%;object-fit:contain;object-position:center;user-select:none;pointer-events:none}
.sidebar-install-button{grid-area:button;position:static;left:auto;right:auto;bottom:auto;width:100%;min-height:44px;margin:0}
.sidebar-footer{flex:0 0 auto}

/* KPI family: equal slots and equal visible boxes; actual glyph paths carry weight. */
.reference-kpi{grid-template-columns:48px minmax(0,1fr);gap:12px;align-items:start}
.reference-kpi-icon{width:48px;height:48px;min-width:48px;min-height:48px;display:grid;place-items:center;line-height:0}
.reference-kpi-svg{display:block;width:24px;height:24px;max-width:24px;max-height:24px;vertical-align:middle;fill:currentColor;stroke:none;overflow:visible}
.reference-kpi-copy{align-self:start;padding-top:0}

/* Weather visual hierarchy: date -> time -> larger icon/temperature -> condition. */
.reference-hero-meta{min-width:210px;display:flex;flex-direction:column;align-items:flex-end;text-align:right;color:#fff}
.reference-hero-date{font-size:13.5px;font-weight:800;color:#f7fbff}
.reference-hero-time{margin-top:5px;font-size:52px;line-height:.94;font-weight:850}
.reference-hero-weather-block{margin-top:10px;display:grid;grid-template-columns:44px auto;gap:9px;align-items:center;color:#fff}
.reference-hero-weather-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:#fff}
.reference-hero-weather-icon .ui-icon{display:block;width:40px;height:40px}
.reference-hero-weather-copy{display:grid;gap:2px;text-align:left}
.reference-hero-temperature{display:flex;align-items:baseline;gap:2px;line-height:1}.reference-hero-temperature strong{font-size:23px;font-weight:900;letter-spacing:-.04em}.reference-hero-temperature span{font-size:14px;font-weight:800}
.reference-hero-condition{font-size:13px;font-weight:800;color:rgba(255,255,255,.94);white-space:nowrap}
.reference-hero-weather-block.fallback,.reference-hero-weather-block.unconfigured{opacity:.9}
.reference-hero-attribution{display:none}

/* Compact DateField: icon stays inside the field; no oversized visual trigger cell. */
.stage25-date-field,.stage24-date-field{display:inline-grid;grid-template-columns:118px 32px;align-items:center;width:150px;min-width:150px;max-width:150px;min-height:42px;overflow:hidden}
.stage25-date-button,.stage24-date-button{position:static;inset:auto;margin:0;transform:none;width:32px!important;height:40px;min-width:32px!important;min-height:40px;padding:0!important;border:0;border-left:1px solid var(--border-soft);border-radius:0;background:transparent;display:flex;align-items:center;justify-content:center}.stage21-dashboard-period-custom .stage25-date-button,.stage21-dashboard-period-custom .stage24-date-button{width:32px!important;min-width:32px!important;padding-inline:0!important}
.stage25-date-button .ui-icon,.stage24-date-button .ui-icon{display:block;width:18px;height:18px}
.stage25-date-text,.stage24-date-text{padding-left:10px;padding-right:4px;min-width:0}
.stage21-dashboard-period-custom{grid-template-columns:150px 14px 150px minmax(72px,auto);gap:8px;align-items:center;justify-content:end;min-width:0}
.stage21-dashboard-period-custom .stage25-date-field,.stage21-dashboard-period-custom .stage24-date-field{width:150px;min-width:150px;max-width:150px}
.stage21-dashboard-period-custom>button{min-width:72px;height:42px;min-height:42px;white-space:nowrap}

/* Query Toolbar: one 42px control track. Parent grid owns vertical alignment. */
.query-action-control,.compact-search-action,.c5-filter-submit{box-sizing:border-box;height:var(--stage20-control);min-height:var(--stage20-control);line-height:1;white-space:nowrap;flex:0 0 auto}
.admin-list-toolbar,.stage21-notification-filter,.audit-actions{align-items:center}
.c3-maintenance-filter{align-items:end}
.c3-maintenance-filter>.query-action-control{height:var(--stage20-control);min-height:var(--stage20-control);align-self:auto}

/* Notification attention marker gets its own slot instead of absolute overlap. */
.reference-alert-item{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:start}
.reference-alert-meta{display:grid;grid-template-columns:auto 8px;align-items:center;gap:7px;white-space:nowrap;min-width:max-content;padding-top:1px}
.reference-alert-meta time{font-size:13px;color:var(--text-meta)}
.reference-alert-dot{position:static;width:6px;height:6px;border-radius:50%;background:#3f7be1;justify-self:end}

/* Dark surface ownership flattening. Simple layout wrappers remain transparent. */
html[data-theme="dark"] .c4-settings-inner,
html[data-theme="dark"] .c3-settings-top-row,
html[data-theme="dark"] .c3-settings-toggle-row,
html[data-theme="dark"] .c3-quiet-time-inputs,
html[data-theme="dark"] .c2-settings-form-grid,
html[data-theme="dark"] .c2-settings-readonly-grid{background:transparent;box-shadow:none}
html[data-theme="dark"] .c2-policy-status,
html[data-theme="dark"] .c2-toggle-row,
html[data-theme="dark"] .c2-readonly-field,
html[data-theme="dark"] .c3-quiet-time-group{background:transparent}
html[data-theme="dark"] .c2-settings-card{background:var(--surface-panel)}

/* SVG donut keeps exact data ratio but adds reference-like controlled depth. */
.reference-donut-stage{position:relative;width:150px;height:150px;margin:auto;display:grid;place-items:center}
.reference-donut-svg{display:block;width:150px;height:150px;overflow:visible}
.reference-donut-track{fill:none;stroke:var(--chart-track);stroke-width:22}
.reference-donut-segment{fill:none;stroke-width:22;stroke-linecap:butt}
.reference-donut-inner{fill:var(--surface-panel);stroke:var(--border-default);stroke-width:1}
.reference-donut-ring{filter:drop-shadow(0 3px 4px rgba(22,48,78,.13))}
.reference-donut-center{pointer-events:none}.reference-donut-center strong{font-size:31px;font-weight:850}.reference-donut-center span{margin-top:5px;font-size:12.5px}

@media(max-width:1280px){
  .sidebar-brand.global-brand{grid-template-columns:118px minmax(0,1fr)}
  .school-emblem-wrap.global-brand-logo,.school-emblem-wrap.global-brand-logo .school-emblem{width:118px;max-width:118px}
}
@media(max-width:768px){
  .sidebar-install-card{grid-template-columns:minmax(0,1fr) 74px;padding:14px}.install-visual{display:flex;width:72px;height:92px}.install-canonical-image{width:64px;height:82px}
  .reference-hero-meta{align-items:flex-start;text-align:left;min-width:0}.reference-hero-weather-block{justify-self:start}
  .stage21-dashboard-period-custom{grid-template-columns:1fr 14px 1fr}.stage21-dashboard-period-custom .stage25-date-field,.stage21-dashboard-period-custom .stage24-date-field{width:100%;min-width:0;max-width:none;grid-template-columns:minmax(0,1fr) 32px}.stage21-dashboard-period-custom>button{grid-column:1/-1;justify-self:end}
  .reference-donut-stage,.reference-donut-svg{width:126px;height:126px}
  .reference-alert-meta{grid-column:2;justify-self:start;margin-top:2px}
}
@media(max-width:520px){
  .stage21-dashboard-period-custom{grid-template-columns:1fr}.stage21-dashboard-period-custom>span{display:none}.stage21-dashboard-period-custom>button{grid-column:auto;justify-self:stretch}
  .reference-hero-weather-icon{width:38px;height:38px}.reference-hero-weather-icon .ui-icon{width:34px;height:34px}.reference-hero-temperature strong{font-size:21px}
}

/* ========================================================================== */
/* Stage0026 C10 C6 — User-requested UI correction consolidation 2026-08-17  */
/* ========================================================================== */

/* Query action geometry: Search and Reset stay on the same baseline/height. */
.incident-search-row>button,
.incident-search-row>.query-action-control{
  box-sizing:border-box!important;
  height:var(--stage20-control,42px)!important;
  min-height:var(--stage20-control,42px)!important;
  max-height:var(--stage20-control,42px)!important;
  align-self:center!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1.2!important;
  white-space:nowrap!important;
}

/* Checkbox rows: label, checkbox and text share one centered visual line. */
.inline-check{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  min-height:42px!important;
  line-height:1.2!important;
  vertical-align:middle!important;
}
.inline-check input[type="checkbox"]{
  flex:0 0 20px!important;
  width:20px!important;
  height:20px!important;
  margin:0!important;
  align-self:center!important;
  vertical-align:middle!important;
}

/* Auth heading icons: Dark no longer uses a near-white tile. */
html[data-theme="dark"] .auth-card-icon{
  background:linear-gradient(145deg,#17253a,#242746)!important;
  border:1px solid var(--brand-border)!important;
  color:#aeb8ff!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 8px 20px rgba(0,0,0,.14)!important;
}

/* Incident engineer card and Support type chip use semantic Dark surfaces. */
html[data-theme="dark"] .stage21-assignee-contact{
  background:var(--surface-soft)!important;
  border-color:var(--border-default)!important;
  color:var(--text-secondary)!important;
}
html[data-theme="dark"] .stage21-assignee-contact strong{color:var(--text-primary)!important}
html[data-theme="dark"] .support-type-chip{
  background:color-mix(in srgb,var(--brand-primary) 16%,var(--surface-soft))!important;
  border:1px solid var(--brand-border)!important;
  color:#b8c7ff!important;
}

/* Action modals: remove the legacy forced Light surface in Dark mode. */
html[data-theme="dark"] .r1-action-dialog>.r1-action-modal,
html[data-theme="dark"] .r1-action-modal{
  background:var(--surface-overlay-solid,var(--surface-card))!important;
  color:var(--text-primary)!important;
  border:1px solid var(--border-default)!important;
  box-shadow:0 26px 70px rgba(0,0,0,.42)!important;
}
html[data-theme="dark"] .r1-action-modal input,
html[data-theme="dark"] .r1-action-modal textarea,
html[data-theme="dark"] .r1-action-modal select{
  background:var(--surface-input)!important;
  color:var(--text-primary)!important;
  border-color:var(--border-default)!important;
}
html[data-theme="dark"] .r1-modal-meta{
  background:var(--surface-subtle)!important;
  border-color:var(--border-default)!important;
  color:var(--text-secondary)!important;
}
html[data-theme="dark"] .r1-modal-meta dt{color:var(--text-muted)!important}
html[data-theme="dark"] .r1-modal-meta dd{color:var(--text-primary)!important}

/* Attachment picker: one coherent row on desktop; all controls are 42px high. */
.c7-attachment-container{
  width:100%!important;
  grid-template-columns:minmax(0,1fr) 112px!important;
  gap:10px!important;
  align-items:center!important;
}
.c6-attachment-picker{width:100%!important;max-width:none!important;align-items:center!important}
.c6-file-choose,.c6-file-camera,.c6-attachment-upload-action,.c6-file-name{
  box-sizing:border-box!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
}
.c6-file-name{
  display:flex!important;
  align-items:center!important;
  padding:0 11px!important;
  line-height:1.2!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.c6-file-choose,.c6-file-camera,.c6-attachment-upload-action{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1.2!important;
  white-space:nowrap!important;
}

/* Audit page only: dates inherit the full width of their grid columns. */
.r1-audit-filter-grid .stage24-date-field,
.r1-audit-filter-grid .stage25-date-field{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  grid-template-columns:minmax(0,1fr) 40px!important;
}

/* Schedule editors: DateField is fluid only inside schedule/datetime contexts. */
.c6-schedule-editor .stage24-date-field,
.c6-schedule-editor .stage25-date-field,
.stage26-response-dialog-form .stage24-date-field,
.stage26-response-dialog-form .stage25-date-field{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  grid-template-columns:minmax(0,1fr) 40px!important;
}
.c6-schedule-editor .stage24-date-text,.c6-schedule-editor .stage25-date-text,
.stage26-response-dialog-form .stage24-date-text,.stage26-response-dialog-form .stage25-date-text{
  min-width:0!important;
}
.c3-datetime-field input[type="time"],
.c3-datetime-field .stage24-date-field,
.c3-datetime-field .stage25-date-field{
  box-sizing:border-box!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
}

/* Maintenance new: use available width while keeping the schedule row balanced. */
.stage26-form .c10-maintenance-new-schedule{
  grid-template-columns:minmax(220px,22%) minmax(0,1fr)!important;
  gap:16px!important;
  align-items:end!important;
}
.stage26-form .c10-maintenance-new-schedule .c6-schedule-range{gap:16px!important}
.stage26-form .c10-maintenance-new-schedule .c3-datetime-field{
  grid-template-columns:minmax(0,1.18fr) minmax(118px,.82fr)!important;
  gap:10px!important;
}

/* School schedule/assignee modal: mode gets its own row, start/end stay symmetric. */
.stage26-schedule-dialog-form .stage26-schedule-dialog-editor{
  grid-template-columns:1fr!important;
  gap:12px!important;
  align-items:stretch!important;
}
.stage26-schedule-dialog-form .stage26-schedule-dialog-editor .c6-schedule-range{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:16px!important;
}
.stage26-schedule-dialog-form .c3-datetime-field{
  grid-template-columns:minmax(0,1.18fr) minmax(118px,.82fr)!important;
  gap:10px!important;
}

/* School response modal: date and time form one compact, equal-height group. */
.stage26-response-dialog-form .c3-datetime-field{
  width:100%!important;
  grid-template-columns:minmax(0,1.2fr) minmax(128px,.8fr)!important;
  gap:10px!important;
  align-items:center!important;
}

@media(max-width:760px){
  .stage26-form .c10-maintenance-new-schedule{grid-template-columns:1fr!important}
  .stage26-schedule-dialog-form .stage26-schedule-dialog-editor .c6-schedule-range{grid-template-columns:1fr!important}
  .stage26-form .c10-maintenance-new-schedule .c3-datetime-field,
  .stage26-schedule-dialog-form .c3-datetime-field,
  .stage26-response-dialog-form .c3-datetime-field{grid-template-columns:1fr!important}
}
@media(max-width:620px){
  .c7-attachment-container{grid-template-columns:1fr!important}
  .c7-attachment-container .c6-attachment-upload-action{width:100%!important;min-width:0!important}
}

/* ========================================================================== */
/* Stage0026 C10 C7 — user-approved delta UI alignment corrections only       */
/* ========================================================================== */

/* Dashboard KPI icons belong to the whole card, not the title row. */
.reference-kpi{
  align-items:stretch!important;
}
.reference-kpi-icon{
  align-self:center!important;
}
.reference-kpi-copy{
  align-self:start!important;
}

/* Dashboard alert icon and right-side time/status marker share card center. */
.reference-alert-item{
  align-items:stretch!important;
}
.reference-alert-icon{
  align-self:center!important;
}
.reference-alert-copy{
  align-self:center!important;
}
.reference-alert-meta{
  align-self:center!important;
  padding-top:0!important;
}

/* Use-state rows: readable separation while retaining one centered line. */
label:has(> .inline-check){
  display:inline-flex;
  align-items:center;
  gap:10px;
  vertical-align:middle;
}
label:has(> .inline-check) > .inline-check{
  gap:7px!important;
  min-height:42px!important;
}

/* Support/incident/work attachment action stays aligned with picker on usable desktop widths. */
.c7-attachment-container{
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:10px!important;
  align-items:center!important;
}
.c7-attachment-container .c6-attachment-upload-action{
  width:auto!important;
  min-width:94px!important;
  justify-self:end!important;
  align-self:center!important;
}
@container (max-width:340px){
  .c7-attachment-container{
    grid-template-columns:1fr!important;
    align-items:stretch!important;
  }
  .c7-attachment-container .c6-attachment-upload-action{
    width:100%!important;
    min-width:0!important;
    justify-self:stretch!important;
  }
}

/* Notification date filters are self-describing and symmetrically aligned. */
.stage21-notification-filter{
  align-items:end!important;
}
.stage21-notification-date-filter{
  display:grid!important;
  grid-template-rows:auto 42px;
  gap:6px!important;
  min-width:0!important;
  color:var(--text-secondary);
  font-size:13px;
  font-weight:700;
  line-height:1.2;
}
.stage21-notification-date-filter > .stage24-date-field,
.stage21-notification-date-filter > .stage25-date-field{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  grid-template-columns:minmax(0,1fr) 32px!important;
}
.stage21-notification-filter > .inline-check,
.stage21-notification-filter > select,
.stage21-notification-filter > .query-action-control{
  align-self:end!important;
  margin-bottom:0!important;
}

/* School response actions form a distinct footer instead of touching end datetime. */
.stage26-response-dialog-form > .actions{
  margin-top:20px!important;
  padding-top:16px!important;
  border-top:1px solid var(--border-soft)!important;
}

@media(max-width:760px){
  .stage21-notification-filter{
    align-items:stretch!important;
  }
  .stage21-notification-date-filter{
    width:100%!important;
  }
}

/* Support detail narrow side card: keep choose, filename and upload action on one desktop row. */
.support-attachment-card .c7-attachment-container{
  grid-template-columns:minmax(0,1fr) 94px!important;
  gap:10px!important;
}
.support-attachment-card .c6-attachment-picker:not(:has(.c6-file-camera)){
  grid-template-columns:92px minmax(0,1fr)!important;
  gap:8px!important;
}
.support-attachment-card .c6-file-choose{
  width:92px!important;
  min-width:92px!important;
  padding-inline:10px!important;
}
.support-attachment-card .c6-file-name{
  grid-column:auto!important;
  min-width:0!important;
}
.support-attachment-card .c6-attachment-upload-action{
  width:94px!important;
  min-width:94px!important;
}
@media(max-width:620px){
  .support-attachment-card .c7-attachment-container{
    grid-template-columns:1fr!important;
  }
  .support-attachment-card .c6-attachment-picker:not(:has(.c6-file-camera)){
    grid-template-columns:1fr!important;
  }
  .support-attachment-card .c6-file-choose,
  .support-attachment-card .c6-attachment-upload-action{
    width:100%!important;
    min-width:0!important;
  }
}
/* Final support attachment spacing: preserve the full empty-file label where space permits. */
.support-attachment-card .c7-attachment-container{grid-template-columns:minmax(0,1fr) 88px!important}
.support-attachment-card .c6-attachment-picker:not(:has(.c6-file-camera)){grid-template-columns:86px minmax(0,1fr)!important}
.support-attachment-card .c6-file-choose{width:86px!important;min-width:86px!important;padding-inline:8px!important}
.support-attachment-card .c6-file-name{padding-inline:8px!important;font-size:13px!important}
.support-attachment-card .c6-attachment-upload-action{width:88px!important;min-width:88px!important;padding-inline:8px!important}


/* Stage0026 C10 C9 C1 — approved controlled UI/DateField recovery only. */
.c10c9-school-user-single-selector{align-items:start!important}
.c10c9-school-user-single-selector .c6-single-school-selector{min-width:0!important}
.c10c9-school-user-single-selector .c6-single-school-selector>input[type="search"]{width:100%!important}
dialog[open]>.c6-single-school-popover{position:fixed!important;z-index:2147483000!important;pointer-events:auto!important}

/* Native input is temporarily rendered inside the visual DateField only while opening the browser picker. */
input[type="date"].stage25-date-native.c10c9-date-picker-active,
input[type="date"].stage24-date-native.c10c9-date-picker-active{
  position:absolute!important;left:auto!important;right:8px!important;top:50%!important;
  width:1px!important;height:1px!important;min-width:1px!important;min-height:1px!important;
  padding:0!important;margin:0!important;border:0!important;opacity:.001!important;
  pointer-events:none!important;transform:translateY(-50%)!important;background:transparent!important;
}

/* Dashboard period: restore the approved wide layout and reserve a full calendar-trigger cell. */
@media(min-width:1100px){
  .stage21-dashboard-period{
    grid-template-columns:minmax(160px,220px) max-content minmax(470px,1fr)!important;
    column-gap:12px!important;row-gap:10px!important;align-items:center!important;
  }
  .stage21-period-quick{gap:6px!important;padding-right:0!important;justify-self:start!important}
  .stage21-dashboard-period-custom{
    grid-template-columns:184px 14px 184px minmax(72px,auto)!important;
    gap:8px!important;align-items:center!important;justify-self:end!important;justify-content:end!important;
  }
  .stage21-dashboard-period-custom .stage25-date-field,
  .stage21-dashboard-period-custom .stage24-date-field{
    width:184px!important;min-width:184px!important;max-width:184px!important;
    grid-template-columns:minmax(0,1fr) 40px!important;
  }
  .stage21-dashboard-period-custom .stage25-date-button,
  .stage21-dashboard-period-custom .stage24-date-button{
    width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;
    overflow:visible!important;
  }
  .stage21-dashboard-period-custom .stage25-date-button .ui-icon,
  .stage21-dashboard-period-custom .stage24-date-button .ui-icon{width:18px!important;height:18px!important}
  .stage21-dashboard-period-custom>span{width:14px!important;text-align:center!important;justify-self:center!important}
  .stage21-dashboard-period-custom>button{min-width:72px!important;height:42px!important;min-height:42px!important;white-space:nowrap!important}
}

/* Audit pager: previous | current/total | next, centered without duplicate page-number badges. */
.c10c9-audit-pager{display:flex!important;justify-content:center!important;align-items:center!important;gap:14px!important}
.c10c9-audit-pager .r1-page-summary{min-width:92px;text-align:center;white-space:nowrap}

/* Work/inspection target pager: center the whole navigation group in the card. */
.c5-target-pager{display:flex!important;justify-content:center!important;align-items:center!important;gap:14px!important;width:100%!important}

/* ========================================================================== */
/* Stage0027 C1 — explicitly approved UI corrections only                    */
/* ========================================================================== */

/* PWA-CR-0498/0500: incident-only multi-assignee browse/search selector. */
.stage27-assignee-selector{position:relative;display:grid;gap:8px;min-width:0}
.stage27-assignee-selector>input[type="search"]{width:100%;min-height:42px}
.stage27-assignee-selected{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:28px}
.stage27-assignee-empty{font-size:12.5px}
.stage27-assignee-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:28px;padding:3px 5px 3px 9px;border:1px solid var(--brand-border);border-radius:999px;background:var(--brand-soft);color:var(--text-primary);font-size:12.5px;font-weight:700}
.stage27-assignee-chip>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stage27-assignee-chip>button{width:22px;height:22px;min-width:22px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--text-secondary);font-size:17px;line-height:1;display:grid;place-items:center}
.stage27-assignee-popover{position:fixed;z-index:80;display:grid;grid-template-rows:auto minmax(0,1fr);max-height:430px;padding:8px;border:1px solid var(--border-default);border-radius:12px;background:var(--surface-panel);box-shadow:0 18px 42px rgba(15,31,50,.22);color:var(--text-primary)}
.stage27-assignee-popover[hidden]{display:none!important}
dialog[open]>.stage27-assignee-popover{z-index:10}
.stage27-assignee-popover-head{display:flex;align-items:center;gap:8px;padding:4px 4px 9px;border-bottom:1px solid var(--border-soft)}
.stage27-assignee-popover-head>strong{margin-right:auto}
.stage27-assignee-summary{font-size:12.5px;color:var(--text-secondary);white-space:nowrap}
.stage27-assignee-popover-actions{display:flex;gap:5px;align-items:center}
.stage27-assignee-options{display:grid;align-content:start;gap:4px;overflow:auto;padding-top:7px}
.stage27-assignee-option{width:100%;min-height:48px;display:grid;grid-template-columns:26px minmax(0,1fr);gap:8px;align-items:center;padding:7px 9px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--text-primary);text-align:left}
.stage27-assignee-option:hover,.stage27-assignee-option:focus-visible{background:var(--surface-soft);border-color:var(--border-default);outline:none}
.stage27-assignee-option.selected{background:var(--brand-soft);border-color:var(--brand-border)}
.stage27-assignee-check{width:22px;height:22px;border:1px solid var(--border-default);border-radius:6px;display:grid;place-items:center;color:#fff;background:var(--surface-card);font-weight:900}
.stage27-assignee-option.selected .stage27-assignee-check{background:var(--brand);border-color:var(--brand)}
.stage27-assignee-option-copy{min-width:0;display:grid;gap:2px}
.stage27-assignee-option-copy strong,.stage27-assignee-option-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stage27-assignee-option-copy small{color:var(--text-secondary);font-size:12px}
.stage27-assignee-message{padding:18px 10px;text-align:center}
.stage27-assignee-dialog-card{overflow:visible!important}
.stage27-assignee-dialog-actions{margin-top:8px}
.stage27-assignee-contact{gap:8px!important}
.stage27-assignee-contact-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;align-items:center;width:100%}
.stage27-assignee-contact-row small{grid-column:1/-1}

/* PWA-CR-0491: exact approved detailed-filter geometry. */
.incident-filter-card:not(.support-filter-card) .incident-filter-secondary{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.support-filter-card .incident-filter-secondary{grid-template-columns:repeat(3,minmax(0,1fr))!important}
@media(max-width:900px) and (min-width:651px){
  .incident-filter-card:not(.support-filter-card) .incident-filter-secondary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .support-filter-card .incident-filter-secondary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .support-filter-card .incident-filter-secondary>label:last-child{grid-column:1/-1!important}
}
@media(max-width:650px){
  .incident-filter-card:not(.support-filter-card) .incident-filter-secondary,.support-filter-card .incident-filter-secondary{grid-template-columns:1fr!important}
  .support-filter-card .incident-filter-secondary>label:last-child{grid-column:auto!important}
}

/* PWA-CR-0492: dark semantic schedule-change badge without changing light theme. */
html[data-theme="dark"] .c5-attention-badge.schedule_changed{background:#142b4d!important;border-color:#315f96!important;color:#a9d0ff!important;box-shadow:none!important}

/* PWA-CR-0505: all dashboard notification cards share one geometry contract. */
.reference-alert-item{height:92px!important;min-height:92px!important;align-items:stretch!important}
.reference-alert-icon,.reference-alert-copy,.reference-alert-meta{align-self:center!important}
.reference-alert-meta{padding-top:0!important}

/* PWA-CR-0490: close the 1181–1759px desktop breakpoint gap. The accepted >=1760px
   desktop and <=1180px reflow contracts remain unchanged. */
@media(max-width:1759px) and (min-width:1181px){
  .reference-dashboard{grid-template-columns:1fr!important;gap:16px!important}
  .reference-dashboard-primary,.reference-dashboard-side{min-width:0!important;max-width:100%!important}
  .reference-dashboard-side{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}
  .stage21-dashboard-period{grid-template-columns:1fr!important;row-gap:10px!important}
  .stage21-period-quick{order:2!important;justify-self:start!important}
  .stage21-dashboard-period-custom{order:3!important;justify-self:start!important;justify-content:start!important}
}

@media(max-width:620px){
  .stage27-assignee-popover{left:12px!important;right:12px!important;top:auto!important;bottom:12px!important;width:auto!important;max-height:min(64vh,430px)!important}
  .stage27-assignee-popover-head{display:grid;grid-template-columns:1fr auto}
  .stage27-assignee-popover-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr)}
  .stage27-assignee-contact-row{grid-template-columns:1fr}
  .stage27-assignee-contact-row small{grid-column:auto}
}

/* Stage0028 C1 — approved client corrections only (DG-0518/0519/0521). */
.incident-filter-card:not(.support-filter-card) .incident-filter-secondary .stage25-date-field,
.incident-filter-card:not(.support-filter-card) .incident-filter-secondary .stage24-date-field,
.support-filter-card .incident-filter-secondary .stage25-date-field,
.support-filter-card .incident-filter-secondary .stage24-date-field{
  display:grid!important;grid-template-columns:minmax(0,1fr) 32px!important;
  width:100%!important;min-width:0!important;max-width:none!important;
}
.stage20-intake-card .intake-top-grid.four{
  grid-template-columns:minmax(190px,1.25fr) minmax(160px,1fr) minmax(120px,.72fr) minmax(330px,2fr)!important;
}
.stage20-intake-card .intake-top-grid.four>label{min-width:0}
.stage20-intake-card .intake-top-grid.four select,
.stage20-intake-card .intake-top-grid.four input,
.stage20-intake-card .intake-top-grid.four .stage27-assignee-selector>input[type="search"]{height:43px;min-height:43px}
.stage27-assignee-popover{pointer-events:auto}
.stage27-assignee-popover-head{flex-wrap:nowrap}
.stage27-assignee-popover-head>strong,.stage27-assignee-popover-actions button{white-space:nowrap}
.stage27-assignee-popover-actions{flex:0 0 auto}
@media(max-width:1280px){.stage20-intake-card .intake-top-grid.four{grid-template-columns:repeat(2,minmax(210px,1fr))!important}}
@media(max-width:650px){.stage20-intake-card .intake-top-grid.four{grid-template-columns:1fr!important}}

/* Stage0028 C1 — maintenance response/decision surfaces only. */
.stage28-response-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.stage28-response-actions button{white-space:nowrap}
.stage28-response-snapshot{display:grid;gap:3px;padding:8px 10px;border:1px solid var(--border-soft);border-radius:9px;background:var(--surface-soft);font-size:12.5px}
.stage28-response-file{display:grid;gap:6px}
.stage28-response-file input[type=file]{width:100%;min-height:42px;padding:8px;border:1px solid var(--border-default);border-radius:9px;background:var(--surface-control);color:var(--text-primary)}
.stage28-decision-dialog .stage26-schedule-dialog-editor{margin-top:4px}
.stage28-decision-badge{display:inline-flex;align-items:center;min-height:24px;padding:2px 8px;border-radius:999px;background:var(--brand-soft);border:1px solid var(--brand-border);font-size:12px;font-weight:800}
.stage28-deeplink-focus{outline:3px solid var(--focus-ring);outline-offset:3px}

/* Stage0029 C1 — approved UI corrections + integrated calendar foundation only. */
.stage29-assignee-summary-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 14px;align-items:start;padding:10px 12px;border:1px solid var(--border-soft);border-radius:11px;background:var(--surface-soft)}
.stage29-assignee-summary-row>strong{padding-top:5px;white-space:nowrap;color:var(--text-secondary);font-size:13px}
.stage29-assignee-summary-row .stage27-assignee-selected{min-width:0;margin:0}
.stage29-order-actions{display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}
.stage29-order-index{min-width:40px;text-align:center;color:var(--text-muted);font-size:12px;font-variant-numeric:tabular-nums}
.stage29-order-button{display:inline-flex!important;align-items:center;justify-content:center;gap:4px;min-height:34px!important;padding:5px 9px!important;white-space:nowrap}
.stage29-order-button svg{width:14px;height:14px;flex:0 0 14px}
.stage29-order-button.up svg{transform:rotate(180deg)}
.stage29-order-button:disabled{opacity:.45;cursor:not-allowed}

.stage29-calendar-page{display:grid;gap:14px;min-width:0}
.stage29-calendar-controls{display:grid;gap:14px}
.stage29-calendar-control-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.stage29-calendar-view-tabs,.stage29-calendar-navigation{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.stage29-calendar-view-tabs .active{border-color:var(--brand-primary)!important;background:var(--surface-selected)!important;color:var(--brand-text)!important}
.stage29-calendar-filter-row{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(150px,.8fr) minmax(220px,1.25fr) minmax(220px,1.25fr) auto;gap:10px;align-items:end}
.stage29-calendar-filter-row>label{min-width:0}
.stage29-calendar-filter-row>button{min-height:42px;white-space:nowrap}
.stage29-calendar-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 2px}
.stage29-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--border-default);border-left:1px solid var(--border-default);border-radius:12px;overflow:hidden;background:var(--surface-card);box-shadow:var(--shadow-sm,0 2px 8px rgba(15,23,42,.05))}
.stage29-weekday{min-height:38px;display:flex;align-items:center;justify-content:center;padding:7px;border-right:1px solid var(--border-default);border-bottom:1px solid var(--border-default);background:var(--surface-soft);color:var(--text-secondary);font-size:12px;font-weight:800}
.stage29-month-cell{min-width:0;min-height:132px;padding:7px;border-right:1px solid var(--border-default);border-bottom:1px solid var(--border-default);background:var(--surface-card);overflow:hidden}
.stage29-month-cell.outside{background:var(--surface-subtle);color:var(--text-muted)}
.stage29-month-cell.today{box-shadow:inset 0 0 0 2px var(--brand-primary)}
.stage29-day-number,.stage29-week-heading{border:0;background:transparent;color:var(--text-primary);font-weight:800;cursor:pointer}
.stage29-day-number{display:grid;place-items:center;width:30px;height:30px;padding:0;margin:0 0 4px auto;border-radius:8px}
.stage29-day-number:hover,.stage29-day-number:focus-visible,.stage29-week-heading:hover,.stage29-week-heading:focus-visible{background:var(--surface-hover)}
.stage29-calendar-event{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px;align-items:center;margin:4px 0;padding:6px 7px;border:1px solid var(--border-soft);border-left:3px solid var(--border-strong);border-radius:8px;background:var(--surface-elevated);color:var(--text-primary);text-align:left;cursor:pointer;overflow:hidden}
.stage29-calendar-event:hover,.stage29-calendar-event:focus-visible{background:var(--surface-hover);border-color:var(--brand-border)}
.stage29-calendar-event.source-incident{border-left-color:var(--brand-primary)}
.stage29-calendar-event.source-maintenance{border-left-color:var(--status-success,var(--brand-secondary))}
.stage29-calendar-event.source-general{border-left-color:var(--brand-secondary)}
.stage29-calendar-event-source{font-size:10px;font-weight:900;color:var(--text-muted);white-space:nowrap}
.stage29-calendar-event-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.stage29-more-events{width:100%;border:0;background:transparent;color:var(--text-link);padding:4px 6px;text-align:left;cursor:pointer;font-size:12px;font-weight:700}
.stage29-week-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:10px;overflow-x:auto;padding-bottom:4px}
.stage29-week-column{min-width:150px;min-height:250px;padding:10px;border:1px solid var(--border-default);border-radius:12px;background:var(--surface-card)}
.stage29-week-column.today{border-color:var(--brand-primary)}
.stage29-week-heading{width:100%;display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:7px;border-radius:8px;margin-bottom:5px;text-align:left}
.stage29-calendar-empty{padding:18px 4px;color:var(--text-muted);font-size:12px;text-align:center}
.stage29-agenda{display:grid;gap:12px}
.stage29-agenda-day{display:grid;gap:7px}
.stage29-agenda-heading{display:flex;align-items:baseline;gap:8px;margin-bottom:2px}
.stage29-agenda-day .stage29-calendar-event{grid-template-columns:84px minmax(0,1fr);min-height:42px;margin:0}
.stage29-schedule-summary{display:grid;gap:5px;padding:12px;border:1px solid var(--border-soft);border-radius:10px;background:var(--surface-soft)}
.stage29-schedule-empty{min-height:0;padding:14px 0;text-align:left}
.stage29-incident-schedule-card{display:grid;gap:12px}
.stage29-schedule-history p{margin:5px 0}
.stage29-schedule-dialog .modal-form,.stage29-general-dialog .modal-form{max-width:720px}
.stage29-general-dialog .stage27-assignee-selector,.stage29-schedule-dialog .c6-schedule-editor{min-width:0}
@media(max-width:1100px){
  .stage29-calendar-filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stage29-calendar-filter-row>button{justify-self:start}
  .stage29-month-cell{min-height:116px}
}
@media(max-width:700px){
  .stage29-assignee-summary-row{grid-template-columns:1fr}
  .stage29-assignee-summary-row>strong{padding-top:0}
  .stage29-calendar-control-row{align-items:stretch}
  .stage29-calendar-control-row,.stage29-calendar-view-tabs,.stage29-calendar-navigation{width:100%}
  .stage29-calendar-view-tabs>button,.stage29-calendar-navigation>button{flex:1 1 0}
  .stage29-calendar-filter-row{grid-template-columns:1fr}
  .stage29-calendar-filter-row>button{width:100%}
  .stage29-calendar-summary{align-items:flex-start;flex-direction:column;gap:3px}
  .stage29-month-grid{grid-template-columns:repeat(7,minmax(74px,1fr));overflow-x:auto;border-radius:10px}
  .stage29-weekday{min-width:74px}
  .stage29-month-cell{min-width:74px;min-height:104px;padding:5px}
  .stage29-calendar-event{display:block;padding:5px 6px}
  .stage29-calendar-event-source{display:none}
  .stage29-calendar-event-title{display:block;font-size:11px}
  .stage29-agenda-day .stage29-calendar-event{display:grid;grid-template-columns:70px minmax(0,1fr)}
}

/* ========================================================================== */
/* Stage0030 C1 — Client Shell / Operations UX / Maintenance Operations       */
/* PWA-CR-0587 / 0596 / 0598 / 0600 plus maintenance operation surfaces.     */
/* ========================================================================== */
@media(min-width:1100px){
  .stage21-dashboard-period{
    grid-template-columns:minmax(160px,220px) max-content max-content!important;
    justify-content:start!important;
    column-gap:clamp(14px,1.2vw,24px)!important;
  }
  .stage21-dashboard-period-custom{justify-self:start!important;}
}

.r1-category-table tbody tr{vertical-align:middle;}
.r1-category-table tbody td{vertical-align:middle!important;}
.r1-category-table .stage29-order-actions,
.r1-category-table .r1-admin-actions,
.r1-category-table .admin-row-actions{
  vertical-align:middle!important;
  text-align:center!important;
  min-height:38px;
  margin:0!important;
  transform:none!important;
  position:static!important;
}
.r1-category-table .stage29-order-index{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:36px;}
.r1-category-table .stage29-order-button,
.r1-category-table .r1-admin-actions button,
.r1-category-table .admin-row-actions button{
  min-height:36px!important;
  height:36px!important;
  box-sizing:border-box!important;
  margin:0!important;
  transform:none!important;
}
.r1-category-table .stage29-order-button:disabled{visibility:visible;opacity:.4;}

.stage30-maintenance-row-actions{white-space:nowrap;vertical-align:middle!important;}
.stage30-maintenance-row-actions button{min-height:36px;}
.stage30-operational-notes{margin-top:10px;}
.stage30-operational-note{display:grid;grid-template-columns:minmax(100px,auto) minmax(0,1fr) auto;gap:8px 14px;align-items:start;}
.stage30-operational-note p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;}
.stage30-dashboard-maintenance{overflow-x:auto;}
.stage30-dashboard-maintenance-table{min-width:760px;}

.stage19-dialog-card select[data-context-role]{background:var(--surface-soft);color:var(--text-secondary);cursor:not-allowed;opacity:1;}

@media(max-width:700px){
  .stage30-operational-note{grid-template-columns:1fr;gap:3px;}
}

/* Stage0030 C2 — Calendar Foundation / General Schedule / Holiday */
.stage30-c2-schedule-editor{display:grid;gap:12px}.stage30-c2-schedule-editor .c6-schedule-range{align-items:end}.stage30-c2-schedule-editor input[type=time]{width:100%;min-height:42px}
.stage30-c2-general-school-selector{display:grid;gap:8px;min-width:0}.stage30-c2-general-school-chips{min-height:30px}.stage30-c2-school-popover{z-index:5}.stage30-c2-school-count{margin-left:auto}
.stage29-calendar-filter-row .stage27-assignee-selector.single{display:block;min-height:42px}.stage29-calendar-filter-row .stage27-assignee-selector.single>input{min-height:42px;height:42px}.stage29-calendar-filter-row .stage27-assignee-selector.single>.stage27-assignee-selected{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:0;padding:0;border:0}.stage29-calendar-filter-row>label{align-self:end}.stage29-calendar-filter-row>label>span:first-child{min-height:20px;display:flex;align-items:center}
.stage30-month-board{display:grid;gap:0;border:1px solid var(--border-default);border-radius:12px;overflow:hidden;background:var(--surface-card)}.stage30-month-weekdays,.stage30-month-dayheads{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.stage30-month-week{display:grid;border-top:1px solid var(--border-default);min-height:164px;background:var(--surface-card)}.stage30-month-week:first-of-type{border-top:0}.stage30-month-dayheads{grid-area:1/1;min-height:164px}.stage30-month-dayhead{position:relative;display:flex;flex-direction:column;align-items:flex-end;gap:3px;min-width:0;min-height:164px;padding:7px;border:0;border-right:1px solid var(--border-default);background:transparent;color:var(--text-primary);text-align:right;cursor:pointer}.stage30-month-dayhead:last-child{border-right:0}.stage30-month-dayhead.outside{background:var(--surface-subtle);color:var(--text-muted)}.stage30-month-dayhead.today{box-shadow:inset 0 0 0 2px var(--brand-primary)}
.stage30-month-dayhead.saturday,.stage29-weekday.saturday,.stage29-week-column.saturday{--weekend-accent:#3568b8}.stage30-month-dayhead.sunday,.stage29-weekday.sunday,.stage29-week-column.sunday{--weekend-accent:#b44c4c}.stage30-month-dayhead.saturday .stage29-day-number,.stage30-month-dayhead.sunday .stage29-day-number,.stage29-weekday.saturday,.stage29-weekday.sunday,.stage29-week-column.saturday .stage29-week-heading,.stage29-week-column.sunday .stage29-week-heading{color:var(--weekend-accent)}.stage30-month-dayhead.holiday .stage29-day-number,.stage29-week-column.holiday .stage29-week-heading,.stage29-agenda-day.holiday .stage29-agenda-heading{color:var(--status-danger,#b42318)}.stage30-holiday-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--status-danger,#b42318);font-size:10px;font-weight:800}.stage30-create-affordance{opacity:0;color:var(--text-link);font-size:10px;font-weight:700}.stage30-month-dayhead:hover .stage30-create-affordance,.stage30-month-dayhead:focus-visible .stage30-create-affordance{opacity:1}
.stage30-month-events{grid-area:1/1;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(44px,auto);gap:4px 6px;align-content:start;padding:44px 6px 7px;pointer-events:none;z-index:2}.stage30-month-events .stage29-calendar-event,.stage30-month-events .stage29-more-events{pointer-events:auto;margin:0;min-width:0}.stage30-rich-event{grid-template-columns:1fr;gap:2px;align-items:start;padding:6px 7px}.stage30-rich-event.compact{min-height:44px}.stage30-event-top{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0}.stage30-event-status{display:inline-flex;align-items:center;min-height:18px;padding:1px 5px;border-radius:999px;background:var(--surface-soft);font-size:9px;font-weight:800;white-space:nowrap}.stage30-event-status.status-completed,.stage30-event-status.status-resolved,.stage30-event-status.status-closed{background:var(--status-success-soft,var(--surface-soft))}.stage30-event-status.status-in_progress{background:var(--status-warning-soft,var(--surface-soft))}.stage30-event-meta,.stage30-event-date{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:var(--text-secondary)}.stage30-event-date{font-weight:700;color:var(--text-muted)}.stage30-rich-event .stage29-calendar-event-title{display:block;font-size:11px;font-weight:800}.stage30-week-more{grid-column:1/-1}
@media(max-width:900px){.stage30-month-week{min-height:135px}.stage30-month-dayheads{min-height:135px}.stage30-month-dayhead{min-height:135px}.stage30-month-events{grid-auto-rows:minmax(34px,auto)}.stage30-rich-event .stage30-event-meta,.stage30-rich-event .stage30-event-date,.stage30-rich-event .stage30-event-status{display:none}.stage30-rich-event{padding:5px}.stage30-create-affordance{display:none}}
@media(max-width:700px){.stage30-month-board{overflow-x:auto}.stage30-month-weekdays,.stage30-month-dayheads,.stage30-month-events{min-width:700px}.stage30-month-week{min-width:700px}.stage29-agenda .stage30-rich-event .stage30-event-meta,.stage29-agenda .stage30-rich-event .stage30-event-date,.stage29-agenda .stage30-rich-event .stage30-event-status{display:block}}

/* Stage0030 C2 R1 — Calendar readability / form spacing recovery */
.stage30-calendar-period-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:54px;padding:4px 4px 2px}.stage30-calendar-period-primary{display:inline-flex;align-items:center;gap:10px;min-width:0;color:var(--text-primary)}.stage30-calendar-period-icon{width:25px;height:25px;flex:0 0 25px;color:var(--primary)}.stage30-calendar-period-primary strong{font-size:24px;line-height:1.2;font-weight:900;letter-spacing:-.025em}.stage30-calendar-visible-range{font-size:13px;font-weight:650;color:var(--text-muted);white-space:nowrap}
.stage30-month-week,.stage30-month-dayheads,.stage30-month-dayhead{min-height:238px}.stage30-month-events{grid-auto-rows:minmax(82px,auto);gap:7px 8px;padding:50px 8px 9px}.stage30-rich-event{gap:4px;padding:8px 9px;line-height:1.4;border-radius:9px}.stage30-rich-event.compact{min-height:82px}.stage30-event-top{gap:8px}.stage29-calendar-event-source{font-size:11px;line-height:1.3}.stage30-event-status{min-height:22px;padding:2px 7px;font-size:12px;line-height:1.25}.stage30-event-meta,.stage30-event-date{font-size:12.5px;line-height:1.4}.stage30-rich-event .stage29-calendar-event-title{font-size:14px;line-height:1.38;font-weight:850;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.stage30-holiday-name{font-size:11.5px;line-height:1.3}.stage29-more-events.stage30-week-more{min-height:34px;font-size:12.5px;font-weight:800}
.stage30-comfort-form{display:grid;gap:18px!important}.stage30-comfort-form>h2{margin:0 0 2px}.stage30-comfort-form>label{display:grid;gap:7px}.stage30-comfort-form>label>span:first-child{line-height:1.35}.stage30-comfort-form>.muted{margin:0;line-height:1.5}.stage30-comfort-form>.actions{margin-top:4px;padding-top:2px}.stage30-general-schedule-form .stage30-c2-general-school-selector{gap:10px}.stage30-general-schedule-form .stage30-c2-general-school-chips{min-height:34px;padding-top:1px}.stage30-general-schedule-form .stage30-c2-school-empty{display:inline-flex;align-items:center;min-height:28px;line-height:1.4}.stage30-general-schedule-form .c6-schedule-editor{margin-top:2px}.stage30-general-schedule-form .stage27-assignee-selector{display:grid;gap:9px}.stage30-general-schedule-form .stage27-assignee-selected{min-height:32px}.stage30-general-schedule-form textarea{min-height:116px}
@media(max-width:900px){.stage30-calendar-period-heading{align-items:flex-start;flex-direction:column;gap:4px}.stage30-calendar-period-primary strong{font-size:21px}.stage30-calendar-visible-range{white-space:normal}.stage30-month-week,.stage30-month-dayheads,.stage30-month-dayhead{min-height:150px}.stage30-month-events{grid-auto-rows:minmax(38px,auto);padding-top:44px}.stage30-rich-event{padding:6px}.stage30-rich-event.compact{min-height:40px}.stage30-rich-event .stage30-event-meta,.stage30-rich-event .stage30-event-date,.stage30-rich-event .stage30-event-status{display:none}.stage30-rich-event .stage29-calendar-event-title{font-size:12px;line-height:1.35;-webkit-line-clamp:2}.stage30-comfort-form{gap:15px!important}}
@media(max-width:700px){.stage30-calendar-period-primary strong{font-size:20px}.stage30-calendar-period-icon{width:22px;height:22px;flex-basis:22px}.stage29-agenda .stage30-rich-event .stage30-event-meta,.stage29-agenda .stage30-rich-event .stage30-event-date,.stage29-agenda .stage30-rich-event .stage30-event-status{display:block}.stage29-agenda .stage30-rich-event .stage29-calendar-event-title{font-size:14px}}

/* Stage0031 C1 — Integrated Work / Calendar Header / Schedule School Selector */
.stage31-integrated-work-page{display:grid;gap:16px}
.stage31-work-mode-tabs,.stage31-calendar-view-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.stage31-calendar-view-row{justify-content:space-between}
.stage31-integrated-controls{display:grid;gap:16px}
.stage31-integrated-filter{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(130px,.8fr) minmax(130px,.75fr) minmax(220px,1.25fr) minmax(220px,1.25fr) auto;gap:12px;align-items:end}
.stage31-integrated-filter.call-center{grid-template-columns:minmax(220px,2fr) minmax(140px,1fr) minmax(140px,1fr) auto}
.stage31-integrated-list{padding:0;overflow:hidden}
.stage31-integrated-table{width:100%;border-collapse:collapse}
.stage31-integrated-table th,.stage31-integrated-table td{padding:14px 16px;border-bottom:1px solid var(--border-default);vertical-align:middle;text-align:left}
.stage31-integrated-table th{font-size:.82rem;color:var(--muted);background:var(--surface-subtle)}
.stage31-work-row{cursor:pointer}
.stage31-work-row:hover,.stage31-work-row:focus-visible{background:var(--surface-hover);outline:none}
.stage31-source-badge{display:inline-flex;align-items:center;min-height:26px;padding:3px 9px;border-radius:999px;font-size:.78rem;font-weight:700;border:1px solid var(--border-default)}
.stage31-source-badge.source-incident{background:var(--brand-soft)}
.stage31-source-badge.source-maintenance,.stage31-source-badge.source-general{background:var(--surface-subtle)}

.stage31-calendar-heading{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:18px;min-height:54px;padding:0 2px}
.stage31-calendar-heading-spacer{grid-column:1}
.stage31-calendar-month-title{grid-column:2;justify-self:center;align-self:center;font-size:1.35rem;line-height:1.25;white-space:nowrap;color:var(--text);padding-top:8px}
.stage31-calendar-nav-stack{grid-column:3;justify-self:end;display:grid;gap:7px;justify-items:end}
.stage31-calendar-nav-stack .stage29-calendar-navigation{width:auto}
.stage31-calendar-nav-stack .stage30-calendar-visible-range{margin:0;text-align:right;font-size:.78rem;color:var(--muted);white-space:nowrap}

.stage30-c2-general-school-selector{display:grid;gap:12px;min-width:0}
.stage30-c2-general-school-selector > input{width:100%}
.stage30-c2-general-school-chips{display:flex;flex-wrap:wrap;gap:8px;min-height:24px;align-items:center}
.stage31-school-popover{z-index:12020!important;display:grid;grid-template-rows:auto minmax(0,1fr);gap:0;overflow:hidden;padding:0!important;border-radius:14px;box-shadow:0 18px 48px rgba(15,23,42,.18)}
.stage31-school-popover[hidden]{display:none!important}
.stage31-school-popover .c5-school-search-popover-head{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border-default);background:var(--surface)}
.stage31-school-popover .stage30-c2-school-count{margin:0;color:var(--muted);font-size:.82rem;white-space:nowrap}
.stage31-school-popover .c4-school-popover-list{overflow:auto;overscroll-behavior:contain;max-height:min(360px,45vh);padding:4px 0;background:var(--surface)}
.stage31-school-popover .school-search-option{width:100%;min-height:54px;padding:11px 16px;display:flex;justify-content:space-between;align-items:center;gap:16px;border:0;border-bottom:1px solid var(--border-soft,var(--border-default));background:transparent;text-align:left}
.stage31-school-popover .school-search-option strong{font-size:.92rem}
.stage31-school-popover .school-search-option small{color:var(--muted);white-space:nowrap}
.stage31-school-popover .school-search-option:hover,.stage31-school-popover .school-search-option:focus-visible{background:var(--surface-hover);outline:none}
.stage31-school-popover .school-search-option.selected{background:var(--brand-soft)}
.stage30-c2-school-empty{display:block;line-height:1.5}

@media (max-width:1100px){
  .stage31-integrated-filter,.stage31-integrated-filter.call-center{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stage31-integrated-filter > button{justify-self:start}
}
@media (max-width:720px){
  .stage31-integrated-filter,.stage31-integrated-filter.call-center{grid-template-columns:1fr}
  .stage31-calendar-heading{grid-template-columns:1fr;gap:10px;justify-items:center}
  .stage31-calendar-heading-spacer{display:none}
  .stage31-calendar-month-title{grid-column:1;grid-row:1;padding-top:0}
  .stage31-calendar-nav-stack{grid-column:1;grid-row:2;justify-self:center;justify-items:center}
  .stage31-calendar-nav-stack .stage30-calendar-visible-range{text-align:center;white-space:normal}
  .stage31-calendar-view-row{align-items:stretch}
  .stage31-work-mode-tabs,.stage29-calendar-view-tabs{width:100%}
  .stage31-work-mode-tabs > button,.stage29-calendar-view-tabs > button{flex:1 1 0}
  .stage31-integrated-table{min-width:760px}
  .stage31-school-popover .c5-school-search-popover-head{grid-template-columns:1fr auto}
  .stage31-school-popover .stage30-c2-school-count{grid-column:1;grid-row:2}
}


/* Stage0031 Weather Hero R2 / PWA-CR-20260820-0677 */
.reference-hero.stage21-school-hero::before,.reference-hero.stage21-school-hero::after{content:"";position:absolute;inset:-18%;z-index:1;pointer-events:none;opacity:0;transform:translateZ(0)}
.reference-hero.stage21-school-hero .reference-hero-top,.reference-hero.stage21-school-hero .reference-kpis{position:relative;z-index:3}
.reference-hero.stage21-school-hero.hero-weather-clear::before,.reference-hero.stage21-school-hero.hero-weather-fair::before{opacity:.92;background:radial-gradient(circle at 78% 12%,rgba(255,244,164,.92) 0 4%,rgba(255,221,102,.42) 10%,rgba(255,215,92,.12) 22%,transparent 42%);animation:samsHeroSunPulse 7s ease-in-out infinite alternate}
.reference-hero.stage21-school-hero.hero-weather-clear::after,.reference-hero.stage21-school-hero.hero-weather-fair::after{opacity:.42;background:conic-gradient(from 210deg at 78% 12%,transparent 0 8%,rgba(255,248,205,.34) 10% 12%,transparent 14% 24%,rgba(255,248,205,.22) 26% 28%,transparent 30% 100%);animation:samsHeroSunRay 18s linear infinite}
.reference-hero.stage21-school-hero.hero-weather-partly_cloudy::before{opacity:.68;background:radial-gradient(ellipse at 12% 28%,rgba(255,255,255,.78) 0 8%,transparent 18%),radial-gradient(ellipse at 46% 18%,rgba(255,255,255,.58) 0 10%,transparent 22%),radial-gradient(ellipse at 82% 36%,rgba(238,246,251,.62) 0 9%,transparent 20%);filter:blur(9px);animation:samsHeroCloudDrift 22s linear infinite alternate}
.reference-hero.stage21-school-hero.hero-weather-partly_cloudy::after{opacity:.38;background:radial-gradient(circle at 84% 13%,rgba(255,232,132,.82),transparent 16%);animation:samsHeroSunPulse 8s ease-in-out infinite alternate}
.reference-hero.stage21-school-hero.hero-weather-cloudy::before{opacity:.88;background:radial-gradient(ellipse at 6% 16%,rgba(206,220,230,.88) 0 12%,transparent 28%),radial-gradient(ellipse at 45% 22%,rgba(180,199,212,.74) 0 17%,transparent 34%),radial-gradient(ellipse at 88% 18%,rgba(210,221,228,.80) 0 15%,transparent 31%),radial-gradient(ellipse at 68% 48%,rgba(150,172,188,.42) 0 15%,transparent 35%);filter:blur(13px);animation:samsHeroCloudDrift 28s ease-in-out infinite alternate}
.reference-hero.stage21-school-hero.hero-weather-cloudy::after{opacity:.30;background:linear-gradient(180deg,rgba(45,65,78,.25),transparent 48%,rgba(85,104,116,.22))}
.reference-hero.stage21-school-hero.hero-weather-fog::before{opacity:.82;background:repeating-linear-gradient(180deg,transparent 0 13%,rgba(238,245,248,.48) 16% 22%,transparent 26% 36%);filter:blur(8px);animation:samsHeroFogSlide 13s ease-in-out infinite alternate}
.reference-hero.stage21-school-hero.hero-weather-fog::after{opacity:.64;background:repeating-linear-gradient(180deg,rgba(228,238,242,.34) 0 8%,transparent 12% 26%,rgba(242,247,249,.30) 31% 37%,transparent 42% 58%);filter:blur(14px);animation:samsHeroFogSlideReverse 18s ease-in-out infinite alternate}
.reference-hero.stage21-school-hero.hero-weather-rain::before,.reference-hero.stage21-school-hero.hero-weather-thunder::before{opacity:.78;background:repeating-linear-gradient(112deg,transparent 0 16px,rgba(204,235,255,.70) 17px 18px,transparent 19px 34px),repeating-linear-gradient(112deg,transparent 0 29px,rgba(151,207,244,.42) 30px 31px,transparent 32px 55px);background-size:140px 180px,190px 230px;animation:samsHeroRainFall .72s linear infinite}
.reference-hero.stage21-school-hero.hero-weather-rain::after{opacity:.46;background:linear-gradient(180deg,rgba(16,43,62,.10),rgba(126,174,199,.18) 72%,rgba(198,224,236,.28));animation:samsHeroRainMist 4s ease-in-out infinite alternate}
.reference-hero.stage21-school-hero.hero-weather-sleet::before{opacity:.76;background:repeating-linear-gradient(112deg,transparent 0 20px,rgba(200,232,252,.68) 21px 22px,transparent 23px 40px);background-size:150px 190px;animation:samsHeroRainFall .92s linear infinite}
.reference-hero.stage21-school-hero.hero-weather-sleet::after{opacity:.82;background-image:radial-gradient(circle,rgba(255,255,255,.92) 0 2px,transparent 2.5px),radial-gradient(circle,rgba(222,242,255,.90) 0 1.5px,transparent 2px);background-size:45px 45px,67px 67px;background-position:0 0,23px 12px;animation:samsHeroSnowFall 6s linear infinite}
.reference-hero.stage21-school-hero.hero-weather-snow::before{opacity:.94;background-image:radial-gradient(circle,rgba(255,255,255,.98) 0 3px,transparent 3.7px),radial-gradient(circle,rgba(245,251,255,.90) 0 2px,transparent 2.7px);background-size:54px 54px,82px 82px;background-position:8px 5px,35px 22px;animation:samsHeroSnowFall 8s linear infinite}
.reference-hero.stage21-school-hero.hero-weather-snow::after{opacity:.58;background-image:radial-gradient(circle,rgba(255,255,255,.78) 0 1.4px,transparent 2px);background-size:34px 34px;animation:samsHeroSnowFallFar 13s linear infinite}
.reference-hero.stage21-school-hero.hero-weather-thunder::after{opacity:.02;background:linear-gradient(118deg,transparent 0 60%,rgba(246,250,255,.98) 61% 63%,rgba(179,211,255,.55) 64% 66%,transparent 67% 100%);animation:samsHeroLightning 5.8s steps(1,end) infinite}
@keyframes samsHeroSunPulse{from{transform:scale(.96);filter:brightness(.96)}to{transform:scale(1.05);filter:brightness(1.14)}}
@keyframes samsHeroSunRay{to{transform:rotate(360deg)}}
@keyframes samsHeroCloudDrift{from{transform:translate3d(-4%,0,0) scale(1.02)}to{transform:translate3d(5%,2%,0) scale(1.08)}}
@keyframes samsHeroFogSlide{from{transform:translate3d(-5%,-1%,0)}to{transform:translate3d(6%,2%,0)}}
@keyframes samsHeroFogSlideReverse{from{transform:translate3d(5%,1%,0)}to{transform:translate3d(-6%,-2%,0)}}
@keyframes samsHeroRainFall{from{background-position:0 -180px,0 -230px}to{background-position:-60px 180px,-80px 230px}}
@keyframes samsHeroRainMist{from{transform:translateY(-2%);opacity:.34}to{transform:translateY(3%);opacity:.56}}
@keyframes samsHeroSnowFall{from{background-position:8px -60px,35px -90px}to{background-position:-38px 360px,82px 430px}}
@keyframes samsHeroSnowFallFar{from{background-position:0 -40px}to{background-position:28px 320px}}
@keyframes samsHeroLightning{0%,88%,91%,94%,100%{opacity:.02}89%{opacity:.88}90%{opacity:.16}92%{opacity:.70}93%{opacity:.08}}
@media(prefers-reduced-motion:reduce){.reference-hero.stage21-school-hero::before,.reference-hero.stage21-school-hero::after{animation:none!important}}

/* Stage0031 R3: photo Weather Hero + integrated-work visual recovery. */
.reference-hero.stage21-school-hero.r3-photo-hero::before,
.reference-hero.stage21-school-hero.r3-photo-hero::after{content:none!important;animation:none!important}
.r3-photo-hero{
  --r3-photo:url('/assets/hero-campus.jpg?v=stage31-c2-r7');
  min-height:432px;
  padding:30px 28px 154px;
  isolation:isolate;
  overflow:hidden;
  background-image:linear-gradient(90deg,rgba(4,29,54,.78) 0%,rgba(5,42,73,.61) 38%,rgba(3,20,39,.18) 67%,rgba(3,15,29,.30) 100%),var(--r3-photo)!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  box-shadow:0 20px 48px rgba(15,23,42,.16);
}
.r3-photo-hero.hero-weather-clear,.r3-photo-hero.hero-weather-fair{--r3-photo:url('/assets/hero-campus.jpg?v=stage31-c2-r7')}
.r3-photo-hero.hero-weather-partly_cloudy{--r3-photo:url('/assets/hero-campus.jpg?v=stage31-c2-r7')}
.r3-photo-hero.hero-weather-cloudy{--r3-photo:url('/assets/hero-campus.jpg?v=stage31-c2-r7')}
.r3-photo-hero.hero-weather-fog{--r3-photo:url('/assets/hero-campus.jpg?v=stage31-c2-r7')}
.r3-photo-hero.hero-weather-rain{--r3-photo:url('/assets/hero-campus.jpg?v=stage31-c2-r7')}
.r3-photo-hero.hero-weather-sleet{--r3-photo:url('/assets/hero-campus.jpg?v=stage31-c2-r7')}
.r3-photo-hero.hero-weather-snow{--r3-photo:url('/assets/hero-campus.jpg?v=stage31-c2-r7')}
.r3-photo-hero.hero-weather-thunder{--r3-photo:url('/assets/hero-campus.jpg?v=stage31-c2-r7')}
.r3-photo-hero.hero-weather-unknown{--r3-photo:url('/assets/hero-campus.jpg?v=stage31-c2-r7')}
.r3-hero-top{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,350px);gap:32px;align-items:start;width:100%}
.r3-hero-copy{max-width:690px;padding-top:5px;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.28)}
.r3-hero-school{display:block;margin-bottom:8px;font-size:.95rem;font-weight:700;letter-spacing:.03em;color:rgba(255,255,255,.92)}
.r3-hero-copy h1{margin:0 0 12px;font-size:clamp(2rem,3.2vw,3.15rem);line-height:1.08;letter-spacing:-.04em;color:#fff}
.r3-hero-copy p{max-width:570px;margin:0;font-size:1.05rem;line-height:1.65;font-weight:600;color:rgba(255,255,255,.94)}
.r3-hero-status{display:inline-flex;align-items:center;gap:8px;margin-top:22px;padding:9px 13px;border:1px solid rgba(255,255,255,.26);border-radius:999px;background:rgba(9,28,48,.42);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:.84rem;font-weight:700;color:#fff;text-shadow:none}
.r3-hero-status .ui-icon{width:16px;height:16px;color:#5ee69a}
.r3-weather-card{position:relative;z-index:2;padding:20px 20px 17px;border:1px solid rgba(255,255,255,.38);border-radius:20px;background:rgba(246,250,255,.86);box-shadow:0 16px 40px rgba(2,12,27,.18);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);color:#12243a;text-shadow:none}
.r3-weather-main{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}
.r3-weather-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:rgba(255,255,255,.76);color:#1877d2}
.r3-weather-icon .ui-icon{width:30px;height:30px}
.r3-weather-condition{font-size:.96rem;font-weight:800;color:#29445f}
.r3-weather-temperature{font-size:2.65rem;line-height:1;font-weight:800;letter-spacing:-.05em;color:#10253b}
.r3-weather-extremes{display:flex;gap:6px;align-items:center;margin:13px 0 12px;padding-bottom:12px;border-bottom:1px solid rgba(43,68,94,.16);font-size:.84rem;font-weight:750;color:#52677d}
.r3-weather-extremes .high{color:#d54c45}.r3-weather-extremes .low{color:#347ccc}
.r3-weather-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
.r3-weather-metric{display:flex;align-items:center;gap:6px;min-width:0;font-size:.82rem;font-weight:700;color:#405970}
.r3-weather-metric .ui-icon{width:16px;height:16px;color:#2b83d5;flex:none}
.r3-weather-meta{grid-column:1/-1;margin-top:3px;font-size:.73rem;line-height:1.4;color:#6b7f92}
.r3-photo-hero .reference-kpis.r3-hero-kpis{z-index:3;left:28px;right:28px;bottom:26px;gap:12px}
.r3-photo-hero .reference-kpi{min-height:105px;border:1px solid rgba(255,255,255,.52);background:rgba(250,252,255,.91);box-shadow:0 12px 28px rgba(8,28,48,.16);backdrop-filter:blur(11px);-webkit-backdrop-filter:blur(11px)}
.r3-photo-hero .reference-kpi:hover{transform:translateY(-2px);box-shadow:0 17px 34px rgba(8,28,48,.2)}
.sidebar-brand[data-route]{cursor:pointer}

/* Same semantic control line for integrated list/calendar filters. */
.stage31-integrated-filter>label,.stage29-calendar-filter-row>label{display:grid;grid-template-rows:20px 42px;gap:6px;align-self:end;min-width:0;margin:0}
.stage31-integrated-filter>label>span:first-child,.stage29-calendar-filter-row>label>span:first-child{display:flex;align-items:center;min-height:20px;line-height:20px;font-size:.84rem;font-weight:700;color:var(--muted)}
.stage31-integrated-filter>label>input,.stage31-integrated-filter>label>select,.stage31-integrated-filter>label>.readonly-field,.stage31-integrated-filter>label>.school-search-control,.stage31-integrated-filter>label>.stage27-assignee-selector.single,
.stage29-calendar-filter-row>label>input,.stage29-calendar-filter-row>label>select,.stage29-calendar-filter-row>label>.readonly-field,.stage29-calendar-filter-row>label>.school-search-control,.stage29-calendar-filter-row>label>.stage27-assignee-selector.single{width:100%;height:42px;min-height:42px;box-sizing:border-box;margin:0}
.stage31-integrated-filter .school-search-control>input,.stage29-calendar-filter-row .school-search-control>input,.stage31-integrated-filter .stage27-assignee-selector.single>input,.stage29-calendar-filter-row .stage27-assignee-selector.single>input{width:100%;height:42px;min-height:42px;box-sizing:border-box;margin:0}
.stage31-integrated-filter .stage27-assignee-selector.single>.stage27-assignee-selected,.stage29-calendar-filter-row .stage27-assignee-selector.single>.stage27-assignee-selected{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;margin:0!important;padding:0!important;border:0!important}
.stage31-integrated-filter>button,.stage29-calendar-filter-row>button{height:42px;min-height:42px;align-self:end;white-space:nowrap}

/* Centered period navigation without pixel-offset patches. */
.stage31-calendar-heading.r3-calendar-heading{display:grid;grid-template-columns:minmax(112px,1fr) auto minmax(112px,1fr);grid-template-areas:"prev current next" "range range range";align-items:center;gap:10px 18px;min-height:auto;padding:2px 2px 0}
.r3-calendar-prev{grid-area:prev;justify-self:start}.r3-calendar-current{grid-area:current;display:flex;align-items:center;justify-content:center;gap:10px;min-width:0}.r3-calendar-next{grid-area:next;justify-self:end}
.stage31-calendar-heading.r3-calendar-heading .stage31-calendar-month-title{grid-column:auto;justify-self:auto;align-self:auto;margin:0;padding:0;font-size:1.42rem;line-height:1.25;white-space:nowrap;color:var(--text)}
.r3-calendar-neighbor{min-width:92px}.r3-calendar-today{min-height:34px;height:34px;padding-inline:12px}
.r3-calendar-visible-range{grid-area:range;justify-self:center;text-align:center;margin-top:1px;font-size:.78rem;color:var(--muted)}
.stage31-work-row{cursor:pointer}.stage31-work-row:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 35%,transparent);outline-offset:-3px}
.stage31-work-detail-dialog{width:min(94vw,650px)}.stage31-work-detail-card{width:100%}.stage31-work-detail-actions{align-items:center;flex-wrap:wrap}.stage31-work-detail-actions .danger-button{margin-left:auto}

@media(max-width:980px){
  .r3-photo-hero{min-height:0;padding:24px}
  .r3-hero-top{grid-template-columns:1fr;gap:18px}
  .r3-weather-card{max-width:440px}
  .r3-photo-hero .reference-kpis.r3-hero-kpis{position:relative;left:auto;right:auto;bottom:auto;margin-top:20px;grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .r3-photo-hero{padding:20px 16px;background-position:center center!important}
  .r3-hero-copy h1{font-size:2rem}.r3-hero-copy p{font-size:.94rem}.r3-hero-status{width:100%;border-radius:14px;flex-wrap:wrap}
  .r3-weather-card{max-width:none;width:100%;padding:16px}.r3-weather-temperature{font-size:2.25rem}
  .stage31-calendar-heading.r3-calendar-heading{grid-template-columns:1fr auto 1fr;gap:8px 10px}.r3-calendar-neighbor{min-width:0;padding-inline:9px}.stage31-calendar-heading.r3-calendar-heading .stage31-calendar-month-title{font-size:1.15rem}.r3-calendar-today{padding-inline:9px}
}
@media(max-width:480px){
  .r3-photo-hero .reference-kpis.r3-hero-kpis{grid-template-columns:1fr}
  .r3-weather-main{grid-template-columns:auto 1fr auto}.r3-weather-metrics{grid-template-columns:1fr}
  .stage31-calendar-heading.r3-calendar-heading{grid-template-columns:1fr 1fr;grid-template-areas:"current current" "prev next" "range range"}.r3-calendar-current{margin-bottom:2px}.r3-calendar-prev,.r3-calendar-next{width:100%}
}
/* Stage0031 R3 weather-card DOM binding (authoritative app.js classes). */
.r3-weather-card-top{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center}
.r3-weather-card .r3-weather-condition{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;font-size:.96rem;font-weight:800;color:#29445f}
.r3-weather-card .r3-weather-condition>strong{font-size:2.65rem;line-height:1;font-weight:800;letter-spacing:-.05em;color:#10253b}
.r3-weather-range{display:flex;align-items:center;gap:8px;margin:13px 0 12px;padding-bottom:12px;border-bottom:1px solid rgba(43,68,94,.16);font-size:.82rem;font-weight:750;color:#52677d}
.r3-weather-range-label{margin-right:auto;color:#6b7f92}.r3-weather-high{color:#d54c45}.r3-weather-low{color:#347ccc}
.r3-weather-details{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px}
.r3-weather-details>span{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:700;color:#405970}
.r3-weather-details .ui-icon{width:16px;height:16px;color:#2b83d5;flex:none}
.r3-hero-message{max-width:690px;padding-top:5px;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.28)}
.r3-hero-message h1{margin:0 0 12px;font-size:clamp(2rem,3.2vw,3.15rem);line-height:1.08;letter-spacing:-.04em;color:#fff}
.r3-hero-message p{max-width:570px;margin:0;font-size:1.05rem;line-height:1.65;font-weight:600;color:rgba(255,255,255,.94)}
.r3-hero-online{display:inline-flex;align-items:center;gap:6px}.r3-hero-online.online{color:#eafff2}.r3-hero-online.offline{color:#ffe5df}.r3-hero-status-divider{opacity:.48}
@media(max-width:700px){.r3-weather-card .r3-weather-condition>strong{font-size:2.25rem}.r3-hero-message h1{font-size:2rem}.r3-hero-message p{font-size:.94rem}}
.r3-weather-attribution{margin-top:10px;font-size:.68rem;line-height:1.35;color:#788a9b;text-align:right}
/* Stage0031 R4 UI/Navigation/View Recovery */
.r3-photo-hero{min-height:320px;padding:28px;background-position:center 72%!important;background-size:cover}
.reference-dashboard-primary>.reference-kpis.r3-hero-kpis{position:relative;z-index:3;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:14px 0 0;left:auto;right:auto;bottom:auto}
.reference-dashboard-primary>.reference-kpis.r3-hero-kpis .reference-kpi{min-height:108px;background:var(--surface);border:1px solid var(--border-default);box-shadow:var(--shadow-sm);backdrop-filter:none;-webkit-backdrop-filter:none}
.nav-group-toggle{width:100%}.integrated-nav-submenu{margin-top:-2px}.integrated-nav-submenu .nav-subitem{padding-left:46px}.nav-group-toggle.active{background:var(--brand-soft);color:var(--brand-strong)}
.stage31-integrated-filter,.stage29-calendar-filter-row{align-items:end}
.stage31-integrated-filter>label,.stage29-calendar-filter-row>label{grid-template-rows:20px 46px;gap:6px;overflow:visible}
.stage31-integrated-filter>label>input,.stage31-integrated-filter>label>select,.stage31-integrated-filter>label>.readonly-field,.stage31-integrated-filter>label>.school-search-control,.stage31-integrated-filter>label>.stage27-assignee-selector.single,.stage29-calendar-filter-row>label>input,.stage29-calendar-filter-row>label>select,.stage29-calendar-filter-row>label>.readonly-field,.stage29-calendar-filter-row>label>.school-search-control,.stage29-calendar-filter-row>label>.stage27-assignee-selector.single{height:46px!important;min-height:46px!important;line-height:1.25!important;padding-top:0!important;padding-bottom:0!important}
.stage31-integrated-filter .school-search-control>input,.stage29-calendar-filter-row .school-search-control>input,.stage31-integrated-filter .stage27-assignee-selector.single>input,.stage29-calendar-filter-row .stage27-assignee-selector.single>input{height:46px!important;min-height:46px!important;line-height:1.25!important}
.stage31-integrated-filter>button,.stage29-calendar-filter-row>button{height:46px!important;min-height:46px!important;display:inline-flex;align-items:center;justify-content:center;padding-block:0}
.stage31-integrated-pagination{width:100%;justify-content:center;align-items:center;gap:12px;padding:14px 0 2px}
.stage31-source-badge{gap:6px}.stage31-source-badge .ui-icon{width:15px;height:15px;flex:none}.stage31-source-badge.source-incident{background:#fee2e2;border-color:#fecaca;color:#991b1b}.stage31-source-badge.source-maintenance{background:#e0e7ff;border-color:#c7d2fe;color:#3730a3}.stage31-source-badge.source-general{background:var(--surface-subtle);color:var(--text)}
.r4-capability-option{display:flex!important;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--border-default);border-radius:12px;background:var(--surface-subtle)}.r4-capability-option>input{width:20px;height:20px;margin-top:1px;flex:none}.r4-capability-option>span{display:grid;gap:3px}
.r4-target-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;white-space:nowrap}
.r4-assignee-contact-row{display:grid!important;grid-template-columns:1fr;gap:5px!important}.r4-assignee-identity{display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-width:0}.r4-assignee-identity .stage21-phone-link{margin-left:0}
.stage29-schedule-empty{margin-top:10px!important;padding:18px 16px!important;min-height:58px!important;display:flex!important;align-items:center!important;border:1px dashed var(--border-default)!important;border-radius:12px!important;background:var(--surface-subtle)!important;line-height:1.5!important}
.stage29-order-button{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;min-width:74px!important;height:36px!important;padding:0 10px!important;line-height:1!important;text-align:center!important}.stage29-order-button>span{display:inline-block!important;line-height:1!important;text-align:center!important}.stage29-order-button.up .ui-icon{transform:rotate(180deg)}
@media(max-width:980px){.reference-dashboard-primary>.reference-kpis.r3-hero-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.r3-photo-hero{min-height:300px;background-position:center 70%!important}}
@media(max-width:560px){.reference-dashboard-primary>.reference-kpis.r3-hero-kpis{grid-template-columns:1fr}.integrated-nav-submenu .nav-subitem{padding-left:42px}.r3-photo-hero{min-height:0;background-position:center 68%!important}}


/* Stage0031 R5 — UI / query / grouped-work recovery. */
.r5-dashboard-header{display:grid;gap:12px;padding:0 12px 12px;border:1px solid var(--border-default);border-radius:22px;background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}
.r5-dashboard-header>.r3-photo-hero{margin:0 -12px;border-radius:22px 22px 16px 16px;min-height:300px;padding:28px;background-position:center 82%!important}
.r5-dashboard-header>.reference-kpis.r3-hero-kpis{position:static!important;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important;margin:0!important;left:auto!important;right:auto!important;bottom:auto!important}
.r5-dashboard-header>.reference-kpis .reference-kpi{min-height:104px!important;background:var(--surface-subtle)!important;border:1px solid var(--border-default)!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.r5-filter-card{display:grid;gap:12px}.r5-filter-primary{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px;align-items:end}.r5-filter-primary>label{display:grid;grid-template-rows:20px 46px;gap:6px;min-width:0;margin:0}.r5-filter-primary>label>span:first-child{display:flex;align-items:center;min-height:20px;line-height:20px;font-size:.84rem;font-weight:700;color:var(--muted)}
.r5-filter-primary input,.r5-filter-primary select,.r5-filter-primary .school-search-control,.r5-filter-primary .stage27-assignee-selector.single{width:100%;height:46px;min-height:46px;box-sizing:border-box;margin:0}.r5-filter-primary .school-search-control>input,.r5-filter-primary .stage27-assignee-selector.single>input{height:46px!important;min-height:46px!important}
.r5-filter-primary .stage27-assignee-selected{display:none!important}.r5-filter-secondary{display:grid;grid-template-columns:minmax(160px,.65fr) minmax(160px,.65fr) minmax(130px,.45fr) minmax(420px,2fr);gap:10px;align-items:end}.r5-filter-secondary>label{display:grid;grid-template-rows:20px 46px;gap:6px;margin:0;min-width:0}.r5-filter-secondary>label>span:first-child{display:flex;align-items:center;min-height:20px;line-height:20px;font-size:.84rem;font-weight:700;color:var(--muted)}.r5-filter-secondary input,.r5-filter-secondary select{height:46px;min-height:46px;box-sizing:border-box}
.r5-date-action-cluster{display:flex;gap:7px;align-items:end;min-height:46px;flex-wrap:wrap}.r5-date-quick-actions{display:flex;gap:6px;flex-wrap:wrap}.r5-date-action-cluster>button,.r5-date-quick-actions>button{height:46px;min-height:46px;display:inline-flex;align-items:center;justify-content:center}.r5-date-quick-actions>button{height:36px;min-height:36px;align-self:center}
.r5-selected-summary{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;padding:9px 12px;border:1px solid var(--border-default);border-radius:12px;background:var(--surface-subtle)}.r5-selected-summary>strong{padding-top:5px;white-space:nowrap}.r5-selected-summary .stage27-assignee-selected{display:flex!important;gap:6px;flex-wrap:wrap;min-height:32px}.r5-selected-summary .stage27-assignee-empty{display:inline-flex;align-items:center;min-height:30px}
.r5-maintenance-primary{grid-template-columns:minmax(180px,1.2fr) minmax(140px,.65fr) minmax(140px,.65fr) minmax(240px,1.2fr) minmax(240px,1.2fr)}
.stage31-integrated-pagination{display:flex!important;width:100%!important;justify-content:center!important;align-items:center!important;gap:12px!important;padding:16px 0 4px!important}.stage31-integrated-pagination>span{min-width:90px;text-align:center;font-weight:700}
.stage30-event-progress{display:inline-flex;width:max-content;padding:2px 7px;border-radius:999px;background:var(--brand-soft);color:var(--brand-strong);font-size:.72rem;font-weight:800}
.stage29-order-actions{display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important}.stage29-order-button{display:inline-flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;flex:0 0 76px!important;width:76px!important;min-width:76px!important;max-width:76px!important;height:36px!important;min-height:36px!important;padding:0 8px!important;line-height:1!important;text-align:center!important}.stage29-order-button .ui-icon{margin:0!important;flex:0 0 14px!important}.stage29-order-button>span{display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:1!important;margin:0!important}
.integrated-nav-submenu{border-left:1px solid rgba(255,255,255,.14);margin-left:22px;padding-left:8px}.nav-group-toggle{background:transparent!important;color:#cbd7e5!important}.nav-group-toggle:hover{background:rgba(255,255,255,.07)!important;color:#fff!important}.nav-group-toggle.active{background:rgba(81,117,255,.16)!important;color:#fff!important;box-shadow:none!important}.integrated-nav-submenu .nav-subitem.active{background:rgba(81,117,255,.30)!important;color:#fff!important;font-weight:800}.integrated-nav-submenu .nav-subitem:hover{background:rgba(255,255,255,.08)!important;color:#fff!important}.nav-group-toggle:focus-visible,.integrated-nav-submenu .nav-subitem:focus-visible{outline:2px solid #9eb7ff;outline-offset:2px}
@media(max-width:1180px){.r5-filter-primary{grid-template-columns:repeat(2,minmax(0,1fr))}.r5-maintenance-primary{grid-template-columns:repeat(2,minmax(0,1fr))}.r5-filter-secondary{grid-template-columns:repeat(2,minmax(0,1fr))}.r5-date-action-cluster{grid-column:1/-1}.r5-dashboard-header>.reference-kpis.r3-hero-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:700px){.r5-filter-primary,.r5-maintenance-primary,.r5-filter-secondary{grid-template-columns:1fr}.r5-date-action-cluster{grid-column:auto;align-items:stretch}.r5-date-quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.r5-date-action-cluster>button,.r5-date-quick-actions>button{width:100%}.r5-selected-summary{grid-template-columns:1fr}.r5-dashboard-header{padding:0 8px 8px}.r5-dashboard-header>.r3-photo-hero{margin:0 -8px;background-position:center 78%!important}.r5-dashboard-header>.reference-kpis.r3-hero-kpis{grid-template-columns:1fr!important}}

/* Stage0031 C3 + post-R5 residual UI recovery. */
/* Dashboard header: preserve a real photographic hero while integrating KPI cards at the lower edge. */
.r5-dashboard-header{
  position:relative;
  display:block;
  padding:0 18px 58px;
  border:1px solid var(--border-default);
  border-radius:22px;
  background:var(--surface);
  box-shadow:var(--shadow-sm);
  overflow:visible;
}
.r5-dashboard-header>.r3-photo-hero{
  margin:0 -18px;
  min-height:390px;
  padding:34px 30px 112px;
  border-radius:22px;
  background-size:cover!important;
  background-position:center 54%!important;
  image-rendering:auto;
}
.r5-dashboard-header>.r3-photo-hero{
  background-image:linear-gradient(90deg,rgba(4,29,54,.74) 0%,rgba(5,42,73,.50) 36%,rgba(3,20,39,.08) 66%,rgba(3,15,29,.18) 100%),var(--r3-photo)!important;
}
.r5-dashboard-header>.reference-kpis.r3-hero-kpis{
  position:relative!important;
  z-index:5;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:12px!important;
  margin:-52px 0 0!important;
  left:auto!important;
  right:auto!important;
  bottom:auto!important;
}
.r5-dashboard-header>.reference-kpis .reference-kpi{
  min-height:106px!important;
  background:rgba(255,255,255,.96)!important;
  border:1px solid rgba(219,227,238,.96)!important;
  box-shadow:0 12px 24px rgba(15,23,42,.11)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
html[data-theme="dark"] .r5-dashboard-header>.reference-kpis .reference-kpi{background:rgba(22,30,44,.96)!important}
.r5-dashboard-header .r3-weather-card{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:rgba(248,251,255,.94)}
.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{background-position:center 54%!important}

/* Classification sort buttons: text-only, symmetric, no reserved icon slot. */
.r1-category-table .stage29-order-button,
.stage29-order-button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
  width:76px!important;
  min-width:76px!important;
  max-width:76px!important;
  height:36px!important;
  min-height:36px!important;
  padding:0!important;
  margin:0!important;
  line-height:36px!important;
  text-align:center!important;
  text-indent:0!important;
}
.r1-category-table .stage29-order-button::before,
.r1-category-table .stage29-order-button::after,
.stage29-order-button::before,
.stage29-order-button::after{content:none!important;display:none!important}
.r1-category-table .stage29-order-button .ui-icon,
.stage29-order-button .ui-icon{display:none!important;width:0!important;height:0!important;flex:0 0 0!important;margin:0!important}
.r1-category-table .stage29-order-button>span,
.stage29-order-button>span{display:inline!important;margin:0!important;padding:0!important;line-height:1!important;text-align:center!important}

/* Shared filter rhythm: compact date fields, separate quick range from apply/reset. */
.r5-filter-card{gap:12px}
.r5-filter-secondary{
  display:grid;
  grid-template-columns:minmax(150px,180px) minmax(150px,180px) minmax(110px,130px) minmax(0,1fr);
  gap:12px;
  align-items:end;
}
.r5-date-action-cluster{display:flex;align-items:center;justify-content:flex-start;gap:14px;min-height:46px;flex-wrap:wrap}
.r5-date-quick-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.r5-date-quick-actions>button{height:38px!important;min-height:38px!important;min-width:68px;padding:0 12px!important;display:inline-flex;align-items:center;justify-content:center}
.r5-date-commit-actions{display:flex;align-items:center;gap:10px;margin-left:4px}
.r5-filter-apply,.r5-filter-reset{height:46px!important;min-height:46px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;white-space:nowrap!important;padding:0 18px!important}
.r5-filter-apply{min-width:88px!important;background:linear-gradient(90deg,#315ff0,#6846ef)!important;color:#fff!important;border-color:transparent!important;box-shadow:0 7px 16px rgba(49,95,240,.18)!important}
.r5-filter-reset{min-width:88px!important;background:var(--button-neutral-bg,#fff)!important;color:var(--neutral-action-text,#334155)!important;border-color:var(--border-default)!important;box-shadow:none!important}
.r5-selected-summary{margin-top:0}
.r5-filter-primary .c3-multi-school-filter,
.r5-filter-primary .stage27-assignee-selector.multi{height:46px!important;min-height:46px!important;overflow:visible}

/* Integrated work: header and body share one fixed colgroup / alignment contract. */
.stage31-integrated-table{width:100%;table-layout:fixed}
.stage31-integrated-table col.stage31-col-type{width:10%}
.stage31-integrated-table col.stage31-col-number{width:15%}
.stage31-integrated-table col.stage31-col-title{width:19%}
.stage31-integrated-table col.stage31-col-school{width:14%}
.stage31-integrated-table col.stage31-col-schedule{width:17%}
.stage31-integrated-table col.stage31-col-progress{width:9%}
.stage31-integrated-table col.stage31-col-status{width:8%}
.stage31-integrated-table col.stage31-col-assignee{width:8%}
.stage31-integrated-table th,.stage31-integrated-table td{box-sizing:border-box;vertical-align:middle;overflow:hidden;text-overflow:ellipsis}
.stage31-integrated-table th:nth-child(1),.stage31-integrated-table td:nth-child(1),
.stage31-integrated-table th:nth-child(2),.stage31-integrated-table td:nth-child(2),
.stage31-integrated-table th:nth-child(5),.stage31-integrated-table td:nth-child(5),
.stage31-integrated-table th:nth-child(6),.stage31-integrated-table td:nth-child(6),
.stage31-integrated-table th:nth-child(7),.stage31-integrated-table td:nth-child(7),
.stage31-integrated-table th:nth-child(8),.stage31-integrated-table td:nth-child(8){text-align:center!important}
.stage31-integrated-table th:nth-child(3),.stage31-integrated-table td:nth-child(3),
.stage31-integrated-table th:nth-child(4),.stage31-integrated-table td:nth-child(4){text-align:left!important}
.stage31-integrated-table td:nth-child(3),.stage31-integrated-table td:nth-child(4){white-space:nowrap}

/* Maintenance row actions: keep destructive action visibly separate. */
.stage30-maintenance-row-actions{display:flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;white-space:nowrap}
.stage30-maintenance-row-actions button{margin:0!important;min-height:36px!important}

/* PWA install card: lift illustration and create breathing room above install action. */
.sidebar-install-card{align-items:start!important;row-gap:14px!important}
.sidebar-install-copy{align-self:start!important}
.install-visual{align-self:start!important;transform:translateY(-8px)!important}
.sidebar-install-button{margin-top:8px!important}

@media(max-width:1180px){
  .r5-dashboard-header{padding:0 14px 54px}
  .r5-dashboard-header>.r3-photo-hero{margin:0 -14px;min-height:350px;padding-bottom:106px;background-position:center 54%!important}
  .r5-dashboard-header>.reference-kpis.r3-hero-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important;margin-top:-48px!important}
  .r5-filter-secondary{grid-template-columns:repeat(3,minmax(0,1fr))}
  .r5-date-action-cluster{grid-column:1/-1}
}
@media(max-width:700px){
  .r5-dashboard-header{padding:0 8px 42px}
  .r5-dashboard-header>.r3-photo-hero{margin:0 -8px;min-height:300px;padding:24px 20px 92px;background-position:center 54%!important}
  .r5-dashboard-header>.reference-kpis.r3-hero-kpis{grid-template-columns:1fr!important;margin-top:-36px!important}
  .r5-filter-secondary{grid-template-columns:1fr}
  .r5-date-action-cluster{grid-column:auto;align-items:stretch;gap:10px}
  .r5-date-quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .r5-date-quick-actions>button{width:100%}
  .r5-date-commit-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;margin-left:0}
  .r5-filter-apply,.r5-filter-reset{width:100%}
}
\n\n/* Stage0031 C3 R1 UI Feedback Candidate R1 -- 2026-08-21. */
/* DG-0689: Hero and KPI are siblings; KPI must never cover the photograph. */
.r5-dashboard-header{padding:0 18px 18px!important;overflow:hidden!important}
.r5-dashboard-header>.r3-photo-hero{margin:0 -18px!important;min-height:340px!important;padding:34px 30px!important;background-position:center 58%!important}
.r5-dashboard-header>.reference-kpis.r3-hero-kpis{position:relative!important;margin:16px 0 0!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;z-index:1!important}

/* DG-0718: desktop query controls stay in one horizontal action flow when space permits. */
.r5-filter-secondary{grid-template-columns:minmax(145px,180px) minmax(145px,180px) minmax(100px,125px) minmax(520px,1fr)!important;align-items:end!important}
.r5-date-action-cluster{display:flex!important;align-items:center!important;gap:12px!important;flex-wrap:nowrap!important;min-width:0!important}
.r5-date-quick-actions{display:flex!important;flex-flow:row nowrap!important;gap:8px!important;min-width:0!important}
.r5-date-commit-actions{display:flex!important;flex-flow:row nowrap!important;gap:10px!important;margin-left:4px!important}
.r5-date-quick-actions>button,.r5-date-commit-actions>button{white-space:nowrap!important}

/* CR-0730: popup owns all header actions and may wrap internally, never outside its surface. */
.stage27-assignee-popover{box-sizing:border-box!important;min-width:min(520px,calc(100vw - 24px))!important;max-width:min(720px,calc(100vw - 24px))!important;overflow:hidden!important}
.stage27-assignee-popover-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px 12px!important;align-items:center!important}
.stage27-assignee-popover-head>strong{min-width:0!important;margin:0!important}
.stage27-assignee-summary{justify-self:end!important;white-space:nowrap!important}
.stage27-assignee-popover-actions{grid-column:1/-1!important;display:flex!important;justify-content:flex-end!important;gap:7px!important;flex-wrap:wrap!important;min-width:0!important}
.stage27-assignee-popover-actions>button{flex:0 0 auto!important;margin:0!important}

/* DG-0723: all reference tabs use the same one-row desktop toolbar. */
.r1-category-toolbar.admin-list-toolbar,.r1-category-toolbar{display:grid!important;grid-template-columns:minmax(280px,1fr) minmax(150px,180px) auto!important;gap:10px!important;align-items:center!important;width:100%!important}
.r1-category-toolbar>input,.r1-category-toolbar>select,.r1-category-toolbar>button{height:42px!important;min-height:42px!important;margin:0!important}
.r1-category-toolbar>.admin-add-button,.r1-category-toolbar>button:last-child{min-width:104px!important;justify-self:end!important}

/* CR-0725: every final event is visible; the week grows with lane count. */
.stage30-month-week{min-height:max(238px,calc(60px + (var(--stage30-month-lanes,1) * 89px)))!important;overflow:visible!important}
.stage30-month-dayheads,.stage30-month-dayhead{height:100%!important;min-height:100%!important}
.stage30-month-events{grid-auto-rows:minmax(82px,auto)!important;overflow:visible!important}
.stage30-week-more,.stage29-more-events.stage30-week-more{display:none!important}

/* Calendar navigation: previous/current/next/today are one compact center group. */
.stage31-calendar-heading.r3-calendar-heading{display:grid!important;grid-template-columns:1fr!important;justify-items:center!important;gap:6px!important}
.c3r1-calendar-nav-group{display:flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;flex-wrap:wrap!important}
.c3r1-calendar-nav-group .stage31-calendar-month-title{min-width:150px!important;text-align:center!important;font-size:22px!important}
.c3r1-calendar-nav-group .r3-calendar-neighbor{min-width:76px!important}
.r3-calendar-visible-range{grid-column:1!important;text-align:center!important;justify-self:center!important}

/* DG-0727: detail modal uses field cards; narrow screens become one column. */
.stage31-work-detail-dialog{width:min(92vw,820px)!important;max-width:820px!important}
.stage31-work-detail-card{max-height:min(86vh,780px)!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}
.stage31-work-detail-meta{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;overflow-y:auto!important;overflow-x:hidden!important;padding:4px!important;background:transparent!important;border:0!important}
.stage31-work-detail-field{display:grid!important;grid-template-columns:1fr!important;gap:4px!important;min-width:0!important;padding:12px!important;border:1px solid var(--border-default)!important;border-radius:10px!important;background:var(--surface-subtle)!important}
.stage31-work-detail-field.wide{grid-column:1/-1!important}
.stage31-work-detail-field dt{font-size:12.5px!important;font-weight:800!important}
.stage31-work-detail-field dd{min-width:0!important;margin:0!important;white-space:normal!important;word-break:keep-all!important;overflow-wrap:break-word!important;line-height:1.55!important}
.stage31-work-detail-actions{flex:0 0 auto!important;padding-top:10px!important}

/* DG-0719: install card keeps illustration and call-to-action in the same visual rhythm. */
.sidebar-install-card{grid-template-rows:auto auto!important;align-content:start!important}
.install-visual{transform:none!important;align-self:center!important}
.sidebar-install-button{margin-top:2px!important}

@media(max-width:1180px){
  .r5-dashboard-header{padding:0 14px 16px!important}
  .r5-dashboard-header>.r3-photo-hero{margin:0 -14px!important;min-height:320px!important;padding:28px 24px!important}
  .r5-dashboard-header>.reference-kpis.r3-hero-kpis{margin-top:14px!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .r5-filter-secondary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .r5-date-action-cluster{grid-column:1/-1!important;flex-wrap:wrap!important}
}
@media(max-width:760px){
  .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{width:100%!important;justify-self:stretch!important}
  .stage31-work-detail-meta{grid-template-columns:1fr!important}
  .stage31-work-detail-field.wide{grid-column:auto!important}
  .c3r1-calendar-nav-group{gap:6px!important}
  .c3r1-calendar-nav-group .stage31-calendar-month-title{order:-1;flex:1 0 100%;font-size:19px!important}
}
@media(max-width:700px){
  .r5-dashboard-header{padding:0 8px 14px!important}
  .r5-dashboard-header>.r3-photo-hero{margin:0 -8px!important;min-height:280px!important;padding:24px 20px!important}
  .r5-dashboard-header>.reference-kpis.r3-hero-kpis{margin-top:12px!important;grid-template-columns:1fr!important}
  .r5-filter-secondary{grid-template-columns:1fr!important}
  .r5-date-action-cluster{grid-column:auto!important;display:grid!important;gap:10px!important}
  .r5-date-quick-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .r5-date-commit-actions{display:grid!important;grid-template-columns:1fr 1fr!important;margin-left:0!important}
  .stage27-assignee-popover{left:12px!important;right:12px!important;min-width:0!important;max-width:none!important;width:auto!important}
}

/* ========================================================================== */
/* Stage0031 C3 R1 R3 — PWA-CR-20260821-0743 approved recovery               */
/* ========================================================================== */

/* DG-0689: KPI is a true sibling row. Never cover the weather photograph. */
.r5-dashboard-header{display:grid!important;gap:16px!important;padding:0 18px 18px!important;overflow:hidden!important}
.r5-dashboard-header>.r3-photo-hero{margin:0 -18px!important;min-height:340px!important;padding:34px 30px!important;border-radius:22px 22px 16px 16px!important;overflow:hidden!important}
.r5-dashboard-header>.reference-kpis.r3-hero-kpis{position:static!important;margin:0!important;transform:none!important;z-index:auto!important;grid-template-columns:repeat(4,minmax(0,1fr))!important}

/* CR-0737: canonical query toolbar; Maintenance is the desktop reference. */
.r5-filter-primary,.r3-integrated-primary,.r3-calendar-primary,.r3-maintenance-primary{align-items:start!important}
.r3-maintenance-primary{grid-template-columns:minmax(220px,1.35fr) minmax(130px,.7fr) minmax(130px,.7fr) minmax(175px,.9fr) minmax(240px,1.25fr) minmax(240px,1.25fr)!important}
.r3-integrated-primary{grid-template-columns:minmax(210px,1.25fr) minmax(140px,.72fr) minmax(140px,.72fr) minmax(170px,.85fr) minmax(230px,1.2fr) minmax(230px,1.2fr)!important}
.r3-calendar-primary{grid-template-columns:minmax(145px,.7fr) minmax(145px,.72fr) minmax(170px,.85fr) minmax(240px,1.2fr) minmax(240px,1.2fr)!important}
.r5-filter-secondary.r3-with-size{display:grid!important;grid-template-columns:minmax(145px,180px) minmax(145px,180px) minmax(100px,125px) minmax(0,1fr)!important;gap:10px!important;align-items:end!important}
.r5-filter-secondary.r3-no-size{display:grid!important;grid-template-columns:minmax(145px,180px) minmax(145px,180px) minmax(0,1fr)!important;gap:10px!important;align-items:end!important}
.r5-filter-secondary .r5-date-action-cluster{display:flex!important;align-items:end!important;justify-content:flex-start!important;gap:12px!important;min-width:0!important;min-height:46px!important;flex-wrap:nowrap!important}
.r5-filter-secondary .r5-date-quick-actions,.r5-filter-secondary .r5-date-commit-actions{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:nowrap!important;min-width:max-content!important}
.r5-filter-secondary .r5-date-commit-actions{margin-left:2px!important}
.r5-filter-secondary .r5-date-quick-actions>button,.r5-filter-secondary .r5-date-commit-actions>button{height:42px!important;min-height:42px!important;white-space:nowrap!important;margin:0!important;position:static!important;transform:none!important}

/* CR-0730 / DG-0735: all people/school popovers live in the document overlay root. */
.c5-overlay-root{position:fixed!important;inset:0!important;z-index:5000!important;pointer-events:none!important}
.c5-overlay-root>.stage27-assignee-popover,.c5-overlay-root>.c5-school-overlay-popover{position:fixed!important;pointer-events:auto!important;box-sizing:border-box!important}
.stage27-assignee-selector input:focus,.stage30-c2-general-school-selector input:focus{outline:2px solid color-mix(in srgb,var(--brand-primary) 35%,transparent)!important;outline-offset:1px!important;border-width:1px!important}
.stage30-c2-school-popover{overflow:hidden!important;max-width:min(680px,calc(100vw - 24px))!important}
.stage30-c2-general-school-results{overflow:auto!important;overscroll-behavior:contain!important}

/* IC-0729 / CR-0742: multi-select stays visually compact in filter rows. */
/* R6: selector field owns its selection state; do not force a fixed total field height. */
.r5-filter-primary .stage27-assignee-selector.multi,.r3-maintenance-primary .stage27-assignee-selector.multi,.r3-integrated-primary .stage27-assignee-selector.multi,.r3-calendar-primary .stage27-assignee-selector.multi{min-height:46px!important;overflow:visible!important}

/* DG-0723: reference-data toolbar is identical across all reference tabs. */
.r1-category-toolbar.admin-list-toolbar,.r1-category-toolbar{display:grid!important;grid-template-columns:minmax(300px,1fr) minmax(160px,190px) auto!important;align-items:center!important;gap:10px!important}
.r1-category-toolbar>input,.r1-category-toolbar>select,.r1-category-toolbar>button{height:42px!important;min-height:42px!important;margin:0!important}

/* CR-0725: never hide final calendar events behind +N. Week grows by lane count. */
.stage30-month-week{min-height:max(205px,calc(58px + (var(--stage30-month-lanes,1) * 104px)))!important;overflow:visible!important}
.stage30-month-dayheads{min-height:100%!important;height:100%!important}
.stage30-month-dayhead{min-height:100%!important;height:100%!important}
.stage30-month-events{grid-auto-rows:minmax(96px,auto)!important;overflow:visible!important;align-items:stretch!important}
.stage30-week-more,.stage29-more-events,.stage29-more-events.stage30-week-more{display:none!important}
.stage29-calendar-event{min-height:0!important;height:auto!important;overflow:visible!important}
.r3-project-chip{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:1px 0 3px;padding:2px 6px;border-radius:6px;background:var(--surface-subtle);color:var(--text-secondary);font-size:10.5px;font-weight:800;text-align:left}

/* DG-0738 / CR-0739: no full-cell today outline. Emphasize only the date number. */
.stage30-month-dayhead.today{box-shadow:none!important;outline:0!important;border-top-color:transparent!important}
.stage30-month-dayhead.today .stage29-day-number{width:34px!important;height:34px!important;border-radius:999px!important;font-size:16px!important;font-weight:950!important;background:color-mix(in srgb,var(--brand-primary) 13%,var(--surface))!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-primary) 55%,transparent)!important;text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:3px!important}
/* Preserve the already-approved weekend number colors. */
.stage30-month-dayhead.today.sunday .stage29-day-number{color:#b44c4c!important}
.stage30-month-dayhead.today.saturday .stage29-day-number{color:#3568b8!important}
.stage30-month-dayhead.today:not(.sunday):not(.saturday):not(.holiday) .stage29-day-number{color:var(--brand-strong)!important}
.stage29-week-column.today{border-color:var(--border-default)!important;box-shadow:none!important}
.stage29-week-column.today .stage29-week-heading strong{display:inline-grid!important;place-items:center!important;min-width:32px!important;height:32px!important;border-radius:999px!important;background:color-mix(in srgb,var(--brand-primary) 13%,var(--surface))!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-primary) 55%,transparent)!important;font-weight:950!important}

/* DG-0727: resilient two-column detail grid / one-column narrow layout. */
.stage31-work-detail-dialog{width:min(92vw,860px)!important;max-width:860px!important;overflow:hidden!important}
.stage31-work-detail-card{display:flex!important;flex-direction:column!important;max-height:min(88vh,820px)!important;overflow:hidden!important}
.stage31-work-detail-meta{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;overflow-x:hidden!important;overflow-y:auto!important;min-width:0!important;padding:4px!important}
.stage31-work-detail-field{min-width:0!important;overflow:hidden!important}
.stage31-work-detail-field dd{white-space:normal!important;word-break:keep-all!important;overflow-wrap:anywhere!important;min-width:0!important}
.stage31-work-detail-field.wide{grid-column:1/-1!important}
.r3-detail-policy{margin-bottom:4px!important}

/* DG-0717: 9-column integrated table incl. business name, same axes header/body. */
.stage31-integrated-table.r3-integrated-table{table-layout:fixed!important;width:100%!important}
.r3-integrated-table col.stage31-col-type{width:8%!important}.r3-integrated-table col.stage31-col-number{width:13%!important}.r3-integrated-table col.stage31-col-project{width:13%!important}.r3-integrated-table col.stage31-col-title{width:17%!important}.r3-integrated-table col.stage31-col-school{width:12%!important}.r3-integrated-table col.stage31-col-schedule{width:15%!important}.r3-integrated-table col.stage31-col-progress{width:8%!important}.r3-integrated-table col.stage31-col-status{width:7%!important}.r3-integrated-table col.stage31-col-assignee{width:7%!important}
.r3-integrated-table th,.r3-integrated-table td{box-sizing:border-box!important;vertical-align:middle!important;overflow:hidden!important;text-overflow:ellipsis!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(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(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){text-align:center!important}

/* IC-0740: weather animation layers; no third-party runtime dependency. */
.reference-hero.r3-photo-hero{position:relative!important;isolation:isolate!important}
.reference-hero.r3-photo-hero>.reference-hero-top,.reference-hero.r3-photo-hero>.r3-weather-card{position:relative!important;z-index:4!important}
.r3-weather-fx{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none;border-radius:inherit;opacity:.9}
.r3-weather-fx::before,.r3-weather-fx::after{content:"";position:absolute;inset:-20%;pointer-events:none}
.weather-fx-clear::before{background:radial-gradient(circle at 72% 18%,rgba(255,244,176,.30),transparent 28%);animation:r3SunGlow 8s ease-in-out infinite alternate}
.weather-fx-partly_cloudy::before,.weather-fx-partly-cloudy::before{background:radial-gradient(ellipse at 24% 22%,rgba(255,255,255,.20) 0 18%,transparent 40%),radial-gradient(ellipse at 64% 28%,rgba(255,255,255,.15) 0 15%,transparent 38%);filter:blur(10px);animation:r3CloudDrift 26s linear infinite}
.weather-fx-cloudy::before{background:radial-gradient(ellipse at 28% 20%,rgba(220,232,242,.20) 0 26%,transparent 52%),radial-gradient(ellipse at 70% 20%,rgba(202,218,230,.17) 0 24%,transparent 50%);filter:blur(13px);animation:r3CloudDrift 34s linear infinite}
.weather-fx-fog::before,.weather-fx-fog::after{background:linear-gradient(90deg,transparent 0%,rgba(244,250,255,.22) 20%,rgba(244,250,255,.35) 50%,rgba(244,250,255,.15) 78%,transparent 100%);filter:blur(12px);animation:r3FogDrift 18s ease-in-out infinite alternate}.weather-fx-fog::after{opacity:.55;animation-duration:27s;animation-direction:alternate-reverse}
.weather-fx-rain::before,.weather-fx-sleet::before,.weather-fx-thunder::before{background-image:repeating-linear-gradient(105deg,transparent 0 18px,rgba(205,231,255,.42) 19px 20px,transparent 21px 38px);background-size:90px 140px;transform:translateY(-35%);animation:r3RainFall .72s linear infinite}
.r3-weather-particle{position:absolute;left:calc(var(--x)*1%);top:-8%;opacity:var(--o);animation-delay:calc(var(--i)*-.21s)!important}
.weather-fx-rain .r3-weather-particle{width:1px;height:26px;background:rgba(220,240,255,.65);transform:rotate(12deg);animation:r3ParticleRain calc(var(--d)*.10s) linear infinite}
.weather-fx-sleet .r3-weather-particle{width:calc(var(--s)*1px);height:calc(var(--s)*1px);border-radius:50%;background:rgba(247,252,255,.86);animation:r3ParticleSnow calc(var(--d)*.45s) linear infinite}
.weather-fx-snow .r3-weather-particle{width:calc(var(--s)*2px);height:calc(var(--s)*2px);border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 0 4px rgba(255,255,255,.45);animation:r3ParticleSnow calc(var(--d)*.62s) linear infinite}
.weather-fx-thunder{background:rgba(9,24,45,.10)}.r3-weather-lightning{position:absolute;inset:0;background:rgba(255,255,255,.72);opacity:0;animation:r3Lightning 7.8s steps(1,end) infinite}
@keyframes r3SunGlow{from{opacity:.55;transform:scale(.96)}to{opacity:1;transform:scale(1.04)}}
@keyframes r3CloudDrift{from{transform:translate3d(-8%,0,0)}to{transform:translate3d(8%,1%,0)}}
@keyframes r3FogDrift{from{transform:translate3d(-12%,0,0)}to{transform:translate3d(12%,1%,0)}}
@keyframes r3RainFall{from{transform:translate3d(0,-45%,0)}to{transform:translate3d(-30px,45%,0)}}
@keyframes r3ParticleRain{from{transform:translate3d(0,-12vh,0) rotate(12deg)}to{transform:translate3d(-42px,110vh,0) rotate(12deg)}}
@keyframes r3ParticleSnow{0%{transform:translate3d(0,-10vh,0) rotate(0)}50%{transform:translate3d(18px,50vh,0) rotate(150deg)}100%{transform:translate3d(-8px,110vh,0) rotate(300deg)}}
@keyframes r3Lightning{0%,8%,11%,72%,75%,100%{opacity:0}9%{opacity:.58}10%{opacity:.10}73%{opacity:.72}74%{opacity:.06}}

/* Keep PWA install illustration/action rhythm without transform jitter. */
.sidebar-install-card{align-items:start!important;row-gap:14px!important}.install-visual{align-self:center!important;transform:none!important}.sidebar-install-button{margin-top:4px!important}

@media(max-width:1380px){
  .r3-maintenance-primary,.r3-integrated-primary{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .r3-calendar-primary{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:1180px){
  .r5-dashboard-header>.reference-kpis.r3-hero-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .r5-filter-secondary.r3-with-size,.r5-filter-secondary.r3-no-size{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .r5-filter-secondary .r5-date-action-cluster{grid-column:1/-1!important;flex-wrap:wrap!important}
  .r3-maintenance-primary,.r3-integrated-primary,.r3-calendar-primary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:760px){
  .r3-maintenance-primary,.r3-integrated-primary,.r3-calendar-primary,.r5-filter-secondary.r3-with-size,.r5-filter-secondary.r3-no-size{grid-template-columns:1fr!important}
  .r5-filter-secondary .r5-date-action-cluster{grid-column:auto!important;display:grid!important;gap:10px!important}
  .r5-filter-secondary .r5-date-quick-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;min-width:0!important}
  .r5-filter-secondary .r5-date-commit-actions{display:grid!important;grid-template-columns:1fr 1fr!important;min-width:0!important;margin-left:0!important}
  .stage31-work-detail-meta{grid-template-columns:1fr!important}.stage31-work-detail-field.wide{grid-column:auto!important}
  .stage27-assignee-popover,.stage30-c2-school-popover{left:12px!important;right:12px!important;bottom:12px!important;top:auto!important;width:auto!important;max-width:none!important;max-height:min(70vh,620px)!important;border-radius:18px!important}
}
@media(max-width:560px){.r5-dashboard-header>.reference-kpis.r3-hero-kpis{grid-template-columns:1fr!important}}
@media(prefers-reduced-motion:reduce){.r3-weather-fx,.r3-weather-fx::before,.r3-weather-fx::after,.r3-weather-particle,.r3-weather-lightning{animation:none!important;transition:none!important}.r3-weather-particle{display:none!important}}
@media(max-width:700px){.r3-weather-particle:nth-child(n+11){display:none!important}}

/* Stage0031 C2 R1 — Internal Operations Board */
.board-page{display:grid;gap:16px}.board-filter{display:grid;grid-template-columns:minmax(280px,1fr) 180px auto auto;align-items:end;gap:12px;padding:16px}.board-filter>label{display:grid;gap:6px}.board-filter>label>span:first-child{font-size:.82rem;font-weight:750;color:var(--muted)}.board-filter input,.board-filter select{height:42px}.board-filter-actions{margin:0;align-items:end}.board-list-panel{padding:0;overflow:hidden}.board-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border-default)}.board-post-list{display:grid}.board-post-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border-default);background:var(--surface)}.board-post-row:last-child{border-bottom:0}.board-post-row.pinned{background:color-mix(in srgb,var(--brand-soft) 45%,var(--surface))}.board-post-row.deleted{opacity:.8}.board-post-leading{display:flex;align-items:center;gap:7px;min-width:92px}.board-type-badge,.board-pin-badge{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:0 9px;border-radius:999px;font-size:.75rem;font-weight:800;white-space:nowrap}.board-type-badge.normal{background:var(--surface-subtle);color:var(--text-muted);border:1px solid var(--border-default)}.board-type-badge.notice{background:#e9f2ff;color:#225fb8;border:1px solid #c9ddfb}.board-type-badge.important{background:#fff0ee;color:#b83d36;border:1px solid #facac5}.board-pin-badge{background:#eee9ff;color:#5b42c7;border:1px solid #d8ceff}.board-post-main{display:grid;gap:5px;min-width:0;padding:0;border:0;background:transparent;text-align:left;color:inherit;cursor:pointer}.board-post-main strong{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-post-preview{font-size:.84rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-post-meta{font-size:.75rem;color:var(--muted)}.board-editor-dialog{width:min(94vw,760px)}.board-editor-card{width:100%}.board-editor-card textarea{resize:vertical;min-height:220px}.board-file-picker{display:grid;gap:8px}.board-file-summary{font-size:.78rem;white-space:normal;overflow-wrap:anywhere}.board-detail-dialog{width:min(94vw,780px)}.board-detail-card{width:100%;max-height:min(88vh,820px);overflow:auto}.board-detail-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}.board-detail-head h2{margin:8px 0 5px}.board-detail-badges{display:flex;gap:6px;align-items:center}.board-detail-body{margin:18px 0;padding:18px;border:1px solid var(--border-default);border-radius:14px;background:var(--surface-subtle);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.board-attachment-section{display:grid;gap:8px}.board-attachment-section h3{margin:0 0 3px}.board-attachment-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border-default);border-radius:10px}.board-attachment-row a{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-detail-actions{margin-top:18px;justify-content:flex-end}
@media(max-width:760px){.board-filter{grid-template-columns:1fr 1fr}.board-filter-actions{grid-column:1/-1}.board-post-row{grid-template-columns:1fr}.board-post-leading{min-width:0}.board-detail-head{grid-template-columns:1fr}.board-detail-head>button{justify-self:end}}
@media(max-width:520px){.board-filter{grid-template-columns:1fr}.board-filter-actions{grid-column:auto}.board-filter-actions>*{flex:1}.board-post-row{padding:13px 14px}}

/* PWA-DG-0749 common optional modal content: absent content must occupy no row. */
.stage19-dialog-card>.muted:empty,.stage19-dialog-card>.r1-modal-description:empty{display:none!important}

/* PWA-DG/CR-0750/0751 — Golden-reference glass weather widget fidelity. */
.r3-weather-card{padding:16px 17px 13px!important;border:1px solid rgba(255,255,255,.62)!important;border-radius:18px!important;background:rgba(248,252,255,.80)!important;box-shadow:0 10px 28px rgba(5,25,46,.15)!important;backdrop-filter:blur(12px) saturate(1.05)!important;-webkit-backdrop-filter:blur(12px) saturate(1.05)!important;color:#10243a!important}
.r3-weather-card-top{grid-template-columns:46px minmax(0,1fr)!important;gap:11px!important}.r3-weather-icon{width:46px!important;height:46px!important;border-radius:14px!important;border:1px solid rgba(74,135,201,.16)!important;background:rgba(255,255,255,.84)!important;color:#1478d4!important;box-shadow:0 4px 12px rgba(31,93,154,.08)!important}.r3-weather-icon .ui-icon{width:28px!important;height:28px!important}.r3-weather-card .r3-weather-condition{grid-template-columns:minmax(0,1fr) auto!important;gap:10px!important}.r3-weather-card .r3-weather-condition>span{font-size:.94rem!important;font-weight:800!important;color:#29465f!important}.r3-weather-card .r3-weather-condition>strong{font-size:2.45rem!important;color:#0d2339!important}.r3-weather-range{margin:10px 0 9px!important;padding:0 0 9px!important;border-bottom:1px solid rgba(49,79,107,.13)!important}.r3-weather-range-label{font-size:.75rem!important;color:#718397!important}.r3-weather-high,.r3-weather-low{font-size:.76rem!important;font-weight:850!important}.r3-weather-details{gap:8px 14px!important}.r3-weather-details>span{font-size:.78rem!important}.r3-weather-attribution{margin-top:7px!important;font-size:.62rem!important;color:#8090a0!important}

/* PWA-DG/CR-0752/0753 — uniform donut wedges; no special 0/360 seam geometry. */
.reference-donut-wedge{stroke:none!important;shape-rendering:geometricPrecision}.reference-donut-track{fill:none;stroke:var(--chart-track);stroke-width:30!important}.reference-donut-inner{fill:var(--surface-panel);stroke:var(--border-default);stroke-width:1}.reference-donut-ring{filter:none!important}

/* ========================================================================
   Stage0031 C2 R2 — Cross-Platform Client / Responsive / Overlay / PWA Recovery
   PWA-CR-20260821-0772
   ======================================================================== */
:root{
  --layer-dropdown:80;
  --layer-modal-backdrop:900;
  --layer-modal:910;
  --layer-modal-overlay:920;
  --layer-toast:1100;
}
html,body,.app-shell,.app-stage,.main-content,#page{min-width:0;max-width:100%}
body{overflow-x:hidden}
#page>*{min-width:0;max-width:100%}
button{white-space:nowrap}

/* Shared top-layer selector popovers. Native popover puts these above <dialog>. */
.stage27-assignee-popover[popover],.stage30-c2-school-popover[popover],.stage31-selector-popover[popover]{
  position:fixed!important;margin:0!important;z-index:var(--layer-modal-overlay)!important;
  max-width:min(560px,calc(100vw - 24px))!important;overflow:auto!important;
  background:var(--surface-overlay-solid)!important;color:var(--text-primary)!important;
  border:1px solid var(--border-strong)!important;box-shadow:var(--overlay-shadow)!important;
}
.stage27-assignee-popover:popover-open,.stage30-c2-school-popover:popover-open,.stage31-selector-popover:popover-open{display:block!important;visibility:visible!important;opacity:1!important}

/* Hero focal point: keep the school, not just sky/roof, visible on wide crops. */
.r5-dashboard-header>.r3-photo-hero,.reference-hero.stage21-school-hero.r3-photo-hero{
  background-position:center bottom!important;
}
@media(max-width:980px){.r5-dashboard-header>.r3-photo-hero,.reference-hero.stage21-school-hero.r3-photo-hero{background-position:58% bottom!important}}
@media(max-width:700px){.r5-dashboard-header>.r3-photo-hero,.reference-hero.stage21-school-hero.r3-photo-hero{background-position:64% bottom!important}}

/* Weather Golden Reference: translucent glass whose content remains fully opaque. */
.r3-weather-card{
  width:min(350px,34vw)!important;min-width:300px!important;
  padding:14px 16px 12px!important;border-radius:17px!important;
  background:rgba(225,237,246,.48)!important;
  border:1px solid rgba(255,255,255,.68)!important;
  box-shadow:0 12px 34px rgba(4,22,40,.16)!important;
  backdrop-filter:blur(15px) saturate(1.16)!important;-webkit-backdrop-filter:blur(15px) saturate(1.16)!important;
}
.r3-weather-card.weather-card-rain,.r3-weather-card.weather-card-sleet,.r3-weather-card.weather-card-thunder,.r3-weather-card.weather-card-cloudy,.r3-weather-card.weather-card-fog{
  background:rgba(220,233,243,.43)!important;
}
.r3-weather-card-top{grid-template-columns:40px minmax(0,1fr)!important;gap:10px!important}
.r3-weather-icon{width:40px!important;height:40px!important;border:0!important;border-radius:12px!important;background:rgba(255,255,255,.56)!important;box-shadow:none!important}
.r3-weather-icon .ui-icon{width:26px!important;height:26px!important;stroke-width:1.9!important}
.r3-weather-card .r3-weather-condition>span{font-size:.9rem!important;color:#17334e!important}
.r3-weather-card .r3-weather-condition>strong{font-size:2.35rem!important;line-height:.96!important;letter-spacing:-.055em!important;color:#071d33!important}
.r3-weather-range{margin:8px 0 7px!important;padding-bottom:7px!important;border-color:rgba(32,61,89,.14)!important}
.r3-weather-details{gap:7px 13px!important}.r3-weather-details>span{font-size:.78rem!important;color:#23435f!important}.r3-weather-attribution{margin-top:5px!important;font-size:.58rem!important;color:#58718a!important;opacity:.85}

/* Rich weather FX: same engine on all clients; mobile only reduces density. */
.r3-weather-fx{opacity:1!important;z-index:2!important;display:block!important;visibility:visible!important}
.weather-fx-rain::before,.weather-fx-sleet::before,.weather-fx-thunder::before{
  background-image:repeating-linear-gradient(104deg,transparent 0 27px,rgba(218,239,255,.42) 28px 29px,transparent 30px 58px)!important;
  background-size:150px 180px!important;filter:blur(.15px);animation:r3RainFall .78s linear infinite!important;
}
.weather-fx-rain::after,.weather-fx-sleet::after,.weather-fx-thunder::after{
  background:linear-gradient(180deg,rgba(11,36,58,.10),rgba(217,235,246,.09) 56%,rgba(228,239,248,.16));
}
.r3-weather-mist{position:absolute;left:-8%;right:-8%;bottom:-8%;height:45%;background:linear-gradient(180deg,transparent,rgba(220,235,245,.15));filter:blur(14px);animation:c2r2MistDrift 8s ease-in-out infinite alternate}
.weather-fx-rain .r3-weather-particle,.weather-fx-thunder .r3-weather-particle{
  width:1.25px!important;height:44px!important;border-radius:999px;background:linear-gradient(180deg,rgba(245,252,255,.18),rgba(214,239,255,.82))!important;
  box-shadow:0 0 1px rgba(233,247,255,.5);animation-name:c2r2RainParticle!important;animation-timing-function:linear!important;animation-iteration-count:infinite!important;
  animation-duration:calc(.48s + (var(--d) * .035s))!important;
}
.weather-fx-rain .r3-weather-particle.depth-0,.weather-fx-thunder .r3-weather-particle.depth-0{height:24px!important;width:.8px!important;opacity:calc(var(--o)*.55)!important}
.weather-fx-rain .r3-weather-particle.depth-1,.weather-fx-thunder .r3-weather-particle.depth-1{height:38px!important;opacity:calc(var(--o)*.78)!important}
.weather-fx-rain .r3-weather-particle.depth-2,.weather-fx-thunder .r3-weather-particle.depth-2{height:58px!important;width:1.55px!important;opacity:min(.92,var(--o))!important}
.weather-fx-snow .r3-weather-particle{animation-duration:calc(3.6s + (var(--d)*.22s))!important}
.weather-fx-sleet .r3-weather-particle:nth-child(3n){width:1px!important;height:28px!important;border-radius:999px!important;background:rgba(220,242,255,.75)!important;animation:c2r2RainParticle calc(.7s + var(--d)*.04s) linear infinite!important}
@keyframes c2r2RainParticle{from{transform:translate3d(18px,-14vh,0) rotate(12deg)}to{transform:translate3d(var(--drift),115vh,0) rotate(12deg)}}
@keyframes c2r2MistDrift{from{transform:translate3d(-1.5%,0,0);opacity:.35}to{transform:translate3d(1.5%,-2%,0);opacity:.7}}
@media(max-width:700px){
  .r3-weather-particle:nth-child(n+29){display:none!important}
  .r3-weather-card{width:min(100%,330px)!important;min-width:0!important}
}
@media(max-width:420px){.r3-weather-particle:nth-child(n+22){display:none!important}}
@media(prefers-reduced-motion:reduce){.r3-weather-mist{animation:none!important}.r3-weather-particle{display:none!important}}

/* Donut: track may never cover the colored annular wedges. */
.reference-donut-track{stroke-width:15!important;opacity:.68!important}
.reference-donut-wedge{stroke:var(--surface-panel)!important;stroke-width:1.15!important;stroke-linejoin:round!important;paint-order:stroke fill!important;opacity:1!important}
.reference-donut-segment{visibility:visible!important}

/* Dark mode secondary/reset actions use semantic neutral tokens. */
html[data-theme="dark"] .secondary.neutral-action,
html[data-theme="dark"] button.neutral-action{
  background:var(--neutral-action-bg)!important;color:var(--neutral-action-text)!important;border-color:var(--neutral-action-border)!important;box-shadow:none!important;
}
html[data-theme="dark"] .secondary.neutral-action:hover:not(:disabled),html[data-theme="dark"] button.neutral-action:hover:not(:disabled){background:var(--neutral-action-hover)!important}

/* Notification metadata stays inside the card. */
.notification{position:relative;min-width:0;overflow:hidden}
.notification-head{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;align-items:start!important;gap:8px!important;min-width:0!important}
.notification-head strong{min-width:0;white-space:normal!important;overflow-wrap:anywhere}
.notification-state-dot{display:block;width:8px;height:8px;margin-top:.48em;border-radius:50%;background:var(--status-success-text);flex:none}
.notification-state-dot.unread{background:var(--danger)}.notification-state-dot.read{background:var(--status-success-text);opacity:.8}
.notification-received-at{position:static!important;white-space:nowrap!important;font-size:.75rem!important;color:var(--text-meta)!important}
.notification-body{min-width:0;overflow-wrap:anywhere;word-break:keep-all}

/* Attachment layout: picker/filename/action never squeezed into a broken single row. */
.c7-attachment-container{min-width:0!important}.c6-attachment-picker,.c6-attachment-picker:has(.c6-file-camera){min-width:0!important}
.c6-file-name{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}

/* Mobile/tablet cross-platform rules. Desktop geometry above 860px remains authoritative. */
@media(max-width:860px){
  :root{--topbar:66px}
  .app-shell{grid-template-columns:1fr!important;width:100%!important;overflow-x:hidden!important}
  .app-stage,.main-content,#page{width:100%!important;min-width:0!important;overflow-x:hidden!important}
  .main-content{padding:14px 14px 28px!important}
  .page-header{display:grid!important;grid-template-columns:1fr!important;align-items:start!important;gap:10px!important}
  .page-header-copy{min-width:0!important}.page-header-copy h1{font-size:clamp(1.35rem,6vw,1.65rem)!important;overflow-wrap:anywhere}.page-header-copy p{font-size:.9rem!important}
  .page-header>button,.page-header>.primary,.page-header>.secondary,.page-header-actions{width:100%!important;min-width:0!important}
  .page-header>button{min-height:44px!important;justify-content:center!important}
  .page-header-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .page-header-actions>button{width:100%!important;min-width:0!important}
  .incident-queue-tabs,.stage20-admin-tabs,.r1-admin-hub-tabs,.stage29-calendar-view-tabs,.stage31-work-mode-tabs,.stage31-calendar-view-row{
    display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;max-width:100%!important;gap:7px!important;padding-bottom:3px!important;scrollbar-width:thin
  }
  .incident-queue-tabs>button,.stage20-admin-tabs>button,.r1-admin-hub-tabs>button,.stage29-calendar-view-tabs>button,.stage31-work-mode-tabs>button{flex:0 0 auto!important;white-space:nowrap!important}
  .admin-list-toolbar,.audit-filter-grid,.r1-audit-filter-grid,.incident-filter-primary,.incident-filter-secondary,.r5-filter-primary,.r5-filter-secondary{
    grid-template-columns:1fr!important;min-width:0!important
  }
  .admin-list-toolbar>*{grid-column:auto!important;min-width:0!important;width:100%!important}
  .admin-list-toolbar button{min-width:0!important;white-space:nowrap!important}
  .audit-actions{display:flex!important;gap:12px!important;width:100%!important;min-width:0!important;flex-wrap:wrap!important;align-items:center!important}
  .incident-pager{display:grid!important;grid-template-columns:minmax(76px,1fr) auto minmax(76px,1fr)!important;gap:8px!important;width:100%!important;min-width:0!important}
  .incident-pager button{width:100%!important;min-width:0!important;white-space:nowrap!important;word-break:keep-all!important}.incident-pager span{min-width:0!important;white-space:nowrap!important}
  .table-wrap,.audit-table-wrap,.stage26-table-wrap,.reference-table-wrap{max-width:100%!important;overflow-x:auto!important;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
  .stage19-admin-table:not(.c2r2-mobile-card-table),.audit-table:not(.c2r2-mobile-card-table){min-width:720px!important}
  .c2r2-sidebar-backdrop{position:fixed;inset:0;z-index:48;border:0;border-radius:0;background:rgba(3,12,24,.48);backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px)}
  .sidebar{position:fixed!important;inset:0 auto 0 0!important;width:min(82vw,292px)!important;max-width:292px!important;z-index:50!important;transform:translateX(-105%);transition:transform .18s ease;box-shadow:18px 0 48px rgba(0,0,0,.24)}
  .sidebar.open{transform:translateX(0)!important}
  .sidebar-install-card{min-height:0!important;padding:12px!important}.sidebar-install-copy{width:100%!important}.install-visual{display:none!important}.sidebar-install-button{position:static!important;margin-top:10px!important;width:100%!important}
  .r5-dashboard-header>.r3-photo-hero{min-height:360px!important;padding:22px 18px!important}
  .reference-hero-top{display:grid!important;grid-template-columns:1fr!important;gap:18px!important}.r3-weather-card{justify-self:stretch!important;width:100%!important;max-width:350px!important}
  .c7-attachment-container,.support-attachment-card .c7-attachment-container{display:grid!important;grid-template-columns:1fr!important;gap:9px!important}
  .c6-attachment-picker,.c6-attachment-picker:has(.c6-file-camera),.support-attachment-card .c6-attachment-picker:not(:has(.c6-file-camera)){display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
  .c6-file-choose,.c6-file-camera,.c6-attachment-upload-action,.support-attachment-card .c6-file-choose,.support-attachment-card .c6-attachment-upload-action{width:100%!important;min-width:0!important;min-height:44px!important}
  .c6-file-name,.support-attachment-card .c6-file-name{grid-column:auto!important;width:100%!important;min-height:40px!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .support-comment-form>button[type="submit"]{width:100%!important;min-height:44px!important}
  .notification-head{grid-template-columns:auto minmax(0,1fr)!important}.notification-received-at{grid-column:2!important;grid-row:2!important;justify-self:start!important}
}

/* Admin/Audit tables become semantic cards on narrow phones. Existing cell nodes and handlers stay intact. */
@media(max-width:700px){
  .c2r2-mobile-card-table{display:block!important;min-width:0!important;width:100%!important;background:transparent!important}
  .c2r2-mobile-card-table thead{display:none!important}
  .c2r2-mobile-card-table tbody{display:grid!important;gap:10px!important;width:100%!important}
  .c2r2-mobile-card-table tbody tr{display:grid!important;gap:0!important;width:100%!important;min-width:0!important;padding:8px 12px!important;border:1px solid var(--border-default)!important;border-radius:13px!important;background:var(--surface-panel)!important;box-shadow:var(--shadow-theme-card)!important}
  .c2r2-mobile-card-table tbody tr:has(td[colspan]){padding:0!important}
  .c2r2-mobile-card-table td{display:grid!important;grid-template-columns:minmax(90px,35%) minmax(0,1fr)!important;align-items:start!important;gap:9px!important;width:100%!important;min-width:0!important;height:auto!important;min-height:38px!important;padding:8px 0!important;border-bottom:1px solid var(--border-soft)!important;white-space:normal!important;word-break:keep-all!important;overflow-wrap:anywhere!important;text-align:left!important}
  .c2r2-mobile-card-table td:last-child{border-bottom:0!important}
  .c2r2-mobile-card-table td::before{content:attr(data-label);font-size:.76rem;font-weight:800;color:var(--text-meta);white-space:normal}
  .c2r2-mobile-card-table td[data-label=""]{display:block!important;text-align:center!important}.c2r2-mobile-card-table td[data-label=""]::before{display:none}
  .c2r2-mobile-card-table .admin-row-actions,.c2r2-mobile-card-table td.admin-row-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;justify-content:stretch!important;white-space:normal!important}
  .c2r2-mobile-card-table .admin-row-actions::before{grid-column:1/-1}.c2r2-mobile-card-table .admin-row-actions button{width:100%!important;min-width:0!important;min-height:40px!important;white-space:nowrap!important}
  .stage27-assignee-popover[popover],.stage30-c2-school-popover[popover],.stage31-selector-popover[popover]{left:12px!important;right:12px!important;bottom:max(12px,env(safe-area-inset-bottom))!important;top:auto!important;width:auto!important;max-width:none!important;max-height:min(68dvh,620px)!important;border-radius:18px!important}
  .stage29-mobile-month-agenda{display:grid;gap:10px;width:100%;min-width:0}.stage29-mobile-day{display:grid;gap:7px;padding:11px;border:1px solid var(--border-default);border-radius:13px;background:var(--surface-panel)}.stage29-mobile-day-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.stage29-mobile-day-events{display:grid;gap:6px;min-width:0}.stage29-mobile-day-events>*{min-width:0;max-width:100%}
}

@media(max-width:480px){
  .main-content{padding-inline:10px!important}.page-header-actions{grid-template-columns:1fr!important}
  .r5-dashboard-header>.r3-photo-hero{min-height:410px!important}
  .reference-hero-top{gap:14px!important}.r3-weather-card{max-width:none!important}
}
@media(max-width:700px){
  .stage31-mobile-month-agenda{display:grid;gap:10px;width:100%;min-width:0}
  .stage31-mobile-month-day{display:grid;gap:8px;padding:11px;border:1px solid var(--border-default);border-radius:13px;background:var(--surface-panel);min-width:0}
  .stage31-mobile-month-heading{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:7px;width:100%;min-width:0;padding:5px 3px;border:0;background:transparent;color:var(--text-primary);text-align:left}
  .stage31-mobile-month-heading .stage29-day-number{display:grid;place-items:center;min-width:30px;height:30px;border-radius:999px;font-weight:900}
  .stage31-mobile-month-day.today .stage29-day-number{background:var(--brand-soft);box-shadow:inset 0 0 0 2px var(--brand-border)}
  .stage31-mobile-month-day.sunday .stage29-day-number{color:#dc3f48}.stage31-mobile-month-day.saturday .stage29-day-number{color:#347cf3}
  .stage31-mobile-month-heading .stage30-holiday-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stage31-mobile-add{white-space:nowrap;font-size:.75rem;color:var(--text-link)}
  .stage31-mobile-month-events{display:grid;gap:6px;min-width:0}.stage31-mobile-month-events>*{min-width:0;max-width:100%}
}

/* ========================================================================== */
/* Stage0031 C2 R7 REV4 — approved targeted UI quality recovery               */
/* Balanced spacing; no page-wide responsive auto-normalization.              */
/* ========================================================================== */

/* Modal shell: keep business-specific width variants, unify visual treatment. */
dialog.modal.r7-dialog,
dialog.stage19-dialog.stage20-dialog,
dialog.stage29-schedule-dialog,
dialog.board-editor-dialog,
dialog.board-detail-dialog{
  border:0;
  border-radius:18px;
  padding:0;
  background:var(--surface-card,#fff);
  color:var(--text-primary,#14243a);
  box-shadow:0 22px 70px rgba(20,36,58,.22);
  max-inline-size:calc(100vw - 32px);
  max-block-size:calc(100dvh - 32px);
}
dialog.modal.r7-dialog::backdrop,
dialog.stage19-dialog.stage20-dialog::backdrop,
dialog.stage29-schedule-dialog::backdrop,
dialog.board-editor-dialog::backdrop,
dialog.board-detail-dialog::backdrop{background:rgba(23,34,52,.30)}

.modal-form,
.stage19-dialog-card,
.stage29-schedule-dialog .modal-form,
.board-editor-card,
.board-detail-card{
  box-sizing:border-box;
  inline-size:100%;
  padding:24px;
}
.modal-form>h2,
.stage19-dialog-card>h2,
.stage19-dialog-card>.admin-section-head:first-child h2,
.rev4-modal-form>h2{margin:0 0 8px;line-height:1.35}
.modal-form>p.muted,
.stage19-dialog-card>p.muted{margin:0 0 8px}

/* Form rhythm: labels/controls have breathing room without oversized blank areas. */
.rev4-modal-form,
.modal-form.r7-form-grid,
.stage19-dialog-card{
  gap:16px 18px;
}
.rev4-modal-form>label,
.modal-form.r7-form-grid>label,
.stage19-dialog-card>label,
.rev4-guide-filter>label,
.rev4-vehicle-filter>label,
.rev4-availability-filter>label{
  min-inline-size:0;
}
.rev4-modal-form label>span:first-child,
.modal-form.r7-form-grid label>span:first-child,
.stage19-dialog-card label>span:first-child{
  display:block;
  margin-block-end:7px;
  line-height:1.35;
}
.rev4-modal-form input:not([type="checkbox"]):not([type="radio"]),
.rev4-modal-form select,
.rev4-modal-form textarea,
.modal-form.r7-form-grid input:not([type="checkbox"]):not([type="radio"]),
.modal-form.r7-form-grid select,
.modal-form.r7-form-grid textarea,
.stage19-dialog-card input:not([type="checkbox"]):not([type="radio"]),
.stage19-dialog-card select,
.stage19-dialog-card textarea{
  min-block-size:44px;
  box-sizing:border-box;
}
.rev4-modal-form textarea,
.modal-form.r7-form-grid textarea,
.stage19-dialog-card textarea{padding:12px 14px;line-height:1.6;resize:vertical}

/* Footer actions always read as a footer rather than another field row. */
.rev4-modal-footer,
.modal-form.r7-form-grid>.r7-action-group:last-child,
.stage19-dialog-card>.actions:last-child{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  margin-block-start:4px;
  padding-block-start:4px;
  flex-wrap:wrap;
}
.rev4-modal-footer>button,
.modal-form.r7-form-grid>.r7-action-group:last-child>button,
.stage19-dialog-card>.actions:last-child>button{inline-size:auto;min-inline-size:72px}
.rev4-standard-dialog{inline-size:min(760px,calc(100vw - 32px))}
.r7-wide-dialog{inline-size:min(980px,calc(100vw - 32px))}

/* Date/date-time controls: one coherent control surface, never separated glyph text. */
.c3-datetime-field{display:grid;grid-template-columns:minmax(0,1fr) minmax(106px,142px);gap:8px;align-items:center}
.stage24-date-field{min-inline-size:0}
.stage24-date-field .stage24-date-text{min-inline-size:0}

/* Selector surfaces: trigger width by default, secondary metadata below primary name. */
.stage27-assignee-popover,
.stage31-selector-popover,
.c4-school-popover,
.r6-selector-overlay{box-sizing:border-box;max-inline-size:min(680px,calc(100vw - 20px))}
.stage27-assignee-popover-head{
  display:grid;
  gap:10px;
  padding:14px 16px 12px;
  border-bottom:1px solid var(--border-default,#dde5ef);
}
.stage27-assignee-popover-title{display:flex;align-items:center;justify-content:space-between;gap:12px;min-inline-size:0}
.stage27-assignee-popover-actions{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap}
.stage27-assignee-option{align-items:flex-start}
.stage27-assignee-option-copy{display:grid;gap:4px;min-inline-size:0;text-align:left}
.stage27-assignee-option-copy strong{line-height:1.35;overflow-wrap:anywhere}
.stage27-assignee-option-copy small{line-height:1.35;color:var(--text-muted,#6a778a);overflow-wrap:anywhere}
.stage27-assignee-selected,.c4-school-selection-tray{margin-block-start:8px}
.stage27-assignee-selected,.c3-school-chips,.c4-school-tray-chips{gap:7px}
.r6-selected-chip{max-inline-size:100%}
.r6-selected-chip>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Audit/work/target combobox: primary name first, group metadata on its own line. */
.r1-local-combobox-results .school-search-option{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  align-items:start!important;
  justify-items:start!important;
  gap:4px!important;
  min-block-size:58px;
  padding:10px 14px!important;
  text-align:left!important;
}
.r1-local-combobox-results .school-search-option>strong,
.r1-local-combobox-results .school-search-option>small{
  display:block!important;
  inline-size:100%;
  min-inline-size:0;
  white-space:normal!important;
  overflow-wrap:anywhere;
}
.r1-local-combobox-results .school-search-option>small{color:var(--text-muted,#6a778a);font-size:.78rem}

/* Result/list rows: single-line content sits on the row's vertical center. */
.table-wrap th,.table-wrap td,
.stage19-admin-table th,.stage19-admin-table td,
.audit-table th,.audit-table td,
.r3-integrated-table th,.r3-integrated-table td{vertical-align:middle!important}
.stage19-admin-table td,.audit-table td{padding-block:13px}
.admin-row-actions{align-items:center}

/* Incident approved filters are always present: no collapsible "상세 필터" affordance. */
.incident-filter-secondary-always{display:grid!important;visibility:visible!important}
.incident-filter-card details,
.incident-filter-card summary{display:none!important}

/* Calendar navigation: the month and navigation actions stay one visual group. */
.stage31-calendar-heading.r3-calendar-heading{
  display:grid!important;
  grid-template-columns:1fr!important;
  justify-items:center!important;
  align-items:center!important;
  row-gap:8px!important;
  padding-block:4px 12px!important;
}
.c3r1-calendar-nav-group{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
}
.c3r1-calendar-nav-group .stage31-calendar-month-title{min-inline-size:150px!important;text-align:center!important}
.stage31-calendar-range{margin:0!important;text-align:center;color:var(--text-muted,#6a778a)}

/* Operations guide: compact filter bar, readable content rather than full-width text lines. */
.rev4-guide-filter{
  display:grid;
  grid-template-columns:minmax(280px,1.8fr) minmax(150px,.65fr) minmax(150px,.65fr) minmax(190px,.8fr) auto;
  gap:14px;
  align-items:end;
  padding:16px;
}
.rev4-guide-filter>.rev4-filter-actions{align-self:end}
.rev4-guide-filter label>span:first-child{white-space:nowrap}
.rev4-guide-archive-check{display:flex;align-items:center;gap:8px;min-block-size:44px;align-self:end;white-space:nowrap;padding-inline:4px}
.rev4-filter-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.rev4-guide-card{display:grid;gap:14px;padding:18px}
.rev4-guide-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}
.rev4-guide-title{display:grid;gap:10px;min-inline-size:0;max-inline-size:920px}
.rev4-guide-title h2{margin:0;overflow-wrap:anywhere}
.rev4-guide-body{max-inline-size:920px;margin:0;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}
.rev4-guide-actions{margin-block-start:2px}

/* Planner: date navigation and plan actions belong to the same working card. */
.rev4-planner-control{display:grid;gap:18px;padding:18px}
.rev4-planner-date-section{display:grid;gap:7px}
.rev4-planner-date-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rev4-planner-date-nav .stage24-date-field{inline-size:min(220px,100%)}
.rev4-planner-plan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.rev4-planner-plan-head h2{margin:0 0 5px}
.rev4-planner-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-block-start:2px}
.rev4-planner-actions-left,.rev4-planner-actions-right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* Vehicle/attendance filters: information dense, but fields do not touch each other. */
.rev4-vehicle-filter,
.rev4-availability-filter{
  display:grid;
  gap:14px;
  align-items:end;
  padding:16px;
}
.rev4-vehicle-filter{grid-template-columns:repeat(4,minmax(150px,1fr))}
.rev4-availability-filter{grid-template-columns:1fr;align-items:stretch}
.rev4-availability-top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.rev4-availability-fields{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr)) auto;gap:14px;align-items:end}
.rev4-vehicle-filter>.rev4-filter-actions{grid-column:-2/-1}
.rev4-availability-fields>.rev4-filter-actions{align-self:end}
.rev4-availability-view-tabs,.rev4-availability-month-nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rev4-availability-calendar{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:1px;border:1px solid var(--border-default,#dde5ef);background:var(--border-default,#dde5ef);overflow:auto}
.rev4-availability-calendar-head,.rev4-availability-day{background:var(--surface-card,#fff);padding:10px;min-inline-size:120px}
.rev4-availability-calendar-head{text-align:center;font-weight:750;color:var(--text-muted,#6a778a)}
.rev4-availability-day{min-block-size:112px;display:grid;align-content:start;gap:6px}
.rev4-availability-day.is-outside{background:var(--surface-subtle,#f7f9fc);color:var(--text-muted,#6a778a)}
.rev4-availability-event{display:block;padding:5px 7px;border-radius:7px;background:var(--brand-soft,#eef0ff);font-size:.76rem;line-height:1.35;overflow-wrap:anywhere}
.rev4-legacy-warning{display:grid;gap:5px;padding:12px 14px;border:1px solid #f0cf83;border-radius:10px;background:#fff9e8;color:#75510a}

/* Permission matrix: Synology-like dense row comparison without giant repeated cards. */
.rev4-permission-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-block-end:12px}
.rev4-permission-pane{display:grid;gap:16px}
.rev4-permission-toolbar{display:grid;grid-template-columns:minmax(240px,320px) minmax(260px,1fr);gap:14px;align-items:end}
.rev4-permission-matrix{display:grid;gap:12px}
.rev4-permission-group{border:1px solid var(--border-default,#dde5ef);border-radius:12px;overflow:hidden;background:var(--surface-card,#fff)}
.rev4-permission-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;background:var(--surface-subtle,#f7f9fc);border-bottom:1px solid var(--border-default,#dde5ef)}
.rev4-permission-bulk{display:flex;gap:8px;flex-wrap:wrap}
.rev4-permission-column-head,.rev4-permission-row{display:grid;grid-template-columns:minmax(250px,1.45fr) minmax(105px,.38fr) minmax(78px,.28fr) minmax(78px,.28fr) minmax(140px,.55fr) minmax(110px,.45fr);gap:10px;align-items:center;padding:10px 14px}
.rev4-permission-column-head{font-size:.78rem;font-weight:800;color:var(--text-muted,#6a778a);background:var(--surface-subtle,#f7f9fc);border-bottom:1px solid var(--border-default,#dde5ef)}
.rev4-permission-row{border-bottom:1px solid var(--border-soft,#edf1f5)}
.rev4-permission-row:last-child{border-bottom:0}
.rev4-permission-row.is-changed{background:#fff9e8}
.rev4-permission-name{display:grid;gap:3px;min-inline-size:0}
.rev4-permission-name small{color:var(--text-muted,#6a778a);overflow-wrap:anywhere}
.rev4-permission-radio{display:flex;align-items:center;justify-content:center;gap:6px;min-block-size:36px;white-space:nowrap;font-size:.84rem}
.rev4-permission-radio input{margin:0;inline-size:18px;block-size:18px;accent-color:var(--primary,#4b5cff)}
.rev4-responsibility-list{display:grid;border:1px solid var(--border-default,#dde5ef);border-radius:12px;overflow:hidden}
.rev4-responsibility-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--border-soft,#edf1f5)}
.rev4-responsibility-row:last-child{border-bottom:0}
.rev4-responsibility-row>span{display:grid;gap:3px}.rev4-responsibility-row small{color:var(--text-muted,#6a778a)}

/* Page forms/draft action rows: use breathing room without creating oversized cards. */
.rev4-draft-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-block-start:4px}
.rev4-draft-hint{font-size:.78rem;color:var(--text-muted,#6a778a);margin-inline-end:auto;align-self:center}

@media (max-width:980px){
  .rev4-guide-filter{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rev4-guide-filter>.rev4-filter-actions{grid-column:1/-1;justify-content:flex-end}
  .rev4-vehicle-filter{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rev4-vehicle-filter>.rev4-filter-actions{grid-column:1/-1}
  .rev4-availability-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rev4-availability-fields>.rev4-filter-actions{grid-column:1/-1}
  .rev4-permission-column-head,.rev4-permission-row{grid-template-columns:minmax(210px,1.25fr) repeat(3,minmax(72px,.32fr)) minmax(130px,.55fr) minmax(100px,.45fr)}
}
@media (max-width:680px){
  .modal-form,.stage19-dialog-card,.board-editor-card,.board-detail-card{padding:18px}
  .rev4-modal-form,.modal-form.r7-form-grid{grid-template-columns:1fr;gap:14px}
  .rev4-modal-form>.r7-span-2,.modal-form.r7-form-grid>.r7-span-2{grid-column:1}
  .c3-datetime-field{grid-template-columns:1fr}
  .rev4-guide-filter,.rev4-vehicle-filter,.rev4-availability-filter,.rev4-permission-toolbar{grid-template-columns:1fr}
  .rev4-availability-top{align-items:flex-start}
  .rev4-availability-fields{grid-template-columns:1fr}
  .rev4-planner-actions{align-items:stretch}
  .rev4-planner-actions-left,.rev4-planner-actions-right{inline-size:100%}
  .rev4-permission-column-head{display:none}
  .rev4-permission-row{grid-template-columns:repeat(3,minmax(0,1fr));padding:12px 14px}
  .rev4-permission-name{grid-column:1/-1}
  .rev4-permission-row>.r7-permission-scope{grid-column:1/3}
  .rev4-permission-row>.r7-scope-school-button{grid-column:3/4}
  .rev4-availability-calendar{grid-template-columns:repeat(7,minmax(110px,1fr))}
}

/* REV4 explicit R7 business-widget structure (not page-wide auto responsive ownership). */
.r7-action-group,.r7-chip-row,.r7-guide-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-inline-size:0}
.r7-action-group>button,.r7-action-group>a,.r7-action-group>.link-button{inline-size:auto;max-inline-size:100%;flex:0 0 auto}
.r7-form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 18px}
.r7-form-grid>.r7-span-2,.r7-span-2{grid-column:1/-1}
.r7-guide-list{display:grid;gap:16px}
.r7-guide-meta{font-size:.88rem;color:var(--text-muted,#667085);margin-block-start:4px}
.r7-source-list{display:grid;gap:9px;max-block-size:min(52vh,540px);overflow:auto;padding:4px}
.r7-source-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;padding:12px;border:1px solid var(--border-default,#dfe3ea);border-radius:10px}
.r7-source-row span{display:grid;gap:4px;min-inline-size:0}.r7-source-row strong,.r7-source-row small{overflow-wrap:anywhere}
.r7-duration-control{display:grid;grid-template-columns:minmax(0,1fr) minmax(86px,.55fr);gap:8px}.r7-duration-control>*{min-inline-size:0;inline-size:100%}
.r7-calendar-excel{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.r7-calendar-excel-copy{display:grid;gap:4px}.r7-excel-preview{max-inline-size:100%;overflow:auto}
.r7-conflict-summary{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}.r7-conflict-summary ul,.r7-conflict-list{margin:3px 0;padding-inline-start:20px}
@media(max-width:680px){.r7-form-grid{grid-template-columns:1fr}.r7-form-grid>.r7-span-2,.r7-span-2{grid-column:1}.r7-duration-control{grid-template-columns:1fr}.r7-calendar-excel{align-items:flex-start}}
/* REV4 minor class aliases from the targeted renderers. */
.rev4-view-tabs,.rev4-month-nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rev4-month-nav{justify-content:flex-start}
.rev4-availability-day.outside{background:var(--surface-subtle,#f7f9fc);color:var(--text-muted,#6a778a)}
.rev4-excel-host{display:grid;gap:14px;margin-block-start:14px}
.rev4-excel-template-action{display:flex;justify-content:flex-start;margin-block:4px 0}


/* Stage0031 C2 R7 REV5 UI REVIEW — targeted selector/modal/gap candidate */
:root{
  --rev5-control-height:44px;
  --rev5-label-control-gap:8px;
  --rev5-control-gap-x:16px;
  --rev5-control-gap-y:12px;
  --rev5-group-gap:20px;
  --rev5-action-gap:10px;
  --rev5-control-action-gap:24px;
}

/* Selector V2: search surface, anchored popup, canonical selection summary in a separate row. */
.selector-v2-field{display:grid;gap:10px;min-width:0;width:100%}
.selector-v2{display:grid;gap:var(--rev5-label-control-gap);min-width:0;width:100%}
.selector-v2-control>input[type="search"]{box-sizing:border-box;min-height:var(--rev5-control-height);width:100%}
.selector-v2-summary{box-sizing:border-box;display:grid;gap:8px;width:100%;padding:10px 12px;border:1px solid var(--border-default,#dde5ef);border-radius:10px;background:var(--surface-subtle,#f8faff);min-width:0}
.selector-v2-summary-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.selector-v2-summary-head strong{white-space:nowrap}.selector-v2-summary-count{margin-right:auto}.selector-v2-summary-head>button{margin-left:auto}
.selector-v2-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.selector-v2-chip{display:inline-flex;align-items:center;gap:7px;max-width:100%;min-height:32px;padding:5px 8px 5px 10px;border:1px solid var(--brand-border,#b8c7ff);border-radius:999px;background:var(--brand-soft,#eef2ff)}
.selector-v2-chip>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.selector-v2-chip-remove{display:grid;place-items:center;width:22px;height:22px;min-width:22px;padding:0;border:0;border-radius:999px;background:transparent;color:inherit;font-size:17px;line-height:1;cursor:pointer}
.selector-v2-empty{min-height:30px;display:flex;align-items:center}
.selector-v2-popover{box-sizing:border-box;position:fixed;z-index:10050;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden;border:1px solid var(--border-default,#d9e2ec);border-radius:12px;background:var(--surface-card,#fff);box-shadow:0 18px 42px rgba(20,36,58,.22)}
.selector-v2-popover[hidden]{display:none!important}
.selector-v2-popover-head{display:grid;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border-default,#dde5ef);background:var(--surface-card,#fff)}
.selector-v2-popover-actions{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
.selector-v2-options{overflow:auto;min-height:90px;padding:6px}
.selector-v2-option{box-sizing:border-box;display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:9px;width:100%;min-height:58px;padding:10px 11px;border:0;border-radius:8px;background:transparent;text-align:left;color:inherit;cursor:pointer}
.selector-v2-option:hover,.selector-v2-option:focus-visible,.selector-v2-option.selected{background:var(--brand-soft,#eef2ff)}
.selector-v2-check{display:grid;place-items:center;min-height:20px;color:var(--primary,#4b5cff);font-weight:900}.selector-v2-option-copy{display:grid;gap:3px;min-width:0}.selector-v2-option-copy strong,.selector-v2-option-copy small{overflow-wrap:anywhere}.selector-v2-option-copy small{color:var(--text-muted,#68768a)}.selector-v2-capability{color:var(--primary,#4b5cff)!important;font-weight:700}

/* When a V2 summary is re-parented into a filter form it owns a full-width result row. */
.incident-filter-card>.selector-v2-summary,.support-filter-card>.selector-v2-summary,.r5-filter-card>.selector-v2-summary,.stage29-calendar-controls>.selector-v2-summary,.audit-filter-grid>.selector-v2-summary{grid-column:1/-1;width:100%}
.incident-filter-primary .selector-v2-summary,.stage29-calendar-filter-row .selector-v2-summary,.r5-filter-primary .selector-v2-summary{display:none}

/* Control Gap Contract: no space-between expansion inside form/filter rows. */
.incident-filter-primary,.incident-filter-secondary,.r5-filter-primary,.r5-filter-secondary,.stage29-calendar-filter-row,.audit-filter-grid,.rev4-guide-filter,.stage21-notification-filter{
  justify-content:start;
  align-items:end;
}
.incident-filter-primary,.incident-filter-secondary,.r5-filter-primary,.r5-filter-secondary,.stage29-calendar-filter-row{column-gap:var(--rev5-control-gap-x)!important;row-gap:var(--rev5-control-gap-y)!important}
.sams-field,.incident-filter-card label,.r5-filter-card label,.audit-filter-grid label,.rev4-guide-filter label,.rev5-modal-form label{min-width:0}
.sams-field>span:first-child,.incident-filter-card label>span:first-child,.r5-filter-card label>span:first-child,.audit-filter-grid label>span:first-child,.rev4-guide-filter label>span:first-child,.rev5-modal-form label>span:first-child{line-height:1.35;margin-bottom:var(--rev5-label-control-gap)}
.incident-filter-card input:not([type=checkbox]):not([type=radio]),.incident-filter-card select,.r5-filter-card input:not([type=checkbox]):not([type=radio]),.r5-filter-card select,.audit-filter-grid input:not([type=checkbox]):not([type=radio]),.audit-filter-grid select,.rev4-guide-filter input:not([type=checkbox]):not([type=radio]),.rev4-guide-filter select,.stage21-notification-filter input:not([type=checkbox]):not([type=radio]),.stage21-notification-filter select,
.incident-filter-card button,.r5-filter-card button,.audit-filter-grid button,.rev4-guide-filter button,.stage21-notification-filter button{min-height:var(--rev5-control-height);box-sizing:border-box}

/* Notification: information-sized controls, fixed gap, separate action group. */
.stage21-notification-filter{display:flex!important;flex-wrap:wrap!important;gap:var(--rev5-control-gap-y) var(--rev5-control-gap-x)!important;justify-content:flex-start!important;align-items:flex-end!important}
.stage21-notification-filter>.inline-check{flex:0 0 auto;min-height:var(--rev5-control-height)}
.stage21-notification-filter>select{flex:0 0 240px;max-width:280px}
.stage21-notification-date-filter{flex:0 0 220px;max-width:240px}
.stage21-notification-filter>.r6-query-action-group{display:flex;align-items:center;gap:var(--rev5-action-gap);margin-left:8px;flex:0 0 auto}
.stage21-notification-filter>.r6-query-action-group>button{width:auto!important;min-width:72px}

/* Operations Guide: same control line, atomic archive checkbox and useful widths. */
.rev4-guide-filter{grid-template-columns:minmax(300px,520px) 210px 210px max-content max-content!important;gap:var(--rev5-control-gap-y) var(--rev5-control-gap-x)!important;justify-content:start!important;align-items:end!important}
.rev4-guide-filter>.rev4-guide-archive-check{display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;width:max-content!important;min-width:0!important;min-height:var(--rev5-control-height);padding:0!important;white-space:nowrap}
.rev4-guide-archive-check>input[type="checkbox"]{flex:0 0 auto;width:18px!important;height:18px!important;margin:0!important}
.rev4-guide-archive-check>span{display:inline!important;margin:0!important;white-space:nowrap}
.rev4-guide-filter>.rev4-filter-actions{display:flex;align-items:center;gap:var(--rev5-action-gap)!important;margin-left:8px}
.rev4-guide-filter>.rev4-filter-actions>button{min-width:72px}

/* Planner: page-level confirm; today above a compact previous/date/next navigator. */
.rev5-planner-control{align-items:stretch}
.rev5-planner-date-block{display:grid;justify-items:center;gap:12px;padding:2px 0 6px}
.rev5-planner-today{min-width:72px}
.rev5-planner-date-navigation{display:flex;align-items:end;justify-content:center;gap:16px;flex-wrap:wrap}
.rev5-planner-date-control{display:grid;gap:8px;justify-items:stretch;min-width:210px}
.rev5-planner-date-label{text-align:center;font-weight:700;line-height:1.35}
.rev5-planner-date-control .stage24-date-field{width:210px;max-width:100%}
.rev5-planner-date-navigation>button{min-height:var(--rev5-control-height);min-width:82px}
.rev5-planner-plan-summary{display:grid;gap:5px}.rev5-planner-plan-summary>p{margin:0}
.rev4-planner-actions-left,.rev4-planner-actions-right{gap:var(--rev5-action-gap)!important}

/* Modal audit: variants sized by information density, not viewport width. */
.rev5-compact-dialog{inline-size:min(620px,calc(100vw - 32px))!important;max-inline-size:min(620px,calc(100vw - 32px))!important}
.rev5-standard-dialog{inline-size:min(720px,calc(100vw - 32px))!important;max-inline-size:min(720px,calc(100vw - 32px))!important}
.rev5-modal-form{display:grid;gap:16px!important;padding:24px!important}
.rev5-modal-form>.actions:last-child{display:flex;justify-content:flex-end;align-items:center;gap:var(--rev5-action-gap);padding-top:4px;margin-top:4px}
.rev5-modal-form textarea{min-height:96px;max-height:220px}

/* Permission matrix: header/value center axes are the same. */
.rev4-permission-column-head,.rev4-permission-row{align-items:center!important}
.rev4-permission-column-head>*:not(:first-child),.rev4-permission-row>*:not(:first-child){justify-self:center;text-align:center}
.rev4-permission-row>.r7-permission-scope{width:min(100%,210px);justify-self:center}
.rev4-permission-row>.r7-scope-school-button{justify-self:center}
.rev4-permission-radio{width:100%;justify-content:center!important}

/* Audit filter: explicit control grid + full width school/actor selection summary rows. */
.audit-filter-grid{display:grid!important;grid-template-columns:minmax(280px,1.4fr) minmax(230px,.9fr) minmax(200px,.8fr) minmax(200px,.8fr)!important;gap:var(--rev5-control-gap-y) var(--rev5-control-gap-x)!important;align-items:end!important}
.audit-filter-grid>.r1-audit-search{grid-column:span 2}
.audit-filter-grid>.selector-v2-summary{grid-column:1/-1}
.audit-filter-grid>.audit-actions{grid-column:1/-1;display:flex;justify-content:flex-end;align-items:center;gap:var(--rev5-action-gap);padding-top:4px}
.audit-actions>.r6-query-action-group{display:flex;gap:var(--rev5-action-gap)}
.audit-actions>.audit-export-button{margin-left:4px}

/* Equal-row geometry: natural tallest content wins; never clip text to fake equal heights. */
.incident-filter-primary,.r5-filter-primary,.stage29-calendar-filter-row,.rev4-guide-filter,.rev4-permission-column-head,.rev4-permission-row{align-items:stretch}
.incident-filter-primary>label,.r5-filter-primary>label,.stage29-calendar-filter-row>label,.rev4-guide-filter>label{display:grid;grid-template-rows:minmax(min-content,auto) auto;align-content:start;height:auto;min-height:0;overflow:visible}
.incident-filter-primary>label>input,.incident-filter-primary>label>select,.r5-filter-primary>label>input,.r5-filter-primary>label>select,.stage29-calendar-filter-row>label>input,.stage29-calendar-filter-row>label>select,.rev4-guide-filter>label>input,.rev4-guide-filter>label>select{align-self:end}

@media(max-width:980px){
  .rev4-guide-filter{grid-template-columns:minmax(260px,1fr) minmax(170px,.55fr) minmax(170px,.55fr)!important}
  .rev4-guide-filter>.rev4-guide-archive-check,.rev4-guide-filter>.rev4-filter-actions{grid-column:auto}
  .audit-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .audit-filter-grid>.r1-audit-search{grid-column:1/-1}
}
@media(max-width:680px){
  .rev4-guide-filter{grid-template-columns:1fr!important}
  .rev4-guide-filter>.rev4-filter-actions{margin-left:0;justify-content:flex-start}
  .stage21-notification-filter>select,.stage21-notification-date-filter{flex:1 1 210px;max-width:none}
  .stage21-notification-filter>.r6-query-action-group{margin-left:0}
  .audit-filter-grid{grid-template-columns:1fr!important}
  .audit-filter-grid>*{grid-column:1!important}
  .rev5-planner-date-navigation{display:grid;grid-template-columns:auto minmax(0,1fr) auto;width:100%;align-items:end;gap:10px}
  .rev5-planner-date-control{min-width:0}.rev5-planner-date-control .stage24-date-field{width:100%}
  .rev5-compact-dialog,.rev5-standard-dialog{inline-size:calc(100vw - 24px)!important;max-inline-size:calc(100vw - 24px)!important}
  .rev5-modal-form{padding:18px!important}
}

/* ========================================================================== */
/* Stage0031 C2 R7 REV5 R1 UI REVIEW — feedback corrections 2026-08-23       */
/* ========================================================================== */

/* Compact recipient-style chips: selected values are tokens, not mini buttons. */
.selector-v2-chips{gap:6px 8px!important}
.selector-v2-chip{
  min-height:28px!important;
  padding:2px 5px 2px 9px!important;
  gap:5px!important;
  font-size:13px!important;
  line-height:1.2!important;
  font-weight:650!important;
}
.selector-v2-chip-remove{
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  font-size:14px!important;
  line-height:1!important;
}
.selector-v2-summary{gap:7px!important}
.selector-v2-summary-head{gap:8px!important}

/* Integrated Work: keep search/type/scope/project readable, move School/Assignee to row 2. */
.rev5-integrated-primary-row{
  display:grid!important;
  grid-template-columns:minmax(280px,1.35fr) minmax(170px,.65fr) minmax(210px,.82fr) minmax(220px,.9fr)!important;
  column-gap:var(--rev5-control-gap-x)!important;
  row-gap:var(--rev5-control-gap-y)!important;
  align-items:stretch!important;
  justify-content:start!important;
}
.rev5-integrated-primary-row.call-center{grid-template-columns:minmax(300px,1.4fr) minmax(170px,.65fr) minmax(210px,.82fr)!important}
.rev5-integrated-primary-row>label{min-width:0!important;display:grid!important;grid-template-rows:minmax(min-content,auto) auto!important;align-content:start!important}
.rev5-integrated-primary-row select,.rev5-integrated-primary-row input{min-width:0!important;width:100%!important}
.rev5-integrated-selector-row{
  display:grid!important;
  grid-template-columns:minmax(320px,480px) minmax(320px,480px)!important;
  gap:var(--rev5-control-gap-y) var(--rev5-control-gap-x)!important;
  align-items:stretch!important;
  justify-content:start!important;
  margin-top:var(--rev5-control-gap-y)!important;
}
.rev5-integrated-selector-row>label{display:grid!important;grid-template-rows:minmax(min-content,auto) auto!important;align-content:start!important;min-width:0!important}
.rev5-integrated-selector-row .selector-v2{min-width:0!important;width:100%!important}

/* Operations Guide archive checkbox is one atomic 44px control, aligned with the row. */
.rev4-guide-filter>.rev4-guide-archive-check{
  box-sizing:border-box!important;
  height:var(--rev5-control-height)!important;
  min-height:var(--rev5-control-height)!important;
  align-self:end!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
  padding:0!important;
  margin:0!important;
  line-height:1.2!important;
  white-space:nowrap!important;
}
.rev4-guide-filter>.rev4-guide-archive-check>input[type="checkbox"]{
  flex:0 0 18px!important;
  width:18px!important;
  height:18px!important;
  margin:0!important;
  padding:0!important;
  align-self:center!important;
}
.rev4-guide-filter>.rev4-guide-archive-check>span{
  display:inline-flex!important;
  align-items:center!important;
  height:18px!important;
  margin:0!important;
  padding:0!important;
  line-height:18px!important;
}

/* Planner: previous / date / next are a symmetric navigation group. */
.rev5-planner-date-navigation{
  display:grid!important;
  grid-template-columns:82px 210px 82px!important;
  align-items:end!important;
  justify-content:center!important;
  column-gap:16px!important;
  row-gap:0!important;
  width:max-content!important;
  max-width:100%!important;
}
.rev5-planner-date-navigation>button{
  box-sizing:border-box!important;
  width:82px!important;
  min-width:82px!important;
  max-width:82px!important;
  min-height:var(--rev5-control-height)!important;
  margin:0!important;
}
.rev5-planner-date-control{width:210px!important;min-width:210px!important;max-width:210px!important;justify-items:stretch!important}
.rev5-planner-date-control .stage24-date-field{
  width:210px!important;
  min-width:210px!important;
  max-width:210px!important;
  grid-template-columns:minmax(0,1fr) 32px!important;
  justify-self:stretch!important;
}

/* Calendar: title, one compact Previous/Today/Next group, secondary range; no large dead zone. */
.stage31-calendar-heading.r3-calendar-heading.rev5-calendar-period-heading{
  display:grid!important;
  grid-template-columns:1fr!important;
  justify-items:center!important;
  align-items:center!important;
  gap:8px!important;
  min-height:0!important;
  padding:8px 2px 12px!important;
  margin:0!important;
}
.rev5-calendar-period-heading>.rev5-calendar-period-title{
  grid-column:1!important;
  grid-row:auto!important;
  justify-self:center!important;
  margin:0!important;
  padding:0!important;
  min-width:0!important;
  font-size:1.35rem!important;
  line-height:1.25!important;
}
.rev5-calendar-nav-actions{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  flex-wrap:nowrap!important;
  width:max-content!important;
  max-width:100%!important;
}
.rev5-calendar-nav-actions>button{
  min-width:78px!important;
  min-height:var(--rev5-control-height)!important;
  margin:0!important;
}
.rev5-calendar-visible-range{
  grid-column:1!important;
  justify-self:center!important;
  margin:0!important;
  text-align:center!important;
  line-height:1.35!important;
  color:var(--text-muted,#6a778a)!important;
}
.rev5-calendar-period-heading + .stage29-calendar-summary{
  margin-top:4px!important;
  margin-bottom:8px!important;
  padding:0 2px!important;
}

@media(max-width:1100px){
  .rev5-integrated-primary-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .rev5-integrated-primary-row.call-center{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .rev5-integrated-selector-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:680px){
  .rev5-integrated-primary-row,.rev5-integrated-primary-row.call-center,.rev5-integrated-selector-row{grid-template-columns:1fr!important}
  .rev5-planner-date-navigation{
    grid-template-columns:78px minmax(0,1fr) 78px!important;
    width:100%!important;
    column-gap:10px!important;
  }
  .rev5-planner-date-navigation>button{width:78px!important;min-width:78px!important;max-width:78px!important}
  .rev5-planner-date-control{width:100%!important;min-width:0!important;max-width:none!important}
  .rev5-planner-date-control .stage24-date-field{width:100%!important;min-width:0!important;max-width:none!important}
  .rev5-calendar-nav-actions{gap:8px!important}
  .rev5-calendar-nav-actions>button{min-width:72px!important;padding-inline:10px!important}
}
/* Logical-size override: responsive foundation sets all buttons to 44px; compact chip remove stays token-sized. */
.selector-v2-chip{min-block-size:28px!important;block-size:auto!important}
.selector-v2-chip-remove{block-size:18px!important;min-block-size:18px!important;inline-size:18px!important;min-inline-size:18px!important}
/* Calendar R1 geometry hardening: remove legacy named-grid placement from the new stacked navigation. */
.stage29-calendar-page{gap:10px!important}
.stage31-calendar-heading.r3-calendar-heading.rev5-calendar-period-heading{
  grid-template-areas:none!important;
  grid-auto-flow:row!important;
  grid-auto-rows:max-content!important;
  padding-bottom:4px!important;
}
.stage31-calendar-heading.r3-calendar-heading.rev5-calendar-period-heading>*{
  grid-area:auto!important;
  grid-column:1!important;
  grid-row:auto!important;
}

/* ========================================================================== */
/* Stage0031 C2 R7 REV5 R2 — final user-approved minor UI corrections         */
/* ========================================================================== */

/* Permission toolbar: role select and search input share the same control geometry. */
.rev4-permission-toolbar{
  align-items:end!important;
  column-gap:var(--rev5-control-gap-x)!important;
  row-gap:var(--rev5-control-gap-y)!important;
}
.rev4-permission-toolbar>.sams-field{
  display:grid!important;
  grid-template-rows:minmax(min-content,auto) var(--rev5-control-height)!important;
  align-content:end!important;
  gap:var(--rev5-label-control-gap)!important;
  min-width:0!important;
  margin:0!important;
}
.rev4-permission-toolbar>.sams-field>.sams-field-label{
  display:flex!important;
  align-items:center!important;
  min-height:20px!important;
  margin:0!important;
  line-height:1.35!important;
}
.rev4-permission-toolbar>.sams-field>select,
.rev4-permission-toolbar>.sams-field>input[type="search"]{
  box-sizing:border-box!important;
  width:100%!important;
  height:var(--rev5-control-height)!important;
  min-height:var(--rev5-control-height)!important;
  max-height:var(--rev5-control-height)!important;
  margin:0!important;
  line-height:normal!important;
}

/* Planner final approved layout: operation date -> date field -> Previous/Today/Next. */
.rev5-planner-date-block{
  display:grid!important;
  justify-items:center!important;
  align-content:start!important;
  gap:10px!important;
  padding:2px 0 6px!important;
}
.rev5-planner-date-label{
  display:block!important;
  margin:0!important;
  text-align:center!important;
  font-weight:700!important;
  line-height:1.35!important;
}
.rev5-planner-date-control{
  display:grid!important;
  width:210px!important;
  min-width:210px!important;
  max-width:210px!important;
  justify-items:stretch!important;
  gap:0!important;
}
.rev5-planner-date-control .stage24-date-field{
  width:210px!important;
  min-width:210px!important;
  max-width:210px!important;
  grid-template-columns:minmax(0,1fr) 32px!important;
  justify-self:stretch!important;
}
.rev5-planner-date-navigation{
  display:inline-grid!important;
  grid-template-columns:82px 82px 82px!important;
  align-items:center!important;
  justify-content:center!important;
  column-gap:10px!important;
  row-gap:0!important;
  width:max-content!important;
  max-width:100%!important;
  margin:0!important;
}
.rev5-planner-date-navigation>button{
  box-sizing:border-box!important;
  width:82px!important;
  min-width:82px!important;
  max-width:82px!important;
  min-height:var(--rev5-control-height)!important;
  margin:0!important;
}
.rev5-planner-today{min-width:82px!important}

@media(max-width:680px){
  .rev5-planner-date-control,
  .rev5-planner-date-control .stage24-date-field{
    width:min(210px,calc(100vw - 56px))!important;
    min-width:0!important;
    max-width:210px!important;
  }
  .rev5-planner-date-navigation{
    grid-template-columns:72px 72px 72px!important;
    column-gap:8px!important;
    width:max-content!important;
  }
  .rev5-planner-date-navigation>button,
  .rev5-planner-today{
    width:72px!important;
    min-width:72px!important;
    max-width:72px!important;
    padding-inline:8px!important;
  }
}


/* ========================================================================== */
/* Stage0031 C2 R7 REV5 R3 — Modal V2 + targeted approved UI corrections      */
/* ========================================================================== */

/* Modal V2: every dialog owns one overlay host in the same top-layer context. */
dialog.modal-v2-root{overflow:visible!important}
dialog.modal-v2-root>.modal-v2-overlay-host{
  position:fixed!important;inset:0!important;z-index:2147483500!important;
  pointer-events:none!important;overflow:visible!important;
}
dialog.modal-v2-root>.modal-v2-overlay-host>.selector-v2-popover{pointer-events:auto!important;z-index:1!important}
dialog.modal-v2-root>.modal-form,
dialog.modal-v2-root>.stage19-dialog-card,
dialog.modal-v2-root>.board-editor-card,
dialog.modal-v2-root>.board-detail-card{max-block-size:calc(100dvh - 32px);overflow:auto}

/* School/assignee selection summaries inside Modal V2 stay independent rows. */
dialog.modal-v2-root .selector-v2-summary{inline-size:100%;min-inline-size:0}
dialog.modal-v2-root .selector-v2-chip{min-block-size:28px!important}

/* School-user management: selector search and selected-school result are distinct. */
.rev5-admin-user-filter .selector-v2-summary{display:grid}
.rev5-admin-school-selection-row{margin-top:10px;width:100%}

/* Maintenance target table: the final header and action group share one center axis. */
.c5-target-table .rev5-target-action-head,
.c5-target-table .rev5-target-action-cell{text-align:center!important}
.c5-target-table .rev5-target-action-cell{vertical-align:middle!important;white-space:nowrap}
.c5-target-table .rev5-target-action-cell>button{margin-inline:3px}

/* Vehicle and availability filter labels/controls use explicit local field rhythm. */
.rev4-vehicle-filter>.sams-field,
.rev4-availability-fields>.sams-field{
  display:grid!important;grid-template-rows:auto minmax(var(--rev5-control-height),auto)!important;
  align-content:end!important;gap:8px!important;min-width:0!important;
}
.rev4-vehicle-filter>.sams-field>.sams-field-label,
.rev4-availability-fields>.sams-field>.sams-field-label{margin:0!important;line-height:1.35!important}
.rev4-vehicle-filter>.sams-field>input:not([type="checkbox"]),
.rev4-vehicle-filter>.sams-field>select,
.rev4-vehicle-filter>.sams-field>.stage24-date-field{
  box-sizing:border-box!important;min-height:var(--rev5-control-height)!important;height:var(--rev5-control-height)!important;
}
.rev4-vehicle-filter>.sams-field>.stage24-date-field input{height:100%!important}

/* Availability selection is a full-width row; navigation sits below the filter body. */
.rev5-availability-filter{gap:12px!important}
.rev5-availability-filter .rev4-availability-fields{align-items:end!important}
.rev5-availability-filter .rev4-availability-fields .selector-v2-summary{display:none!important}
.rev5-availability-selection-row{width:100%!important;margin:0!important}
.rev5-availability-bottom{
  display:grid!important;grid-template-columns:auto minmax(280px,1fr) auto!important;
  align-items:end!important;gap:16px!important;padding-top:2px!important;
}
.rev5-availability-bottom>.rev4-view-tabs{grid-column:1!important;align-self:end!important}
.rev5-availability-period{grid-column:2!important;display:grid!important;justify-items:center!important;gap:8px!important}
.rev5-availability-month-title{line-height:1.35!important;text-align:center!important}
.rev5-availability-month-nav{display:flex!important;justify-content:center!important;gap:8px!important}

/* Planner: A/B/C are three independent groups placed exactly as separate siblings. */
.rev5-r3-planner-page{gap:10px!important}
.rev5-r3-planner-control{
  display:grid!important;
  grid-template-columns:minmax(280px,.9fr) minmax(360px,1.15fr) minmax(320px,1fr)!important;
  align-items:start!important;gap:28px!important;padding:18px 22px!important;
  min-height:0!important;height:auto!important;
}
.rev5-r3-planner-group{display:grid!important;align-content:start!important;gap:10px!important;min-width:0!important;padding:0!important;margin:0!important}
.rev5-r3-planner-date-line{display:flex!important;align-items:center!important;gap:12px!important;min-height:44px!important}
.rev5-r3-planner-date-line>strong{white-space:nowrap!important}
.rev5-r3-planner-date-control{width:170px!important;min-width:170px!important}
.rev5-r3-planner-date-control .stage24-date-field{width:100%!important;height:44px!important}
.rev5-r3-planner-date-nav,
.rev5-r3-planner-group-actions,
.rev5-r3-planner-excel-actions{display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important}
.rev5-r3-planner-date-nav>button,
.rev5-r3-planner-group-actions>button,
.rev5-r3-planner-excel-actions>button,
.rev5-r3-planner-excel-actions>.link-button{min-height:44px!important;box-sizing:border-box!important}
.rev5-r3-planner-plan-copy{display:grid!important;gap:4px!important;min-height:44px!important;align-content:center!important}
.rev5-r3-planner-plan-copy>strong{font-size:1rem!important}
.rev5-r3-planner-excel-group{justify-items:end!important;padding-top:44px!important}
.rev5-r3-planner-excel-actions{justify-content:flex-end!important}
.rev5-r3-planner-control + .r7-conflict-summary{margin-top:0!important}

/* Signup: the helper text is a separate full-width row and never stretches inputs. */
.registration-identity-row{align-items:start!important}
.registration-identity-row>label{display:grid!important;grid-template-rows:auto 48px!important;gap:8px!important;align-content:start!important}
.registration-identity-row>label>span{margin:0!important;line-height:1.35!important}
.registration-identity-row input{height:48px!important;min-height:48px!important;box-sizing:border-box!important}
.registration-contact-helper{margin:-4px 0 0!important;padding:0!important;line-height:1.5!important;font-size:.88rem!important}

@media(max-width:1050px){
  .rev5-r3-planner-control{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .rev5-r3-planner-excel-group{grid-column:1/-1!important;justify-items:start!important;padding-top:0!important}
  .rev5-r3-planner-excel-actions{justify-content:flex-start!important}
}
@media(max-width:760px){
  .rev5-r3-planner-control{grid-template-columns:1fr!important;gap:18px!important}
  .rev5-r3-planner-excel-group{grid-column:auto!important}
  .rev5-availability-bottom{grid-template-columns:1fr!important;justify-items:center!important}
  .rev5-availability-bottom>.rev4-view-tabs,.rev5-availability-period{grid-column:1!important}
}

/* ========================================================================== */
/* Stage0031 C2 R7 REV5 R4 — approved organization / permission / ops UI      */
/* ========================================================================== */
.r4-domain-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px;padding:4px;border:1px solid var(--border-default);border-radius:12px;background:var(--surface-subtle)}
.r4-domain-tab{min-height:40px;padding:8px 14px;border-radius:9px;border:0;background:transparent;color:var(--text-secondary);font-weight:700;cursor:pointer}
.r4-domain-tab.active,.r4-domain-tab[aria-current="page"]{background:var(--brand-soft);color:var(--brand-text);box-shadow:inset 0 0 0 1px var(--brand-border);font-weight:800}
.r4-inline-create{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0}
.r4-selector-title-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,170px);align-items:center;gap:10px}
.r4-selector-load-state{width:100%;border:0;border-top:1px solid var(--border-default);border-radius:0;background:var(--surface-card);cursor:pointer;text-align:center}
.r4-selector-load-state:disabled{cursor:default}
.r4-selector-load-state.is-error{font-weight:700}
.r4-organization-popover{min-width:min(520px,calc(100vw - 24px))}
.r4-reference-toolbar,.r4-list-filter{display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding:14px;margin-bottom:12px}
.r4-list-filter>input[type="search"]{flex:1 1 260px;min-width:180px}
.r4-list-filter>select{min-width:150px}
.r4-system-management,.r4-internal-page{display:grid;gap:12px}
.r4-system-host{min-width:0}
.r4-role-permission-head,.r4-role-permission-row{grid-template-columns:minmax(250px,1.45fr) repeat(2,minmax(100px,.38fr)) minmax(140px,.55fr) minmax(110px,.45fr)!important}
.r4-user-permission-head,.r4-user-permission-row{grid-template-columns:minmax(250px,1.45fr) repeat(3,minmax(105px,.38fr)) minmax(140px,.55fr) minmax(110px,.45fr)!important}
.r4-effective-permission{display:grid;gap:10px;margin-top:16px;padding:14px}
.r4-effective-grid{display:flex;gap:8px;flex-wrap:wrap}
.r4-effective-chip{display:inline-flex;align-items:center;min-height:30px;padding:5px 9px;border:1px solid var(--border-default);border-radius:999px;background:var(--surface-subtle);font-size:.86rem}
.r4-attachment-upload{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.r4-attachment-list{display:grid;gap:8px;min-width:0}
.r4-attachment-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--border-default);border-radius:10px;background:var(--surface-subtle)}
.r4-attachment-row>div{display:grid;gap:3px;min-width:0}.r4-attachment-row strong{overflow-wrap:anywhere}
.r4-workspace-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.r4-workspace-card{display:grid;gap:12px;align-content:start;min-width:0}
.r4-workspace-card p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}
.r4-adhoc-chip{border-style:dashed}

@media(max-width:900px){
  .r4-role-permission-head,.r4-role-permission-row,.r4-user-permission-head,.r4-user-permission-row{grid-template-columns:minmax(200px,1fr) repeat(3,minmax(82px,.4fr))!important;overflow-x:auto}
  .r4-role-permission-head>*:nth-last-child(-n+2),.r4-role-permission-row>*:nth-last-child(-n+2),.r4-user-permission-head>*:nth-last-child(-n+2),.r4-user-permission-row>*:nth-last-child(-n+2){min-width:120px}
}
@media(max-width:680px){
  .r4-domain-tabs{display:grid;grid-template-columns:1fr 1fr}
  .r4-domain-tab{width:100%}
  .r4-selector-title-row{grid-template-columns:1fr}
  .r4-inline-create,.r4-attachment-upload{grid-template-columns:1fr}
  .r4-role-permission-head,.r4-user-permission-head{display:none!important}
  .r4-role-permission-row,.r4-user-permission-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
  .r4-role-permission-row>.rev4-permission-name,.r4-user-permission-row>.rev4-permission-name{grid-column:1/-1}
  .r4-role-permission-row>.r7-permission-scope,.r4-user-permission-row>.r7-permission-scope{grid-column:1/2!important;width:100%!important}
  .r4-role-permission-row>.r7-scope-school-button,.r4-user-permission-row>.r7-scope-school-button{grid-column:2/3!important}
  .r4-attachment-row{grid-template-columns:1fr}.r4-attachment-row>.link-button{justify-self:start}
}

/* --------------------------------------------------------------------------
 * Stage0031 C2 R7 REV5 R5 — component contracts added by the approved scope.
 * These are component-owned rules; legacy global responsive rules are not
 * expanded or reintroduced.
 * -------------------------------------------------------------------------- */
.r5-managed-reference{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-width:0}
.r5-managed-reference>select{min-width:0;width:100%}
.r5-managed-reference>button{align-self:stretch}

.rev5-admin-school-selection-row{display:grid;width:100%;margin-top:10px}

.r5-qr-admin{display:grid;gap:14px}
.r5-qr-filter{display:grid;grid-template-columns:minmax(210px,1.15fr) minmax(220px,.9fr) minmax(300px,1.4fr) minmax(140px,.55fr) auto;gap:10px;align-items:end}
.r5-qr-filter>label{min-width:0}
.r5-qr-filter .selector-v2-summary{display:none}
.r5-qr-admin>.selector-v2-summary{grid-column:1/-1;width:100%}
.r5-query-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end}
.r5-qr-batch-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0 10px;padding:10px 12px;border:1px solid var(--border-default);border-radius:10px;background:var(--surface-subtle)}
.r5-qr-batch-actions strong{margin-right:auto}
.r5-qr-select-all{display:inline-flex;align-items:center;gap:7px;font-weight:700;color:var(--text-secondary)}
.r5-qr-select-all input{inline-size:18px;block-size:18px}
.r5-qr-results .r5-data-table th,.r5-qr-results .r5-data-table td{text-align:center;vertical-align:middle}
.r5-qr-results .r5-data-table td:nth-child(2){text-align:left}

.r5-rental-date-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}
.r5-rental-date-pair>label{min-width:0}

.r5-attachment-preview-dialog{inline-size:min(1120px,calc(100vw - 32px));max-inline-size:min(1120px,calc(100vw - 32px))}
.r5-attachment-preview-frame{box-sizing:border-box;width:100%;min-height:min(70vh,760px);border:1px solid var(--border-default);border-radius:12px;background:var(--surface-card)}
.r4-attachment-row{grid-template-columns:minmax(0,1fr) auto}
.r4-attachment-row>.r5-inline-actions{justify-content:flex-end}

/* Local filter families only: wide -> narrow -> wrap -> stack. */
.support-filter-card,.rev4-guide-filter,.c3-maintenance-filter{min-width:0}
.support-filter-card>* ,.rev4-guide-filter>* ,.c3-maintenance-filter>*{min-width:0}

@media (max-width:1180px){
  .r5-qr-filter{grid-template-columns:repeat(2,minmax(0,1fr))}
  .r5-query-actions{grid-column:1/-1;justify-content:flex-end}
}
@media (max-width:720px){
  .r5-managed-reference{grid-template-columns:1fr}
  .r5-managed-reference>button{width:100%}
  .r5-qr-filter{grid-template-columns:1fr}
  .r5-query-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr}
  .r5-rental-date-pair{grid-template-columns:1fr}
  .r5-attachment-preview-dialog{inline-size:calc(100vw - 16px);max-inline-size:calc(100vw - 16px)}
  .r5-attachment-preview-frame{min-height:62dvh}
  .r4-attachment-row{grid-template-columns:1fr}
  .r4-attachment-row>.r5-inline-actions{justify-content:flex-start;flex-wrap:wrap}
}

/* ========================================================================== */
/* Stage0031 C2 R7 REV5 R6 — targeted completion contracts                    */
/* ========================================================================== */
.r6-responsive-filter{display:flex;align-items:end;gap:10px;flex-wrap:wrap;min-width:0}
.r6-responsive-filter>.sams-field{flex:0 1 auto;min-width:0}
.r6-responsive-filter>.sams-field:has(input[type="search"]){flex:1 1 260px;min-width:min(260px,100%)}
.r6-responsive-filter>.sams-field:has(input[type="date"]){flex:0 1 170px}
.r6-responsive-filter>.sams-field:has(select){flex:0 1 190px}
.r6-query-action-group{display:flex;align-items:end;gap:8px;flex:0 0 auto;min-height:44px}
.r6-query-action-group>button,.r6-query-action-group>a{min-height:44px;box-sizing:border-box}
.r6-reference-page-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;margin-bottom:12px}
.r6-reference-page-head>.admin-list-toolbar{margin:0}
.r6-storage-limit-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px}
.r6-inline-check{align-self:end;min-height:44px;padding:0 4px}
.r6-center-axis{text-align:center!important;vertical-align:middle!important}
.r6-center-axis>.r5-inline-actions{justify-content:center!important}
.r5-attachment-toolbar{display:grid!important;grid-template-columns:auto minmax(240px,1fr) auto!important;align-items:end!important;gap:16px!important;margin:16px 0 20px!important;padding:16px!important;border:1px solid var(--border-default)!important;border-radius:12px!important;background:var(--surface-subtle)!important}
.r5-batch-result{display:grid;gap:14px;margin-top:6px}
.r6-availability-calendar{grid-auto-rows:minmax(132px,132px)!important}
.r6-availability-calendar .rev4-availability-day{min-height:132px!important;max-height:132px!important;overflow:hidden!important;align-content:start!important}
.r6-availability-day-head{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;min-height:26px}
.r6-availability-day-head .stage30-holiday-name{max-width:75%;text-align:right;font-size:.72rem;line-height:1.2}
.r6-availability-calendar .rev4-availability-event{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;border:0;cursor:pointer}
.r6-calendar-overflow{font-size:.78rem;font-weight:800;color:var(--text-secondary);padding:2px 4px}
.rev4-availability-day.sunday>strong,.rev4-availability-day.sunday .r6-availability-day-head>strong,.rev4-availability-day.holiday>strong,.rev4-availability-day.holiday .r6-availability-day-head>strong{color:var(--danger-text,#d92d20)}
.rev4-availability-day.saturday>strong,.rev4-availability-day.saturday .r6-availability-day-head>strong{color:var(--brand-text,#2864e8)}
.rev4-availability-event.kind-leave{background:color-mix(in srgb,var(--brand-soft) 88%,transparent)!important}
.rev4-availability-event.kind-am_half_day{background:rgba(245,158,11,.16)!important}
.rev4-availability-event.kind-pm_half_day{background:rgba(139,92,246,.16)!important}
.rev4-availability-event.kind-quarter_day{background:rgba(20,184,166,.16)!important}
.rev4-availability-event.kind-unavailable{background:rgba(244,63,94,.14)!important}
@media(max-width:1024px){
  .r6-reference-page-head{grid-template-columns:1fr}.r6-reference-page-head>.page-header-actions{justify-self:start}
  .r6-responsive-filter>.sams-field:has(input[type="search"]){flex:1 1 320px}
  .r5-attachment-toolbar{grid-template-columns:1fr 1fr}.r5-attachment-toolbar input[type="file"]{grid-column:1/-1}
}
@media(max-width:680px){
  .r6-responsive-filter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}
  .r6-responsive-filter>.sams-field,.r6-responsive-filter>.sams-field:has(input[type="search"]),.r6-responsive-filter>.sams-field:has(input[type="date"]),.r6-responsive-filter>.sams-field:has(select){min-width:0;width:100%;flex:none}
  .r6-responsive-filter>.sams-field:has(input[type="search"]){grid-column:1/-1}
  .r6-query-action-group{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;width:100%}
  .r6-query-action-group>button,.r6-query-action-group>a{width:100%}
  .r6-storage-limit-grid{grid-template-columns:1fr}
  .r5-attachment-toolbar{grid-template-columns:1fr}.r5-attachment-toolbar input[type="file"]{grid-column:auto}
  .r6-availability-calendar{grid-auto-rows:minmax(122px,122px)!important;min-width:760px}
  .rev4-availability-page:has(.r6-availability-calendar){overflow-x:auto}
}

/* Stage0031 C2 R7 REV5 R6 — General schedule DateTime Range UI recovery.
   Keep the schedule mode independent from the date/time range so date values and
   native picker icons are never squeezed into unreadable controls. */
.stage30-general-schedule-form .c6-schedule-editor--general{
  grid-template-columns:minmax(0,1fr)!important;
  align-items:stretch!important;
  gap:14px!important;
  container-type:inline-size;
}
.stage30-general-schedule-form .c6-schedule-editor--general>label:first-child{
  width:min(240px,100%);
  max-width:240px;
}
.stage30-general-schedule-form .c6-schedule-editor--general .c6-schedule-date-range{
  grid-template-columns:repeat(2,minmax(180px,1fr));
  gap:14px;
}
.stage30-general-schedule-form .c6-paired-datetime-range{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  min-width:0;
}
.stage30-general-schedule-form .c6-schedule-endpoint{
  flex:1 1 250px;
  min-width:min(250px,100%);
  display:grid;
  gap:7px;
}
.stage30-general-schedule-form .c6-schedule-endpoint-title{
  color:var(--text-secondary);
  font-size:13px;
  line-height:1.35;
  font-weight:800;
}
.stage30-general-schedule-form .c6-schedule-endpoint-controls{
  display:grid;
  grid-template-columns:minmax(160px,1fr) minmax(100px,116px);
  gap:10px;
  align-items:end;
  min-width:0;
}
.stage30-general-schedule-form .c6-schedule-endpoint-controls>label,
.stage30-general-schedule-form .c6-schedule-date-range>label{
  min-width:0;
}
.stage30-general-schedule-form .c6-schedule-editor--general .stage24-date-field,
.stage30-general-schedule-form .c6-schedule-editor--general .stage25-date-field{
  min-width:160px!important;
}
.stage30-general-schedule-form .c6-schedule-editor--general input[type="time"]{
  min-width:100px!important;
}
@container (max-width:560px){
  .stage30-general-schedule-form .c6-schedule-editor--general .c6-schedule-date-range{
    grid-template-columns:1fr;
  }
  .stage30-general-schedule-form .c6-schedule-endpoint{
    flex-basis:100%;
  }
}
@container (max-width:330px){
  .stage30-general-schedule-form .c6-schedule-endpoint-controls{
    grid-template-columns:1fr;
  }
  .stage30-general-schedule-form .c6-schedule-editor--general .stage24-date-field,
  .stage30-general-schedule-form .c6-schedule-editor--general .stage25-date-field,
  .stage30-general-schedule-form .c6-schedule-editor--general input[type="time"]{
    min-width:0!important;
    width:100%!important;
  }
}


/* Stage0031 C2 R7 REV5 R6 REV1 — exact Responsive Filter/Layout Review package targets.
   Scoped only to 문의·요청 / 작업·점검 / 운영 안내; no global control shrinking. */
.r6r1-responsive-target{min-width:0;max-width:100%;overflow:hidden}
.r6r1-responsive-target .r5-filter-secondary{min-width:0!important}
.r6r1-responsive-target .r5-date-action-cluster{min-width:0!important}
.r6r1-responsive-target .r5-date-quick-actions,.r6r1-responsive-target .r5-date-commit-actions{min-width:0!important}

@media (min-width:681px) and (max-width:1450px){
  .support-filter-card.r6r1-responsive-target .r5-filter-secondary,
  .c4-filter-card.r6r1-responsive-target .r5-filter-secondary{
    grid-template-columns:minmax(145px,180px) minmax(145px,180px) minmax(100px,125px)!important;
  }
  .support-filter-card.r6r1-responsive-target .r5-date-action-cluster,
  .c4-filter-card.r6r1-responsive-target .r5-date-action-cluster{
    grid-column:1/-1!important;display:flex!important;flex-wrap:wrap!important;gap:10px 12px!important;align-items:center!important;
  }
  .support-filter-card.r6r1-responsive-target .r5-date-quick-actions,
  .c4-filter-card.r6r1-responsive-target .r5-date-quick-actions{display:flex!important;flex-wrap:wrap!important;gap:8px!important}
  .support-filter-card.r6r1-responsive-target .r5-date-commit-actions,
  .c4-filter-card.r6r1-responsive-target .r5-date-commit-actions{display:flex!important;flex-wrap:nowrap!important;gap:8px!important;margin-left:0!important}
  .rev4-guide-filter.r6r1-responsive-target{grid-template-columns:minmax(280px,1fr) minmax(170px,210px) minmax(170px,210px)!important}
  .rev4-guide-filter.r6r1-responsive-target>.rev4-guide-archive-check{grid-column:1/2!important}
  .rev4-guide-filter.r6r1-responsive-target>.rev4-filter-actions{grid-column:2/4!important;margin-left:0!important;justify-self:start!important}
}

@media (max-width:680px){
  .support-filter-card.r6r1-responsive-target .r5-filter-secondary,
  .c4-filter-card.r6r1-responsive-target .r5-filter-secondary{
    display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;
  }
  .support-filter-card.r6r1-responsive-target .r5-filter-secondary>.sams-field:nth-child(3),
  .c4-filter-card.r6r1-responsive-target .r5-filter-secondary>.sams-field:nth-child(3){grid-column:1/2}
  .support-filter-card.r6r1-responsive-target .r5-date-action-cluster,
  .c4-filter-card.r6r1-responsive-target .r5-date-action-cluster{grid-column:1/-1!important;display:grid!important;gap:10px!important}
  .support-filter-card.r6r1-responsive-target .r5-date-quick-actions,
  .c4-filter-card.r6r1-responsive-target .r5-date-quick-actions{display:flex!important;flex-wrap:wrap!important;gap:8px!important}
  .support-filter-card.r6r1-responsive-target .r5-date-quick-actions>button,
  .c4-filter-card.r6r1-responsive-target .r5-date-quick-actions>button{flex:0 0 auto!important;width:auto!important;min-width:0!important}
  .support-filter-card.r6r1-responsive-target .r5-date-commit-actions,
  .c4-filter-card.r6r1-responsive-target .r5-date-commit-actions{display:flex!important;flex-wrap:nowrap!important;gap:8px!important;margin-left:0!important}
  .support-filter-card.r6r1-responsive-target .r5-date-commit-actions>button,
  .c4-filter-card.r6r1-responsive-target .r5-date-commit-actions>button{flex:1 1 0!important;width:auto!important}
  .rev4-guide-filter.r6r1-responsive-target{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .rev4-guide-filter.r6r1-responsive-target>label:first-child{grid-column:1/-1!important}
  .rev4-guide-filter.r6r1-responsive-target>.rev4-guide-archive-check{grid-column:1/-1!important}
  .rev4-guide-filter.r6r1-responsive-target>.rev4-filter-actions{grid-column:1/-1!important;display:flex!important;gap:8px!important;margin-left:0!important}
}

@media (max-width:420px){
  .support-filter-card.r6r1-responsive-target .support-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .support-filter-card.r6r1-responsive-target .support-filter-grid>label:first-child{grid-column:1/-1!important}
  .rev4-guide-filter.r6r1-responsive-target{grid-template-columns:1fr!important}
  .rev4-guide-filter.r6r1-responsive-target>*{grid-column:1!important}
}

/* R6 REV2 — Selector/Selected-Chip physical separation. */
.sams-field-with-summary{display:grid;gap:10px;min-width:0;align-content:start}
.sams-field-with-summary>.sams-field{min-width:0;margin:0}
.sams-field-with-summary>.selector-v2-summary{margin:0;min-width:0}
.intake-top-grid>.sams-field-with-summary,.stage30-general-schedule-form>.sams-field-with-summary,.rev5-modal-form>.sams-field-with-summary{min-width:0}

/* R6 REV2 — Planner control remains structurally unchanged; only center the existing card on the calendar/content axis. */
.rev5-r3-planner-control{width:min(100%,1180px)!important;margin-inline:auto!important;box-sizing:border-box!important}

/* R6 REV2 — filename-first attachment list cells. */
.r6-attachment-summary{display:grid;gap:5px;min-width:0;max-width:100%}
.r6-attachment-name{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-width:0;padding:0;border:0;background:transparent;color:var(--brand-text,var(--primary));font:inherit;text-align:left;cursor:pointer}
.r6-attachment-name>span{display:block;min-width:0;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.r6-attachment-more{justify-self:start;padding:0;border:0;background:transparent;color:var(--brand-text,var(--primary));font-size:.82rem;font-weight:700;cursor:pointer}

/* R6 REV2 — QR name column centerline only; other columns retain their existing alignment. */
.r5-qr-name-head,.r5-qr-name-cell{text-align:center!important}
.r5-qr-name-cell{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* R6 REV2 — profile/settings dialogs. */
.r6-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.r6-profile-grid>.span-2{grid-column:1/-1}
.r6-profile-school-summary{grid-column:1/-1}
.r6-request-list{display:grid;gap:8px;max-height:360px;overflow:auto}
.r6-request-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--border-default);border-radius:10px}
@media(max-width:700px){.r6-profile-grid{grid-template-columns:1fr}.r6-profile-grid>.span-2{grid-column:auto}.r6-attachment-name>span{max-width:210px}}

/*
 * 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}
}

/* ========================================================================== */
/* Stage0031 C2 R7 REV5 R6 REV3 — explicit UI-01..UI-11 scope only.          */
/* Do not generalize these rules to unrelated screens/components.             */
/* ========================================================================== */

/* UI-01: restore the Planner control to the predecessor's full content width. */
.rev5-r3-planner-control{
  width:100%!important;
  max-width:none!important;
  margin-inline:0!important;
}

/* UI-02: only the publish start/end controls in the Operations Guide modal. */
@media(min-width:621px){
  .r6rev3-guide-datetime{
    grid-template-columns:150px minmax(106px,142px)!important;
    justify-content:start!important;
    column-gap:8px!important;
  }
}

/* UI-03 / UI-08: selected-chip summaries are independent from selectors. */
.r6rev3-selection-summary-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  width:100%;
  min-width:0;
  grid-column:1/-1;
}
.r6rev3-selection-summary-row.single{grid-template-columns:1fr}
.r6rev3-selection-summary-row>.selector-v2-summary{min-width:0;margin:0}
@media(max-width:650px){
  .r6rev3-selection-summary-row{grid-template-columns:1fr}
}

/* UI-04: quarter-day date/start/end controls share one desktop row only. */
@media(min-width:701px){
  .r6rev3-quarter-day-row{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}

/* UI-06: add breathing room only between rental date labels and date controls. */
.r6rev3-rental-date-pair>.sams-field{display:grid!important;gap:12px!important}
.r6rev3-rental-date-pair>.sams-field>.sams-field-label{display:block!important;margin:0!important}

/* UI-07: Technical Library table data follows each header's center axis only. */
.r6rev3-technical-table th,
.r6rev3-technical-table td{text-align:center!important;vertical-align:middle!important}
.r6rev3-technical-table .r6-attachment-summary{justify-items:center!important}
.r6rev3-technical-table .r6-attachment-name,
.r6rev3-technical-table .r6-attachment-more{justify-self:center!important;text-align:center!important}

/* UI-09: My Profile notification toggles occupy the same grid cell/row. */
.r6rev3-profile-notification-toggles{
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
  min-width:0;
}
.r6rev3-profile-notification-toggles>.login-remember-row{margin:0}
@media(min-width:701px){
  .r6rev3-profile-notification-toggles{flex-wrap:nowrap}
}

/* UI-10: view buttons remain left; month title/navigation use exact grid center. */
@media(min-width:761px){
  .rev5-availability-bottom{
    width:100%!important;
    flex:1 0 100%!important;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;
  }
  .rev5-availability-bottom>.rev4-view-tabs{
    grid-column:1!important;
    justify-self:start!important;
  }
  .rev5-availability-period{
    grid-column:2!important;
    justify-self:center!important;
  }
}

/* UI-11: center only the QR column's row action group beneath its header. */
.r6rev3-qr-axis{text-align:center!important}
.r6rev3-qr-axis>.r6-qr-download-actions,
.r6rev3-qr-axis .r6-qr-download-actions{justify-content:center!important}


/* ========================================================================== */
/* Stage0031 C2 R7 REV5 R6 REV4 — explicit target-only UI corrections.       */
/* No global component, breakpoint, color, typography, table or modal change. */
/* ========================================================================== */
.r6rev4-target-control > input,
.r6rev4-target-control > select,
.r6rev4-target-control > .stage24-date-field,
.r6rev4-target-control > .selector-v2,
.r6rev4-target-control > .r5-managed-reference,
.r6rev4-control-height-group > .sams-field > input,
.r6rev4-control-height-group > .sams-field > select,
.r6rev4-control-height-group > .sams-field > .stage24-date-field,
.r6rev4-control-height-group > .sams-field > .selector-v2,
.r6rev4-control-height-group > .sams-field > .r5-managed-reference{
  box-sizing:border-box;
  min-height:44px;
}
.r6rev4-target-control > input,
.r6rev4-target-control > select,
.r6rev4-target-control > .stage24-date-field,
.r6rev4-control-height-group > .sams-field > input,
.r6rev4-control-height-group > .sams-field > select,
.r6rev4-control-height-group > .sams-field > .stage24-date-field{
  height:44px;
}
.r6rev4-target-control .selector-v2 > input,
.r6rev4-target-control .r5-managed-reference > select,
.r6rev4-control-height-group .selector-v2 > input,
.r6rev4-control-height-group .r5-managed-reference > select{
  box-sizing:border-box;
  min-height:44px;
  height:44px;
}
.r6rev4-target-control .stage24-date-field > input[type="text"],
.r6rev4-control-height-group .stage24-date-field > input[type="text"]{
  box-sizing:border-box;
  min-height:44px;
  height:44px;
  line-height:1.25;
}
.r6rev4-target-actions > button,
.r6rev4-control-height-group .r6rev4-target-actions > button{
  box-sizing:border-box;
  min-height:44px;
  height:44px;
}
.r6rev4-checkbox-track{
  box-sizing:border-box;
  min-height:44px;
  height:44px;
  display:inline-flex;
  align-items:center;
}
.r6rev4-checkbox-track > input[type="checkbox"]{
  width:auto;
  height:auto;
  min-height:0;
}
.r6rev4-action-axis{
  text-align:center;
  vertical-align:middle;
}
.r6rev4-action-axis > .r5-inline-actions,
.r6rev4-action-axis > .stage30-maintenance-row-actions{
  justify-content:center;
  align-items:center;
}
.r6rev4-sticker-fields{
  display:grid;
  row-gap:18px;
}
.r6rev4-sticker-fields .r5-form-three{
  row-gap:16px;
}
.r6rev4-sticker-fields .sams-field{
  gap:6px;
}
.r6rev4-support-contact{
  align-items:start;
  row-gap:14px;
}
.r6rev4-support-contact .sams-field{
  width:min(100%,320px);
}
.r6rev4-support-contact input[type="tel"]{
  width:100%;
  max-width:320px;
}
.r6rev4-support-contact > button{
  margin-top:10px;
}
.r6rev4-orgtype-toolbar,
.r6rev4-external-org-toolbar{
  display:flex;
  align-items:end;
  flex-wrap:wrap;
  gap:10px;
}
.r6rev4-reprint-status{
  white-space:nowrap;
}

/* ========================================================================== */
/* Stage0031 C2 R7 REV5 R6 REV5 — latest explicit target-only UI completion. */
/* Scope lock: no global component, color, typography or breakpoint changes. */
/* ========================================================================== */
.r6rev5-external-org-toolbar > input[type="search"],
.r6rev5-external-org-toolbar > select,
.r6rev5-external-org-toolbar > button{
  box-sizing:border-box;
  min-height:44px;
  height:44px;
  line-height:1.25;
}
.r6rev5-consumable-policy-form{
  display:grid;
  row-gap:14px;
}
.r6rev5-consumable-policy-form > .sams-field{
  gap:6px;
}
.r6rev5-consumable-baseline-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:end;
  gap:14px;
}
.r6rev5-consumable-baseline-row > .sams-field{
  min-width:0;
  gap:6px;
}
.r6rev5-board-pin-field > .r6rev5-board-pin-row{
  box-sizing:border-box;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.r6rev5-board-pin-row > input[type="checkbox"]{
  flex:0 0 auto;
  margin:0;
}
@media(max-width:720px){
  .r6rev5-consumable-baseline-row{grid-template-columns:1fr}
}
/* R6 REV5 explicit board-pin override against legacy !important checkbox row. */
.r6rev5-board-pin-field > .r6rev5-board-pin-row{
  min-height:44px!important;
  height:44px!important;
  gap:8px!important;
  align-items:center!important;
}
label.r6rev5-board-pin-field > .r6rev5-board-pin-row{gap:8px!important}
/* R6 REV5 explicit named-filter control tracks override legacy 42px !important rules only on approved pages. */
.support-request-page .r6rev4-target-control input:not([type="checkbox"]),
.support-request-page .r6rev4-target-control select,
.stage26-maintenance-page .r6rev4-target-control input:not([type="checkbox"]),
.stage26-maintenance-page .r6rev4-target-control select{
  box-sizing:border-box!important;
  min-height:44px!important;
  height:44px!important;
  line-height:1.25!important;
}
.r6rev5-external-org-toolbar > input[type="search"],
.r6rev5-external-org-toolbar > select,
.r6rev5-external-org-toolbar > button{
  min-height:44px!important;
  height:44px!important;
}
/* R6 REV5 baseline pair is label-top aligned; controls remain distinct field groups. */
.r6rev5-consumable-baseline-row{align-items:start}
