﻿/* ===== SafeGuard — Majestic+ theme (navy + gold, crisp cards, gentle motion) ===== */
:root{
  --brand:#0b1530;       /* deep navy */
  --brand-2:#142242;     /* lighter navy */
  --accent:#f2c236;      /* royal gold */
  --accent-2:#ffd659;    /* light gold */
  --ok:#16a34a;          /* success green (rare) */
  --warn:#f59e0b;        /* amber */
  --danger:#b91c1c;      /* booked red */
  --ink:#0f172a;         /* slate text */
  --muted:#6b7280;       /* gray */
  --surface:#ffffff;     /* card bg */
  --bg:#f7f9fc;          /* page bg */
  --ring: rgba(20, 34, 66, .15);
}

/* Page & typography */
html,body{height:100%}
body{
  background:
    radial-gradient(1200px 600px at -5% -10%, #e9eef7 0%, transparent 60%),
    radial-gradient(900px 500px at 105% -15%, #f8efe0 0%, transparent 60%),
    linear-gradient(180deg,var(--bg), #eef2f7);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji","Segoe UI Emoji";
  color: var(--ink);
}

/* Navbar */
.navbar{
  background: linear-gradient(90deg, var(--brand), var(--brand-2)) !important;
  box-shadow: 0 8px 28px rgba(12,27,51,.22);
}
.navbar-brand{
  color: var(--accent) !important;
  font-weight: 800;
  letter-spacing: .3px;
}
.navbar .nav-link{ color: rgba(255,255,255,.85) !important; }
.navbar .nav-link:hover,
.navbar .nav-link.active{ color:#fff !important; }

/* Utility */
.text-muted, .muted{ color: var(--muted) !important; }
a{ text-decoration: none; }
a:hover{ text-decoration: underline; }

/* Cards & wrappers */
.card, .booking-card, .cal-wrap{
  background: var(--surface);
  border: 1px solid #e8edf5;
  border-radius: 1rem;
  box-shadow: 0 20px 50px rgba(12,27,51,.10);
}
.page-title, .booking-card h1{
  font-weight: 900;
  letter-spacing:.2px;
  margin-bottom:.75rem;
  background: linear-gradient(90deg,var(--brand),var(--accent));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

/* Buttons */
.btn{ border-radius:.75rem; transition: transform .08s ease, box-shadow .2s ease; }
.btn:active{ transform: translateY(1px); }
.btn-primary{
  background: var(--brand);
  border-color: var(--brand);
}
.btn-primary:hover{ filter: brightness(1.08); box-shadow: 0 6px 16px var(--ring); }
.btn-outline-secondary{ border-radius:.75rem; }

/* Forms */
.form-control,.form-select,.form-check-input{
  border-radius:.75rem; border-color:#cfd7e5;
}
.form-control:focus,.form-select:focus,.form-check-input:focus{
  border-color: var(--brand);
  box-shadow: 0 0 0 .20rem var(--ring);
}
label{ font-weight:600; }
.helptext,.form-text{ color: var(--muted); }

/* Alerts */
.alert{ border-radius:.75rem; }

/* Tables */
.table{ border-color:#e9edf3; }
.table > :not(caption) > * > *{ background:transparent; }

/* ==== Calendar (public + internal) ==== */
.cal-wrap{ overflow: hidden; }
.cal-toolbar{
  background: linear-gradient(180deg,#fff, #fafbfd);
  border-bottom: 1px solid #eef2f7;
}
.cal-grid{ table-layout: fixed; width: 100%; }
.cal-grid th, .cal-grid td{ width: 14.2857%; }
.cal-grid td{
  vertical-align: top;
  height: 140px;                 /* fixed height so boxes don’t grow */
  min-width: 140px;
  padding: .5rem;
  border-color:#eef2f7 !important;
  background: #fff;
}
.cal-daynum a,
.cal-daynum span{ font-weight:700; text-decoration:none; }

/* Keep content from stretching cells */
.slot-list{ max-height: 92px; overflow:auto; scrollbar-gutter: stable; }

/* Chips / badges */
.chip{
  display:inline-flex; align-items:center; gap:.35rem;
  padding:.20rem .55rem; font-size:.75rem; line-height:1;
  border-radius: 999px; border: 1px solid transparent;
  box-shadow: 0 1px 0 rgba(0,0,0,.05);
}
.chip--booked{ background: var(--danger); color: #fff; }
.chip--pending{ background: var(--warn); color: #111; }
.chip i{ font-style: normal; opacity:.85; }

/* Today highlight */
.cal-grid td.table-warning{
  background: linear-gradient(0deg, #fff7e6, #fff) !important;
  box-shadow: inset 0 0 0 1px #ffe6b3;
}

/* “All-Rooms Blackout” pill */
.badge-block{
  display:inline-block; font-size:.75rem; border-radius: .5rem;
  padding:.25rem .6rem; background:#111827; color:#fff; border:0;
}

/* ==== Booking page polish ==== */
.booking-page{ max-width: 980px; margin:auto; }
.booking-card{ padding:1.25rem 1.5rem; }
.booking-hero{
  background: radial-gradient(800px 300px at 10% -20%, #ffeaa3 0%, transparent 60%),
              radial-gradient(900px 340px at 100% -30%, #c6d4ff 0%, transparent 55%),
              linear-gradient(90deg,var(--brand), var(--brand-2));
  color:#fff; border-radius:1rem; padding:1.25rem 1.5rem; margin-bottom:1rem;
  box-shadow: 0 14px 40px rgba(12,27,51,.22);
}
.booking-hero h1{ color:#fff; background:none; -webkit-text-fill-color:unset; }
.booking-hero .lead{ opacity:.9; }

/* Sections inside the booking form */
.form-section-title{
  font-weight:800; margin:.9rem 0 .45rem;
  color:var(--brand);
}

/* Footer actions align nicely */
.form-actions{ display:flex; gap:.5rem; align-items:center; }

/* Subtle motion for cards */
@media (prefers-reduced-motion:no-preference){
  .card, .booking-card, .cal-wrap { transition: box-shadow .25s ease, transform .12s ease; }
  .card:hover, .booking-card:hover, .cal-wrap:hover { box-shadow: 0 24px 64px rgba(12,27,51,.16); }
}
