/* =========================
   HireSloth — Visual Refresh
   (CSS-only; nav always visible)
   ========================= */

/* ---- Theme tokens ---- */
:root{
  --cream:#FCEFDC;
  --paper:#FFF8F2;
  --ink:#3C3525;
  --brand:#715336;
  --brand-2:#A18F7B;
  --brand-3:#BDAA95;
  --shadow:0 8px 24px rgba(0,0,0,.14);
  --shadow-sm:0 4px 12px rgba(0,0,0,.10);
  --radius:14px;
}

/* =========================
   Global
   ========================= */
*{ box-sizing:border-box }
html,body{ height:100% }
body{
  margin:0;
  font-family:'Poppins',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:
    radial-gradient(1000px 500px at 120% -10%, rgba(161,143,123,.18), transparent 40%),
    radial-gradient(900px 600px at -10% 120%, rgba(113,83,54,.12), transparent 40%),
    var(--cream);
  color:var(--ink);
  line-height:1.65;
}

a{ text-decoration:none; color:inherit; transition: color .25s, opacity .25s, transform .25s; }
a:hover{ opacity:.92 }
h1,h2,h3{ color:var(--brand); font-weight:700; letter-spacing:.2px; margin-top:0 }

/* =========================
   Header & Navigation
   ========================= */
header{
  display:flex; justify-content:space-between; align-items:center;
  padding:.9rem 1.6rem;
  position:sticky; top:0; z-index:100;
  box-shadow:var(--shadow-sm);
  background: rgba(255,255,255,.85);
  -webkit-backdrop-filter: saturate(1.1) blur(6px);
  backdrop-filter: saturate(1.1) blur(6px);
}
/* Fallback when backdrop-filter is unsupported */
@supports not (backdrop-filter: blur(1px)) {
  header{ background:#fff; }
}

.logo{ display:inline-flex; align-items:center; }
.logo picture{ display:inline-block; line-height:0; }
.logo img{
  display:block;              /* removes baseline gap */
  height:50px;
  width:auto;                 /* respect intrinsic ratio */
  border-radius:12px;
}

nav{ display:flex; align-items:center; gap:.8rem }
nav a{
  padding:.5rem .75rem;
  color:var(--ink);
  font-weight:500;
  border-radius:10px;
  position:relative;
}
nav a::after{
  content:"";
  position:absolute; inset:auto 10% -6px 10%;
  height:3px;
  background:linear-gradient(90deg, var(--brand), var(--brand-2));
  border-radius:2px;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s ease;
}
nav a:hover::after, nav a.active::after{ transform:scaleX(1) }

#postJobBtn{
  background:linear-gradient(135deg, var(--brand-2), var(--brand));
  color:var(--cream);
  border-radius:12px;
  padding:.55rem .9rem;
  box-shadow:var(--shadow-sm);
}
#postJobBtn:hover{ transform:translateY(-1px); box-shadow:var(--shadow) }

/* Optional pill style for My Jobs */
#myJobsBtn{
  background:#fff; color:var(--brand);
  border:2px solid var(--brand);
  border-radius:12px; padding:.55rem .9rem;
  box-shadow:var(--shadow-sm);
}
#myJobsBtn:hover{ transform:translateY(-1px); box-shadow:var(--shadow) }

/* Keep Sign In/Out width stable so text swap doesn't jiggle */
#authBtn{ min-width:8ch; text-align:center }

/* =========================
   Hero
   ========================= */
.hero{
  text-align:center;
  padding:5.2rem 1.6rem 3.8rem;
  color:var(--cream);
  background:
    radial-gradient(100% 120% at 70% -10%, rgba(252,239,220,.20), rgba(252,239,220,0) 50%),
    linear-gradient(135deg, var(--brand) 0%, var(--brand-2) 100%);
  border-bottom-left-radius:48px;
  border-bottom-right-radius:48px;
  position:relative; overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute; inset:-60px -80px auto auto;
  width:280px; height:280px; border-radius:50%;
  background:radial-gradient(circle at 30% 30%, rgba(252,239,220,.6), rgba(252,239,220,0) 70%);
  opacity:.25; pointer-events:none;
}
.hero h1{ font-size:clamp(2rem,4.2vw,3.25rem); margin-bottom:.7rem }
.hero p { font-size:clamp(1rem,2.2vw,1.2rem); opacity:.97; margin-bottom:1.6rem }

/* =========================
   Content
   ========================= */
.content{ max-width:1080px; margin:3rem auto; padding:0 1.2rem; text-align:center }
.content > p{ max-width:820px; margin:.6rem auto 0 }

/* =========================
   CTA Buttons
   ========================= */
.cta-buttons{ display:flex; justify-content:center; gap:1rem; margin-top:1.6rem; flex-wrap:wrap }
.btn{
  display:inline-block;
  padding:.95rem 1.6rem;
  background:linear-gradient(135deg, var(--brand-2), var(--brand));
  color:var(--cream);
  border-radius:12px;
  font-weight:700; letter-spacing:.2px;
  box-shadow:var(--shadow-sm);
  transition: transform .2s, box-shadow .25s, filter .2s;
}
.btn:hover{ transform:translateY(-2px); box-shadow:var(--shadow); filter:saturate(1.05) }
.btn:active{ transform:translateY(0); box-shadow:var(--shadow-sm) }
.btn-alt{
  background:#fff; color:var(--brand); border:2px solid var(--brand);
}
.btn-alt:hover{ transform:translateY(-2px); box-shadow:var(--shadow-sm) }
.btn.secondary{ background:#fff; color:var(--brand); border:2px solid var(--brand); }
.btn.secondary:hover{ transform:translateY(-2px); box-shadow:var(--shadow) }

/* =========================
   Search Bar
   ========================= */
.search-bar{
  display:flex; gap:.6rem; flex-wrap:wrap; justify-content:center;
  margin:1.2rem auto 0; max-width:900px;
}
.search-bar input[type="text"]{
  flex:1 1 240px;
  background:#fff; border:1px solid #e7e0d9; border-radius:12px;
  padding:.85rem .95rem;
  box-shadow:inset 0 1px 0 rgba(0,0,0,.03);
  transition:border .2s, box-shadow .2s;
}
.search-bar input[type="text"]:focus{
  border-color:var(--brand-3);
  box-shadow:0 0 0 4px rgba(113,83,54,.15);
  outline:none;
}
.search-bar label{ display:flex; align-items:center; gap:.4rem; font-weight:500 }
.search-bar button{
  padding:.85rem 1.1rem; border-radius:12px; border:none;
  background:linear-gradient(135deg,var(--brand-2),var(--brand));
  color:var(--cream); font-weight:700; cursor:pointer; box-shadow:var(--shadow-sm);
}
.search-bar button:hover{ transform:translateY(-1px); box-shadow:var(--shadow) }

/* =========================
   Jobs Grid
   ========================= */
.jobs{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));
  gap:1.4rem;
  margin-top:2rem;
}
.job-card{
  background:linear-gradient(180deg, #fff 0%, var(--paper) 100%);
  padding:1.3rem 1.25rem 1.15rem;
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
  text-align:left;
  border:1px solid rgba(113,83,54,.08);
  transition: transform .25s, box-shadow .25s, border-color .25s;
  position:relative; overflow:hidden;
}
.job-card::after{
  content:"";
  position:absolute; inset:auto -20% 0 -20%;
  height:6px; background:linear-gradient(90deg, var(--brand), var(--brand-2));
  opacity:.35; filter:blur(6px);
}
.job-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:rgba(113,83,54,.18) }
.job-card h3{ margin:.2rem 0 .35rem; color:var(--brand); font-size:1.15rem }
.job-card p{ margin:.35rem 0; color:#4a4233 }
.job-card small{ display:block; margin-top:.75rem; color:#7b7162 }
/* Prevent long titles/URLs from overflowing in job cards */
.job-card h3, .job-card p{
  overflow-wrap:anywhere; word-break:break-word; hyphens:auto;
}
.actions{ display:flex; gap:.6rem; flex-wrap:wrap; margin-top:.8rem }

/* =========================
   Forms
   ========================= */
form{
  max-width:680px; margin:2rem auto; text-align:left;
  background:linear-gradient(180deg, #fff 0%, var(--paper) 100%);
  padding:2rem; border-radius:var(--radius); box-shadow:var(--shadow-sm);
  border:1px solid rgba(113,83,54,.08);
}
form label{ font-weight:600; margin-top:1rem; display:block; color:#4a4233 }
form input, form textarea{
  width:100%; padding:.85rem .95rem; margin-top:.35rem;
  border:1px solid #e6dfd7; border-radius:12px; font-family:inherit;
  transition:border .2s, box-shadow .2s, transform .05s; background:#fff;
}
form input:focus, form textarea:focus{
  border-color:var(--brand-3); box-shadow:0 0 0 4px rgba(113,83,54,.15); outline:none;
}
form button{
  display:inline-block; margin-top:1.3rem; padding:.95rem 1.4rem;
  background:linear-gradient(135deg, var(--brand-2), var(--brand));
  color:var(--cream); border:none; border-radius:12px; cursor:pointer;
  font-weight:800; font-size:1rem; box-shadow:var(--shadow-sm);
  transition: transform .15s, box-shadow .25s, filter .15s;
}
form button:hover{ transform:translateY(-2px); box-shadow:var(--shadow); filter:saturate(1.04) }
form button:disabled{ opacity:.6; cursor:not-allowed }

/* Status messages */
#formStatus, #signupStatus, #signinStatus, #authStatus{
  margin-top:.6rem; padding:.6rem .8rem; border-radius:10px; background:#fff;
  display:inline-block; box-shadow:inset 0 1px 0 rgba(0,0,0,.03);
}

/* =========================
   Footer
   ========================= */
footer{
  background:var(--brand); color:var(--cream); text-align:center;
  padding:2.6rem 1rem; margin-top:4rem;
  border-top-left-radius:50px; border-top-right-radius:50px;
  box-shadow:0 -6px 18px rgba(0,0,0,.08) inset;
}

/* =========================
   Responsive
   ========================= */
@media (max-width:900px){ .content{ padding:0 1rem } }
@media (max-width:768px){
  nav{ flex-wrap:wrap; justify-content:center }
  .hero{ padding:3.6rem 1rem }
  .hero h1{ font-size:2.1rem }
  .content{ padding:1rem }
}
@media (max-width:480px){
  .hero{ padding:3rem 1rem }
  .hero h1{ font-size:1.65rem }
  .job-card{ padding:1.1rem }
}

/* =========================
   Dark mode (automatic)
   ========================= */
@media (prefers-color-scheme: dark){
  :root{
    --cream:#1f1a14;
    --paper:#241e18;
    --ink:#efe6d9;
    --brand:#d0b79f;
    --brand-2:#9f876f;
    --brand-3:#7f6b56;
  }
  body{ color:var(--ink) }
  header{ background: rgba(30,26,22,.75) }
  .hero{ color:#fff }
  .job-card, form{ background:linear-gradient(180deg,#2a241e 0%, #201b16 100%); border-color:rgba(255,255,255,.06) }
  nav a{ color:var(--ink) }
  footer{ background:#2a241e }
}
/* Dark-mode fallback when no backdrop-filter */
@media (prefers-color-scheme: dark){
  @supports not (backdrop-filter: blur(1px)) {
    header{ background:#1e1a16; }
  }
}

/* =========================
   UX & A11y polish
   ========================= */
:root { color-scheme: light dark; }
:where(a, button, input, textarea, select):focus-visible {
  outline: 3px solid rgba(113,83,54,.55);
  outline-offset: 3px;
  border-radius: 10px;
}
.btn:focus-visible { box-shadow: 0 0 0 4px rgba(113,83,54,.25); }
input[type="checkbox"] { accent-color: var(--brand); }
.actions .btn:not(.secondary)::before { content: "✉️"; margin-right: .35rem; }
.actions .btn.secondary::before { content: "🚩"; margin-right: .35rem; }
.content a { text-decoration: underline; text-underline-offset: 2px; }
.content a:hover { text-decoration-thickness: 2px; }
img { max-width: 100%; height: auto; }
.visually-hidden {
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
@media (hover: none) {
  .btn:hover, .job-card:hover { transform: none; box-shadow: var(--shadow-sm); }
}
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
  .btn:hover, .job-card:hover { transform: none; }
}
@media (prefers-contrast: more) {
  nav a::after { height: 4px; }
  form, .job-card { border-color: rgba(0,0,0,.25); }
  .btn, #postJobBtn { box-shadow: 0 0 0 3px rgba(0,0,0,.12), var(--shadow-sm); }
}
