/* --- Variable Definitions --- */
:root {
  --bg-color: #1d1e21;
  --accent-color: #cb2929;
  --text-color: #f0f0f0;
  --input-bg: #2a2c30;
  --border-color: #444;
  --font-title: 'Oswald', sans-serif;
  --font-text: 'Poppins', sans-serif;
}

/* --- General & Reset --- */
* { margin: 0; padding: 0; box-sizing: border-box; }

html, body { height: 100%; }

html {
  /* Prevent iOS zooming text on orientation changes */
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-text);
  background-image: url('../assets/login-back.jpg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  /* iOS fix: 'fixed' causes scroll jank; replaced with scroll + fallback blur */
  background-attachment: scroll;

  color: var(--text-color);
  display: flex;
  align-items: center;
  justify-content: center;

  /* Use dynamic viewport height to avoid Safari URL bar jump */
  min-height: 100dvh;
  -webkit-tap-highlight-color: transparent;
}

/* Container with safe area padding (iPad notches) */
.main-container {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));
}

.content-box {
  /* Slightly stronger background so blur is less critical on iOS */
  background-color: rgba(29, 30, 33, 0.8);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);

  border: 1px solid rgba(255, 255, 255, 0.1);
  padding: 32px;
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.3);

  display: flex; flex-direction: column; align-items: center; text-align: center;

  /* More breathing room on iPad */
  max-width: 640px;
  width: 100%;
}

.logo {
  max-width: 380px;
  width: 80%;
  height: auto;
  margin-bottom: 32px;
}

/* --- Tiles --- */
.tiles-container {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;            /* Allow wrapping on iPad portrait */
  justify-content: center;    /* Center tiles nicely */
}

.tile {
  background-color: var(--accent-color);
  color: #fff;
  width: 180px;               /* Larger touch targets */
  height: 150px;
  border-radius: 12px;
  text-decoration: none;
  font-family: var(--font-title);
  font-size: 1.1rem;
  text-transform: uppercase;
  letter-spacing: 1px;

  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px;

  transition: transform 0.22s ease, box-shadow 0.22s ease;
  cursor: pointer;

  /* Ensure minimum tap area */
  min-width: 160px;
  min-height: 120px;
}

.tile i { font-size: 1.9rem; }

.tile:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 24px rgba(0,0,0,0.35);
}

/* --- Login Modal & Form Styles --- */
.modal-overlay {
  position: fixed; inset: 0;
  width: 100%; height: 100dvh;           /* Use dynamic vh for iOS */
  background-color: rgba(0,0,0,0.8);
  backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px);
  display: none; align-items: center; justify-content: center;
  z-index: 1000;
}
.modal-content {
  background-color: var(--bg-color);
  padding: 28px 36px;
  border-radius: 12px;
  border: 1px solid var(--accent-color);
  width: 92%;
  max-width: 420px;
  position: relative;
  box-shadow: 0 5px 25px rgba(0,0,0,0.5);
}
.close-button { position: absolute; top: 14px; right: 18px; font-size: 2rem; color: #aaa; cursor: pointer; transition: color .2s; }
.close-button:hover { color: #fff; }
.modal-title { font-family: var(--font-title); font-size: 2rem; text-align: center; margin-bottom: 22px; text-transform: uppercase; letter-spacing: 1.5px; color: var(--accent-color); }
.login-form .form-group { margin-bottom: 18px; }
.login-form label { display: block; margin-bottom: 8px; font-size: .95rem; font-weight: 500; color: #ccc; }
.login-form input[type="text"],
.login-form input[type="password"] {
  width: 100%; padding: 12px; background-color: var(--input-bg);
  border: 1px solid var(--border-color); border-radius: 8px; color: var(--text-color);
  font-family: var(--font-text); font-size: 1rem;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.login-form input[type="text"]:focus,
.login-form input[type="password"]:focus {
  outline: none; border-color: var(--accent-color);
  box-shadow: 0 0 0 3px rgba(203, 92, 41, 0.28);
}
.cf-turnstile { margin: 22px 0; }
.btn-submit {
  width: 100%; padding: 14px; background-color: var(--accent-color); color: #fff;
  border: none; border-radius: 8px; font-family: var(--font-title); font-size: 1.1rem;
  text-transform: uppercase; letter-spacing: 1px; cursor: pointer; transition: background-color .2s ease;
}
.btn-submit:hover { background-color: #e06c34; }
.error-message {
  background-color: rgba(255,0,0,0.1);
  border: 1px solid #ff4d4d; color: #ffcccc;
  padding: 10px; border-radius: 8px; text-align: center; margin-bottom: 14px;
}

/* --- Small mobile (≤480px) --- */
@media (max-width: 480px) {
  .tiles-container { flex-direction: column; width: 100%; }
  .tile {
    width: 100%; height: 100px;
    flex-direction: row; justify-content: flex-start;
    padding-left: 20px; gap: 18px;
  }
  .tile i { font-size: 1.6rem; }
}

/* --- iPad & small tablets: portrait & landscape (600px–1024px) --- */
@media (min-width: 600px) and (max-width: 1024px) {
  .content-box {
    max-width: 760px;     /* widen box on iPad */
    padding: 36px;
  }
  .logo {
    max-width: 420px;
    margin-bottom: 28px;
  }
  .tiles-container {
    gap: 24px;
  }
  .tile {
    width: 200px; height: 160px;  /* larger tiles for touch */
    font-size: 1.15rem;
  }
  .tile i { font-size: 2rem; }
}

/* --- Desktop (≥992px) --- */
@media (min-width: 992px) {
  body { justify-content: flex-end; }
  .main-container {
    background-color: transparent;
    width: 45%; max-width: 680px; height: 100dvh; padding: 0;
  }
  .content-box {
    max-width: 100%; height: 100%;
    border-radius: 0; justify-content: center;
  }
}

/* --- Motion preference --- */
@media (prefers-reduced-motion: reduce) {
  .tile { transition: none; }
  .tile:hover { transform: none; box-shadow: none; }
}

/* --- Your tile overrides --- */
/* Check-In tile: green */
.tiles-container a.tile[href="form.php"] {
  background-color: #28a745 !important;
  color: #fff !important;
  border-radius: 10px;
}
.tiles-container a.tile[href="form.php"]:hover { background-color: #218838 !important; }

/* Admin Login tile: navy pill */
#login-tile {
  background-color: #001f3f !important;
  color: #fff !important;
  border-radius: 50px;
  padding: 4px 10px; /* small inner padding to emphasize pill */
}
#login-tile:hover { background-color: #003366 !important; }
