/* ==========================================================================
   "THE HIRING LEDGER" — sitewide theme
   A light, paper-and-ink design language for the job portal: candidate
   folders, stamped statuses, ledger-navy structure, brass ink accents.
   Every original selector is preserved — only the visual language changed.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Public+Sans:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@500;600&display=swap');

:root{
  /* -- palette -- */
  --primary:#1F2A44;        /* ledger navy — was indigo */
  --primary-dark:#141B2E;
  --accent:#B8863B;         /* brass ink — was orange */
  --accent-dark:#96692A;
  --bg:#FAF9F4;              /* warm paper */
  --card:#FFFFFF;
  --text:#23262E;
  --muted:#696D77;
  --border:#EAE6DA;
  --success:#3E7C59;
  --success-bg:#E7F1EA;
  --danger:#A23E32;
  --danger-bg:#F7E9E6;
  --info:#4C6584;
  --info-bg:#E9EEF3;
  --amber-bg:#FBF0DD;
  --amber-ink:#8C6414;
  --radius:12px;
  --radius-sm:8px;
  --shadow:0 1px 2px rgba(31,42,68,.04), 0 10px 24px -14px rgba(31,42,68,.20);
  --shadow-hover:0 4px 10px rgba(31,42,68,.06), 0 18px 34px -16px rgba(31,42,68,.26);

  --font-display:'Fraunces', Georgia, serif;
  --font-body:'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono:'IBM Plex Mono', 'SFMono-Regular', Menlo, monospace;
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
}

*{box-sizing:border-box;margin:0;padding:0;}

html{font-size:18px;} /* larger base type across the whole site */

body{
  font-family:var(--font-body);
  background:
    radial-gradient(1100px 480px at 100% -8%, rgba(184,134,59,.07), transparent 60%),
    var(--bg);
  color:var(--text);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{text-decoration:none;color:inherit;transition:color .15s ease;}
.container{max-width:1320px!important;margin:0 auto;padding:0 20px;}
img{max-width:100%;}

h1,h2,h3,h4,h5{font-family:var(--font-display);color:var(--primary);font-weight:600;letter-spacing:-.01em;line-height:1.22;}

@keyframes ledgerRise{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
@keyframes fillGrow{from{width:0;}}

/* ---------- Header ---------- */
.site-header{background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50;transition:box-shadow .2s ease;}
.site-header:hover{box-shadow:0 2px 12px rgba(31,42,68,.05);}
.navbar{display:flex;align-items:center;justify-content:space-between;}
.logo{font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--primary);letter-spacing:-.01em;}
.logo span{color:var(--accent-dark);}
.nav-links{display:flex;gap:26px;}
.nav-links a{font-weight:600;color:var(--text);font-size:15px;position:relative;padding:4px 0;}
.nav-links a::after{
  content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--accent);
  transition:width .2s ease;
}
.nav-links a:hover{color:var(--primary);}
.nav-links a:hover::after{width:100%;}
.nav-auth{display:flex;align-items:center;gap:12px;}
.hello{font-size:14.5px;color:var(--muted);margin-right:4px;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:11px 22px;border-radius:var(--radius-sm);font-size:15px;font-weight:700;
  border:1.5px solid transparent;cursor:pointer;font-family:var(--font-body);
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
}
.btn:active{transform:translateY(1px) scale(.98);}
.btn-primary{background:var(--primary);color:#FDF9EF;box-shadow:0 1px 0 rgba(0,0,0,.15);}
.btn-primary:hover{background:var(--accent-dark);color:#fff;transform:translateY(-1px);box-shadow:0 8px 18px -8px rgba(150,105,42,.5);}
.btn-outline{border-color:var(--primary);color:var(--primary);background:transparent;}
.btn-outline:hover{background:var(--amber-bg);border-color:var(--accent);color:var(--accent-dark);transform:translateY(-1px);}
.btn-accent{background:var(--accent);color:#fff;}
.btn-accent:hover{background:var(--accent-dark);transform:translateY(-1px);}
.btn-danger{background:transparent;border-color:var(--danger);color:var(--danger);}
.btn-danger:hover{background:var(--danger);color:#fff;transform:translateY(-1px);box-shadow:0 8px 18px -8px rgba(162,62,50,.45);}
.btn-sm{padding:7px 15px;font-size:13px;}
.btn-block{width:100%;text-align:center;}

/* ---------- Hero / search ---------- */
.hero{
  background:linear-gradient(135deg, var(--primary), #35406A 55%, var(--accent-dark));
  color:#fff;padding:64px 0 72px;position:relative;overflow:hidden;
  animation:ledgerRise .5s ease both;
}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(600px 300px at 85% 0%, rgba(255,255,255,.10), transparent 60%);
}
.hero h1{color:#fff;font-size:2.5rem;margin-bottom:10px;}
.hero p{opacity:.88;margin-bottom:28px;font-size:1.05rem;}
.search-box{
  background:#fff;border-radius:var(--radius);padding:16px;display:flex;gap:10px;
  box-shadow:0 20px 40px -18px rgba(20,27,46,.45);flex-wrap:wrap;position:relative;
}
.search-box input, .search-box select{
  flex:1;min-width:150px;border:1.5px solid var(--border);border-radius:var(--radius-sm);
  padding:12px 14px;font-size:15px;color:var(--text);font-family:var(--font-body);
  transition:border-color .15s ease, box-shadow .15s ease;
}
.search-box input:focus, .search-box select:focus{
  outline:none;border-color:var(--accent);box-shadow:0 0 0 4px rgba(184,134,59,.15);
}
.search-box button{white-space:nowrap;}

/* ---------- Layout helpers ---------- */
.section{padding:44px 0;}
.section-title{font-family:var(--font-display);font-size:1.65rem;margin-bottom:22px;font-weight:600;color:var(--primary);}
.grid{display:grid;gap:20px;}
.grid-2{grid-template-columns:1fr 1fr;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:900px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}}

.grid > *{animation:ledgerRise .45s cubic-bezier(.2,.7,.3,1) both;}
.grid > *:nth-child(1){animation-delay:.02s;}
.grid > *:nth-child(2){animation-delay:.06s;}
.grid > *:nth-child(3){animation-delay:.10s;}
.grid > *:nth-child(4){animation-delay:.14s;}
.grid > *:nth-child(n+5){animation-delay:.18s;}

/* ---------- Cards ---------- */
.card{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  padding:22px 24px;box-shadow:var(--shadow);position:relative;
  transition:box-shadow .22s ease, transform .22s ease;
}
.card::before{
  content:"";position:absolute;top:0;left:20px;right:20px;height:3px;border-radius:0 0 3px 3px;
  background:linear-gradient(90deg, var(--accent), transparent 85%);opacity:.7;
}
.card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);}

.job-card{display:flex;flex-direction:column;gap:9px;}
.job-card h3{font-size:1.2rem;color:var(--primary);font-family:var(--font-display);}
.job-card .company{font-weight:700;color:var(--text);font-size:.98rem;}
.job-card .meta{color:var(--muted);font-size:.88rem;display:flex;gap:14px;flex-wrap:wrap;}
.job-card .desc{color:var(--muted);font-size:.95rem;}
.job-card .actions{margin-top:8px;display:flex;gap:10px;align-items:center;}

/* ---------- Badges / stamped pills ---------- */
.badge{
  display:inline-block;background:var(--info-bg);color:var(--primary);border-radius:20px;
  padding:5px 13px;font-size:.8rem;font-weight:700;margin:2px 5px 2px 0;
  transition:background .15s ease, transform .15s ease;
}
.badge:hover{transform:translateY(-1px);}
.badge.match{background:var(--success-bg);color:var(--success);}
.badge.grey{background:#F1EFE7;color:var(--muted);}

.stat-card{text-align:left;}
.stat-card .num{font-family:var(--font-mono);font-size:2.4rem;font-weight:600;color:var(--primary);letter-spacing:-.02em;}
.stat-card .label{color:black;font-size:18px;margin-top:5px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;}

/* ---------- Forms ---------- */
form.card{max-width:560px;margin:0 auto;}
.form-wide{max-width:780px;}
.form-group{margin-bottom:18px;}
.form-group label{display:block;font-weight:700;font-size:.88rem;margin-bottom:7px;color:var(--muted);}
.form-group input, .form-group select, .form-group textarea{
  width:100%;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:11px 13px;
  font-size:.96rem;font-family:inherit;color:var(--text);background:#fff;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus{
  outline:none;border-color:var(--accent);box-shadow:0 0 0 4px rgba(184,134,59,.14);
}
.form-group textarea{resize:vertical;min-height:110px;}
.form-row{display:flex;gap:16px;flex-wrap:wrap;}
.form-row .form-group{flex:1;min-width:180px;}
.hint{font-size:.82rem;color:var(--muted);margin-top:5px;}
.form-title{font-family:var(--font-display);font-size:1.7rem;font-weight:600;margin-bottom:5px;text-align:center;color:var(--primary);}
.form-sub{text-align:center;color:var(--muted);font-size:.88rem;margin-bottom:24px;}
.form-footer{text-align:center;margin-top:18px;font-size:.95rem;color:var(--muted);}

/* ---------- Alerts ---------- */
.alert{padding:13px 17px;border-radius:var(--radius-sm);margin-bottom:18px;font-size:.92rem;animation:ledgerRise .3s ease both;}
.alert-success{background:var(--success-bg);color:var(--success);border:1px solid #C6E3D1;}
.alert-error{background:var(--danger-bg);color:var(--danger);border:1px solid #E9C7C0;}

/* ---------- Tables ---------- */
table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
table th, table td{padding:13px 15px;text-align:left;border-bottom:1px solid var(--border);font-size:.92rem;}
table th{background:#F7F5EE;color:var(--muted);font-weight:700;font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;}
table tr{transition:background .15s ease;}
table tr:hover td{background:#FCFAF3;}
table tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--accent);}

/* ---------- Status pill (ink-stamp signature) ---------- */
.pill{
  display:inline-block;padding:4px 11px;border-radius:4px;font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.07em;font-family:var(--font-mono);
  border:1.5px dashed currentColor;transform:rotate(-2deg);transition:transform .18s ease;
}
.pill:hover{transform:rotate(0deg) scale(1.05);}
.pill.applied{background:var(--info-bg);color:var(--info);}
.pill.shortlisted{background:var(--amber-bg);color:var(--amber-ink);}
.pill.hired{background:var(--success-bg);color:var(--success);}
.pill.rejected{background:var(--danger-bg);color:var(--danger);}
.pill.open{background:var(--success-bg);color:var(--success);}
.pill.closed{background:#F1EFE7;color:var(--muted);}

/* ---------- Sidebar / dashboard layout ---------- */
.dash-layout{display:grid;grid-template-columns:230px 1fr;gap:24px;align-items:stretch;}
@media(max-width:800px){.dash-layout{grid-template-columns:1fr;}}
.sidebar{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:14px;}
.sidebar a{
  display:block;padding:12px 16px;border-radius:var(--radius-sm);font-size:.95rem;font-weight:600;
  color:#C9D0E0;margin-bottom:4px;border-left:3px solid transparent;
  transition:background .18s ease, color .18s ease, border-color .18s ease, padding-left .18s ease;
}
.sidebar a:hover{background:rgba(255,255,255,.07);color:#fff;padding-left:20px;}
.sidebar a.active{background:rgba(184,134,59,.18);color:#F5E3C1;border-left-color:var(--accent);}

/* ---------- Chart bars (pure CSS report bars) ---------- */
.bar-row{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.bar-label{width:160px;font-size:.85rem;color:var(--muted);flex-shrink:0;}
.bar-track{flex:1;background:var(--info-bg);border-radius:var(--radius-sm);height:18px;overflow:hidden;}
.bar-fill{background:linear-gradient(90deg, var(--accent-dark), var(--accent));height:100%;border-radius:var(--radius-sm);animation:fillGrow 1s cubic-bezier(.2,.8,.3,1) both;}
.bar-value{width:38px;text-align:right;font-size:.85rem;font-weight:700;color:var(--primary);font-family:var(--font-mono);}

/* ---------- Footer ---------- */
.site-footer{margin-top:44px;padding:26px 0;text-align:center;color:var(--muted);font-size:.85rem;border-top:1px solid var(--border);}

/* ---------- Misc ---------- */
.text-center{text-align:center;}
.mt-16{margin-top:16px;}
.mt-24{margin-top:24px;}
.empty-state{
  text-align:center;padding:44px 12px;color:var(--muted);font-family:var(--font-display);
  font-style:italic;font-size:1.1rem;border:1px dashed var(--border);border-radius:var(--radius);background:#fff;
}
.skill-checks{display:flex;flex-wrap:wrap;gap:9px;}
.skill-checks label{
  background:var(--info-bg);color:var(--info);padding:7px 14px;border-radius:20px;font-size:.85rem;
  font-weight:600;cursor:pointer;transition:background .15s ease, color .15s ease, transform .15s ease;
}
.skill-checks label:hover{background:var(--primary);color:#fff;transform:translateY(-1px);}
.skill-checks input{margin-right:6px;}

/* ---------- Accessible focus ---------- */
a:focus-visible, .btn:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px;
}