/* =========================================================
   HospiHire — Premium Hospitality Hiring Platform
   Theme: Navy & Gold, modern, animated
   ========================================================= */

:root{
  --hh-navy-900:#0A1730;
  --hh-navy-800:#0F1E3D;
  --hh-navy-700:#16294F;
  --hh-navy-600:#1F3A66;
  --hh-navy-500:#2C4E85;
  --hh-gold-600:#B8873A;
  --hh-gold-500:#D4A657;
  --hh-gold-400:#E4C07E;
  --hh-gold-100:#FBF1DF;
  --hh-cream:#FDF9F3;
  --hh-ink:#14181F;
  --hh-gray-700:#3D4552;
  --hh-gray-600:#5B6472;
  --hh-gray-400:#9AA3B2;
  --hh-gray-200:#E7E9EE;
  --hh-gray-100:#F4F5F8;
  --hh-white:#FFFFFF;
  --hh-success:#1E8E5A;
  --hh-danger:#D64545;
  --hh-radius-sm:8px;
  --hh-radius:14px;
  --hh-radius-lg:22px;
  --hh-shadow-sm:0 2px 8px rgba(15,30,61,.06);
  --hh-shadow-md:0 8px 24px rgba(15,30,61,.10);
  --hh-shadow-lg:0 20px 48px rgba(15,30,61,.16);
  --hh-shadow-gold:0 10px 26px rgba(184,135,58,.30);
  --hh-transition:.28s cubic-bezier(.4,0,.2,1);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  font-family:'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  color:var(--hh-ink);
  background:var(--hh-white);
  line-height:1.6;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3,h4,h5,h6{
  font-family:'Plus Jakarta Sans', sans-serif !important;
  font-weight:800;
  color:var(--hh-navy-800);
  line-height:1.22;
  letter-spacing:-0.01em;
  margin-bottom:.6em;
}
h1{ font-size:clamp(2rem,4vw,3.1rem); font-weight:800; }
h2{ font-size:clamp(1.5rem,3vw,2.25rem); font-weight:800; }
h3{ font-size:1.4rem; font-weight:700; }
h4{ font-size:1.15rem; font-weight:700; }
p{ color:var(--hh-gray-700); margin-bottom:1em; }
a{ color:var(--hh-navy-600); text-decoration:none; transition:color var(--hh-transition); }
a:hover{ color:var(--hh-gold-600); }
::selection{ background:var(--hh-gold-400); color:var(--hh-navy-900); }

.lead{ color:var(--hh-gray-600); font-weight:500; }
.text-primary{ color:var(--hh-navy-700) !important; }
.text-warning{ color:var(--hh-gold-600) !important; }

@keyframes hhFadeUp{
  from{ opacity:0; transform:translateY(28px); }
  to{ opacity:1; transform:translateY(0); }
}
@keyframes hhFadeIn{
  from{ opacity:0; }
  to{ opacity:1; }
}
.hh-reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .7s cubic-bezier(.4,0,.2,1), transform .7s cubic-bezier(.4,0,.2,1);
}
.hh-reveal.hh-in{ opacity:1; transform:translateY(0); }
.hh-reveal.hh-delay-1{ transition-delay:.08s; }
.hh-reveal.hh-delay-2{ transition-delay:.16s; }
.hh-reveal.hh-delay-3{ transition-delay:.24s; }
.hh-reveal.hh-delay-4{ transition-delay:.32s; }

.hh-navbar{
  background:rgba(255,255,255,.92) !important;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--hh-gray-200);
  padding-top:.75rem;
  padding-bottom:.75rem;
  transition:box-shadow var(--hh-transition), padding var(--hh-transition);
}
.hh-navbar.hh-scrolled{ box-shadow:var(--hh-shadow-md); padding-top:.5rem; padding-bottom:.5rem; }
.navbar-brand{
  font-weight:800;
  font-size:1.4rem;
  color:var(--hh-navy-800) !important;
  display:flex;
  align-items:center;
  gap:.5rem;
}
.navbar-brand img{ height:34px; width:auto; }
.hh-navbar .nav-link{
  font-weight:600;
  color:var(--hh-gray-700) !important;
  position:relative;
  margin:0 .35rem;
  padding:.5rem .25rem !important;
  transition:color var(--hh-transition);
}
.hh-navbar .nav-link::after{
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:0; height:2px;
  background:var(--hh-gold-500);
  transition:width var(--hh-transition);
  border-radius:2px;
}
.hh-navbar .nav-link:hover,
.hh-navbar .nav-link.active{ color:var(--hh-navy-800) !important; }
.hh-navbar .nav-link:hover::after,
.hh-navbar .nav-link.active::after{ width:100%; }
.hh-navbar .btn-outline-hh{ margin-right:.5rem; }

.btn{
  font-weight:700;
  border-radius:var(--hh-radius-sm);
  padding:.62rem 1.35rem;
  transition:transform var(--hh-transition), box-shadow var(--hh-transition), background var(--hh-transition), color var(--hh-transition), border-color var(--hh-transition);
  letter-spacing:.01em;
}
.btn:active{ transform:translateY(1px) scale(.98); }

.btn-hh-primary{
  background:linear-gradient(135deg, var(--hh-gold-500), var(--hh-gold-600));
  border:1px solid var(--hh-gold-600);
  color:var(--hh-navy-900) !important;
  box-shadow:var(--hh-shadow-gold);
}
.btn-hh-primary:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 32px rgba(184,135,58,.4);
  background:linear-gradient(135deg, var(--hh-gold-400), var(--hh-gold-500));
  color:var(--hh-navy-900) !important;
}

.btn-outline-hh{
  background:transparent;
  border:1.5px solid var(--hh-navy-700);
  color:var(--hh-navy-800) !important;
}
.btn-outline-hh:hover{
  background:var(--hh-navy-800);
  border-color:var(--hh-navy-800);
  color:var(--hh-white) !important;
  transform:translateY(-2px);
  box-shadow:var(--hh-shadow-md);
}

.btn-outline-light{ border:1.5px solid rgba(255,255,255,.55); color:var(--hh-white) !important; }
.btn-outline-light:hover{ background:rgba(255,255,255,.12); border-color:var(--hh-white); transform:translateY(-2px); }

.btn-icon{ width:2.4rem; height:2.4rem; display:inline-flex; align-items:center; justify-content:center; padding:0; border-radius:50%; }

.badge{ font-weight:700; letter-spacing:.02em; padding:.45em .85em; border-radius:999px; }
.badge-premium{
  background:linear-gradient(135deg, var(--hh-gold-500), var(--hh-gold-600));
  color:var(--hh-navy-900);
  box-shadow:0 4px 12px rgba(184,135,58,.35);
}
.badge-soft-gold{ background:var(--hh-gold-100); color:var(--hh-gold-600); border:1px solid var(--hh-gold-400); }
.badge-soft-navy{ background:rgba(255,255,255,.14); color:var(--hh-white); border:1px solid rgba(255,255,255,.35); }

.hh-hero{
  position:relative;
  background:
    radial-gradient(1100px 480px at 12% -10%, rgba(212,166,87,.20), transparent 60%),
    radial-gradient(900px 500px at 100% 0%, rgba(44,78,133,.55), transparent 55%),
    linear-gradient(160deg, var(--hh-navy-900) 0%, var(--hh-navy-800) 45%, var(--hh-navy-700) 100%);
  padding:6rem 0 7.5rem;
  overflow:hidden;
  isolation:isolate;
}
.hh-hero::before{
  content:"";
  position:absolute; inset:0;
  background-image:radial-gradient(rgba(255,255,255,.08) 1px, transparent 1px);
  background-size:26px 26px;
  opacity:.35;
  z-index:0;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.9), transparent 80%);
}
.hh-hero .container{ position:relative; z-index:1; }
.hh-hero h1{ color:var(--hh-white); }
.hh-hero h1 .highlight{
  background:linear-gradient(135deg, var(--hh-gold-400), var(--hh-gold-600));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.hh-hero .lead{ color:rgba(255,255,255,.78); font-size:1.15rem; }
.hh-hero .badge-soft-gold{ animation:hhFadeIn .8s ease both; }

.hh-glass-card{
  background:rgba(255,255,255,.97);
  border-radius:var(--hh-radius-lg);
  padding:1.75rem;
  box-shadow:var(--hh-shadow-lg);
  border:1px solid rgba(255,255,255,.6);
  animation:hhFadeUp .7s cubic-bezier(.4,0,.2,1) .1s both;
}
.hh-glass-card .form-label{ color:var(--hh-navy-700); }

.hh-hero + .container{
  position:relative;
  z-index:2;
  margin-top:-4.25rem;
  margin-bottom:2.5rem;
}
.hh-card{
  background:var(--hh-white);
  border-radius:var(--hh-radius);
  box-shadow:var(--hh-shadow-md);
  border:1px solid var(--hh-gray-200);
  transition:transform var(--hh-transition), box-shadow var(--hh-transition);
}
.hh-stat{ padding:1.5rem 1rem; text-align:center; }
.hh-stat:hover{ transform:translateY(-6px); box-shadow:var(--hh-shadow-lg); }
.hh-stat .num{
  display:block;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:800;
  font-size:1.9rem;
  color:var(--hh-navy-800);
  background:linear-gradient(135deg, var(--hh-navy-800), var(--hh-navy-600));
  -webkit-background-clip:text;
  background-clip:text;
}
.hh-stat .label{ color:var(--hh-gray-600); font-weight:600; font-size:.88rem; margin-top:.25rem; }

.hh-section-title{
  font-weight:800;
  color:var(--hh-navy-800);
  position:relative;
  padding-bottom:.6rem;
  margin-bottom:.35rem;
}
.hh-section-title::after{
  content:"";
  position:absolute; left:0; bottom:0;
  width:56px; height:4px;
  border-radius:4px;
  background:linear-gradient(90deg, var(--hh-gold-500), var(--hh-gold-600));
}
.text-center .hh-section-title::after{ left:50%; transform:translateX(-50%); }
.hh-section-sub{ color:var(--hh-gray-600); font-size:1.02rem; }

.hh-job-card{
  background:var(--hh-white);
  border:1px solid var(--hh-gray-200);
  border-radius:var(--hh-radius);
  padding:1.6rem;
  height:100%;
  transition:transform var(--hh-transition), box-shadow var(--hh-transition), border-color var(--hh-transition);
  position:relative;
  overflow:hidden;
}
.hh-job-card::before{
  content:"";
  position:absolute; left:0; top:0; bottom:0;
  width:4px;
  background:linear-gradient(180deg, var(--hh-gold-500), var(--hh-navy-600));
  transform:scaleY(0);
  transform-origin:top;
  transition:transform var(--hh-transition);
}
.hh-job-card:hover{ transform:translateY(-8px); box-shadow:var(--hh-shadow-lg); border-color:transparent; }
.hh-job-card:hover::before{ transform:scaleY(1); }
.hh-job-card h3, .hh-job-card h5{ margin-bottom:.35rem; }
.hh-job-card a{ color:inherit; }
.hh-job-card a:hover{ color:var(--hh-navy-700); }

.hh-company-logo{
  width:56px; height:56px;
  border-radius:var(--hh-radius-sm);
  background:var(--hh-gray-100);
  display:flex; align-items:center; justify-content:center;
  color:var(--hh-navy-600);
  font-size:1.4rem;
  flex-shrink:0;
  border:1px solid var(--hh-gray-200);
}

.card{
  border:1px solid var(--hh-gray-200);
  border-radius:var(--hh-radius);
  box-shadow:var(--hh-shadow-sm);
  transition:box-shadow var(--hh-transition), transform var(--hh-transition);
}

.form-control,.form-select{
  border:1.5px solid var(--hh-gray-200);
  border-radius:var(--hh-radius-sm);
  padding:.62rem .9rem;
  font-weight:500;
  color:var(--hh-ink);
  transition:border-color var(--hh-transition), box-shadow var(--hh-transition);
}
.form-control:focus,.form-select:focus{
  border-color:var(--hh-gold-500);
  box-shadow:0 0 0 .2rem rgba(212,166,87,.22);
}
.form-label{ font-weight:600; color:var(--hh-navy-700); }

.hh-footer{
  background:linear-gradient(180deg, var(--hh-navy-800), var(--hh-navy-900));
  color:rgba(255,255,255,.72);
  padding-top:4rem;
}
.hh-footer .footer-heading{
  color:var(--hh-white);
  font-weight:800;
  font-size:1.05rem;
  margin-bottom:1.1rem;
  position:relative;
  padding-bottom:.5rem;
}
.hh-footer .footer-heading::after{
  content:"";
  position:absolute; left:0; bottom:0;
  width:34px; height:3px;
  background:var(--hh-gold-500);
  border-radius:3px;
}
.hh-footer .footer-links{ list-style:none; padding:0; margin:0; }
.hh-footer .footer-links li{ margin-bottom:.65rem; }
.hh-footer .footer-links a{
  color:rgba(255,255,255,.68);
  transition:color var(--hh-transition), padding-left var(--hh-transition);
}
.hh-footer .footer-links a:hover{ color:var(--hh-gold-400); padding-left:4px; }
.hh-footer hr{ border-color:rgba(255,255,255,.12); }
.hh-footer a.text-white-50:hover{ color:var(--hh-gold-400) !important; }

.hh-footer .btn-icon{ border:1px solid rgba(255,255,255,.25); color:var(--hh-white); }
.hh-footer .btn-icon:hover{ background:var(--hh-gold-500); border-color:var(--hh-gold-500); color:var(--hh-navy-900); transform:translateY(-3px); }

.sticky-top{ z-index:1030; }
.table{ border-radius:var(--hh-radius); overflow:hidden; }
hr{ opacity:.15; }

::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background:var(--hh-gray-100); }
::-webkit-scrollbar-thumb{ background:var(--hh-gray-400); border-radius:8px; }
::-webkit-scrollbar-thumb:hover{ background:var(--hh-navy-500); }

@media (max-width:991px){
  .hh-hero{ padding:4.5rem 0 6rem; }
  .hh-hero + .container{ margin-top:-3.25rem; }
  .hh-stat .num{ font-size:1.5rem; }
}
@media (max-width:575px){
  .hh-hero{ padding:3.5rem 0 5.5rem; }
  .hh-hero + .container{ margin-top:-2.5rem; }
  .hh-glass-card{ padding:1.15rem; }
}


/* --- Auth pages (login/register): candidate/employer tab + visual panel fix --- */
.auth-visual {
    background: linear-gradient(135deg, var(--hh-navy-800) 0%, var(--hh-navy-600) 100%);
    color: var(--hh-white);
    border-radius: var(--hh-radius-lg);
    padding: 3rem;
}
.auth-visual, .auth-visual * {
    color: var(--hh-white);
}
.nav-pills .nav-link {
    color: var(--hh-navy-700);
    font-weight: 600;
    background-color: var(--hh-gray-100);
    border-radius: 999px;
}
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
    background-color: var(--hh-navy-700) !important;
    color: var(--hh-white) !important;
}
.nav-pills .nav-link:not(.active):hover {
    background-color: var(--hh-gold-100);
    color: var(--hh-navy-800);
}

/* Candidate database access â employer & admin views */
.cda-panel {
    background: var(--hh-white);
    border: 1px solid var(--hh-gray-200);
    border-radius: var(--hh-radius-lg);
    box-shadow: var(--hh-shadow-sm);
    padding: 32px;
    margin-top: 20px;
}
.cda-panel h2 { color: var(--hh-navy-800); margin-top: 0; }
.cda-panel p { color: var(--hh-gray-600); line-height: 1.6; }
.cda-pending { border-left: 4px solid var(--hh-gold-500); }
.cda-denied { border-left: 4px solid var(--hh-danger); }
.cda-filters { display: flex; gap: 12px; margin-bottom: 20px; flex-wrap: wrap; }
.cda-filters input[type="text"],
.cda-filters select {
    padding: 10px 14px;
    border: 1px solid var(--hh-gray-200);
    border-radius: var(--hh-radius);
    font-size: 14px;
}
.cda-filters input[type="text"] { flex: 1; min-width: 220px; }
.cda-table { width: 100%; border-collapse: collapse; margin-top: 12px; }
.cda-table th, .cda-table td {
    padding: 12px 14px;
    text-align: left;
    border-bottom: 1px solid var(--hh-gray-200);
    font-size: 14px;
}
.cda-table th { background: var(--hh-cream); color: var(--hh-navy-700); font-weight: 600; }
.cda-pagination { display: flex; gap: 6px; margin-top: 20px; }
.cda-pagination a {
    padding: 6px 12px;
    border: 1px solid var(--hh-gray-200);
    border-radius: var(--hh-radius-sm);
    color: var(--hh-navy-700);
    text-decoration: none;
}
.cda-pagination a.active { background: var(--hh-navy-600); color: var(--hh-white); border-color: var(--hh-navy-600); }

/* Admin â access requests page */
.admin-page-header { margin-bottom: 16px; }
.admin-filters { display: flex; gap: 8px; margin-bottom: 16px; }
.admin-filters a {
    padding: 8px 16px;
    border-radius: var(--hh-radius-sm);
    border: 1px solid var(--hh-gray-200);
    color: var(--hh-navy-700);
    text-decoration: none;
    font-size: 14px;
}
.admin-filters a.active { background: var(--hh-navy-600); color: var(--hh-white); border-color: var(--hh-navy-600); }
.admin-table-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    text-transform: capitalize;
}
.badge-requested { background: #fff3cd; color: #856404; }
.badge-approved { background: #d4edda; color: #155724; }
.badge-rejected { background: #f8d7da; color: #721c24; }
.badge-revoked { background: var(--hh-gray-200); color: var(--hh-gray-700); }
