html, body { height: 100%; }
body { margin: 0; background: #f5f4ef; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; }
a { color: inherit; text-decoration: none; }
.portal-shell { height: 100vh; height: 100dvh; padding: 8px; }
.portal-col { height: 50%; padding: 8px; }
.portal-tile { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; border-radius: 22px; font-size: clamp(22px, 3vw, 40px); font-weight: 650; letter-spacing: 1px; transition: transform .2s, box-shadow .2s; }
.portal-tile:hover { color: inherit; transform: translateY(-3px); box-shadow: 0 12px 35px rgba(26, 52, 43, .12); }
.tile-arrow { position: absolute; top: 20px; right: 24px; font-size: 25px; font-weight: 400; }
.tile-user { background: #dce8f2; color: #1d3d52; }
.tile-housekeeper { background: #e0ebdc; color: #294834; }
.tile-admin { background: #213c3a; color: #f1f4e9; }
.tile-tickets { background: #f2dfcc; color: #56392a; }
@media (max-width: 575.98px) {
  .portal-shell { padding: 5px; }
  .portal-col { padding: 5px; }
  .portal-tile { border-radius: 17px; font-size: 21px; letter-spacing: 0; }
  .tile-arrow { top: 14px; right: 16px; font-size: 20px; }
}
