.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}}.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}}
