@charset "UTF-8";

:root{--motion-ease:cubic-bezier(.22,1,.36,1);--motion-fast:180ms;--motion-page:360ms}
.header-inner{min-height:82px;gap:18px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center}
.header .brand{grid-column:2;grid-row:1;justify-self:center}
.header #inbox-toggle{grid-column:1;grid-row:1;justify-self:start}
.header #theme-toggle{grid-column:1;grid-row:1;justify-self:start;margin-left:52px}
.header-inner:has(#inbox-toggle.hidden) #theme-toggle{margin-left:0}
.header #menu-toggle{grid-column:3;grid-row:1;justify-self:end}
.brand{align-items:center;min-height:44px;text-decoration:none;color:var(--navy)}
.header .brand,[data-theme="dark"] .header .brand{background:transparent;padding:0;border-radius:0}
.header .brand img{width:116px;height:auto;aspect-ratio:3/1}
.header-label{display:none}
.header-label span{margin:0;font-size:.78rem;max-width:240px}
.brand+#account-label{margin-left:8px}

/* A fixed shell, with only the list scrolling: close and logout remain reachable. */
.menu-drawer,.menu-drawer[open],[data-theme="dark"] .menu-drawer{width:min(414px,calc(100% - 20px));padding:0;height:100dvh;overflow:hidden;border-radius:0 26px 26px 0;background:var(--surface)}
.menu-drawer[open]{animation:drawer-arrive 280ms var(--motion-ease) both}
.menu-drawer::backdrop{background:#06172985;backdrop-filter:blur(5px);animation:backdrop-arrive 280ms ease-out both}
.menu-drawer.motion-closing::backdrop,#dialog.motion-closing::backdrop{animation:backdrop-leave 180ms ease-in both}
.menu-heading{margin:0;padding:calc(22px + env(safe-area-inset-top)) 22px 16px;gap:16px;flex:none}
.menu-brand{display:flex;align-items:center;gap:12px;min-width:0}
.menu-brand>img{width:55px;height:auto;aspect-ratio:3/1;flex:none}
.menu-heading .eyebrow{margin-bottom:5px;letter-spacing:1.4px;font-size:.62rem}
.menu-heading h2{font-size:1.14rem;font-weight:750;letter-spacing:-.3px}
.menu-close{border:0;background:var(--soft);border-radius:50%;min-width:44px;min-height:44px;width:44px;font-weight:400;color:var(--muted)}
.menu-account{margin:0 22px 14px;border:1px solid var(--line);background:var(--soft);border-radius:14px;padding:13px 14px;display:flex;align-items:center;gap:12px;flex:none}
.menu-avatar{width:36px;height:36px;background:var(--pale);color:var(--blue-dark);border-radius:11px;display:grid;place-items:center;font-size:.76rem;font-weight:750;flex:none}
.menu-person{min-width:0;color:var(--ink);font-size:.83rem;font-weight:650;line-height:1.4;overflow-wrap:anywhere}
.menu-person small{display:block;font-size:.68rem;color:var(--muted);font-weight:400;margin-top:3px}
#menu-navigation{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:0 14px 20px}
.menu-group+.menu-group{margin-top:18px}
.menu-group h3{margin:0 10px 7px;font-size:.62rem;font-weight:700;letter-spacing:1.35px;color:var(--muted)}
.menu-group button{position:relative;min-height:58px;border-radius:13px;padding:11px 12px;gap:13px;margin-top:3px;font-size:.88rem;line-height:1.3;transition:background var(--motion-fast),color var(--motion-fast),transform var(--motion-fast) var(--motion-ease)}
.menu-group .nav-icon{display:grid;place-items:center;position:relative;width:34px;height:34px;border:1px solid var(--line);border-radius:10px;color:var(--muted);flex:none}
.menu-group .icon{width:19px;height:19px}
.nav-copy{flex:1;min-width:0}
.nav-copy>.nav-title{display:block}
.nav-description{display:block;color:var(--muted);font-size:.7rem;font-weight:400;line-height:1.35;margin-top:3px}
.menu-arrow{color:var(--muted);font-size:1.25rem;font-weight:400;margin-left:auto;flex:none}
.menu-group button.active{background:var(--pale)}
.menu-group button.active .nav-icon{background:var(--blue-dark);border-color:transparent;color:white}
.menu-group button.active .nav-title{color:var(--blue-dark);font-weight:750}
.menu-footer{flex:none;margin:0;border-top:1px solid var(--line);padding:10px 18px calc(12px + env(safe-area-inset-bottom));background:var(--surface)}
.menu-footer #logout{width:100%;min-height:44px;font-size:.8rem;border:0;padding:10px 12px;gap:14px}
.menu-footer #logout .icon{width:19px;height:19px}
.bottom-nav button{transition:background 280ms var(--motion-ease),color 280ms ease,box-shadow 280ms ease}
.bottom-nav button.active{box-shadow:inset 0 -2px 0 var(--blue)}
.bottom-nav .nav-icon{transition:transform 280ms var(--motion-ease)}
.bottom-nav button.active .nav-icon{transform:translateY(-2px)}

/* Transforms stay on content, never on the fixed navigation shell. */
.home-link,.signature-callout{transition:background 220ms ease,border-color 220ms ease,box-shadow 280ms ease,transform 280ms var(--motion-ease)}
.home-link:active,.signature-callout:active{transform:scale(.988)}
.home-icon{transition:background 220ms ease,color 220ms ease}
.admin-home .home-links{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.admin-home .home-links .home-link{display:grid;grid-template-columns:1fr auto;align-content:start;gap:17px;min-height:208px;padding:23px}
.admin-home .home-links .home-icon{grid-column:1}
.admin-home .home-links .home-link>span:nth-child(2){grid-column:1/-1;grid-row:2}
.admin-home .home-links .home-alert{grid-row:1;grid-column:2}
.admin-home .home-links .home-link>span:last-child{grid-column:2;grid-row:3;justify-self:end}
.admin-home .quick-links{gap:14px}
.admin-home .quick-links .home-link{box-shadow:none;padding:18px;align-items:center;gap:12px}
.admin-home .quick-links .home-icon{width:36px;height:36px;flex:none}
.admin-home .quick-links strong{font-size:.9rem}
.admin-home .journey-hero{position:relative;overflow:hidden;background:linear-gradient(125deg,#102e50,#135279);padding:30px;border:1px solid #ffffff12}
.admin-home .journey-hero:after{content:"";position:absolute;width:220px;height:220px;right:-55px;top:-105px;border:30px solid #7bdaf40b;border-radius:50%;pointer-events:none}
.journey-hero strong{letter-spacing:-.6px}
#dialog[open]{animation:dialog-arrive 280ms var(--motion-ease) both}
#dialog::backdrop{animation:backdrop-arrive 220ms ease-out both}
.loading{animation:loading-arrive 220ms ease 120ms both}
.toast:not(.hidden){animation:toast-arrive 280ms var(--motion-ease) both}
.signature-callout{animation:content-arrive var(--motion-page) var(--motion-ease) both}

/* The supplied emblem is used without changing the artwork. */
.app-intro{background:radial-gradient(ellipse at 50% 35%,#17486a 0%,#102b47 60%,#0c2038 100%);transition:opacity 220ms ease}
.intro-content{animation:intro-arrive 650ms var(--motion-ease) both}
.intro-logo{width:min(100%,290px);height:108px;padding:0;background:transparent;border-radius:0;box-shadow:none;margin-bottom:28px}
.intro-logo img{width:100%;height:auto;aspect-ratio:3/1;filter:drop-shadow(0 16px 26px #00000020)}
.intro-title{font-size:1.65rem;letter-spacing:.01em;font-weight:650}
.intro-sub{font-size:.83rem;line-height:1.6;margin-top:9px}
.intro-track{width:76px;height:2px;margin-top:24px}

@keyframes drawer-arrive{from{opacity:.5;transform:translateX(-32px)}to{opacity:1;transform:none}}
@keyframes dialog-arrive{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
@keyframes backdrop-arrive{from{opacity:0}to{opacity:1}}
@keyframes backdrop-leave{from{opacity:1}to{opacity:0}}
@keyframes loading-arrive{from{opacity:0}to{opacity:1}}
@keyframes content-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes toast-arrive{from{opacity:0;transform:translateX(-50%) translateY(8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
@media(hover:hover){.home-link:hover{transform:translateY(-2px);box-shadow:0 8px 22px #0d37520d}.menu-group button:hover .nav-icon{color:var(--blue-dark);background:var(--pale)}}
@media(max-width:760px){
 .header-inner{min-height:72px;gap:10px;padding:12px 18px}
 .header .brand img{width:110px}
 .admin-home .home-links{grid-template-columns:1fr}
 .admin-home .home-links .home-link{display:flex;min-height:98px;gap:14px;padding:20px}
 .admin-home .quick-links{grid-template-columns:1fr}
 .admin-home .journey-hero{padding:25px}
}
@media(max-width:440px){
 .header-label{display:none}.header-inner{gap:8px;padding-inline:16px}
 .header .brand img{width:104px}
 .menu-toggle{width:44px;min-width:44px;justify-content:center;padding:10px}
 .menu-toggle>span:last-child{display:none}
 .menu-heading{padding-inline:20px}.menu-account{margin-inline:20px}
 .menu-drawer,.menu-drawer[open],[data-theme="dark"] .menu-drawer{border-radius:0 22px 22px 0}
}
@media(max-width:350px){.header-inner{padding-inline:14px;gap:6px}.header .brand img{width:96px}.menu-heading{padding-inline:16px}.menu-account{margin-inline:16px}.menu-heading h2{font-size:1.03rem}#menu-navigation{padding-inline:9px}.menu-group button{padding-inline:10px}}
@media(prefers-reduced-motion:reduce){
 .menu-drawer[open],.menu-drawer::backdrop,.menu-drawer.motion-closing::backdrop,#dialog[open],#dialog::backdrop,#dialog.motion-closing::backdrop,.intro-content,.intro-track span,.loading,.toast:not(.hidden),.signature-callout{animation:none}
 .home-link,.signature-callout,.menu-group button,.bottom-nav button,.bottom-nav .nav-icon,.home-icon,.app-intro{transition:none}
 .home-link:hover,.home-link:active,.signature-callout:active,.bottom-nav button.active .nav-icon{transform:none}
}
