.module-hub{width:min(1160px,100%);margin:clamp(22px,6vh,70px) auto 50px}.module-hub-heading{text-align:center;margin:0 auto 30px}.module-hub-heading .eyebrow{color:var(--green,#557365);font-size:.76rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.module-hub-heading h1{margin:6px 0;font-size:clamp(1.8rem,4vw,2.7rem);color:var(--ink,#25332d)}.module-hub-heading>p:last-child{margin:0;color:#68756e}.module-carousel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;outline:none}.module-tile{position:relative;display:flex;min-height:220px;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:28px;padding:26px;border:1px solid #d8ddd8;border-radius:24px;background:linear-gradient(145deg,#fff,#f8f9f6);color:var(--ink,#25332d);text-decoration:none;box-shadow:0 14px 36px #1c342315;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.module-tile:hover,.module-tile:focus-visible{transform:translateY(-4px);border-color:#8ba494;box-shadow:0 20px 42px #1c342323;outline:none}.module-tile-icon{display:grid;width:62px;height:62px;place-items:center;overflow:hidden;border-radius:19px;background:#e7eee9;color:var(--green,#557365)}.module-tile-icon svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.module-attendance .module-tile-icon{border-radius:50%;background:#eef0ee}.module-tile-icon img{width:100%;height:100%;object-fit:contain}.module-tile-copy strong,.module-tile-copy small{display:block}.module-tile-copy strong{font-size:1.3rem;line-height:1.2}.module-tile-copy small{margin-top:8px;color:#69766f;font-size:.9rem;line-height:1.4}.module-administration .module-tile-icon{background:#efeddf;color:#82783e}.module-reports .module-tile-icon{background:#f2e9df;color:#a56d36}.module-swipe-hint{display:none;text-align:center;color:#748078;font-size:.8rem;margin:14px 0 0}@media(max-width:760px){.module-hub{width:100%;margin:25px auto 45px}.module-hub-heading{padding:0 20px;margin-bottom:22px}.module-carousel{display:flex;gap:14px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:7vw;padding:4px 7vw 18px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.module-carousel::-webkit-scrollbar{display:none}.module-carousel:focus-visible{outline:2px solid #829889;outline-offset:2px}.module-tile{flex:0 0 86vw;min-height:230px;scroll-snap-align:start;scroll-snap-stop:always;padding:24px;border-radius:22px}.module-tile:hover{transform:none}.module-swipe-hint{display:block}}@media(prefers-reduced-motion:reduce){.module-tile{transition:none}}
@media(max-width:760px){
  .module-hub{margin:clamp(22px,4vh,38px) auto 32px}
  .module-hub-heading{margin-bottom:24px}
  .module-carousel{width:100%;margin:0;gap:14px;padding:6px 7vw 16px;scroll-padding-inline:7vw;scroll-snap-type:x mandatory}
  .module-tile{box-sizing:border-box;flex:0 0 86vw;min-height:clamp(230px,34vh,290px);padding:clamp(22px,6vw,30px);scroll-snap-align:center}
  .module-swipe-hint{margin:8px 0 0;min-height:20px}
}
@media(max-height:700px) and (max-width:760px){.module-hub{margin-top:16px}.module-hub-heading{margin-bottom:14px}.module-tile{min-height:210px}}
@media(max-width:760px){
  .module-carousel{display:grid;grid-template-columns:1fr;width:100%;gap:16px;overflow:visible;padding:0 18px;scroll-snap-type:none}
  .module-tile{box-sizing:border-box;display:flex;flex:initial;min-height:126px;flex-direction:row;align-items:center;justify-content:flex-start;gap:18px;padding:20px;border-radius:20px;scroll-snap-align:none;scroll-snap-stop:normal}
  .module-tile:hover{transform:none}
  .module-tile-icon{width:66px;height:66px;flex:0 0 66px;border-radius:19px}
  .module-tile-icon svg{width:34px;height:34px}
  .module-tile-copy strong{font-size:1.2rem}
  .module-tile-copy small{margin-top:6px;font-size:.95rem}
  .module-swipe-hint{display:none}
}
.module-hub.module-arriving{visibility:hidden}.module-arrival-overlay{position:fixed;z-index:10000;inset:0;display:grid;place-items:center;background:#485642;animation:module-arrival-screen 1.08s ease-in both}.module-arrival-overlay img{width:88px;height:88px;object-fit:contain;animation:module-arrival-road 1.08s cubic-bezier(.2,.75,.25,1) both}@keyframes module-arrival-road{0%{transform:scale(1) rotate(0);opacity:1}65%{transform:scale(2.7) rotate(300deg);opacity:1}100%{transform:scale(5.5) rotate(360deg);opacity:0}}@keyframes module-arrival-screen{0%,12%{opacity:1}84%{opacity:1}100%{opacity:0;visibility:hidden}}@media(prefers-reduced-motion:reduce){.module-arrival-overlay{animation:module-arrival-screen .35s ease-out both}.module-arrival-overlay img{animation:none}}
