.landing-shell{gap:16px;width:100%;min-width:0;display:grid}.landing-main-content{box-sizing:border-box;flex:auto;gap:16px;min-width:0;min-height:0;padding:18px 24px 24px;display:grid;overflow-y:auto}@media (width<=768px){.landing-main-content{padding:12px}}.landing-dashboard-notice{border:1px solid var(--blue-200);border-radius:var(--radius);background:var(--blue-50);color:var(--blue-700);align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.landing-dashboard-notice .material-icons{flex:none;font-size:20px}.landing-dashboard-notice p{font-size:var(--fs-sm);margin:0;line-height:1.5}.landing-dashboard-notice--error{border-color:color-mix(in srgb, var(--orange) 36%, var(--blue-200));background:var(--orange-50);color:var(--blue-700)}.panel-heading span,.welcome-copy p,.stat-card small,.stat-card span,.schedule-row small,.notice-item span{color:var(--text-secondary)}.primary-action,.hero-action,.outline-action,.panel-filter,.text-link{border-radius:var(--radius-sm);min-height:40px;font:inherit;cursor:pointer;justify-content:center;align-items:center;gap:8px;font-weight:800;text-decoration:none;display:inline-flex}.primary-action,.hero-action{border:1px solid var(--blue-600);background:var(--blue-600);color:#fff;padding:0 16px}.primary-action:hover,.hero-action:hover{background:var(--blue-700);border-color:var(--blue-700)}.outline-action{border:1px solid var(--blue-200);background:var(--card);color:var(--blue-700);padding:0 16px}.outline-action:hover{background:var(--blue-50)}.panel-filter,.text-link{border:1px solid var(--blue-200);background:var(--card);color:var(--blue-700);padding:0 14px}.panel-filter:hover{background:var(--blue-50)}.text-link{color:var(--blue-600);background:0 0;border:0;padding:0;text-decoration:none}.panel,.stat-card{border:1px solid var(--blue-100);background:var(--card);box-shadow:var(--shadow-sm)}.welcome-panel{border:1px solid var(--blue-100);border-top:4px solid var(--blue-600);border-radius:var(--radius);background:var(--card);min-height:180px;box-shadow:var(--shadow-sm);grid-template-columns:1.25fr .75fr;align-items:center;gap:32px;padding:28px 36px;display:grid}.welcome-panel--auth{background:color-mix(in srgb, var(--blue-50) 60%, var(--card));grid-template-columns:1.2fr .8fr;gap:28px;min-height:0;padding:24px 32px}.welcome-actions{flex-wrap:wrap;gap:12px;margin-top:18px;display:flex}.welcome-copy{gap:10px;min-width:0;display:grid}.welcome-eyebrow,.welcome-copy>span{color:var(--blue-600);font-size:15px;font-weight:800;line-height:1.4}.welcome-panel--auth .welcome-copy h1{letter-spacing:-.02em;font-size:clamp(28px,2.4vw,36px)}.welcome-copy h1{color:var(--blue-700);margin:0;font-size:32px;line-height:1.25}.welcome-panel--auth .welcome-copy p{max-width:42ch;color:var(--text-secondary);font-size:16px}.welcome-copy p{margin:0;font-size:15px;line-height:1.6}.welcome-illustration-wrap{border:1px solid var(--blue-100);border-radius:var(--radius);background:var(--blue-50);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--card) 80%, transparent);overflow:hidden}.welcome-panel--auth .welcome-illustration-wrap{min-height:148px}.hero-school-image{object-fit:cover;object-position:center;border-radius:0;width:100%;height:130px;display:block}.welcome-panel--auth .hero-school-image{height:148px}.stat-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;display:grid}.stat-card{border-radius:var(--radius);min-height:80px;transition:transform var(--transition-all), border-color var(--transition-all), box-shadow var(--transition-all);grid-template-columns:48px minmax(0,1fr);align-items:center;gap:14px;padding:12px 16px;display:grid}.stat-card:hover{border-color:var(--blue-300);box-shadow:var(--shadow-md);transform:translateY(-2px)}a.stat-card--link{color:inherit;cursor:pointer;text-decoration:none}a.stat-card--link:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.stat-card--featured{border-left:4px solid var(--stat-accent);padding-left:14px}.stat-icon{border-radius:var(--radius-sm);background:var(--stat-surface);width:44px;height:44px;color:var(--stat-accent);place-items:center;display:grid}.stat-icon .material-icons{font-size:24px}.stat-card div:last-child{gap:1px;display:grid}.stat-copy{gap:2px;display:grid}.stat-card--numeric{text-align:center;grid-template-columns:1fr;justify-items:center}.stat-card--numeric .stat-icon{margin-inline:auto}.stat-card--numeric .stat-copy{text-align:center;justify-items:center}.stat-card strong{color:var(--blue-700);font-size:22px;line-height:1.15}.stat-card span{font-size:13px}.stat-card small{font-size:11px;line-height:1.35}.stat-trend{color:var(--success);margin:0;font-size:11px;font-style:normal;font-weight:700;line-height:1.3}.stat-card--numeric .stat-trend{text-align:center}.dashboard-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:16px;display:grid}.dashboard-grid--public{grid-template-columns:minmax(0,1fr)}.dashboard-grid>.panel{flex-direction:column;align-self:stretch;display:flex}.dashboard-grid .panel-heading{flex-shrink:0}.dashboard-grid .schedule-list,.dashboard-grid .notice-list,.dashboard-grid .leave-list{flex:auto;align-content:start}.lower-grid{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.panel{border-radius:var(--radius);min-width:0;padding:18px}.panel-heading{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.panel-heading h2{color:var(--blue-700);margin:0;font-size:18px;line-height:1.25}.panel-heading-copy{align-items:flex-start;gap:10px;min-width:0;display:flex}.panel-heading-text{gap:2px;min-width:0;display:grid}.panel-heading-text span{font-size:12px;line-height:1.4}.approvals-panel .panel-heading-text{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.panel-heading-icon{color:var(--blue-600);font-size:20px}.chart-panel{min-height:0}.dashboard-empty--compact{padding:1rem}.chart-frame{border:1px solid var(--blue-100);border-radius:var(--radius-sm);background:var(--blue-50);min-height:180px;overflow:hidden}.chart-canvas{width:100%;height:180px;display:block}.dashboard-empty{text-align:center;color:var(--text-muted);justify-items:center;gap:8px;padding:2rem 1rem;display:grid}.dashboard-empty-icon{color:var(--blue-300);font-size:2.5rem}.dashboard-empty p{font-size:var(--fs-sm);margin:0}.schedule-list,.notice-list,.leave-list{gap:0;display:grid}.schedule-row{border-bottom:1px solid color-mix(in srgb, var(--calendar-border) 55%, var(--blue-100));transition:background-color var(--transition-all);background:0 0;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 6px;display:grid}.schedule-row:hover{background-color:var(--calendar-surface)}.schedule-row:last-child{border-bottom:none}.schedule-row b{border-radius:var(--radius-full);background:var(--calendar-accent);color:#fff;place-items:center;width:28px;height:28px;display:grid}.schedule-row div{gap:2px;min-width:0;display:grid}.schedule-row strong{overflow-wrap:anywhere;word-break:break-word;min-width:0;line-height:1.35;font-size:var(--fs-xs)}.schedule-row small{color:var(--text-secondary);overflow-wrap:anywhere;word-break:break-word;font-size:14px;line-height:1.35}.schedule-row i{border:1px solid var(--calendar-border);border-radius:var(--radius-sm);background:var(--calendar-surface);color:var(--calendar-text);white-space:nowrap;justify-self:end;padding:4px 8px;font-size:12px;font-style:normal;font-weight:800}.leave-row{border-bottom:1px solid color-mix(in srgb, var(--leave-accent,var(--teal)) 18%, var(--blue-100));transition:background-color var(--transition-all), border-color var(--transition-all);background:0 0;border-left:3px solid #0000;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 6px;display:grid}.leave-row:hover{background-color:var(--leave-surface,var(--teal-50));border-left-color:var(--leave-accent,var(--teal))}.leave-row:last-child{border-bottom:none}.leave-row b{border-radius:var(--radius-full);background:var(--leave-accent,var(--teal));color:#fff;place-items:center;width:28px;height:28px;display:grid}.leave-row div{gap:2px;min-width:0;display:grid}.leave-row strong{overflow-wrap:anywhere;word-break:break-word;min-width:0;line-height:1.35;font-size:var(--fs-xs)}.leave-row small{color:var(--text-secondary);overflow-wrap:anywhere;word-break:break-word;font-size:11px;line-height:1.35}.leave-row i{border:1px solid color-mix(in srgb, var(--leave-accent,var(--teal)) 24%, var(--blue-100));border-radius:var(--radius-sm);background:color-mix(in srgb, var(--leave-surface,var(--teal-50)) 80%, var(--card));color:var(--blue-700);white-space:nowrap;justify-self:end;padding:4px 8px;font-size:12px;font-style:normal;font-weight:800}.leave-type-legend{border-top:1px solid var(--blue-100);flex-wrap:wrap;gap:8px 14px;margin-top:14px;padding-top:12px;display:flex}.leave-type-legend-item{color:var(--text-secondary);align-items:center;gap:6px;font-size:12px;font-weight:700;line-height:1.35;display:inline-flex}.leave-type-legend-swatch{border-radius:var(--radius-full);background:var(--leave-accent,var(--teal));width:10px;height:10px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--leave-accent,var(--teal)) 30%, white)}.notice-item{border-bottom:1px solid var(--blue-100);grid-template-columns:32px minmax(0,1fr);align-items:center;gap:10px;padding:8px 2px;display:grid}.notice-item:last-child{border-bottom:none}.notice-item>div:first-child{border-radius:var(--radius-sm);border:1px solid color-mix(in srgb, var(--notice-accent) 24%, white);background:var(--notice-surface);width:32px;height:32px;color:var(--notice-accent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--notice-accent) 8%, white);place-items:center;display:grid}.notice-item>div:first-child .material-icons{font-size:18px}.notice-item-copy{min-width:0;display:block}.notice-item--link{color:inherit;transition:background-color var(--transition-all);text-decoration:none}.notice-item--link:hover{background-color:var(--blue-50)}.notice-item--link strong{text-overflow:ellipsis;white-space:nowrap;font-weight:700;font-size:var(--fs-xs);line-height:1.35;display:block;overflow:hidden}.count-pill{border-radius:var(--radius-full);background:var(--error);color:#fff;justify-content:center;align-items:center;min-width:24px;height:24px;font-size:12px;display:inline-flex}.approval-queue-list{background:var(--blue-100);border:1px solid var(--blue-100);border-radius:var(--radius-sm);gap:1px;display:grid;overflow:hidden}.approval-queue-item{background:var(--card);color:inherit;transition:background-color var(--transition-all);grid-template-columns:minmax(100px,auto) minmax(0,1fr) auto 20px;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;display:grid}.approval-queue-item:hover{background:var(--blue-50)}.approval-queue-count{color:var(--blue-600);white-space:nowrap;font-size:13px;font-weight:800}.approval-queue-copy{gap:2px;min-width:0;display:grid}.approval-queue-copy strong{color:var(--text-primary);font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;line-height:1.3;overflow:hidden}.approval-queue-copy span{color:var(--text-secondary);font-size:12px}.approval-queue-status{border-radius:var(--radius-full);background:var(--warning-50);color:var(--warning-700);white-space:nowrap;padding:4px 8px;font-size:11px;font-style:normal;font-weight:800}.approval-queue-chevron{color:var(--blue-300);font-size:20px}.approval-queue-empty{background:var(--blue-50);color:var(--text-secondary);text-align:center;place-items:center;gap:8px;padding:24px;display:grid}.approval-queue-empty .material-icons{color:var(--success);font-size:32px}.approval-queue-empty p{margin:0}.icon-small{border:1px solid var(--blue-200);border-radius:var(--radius-sm);background:var(--card);width:44px;height:44px;color:var(--blue-700);cursor:pointer;transition:transform var(--transition-all), background-color var(--transition-all), border-color var(--transition-all), box-shadow var(--transition-all);place-items:center;display:inline-grid}.icon-small:hover{background-color:var(--blue-50);border-color:var(--blue-300);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.icon-small:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.page-enter{animation:.22s ease-out both dashboard-home-enter}.page-enter-2{animation-delay:45ms}.page-enter-3{animation-delay:80ms}.page-enter-4{animation-delay:.11s}@keyframes dashboard-home-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.page-enter,.page-enter-2,.page-enter-3,.page-enter-4{animation:none}.landing-shell.dashboard-home .stat-card:hover,.landing-shell.dashboard-home .icon-small:hover,.landing-shell.dashboard-home .dashboard-grid>.panel:hover{transform:none}}.landing-shell.dashboard-home .welcome-panel--auth{background:color-mix(in srgb, var(--blue-50) 42%, var(--card));box-shadow:var(--shadow-md)}.landing-shell.dashboard-home .welcome-panel--auth .welcome-eyebrow{border:1px solid var(--blue-200);border-radius:var(--radius-full);background:color-mix(in srgb, var(--card) 82%, var(--blue-100));width:fit-content;box-shadow:inset 0 1px 0 color-mix(in srgb, var(--card) 70%, transparent);align-items:center;padding:5px 14px;display:inline-flex}.landing-shell.dashboard-home .welcome-panel--auth .welcome-illustration-wrap{box-shadow:0 10px 28px color-mix(in srgb, var(--blue-600) 14%, transparent), inset 0 1px 0 color-mix(in srgb, var(--card) 80%, transparent)}.landing-shell.dashboard-home .stat-icon{background:color-mix(in srgb, var(--stat-accent) 14%, var(--stat-surface));box-shadow:inset 0 1px 0 #ffffffb3, 0 4px 14px color-mix(in srgb, var(--stat-accent) 16%, transparent)}.landing-shell.dashboard-home .stat-card--featured{background:color-mix(in srgb, var(--stat-accent) 7%, var(--card));box-shadow:var(--shadow-md)}.landing-shell.dashboard-home .stat-card:hover{box-shadow:var(--shadow-md)}.landing-shell.dashboard-home .dashboard-grid>.panel{transition:box-shadow var(--transition-all), transform var(--transition-all), border-color var(--transition-all)}.landing-shell.dashboard-home .dashboard-grid>.panel:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.landing-shell.dashboard-home .notice-panel{border-top:4px solid var(--orange-600);background:color-mix(in srgb, var(--orange-50) 42%, var(--card))}.landing-shell.dashboard-home .schedule-panel{border-top:4px solid var(--blue-600);background:color-mix(in srgb, var(--blue-50) 40%, var(--card))}.landing-shell.dashboard-home .leave-panel{border-top:4px solid var(--teal);background:color-mix(in srgb, var(--teal-50) 40%, var(--card))}.landing-shell.dashboard-home .panel-heading-icon{border-radius:12px;flex-shrink:0;place-items:center;width:40px;height:40px;font-size:22px;display:grid;box-shadow:inset 0 1px #ffffffa6}.landing-shell.dashboard-home .notice-panel .panel-heading-icon{background:color-mix(in srgb, var(--orange-100) 70%, var(--orange-50));color:var(--orange-600)}.landing-shell.dashboard-home .schedule-panel .panel-heading-icon{background:color-mix(in srgb, var(--blue-100) 70%, var(--blue-50));color:var(--blue-600)}.landing-shell.dashboard-home .leave-panel .panel-heading-icon{background:color-mix(in srgb, var(--teal-100) 70%, var(--teal-50));color:var(--teal)}.landing-shell.dashboard-home .notice-item--link{border-left:3px solid #0000}.landing-shell.dashboard-home .notice-item--link:hover{border-left-color:var(--notice-accent)}.landing-shell.dashboard-home .schedule-row,.landing-shell.dashboard-home .leave-row{border-left:3px solid #0000}.landing-shell.dashboard-home .schedule-row:hover{border-left-color:var(--calendar-accent)}.landing-shell.dashboard-home .leave-row:hover{border-left-color:var(--leave-accent,var(--teal))}.landing-shell.dashboard-home .schedule-row i,.landing-shell.dashboard-home .leave-row i{box-shadow:inset 0 1px #ffffffb3}@media (width<=1280px){.dashboard-grid,.lower-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=768px){.dashboard-grid{grid-template-rows:auto;grid-template-columns:1fr}.welcome-panel{grid-template-columns:1fr;gap:16px;min-height:0;padding:18px 16px}.welcome-copy h1{font-size:clamp(22px,6.4vw,28px)}.welcome-actions{flex-direction:column;width:100%;margin-top:12px}.welcome-actions .primary-action,.welcome-actions .outline-action{width:100%;min-height:44px}.hero-school-image{width:100%;max-width:100%;height:auto;max-height:140px;margin-top:0}.panel{padding:14px}.panel-heading{gap:10px;margin-bottom:12px}.panel-heading h2{font-size:16px}.schedule-row,.leave-row{grid-template-columns:28px minmax(0,1fr);align-items:start;gap:8px 10px;padding:12px 4px}.schedule-row b,.leave-row b{width:26px;height:26px;margin-top:2px;font-size:12px}.schedule-row i,.leave-row i{white-space:normal;grid-column:2;justify-self:start;line-height:1.3}.stat-grid,.lower-grid{grid-template-columns:1fr}.approval-queue-item{grid-template-columns:1fr auto;grid-template-areas:"count status""copy copy";gap:6px}.approval-queue-count{grid-area:count}.approval-queue-status{grid-area:status;justify-self:end}.approval-queue-copy{grid-area:copy}.approval-queue-chevron{display:none}}@media (width<=420px){.landing-main-content{gap:12px;padding:10px}.welcome-panel{gap:12px;padding:14px 12px}.welcome-copy p{font-size:14px}.schedule-row small,.leave-row small{font-size:13px}}.welcome-panel--auth{isolation:isolate;border:1px solid var(--blue-200);background:var(--blue-50);min-height:212px;box-shadow:var(--shadow-md);border-radius:18px;grid-template-columns:minmax(0,1fr) auto;align-items:start;padding:18px 22px;display:grid;position:relative;overflow:hidden}.welcome-panel--auth:after{content:"";z-index:2;background:linear-gradient(90deg, color-mix(in srgb, var(--card) 97%, transparent) 0%, color-mix(in srgb, var(--card) 90%, transparent) 28%, color-mix(in srgb, var(--card) 36%, transparent) 52%, transparent 72%);pointer-events:none;position:absolute;inset:0}.welcome-panel--auth .welcome-copy{z-index:3;align-content:start;gap:2px;max-width:520px;display:grid;position:relative}.welcome-kicker{color:var(--blue-600);letter-spacing:.28em;margin-bottom:4px;font-size:10px;font-weight:900}.welcome-panel--auth .welcome-copy h1{color:var(--text-primary);letter-spacing:-.02em;align-items:center;gap:8px;margin:0;font-size:clamp(28px,2.3vw,36px);line-height:1.08;display:flex}.welcome-wave{filter:saturate(1.16);font-size:30px}.welcome-user-name{color:var(--text-primary);margin-top:5px;font-size:18px;font-weight:800;line-height:1.2}.welcome-school-name{color:var(--blue-600);font-size:13px;font-weight:800}.welcome-panel--auth .welcome-helper{max-width:44ch;color:var(--blue-800);margin-top:8px;font-size:12px;font-weight:700;line-height:1.4}.welcome-panel--auth .home-clock{z-index:4;color:var(--text-secondary);text-align:right;justify-items:end;gap:1px;padding-top:1px;font-size:11px;display:grid;position:relative}.welcome-panel--auth .home-clock strong{color:var(--text-primary);font-size:11px}.welcome-panel--auth .welcome-illustration-wrap{z-index:0;border-radius:inherit;box-shadow:none;pointer-events:none;background:0 0;border:0;position:absolute;inset:0;overflow:hidden}.welcome-panel--auth .welcome-illustration-wrap picture{width:100%;height:100%;display:block;position:absolute;inset:0}.welcome-panel--auth .hero-school-image{object-fit:cover;object-position:center 45%;width:100%;height:100%;display:block}@media (width<=1279.98px){.welcome-panel--auth .hero-school-image{object-position:56% 45%}}@media (width<=1023.98px){.welcome-panel--auth{min-height:204px;padding:18px 20px}.welcome-panel--auth .hero-school-image{object-position:58% 45%}}@media (width<=767.98px){.welcome-panel--auth{grid-template-columns:1fr;min-height:250px;padding:16px}.welcome-panel--auth:after{background:linear-gradient(180deg, color-mix(in srgb, var(--card) 96%, transparent) 0%, color-mix(in srgb, var(--card) 84%, transparent) 58%, color-mix(in srgb, var(--card) 26%, transparent) 100%)}.welcome-panel--auth .home-clock{text-align:left;justify-items:start;margin-top:6px}.welcome-panel--auth .welcome-copy h1{font-size:clamp(25px,8vw,32px)}.welcome-panel--auth .hero-school-image{object-position:58% 45%;max-height:none}}.quick-menu-panel{--home-panel-padding:16px;padding:var(--home-panel-padding);border:1px solid var(--dashboard-panel-border);border-radius:var(--radius);background:var(--dashboard-panel-surface);box-shadow:var(--shadow-sm)}.quick-menu-helper{color:var(--text-secondary);margin:0 0 12px;font-size:12px;line-height:1.45}.quick-menu-state{border:1px dashed var(--blue-200);background:var(--blue-50);min-height:88px;color:var(--text-secondary);text-align:center;border-radius:14px;place-items:center;padding:16px;font-size:13px;line-height:1.45;display:grid}.quick-menu-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.quick-menu-card{--quick-accent:var(--blue-600);--quick-surface:var(--blue-50);border:1px solid color-mix(in srgb, var(--quick-accent) 18%, var(--blue-100));background:linear-gradient(135deg, color-mix(in srgb, var(--quick-surface) 86%, var(--card)), color-mix(in srgb, var(--quick-surface) 52%, var(--card)));min-width:0;min-height:88px;color:inherit;box-shadow:inset 0 1px 0 color-mix(in srgb, var(--card) 80%, transparent);border-radius:14px;grid-template-columns:44px minmax(0,1fr) 32px;align-items:center;gap:8px;padding:12px;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s;display:grid}.quick-menu-card:hover,.quick-menu-card:focus-visible{border-color:color-mix(in srgb, var(--quick-accent) 36%, var(--blue-200));box-shadow:0 8px 20px color-mix(in srgb, var(--quick-accent) 10%, transparent);outline:none;transform:translateY(-1px)}.quick-menu-card--wide{grid-column:1/-1;min-height:76px}.quick-menu-icon{background:color-mix(in srgb, var(--quick-accent) 15%, var(--card));width:44px;height:44px;color:var(--quick-accent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--quick-accent) 10%, transparent);border-radius:50%;place-items:center;display:grid}.quick-menu-icon .material-icons{font-size:25px}.quick-menu-copy{gap:2px;min-width:0;display:grid}.quick-menu-copy strong{color:var(--text-primary);text-wrap:balance;font-size:15px;font-weight:800;line-height:1.22}.quick-menu-copy small{color:var(--text-secondary);text-wrap:balance;font-size:11px;line-height:1.28}.quick-menu-arrow{border:1px solid color-mix(in srgb, var(--quick-accent) 20%, var(--blue-100));background:color-mix(in srgb, var(--card) 92%, var(--quick-surface));width:32px;height:32px;color:var(--quick-accent);border-radius:50%;place-items:center;display:grid}.quick-menu-arrow .material-icons{font-size:20px}.quick-menu-card--violet{--quick-accent:var(--indigo-600);--quick-surface:var(--indigo-50)}.quick-menu-card--rose{--quick-accent:var(--rose);--quick-surface:var(--rose-50)}.quick-menu-card--blue{--quick-accent:var(--blue-600);--quick-surface:var(--blue-50)}.quick-menu-card--green{--quick-accent:var(--success);--quick-surface:var(--success-50)}.quick-menu-card--cyan{--quick-accent:var(--cyan-600);--quick-surface:var(--cyan-50)}.quick-menu-card--purple{--quick-accent:var(--purple);--quick-surface:var(--purple-50)}@media (width<=1279.98px){.quick-menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-menu-card--wide{grid-column:1/-1}.quick-menu-grid[data-count="4"] .quick-menu-card--wide{grid-column:auto}}@media (width<=1023.98px){.quick-menu-card{min-height:84px}}@media (width<=767.98px){.quick-menu-panel{--home-panel-padding:14px}.quick-menu-grid{grid-template-columns:1fr}.quick-menu-card--wide{grid-column:auto}.quick-menu-card{min-height:80px}}.calendar-panel{align-content:start;gap:12px;min-width:0;height:100%;display:grid}.calendar-panel-heading{margin-bottom:0}.calendar-month-label{border-radius:var(--radius-sm);background:var(--blue-50);color:var(--blue-700);text-align:center;padding:10px 12px;font-weight:800}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.calendar-weekdays span{color:var(--text-secondary);text-align:center;font-size:12px;font-weight:700}.calendar-day{min-height:34px;color:var(--text-primary);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;font-size:13px;display:grid;position:relative}.calendar-day--today{background:var(--blue-600);color:var(--card);box-shadow:var(--shadow-sm);font-weight:800}.calendar-day--event:after{content:"";border-radius:var(--radius-full);background:var(--orange);width:4px;height:4px;position:absolute;bottom:3px}.calendar-day--empty{visibility:hidden}.calendar-empty-state{border-top:1px solid var(--blue-100);color:var(--text-secondary);text-align:center;margin:0;padding:8px 10px 2px;font-size:12px;line-height:1.4}.upcoming-events-panel{grid-area:upcoming;min-width:0}.upcoming-events-heading{margin-bottom:12px}.upcoming-events-grid{grid-template-columns:repeat(var(--upcoming-columns), minmax(0, 1fr));gap:20px 0;min-width:0;display:grid}.upcoming-event-card{border-inline-end:1px solid var(--blue-100);grid-template-columns:48px minmax(0,1fr);align-items:start;gap:14px;min-width:0;padding:4px 16px;display:grid}.upcoming-event-card:first-child{padding-inline-start:0}.upcoming-event-card:last-child{border-inline-end:0;padding-inline-end:0}.upcoming-event-card--row-start{padding-inline-start:0}.upcoming-event-card--row-end{border-inline-end:0;padding-inline-end:0}.upcoming-event-date{min-width:0;color:var(--calendar-text,var(--blue-700));align-content:start;justify-items:start;padding-top:1px;font-style:normal;text-decoration:none;display:grid}.upcoming-event-day{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:clamp(30px,2.4vw,36px);font-weight:800;line-height:.95}.upcoming-event-month{color:var(--text-secondary);margin-top:4px;font-size:13px;font-weight:700;line-height:1.1}.upcoming-event-copy{align-content:start;gap:6px;min-width:0;display:grid}.upcoming-event-title-row{grid-template-columns:8px minmax(0,1fr);align-items:start;gap:8px;min-width:0;display:grid}.upcoming-event-category-dot{border-radius:var(--radius-full);background:var(--calendar-accent,var(--blue-600));width:8px;height:8px;margin-top:7px}.upcoming-event-title-row strong{min-width:0;color:var(--text-primary);font-size:var(--fs-xs);overflow-wrap:anywhere;word-break:break-word;font-weight:800;line-height:1.45}.upcoming-event-meta{color:var(--text-secondary);overflow-wrap:anywhere;padding-inline-start:16px;font-size:14px;font-weight:600;line-height:1.4}.upcoming-event-responsible{color:var(--text-secondary);overflow-wrap:anywhere;word-break:break-word;padding-inline-start:16px;font-size:13px;font-weight:600;line-height:1.35}@media (width<=1279.98px){.upcoming-events-grid{grid-template-columns:minmax(0,1fr);row-gap:0}.upcoming-event-card{border-inline-end:0;border-bottom:1px solid var(--blue-100);padding:12px 0}.upcoming-event-card:first-child{padding-block-start:4px}.upcoming-event-card:last-child{border-bottom:0;padding-block-end:4px}}@media (width<=767.98px){.upcoming-events-grid{grid-template-columns:minmax(0,1fr)}.upcoming-event-card{grid-template-columns:64px minmax(0,1fr)}}.announcements-panel{min-width:0}.announcements-heading-icon{color:var(--rose)}.announcement-list{gap:8px;display:grid}.announcement-row{border:1px solid var(--blue-100);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--announcement-surface) 16%, var(--card));min-height:50px;color:inherit;grid-template-columns:minmax(92px,auto) minmax(0,1fr) 24px;align-items:center;gap:12px;padding:7px 11px;text-decoration:none;display:grid}.announcement-row:hover,.announcement-row:focus-visible{border-color:color-mix(in srgb, var(--announcement-accent) 30%, var(--blue-200));background:color-mix(in srgb, var(--announcement-surface) 30%, var(--card));outline:none}.announcement-kind{border-radius:var(--radius-full);background:var(--announcement-accent);min-height:28px;color:var(--card);white-space:nowrap;justify-content:center;align-items:center;padding:2px 10px;font-size:12px;font-weight:800;display:inline-flex}.announcement-row strong{min-width:0;color:var(--text-primary);font-size:var(--fs-xs);text-overflow:ellipsis;white-space:nowrap;line-height:1.35;overflow:hidden}.announcement-chevron{color:var(--blue-400);font-size:20px}@media (width<=767.98px){.announcement-row{grid-template-columns:1fr 24px}.announcement-kind{grid-column:1;justify-self:start}.announcement-row strong{white-space:normal;overflow-wrap:anywhere;grid-column:1}.announcement-chevron{grid-area:1/2/span 2;align-self:center}}.daily-stats-panel{min-width:0}.daily-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.daily-stat-card{border:1px solid color-mix(in srgb, var(--daily-accent) 32%, var(--daily-surface));border-radius:var(--radius);background:color-mix(in srgb, var(--daily-surface) 86%, var(--card));min-width:0;min-height:96px;box-shadow:inset 0 1px 0 color-mix(in srgb, var(--card) 72%, transparent), 0 4px 12px color-mix(in srgb, var(--daily-accent) 10%, transparent);grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px;padding:12px;display:grid}.daily-stat-icon{background:color-mix(in srgb, var(--daily-accent) 26%, var(--daily-surface));width:46px;height:46px;color:color-mix(in srgb, var(--daily-accent) 70%, var(--text-primary));box-shadow:inset 0 1px 0 color-mix(in srgb, var(--card) 72%, transparent), 0 4px 10px color-mix(in srgb, var(--daily-accent) 18%, transparent);border-radius:50%;place-items:center;display:grid}.daily-stat-icon .material-icons{font-size:26px}.daily-stat-card div{gap:1px;min-width:0;display:grid}.daily-stat-card>div>span{color:var(--text-secondary);font-size:12px}.daily-stat-card strong{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:22px;line-height:1.1}.daily-stat-card small{color:var(--text-secondary);font-size:11px;line-height:1.25}.approval-summary-link{border:1px solid var(--orange-200);border-radius:var(--radius-sm);background:var(--orange-50);color:var(--text-primary);grid-template-columns:28px minmax(0,1fr) 22px;align-items:center;gap:10px;margin-top:10px;padding:10px 12px;text-decoration:none;display:grid}.approval-summary-link:hover,.approval-summary-link:focus-visible{border-color:var(--orange)}.approval-summary-link:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.approval-summary-link>.material-icons:first-child{color:var(--orange)}.approval-summary-link div{gap:2px;display:grid}.approval-summary-link strong{font-size:var(--fs-xs)}.approval-summary-link small{color:var(--text-secondary);font-size:12px}@media (width<=767.98px){.daily-stats-grid{grid-template-columns:1fr}}.home-primary-grid,.home-lower-grid{gap:16px;min-width:0;display:grid}.home-primary-grid{grid-template-columns:minmax(0,17fr) minmax(320px,8fr);grid-template-areas:"quick calendar""upcoming upcoming";align-items:stretch}.home-primary-grid>.quick-menu-panel{grid-area:quick}.home-primary-grid>.calendar-panel{grid-area:calendar}.home-primary-grid--no-upcoming{grid-template-areas:"quick calendar"}.home-lower-grid{grid-template-columns:minmax(0,11fr) minmax(320px,9fr);align-items:stretch}.home-panel{--home-panel-padding:16px;min-width:0;padding:var(--home-panel-padding);border:1px solid var(--dashboard-panel-border);border-radius:var(--radius);background:var(--dashboard-panel-surface);box-shadow:var(--shadow-sm)}.home-panel-heading,.quick-menu-heading{--panel-header-blue-stop:52%;--panel-header-soft-stop:72%;--panel-header-white-stop:84%;min-height:44px;margin:calc(var(--home-panel-padding) * -1) calc(var(--home-panel-padding) * -1) 12px;border-bottom:1px solid var(--dashboard-panel-header-gold-border);border-radius:calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0;background:linear-gradient(90deg, var(--dashboard-panel-header-blue-strong) 0%, var(--dashboard-panel-header-blue) var(--panel-header-blue-stop), var(--dashboard-panel-header-blue-soft) var(--panel-header-soft-stop), var(--dashboard-panel-header-neutral-surface) var(--panel-header-white-stop), var(--dashboard-panel-header-gold-surface) 100%);justify-content:space-between;align-items:center;gap:10px;padding:6px 16px;display:flex}.quick-menu-heading{--panel-header-blue-stop:34%;--panel-header-soft-stop:58%;--panel-header-white-stop:78%}.calendar-panel .home-panel-heading{--panel-header-blue-stop:76%;--panel-header-soft-stop:86%;--panel-header-white-stop:92%}.upcoming-events-heading{--panel-header-blue-stop:42%;--panel-header-soft-stop:60%;--panel-header-white-stop:72%}.announcements-panel .home-panel-heading{--panel-header-blue-stop:48%;--panel-header-soft-stop:58%;--panel-header-white-stop:66%}.daily-stats-panel .home-panel-heading{--panel-header-blue-stop:55%;--panel-header-soft-stop:70%;--panel-header-white-stop:82%}.home-panel-title,.quick-menu-title-wrap{align-items:center;gap:8px;min-width:0;display:flex}.home-panel-title>.material-icons,.announcements-panel .announcements-heading-icon,.quick-menu-heading-icon{color:var(--dashboard-panel-header-text);flex:none;font-size:20px;line-height:1}.home-panel-title h2,.quick-menu-heading h2{color:var(--dashboard-panel-header-text);margin:0;font-size:16px;font-weight:700;line-height:24px}.home-panel-link{border:1px solid var(--dashboard-panel-cta-border);border-radius:var(--radius-sm);background:var(--dashboard-panel-cta-surface);min-width:0;min-height:30px;color:var(--dashboard-panel-cta-text);text-align:center;white-space:nowrap;flex:none;justify-content:center;align-items:center;padding:4px 12px;font-size:13px;font-weight:600;line-height:20px;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.home-panel-link:hover{border-color:var(--dashboard-panel-cta-border);background:var(--dashboard-panel-cta-surface-hover);color:var(--dashboard-panel-cta-text)}.home-panel-link:active{border-color:var(--dashboard-panel-cta-border);background:var(--dashboard-panel-cta-surface-active);color:var(--dashboard-panel-cta-text)}.home-panel-link:focus-visible{outline:2px solid var(--dashboard-panel-cta-focus-ring);outline-offset:2px;color:var(--dashboard-panel-cta-text)}@media (prefers-reduced-motion:reduce){.home-panel-link{transition:none}}@media (width<=1279.98px){.home-primary-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"quick quick""calendar upcoming"}.home-primary-grid--no-upcoming{grid-template-columns:minmax(0,1fr);grid-template-areas:"quick""calendar"}.home-lower-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=1023.98px){.home-primary-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"quick""calendar""upcoming"}.home-primary-grid--no-upcoming{grid-template-areas:"quick""calendar"}}@media (width<=767.98px){.landing-main-content.dashboard-authenticated-home{padding:0}.home-panel{--home-panel-padding:14px}.home-panel-heading,.quick-menu-heading{background:linear-gradient(90deg, var(--dashboard-panel-header-blue-strong) 0%, var(--dashboard-panel-header-blue) 94%, color-mix(in srgb, var(--dashboard-panel-header-blue) 28%, var(--dashboard-panel-surface)) 100%);flex-wrap:wrap;min-height:0;padding:6px 14px}.home-panel-title h2,.quick-menu-heading h2{overflow-wrap:anywhere}.home-panel-link{min-width:44px;min-height:44px;margin-inline-start:auto;padding-inline:12px}}.design3-stage{background:var(--blue-50);height:100dvh;max-height:100dvh;color:var(--text-primary);font-family:var(--font-sans);box-sizing:border-box;padding:0;overflow:hidden}.prototype-shell{background:color-mix(in srgb, var(--blue-50) 74%, white);width:100%;height:100%;max-height:100%;box-shadow:none;border:0;border-radius:0;flex-direction:column;margin:0;display:flex;overflow:hidden}.landing-guest-app-main{box-sizing:border-box;flex-direction:column;flex:auto;min-width:0;height:100%;min-height:0;max-height:100%;display:flex;position:relative;overflow:hidden}.landing-guest-topbar{z-index:10;border-bottom:1px solid var(--blue-100);background:color-mix(in srgb, white 92%, var(--blue-50));flex:none;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 24px;display:grid;position:sticky;top:0}.guest-topbar-actions,.guest-topbar-school,.guest-login-action{align-items:center;min-width:0;display:flex}.guest-topbar-school{gap:10px;min-width:0}.guest-topbar-actions{flex:none;justify-content:flex-end;gap:10px}.guest-login-action{border:1px solid var(--blue-600);border-radius:var(--radius-sm);background:var(--blue-600);color:#fff;min-height:44px;font-size:var(--fs-sm);white-space:nowrap;justify-content:center;gap:8px;padding:0 16px;font-weight:800;text-decoration:none}.guest-login-action:hover,.guest-login-action:focus-visible{border-color:var(--blue-700);background:var(--blue-700);color:#fff}@media (width<=768px){.design3-stage{height:100dvh;max-height:100dvh;padding:0}.prototype-shell{height:100%;max-height:100%}.landing-guest-app-main{flex:auto;height:100%;min-height:0;max-height:100%}.landing-guest-topbar{gap:8px;padding:10px 12px;position:sticky;top:0}.guest-login-action{gap:6px;min-height:40px;padding:0 12px}.guest-login-action span:not(.material-icons-outlined){font-size:13px}}@media (width<=420px){.guest-login-action span:not(.material-icons-outlined){clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.guest-login-action{width:40px;padding:0}}
