
/* Sprint 4: tenant login and dashboard */
.tenant-auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#eef4fb,#f8fafc)}
.tenant-auth-card{width:min(440px,100%);background:#fff;border:1px solid #dbe4ef;border-radius:20px;padding:28px;box-shadow:0 18px 55px rgba(13,39,70,.12)}
.tenant-auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:24px}.tenant-auth-brand h1{margin:0;font-size:1.35rem}.tenant-auth-brand p{margin:3px 0 0;color:#64748b}.tenant-logo{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--brand-primary);color:var(--brand-primary-contrast,#fff);font-weight:800}
.tenant-widget-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.tenant-widget h2{margin-top:0}.tenant-widget dl{display:grid;grid-template-columns:minmax(95px,.7fr) 1.3fr;gap:10px 16px;margin:0}.tenant-widget dt{font-weight:700;color:#475569}.tenant-widget dd{margin:0}.status-pill{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:.8rem;font-weight:800}.status-pill.success{background:#dcfce7;color:#166534}.sidebar nav a.disabled{opacity:.45;pointer-events:none}.form-actions{grid-column:1/-1}

/* Sprint 5: staff administration */
.table-toolbar{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.search-label{display:grid;gap:.35rem;font-weight:700;min-width:min(100%,26rem)}.search-label input{font-weight:400}.record-count{color:#64748b;font-size:.9rem}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;min-width:850px}.data-table th,.data-table td{text-align:left;padding:.9rem .75rem;border-bottom:1px solid #e2e8f0;vertical-align:middle}.data-table th{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.data-table tbody tr:hover{background:#f8fafc}.table-subtext{display:block;color:#64748b;font-size:.86rem;margin-top:.2rem}.row-actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.row-actions form{margin:0}.button.small{padding:.48rem .7rem;font-size:.86rem}.button.danger{background:#b42318;border-color:#b42318;color:#fff}.button.success{background:#16803a;border-color:#16803a;color:#fff}.button.secondary{background:#eef2f7;border-color:#d7dee8;color:#17324d}.status-pill.neutral{background:#eef2f7;color:#52606d}.empty-state{text-align:center;color:#64748b;padding:2rem}.form-span{grid-column:1/-1}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.55rem}.checkbox-row{display:flex!important;align-items:center;gap:.55rem;padding:.65rem .75rem;border:1px solid #d7dee8;border-radius:.55rem;background:#fff}.checkbox-row input{width:auto!important;margin:0}.form-grid select{width:100%;padding:.72rem;border:1px solid #cbd5e1;border-radius:.55rem;background:#fff}
@media(max-width:720px){.page-header{align-items:flex-start}.table-toolbar{align-items:stretch}.search-label{min-width:100%}}

.page-actions{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}.data-table code{font-size:.78rem;background:#eef3f8;border:1px solid #d8e1eb;border-radius:.35rem;padding:.2rem .35rem;white-space:nowrap}

/* Permission Center */
.inline-filter{display:flex;align-items:end;gap:1rem;flex-wrap:wrap}.inline-filter label{min-width:18rem}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem}.permission-module{grid-column:1/-1;margin:1rem 0 0;padding-bottom:.45rem;border-bottom:1px solid var(--border,#d9e0e8);font-size:1rem;text-transform:uppercase;letter-spacing:.06em}.permission-row{display:flex;gap:.75rem;align-items:flex-start;padding:.9rem;border:1px solid var(--border,#d9e0e8);border-radius:.65rem;background:#fff}.permission-row input{margin-top:.2rem}.permission-row span{display:flex;flex-direction:column;gap:.2rem}.permission-row small{color:var(--muted,#64748b);line-height:1.35}.permission-row:has(input:disabled){background:#f5f7fa}@media(max-width:760px){.permission-grid{grid-template-columns:1fr}.inline-filter label{min-width:100%}.section-heading{flex-direction:column}}

/* Session 8 Sprint 1: notifications and broadcast messages */
.nav-badge{margin-left:auto;min-width:1.35rem;height:1.35rem;padding:0 .35rem;border-radius:999px;display:inline-grid;place-items:center;background:#dc2626;color:#fff;font-size:.72rem;font-style:normal;font-weight:800}
.broadcast-banner{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:1rem 1.1rem;border:2px solid;border-radius:.75rem;box-shadow:0 4px 12px rgba(15,23,42,.08)}
.broadcast-banner strong{display:block;font-size:1.05rem;margin-bottom:.25rem}.broadcast-banner p{margin:0;white-space:normal}.broadcast-banner form{flex:0 0 auto;margin:0}
.broadcast-banner.severity-information{background:#eff6ff;border-color:#60a5fa;color:#1e3a8a}.broadcast-banner.severity-warning{background:#fffbeb;border-color:#f59e0b;color:#78350f}.broadcast-banner.severity-critical{background:#fef2f2;border-color:#ef4444;color:#7f1d1d}
.notification-list{display:grid;gap:.85rem}.notification-item{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem;border:1px solid #dbe3ec;border-left:5px solid #94a3b8;border-radius:.7rem;background:#fff}.notification-item.is-unread{background:#f8fbff;border-left-color:var(--brand-primary)}.notification-item.priority-high{border-left-color:#f59e0b}.notification-item.priority-urgent{border-left-color:#dc2626}.notification-item h2{font-size:1.05rem;margin:.4rem 0}.notification-item p{margin:.25rem 0 .7rem}.notification-meta{display:flex;align-items:center;gap:.6rem;color:#64748b;font-size:.82rem}
.form-grid textarea{width:100%;padding:.72rem;border:1px solid #cbd5e1;border-radius:.55rem;resize:vertical;font:inherit}
@media(max-width:720px){.broadcast-banner,.notification-item{flex-direction:column}.broadcast-banner form,.notification-item form{width:100%}.broadcast-banner button,.notification-item button{width:100%}}


/* Dashboard widget framework */
.dashboard-header{align-items:flex-start}.dashboard-header .page-actions{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}.dashboard-header .page-actions form{margin:0}.dashboard-save-status{min-height:1.4rem;margin:-.5rem 0 .5rem;color:#64748b;font-size:.88rem}.dashboard-save-status.success{color:#16794a}.dashboard-save-status.error{color:#b42318}.dashboard-canvas{position:relative;min-height:560px;border:1px dashed #cbd5e1;border-radius:16px;background:linear-gradient(180deg,rgba(248,250,252,.78),rgba(241,245,249,.55));overflow:hidden}.dashboard-widget{position:absolute;margin:0;min-width:260px;min-height:180px;overflow:hidden;box-shadow:0 8px 24px rgba(15,23,42,.08)}.dashboard-widget-handle{display:flex;justify-content:space-between;align-items:center;margin:-1.25rem -1.25rem 1rem;padding:.8rem 1rem;border-bottom:1px solid #e2e8f0;background:#f8fafc;cursor:grab;user-select:none;touch-action:none}.dashboard-widget-handle span{letter-spacing:-3px;color:#64748b}.dashboard-moving,.dashboard-moving *{cursor:grabbing!important;user-select:none!important}.dashboard-widget-body{overflow:auto;height:calc(100% - 2.2rem)}.dashboard-resize-handle{position:absolute;right:3px;bottom:3px;width:22px;height:22px;border:0;background:linear-gradient(135deg,transparent 0 48%,#94a3b8 49% 56%,transparent 57% 66%,#94a3b8 67% 74%,transparent 75%);cursor:nwse-resize;touch-action:none}.modal-backdrop{position:fixed;inset:0;z-index:1000;background:rgba(15,23,42,.58);display:flex;align-items:center;justify-content:center;padding:1rem}.modal-backdrop[hidden]{display:none}.dashboard-widget-manager{width:min(720px,96vw);max-height:88vh;overflow:auto}.modal-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.icon-button{border:0;background:#eef2f7;border-radius:999px;width:36px;height:36px;font-size:1.5rem;line-height:1;cursor:pointer}.widget-choice-list{display:grid;gap:.65rem;margin:1rem 0}.widget-choice{display:flex;align-items:center;gap:.85rem;border:1px solid #dbe3ed;border-radius:12px;padding:.85rem 1rem;background:#fff}.widget-choice input{width:18px;height:18px}.widget-choice span{display:grid;gap:.15rem;flex:1}.widget-choice small{color:#64748b}.widget-choice em{font-style:normal;font-size:.75rem;border-radius:999px;background:#e8f1ff;color:#174ea6;padding:.25rem .55rem}.compact-list{list-style:none;padding:0;margin:0 0 .8rem;display:grid;gap:.6rem}.compact-list li{display:grid;gap:.15rem;padding-bottom:.55rem;border-bottom:1px solid #e5e7eb}.compact-list small,.muted{color:#64748b}@media(max-width:800px){.dashboard-canvas{display:grid;gap:1rem;border:0;background:transparent;overflow:visible;height:auto!important}.dashboard-widget{position:relative!important;left:auto!important;top:auto!important;width:100%!important;height:auto!important;min-height:180px}.dashboard-widget-handle{cursor:default}.dashboard-resize-handle{display:none}}

/* Session 8 Part 4: application shell and responsive improvements */
.sr-only{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}
.mobile-menu-button,.sidebar-backdrop{display:none}
.app-shell .main{width:100%;max-width:none;min-width:0}
.dashboard-canvas{width:100%;min-height:max(640px,calc(100vh - 250px))}
.dashboard-widget{padding:0!important}
.dashboard-widget-handle{box-sizing:border-box;min-height:52px;margin:0;padding:.9rem 1.05rem;line-height:1.25;overflow:visible}
.dashboard-widget-handle strong{display:block;min-width:0;overflow:visible;white-space:normal}
.dashboard-widget-body{box-sizing:border-box;height:calc(100% - 52px);padding:1rem 1.05rem;overflow:auto}
.table-scroll{max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
@media(min-width:1280px){.app-shell .main{padding-left:clamp(2rem,3vw,4rem);padding-right:clamp(2rem,3vw,4rem)}.dashboard-canvas{min-height:max(680px,calc(100vh - 235px))}}
@media(min-width:1700px){.app-shell .main{padding-left:4rem;padding-right:4rem}.dashboard-canvas{min-height:max(740px,calc(100vh - 220px))}}
@media(max-width:800px){
 body.menu-open{overflow:hidden}
 .app-shell{display:block;min-height:100vh}
 .mobile-menu-button{display:grid;place-items:center;position:fixed;z-index:1202;top:12px;left:12px;width:44px;height:44px;border:1px solid rgba(255,255,255,.28);border-radius:12px;background:var(--brand-secondary,#0d2746);color:var(--brand-secondary-contrast,#fff);font-size:1.35rem;box-shadow:0 6px 18px rgba(15,23,42,.22);cursor:pointer}
 .sidebar{position:fixed!important;z-index:1201;inset:0 auto 0 0;width:min(84vw,300px)!important;min-height:100vh;transform:translateX(-105%);transition:transform .22s ease;box-shadow:10px 0 32px rgba(15,23,42,.25);overflow-y:auto}
 .app-shell.menu-open .sidebar{transform:translateX(0)}
 .sidebar-backdrop{display:block;position:fixed;z-index:1200;inset:0;background:rgba(15,23,42,.55);border:0}
 .sidebar-backdrop[hidden]{display:none}
 .app-shell .main{width:100%;padding:72px 1rem 1.25rem!important;margin:0!important}
 .page-header{gap:.75rem}
 .dashboard-header .page-actions{width:100%}
 .dashboard-header .page-actions .button,.dashboard-header .page-actions form{flex:1}
 .dashboard-header .page-actions form .button{width:100%}
 .dashboard-widget{padding:0!important}
 .dashboard-widget-handle{min-height:48px;padding:.8rem 1rem}
 .dashboard-widget-body{height:auto;padding:1rem}
 .table-scroll{margin-left:-.25rem;margin-right:-.25rem;padding-bottom:.4rem}
}
@media(prefers-reduced-motion:reduce){.sidebar{transition:none!important}}


/* Hall Pass settings student pickers and editing controls */
/* Hall Pass settings student pickers */
.row-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.row-actions form{margin:0}.edit-panel{border:1px solid var(--brand-primary);border-radius:12px;padding:1rem;margin-bottom:1rem;background:rgba(20,86,160,.04)}
.student-picker{min-width:0}.student-picker-list{max-height:320px;overflow:auto;border:1px solid #d8e0ea;border-radius:10px;background:#fff;padding:.35rem}.student-picker-list.compact{max-height:240px}.student-picker-row{display:flex;gap:.75rem;align-items:flex-start;padding:.65rem .7rem;border-radius:8px;cursor:pointer}.student-picker-row:hover{background:#f2f6fa}.student-picker-row input{margin-top:.2rem}.student-picker-row span{display:flex;flex-direction:column}.student-picker-row small{color:#607087;margin-top:.15rem}.student-picker-row[hidden]{display:none!important}


/* Hall Pass workspace */
.hall-pass-page-header{align-items:flex-start}.active-pass-strip{background:var(--brand-secondary);color:var(--brand-secondary-contrast,#fff);border-radius:14px;padding:14px 16px;margin-bottom:18px}.active-pass-strip-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.active-pass-strip-heading span{opacity:.78}.active-pass-cards{display:flex;gap:10px;overflow-x:auto;padding-bottom:2px}.active-pass-card{min-width:270px;background:#fff;color:#10213b;border-radius:12px;padding:12px;display:grid;grid-template-columns:1fr auto;gap:8px;border:3px solid transparent}.active-pass-card>div:first-child{display:flex;flex-direction:column}.active-pass-card .pass-timer{font-size:1.25rem;font-weight:800;font-variant-numeric:tabular-nums}.active-pass-card.overdue{border-color:#d9271c;animation:passPulse 1s infinite}.active-pass-actions{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap}.active-pass-actions form{margin:0}@keyframes passPulse{50%{box-shadow:0 0 0 5px rgba(217,39,28,.25)}}
.hall-pass-workspace-toolbar{display:flex;align-items:end;justify-content:space-between;gap:16px}.workspace-tools{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.workspace-tools label,.hall-pass-workspace-toolbar label{margin:0}.seating-chart{position:relative;min-height:640px;border:2px solid #cbd7e6;border-radius:16px;background:linear-gradient(#f9fbfd,#eef4fa);overflow:hidden;touch-action:none}.front-of-class{position:absolute;left:8%;right:8%;top:12px;text-align:center;font-weight:800;color:#53657c}.front-of-class i{display:block;height:5px;background:#283f5d;border-radius:4px;margin-top:5px}.student-seat-card{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1px solid #cbd7e6;border-radius:10px;background:#fff;box-shadow:0 5px 14px rgba(18,38,65,.11);cursor:grab;user-select:none;padding:6px;text-align:center;color:#10213b}.student-seat-card:active{cursor:grabbing}.student-seat-card strong{line-height:1.1}.student-seat-card small{color:#68778b}.student-seat-avatar{display:grid;place-items:center;border-radius:50%;background:var(--brand-primary);color:var(--brand-primary-contrast,#fff);font-weight:800}.card-size-small .student-seat-card{width:94px;height:76px;font-size:.76rem}.card-size-small .student-seat-avatar{width:26px;height:26px;font-size:.66rem}.card-size-medium .student-seat-card{width:120px;height:94px;font-size:.88rem}.card-size-medium .student-seat-avatar{width:34px;height:34px;font-size:.78rem}.card-size-large .student-seat-card{width:150px;height:116px;font-size:1rem}.card-size-large .student-seat-avatar{width:42px;height:42px;font-size:.88rem}.empty-chart{position:absolute;inset:28% 15%;display:grid;place-items:center;text-align:center}.layout-save-status{position:absolute;right:12px;bottom:10px;background:#fff;padding:4px 8px;border-radius:7px;font-size:.8rem;color:#53657c}.app-dialog{width:min(520px,calc(100vw - 28px));border:0;border-radius:16px;padding:22px;box-shadow:0 25px 70px rgba(10,28,52,.25)}.app-dialog::backdrop{background:rgba(5,20,38,.55)}.wide-dialog{width:min(760px,calc(100vw - 28px))}.dialog-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.dialog-header h2,.dialog-header p{margin-top:0}.dialog-close{border:0;background:transparent;font-size:2rem;line-height:1;cursor:pointer}.student-picker-list{max-height:360px;overflow:auto;border:1px solid #d5dfeb;border-radius:10px;margin:8px 0 16px}.student-picker-row{display:flex;width:100%;align-items:center;gap:10px;padding:10px 12px;border:0;border-bottom:1px solid #e5ebf2;background:#fff;text-align:left;color:#10213b}.student-picker-row:last-child{border-bottom:0}.student-picker-row:hover{background:#f3f7fb}.student-picker-row span{display:flex;flex-direction:column}.student-picker-row small{color:#68778b}
@media(max-width:800px){.hall-pass-workspace-toolbar{align-items:stretch;flex-direction:column}.workspace-tools{align-items:stretch}.seating-chart{min-height:560px}.active-pass-card{min-width:245px}.student-seat-card{touch-action:none}}


/* Session 8 Part 7: refined Hall Pass forms, live alerts, and coverage */
.app-dialog{border:0;border-radius:22px;padding:0;box-shadow:0 24px 70px rgba(8,30,55,.28);width:min(620px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;background:#fff}.app-dialog::backdrop{background:rgba(9,27,48,.62);backdrop-filter:blur(2px)}.app-dialog>form,.app-dialog>div:not(.dialog-header){padding:0}.app-dialog form{padding:28px}.app-dialog>.dialog-header,.app-dialog form>.dialog-header{margin:-28px -28px 24px;padding:24px 28px 18px;border-bottom:1px solid #e3eaf2}.wide-dialog{width:min(780px,calc(100vw - 32px))}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.dialog-header h2{margin:0 0 5px}.dialog-header p{margin:0;color:#61728a}.dialog-close{border:0;background:#edf3f8;border-radius:50%;width:40px;height:40px;font-size:28px;line-height:1;display:grid;place-items:center;cursor:pointer;color:#21354d}.dialog-close:hover{background:#dce8f2}.app-dialog label{display:grid;gap:7px;margin:0 0 18px;font-weight:700;color:#172b43}.app-dialog input,.app-dialog select,.app-dialog textarea,.coverage-form input,.coverage-form select,.coverage-form textarea{width:100%;box-sizing:border-box;border:1px solid #c9d6e5;border-radius:11px;padding:11px 13px;background:#fff;color:#13263d;font:inherit;min-height:44px}.app-dialog textarea,.coverage-form textarea{min-height:92px;resize:vertical}.app-dialog input:focus,.app-dialog select:focus,.app-dialog textarea:focus,.coverage-form input:focus,.coverage-form textarea:focus{outline:3px solid color-mix(in srgb,var(--brand-primary) 20%,transparent);border-color:var(--brand-primary)}.app-dialog .form-actions{display:flex;justify-content:flex-end;margin-top:22px}.student-picker-list{border:1px solid #d5e0eb;border-radius:14px;overflow:auto;max-height:360px;background:#fff}.student-picker-row{border-radius:10px!important;margin:5px!important;width:calc(100% - 10px)!important}.global-hall-pass-alert{position:sticky;top:0;z-index:35;background:#fff7dc;border:1px solid #f2c65c;border-radius:14px;padding:10px 12px;margin:0 0 18px;box-shadow:0 8px 24px rgba(62,45,0,.12)}.global-hall-pass-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;color:#624700}.global-hall-pass-items{display:flex;gap:8px;overflow-x:auto}.global-hall-pass-item{min-width:190px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 11px;border-radius:10px;background:#fff;color:#14273f;text-decoration:none;border:1px solid #ead38f}.global-hall-pass-item span{display:grid}.global-hall-pass-item small{color:#68778a}.global-hall-pass-item b{font-variant-numeric:tabular-nums}.global-hall-pass-item.overdue{background:#fff0ef;border-color:#d8342a;animation:hallPassPulse 1s infinite}.coverage-notice,.coverage-workspace-label{background:#eaf5ff;border:1px solid #9cc9eb;border-radius:12px;padding:12px 14px;margin:0 0 16px;color:#17486c}.coverage-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-span-2{grid-column:1/-1}.optional{font-weight:400;color:#6b7c90}.person-choice-list{border:1px solid #d5e0eb;border-radius:12px;max-height:240px;overflow:auto;padding:5px;background:#fff}.person-choice{display:flex!important;align-items:center!important;gap:10px!important;padding:10px!important;margin:0!important;border-radius:9px;cursor:pointer}.person-choice:hover{background:#f1f6fa}.person-choice input{width:auto!important;min-height:auto!important}.person-choice span{display:grid}.person-choice small{color:#6b7c90;font-weight:400}@keyframes hallPassPulse{50%{box-shadow:0 0 0 4px rgba(216,52,42,.18)}}
@media(max-width:760px){.coverage-form{grid-template-columns:1fr}.form-span-2{grid-column:auto}.app-dialog{border-radius:16px}.app-dialog form{padding:20px}.app-dialog form>.dialog-header{margin:-20px -20px 20px;padding:20px}.global-hall-pass-alert{top:58px}.global-hall-pass-items{padding-bottom:4px}}


/* Session 8 Part 8: consistent dialogs and configurable Hall Pass classroom workspace */
.app-dialog{box-sizing:border-box;overflow:hidden}.app-dialog>.dialog-header{margin:0;padding:24px 28px 18px;border-bottom:1px solid #e3eaf2}.app-dialog>.dialog-content{padding:24px 28px 28px}.app-dialog>.dialog-content label{display:grid;gap:7px;margin:0 0 18px;font-weight:700;color:#172b43}.app-dialog>.dialog-content input,.app-dialog>.dialog-content select,.app-dialog>.dialog-content textarea{width:100%;box-sizing:border-box;border:1px solid #c9d6e5;border-radius:11px;padding:11px 13px;background:#fff;color:#13263d;font:inherit;min-height:44px}.student-picker-list{overflow-y:auto!important;overflow-x:hidden!important;box-sizing:border-box;max-width:100%}.student-picker-row{box-sizing:border-box!important;max-width:100%!important;min-width:0!important}.student-picker-row input[type="checkbox"],.student-picker-row input[type="radio"]{width:20px!important;height:20px!important;min-height:0!important;padding:0!important;flex:0 0 20px}.student-picker-row span{min-width:0}.student-picker-row strong,.student-picker-row small{overflow-wrap:anywhere}.quick-student-list{margin:0}.workspace-size-label{align-self:center;color:#60728a;font-size:.82rem;white-space:nowrap}.workspace-orientation-controls{display:flex;gap:6px}.seating-chart{width:min(var(--workspace-width,1100px),100%);height:var(--workspace-height,680px);min-height:500px;max-width:100%;margin-inline:auto;box-sizing:border-box}.workspace-resize-handle{position:absolute;right:5px;bottom:5px;width:30px;height:30px;border:0;border-radius:7px;background:linear-gradient(135deg,transparent 0 42%,#7990aa 43% 50%,transparent 51% 60%,#7990aa 61% 68%,transparent 69%);cursor:nwse-resize;z-index:8}.layout-save-status.error{color:#b42318}.front-of-class{transition:all .2s ease}.orientation-0 .front-of-class{left:8%;right:8%;top:12px;bottom:auto;width:auto;height:auto}.orientation-0 .front-of-class i{width:100%;height:5px}.orientation-90 .front-of-class{left:auto;right:10px;top:8%;bottom:8%;width:44px;height:auto;display:flex;align-items:center;justify-content:center;gap:7px}.orientation-90 .front-of-class span{writing-mode:vertical-rl}.orientation-90 .front-of-class i{width:5px;height:100%;margin:0}.orientation-180 .front-of-class{left:8%;right:8%;top:auto;bottom:12px;width:auto;height:auto;display:flex;flex-direction:column-reverse}.orientation-180 .front-of-class i{width:100%;height:5px;margin:0 0 5px}.orientation-270 .front-of-class{left:10px;right:auto;top:8%;bottom:8%;width:44px;height:auto;display:flex;align-items:center;justify-content:center;gap:7px;flex-direction:row-reverse}.orientation-270 .front-of-class span{writing-mode:vertical-rl;transform:rotate(180deg)}.orientation-270 .front-of-class i{width:5px;height:100%;margin:0}.student-seat-card{z-index:2}.front-of-class{z-index:1}
@media(max-width:800px){.workspace-orientation-controls{width:100%}.workspace-orientation-controls .button{flex:1}.workspace-size-label{display:none}.seating-chart{width:100%!important;height:max(560px,var(--workspace-height,680px));}.workspace-resize-handle{display:none}.app-dialog>.dialog-header{padding:20px}.app-dialog>.dialog-content{padding:20px}}

/* Session 8 Part 8 Hotfix 1: consistent Hall Pass dialogs and reliable workspace controls */
.app-dialog{width:min(640px,calc(100vw - 32px));max-width:100%;overflow:hidden!important;padding:0!important}
.app-dialog.wide-dialog{width:min(800px,calc(100vw - 32px))}
.app-dialog form{padding:0!important;margin:0}
.app-dialog .dialog-header{margin:0!important;padding:22px 28px 18px!important;border-bottom:1px solid #e3eaf2;min-height:auto}
.app-dialog .dialog-body{padding:22px 28px 28px;box-sizing:border-box;overflow-x:hidden}
.app-dialog .dialog-body>label{display:grid;gap:7px;margin:0 0 18px;font-weight:700}
.app-dialog .dialog-body input:not([type=checkbox]):not([type=radio]),.app-dialog .dialog-body select,.app-dialog .dialog-body textarea{display:block;width:100%;max-width:100%;box-sizing:border-box;border:1px solid #c9d6e5;border-radius:11px;padding:11px 13px;min-height:44px;font:inherit;background:#fff}
.app-dialog .form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
.app-dialog .dialog-danger-zone{padding:0 28px 26px!important}
.app-dialog .student-picker-list{width:100%;margin:8px 0 16px;max-height:min(380px,45vh)}
.app-dialog .student-picker-row{display:flex!important;align-items:center!important;gap:12px!important;padding:12px 14px!important;margin:0!important;width:100%!important;border-radius:0!important}
.app-dialog .student-picker-row:first-child{border-radius:11px 11px 0 0!important}.app-dialog .student-picker-row:last-child{border-radius:0 0 11px 11px!important}
.hall-pass-workspace-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) auto;align-items:center;gap:14px;padding:14px 16px}
.hall-pass-workspace-toolbar>div:first-child label,.workspace-tools label{display:flex;align-items:center;gap:8px;margin:0;font-weight:700}.hall-pass-workspace-toolbar select{min-height:38px;border:1px solid #cbd7e6;border-radius:9px;padding:6px 10px;background:#fff}
.workspace-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.seating-chart{width:var(--workspace-width,1100px);height:var(--workspace-height,680px);max-width:100%;min-width:650px;min-height:500px;resize:none}
.workspace-resize-edge,.workspace-resize-corner{position:absolute;border:0;background:transparent;z-index:20;padding:0}
.workspace-resize-width{top:42px;right:-5px;bottom:42px;width:14px;cursor:ew-resize}.workspace-resize-width::after{content:"";position:absolute;right:5px;top:35%;bottom:35%;width:3px;border-radius:2px;background:#7890aa}
.workspace-resize-height{left:42px;right:42px;bottom:-5px;height:14px;cursor:ns-resize}.workspace-resize-height::after{content:"";position:absolute;bottom:5px;left:42%;right:42%;height:3px;border-radius:2px;background:#7890aa}
.workspace-resize-corner{right:-4px;bottom:-4px;width:30px;height:30px;cursor:nwse-resize;background:linear-gradient(135deg,transparent 0 45%,#7890aa 46% 51%,transparent 52% 61%,#7890aa 62% 67%,transparent 68%)}
@media(max-width:800px){.app-dialog .dialog-header,.app-dialog .dialog-body{padding-left:20px!important;padding-right:20px!important}.hall-pass-workspace-toolbar{grid-template-columns:1fr}.workspace-tools{justify-content:flex-start}.seating-chart{min-width:0;width:100%!important}.workspace-resize-edge,.workspace-resize-corner{display:none}}

/* Session 8 Part 8 Hotfix 3: normalize Hall Pass dialog bodies. */
.app-dialog > .dialog-body {
    box-sizing: border-box;
    padding: 22px 28px 28px;
    width: 100%;
    min-width: 0;
    overflow-x: hidden;
}
.app-dialog > .dialog-body > label {
    display: grid;
    gap: 7px;
    margin: 0 0 16px;
    font-weight: 700;
    color: #172b43;
}
.app-dialog > .dialog-body input,
.app-dialog > .dialog-body select,
.app-dialog > .dialog-body textarea {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    border: 1px solid #c9d6e5;
    border-radius: 11px;
    padding: 11px 13px;
    background: #fff;
    color: #13263d;
    font: inherit;
    min-height: 44px;
}
#quick-issue-dialog .quick-student-list {
    margin-top: 6px;
    border: 1px solid #d7e1ed;
    border-radius: 12px;
    overflow: auto !important;
    max-height: min(52vh, 460px);
}
#quick-issue-dialog .student-picker-row {
    display: flex;
    align-items: center;
    width: 100%;
    border: 0;
    border-bottom: 1px solid #e4ebf3;
    border-radius: 0;
    padding: 14px 16px;
    background: #fff;
    text-align: left;
}
#quick-issue-dialog .student-picker-row:last-child { border-bottom: 0; }
#quick-issue-dialog .student-picker-row:hover,
#quick-issue-dialog .student-picker-row:focus-visible { background: #f4f8fc; }
#quick-issue-dialog .student-picker-row strong,
#quick-issue-dialog .student-picker-row small { display: block; }
#quick-issue-dialog .student-picker-row small { margin-top: 3px; color: #647891; }
@media (max-width: 640px) {
    .app-dialog > .dialog-header { padding: 20px 20px 15px; }
    .app-dialog > .dialog-body { padding: 18px 20px 22px; }
}


/* Session 8 Part 8 Hotfix 4: structural Quick Issue spacing fix. */
#quick-issue-dialog > .dialog-body {
    padding: 0 !important;
    width: 100%;
    overflow: hidden;
}
#quick-issue-dialog .quick-issue-content {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    padding: 22px 28px 28px;
}
#quick-issue-dialog .quick-issue-content > label {
    display: grid;
    gap: 7px;
    margin: 0 0 16px;
    font-weight: 700;
    color: #172b43;
}
#quick-issue-dialog .quick-issue-content input[type="search"] {
    display: block;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
}
#quick-issue-dialog .quick-student-list {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    margin: 0;
}
@media (max-width: 640px) {
    #quick-issue-dialog .quick-issue-content { padding: 18px 20px 22px; }
}

/* Session 9: Hall Pass validation override panel */
.hall-pass-override-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;border:2px solid #d97706;background:#fff8e6;margin-bottom:18px}
.hall-pass-override-panel h2{margin:.15rem 0 .35rem}.hall-pass-override-panel p{margin:0}
.hall-pass-override-panel form{flex:0 0 auto}.hall-pass-override-panel .form-actions{margin:0;justify-content:flex-end}
@media(max-width:760px){.hall-pass-override-panel{align-items:stretch;flex-direction:column}.hall-pass-override-panel form{width:100%}.hall-pass-override-panel .form-actions{justify-content:flex-start}}


/* Session 9 Part 2 */
.hall-pass-validation-dialog[open]{position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);z-index:1200;width:min(560px,calc(100vw - 32px));box-shadow:0 28px 80px rgba(9,28,50,.35);border:2px solid #d92d20}.hall-pass-validation-dialog::backdrop{background:rgba(8,25,43,.62);backdrop-filter:blur(2px)}.hall-pass-validation-dialog.warning{border-color:#d97706}.validation-dialog-message{font-size:1.05rem;line-height:1.55;margin:0 0 20px;color:#162b43}
.student-media,.student-seat-avatar{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;aspect-ratio:1/1;border-radius:50%;overflow:hidden;background:#4aa3ef;color:#fff;font-weight:800;line-height:1}.student-media img,.student-seat-avatar img{width:100%;height:100%;object-fit:cover;display:block}.student-media>span,.student-seat-avatar>span{display:grid;place-items:center;width:100%;height:100%}.student-media.compact{width:36px;height:36px;font-size:.75rem}.active-pass-student{display:flex;align-items:center;gap:10px;min-width:0}.active-pass-student>span:last-child{display:grid;min-width:0}.active-pass-student small{color:#647891}.student-seat-card{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0}.student-seat-card strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-size-small .student-seat-avatar{width:30px;height:30px;font-size:.7rem}.card-size-medium .student-seat-avatar{width:40px;height:40px}.card-size-large .student-seat-avatar{width:54px;height:54px}
.name-display-controls{display:flex;align-items:center;gap:7px;margin-right:auto}.segmented-toggle{display:inline-flex;border:1px solid #cbd7e6;border-radius:10px;overflow:hidden;background:#fff}.segmented-toggle button{border:0;border-right:1px solid #cbd7e6;background:#fff;color:#43566d;padding:8px 11px;font-weight:700;cursor:pointer}.segmented-toggle button:last-child{border-right:0}.segmented-toggle button.active{background:var(--brand-primary);color:var(--brand-primary-contrast,#fff)}.segmented-toggle button:disabled{cursor:not-allowed;opacity:.45}.global-hall-pass-item{display:flex;align-items:center;gap:10px}.global-hall-pass-item>b{margin-left:auto}@media(max-width:900px){.name-display-controls{order:10;width:100%;margin:4px 0}.segmented-toggle{flex:1}.segmented-toggle button{flex:1}}

/* Session 9 Part 2 Hotfix 1: validation modal containment and active-pass alignment */
.hall-pass-validation-dialog {
    box-sizing: border-box;
    overflow: hidden !important;
}
.hall-pass-validation-dialog > .dialog-body {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    overflow: hidden;
}
.hall-pass-validation-dialog .validation-dialog-message {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin: 0 0 22px;
    overflow-wrap: anywhere;
    word-break: normal;
}
.hall-pass-validation-dialog form {
    width: 100%;
    min-width: 0;
}
.hall-pass-validation-dialog .form-actions {
    justify-content: center;
    flex-wrap: wrap;
}

.active-pass-card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 150px;
    padding-right: 82px;
}
.active-pass-card .active-pass-student {
    min-width: 0;
}
.active-pass-card .pass-timer {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    text-align: center;
    min-width: 58px;
}
.active-pass-card .active-pass-actions {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    width: 100%;
    margin-top: 12px;
}
.active-pass-card .active-pass-actions form {
    margin: 0;
}

@media (max-width: 520px) {
    .hall-pass-validation-dialog .form-actions {
        align-items: stretch;
    }
    .hall-pass-validation-dialog .form-actions .button,
    .hall-pass-validation-dialog .form-actions button {
        flex: 1 1 100%;
    }
    .active-pass-card {
        padding-right: 74px;
    }
}


/* Session 9 Part 2 Hotfix 2: validation padding and seating-chart pass states */
.hall-pass-validation-dialog > .dialog-body {
    padding: 24px 28px 26px !important;
    box-sizing: border-box;
}
.hall-pass-validation-dialog > .dialog-body > .validation-dialog-message {
    margin: 0 0 22px !important;
}
.hall-pass-validation-dialog > .dialog-body > form {
    padding: 0 !important;
    margin: 0;
}
.hall-pass-validation-dialog > .dialog-body .form-actions {
    margin-top: 0;
}
.student-seat-card.student-on-pass {
    background: #e8edf3 !important;
    border-color: #b8c5d3;
    color: #68778a;
    box-shadow: none;
    filter: grayscale(.35);
    opacity: .82;
}
.student-seat-card.student-on-pass .student-seat-avatar {
    filter: grayscale(.45);
    opacity: .78;
}
.student-seat-card.student-on-pass small {
    color: #7b8796;
}
.student-seat-card.student-on-pass::after {
    content: 'OUT';
    position: absolute;
    right: 5px;
    top: 5px;
    padding: 2px 5px;
    border-radius: 999px;
    background: #68778a;
    color: #fff;
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: .04em;
}
.student-seat-card.student-on-pass.pass-overdue {
    border: 3px solid #d9271c !important;
    opacity: 1;
    animation: passSeatPulse 1s infinite;
}
.student-seat-card.student-on-pass.pass-overdue::after {
    content: 'OVERDUE';
    background: #d9271c;
}
@keyframes passSeatPulse {
    50% { box-shadow: 0 0 0 5px rgba(217,39,28,.24); }
}
@media (max-width:520px) {
    .hall-pass-validation-dialog > .dialog-body {
        padding: 20px !important;
    }
}

/* Session 9 Part 3: student Hall Pass requests */
.pending-pass-strip{background:#fff7d6;border:1px solid #efc85a;border-radius:16px;padding:16px;margin:0 0 20px}.pending-pass-cards{display:grid;gap:12px;margin-top:12px}.pending-pass-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;background:#fff;border:1px solid #e6c65c;border-radius:14px;padding:12px 14px}.pending-pass-card small{display:block;color:#61728a;margin-top:3px}.pending-pass-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.pending-pass-actions form{display:flex;align-items:center;gap:8px;margin:0}.pending-pass-actions input[type=text]{width:180px;min-width:140px}.global-hall-pass-alert.pending-requests{background:#fff4c5;border-color:#e3b744}.global-hall-pass-item.pending b{background:#a86700;color:#fff;border-radius:999px;padding:5px 10px;font-size:.76rem}.student-pass-request-panel{max-width:900px}.status-pending{background:#fff0b8;color:#6e4b00}.status-approved{background:#dff5e5;color:#0b6b2c}.status-declined{background:#fde3e0;color:#a22217}
@media(max-width:760px){.pending-pass-card{grid-template-columns:auto 1fr}.pending-pass-actions{grid-column:1/-1;justify-content:stretch}.pending-pass-actions form{width:100%;flex-wrap:wrap}.pending-pass-actions input[type=text]{width:100%}.pending-pass-actions .button{flex:1}.student-pass-request-panel .form-grid{grid-template-columns:1fr}.student-pass-request-panel .span-2{grid-column:auto}}

/* Session 9 Part 4: Demo student-request simulator */
.developer-tool-note{padding:12px 14px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff;color:#1e3a5f;line-height:1.45}
#simulate-request-dialog .dialog-body{padding:24px}
#simulate-request-dialog .form-grid{gap:18px}
#simulate-request-dialog select,#simulate-request-dialog textarea{width:100%;box-sizing:border-box}
@media (max-width:720px){#simulate-request-dialog .dialog-body{padding:18px}#simulate-request-dialog .form-grid{grid-template-columns:1fr}#simulate-request-dialog .span-2{grid-column:auto}}


.request-note{display:inline-block;margin-top:.35rem;color:var(--text-muted,#64748b);font-size:.88rem;line-height:1.35;max-width:48rem;white-space:normal;overflow-wrap:anywhere}.notification-actions{display:flex;gap:.5rem;align-items:center;justify-content:flex-end;flex-wrap:wrap}.pending-pass-card .inline-form{margin-left:.5rem}.pending-pass-card{flex-wrap:wrap}


.rapid-issue-button{position:absolute;right:.35rem;bottom:.3rem;width:1.65rem;height:1.65rem;border-radius:999px;display:grid;place-items:center;background:#fff7d6;color:#9a6400;border:1px solid #e4bd55;font-size:.9rem;line-height:1;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.student-seat-card.rapid-issuing{opacity:.55;pointer-events:none}
.rapid-issue-toast{position:fixed;z-index:9999;right:1.25rem;bottom:1.25rem;display:flex;align-items:center;gap:1rem;max-width:min(520px,calc(100vw - 2rem));padding:1rem 1.1rem;border-radius:14px;background:#102d4d;color:#fff;box-shadow:0 16px 40px rgba(0,0,0,.3)}
.rapid-issue-toast button{border:0;border-radius:9px;padding:.65rem .9rem;font-weight:800;background:#fff;color:#102d4d;cursor:pointer;white-space:nowrap}
@media(max-width:700px){.rapid-issue-toast{left:1rem;right:1rem;bottom:1rem}.rapid-issue-button{display:grid}}

.staff-destination-field{margin-top:1rem;padding:1rem;border:1px solid #cbd9ea;border-radius:14px;background:#f8fbff}.staff-destination-list{max-height:220px;overflow:auto;border:1px solid #d7e1ed;border-radius:12px;background:#fff}.staff-destination-row{display:flex;gap:.75rem;align-items:center;padding:.75rem 1rem;border-bottom:1px solid #e5edf5;cursor:pointer}.staff-destination-row:last-child{border-bottom:0}.staff-destination-row input{width:18px;height:18px;flex:0 0 auto}.staff-destination-row span{display:flex;flex-direction:column}.request-destination{font-weight:700;color:#315a7d}

/* Session 9 Part 6 hotfix: compact receiving-staff selector and stable radio controls */
#simulate-request-dialog .staff-destination-field,
#pass-dialog .staff-destination-field {
  padding: .75rem;
  margin-top: .5rem;
}
#simulate-request-dialog .staff-destination-list {
  max-height: 150px;
}
.staff-destination-row > input[type="radio"] {
  appearance: auto !important;
  -webkit-appearance: radio !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  box-shadow: none !important;
  flex: 0 0 18px !important;
}
.staff-destination-row {
  min-height: 52px;
}

/* Session 9 Part 6 Hotfix 3: explicit staff-destination lifecycle labels */
.pass-lifecycle-label{display:inline-block;margin-top:.2rem;font-weight:700;color:var(--muted,#64748b)}
.active-pass-card .active-pass-actions form{margin:0}

/* Hall Pass Operations and Audit */
.tracker-shell{min-height:70vh}.tracker-shell.is-standalone{padding:1rem;min-height:100vh;background:var(--page-bg,#f4f7fb)}.tracker-header{align-items:flex-start}.tracker-summary{display:flex;gap:.55rem;align-items:baseline;margin:0 0 1rem}.tracker-summary strong{font-size:2rem}.tracker-summary time{margin-left:auto;color:#64748b}.active-tracker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1rem}.active-tracker-card{display:grid;grid-template-columns:64px 1fr auto;gap:1rem;align-items:center;background:#fff;border:2px solid #dbe5f1;border-radius:16px;padding:1rem;box-shadow:0 8px 22px rgba(15,23,42,.07)}.active-tracker-card.is-overdue{border-color:#dc2626;animation:trackerPulse 1.2s infinite}.tracker-photo{width:64px;height:64px}.tracker-card-body h2{margin:0;font-size:1.1rem}.tracker-card-body p{margin:.15rem 0 .5rem;color:#64748b}.tracker-card-body dl{display:flex;gap:.8rem;flex-wrap:wrap;margin:0}.tracker-card-body dl div{display:flex;gap:.3rem}.tracker-card-body dt{font-weight:700}.tracker-card-body dd{margin:0}.tracker-timer{font-size:1.45rem;font-variant-numeric:tabular-nums}.tracker-admin-actions{grid-column:1/-1;display:flex;gap:.75rem;justify-content:flex-end;align-items:end;border-top:1px solid #e5e7eb;padding-top:.8rem}.tracker-admin-actions form{display:flex;gap:.5rem;align-items:end}.tracker-admin-actions label{font-size:.75rem}.tracker-admin-actions input{width:100px}.tracker-empty{grid-column:1/-1}.audit-exception-list{display:grid;gap:1rem}.audit-exception-card{display:grid;grid-template-columns:minmax(240px,1fr) minmax(360px,1.5fr);gap:1.25rem;border:1px solid #f59e0b;background:#fffaf0;border-radius:14px;padding:1rem}.audit-exception-card h2{margin-top:0}.audit-resolution-form{display:grid;grid-template-columns:1fr 2fr auto;gap:.75rem;align-items:end}.audit-resolution-form textarea{min-height:70px}@keyframes trackerPulse{50%{box-shadow:0 0 0 5px rgba(220,38,38,.16)}}@media(max-width:800px){.active-tracker-grid{grid-template-columns:1fr}.active-tracker-card{grid-template-columns:54px 1fr auto}.audit-exception-card,.audit-resolution-form{grid-template-columns:1fr}.tracker-admin-actions{justify-content:stretch;flex-direction:column}.tracker-admin-actions form{width:100%}}

/* Session 9 Part 8: student photo management */
.student-list-identity{display:flex;align-items:center;gap:.75rem;min-width:0}.student-list-identity>span:last-child{min-width:0}.student-list-photo{width:42px;height:42px;min-width:42px}.student-photo-panel{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.student-photo-preview{display:flex;align-items:center;gap:1rem;flex:1 1 360px}.student-photo-preview h2{margin:0 0 .25rem}.student-photo-preview p{margin:0;color:var(--muted,#61708a)}.student-profile-photo{width:112px;height:112px;min-width:112px;font-size:1.65rem}.student-photo-actions{display:flex;align-items:end;gap:.75rem;flex:1 1 430px}.student-photo-actions label{flex:1;margin:0}.student-photo-actions input[type=file]{display:block;width:100%;margin-top:.4rem;padding:.7rem;border:1px solid #cbd8e8;border-radius:12px;background:#fff}.student-media img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}@media(max-width:700px){.student-photo-panel,.student-photo-actions{align-items:stretch;flex-direction:column}.student-photo-preview{flex-basis:auto}.student-profile-photo{width:88px;height:88px;min-width:88px}}


/* Session 9 Part 9: Hall Pass photo display modes and compact tracker */
.name-display-controls{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap}
.name-display-controls [aria-disabled="true"]{opacity:.48}
.card-display-photos .student-seat-card{padding:.28rem!important;display:grid!important;grid-template-rows:minmax(0,1fr) auto!important;grid-template-columns:1fr!important;gap:.22rem!important;overflow:hidden}
.card-display-photos .student-seat-avatar{width:100%!important;height:100%!important;min-height:0!important;border-radius:.65rem!important;grid-row:1;grid-column:1;align-self:stretch}
.card-display-photos .student-seat-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.card-display-photos .student-seat-avatar>span{width:100%;height:100%;border-radius:inherit;display:grid;place-items:center;font-size:clamp(1.2rem,3vw,2.4rem)}
.card-display-photos .student-seat-card strong[data-seat-name]{grid-row:2;grid-column:1;display:block;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;font-size:.78rem;line-height:1.05;padding:.08rem .12rem}
.card-display-photos .student-seat-details{display:none!important}
.card-display-photos .rapid-issue-button{position:absolute;right:.25rem;top:.25rem;z-index:3}
.card-display-photos.card-size-small .student-seat-card{min-width:78px;min-height:92px}
.card-display-photos.card-size-medium .student-seat-card{min-width:104px;min-height:128px}
.card-display-photos.card-size-large .student-seat-card{min-width:132px;min-height:164px}
.active-tracker-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))!important;align-items:start}
.active-tracker-card.tracker-photo-card{position:relative;display:grid;grid-template-rows:minmax(140px,1fr) auto;gap:.45rem;padding:.55rem;min-height:190px;cursor:pointer;overflow:hidden;border:2px solid transparent}
.active-tracker-card.tracker-photo-card:hover,.active-tracker-card.tracker-photo-card:focus-visible{transform:translateY(-2px);box-shadow:0 12px 28px rgba(15,23,42,.16);outline:none}
.tracker-photo-card .tracker-photo{width:100%;height:100%;min-height:140px;border-radius:.8rem;overflow:hidden}
.tracker-photo-card .tracker-photo img{width:100%;height:100%;object-fit:cover}
.tracker-photo-card .tracker-photo>span{width:100%;height:100%;display:grid;place-items:center;font-size:2.4rem;border-radius:inherit}
.tracker-photo-card .tracker-timer{position:static!important;text-align:center;font-size:1.35rem;line-height:1;padding:.25rem}
.tracker-detail-dialog{width:min(620px,94vw)}
.tracker-detail-body{display:grid;gap:1rem}
.tracker-detail-profile{display:grid;grid-template-columns:180px 1fr;gap:1.1rem;align-items:start}
.tracker-detail-photo{width:180px;height:220px;border-radius:1rem;overflow:hidden}
.tracker-detail-photo img{width:100%;height:100%;object-fit:cover}
.tracker-detail-photo>span{width:100%;height:100%;display:grid;place-items:center;font-size:3rem;border-radius:inherit}
.tracker-detail-profile dl{display:grid;gap:.45rem;margin:.7rem 0}.tracker-detail-profile dl div{display:grid;grid-template-columns:90px 1fr;gap:.5rem}.tracker-detail-profile dt{font-weight:700;color:#64748b}.tracker-detail-profile dd{margin:0}.tracker-detail-reason{font-size:1.15rem;font-weight:800;margin:0}
.tracker-detail-timer{text-align:center;padding:.9rem;border-radius:.8rem;background:#f1f5f9}.tracker-detail-timer span{display:block;color:#64748b;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em}.tracker-detail-timer strong{display:block;font-size:2rem;margin-top:.2rem}
.tracker-modal-actions{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:end}.tracker-modal-actions form:first-child{display:flex;gap:.6rem;align-items:end}.tracker-modal-actions label{margin:0;flex:1}
@media(max-width:620px){.tracker-detail-profile{grid-template-columns:1fr}.tracker-detail-photo{width:100%;height:min(52vh,340px)}.tracker-modal-actions{grid-template-columns:1fr}.tracker-modal-actions form:first-child{flex-direction:column;align-items:stretch}}


/* Session 9 Part 9 Hotfix 1: photo toggle cache/UI and compact tracker layout */
.active-tracker-card.tracker-photo-card{
  grid-template-columns:1fr!important;
  grid-template-rows:minmax(180px,1fr) auto!important;
  align-items:stretch!important;
  justify-items:stretch!important;
  min-height:245px!important;
  aspect-ratio:auto;
}
.tracker-photo-card .tracker-photo{
  grid-column:1!important;
  grid-row:1!important;
  width:100%!important;
  height:100%!important;
  min-height:180px!important;
  aspect-ratio:3/4;
}
.tracker-photo-card .tracker-timer{
  grid-column:1!important;
  grid-row:2!important;
  width:100%;
  display:block;
  text-align:center!important;
  padding:.5rem .25rem .35rem!important;
  margin:0!important;
}
.tracker-detail-dialog .dialog-header{padding:1.35rem 1.5rem!important}
.tracker-detail-dialog .dialog-body,
.tracker-detail-dialog .tracker-detail-body{padding:1.25rem 1.5rem 1.5rem!important}
.tracker-detail-dialog .tracker-modal-actions{
  margin:0 -.1rem -.1rem;
  padding-top:.25rem;
}
.tracker-detail-dialog .tracker-modal-actions form{min-width:0}
.tracker-detail-dialog .tracker-modal-actions input{width:100%;box-sizing:border-box}
@media(max-width:620px){
  .active-tracker-card.tracker-photo-card{grid-template-rows:minmax(150px,1fr) auto!important;min-height:210px!important}
  .tracker-photo-card .tracker-photo{min-height:150px!important}
  .tracker-detail-dialog .dialog-header{padding:1.1rem 1.15rem!important}
  .tracker-detail-dialog .dialog-body,.tracker-detail-dialog .tracker-detail-body{padding:1rem 1.15rem 1.2rem!important}
}

/* Calendar foundation — schema 25 */
.calendar-page-header{align-items:flex-start}
.calendar-foundation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1rem}
.calendar-foundation-grid.compact{margin-top:1rem}
.calendar-status-card{display:flex;align-items:flex-start;gap:1rem;position:relative;min-height:150px}
.calendar-status-card h2{margin:.15rem 0 .35rem}
.calendar-status-card p{margin:0;color:var(--muted,#61708a)}
.calendar-status-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#eaf4ff;color:#1765a8;font-size:1.35rem;flex:0 0 auto}
.calendar-status-card .status-pill{margin-left:auto}
.calendar-inventory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem}
.calendar-inventory-card{display:flex;align-items:center;gap:.75rem;border:1px solid #d9e4f1;border-radius:14px;padding:.85rem 1rem;background:#fff}
.calendar-inventory-card>div{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}
.calendar-inventory-card small{color:#61708a}
.calendar-color-dot{width:18px;height:18px;border-radius:50%;background:var(--calendar-color,#4da9f0);box-shadow:0 0 0 4px color-mix(in srgb,var(--calendar-color,#4da9f0) 20%,transparent);flex:0 0 auto}
.calendar-category-chips{display:flex;flex-wrap:wrap;gap:.65rem}
.calendar-category-chip{display:inline-flex;align-items:center;gap:.5rem;border:1px solid #d9e4f1;background:#fff;border-radius:999px;padding:.55rem .8rem;font-weight:700}
.calendar-category-chip i{width:11px;height:11px;border-radius:50%;background:var(--category-color,#4da9f0)}
.calendar-category-chip small{font-weight:500;color:#61708a;border-left:1px solid #d9e4f1;padding-left:.55rem}
.calendar-category-chip.is-inactive{opacity:.5}
.metric-card{display:flex;flex-direction:column;gap:.25rem;min-height:120px;justify-content:center}
.metric-card span,.metric-card small{color:#61708a}.metric-card strong{font-size:2rem}
.calendar-settings-grid .toggle-card{min-height:84px}
.calendar-category-create{display:grid;grid-template-columns:minmax(220px,2fr) 100px minmax(180px,1fr) 120px auto;gap:.75rem;align-items:end;margin:1rem 0 1.25rem}
.calendar-category-admin-list{display:flex;flex-direction:column;gap:.65rem}
.calendar-category-admin-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem;align-items:center;border:1px solid #d9e4f1;border-radius:14px;padding:.7rem;background:#fff}
.calendar-category-admin-row>form:first-child{display:grid;grid-template-columns:24px minmax(180px,2fr) 70px minmax(160px,1fr) 95px auto;gap:.6rem;align-items:center}
.calendar-category-admin-row input,.calendar-category-admin-row select{margin:0;min-width:0}
@media(max-width:1050px){.calendar-foundation-grid{grid-template-columns:1fr}.calendar-category-create{grid-template-columns:1fr 100px 1fr 120px}.calendar-category-create .form-actions{grid-column:1/-1}.calendar-category-admin-row>form:first-child{grid-template-columns:24px 1fr 70px}.calendar-category-admin-row>form:first-child select,.calendar-category-admin-row>form:first-child input[type=number],.calendar-category-admin-row>form:first-child button{grid-column:auto}}
@media(max-width:700px){.calendar-category-create{grid-template-columns:1fr}.calendar-category-admin-row{grid-template-columns:1fr}.calendar-category-admin-row>form:first-child{grid-template-columns:24px 1fr}.calendar-category-admin-row>form:first-child>*:not(.calendar-color-dot){grid-column:2}.calendar-category-admin-row>form:last-child{justify-self:start}}

/* Session 10 Part 2: polished Calendar and internal views */
.calendar-toolbar{display:flex;align-items:center;gap:1rem;justify-content:space-between;flex-wrap:wrap;padding:.85rem 1rem;margin-bottom:1rem}.calendar-view-tabs{display:flex;background:#edf3f9;border-radius:12px;padding:4px;gap:3px}.calendar-view-tabs a{padding:.55rem .8rem;border-radius:9px;text-decoration:none;color:#30445e;font-weight:700}.calendar-view-tabs a.active{background:#fff;color:#0d2746;box-shadow:0 2px 8px rgba(15,39,70,.1)}.calendar-date-nav{display:flex;gap:.4rem}.calendar-filter{display:flex;gap:.55rem;min-width:min(100%,420px)}.calendar-filter input{flex:1}.calendar-filter select{width:160px}.calendar-view-panel{padding:0;overflow:hidden}.calendar-view-heading{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.15rem;border-bottom:1px solid #dbe5f0}.calendar-view-heading h2{margin:0}.calendar-view-heading span{color:#61708a}.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekday{padding:.65rem;text-align:center;background:#f5f8fc;color:#60718a;font-weight:800;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;border-right:1px solid #e0e8f2}.calendar-day{min-height:132px;padding:.5rem;border-right:1px solid #e0e8f2;border-top:1px solid #e0e8f2;background:#fff;min-width:0}.calendar-day.outside{background:#f7f9fc;color:#97a5b7}.calendar-day.today{box-shadow:inset 0 0 0 2px var(--brand-primary,#1765a8)}.calendar-day-number{display:flex;justify-content:space-between;align-items:center;font-weight:800}.calendar-day-number a{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;text-decoration:none;color:#1765a8;opacity:.15}.calendar-day:hover .calendar-day-number a{opacity:1;background:#eaf4ff}.calendar-day-events{display:flex;flex-direction:column;gap:.3rem;margin-top:.4rem}.calendar-event-chip{display:flex;gap:.35rem;align-items:center;min-width:0;border-left:4px solid var(--event-color);background:color-mix(in srgb,var(--event-color) 12%,#fff);border-radius:6px;padding:.34rem .42rem;text-decoration:none;color:#132842;font-size:.78rem}.calendar-event-chip span{font-size:.7rem;color:#61708a;flex:0 0 auto}.calendar-event-chip strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event-chip.expanded{display:grid;align-items:start;padding:.65rem}.calendar-event-chip.expanded strong{white-space:normal}.calendar-event-chip.expanded small{color:#61708a}.calendar-more{color:#61708a;padding-left:.3rem}.calendar-agenda{display:flex;flex-direction:column}.calendar-agenda-item{display:grid;grid-template-columns:84px 5px minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem 1.15rem;border-bottom:1px solid #e1e8f0}.calendar-agenda-item time{display:flex;flex-direction:column}.calendar-agenda-item time span,.calendar-agenda-item p,.calendar-agenda-item small{color:#61708a}.calendar-agenda-item h3,.calendar-agenda-item p{margin:.1rem 0}.calendar-color-rail{height:100%;min-height:55px;border-radius:99px;background:var(--event-color)}.calendar-time-columns{display:grid;grid-template-columns:repeat(7,minmax(180px,1fr));overflow:auto}.calendar-time-columns>article{min-height:440px;border-right:1px solid #e1e8f0}.calendar-time-columns>article>header{display:flex;justify-content:space-between;padding:.75rem;background:#f5f8fc;border-bottom:1px solid #e1e8f0}.calendar-time-columns>article>div{padding:.65rem;display:flex;flex-direction:column;gap:.5rem}.calendar-event-panel{max-width:1050px;margin-inline:auto}.calendar-event-form{display:grid;gap:1rem}.form-section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;padding:1.1rem;border:1px solid #dbe5f0;border-radius:16px;background:#fff}.form-section>div:first-child{grid-column:1/-1;border-bottom:1px solid #e1e8f0;padding-bottom:.65rem}.form-section h2{margin:.1rem 0}.toggle-card.compact{min-height:72px}.calendar-settings-layout{display:grid;grid-template-columns:minmax(340px,.8fr) minmax(560px,1.4fr);gap:1rem;align-items:start}.calendar-settings-card,.calendar-category-card{padding:1.1rem}.settings-toggle-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.settings-select-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:.85rem}.calendar-category-create.refined{grid-template-columns:minmax(180px,2fr) 90px minmax(150px,1fr) 90px auto;padding:.85rem;background:#f6f9fc;border:1px solid #dbe5f0;border-radius:14px}.calendar-category-tools{margin:.7rem 0}.calendar-category-tools input{max-width:360px}.category-row-meta{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.calendar-category-admin-row{grid-template-columns:minmax(0,1fr) auto}.category-archive{margin-top:1rem;border-top:1px solid #dbe5f0;padding-top:.8rem}.category-archive summary{font-weight:800;cursor:pointer}.category-archive>div{display:grid;gap:.5rem;margin-top:.65rem}.category-archive article{display:grid;grid-template-columns:20px minmax(0,1fr) auto auto;gap:.65rem;align-items:center;padding:.65rem;border:1px solid #dbe5f0;border-radius:12px}.category-suggestion{display:flex;justify-content:space-between;gap:1rem;align-items:center;border-color:#f4c25a;background:#fff9e8}.category-suggestion h2{margin:.15rem 0}.empty-state{text-align:center;padding:3rem 1rem;color:#61708a}
@media(max-width:1150px){.calendar-settings-layout{grid-template-columns:1fr}.calendar-month-grid{min-width:850px}.calendar-view-panel{overflow:auto}.calendar-category-create.refined{grid-template-columns:1fr 90px 1fr 90px}.calendar-category-create.refined button{grid-column:1/-1}.calendar-time-columns{grid-template-columns:repeat(7,minmax(220px,1fr))}}
@media(max-width:760px){.calendar-filter{width:100%;min-width:0;flex-direction:column}.calendar-filter select{width:100%}.calendar-toolbar{align-items:stretch}.calendar-view-tabs{overflow:auto}.calendar-agenda-item{grid-template-columns:65px 4px minmax(0,1fr)}.calendar-agenda-item>a{grid-column:3}.form-section{grid-template-columns:1fr}.form-section>*{grid-column:1!important}.settings-toggle-grid,.settings-select-grid{grid-template-columns:1fr}.calendar-category-create.refined{grid-template-columns:1fr}.calendar-category-admin-row>form:first-child{grid-template-columns:24px 1fr}.category-row-meta{justify-content:flex-start}.category-suggestion{flex-direction:column;align-items:flex-start}}


/* Session 10 Part 2 Hotfix 1: Calendar form and settings polish */
.calendar-settings-layout{grid-template-columns:1fr!important;gap:1.25rem!important}
.calendar-settings-card,.calendar-category-card{padding:1.35rem!important}
.settings-toggle-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:1rem!important}
.settings-toggle-grid .toggle-card{padding:1rem!important;min-height:96px!important;align-items:flex-start!important}
.settings-toggle-grid .toggle-card span{display:grid;gap:.25rem!important}
.settings-select-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:1rem!important}
.calendar-category-create.refined{grid-template-columns:minmax(240px,2fr) 100px minmax(180px,1fr) 110px auto!important;gap:1rem!important;padding:1rem!important}
.calendar-category-admin-row{grid-template-columns:1fr!important;gap:.8rem!important;padding:1rem!important}
.calendar-category-admin-row>form:first-child{grid-template-columns:24px minmax(240px,2fr) 74px minmax(170px,1fr) 90px auto!important;gap:.8rem!important}
.calendar-category-admin-row .category-row-meta{justify-content:flex-end!important;border-top:1px solid #e1e8f0;padding-top:.75rem!important}
.calendar-event-panel{max-width:1120px!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important}
.calendar-event-form{display:grid!important;gap:1.15rem!important}
.calendar-form-card{background:#fff;border:1px solid #dbe5f0;border-radius:18px;padding:1.35rem;box-shadow:0 8px 24px rgba(15,39,70,.05)}
.calendar-form-heading{border-bottom:1px solid #e1e8f0;padding-bottom:.8rem;margin-bottom:1rem}
.calendar-form-heading h2{margin:.15rem 0}.calendar-form-heading p{margin:0;color:#61708a}
.calendar-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.calendar-form-grid label{display:grid;gap:.4rem;font-weight:700;color:#1b2f49}
.calendar-form-grid input,.calendar-form-grid select,.calendar-form-grid textarea{width:100%;min-width:0}
.calendar-date-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.optional-label{font-size:.75rem;color:#718198;font-weight:600}
.calendar-form-actions{justify-content:flex-end;padding:0 .1rem}
@media(max-width:900px){.calendar-category-create.refined{grid-template-columns:1fr 100px 1fr!important}.calendar-category-create.refined button{grid-column:1/-1}.calendar-category-admin-row>form:first-child{grid-template-columns:24px 1fr 74px!important}.calendar-category-admin-row>form:first-child select,.calendar-category-admin-row>form:first-child input[type=number],.calendar-category-admin-row>form:first-child button{grid-column:2/-1}.settings-toggle-grid,.settings-select-grid{grid-template-columns:1fr!important}}
@media(max-width:700px){.calendar-form-grid,.calendar-date-row{grid-template-columns:1fr}.calendar-form-grid>*{grid-column:1!important}.calendar-form-card{padding:1rem}.calendar-form-actions{justify-content:stretch}.calendar-form-actions .button{flex:1}}

/* Session 10 Part 2 Hotfix 2: calendar persistence, compact forms, day view */
[hidden]{display:none!important}
.calendar-time-columns.calendar-day-view{grid-template-columns:minmax(0,1fr)!important;overflow:visible!important}
.calendar-time-columns.calendar-day-view>article{min-height:0;border-right:0}
.calendar-time-columns.calendar-day-view>article>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,320px));gap:.75rem;align-content:start;padding:1rem}
.calendar-time-columns.calendar-day-view .calendar-event-chip.expanded{width:100%;min-height:92px}
.compact-page-header{max-width:980px;margin-inline:auto}
.calendar-event-panel.compact-calendar-form{max-width:980px!important}
.compact-calendar-form .calendar-form-card{padding:1rem 1.1rem;border-radius:16px}
.compact-calendar-form .calendar-form-heading{margin-bottom:.8rem;padding-bottom:.7rem}
.compact-calendar-form .calendar-form-heading h2{font-size:1.35rem}
.compact-calendar-form .calendar-form-heading p{margin:.2rem 0 0}
.compact-calendar-form .calendar-form-grid{gap:.75rem .9rem}
.compact-calendar-form .calendar-form-grid label{gap:.3rem;font-size:.92rem}
.compact-calendar-form input,.compact-calendar-form select{min-height:42px}
.compact-calendar-form textarea{min-height:90px}
.compact-calendar-form .toggle-card.compact{min-height:58px;padding:.7rem .8rem}
.compact-calendar-form .calendar-date-row{gap:.8rem}
.compact-calendar-form .calendar-form-actions{padding-top:.2rem}
@media(max-width:700px){.compact-page-header,.calendar-event-panel.compact-calendar-form{max-width:none}.calendar-time-columns.calendar-day-view>article>div{grid-template-columns:1fr}}


/* Session 10 Part 2 Hotfix 3: align Calendar event forms with EdTools admin forms. */
.calendar-event-panel.compact-calendar-form{
  width:min(100%,1080px)!important;
  max-width:1080px!important;
  margin:0 auto!important;
}
.compact-calendar-form .calendar-event-form{
  gap:1rem!important;
}
.compact-calendar-form .calendar-form-card{
  padding:1.15rem 1.25rem!important;
  border-radius:14px!important;
  box-shadow:none!important;
}
.compact-calendar-form .calendar-form-heading{
  margin-bottom:.9rem!important;
  padding-bottom:.7rem!important;
}
.compact-calendar-form .calendar-form-heading h2{
  font-size:1.45rem!important;
  line-height:1.2!important;
}
.compact-calendar-form .calendar-form-grid{
  gap:.85rem 1.1rem!important;
}
.compact-calendar-form .calendar-form-grid>label{
  align-content:start;
}
.calendar-all-day-option{
  display:flex!important;
  align-items:flex-start!important;
  gap:.7rem!important;
  width:auto!important;
  min-height:0!important;
  margin:.1rem 0 0!important;
  padding:.75rem .85rem!important;
  border:1px solid #d7e1ec!important;
  border-radius:11px!important;
  background:#f8fafc!important;
  cursor:pointer;
}
.calendar-all-day-option input[type="checkbox"]{
  appearance:auto!important;
  -webkit-appearance:checkbox!important;
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  min-height:18px!important;
  flex:0 0 18px!important;
  padding:0!important;
  margin:.15rem 0 0!important;
  border-radius:3px!important;
}
.calendar-all-day-option span{
  display:grid!important;
  gap:.12rem!important;
  min-width:0;
}
.calendar-all-day-option strong{
  font-size:.95rem;
  line-height:1.25;
}
.calendar-all-day-option small{
  color:#61708a;
  font-weight:400;
  line-height:1.35;
}
.compact-calendar-form .calendar-date-row{
  padding:.1rem 0 0;
}
.compact-calendar-form .calendar-form-actions{
  padding:.1rem 0 0!important;
}
@media(max-width:700px){
  .calendar-event-panel.compact-calendar-form{width:100%!important}
  .compact-calendar-form .calendar-form-card{padding:1rem!important}
  .calendar-all-day-option{padding:.7rem .75rem!important}
}

/* Session 10 Part 3: shared form polish and public Calendar */
input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
select,
textarea {
  border-radius: 10px;
}
textarea { min-height: 92px; }
.page-actions,
.form-actions,
.button-row,
.calendar-form-actions { gap: 12px; }

.public-calendar-body { margin:0; min-height:100vh; background:#f4f7fb; color:#10233f; font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.public-site-header { background:var(--public-primary,#173a5e); padding:16px clamp(20px,5vw,72px); }
.public-brand { color:#fff; display:inline-flex; align-items:center; gap:12px; text-decoration:none; }
.public-brand>span,.public-brand>img { width:46px; height:46px; border-radius:12px; object-fit:contain; background:#fff; color:var(--public-primary); display:grid; place-items:center; font-weight:800; }
.public-brand div { display:grid; gap:2px; }.public-brand strong{font-size:1.05rem}.public-brand small{opacity:.75}
.public-calendar-main { width:min(1480px,calc(100% - 32px)); margin:0 auto; padding:28px 0 52px; }
.public-calendar-hero { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; margin-bottom:22px; }
.public-eyebrow { margin:0 0 6px; text-transform:uppercase; letter-spacing:.14em; color:var(--public-accent); font-size:.78rem; font-weight:800; }
.public-calendar-hero h1 { margin:0; font-size:clamp(2rem,4vw,3.5rem); line-height:1.05; }.public-calendar-hero p{margin:9px 0 0;color:#61718a}
.public-hero-actions,.public-date-nav { display:flex; gap:10px; flex-wrap:wrap; }
.public-button,.public-calendar-filter button,.public-copy-link { border:1px solid rgba(16,35,63,.18); border-radius:10px; padding:11px 16px; background:var(--public-accent,#4da9f0); color:var(--public-accent-text,#fff); text-decoration:none; font:inherit; font-weight:750; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
.public-button.secondary,.public-copy-link { background:#e9f0f7; color:#163553; }
.public-calendar-toolbar { background:#fff; border:1px solid #d9e3ef; border-radius:16px; padding:14px; display:grid; grid-template-columns:auto auto minmax(320px,1fr); align-items:center; gap:18px; margin-bottom:20px; }
.public-view-tabs { display:flex; gap:4px; background:#edf3f8; border-radius:12px; padding:4px; }.public-view-tabs a{padding:10px 15px;border-radius:9px;text-decoration:none;color:#183652;font-weight:750}.public-view-tabs a.active{background:#fff;box-shadow:0 2px 8px rgba(16,35,63,.08)}
.public-date-nav a { min-width:42px; text-align:center; text-decoration:none; color:#173a5e; background:#edf3f8; border-radius:9px; padding:10px 12px; font-weight:750; }
.public-calendar-filter { display:flex; justify-content:flex-end; gap:10px; min-width:0; }.public-calendar-filter label:first-of-type{flex:1;max-width:420px}.public-calendar-filter input,.public-calendar-filter select{width:100%;padding:10px 12px;border:1px solid #cdd9e6;background:#fff}.public-calendar-filter a{align-self:center;color:#526b83}
.public-calendar-section { background:#fff; border:1px solid #d9e3ef; border-radius:18px; overflow:hidden; }
.public-calendar-heading { padding:18px 20px; border-bottom:1px solid #e1e9f2; display:flex; justify-content:space-between; align-items:center; gap:16px; }.public-calendar-heading h2{margin:0}.public-calendar-heading span{color:#64748b}
.public-month-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }.public-weekday{padding:10px 12px;background:#f6f8fb;border-right:1px solid #e6edf4;font-weight:800;font-size:.82rem;text-transform:uppercase;color:#5e7188}.public-month-day{min-height:142px;padding:10px;border-top:1px solid #e6edf4;border-right:1px solid #e6edf4}.public-month-day.outside{background:#fafbfd;color:#9aa8b7}.public-month-day.today>header span{background:var(--public-accent);color:var(--public-accent-text,#10233f);border:2px solid color-mix(in srgb,var(--public-accent) 72%,#10233f);border-radius:999px;box-shadow:0 0 0 2px color-mix(in srgb,var(--public-accent) 22%,transparent)}.public-month-day>header span{display:inline-grid;place-items:center;width:30px;height:30px;font-weight:800}.public-month-day>div{display:grid;gap:6px;margin-top:6px}
.public-event-chip { display:grid; gap:2px; border-left:4px solid var(--event-color); background:color-mix(in srgb,var(--event-color) 12%,white); border-radius:8px; padding:7px 8px; text-decoration:none;color:#172b44;overflow:hidden}.public-event-chip span{font-size:.75rem;color:#64748b}.public-event-chip strong{font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.public-more{font-size:.78rem;color:#4c647d;text-decoration:none}
.public-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-height:500px}.public-week-grid>article{border-right:1px solid #e6edf4}.public-week-grid>article>header{padding:13px;background:#f7f9fc;display:grid;gap:2px}.public-week-grid>article>header span{color:#66788d;font-size:.82rem}.public-week-grid>article>div{padding:10px;display:grid;gap:8px}.public-week-card{border-top:4px solid var(--event-color);background:#f7f9fc;border-radius:10px;padding:10px;text-decoration:none;color:#16324d;display:grid;gap:4px}.public-week-card time,.public-week-card span{font-size:.78rem;color:#697b8e}
.public-agenda { padding:0 20px 20px; }.public-agenda-day{display:grid;grid-template-columns:180px 1fr;gap:22px;padding:22px 0;border-bottom:1px solid #e3eaf2}.public-agenda-day>header{display:grid;align-content:start;gap:3px}.public-agenda-day>header span{color:#687a8e}.public-agenda-day>div{display:grid;gap:10px}.public-agenda-card{display:grid;grid-template-columns:92px 1fr auto;gap:16px;align-items:center;border-left:5px solid var(--event-color);background:#f7f9fc;border-radius:12px;padding:15px;text-decoration:none;color:#142b45}.public-agenda-card time{font-weight:800}.public-agenda-card p{margin:0;color:#687a8e;font-size:.8rem}.public-agenda-card h3{margin:3px 0}.public-agenda-card span{color:#586d83;font-size:.9rem}.public-agenda-card b{color:var(--public-accent)}
.public-event-detail { max-width:1080px; margin:18px auto; background:#fff; border:1px solid #d9e3ef; border-top:8px solid var(--event-color); border-radius:18px; overflow:hidden; }.public-back-link{display:inline-block;margin:22px 26px 0;color:#536b84;text-decoration:none;font-weight:700}.public-event-detail>header{padding:24px 28px;border-bottom:1px solid #e1e9f2}.public-event-category{margin:0;text-transform:uppercase;letter-spacing:.12em;color:var(--event-color);font-weight:800;font-size:.78rem}.public-event-detail h1{font-size:clamp(2rem,4vw,3.4rem);margin:8px 0}.public-event-date{font-size:1.08rem;color:#5a6f84}.public-event-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px;padding:28px}.public-event-detail-grid h2{margin-top:0}.public-event-description{line-height:1.65}.public-event-detail aside{display:grid;align-content:start;gap:12px}.public-event-detail aside>div{display:grid;gap:4px;padding:14px;background:#f4f7fa;border-radius:12px}.public-event-detail aside small{color:#687a8e}.public-copy-status{font-size:.84rem;color:#47705b}
.public-empty{text-align:center;padding:60px 24px}.public-site-footer{display:flex;justify-content:space-between;gap:16px;padding:22px clamp(20px,5vw,72px);background:#e7edf4;color:#607286}.print-calendar{background:#fff;color:#111;padding:24px}.print-calendar header{border-bottom:2px solid #111;margin-bottom:16px}.print-calendar article{display:grid;grid-template-columns:170px 1fr;gap:18px;border-bottom:1px solid #bbb;padding:12px 0}.print-calendar h2,.print-calendar p{margin:0}
@media (max-width:980px){.public-calendar-toolbar{grid-template-columns:1fr}.public-calendar-filter{justify-content:flex-start}.public-week-grid{grid-template-columns:1fr}.public-week-grid>article{border-bottom:1px solid #e6edf4}.public-event-detail-grid{grid-template-columns:1fr}.public-agenda-day{grid-template-columns:1fr}.public-month-day{min-height:110px}.public-calendar-hero{flex-direction:column}}
@media (max-width:680px){.public-calendar-main{width:min(100% - 20px,1480px);padding-top:18px}.public-month-grid{display:block}.public-weekday{display:none}.public-month-day{min-height:0;border-right:0;padding:13px}.public-month-day.outside:has(.public-event-chip){display:block}.public-month-day.outside:not(:has(.public-event-chip)){display:none}.public-calendar-filter{display:grid;grid-template-columns:1fr}.public-calendar-filter label:first-of-type{max-width:none}.public-agenda-card{grid-template-columns:1fr}.public-agenda-card b{display:none}.public-site-footer{flex-direction:column}.public-hero-actions{width:100%}.public-hero-actions a{flex:1}}
@media print{.public-site-header,.public-site-footer,.public-calendar-hero,.public-calendar-toolbar{display:none!important}.public-calendar-main{width:100%;padding:0}.public-calendar-body{background:#fff}.print-calendar{padding:0}}

/* Session 10 Part 4: Calendar audiences and public event modal */
.calendar-advanced-options{grid-column:1/-1;border:1px solid #d7e1ee;border-radius:12px;padding:12px 14px;background:#f8fbff}.calendar-advanced-options summary{cursor:pointer;font-weight:700}.calendar-advanced-options label{display:block;margin-top:12px}.field-help{margin:7px 0 0;color:#657791;font-size:.9rem}.calendar-attendee-card[hidden]{display:none}.calendar-staff-search{display:block;max-width:430px;margin-bottom:14px}.calendar-attendee-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.calendar-attendee-option{display:flex;align-items:center;gap:10px;border:1px solid #d7e1ee;border-radius:12px;padding:11px 12px;background:#fff}.calendar-attendee-option[hidden]{display:none}.calendar-attendee-option input{width:18px;height:18px;flex:0 0 auto}.calendar-attendee-option span{display:grid;gap:2px}.calendar-attendee-option small{color:#657791}
.public-event-modal[hidden]{display:none}.public-event-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}.public-event-modal-backdrop{position:absolute;inset:0;background:rgba(9,29,50,.68)}.public-event-modal-panel{position:relative;width:min(760px,100%);max-height:min(86vh,820px);overflow:auto;background:#fff;border-radius:20px;padding:28px;box-shadow:0 24px 70px rgba(0,0,0,.28)}.public-event-modal-close{position:absolute;right:16px;top:14px;width:42px;height:42px;border-radius:50%;border:1px solid #ced9e7;background:#f5f8fc;font-size:28px;line-height:1;cursor:pointer}.public-modal-event{border-top:6px solid var(--event-color);padding-top:18px}.public-modal-event h2{font-size:clamp(1.7rem,4vw,2.4rem);margin:4px 52px 8px 0}.public-modal-location{display:grid;gap:3px;margin:18px 0}.public-modal-location small{color:#657791}.public-map-preview{width:100%;height:220px;border:0;border-radius:14px;margin:10px 0 18px;background:#edf3f9}.public-modal-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.public-modal-open{overflow:hidden}.public-modal-loading{padding:40px;text-align:center;color:#657791}@media(max-width:620px){.public-event-modal{padding:10px}.public-event-modal-panel{padding:22px 18px;border-radius:16px}.public-map-preview{height:180px}.public-modal-actions>*{width:100%;justify-content:center;text-align:center}}

/* Session 10 Part 5 — Calendar recurrence, invitations, role audiences, approvals */
.calendar-role-audience{margin:0 0 1rem;padding:1rem;border:1px solid var(--border,#d8e1ec);border-radius:14px;background:#f8fbff}.calendar-role-audience>strong{display:block;margin-bottom:.65rem}.calendar-role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.65rem}.calendar-role-option{display:flex;align-items:center;gap:.55rem;padding:.7rem .8rem;border:1px solid var(--border,#d8e1ec);border-radius:12px;background:#fff}.calendar-role-option input{width:18px;height:18px}.calendar-attendee-option{display:grid!important;grid-template-columns:minmax(0,1fr) 110px;align-items:center;gap:.75rem}.calendar-attendee-option>label{display:flex;align-items:center;gap:.7rem;min-width:0}.calendar-attendee-option select{width:100%;min-width:0;border-radius:10px}.calendar-recurrence-card .calendar-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-invitation-list,.calendar-approval-list{display:grid;gap:.85rem}.calendar-invitation-item,.calendar-approval-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--border,#d8e1ec);border-radius:14px;background:#fff}.calendar-invitation-item small,.calendar-approval-item small{display:block;color:var(--muted,#63758d);margin-top:.25rem}.calendar-rsvp-actions,.calendar-approval-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.calendar-approval-item{grid-template-columns:minmax(0,1fr) auto}.calendar-approval-item p{margin:.55rem 0 0}.calendar-approval-actions form{display:flex;align-items:center;gap:.55rem}.calendar-approval-actions input{min-width:220px;border-radius:10px}.status-pill.accepted{background:#e6f7ea;color:#137333}.status-pill.declined{background:#fde8e7;color:#b42318}.status-pill.tentative{background:#fff4d8;color:#8a5700}.status-pill.needs_action{background:#eef3f8;color:#52647b}
@media(max-width:850px){.calendar-recurrence-card .calendar-form-grid{grid-template-columns:1fr}.calendar-invitation-item,.calendar-approval-item{grid-template-columns:1fr}.calendar-invitation-item>.calendar-color-dot{display:none}.calendar-attendee-option{grid-template-columns:1fr}.calendar-approval-actions{align-items:stretch}.calendar-approval-actions form{width:100%;flex-wrap:wrap}.calendar-approval-actions input{min-width:0;flex:1}}


/* Session 10 Part 6: internal calendar modal and rejection workflow */
.calendar-event-trigger{font:inherit;text-align:left;cursor:pointer;border:0}
.calendar-agenda-item.calendar-event-trigger{width:100%;background:transparent}
.calendar-agenda-copy{display:grid;gap:.25rem;min-width:0}
.calendar-internal-modal[hidden]{display:none!important}
.calendar-internal-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:1.25rem}
.calendar-internal-modal-backdrop{position:absolute;inset:0;background:rgba(9,30,52,.68)}
.calendar-internal-modal-card{position:relative;width:min(680px,100%);max-height:calc(100vh - 2.5rem);overflow:auto;background:#fff;border-radius:24px;padding:2rem;box-shadow:0 24px 70px rgba(9,30,52,.28)}
.calendar-internal-modal-actions{position:absolute;top:1rem;right:1rem;display:flex;gap:.65rem;align-items:center}
.calendar-modal-close,.calendar-modal-edit{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;border:1px solid #cad7e6;background:#f2f7fb;color:#0d2744;font-size:1.5rem;text-decoration:none;cursor:pointer}
.calendar-modal-category{display:block;color:#4a90e2;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-right:6rem}
.calendar-internal-modal-card h2{font-size:2rem;margin:.55rem 5rem 1rem 0}
.calendar-modal-datetime{color:#647990;font-size:1.05rem;margin-bottom:1.25rem}
.calendar-modal-description{white-space:pre-wrap;margin-bottom:1.5rem}
.calendar-modal-details{display:grid;gap:.85rem;margin:0}
.calendar-modal-details>div{display:grid;grid-template-columns:110px 1fr;gap:1rem;padding-top:.75rem;border-top:1px solid #dbe4ee}
.calendar-modal-details dt{font-weight:800;color:#647990}.calendar-modal-details dd{margin:0}
body.calendar-modal-open{overflow:hidden}
.calendar-rejection-alert{display:grid;gap:.25rem}
@media(max-width:640px){.calendar-internal-modal{padding:.65rem}.calendar-internal-modal-card{padding:1.35rem;border-radius:18px}.calendar-internal-modal-card h2{font-size:1.55rem}.calendar-modal-details>div{grid-template-columns:1fr;gap:.2rem}}

/* Session 10 Part 7: Calendar operational core */
.calendar-personal-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.calendar-inline-check{display:flex;align-items:flex-start;gap:10px;padding:14px;border:1px solid var(--border,#d6e0eb);border-radius:12px;background:#f8fbfe}
.calendar-inline-check input{width:18px;height:18px;margin-top:2px;flex:0 0 auto}
.calendar-inline-check span{display:grid;gap:3px}.calendar-inline-check small{color:var(--muted,#64748b);font-weight:400}
.calendar-series-scope{margin:0 0 18px;padding:14px;border:1px solid var(--border,#d6e0eb);border-radius:12px;background:#f8fbfe;max-width:420px}
.calendar-series-scope label{display:grid;gap:7px;font-weight:700}
.calendar-attachment-upload{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);gap:16px;align-items:end}
.calendar-attachment-upload>label:first-child{display:grid;gap:8px;font-weight:700}
.calendar-attachment-list{display:grid;gap:8px;margin-top:16px}
.calendar-attachment-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--border,#d6e0eb);border-radius:10px;background:#fff}
.calendar-attachment-row span{display:grid;gap:2px}.calendar-attachment-row small{color:var(--muted,#64748b)}
.calendar-attendance-list,.calendar-history-list{display:grid;gap:10px}
.calendar-attendance-list article{display:grid;grid-template-columns:minmax(220px,1fr) 180px minmax(220px,1fr);gap:14px;align-items:center;padding:14px;border:1px solid var(--border,#d6e0eb);border-radius:12px;background:#fff}
.calendar-attendance-list article>div{display:grid;gap:3px}.calendar-attendance-list small{color:var(--muted,#64748b)}
.calendar-history-list article{padding:14px;border-left:4px solid var(--primary,#173a5e);border-radius:8px;background:#f8fbfe}
.calendar-history-list article>div{display:grid;gap:3px}.calendar-history-list small{color:var(--muted,#64748b)}
.calendar-history-list pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0 0;padding:10px;border-radius:8px;background:#fff;font-size:.85rem}
@media(max-width:800px){.calendar-personal-options,.calendar-attachment-upload{grid-template-columns:1fr}.calendar-attendance-list article{grid-template-columns:1fr}}
.calendar-modal-attachments,.public-modal-files,.public-event-files{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}
.calendar-modal-attachments:before,.public-modal-files>strong,.public-event-files>strong{content:'Attachments';width:100%;font-weight:800;color:var(--text,#0f2742)}

/* Session 10 Part 7 Hotfix 1: calendar privacy, ownership, manager filtering, richer internal modal */
.calendar-manager-toggle{display:inline-flex;align-items:center;gap:.55rem;font-weight:800;color:#17324f;white-space:nowrap}
.calendar-manager-toggle input{width:18px;height:18px;margin:0}
.calendar-event-owner{display:block;color:#5f7188;font-weight:700;white-space:normal}
.calendar-modal-owner{display:inline-flex;gap:.35rem;align-items:center;margin:-.35rem 0 1rem;padding:.35rem .6rem;border-radius:999px;background:#edf4fb;color:#304966;font-size:.9rem}
.calendar-modal-owner strong{color:#17324f}
.calendar-modal-map{margin:1rem 0;border:1px solid #dbe5ef;border-radius:16px;overflow:hidden;background:#eef4f9}
.calendar-modal-map iframe{display:block;width:100%;height:260px;border:0}
.calendar-modal-link-row{display:flex;flex-wrap:wrap;gap:.7rem;margin:1rem 0}
.calendar-modal-details dd small{display:block;margin-top:.2rem;color:#647990}
@media(max-width:760px){.calendar-manager-toggle{width:100%}.calendar-modal-map iframe{height:220px}}

/* Session 10 Part 7 Hotfix 5: compact optional event sections */
.calendar-form-disclosure {
    display: block;
    margin: 0;
    border: 1px solid var(--border, #d5dfec);
    border-radius: 18px;
    background: #fff;
    overflow: hidden;
}
.calendar-form-disclosure > summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 22px;
    color: var(--text, #102a4c);
    user-select: none;
}
.calendar-form-disclosure > summary::-webkit-details-marker { display: none; }
.calendar-form-disclosure > summary::after {
    content: "+";
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #eef4fa;
    font-size: 22px;
    line-height: 1;
    font-weight: 700;
}
.calendar-form-disclosure[open] > summary::after { content: "−"; }
.calendar-form-disclosure > summary span { display: grid; gap: 3px; }
.calendar-form-disclosure > summary strong { font-size: 1.05rem; }
.calendar-form-disclosure > summary small { color: var(--muted, #667a96); font-weight: 400; }
.calendar-form-disclosure[open] > summary { border-bottom: 1px solid var(--border, #d5dfec); }
.calendar-form-disclosure-body { padding: 22px; }
.calendar-form-disclosure-body > :first-child { margin-top: 0; }
.calendar-form-disclosure-body > :last-child { margin-bottom: 0; }
@media (max-width: 700px) {
    .calendar-form-disclosure > summary { padding: 15px 16px; }
    .calendar-form-disclosure-body { padding: 16px; }
}

/* Session 11: consolidated permission-aware navigation */
.primary-navigation a{position:relative}.primary-navigation a b{font:inherit;font-weight:750}.primary-navigation a.active{background:color-mix(in srgb,var(--brand-accent) 18%,transparent);box-shadow:inset 4px 0 0 var(--brand-accent);color:#fff}.primary-navigation a.active span{color:var(--brand-accent)}
.module-navigation{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem .9rem;margin-bottom:1rem;position:sticky;top:.5rem;z-index:25}.module-navigation>strong{white-space:nowrap;color:#263b55}.module-navigation>div{display:flex;gap:.35rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.module-navigation a{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .72rem;border-radius:10px;text-decoration:none;color:#42566f;font-weight:750}.module-navigation a:hover{background:#edf3f9}.module-navigation a.active{background:var(--brand-primary);color:var(--brand-primary-contrast,#fff)}.module-navigation a span{font-weight:900}
.signed-in-with-avatar{display:grid!important;grid-template-columns:42px minmax(0,1fr);gap:.65rem;align-items:center}.signed-in-with-avatar>span:last-child{min-width:0}.signed-in-with-avatar small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.staff-avatar{width:42px;height:42px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:color-mix(in srgb,var(--brand-accent) 30%,#fff);color:#17263b;font-weight:850;border:2px solid rgba(255,255,255,.45)}.staff-avatar img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:760px){.module-navigation{position:static;align-items:flex-start;flex-direction:column}.module-navigation>div{justify-content:flex-start;width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:.2rem}.module-navigation a{white-space:nowrap}}

/* Session 11 Sprint 2: clean reusable module navigation ribbon. */
.module-navigation-ribbon {
    margin: 0 0 20px;
    padding: 0;
    border: 0;
    background: transparent;
}
.module-navigation-ribbon-inner {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    overflow-x: auto;
    padding: 0 0 4px;
    scrollbar-width: thin;
}
.module-navigation-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-height: 44px;
    padding: 10px 18px;
    border: 1px solid #dbe5ef;
    border-radius: 12px;
    background: #edf3f9;
    color: #142a43;
    text-decoration: none;
    font-weight: 800;
    line-height: 1.15;
    white-space: nowrap;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}
.module-navigation-button:hover,
.module-navigation-button:focus-visible {
    background: #e2ebf4;
    border-color: #c7d6e5;
    color: #0d223a;
    text-decoration: none;
}
.module-navigation-button:active {
    transform: translateY(1px);
}
.module-navigation-button.active {
    background: var(--brand-primary);
    border-color: var(--brand-primary);
    color: #fff;
}
@media (max-width: 760px) {
    .module-navigation-ribbon {
        margin-bottom: 16px;
    }
    .module-navigation-ribbon-inner {
        gap: 8px;
        padding-bottom: 7px;
    }
    .module-navigation-button {
        min-height: 42px;
        padding: 9px 15px;
    }
}

/* Session 11 Sprint 3: unified module page framework and reusable content surfaces. */
.module-page-framework {
    margin: 0 0 22px;
    padding: 0;
}
.module-page-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 22px;
    margin: 0 0 16px;
    padding: 0 0 18px;
    border-bottom: 1px solid #dbe5ef;
}
.module-page-heading {
    min-width: 0;
}
.module-page-heading h1 {
    margin: 0;
    color: #102a46;
    font-size: clamp(1.7rem, 2.5vw, 2.35rem);
    line-height: 1.08;
    letter-spacing: -.025em;
}
.module-page-heading p {
    max-width: 760px;
    margin: 7px 0 0;
    color: #65778d;
    font-size: 1rem;
    line-height: 1.5;
}
.module-page-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}
.module-page-actions .button {
    min-height: 44px;
}
.module-page-framework .module-navigation-ribbon {
    margin-bottom: 0;
}

/* Shared listing toolbar: existing section headings become consistent without
   requiring each feature controller to be rewritten during this sprint. */
.panel > .section-heading:first-child,
.card > .section-heading:first-child,
.table-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
}
.panel > .section-heading:first-child input[type="search"],
.card > .section-heading:first-child input[type="search"],
.table-toolbar input[type="search"],
.table-search {
    width: min(100%, 360px);
    min-height: 42px;
    margin-left: auto;
}

/* Shared content container treatment. */
.main > .panel,
.main > .card,
.main > form > .panel {
    border: 1px solid #dbe5ef;
    border-radius: 16px;
}
.main > .panel + .panel,
.main > .card + .card,
.main > .panel + .card,
.main > .card + .panel {
    margin-top: 18px;
}

/* Shared empty-state treatment. */
.empty-state {
    display: grid;
    place-items: center;
    gap: 7px;
    min-height: 150px;
    padding: 30px 22px;
    border: 1px dashed #c9d7e5;
    border-radius: 14px;
    background: #f8fbfe;
    color: #62758c;
    text-align: center;
}
.empty-state h2,
.empty-state h3 {
    margin: 0;
    color: #17314d;
}
.empty-state p {
    max-width: 560px;
    margin: 0;
}
.empty-state .button {
    margin-top: 7px;
}

@media (max-width: 760px) {
    .module-page-framework { margin-bottom: 18px; }
    .module-page-header {
        align-items: stretch;
        flex-direction: column;
        gap: 14px;
        padding-bottom: 15px;
    }
    .module-page-actions {
        justify-content: flex-start;
    }
    .module-page-actions .button {
        flex: 1 1 auto;
    }
    .panel > .section-heading:first-child input[type="search"],
    .card > .section-heading:first-child input[type="search"],
    .table-toolbar input[type="search"],
    .table-search {
        width: 100%;
        margin-left: 0;
    }
}

/* Sprint 11 Part 4: Facilities & Resource Booking */
.two-column-layout{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(420px,1.25fr);gap:1rem;align-items:start}.stacked-form{display:grid;gap:.9rem}.stacked-form label{display:grid;gap:.35rem;font-weight:600}.stacked-form input,.stacked-form select,.stacked-form textarea,.content-toolbar input,.content-toolbar select,.table-actions input{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:.65rem;padding:.7rem .8rem;background:#fff;color:#172033}.stacked-form .check-row{display:flex;align-items:center;gap:.55rem;font-weight:500}.stacked-form .check-row input{width:auto}.form-grid{display:grid;gap:.8rem}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.resource-card-list{display:grid;gap:.75rem}.resource-card{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem;border:1px solid #dbe3ec;border-radius:.8rem;background:#fff}.resource-card h3,.resource-card p{margin:0}.resource-card p{margin-top:.25rem;color:#536174}.responsive-table-wrap{overflow-x:auto}.responsive-table-wrap table{width:100%;border-collapse:collapse}.responsive-table-wrap th,.responsive-table-wrap td{padding:.8rem;border-bottom:1px solid #e2e8f0;text-align:left;vertical-align:top}.responsive-table-wrap th{font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:#536174}.table-actions{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.table-actions form{display:flex;gap:.35rem;align-items:center;margin:0}.table-actions input{min-width:130px;padding:.45rem .55rem}.status-badge{display:inline-flex;padding:.25rem .55rem;border-radius:999px;font-size:.78rem;font-weight:700;background:#e2e8f0;color:#334155}.status-approved{background:#dcfce7;color:#166534}.status-pending{background:#fef3c7;color:#92400e}.status-rejected,.status-cancelled{background:#fee2e2;color:#991b1b}.content-toolbar{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;margin:1rem 0}.content-toolbar .search-field{flex:1 1 280px}.content-toolbar label:not(.search-field){min-width:160px}@media(max-width:850px){.two-column-layout{grid-template-columns:1fr}.form-grid.three{grid-template-columns:1fr}.resource-card{align-items:flex-start}.content-toolbar>*{width:100%}.content-toolbar label:not(.search-field){min-width:0}.table-actions{min-width:180px}}

.module-nav-badge{display:inline-grid;place-items:center;min-width:1.35rem;height:1.35rem;padding:0 .35rem;margin-left:.35rem;border-radius:999px;background:#dc2626;color:#fff;font-size:.72rem;font-style:normal;font-weight:800;line-height:1}.module-navigation-button.active .module-nav-badge{background:#fff;color:#b91c1c}

/* Sprint 11 Part 6: blackout-row alignment and public facility request polish */
.form-grid.four{grid-template-columns:minmax(180px,1.25fr) minmax(180px,1fr) minmax(180px,1fr) minmax(110px,.55fr);align-items:end}
.blackout-all-day-inline{min-height:46px;margin:0 0 1px;align-self:end;white-space:nowrap}
@media (max-width:1050px){.form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.blackout-all-day-inline{align-self:center}}
@media (max-width:650px){.form-grid.four{grid-template-columns:1fr}.blackout-all-day-inline{min-height:auto;align-self:start}}


/* Sprint 11 Part 6B: facility request experience, editing, options, pricing, agreement */
.facility-request-shell{max-width:1180px;margin:0 auto;padding:clamp(20px,4vw,52px)}
.facility-request-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:28px}
.facility-request-header h1{margin:.2rem 0;font-size:clamp(2rem,5vw,4rem)}
.facility-request-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:24px;align-items:start}
.facility-request-card{background:var(--surface,#fff);border:1px solid var(--border-color,#d7e0ea);border-radius:22px;padding:clamp(20px,3vw,34px)}
.facility-options-public{border:1px solid var(--border-color,#d7e0ea);border-radius:16px;padding:16px}
.facility-option-choice{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--border-color,#e4eaf1)}
.facility-option-choice:last-child{border-bottom:0}.facility-option-choice span{display:grid;gap:3px}.facility-option-choice small{color:var(--muted-text,#5b6f89)}
.facility-cost-estimate{display:grid;grid-template-columns:1fr auto;gap:4px 14px;align-items:center;padding:16px;border-radius:16px;background:var(--accent-soft,#eaf4fd)}
.facility-cost-estimate strong{font-size:1.3rem}.facility-cost-estimate small{grid-column:1/-1}
.facility-agreement{border:1px solid var(--border-color,#d7e0ea);border-radius:16px;padding:14px}.facility-agreement summary{font-weight:700;cursor:pointer}.facility-agreement-text{max-height:260px;overflow:auto;white-space:normal;padding:14px 0}
.facility-request-modal-panel{width:min(1180px,94vw);height:min(88vh,900px);padding:0;overflow:hidden}.facility-request-modal-panel iframe{width:100%;height:100%;border:0;background:var(--page-bg,#f5f8fc)}
.facility-editor-panel{max-width:900px}.resource-card .table-actions{align-items:center;flex-wrap:wrap}
@media(max-width:820px){.facility-request-grid{grid-template-columns:1fr}.facility-request-header{display:grid}.facility-request-modal-panel{width:96vw;height:92vh}.facility-request-shell{padding:18px}}

/* Sprint 11 Part 6D: facility resource management actions */
.resource-card-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .55rem;
}
.resource-card-actions form { margin: 0; }
.resource-rate-summary {
    margin: .5rem 0 0;
    color: var(--muted-text, #5f6f82);
    font-size: .9rem;
}
@media (max-width: 720px) {
    .resource-card-actions {
        width: 100%;
        justify-content: flex-start;
    }
}


/* Sprint 11 Part 6E: public facility request refinements */
.facility-option-choice>input[type=checkbox]{width:auto!important;min-width:18px;height:18px;margin-top:3px;flex:0 0 auto}
.facility-cost-estimate{margin-top:8px}
.facility-cost-estimate>div:first-child{min-width:0}
.facility-price-breakdown{display:grid;gap:5px;margin-top:10px;font-size:.92rem}
.facility-price-breakdown span{display:flex;justify-content:space-between;gap:18px}
.facility-price-breakdown i{font-style:normal;white-space:nowrap}
.facility-cost-estimate>small em{font-weight:400}
.agreement-required-setting:has(input:disabled){opacity:.55}
.facility-request-header{padding-right:52px}

/* Sprint 11 Part 6F: public facility request option/pricing layout polish */
.facility-options-public{margin-top:8px}
.facility-cost-estimate{display:block;padding:18px}
.facility-price-breakdown{display:table;width:100%;margin:0;border-collapse:collapse;font-size:1rem}
.facility-price-row{display:table-row}
.facility-price-row>span{display:table-cell;padding:6px 0;border-bottom:1px solid color-mix(in srgb,var(--border-color,#d7e0ea) 72%,transparent)}
.facility-price-row>span:last-child{text-align:right;white-space:nowrap;padding-left:24px}
.facility-price-base>span:first-child{font-weight:700}
.facility-price-total{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding-top:12px;margin-top:6px;border-top:2px solid color-mix(in srgb,var(--text-color,#12233f) 22%,transparent)}
.facility-price-total strong:first-child{font-size:1rem}
.facility-price-total #facilityEstimate{font-size:1.35rem;white-space:nowrap}
.facility-cost-estimate>small{display:block;margin-top:10px;line-height:1.4}
.facility-cost-estimate>small strong{font-weight:700}
@media (max-width:640px){.facility-price-total{align-items:flex-start}.facility-price-row>span:last-child{padding-left:14px}}

/* Sprint 11 Part 6G: polished public facility request sections and options */
.facility-request-section-title{display:flex;align-items:center;gap:10px;margin:22px 0 12px;font-size:1.08rem;line-height:1.3}
.facility-request-section-title>span{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:999px;background:color-mix(in srgb,var(--brand-primary,#4da9f0) 14%,white);color:var(--text-color,#12233f);font-size:.86rem;font-weight:800;flex:0 0 auto}
.facility-options-public{margin-top:8px;padding:0;border:0;border-radius:0}
.facility-option-list{display:grid;border:1px solid var(--border-color,#d7e0ea);border-radius:16px;overflow:hidden;background:var(--surface-color,#fff)}
.facility-option-choice{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px 18px;border:0;border-bottom:1px solid var(--border-color,#e4eaf1);cursor:pointer;margin:0}
.facility-option-choice:last-child{border-bottom:0}
.facility-option-choice:hover{background:color-mix(in srgb,var(--brand-primary,#4da9f0) 5%,white)}
.facility-option-choice>input[type=checkbox]{width:18px!important;min-width:18px;height:18px;margin:0;align-self:center}
.facility-option-body{display:grid!important;gap:5px;min-width:0}
.facility-option-heading{display:flex!important;align-items:center;gap:9px;flex-wrap:wrap}
.facility-option-heading strong{font-size:1rem}
.facility-option-description{display:block;color:var(--muted-text,#5b6f89);font-size:.92rem;line-height:1.35}
.facility-option-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:.68rem;line-height:1;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.facility-option-badge.required{background:color-mix(in srgb,#f2b705 20%,white);color:#674b00}
.facility-option-badge.optional{background:color-mix(in srgb,var(--border-color,#d7e0ea) 62%,white);color:var(--muted-text,#5b6f89)}
.facility-option-price{display:grid!important;justify-items:end;gap:2px;text-align:right;white-space:nowrap}
.facility-option-price strong{font-size:.98rem}
.facility-option-price small{font-size:.78rem;color:var(--muted-text,#5b6f89)}
.facility-charge-section,.facility-agreement-section,.facility-submit-section{margin-top:8px}
.facility-fee-disclaimer{margin:12px 0 0;font-size:1rem;line-height:1.5}
.facility-agreement-section .facility-agreement{margin-top:0}
.facility-submit-section .button{width:100%}
@media (max-width:640px){
  .facility-option-choice{grid-template-columns:auto minmax(0,1fr);padding:14px}
  .facility-option-price{grid-column:2;justify-items:start;text-align:left}
}

/* Increment 002: inherited organization branding */
.brand .brand-mark img{display:block;width:100%;height:100%;object-fit:contain;border-radius:inherit}

.academic-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1rem 0}.academic-summary>div{display:grid;gap:.2rem;padding:1rem;border:1px solid #d7dee8;border-radius:.75rem;background:#f8fafc}.academic-summary strong{font-size:1.45rem;color:#102a43}.academic-summary span{font-size:.85rem;color:#64748b}@media(max-width:700px){.academic-summary{grid-template-columns:1fr}}

/* Increment 011: My Team */
.team-metrics{margin-bottom:1rem}.team-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.team-member-card{border:1px solid var(--border-color,#d8e1ec);border-radius:16px;padding:1rem;background:#fff}.team-member-heading{display:flex;align-items:center;gap:.8rem;margin-bottom:.9rem}.team-member-heading h3{margin:0}.team-member-heading p{margin:.2rem 0 0;color:var(--muted,#61738b)}.staff-avatar.large{width:54px;height:54px;min-width:54px}.team-member-card dl{margin:0 0 1rem;display:grid;gap:.45rem}.team-member-card dl div{display:grid;grid-template-columns:90px 1fr;gap:.5rem}.team-member-card dt{font-weight:700;color:var(--muted,#61738b)}.team-member-card dd{margin:0}.text-danger{color:#b42318!important}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.metric-card{background:#fff;border:1px solid var(--border-color,#d8e1ec);border-radius:16px;padding:1rem}.metric-card span{display:block;color:var(--muted,#61738b);font-weight:700}.metric-card strong{display:block;font-size:1.8rem;margin-top:.25rem}

/* Increment 017: Time Off coverage selection */
.coverage-choice-actions{align-items:center;flex-wrap:wrap}.coverage-assignment-dialog{width:min(620px,calc(100vw - 2rem))}.coverage-assignment-dialog .dialog-body{padding-top:.5rem}.coverage-assignment-dialog select{width:100%}

/* Increment 020: inline time-off absence details */
.inline-details{display:inline-block;position:relative;margin:0 .35rem .35rem 0}.inline-details>summary{list-style:none;cursor:pointer}.inline-details>summary::-webkit-details-marker{display:none}.inline-details[open]{display:block;min-width:20rem;max-width:34rem}.inline-details-card{margin-top:.6rem;padding:.8rem;border:1px solid var(--border,#d9dee7);border-radius:.65rem;background:var(--surface,#fff);box-shadow:0 8px 24px rgba(15,23,42,.08)}.absence-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 1rem}.absence-detail-grid>div{display:flex;flex-direction:column;gap:.15rem}.absence-detail-grid strong{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#64748b)}.absence-detail-grid span{font-size:.92rem;color:var(--text,#172033);overflow-wrap:anywhere}@media(max-width:720px){.inline-details[open]{min-width:0;max-width:100%}.absence-detail-grid{grid-template-columns:1fr}}

/* Increment 021: preserve approved-then-cancelled absences in calendar history */
.absence-calendar-table tr.absence-calendar-cancelled td{background:#f8fafc;color:#64748b}
.absence-calendar-table tr.absence-calendar-cancelled strong{text-decoration:line-through;text-decoration-thickness:1px}
.status-pill.cancelled{background:#e2e8f0;color:#475569}


/* Increment 022: staff photos */
.staff-table-person{display:flex;align-items:center;gap:.75rem;min-width:220px}.staff-list-avatar{width:46px;height:46px;min-width:46px;border-color:#d7e0eb;background:color-mix(in srgb,var(--brand-accent) 22%,#f8fafc)}
.staff-photo-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.25rem;align-items:center;margin-bottom:1rem}.staff-photo-preview{display:flex;gap:1rem;align-items:center}.staff-photo-preview h2{margin:0 0 .25rem}.staff-photo-preview p{margin:0;color:var(--muted,#61738b);max-width:48rem}.staff-profile-avatar{width:112px;height:112px;min-width:112px;font-size:2rem;border:3px solid #d7e0eb;background:color-mix(in srgb,var(--brand-accent) 22%,#f8fafc)}.staff-photo-actions{display:flex;align-items:flex-end;gap:.6rem;flex-wrap:wrap}.staff-photo-actions form{display:flex;align-items:flex-end;gap:.6rem;flex-wrap:wrap}.file-upload-label{display:grid;gap:.35rem;font-weight:700}.file-upload-label input{max-width:260px}.staff-photo-panel>.field-help{grid-column:1/-1;margin:0;color:var(--muted,#61738b);font-size:.86rem}
@media(max-width:800px){.staff-photo-panel{grid-template-columns:1fr}.staff-photo-actions{align-items:stretch}.staff-photo-actions form{align-items:stretch}.staff-photo-preview{align-items:flex-start}.staff-profile-avatar{width:88px;height:88px;min-width:88px}}

/* Increment 028: meeting finishing polish */
.meeting-general-notes form{width:100%}.meeting-general-notes-field{display:block;width:100%;min-height:150px;box-sizing:border-box;resize:vertical}
@media print{.app-sidebar,.app-header,.meeting-subnav,.page-actions,.form-actions,.row-actions{display:none!important}.app-main{margin:0!important;padding:0!important}.panel{box-shadow:none!important;border-color:#d7e0ea!important}}
.action-review-form{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.action-review-form input{min-width:170px;max-width:240px}


/* Increment 030: unified action details */
.detail-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:0 0 18px}.detail-list div{padding:12px;border:1px solid var(--border-color,#dbe3ec);border-radius:12px;background:#fff}.detail-list dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:#52627a}.detail-list dd{margin:5px 0 0;font-weight:700}.prose-block{white-space:normal;padding:16px;border-radius:12px;background:#fff;border:1px solid var(--border-color,#dbe3ec)}

/* Increment 031: action status and priority emphasis */
.action-metric-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.action-highlight-card{position:relative;overflow:hidden;border-left:6px solid var(--action-accent,#74839a)}
.action-highlight-card small{font-weight:700;margin-top:.2rem}
.action-status-open{--action-accent:#3b82f6;background:#eff6ff}
.action-status-in_progress,.action-status-pending{--action-accent:#f59e0b;background:#fffbeb}
.action-status-submitted{--action-accent:#8b5cf6;background:#f5f3ff}
.action-status-completed,.action-status-closed{--action-accent:#16a34a;background:#f0fdf4}
.action-status-cancelled,.action-status-missed,.action-status-failed,.action-status-not_completed,.action-status-incomplete,.action-status-expired{--action-accent:#dc2626;background:#fef2f2}
.action-priority-low{--action-accent:#64748b;background:#f8fafc}
.action-priority-normal{--action-accent:#3b82f6;background:#eff6ff}
.action-priority-high{--action-accent:#f59e0b;background:#fffbeb}
.action-priority-urgent{--action-accent:#dc2626;background:#fef2f2}
@media(max-width:700px){.action-metric-grid{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.action-metric-grid{grid-template-columns:1fr}}

/* Increment 044: House Points foundation */
.house-score-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:20px}.house-score-card{position:relative;background:#fff;border:1px solid #dfe6ef;border-top:6px solid var(--house-color);border-radius:16px;padding:20px;box-shadow:0 6px 18px rgba(19,35,58,.06)}.house-score-card h2{margin:8px 0}.house-score-card strong{display:block;font-size:2rem;line-height:1}.house-score-card small{color:#68758a}.house-rank{position:absolute;right:14px;top:12px;font-weight:800;color:#68758a}.two-column-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.section-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.activity-list,.settings-list{display:grid;gap:10px}.activity-row,.settings-list>div{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #edf1f5}.activity-row span:nth-child(2){display:grid}.activity-row small{color:#68758a}.points-badge{display:inline-flex;min-width:46px;justify-content:center;padding:5px 8px;border-radius:999px;font-weight:800}.points-badge.positive{background:#e8f7ee;color:#176b3a}.points-badge.negative{background:#fff0ee;color:#a52b22}.compact-form-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:end;margin-bottom:18px}.house-color-dot{width:18px;height:18px;border-radius:50%;display:inline-block;flex:0 0 auto}.form-panel{max-width:850px}.optional{font-weight:400;color:#68758a}@media(max-width:800px){.two-column-grid{grid-template-columns:1fr}.compact-form-row{grid-template-columns:1fr}.house-score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.house-score-grid{grid-template-columns:1fr}}

/* Increment 045: House Points administration and limits */
.live-search-control{position:relative}.live-search-results{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 4px);max-height:320px;overflow:auto;background:#fff;border:1px solid var(--border-color,#d7e0ea);border-radius:12px;box-shadow:0 14px 34px rgba(15,23,42,.15)}.live-search-result{display:grid;width:100%;gap:2px;padding:11px 13px;border:0;border-bottom:1px solid #edf1f5;background:#fff;text-align:left;cursor:pointer}.live-search-result:hover,.live-search-result:focus{background:#f3f7fb}.live-search-result small,.live-search-empty{color:#68758a}.live-search-empty{padding:13px}.selected-search-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;margin-top:8px;padding:10px 12px;border:1px solid #c9d8e8;border-radius:12px;background:#f4f8fc}.selected-search-item strong,.selected-search-item small{grid-column:1}.selected-search-item button{grid-column:2;grid-row:1/3;border:0;background:transparent;font-size:1.4rem;cursor:pointer}.settings-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.settings-tabs a{padding:9px 13px;border:1px solid var(--border-color,#d7e0ea);border-radius:999px;background:#fff;text-decoration:none;font-weight:700}.settings-tabs a.active{background:var(--brand-accent,#1456a0);border-color:var(--brand-accent,#1456a0);color:var(--brand-accent-contrast,#fff)}.management-list{display:grid;gap:10px}.management-row{border:1px solid var(--border-color,#d7e0ea);border-radius:12px;background:#fff}.management-row>summary{display:flex;align-items:center;gap:12px;padding:13px;cursor:pointer;list-style:none}.management-row>summary::-webkit-details-marker{display:none}.management-row .row-hint{margin-left:auto;color:#68758a;font-size:.85rem}.management-editor{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:0 13px 13px}.management-editor>form:first-child{display:grid;grid-template-columns:2fr auto auto auto auto;gap:9px;align-items:end}.management-editor label{display:grid;gap:4px}.management-row.static{display:flex;justify-content:space-between;align-items:center;padding:13px}.management-row.static>span{display:grid;gap:3px}.management-row.static small{color:#68758a}.limit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.limit-grid fieldset{display:grid;gap:10px;border:1px solid var(--border-color,#d7e0ea);border-radius:12px;padding:14px}.limit-grid legend{font-weight:800;padding:0 6px}.limit-grid label,.custom-limit-fields label{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:12px;align-items:center}.exception-options{display:flex;gap:18px;margin:14px 0}.custom-limit-fields{display:grid;gap:10px;margin:10px 0 16px;max-width:520px}
@media(max-width:850px){.management-editor{grid-template-columns:1fr}.management-editor>form:first-child{grid-template-columns:1fr 1fr}.limit-grid{grid-template-columns:1fr}.compact-form-row{grid-template-columns:1fr 1fr}.compact-form-row .button{grid-column:1/-1}}
@media(max-width:560px){.management-editor>form:first-child,.compact-form-row{grid-template-columns:1fr}.management-row>summary{flex-wrap:wrap}.management-row .row-hint{margin-left:0}.limit-grid label,.custom-limit-fields label{grid-template-columns:1fr}}

/* Increment 047: House Points bulk awards */
.selected-list-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.65rem}.selected-list-heading span{color:var(--muted-text);font-size:.9rem}.bulk-selected-list{display:grid;gap:.6rem}.bulk-selected-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.75rem;border:1px solid var(--border-color);border-radius:.8rem;background:var(--surface-muted)}.bulk-selected-item span{min-width:0;display:grid;gap:.15rem}.bulk-selected-item small{color:var(--muted-text);overflow-wrap:anywhere}.bulk-award-summary{margin-bottom:1rem}.bulk-failure-list{display:grid;gap:.55rem}.bulk-failure-list>div{display:grid;gap:.15rem;padding:.7rem .8rem;border-left:4px solid var(--danger-color,#b42318);background:var(--surface-muted);border-radius:.45rem}.bulk-failure-list span{color:var(--muted-text)}.live-search-result:disabled{opacity:.65;cursor:not-allowed}.empty-note{margin:0;color:var(--muted-text)}
@media(max-width:640px){.selected-list-heading{align-items:flex-start}.bulk-selected-item{grid-template-columns:1fr}.bulk-selected-item .button{width:100%}}

/* Increment 054: Lesson Plans */
.lesson-plan-stats{margin-bottom:1rem}.lesson-plan-stats .stat-card{text-decoration:none;color:inherit}.lesson-plan-stats .stat-card:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(15,35,55,.09)}
.compact-filter{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.compact-filter select{min-width:150px}.compact-filter label{display:flex;align-items:center;gap:.4rem;margin:0;font-weight:600}.compact-filter input[type=checkbox]{width:auto}
.status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.28rem .62rem;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;background:#eef2f6;color:#43536a}.status-draft{background:#eef2f6;color:#43536a}.status-submitted{background:#fff3cd;color:#725400}.status-approved{background:#dff5e8;color:#17643a}.status-returned{background:#fde4e4;color:#8b1f1f}
.lesson-plan-form .panel{margin-bottom:1rem}.lesson-plan-form textarea{resize:vertical;min-height:84px}.lesson-sequence{display:grid;gap:.8rem}.lesson-sequence label{display:grid;grid-template-columns:2.2rem 1fr;gap:.25rem .7rem;align-items:center}.lesson-sequence label>span{grid-row:1/3;display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--brand-primary);color:#fff;font-weight:800}.lesson-sequence textarea{grid-column:2}
.sticky-form-actions{position:sticky;bottom:0;z-index:5;display:flex;gap:.7rem;justify-content:flex-end;padding:.8rem 1rem;background:rgba(255,255,255,.96);border:1px solid #dfe5ec;border-radius:12px;box-shadow:0 -4px 18px rgba(20,40,60,.08);margin-top:1rem}
.review-card-list{display:grid;gap:1rem}.review-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,430px);gap:1.25rem;padding:1rem;border:1px solid #dfe5ec;border-radius:12px;background:#fff}.review-card h2{margin:.45rem 0 .2rem}.review-card p{margin:.2rem 0}.review-actions{display:flex;gap:.55rem;align-items:flex-start;justify-content:flex-end;flex-wrap:wrap}.review-actions form{margin:0}.return-form{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:.5rem;width:100%}.return-form input{min-width:0}.priority-row{background:#fff6f6}.selection-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.55rem}.selection-row{display:flex;align-items:center;gap:.7rem;padding:.75rem;border:1px solid #dfe5ec;border-radius:10px;margin:0}.selection-row input{width:auto}.selection-row span{display:grid}.selection-row small{color:#66758a}
@media(max-width:760px){.review-card{grid-template-columns:1fr}.review-actions{justify-content:flex-start}.return-form{grid-template-columns:1fr}.sticky-form-actions{justify-content:stretch}.sticky-form-actions .button{flex:1}.lesson-sequence label{grid-template-columns:2rem 1fr}}

/* Increment 054 Patch 1: lesson-plan polish, assignments, and sharing */
.lesson-plan-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin:0 0 1rem}.lesson-plan-summary>a{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:64px;padding:.9rem 1rem;border:1px solid var(--border-color,#d7e0ea);border-radius:14px;background:#fff;text-decoration:none;color:inherit;box-shadow:0 3px 12px rgba(15,35,55,.04)}.lesson-plan-summary>a:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(15,35,55,.09)}.lesson-plan-summary span{font-weight:700;color:var(--muted,#61738b)}.lesson-plan-summary strong{font-size:1.35rem;line-height:1}.lesson-plan-list-panel{overflow:hidden}
.lesson-plan-form,.lesson-settings-form{display:grid;gap:1rem}.lesson-plan-form .panel,.lesson-settings-form .panel{margin:0}.lesson-plan-section{padding:1.35rem}.lesson-plan-section>.panel-heading{margin-bottom:1.1rem}.lesson-plan-section>.panel-heading h2{margin:0 0 .25rem}.lesson-plan-section>.panel-heading p{margin:0;color:var(--muted,#61738b)}
.lesson-plan-grid{display:grid;gap:1rem}.lesson-plan-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-plan-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.lesson-plan-grid label,.lesson-plan-field,.lesson-settings-form label{display:grid;gap:.42rem;margin:0;min-width:0;font-weight:700;color:#172b43}.lesson-plan-grid label>span,.lesson-plan-field>span,.lesson-settings-form label>span{display:block}.lesson-plan-form input,.lesson-plan-form select,.lesson-plan-form textarea,.lesson-settings-form input,.lesson-settings-form select{box-sizing:border-box;width:100%;min-width:0;border:1px solid #c9d6e5;border-radius:11px;padding:11px 13px;background:#fff;color:#13263d;font:inherit;line-height:1.35}.lesson-plan-form input,.lesson-plan-form select,.lesson-settings-form input,.lesson-settings-form select{min-height:44px}.lesson-plan-form textarea{min-height:104px;resize:vertical}.lesson-plan-form input:focus,.lesson-plan-form select:focus,.lesson-plan-form textarea:focus,.lesson-settings-form input:focus,.lesson-settings-form select:focus{outline:3px solid color-mix(in srgb,var(--brand-primary) 20%,transparent);border-color:var(--brand-primary)}.lesson-plan-field.full{margin-top:1rem}.lesson-plan-form [disabled]{background:#f4f6f8;color:#526173;cursor:not-allowed}
.lesson-sequence{display:grid;gap:1rem}.lesson-sequence label{display:grid;grid-template-columns:2.35rem minmax(0,1fr);gap:.45rem .75rem;align-items:start;margin:0;padding:1rem;border:1px solid #dbe4ee;border-radius:14px;background:#fbfdff}.lesson-sequence label>b{align-self:center;line-height:2.1rem}.lesson-sequence .sequence-number{grid-row:1/3;display:grid;place-items:center;width:2.15rem;height:2.15rem;border-radius:50%;background:var(--brand-primary);color:#fff;font-weight:800}.lesson-sequence textarea{grid-column:2;width:100%;box-sizing:border-box;margin:0}
.lesson-share-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.75rem}.lesson-share-row{display:grid;grid-template-columns:minmax(0,1fr) 118px;align-items:center;gap:.75rem;padding:.8rem;border:1px solid #dbe4ee;border-radius:12px;background:#fbfdff}.lesson-share-row>label{display:flex;align-items:center;gap:.7rem;margin:0;min-width:0}.lesson-share-row input[type=checkbox]{width:18px;min-width:18px;height:18px;min-height:18px;padding:0}.lesson-share-row label>span{display:grid;min-width:0}.lesson-share-row small{color:var(--muted,#61738b);font-weight:400;overflow-wrap:anywhere}.lesson-share-row select{width:100%;min-width:0}
.requirements-table{display:grid;border:1px solid #dbe4ee;border-radius:14px;overflow:hidden}.requirements-row{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(120px,.55fr) minmax(220px,1fr);gap:1rem;align-items:center;padding:.85rem 1rem;border-bottom:1px solid #e6edf4;background:#fff}.requirements-row:last-child{border-bottom:0}.requirements-heading{background:#f4f8fc;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;font-weight:800;color:#53657b}.staff-cell{display:grid;gap:.18rem;min-width:0}.staff-cell small{color:var(--muted,#61738b);overflow-wrap:anywhere}.requirement-toggle{display:flex!important;align-items:center;gap:.55rem!important}.requirement-toggle input{width:18px!important;min-width:18px!important;height:18px!important;min-height:18px!important;padding:0!important}.requirement-toggle span{display:inline!important}.requirements-row select{width:100%;min-width:0}
@media(max-width:900px){.lesson-plan-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.requirements-row{grid-template-columns:minmax(180px,1fr) 110px minmax(180px,1fr)}}
@media(max-width:700px){.lesson-plan-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-plan-grid.two,.lesson-plan-grid.three{grid-template-columns:1fr}.lesson-plan-section{padding:1rem}.lesson-share-grid{grid-template-columns:1fr}.lesson-share-row{grid-template-columns:1fr}.requirements-heading{display:none}.requirements-row{grid-template-columns:1fr;gap:.65rem}.requirements-row select{width:100%}.sticky-form-actions{position:static;flex-direction:column}.sticky-form-actions .button{width:100%}.lesson-sequence label{grid-template-columns:2.15rem minmax(0,1fr)}}

/* Increment 054 Patch 3: lesson plan template configuration */
.lesson-plan-dynamic-section .panel-heading h2{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}
.required-marker{display:inline-flex;align-items:center;border-radius:999px;padding:.18rem .55rem;background:#fff1f0;color:#a52a22;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.template-section-list{display:grid;gap:.65rem}
.template-section-row{display:grid;grid-template-columns:80px minmax(260px,2fr) minmax(130px,.7fr) 120px 100px;gap:.75rem;align-items:center;padding:.8rem;border:1px solid #d9e3ef;border-radius:12px;background:#fff}
.template-section-row>div{display:grid;gap:.4rem}.template-section-row input,.template-section-row select{width:100%}.template-section-row small{color:#64748b}
.template-heading{background:#eef4fa;font-weight:800;color:#334155}
.lesson-template-form .requirement-toggle{justify-content:flex-start}
@media(max-width:900px){.template-heading{display:none}.template-section-row{grid-template-columns:72px 1fr}.template-section-row>select,.template-section-row>.requirement-toggle{grid-column:2}.template-section-row:before{content:'Order';font-size:.75rem;font-weight:700;color:#64748b}}

/* Increment 054 Patch 5: scalable sharing, print, archive, and review badge correction */
.lesson-list-tools{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.table-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.table-actions form{margin:0}.lesson-share-search-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(180px,1fr);gap:1rem}.lesson-share-results{margin-top:.5rem;border:1px solid #dbe4ee;border-radius:12px;background:#fff;box-shadow:0 12px 30px rgba(15,35,55,.1);overflow:hidden}.lesson-share-results button{display:grid;width:100%;padding:.75rem 1rem;border:0;border-bottom:1px solid #edf1f5;background:#fff;text-align:left;cursor:pointer}.lesson-share-results button:hover{background:#f5f9fd}.lesson-share-results small,.lesson-share-row small{display:block;color:var(--muted,#61738b)}.lesson-share-results p{margin:0;padding:1rem;color:var(--muted,#61738b)}.lesson-share-favorites,.lesson-current-shares{margin-top:1rem}.lesson-share-favorites h3,.lesson-current-shares h3{margin:0 0 .65rem}.lesson-share-row{grid-template-columns:minmax(0,1fr) minmax(130px,auto) auto}.lesson-share-row.favorite-card{grid-template-columns:minmax(0,1fr) auto}.lesson-share-row.favorite-card>div,.share-row-buttons{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.favorite-label{font-size:.85rem;font-weight:700;color:#8b6500}.button.ghost{background:transparent;border-color:transparent;color:var(--muted,#61738b)}.lesson-plan-print{max-width:900px;margin:0 auto;background:#fff;padding:2rem}.lesson-plan-print>header{display:flex;justify-content:space-between;gap:1rem;border-bottom:2px solid #172b43;padding-bottom:1rem;margin-bottom:1rem}.lesson-plan-print h1{margin:.15rem 0}.print-plan-meta{display:flex;gap:1rem;flex-wrap:wrap;margin:0 0 1.25rem}.print-plan-meta>div{min-width:140px}.print-plan-meta dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:#61738b;font-weight:800}.print-plan-meta dd{margin:.2rem 0 0;font-weight:700}.lesson-plan-print section{break-inside:avoid;margin:0 0 1rem}.lesson-plan-print section h2{font-size:1.05rem;border-bottom:1px solid #dbe4ee;padding-bottom:.3rem}.lesson-plan-print section div{white-space:normal;line-height:1.5}
@media(max-width:700px){.lesson-share-search-row{grid-template-columns:1fr}.lesson-share-row,.lesson-share-row.favorite-card{grid-template-columns:1fr}.lesson-list-tools{align-items:stretch}.lesson-list-tools>*{width:100%}}
@media print{body{background:#fff!important}.app-sidebar,.app-header,.module-nav,.print-hide,.footer{display:none!important}.app-shell,.app-main,.content{display:block!important;margin:0!important;padding:0!important;max-width:none!important}.lesson-plan-print{max-width:none;padding:0}.lesson-plan-print>header{margin-top:0}.lesson-plan-print section{page-break-inside:avoid}}

/* Increment 054 Patch 6 */
.lesson-section-assets{margin-top:14px;padding-top:14px;border-top:1px solid var(--border,#d7e0ea)}
.lesson-section-assets h3{margin:0 0 10px;font-size:.92rem}
.lesson-link-list{display:grid;gap:8px;margin-bottom:10px}
.lesson-link-row{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(180px,1fr) auto;gap:8px;align-items:center}
.lesson-link-row input{width:100%}
.asset-remove{display:inline-flex;gap:6px;align-items:center;font-size:.85rem;white-space:nowrap}
.lesson-plan-review-panel{border-color:#9fc9ff;background:#f6faff}
.lesson-plan-review-panel .row-actions{justify-content:flex-end}
.lesson-share-picker.read-only .lesson-share-row{grid-template-columns:minmax(0,1fr) 180px}
.template-section-row .requirement-toggle.compact{font-size:.78rem}
@media(max-width:760px){.lesson-link-row{grid-template-columns:1fr}.lesson-share-picker.read-only .lesson-share-row{grid-template-columns:1fr}}
@media print{
  .page-header,.module-nav,.app-sidebar,.app-header,.page-actions,.print-hide,.sticky-form-actions,.lesson-plan-review-panel,.footer{display:none!important}
  .app-shell,.app-main,.content{margin:0!important;padding:0!important;max-width:none!important;width:100%!important}
  .lesson-plan-print{margin:0!important;padding:0!important;max-width:none!important}
  .lesson-plan-print>header{display:block!important;margin:0 0 18px!important;padding:0!important}
  .lesson-plan-print .eyebrow{margin-top:0!important}
}

/* Increment 054 Patch 7: formatted lesson-plan view and presentation mode */
.lesson-plan-floating-view{position:fixed;right:24px;bottom:24px;z-index:75;box-shadow:0 12px 30px rgba(15,35,55,.22)}
.lesson-plan-view-header{align-items:flex-start}
.lesson-plan-web-view{max-width:980px;margin:0 auto 2rem;background:#fff;border:1px solid #dbe4ee;border-radius:18px;box-shadow:0 14px 40px rgba(20,42,68,.08);overflow:hidden}
.lesson-plan-web-title{padding:2rem 2.2rem 1.4rem;background:linear-gradient(135deg,#f7fbff,#eef5fc);border-bottom:1px solid #dbe4ee}
.lesson-plan-web-title h1{margin:.2rem 0 .5rem;font-size:clamp(1.9rem,4vw,3rem);line-height:1.12;color:#12263f}
.lesson-plan-web-title p:last-child{margin:0;color:#52657c;font-size:1rem}
.lesson-plan-web-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:0;margin:0;padding:0 2.2rem;border-bottom:1px solid #e4ebf3;background:#fff}
.lesson-plan-web-meta>div{padding:1rem 1rem 1rem 0}
.lesson-plan-web-meta dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:#6b7c90;font-weight:800}
.lesson-plan-web-meta dd{margin:.28rem 0 0;font-weight:750;color:#172b43}
.lesson-plan-web-sections{padding:1rem 2.2rem 2.2rem}
.lesson-plan-web-section{padding:1.3rem 0;border-bottom:1px solid #e5ebf2}
.lesson-plan-web-section:last-child{border-bottom:0}
.lesson-plan-web-section h2{margin:0 0 .75rem;font-size:1.2rem;color:#172b43}
.lesson-plan-web-copy{font-size:1rem;line-height:1.72;color:#263b53;overflow-wrap:anywhere}
.lesson-plan-web-links{margin-top:1rem;padding:1rem;border-radius:12px;background:#f5f9fd;border:1px solid #dbe8f5}
.lesson-plan-web-links h3{margin:0 0 .5rem;font-size:.83rem;text-transform:uppercase;letter-spacing:.05em;color:#52657c}
.lesson-plan-web-links ul{margin:0;padding-left:1.2rem}.lesson-plan-web-links a{font-weight:700}
.lesson-plan-web-media{display:grid;gap:1rem;margin-top:1rem}
.lesson-plan-web-media figure{margin:0;padding:0;border-radius:14px;overflow:hidden;background:#f3f6f9;border:1px solid #dbe4ee}
.lesson-plan-web-media img,.lesson-plan-web-media video{display:block;width:100%;max-height:680px;object-fit:contain;background:#0d1723}
.lesson-plan-web-media figcaption{padding:.65rem .85rem;font-size:.84rem;color:#52657c;background:#fff}
.lesson-plan-file-link{margin:.35rem 0;padding:.75rem .9rem;border:1px solid #dbe4ee;border-radius:10px;background:#f8fbfe}
.lesson-plan-fullscreen-body{margin:0;background:#eef3f8;color:#172b43;font-family:Arial,sans-serif}
.lesson-plan-fullscreen-toolbar{position:sticky;top:0;z-index:50;display:flex;justify-content:flex-end;gap:.6rem;padding:.75rem 1rem;background:rgba(255,255,255,.96);border-bottom:1px solid #dbe4ee;backdrop-filter:blur(8px)}
.lesson-plan-fullscreen-body .lesson-plan-web-view{margin:1.25rem auto 2rem}
@media(max-width:700px){.lesson-plan-floating-view{right:14px;bottom:14px}.lesson-plan-web-title,.lesson-plan-web-sections{padding-left:1.15rem;padding-right:1.15rem}.lesson-plan-web-meta{padding:0 1.15rem}.lesson-plan-web-view{border-radius:12px}.lesson-plan-view-header .page-actions{width:100%}.lesson-plan-view-header .page-actions>*{flex:1}}
@media print{
  .lesson-plan-view-header,.lesson-plan-fullscreen-toolbar,.lesson-plan-floating-view{display:none!important}
  .lesson-plan-fullscreen-body{background:#fff!important}
  .lesson-plan-web-view{max-width:none!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
  .lesson-plan-web-title{padding:0 0 1rem!important;background:#fff!important}
  .lesson-plan-web-meta{padding:0!important}
  .lesson-plan-web-sections{padding:0!important}
  .lesson-plan-web-section{break-inside:avoid}
  .lesson-plan-web-media video{display:none!important}
  .lesson-plan-web-media video+figcaption:before{content:'Video: '}
}

/* Increment 055: Standards Repository */
.standards-filter-grid{display:grid;grid-template-columns:minmax(220px,2fr) repeat(4,minmax(140px,1fr)) auto;gap:12px;align-items:end}.standards-filter-grid label,.standards-form label{display:grid;gap:6px}.standards-filter-grid label>span,.standards-form label>span{font-size:.82rem;font-weight:700;color:var(--muted,#667085)}.standards-filter-actions{display:flex;gap:8px;align-items:center}.standards-table td small,.standards-import-layout td small,.standards-report-layout td small{display:block;margin-top:4px;color:var(--muted,#667085)}.standards-title-link{font-weight:700;text-decoration:none}.standards-title-link:hover{text-decoration:underline}.standards-detail-layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(250px,.8fr);gap:18px;align-items:start}.standards-record section+section{border-top:1px solid var(--border,#e5e7eb);margin-top:24px;padding-top:20px}.standards-record-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:18px}.standards-record-meta>span:not(.status-badge){background:var(--surface-subtle,#f5f7fa);border:1px solid var(--border,#e5e7eb);border-radius:999px;padding:5px 9px;font-size:.85rem}.standards-breadcrumb{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:0 0 22px;font-size:.9rem}.standards-prose{line-height:1.65;white-space:normal}.standards-tags{display:flex;gap:7px;flex-wrap:wrap}.standards-tags span{background:var(--surface-subtle,#f5f7fa);border:1px solid var(--border,#e5e7eb);border-radius:999px;padding:5px 10px;font-size:.85rem}.standards-child-list{display:grid;gap:8px}.standards-child-list a{display:grid;gap:3px;padding:12px;border:1px solid var(--border,#e5e7eb);border-radius:10px;text-decoration:none}.standards-child-list a:hover{background:var(--surface-subtle,#f5f7fa)}.standards-child-list span{color:var(--muted,#667085)}.standards-record-aside{position:sticky;top:92px}.standards-record-aside dl{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px 12px;margin:0}.standards-record-aside dt{font-weight:700;color:var(--muted,#667085)}.standards-record-aside dd{margin:0;overflow-wrap:anywhere}.standards-form{display:grid;gap:16px}.standards-form textarea{resize:vertical}.standards-import-layout,.standards-mapping-layout,.standards-report-layout{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.7fr);gap:18px;align-items:start}.standards-report-layout{grid-template-columns:1fr 1fr}.standards-report-cards{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:12px;margin-bottom:18px}.standards-report-cards article{background:var(--surface,#fff);border:1px solid var(--border,#e5e7eb);border-radius:12px;padding:16px}.standards-report-cards span{display:block;color:var(--muted,#667085);font-size:.82rem;font-weight:700}.standards-report-cards strong{display:block;font-size:1.7rem;margin-top:6px}.status-badge.status-active{background:#e8f7ee;color:#17643a}.status-badge.status-draft{background:#fff5d6;color:#7a5700}.status-badge.status-retired{background:#f0f1f3;color:#4b5563}.help-text{font-size:.88rem;color:var(--muted,#667085);line-height:1.5}.checkbox-row{display:flex!important;grid-template-columns:none!important;flex-direction:row;gap:9px!important;align-items:flex-start}.checkbox-row input{margin-top:3px;width:auto}
@media(max-width:1100px){.standards-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.standards-search-wide{grid-column:1/-1}.standards-report-cards{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.standards-filter-grid,.standards-detail-layout,.standards-import-layout,.standards-mapping-layout,.standards-report-layout{grid-template-columns:1fr}.standards-filter-actions{grid-column:1}.standards-report-cards{grid-template-columns:repeat(2,1fr)}.standards-record-aside{position:static}.standards-record-aside dl{grid-template-columns:1fr}.standards-record-aside dd{margin-bottom:8px}}


/* Increment 056: Lesson Plan Standards integration */
.lesson-standard-picker{position:relative}.lesson-standard-results{display:grid;margin-top:.5rem;border:1px solid var(--border-color,#dbe4ee);border-radius:12px;background:#fff;box-shadow:0 12px 30px rgba(15,35,55,.1);overflow:hidden}.lesson-standard-results button{display:grid;gap:.2rem;width:100%;padding:.8rem 1rem;border:0;border-bottom:1px solid #edf1f5;background:#fff;text-align:left;cursor:pointer}.lesson-standard-results button:hover,.lesson-standard-results button:focus{background:#f5f9fd}.lesson-standard-results span,.lesson-standard-results small,.lesson-selected-standard small,.lesson-plan-standard-cards small{display:block;color:var(--muted,#61738b)}.lesson-standard-results p{margin:0;padding:1rem;color:var(--muted,#61738b)}.lesson-selected-standards{display:grid;gap:.65rem;margin-top:1rem}.lesson-selected-standard{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.8rem 1rem;border:1px solid var(--border-color,#dbe4ee);border-radius:12px;background:#f8fbfe}.lesson-selected-standard span{min-width:0}.lesson-plan-standard-cards{display:grid;gap:.65rem}.lesson-plan-standard-cards article{display:grid;gap:.2rem;padding:.85rem 1rem;border:1px solid #dbe4ee;border-radius:12px;background:#f8fbfe}.lesson-plan-print-standards div{margin:.35rem 0}.lesson-plan-print-standards small{color:#52657c}@media(max-width:700px){.lesson-selected-standard{grid-template-columns:1fr}.lesson-selected-standard .button{width:100%}}

/* Increment 056 final standards refinements */
.lesson-standard-search-grid{display:grid;grid-template-columns:minmax(240px,2fr) repeat(3,minmax(140px,1fr));gap:.75rem;align-items:end}.standards-usage-report{margin-top:18px}@media(max-width:900px){.lesson-standard-search-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.lesson-standard-search-grid{grid-template-columns:1fr}}
