/* ===================================================
   Egodeni Care Centre — shared brand tokens + dashboard
   =================================================== */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Atkinson+Hyperlegible:wght@400;700&family=Space+Grotesk:wght@500;600&display=swap');

:root{
  --bg: #F7F4EC;
  --bg-alt: #ECE6D4;
  --ink: #17140F;
  --ink-soft: #5C574C;
  --green: #056238;
  --green-deep: #033D22;
  --green-pale: #E4EEE6;
  --gold: #D9A441;
  --gold-deep: #B7842A;
  --red: #B3432B;
  --red-pale: #F7E7E2;
  --radius: 16px;
}

*{box-sizing:border-box;}
body.dashboard-body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:'Atkinson Hyperlegible', sans-serif;
  font-size:15.5px;
  line-height:1.55;
}
h1,h2,h3{
  font-family:'Fraunces', serif;
  font-weight:600;
  margin:0 0 .4em 0;
  color:var(--ink);
}
button{
  font-family:'Space Grotesk', sans-serif;
  font-weight:600;
  font-size:13.5px;
  cursor:pointer;
  border:none;
  border-radius:10px;
  padding:10px 18px;
  background:var(--green-deep);
  color:#fff;
  transition:transform .15s ease, box-shadow .15s ease;
}
button:hover{transform:translateY(-1px); box-shadow:0 8px 16px rgba(3,61,34,0.22);}
input, select, textarea{
  font-family:'Atkinson Hyperlegible', sans-serif;
  font-size:14.5px;
  padding:11px 13px;
  border-radius:10px;
  border:1.5px solid rgba(23,20,15,0.16);
  background:#fff;
  color:var(--ink);
}
input:focus, select:focus, textarea:focus{
  outline:2px solid var(--green);
  outline-offset:1px;
  border-color:var(--green);
}
.hidden{display:none !important;}

/* ---------- Login screen ---------- */
.login-screen{
  min-height:100vh;
  display:flex; align-items:center; justify-content:center;
  background:
    radial-gradient(circle at 20% 20%, rgba(5,98,56,0.10), transparent 45%),
    radial-gradient(circle at 80% 80%, rgba(217,164,65,0.12), transparent 45%),
    var(--bg);
  padding:20px;
}
.login-card{
  background:#fff;
  border-radius:20px;
  padding:44px 38px;
  width:100%;
  max-width:380px;
  box-shadow:0 30px 60px -24px rgba(23,20,15,0.25);
  border:1px solid rgba(23,20,15,0.06);
  text-align:center;
}
.login-card h2{font-size:1.5rem; margin-bottom:6px;}
.login-card p:not(#loginError){color:var(--ink-soft); font-size:14px; margin-bottom:24px;}
.login-card input{width:100%; margin-bottom:14px;}
.login-card button{width:100%; padding:13px; font-size:14.5px; margin-top:4px;}
#loginError{color:var(--red); font-size:13.5px; min-height:18px; margin:12px 0 0;}

/* ---------- Layout ---------- */
.dashboard-layout{
  display:grid;
  grid-template-columns:240px 1fr;
  min-height:100vh;
}
.sidebar{
  background:var(--green-deep);
  color:#F3E9D8;
  padding:32px 22px;
  display:flex;
  flex-direction:column;
  gap:6px;
  position:sticky;
  top:0;
  height:100vh;
}
.sidebar h2{color:#fff; font-size:1.3rem; margin-bottom:0;}
.sidebar > p{color:rgba(243,233,216,0.6); font-size:12.5px; text-transform:uppercase; letter-spacing:.08em; margin-bottom:24px; font-family:'Space Grotesk';}
.sidebar a{
  color:rgba(243,233,216,0.85);
  text-decoration:none;
  font-size:14.5px;
  padding:11px 14px;
  border-radius:10px;
  margin-bottom:2px;
}
.sidebar a:hover{background:rgba(243,233,216,0.08); color:#fff;}
.sidebar button{
  margin-top:auto;
  background:rgba(243,233,216,0.1);
  border:1px solid rgba(243,233,216,0.25);
}
.sidebar button:hover{background:rgba(243,233,216,0.18);}

.dashboard-main{padding:38px 44px 60px; max-width:1180px;}
.dashboard-header{
  display:flex; align-items:flex-start; justify-content:space-between; gap:20px;
  margin-bottom:24px; flex-wrap:wrap;
}
.dashboard-header h1{font-size:1.9rem;}
.dashboard-header p{color:var(--ink-soft); margin:0;}
.export-btn{background:var(--gold); color:var(--green-deep);}
.export-btn:hover{box-shadow:0 8px 16px rgba(217,164,65,0.35);}

/* ---------- Stats ---------- */
.stats-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:18px;
  margin:20px 0 32px;
}
.stat-card{
  background:#fff; border:1px solid rgba(23,20,15,0.08); border-radius:16px;
  padding:22px 24px;
}
.stat-card h3{
  font-family:'Space Grotesk'; font-size:12.5px; text-transform:uppercase; letter-spacing:.06em;
  color:var(--ink-soft); font-weight:600; margin-bottom:8px;
}
.stat-card p{font-family:'Fraunces'; font-size:1.9rem; font-weight:600; margin:0; color:var(--ink);}
.stat-card.warning{background:var(--red-pale); border-color:rgba(179,67,43,0.2);}
.stat-card.warning p{color:var(--red);}
@media (max-width:820px){ .stats-grid{grid-template-columns:1fr;} }

/* ---------- Panels ---------- */
.panel{
  background:#fff; border:1px solid rgba(23,20,15,0.08); border-radius:18px;
  padding:28px 30px; margin-bottom:24px;
}
.panel h2{font-size:1.25rem;}

.employee-form, .leave-form, .misconduct-form, .contract-form{
  display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:14px;
}
.employee-form textarea, .leave-form textarea, .misconduct-form textarea, .contract-form textarea{
  grid-column:1/-1; min-height:80px; resize:vertical;
}
.employee-form select, .leave-form select, .misconduct-form select, .contract-form select{
  grid-column: span 1;
}
.employee-form button, .leave-form button, .misconduct-form button, .contract-form button{
  grid-column:1/-1; justify-self:start;
}
@media (max-width:640px){
  .employee-form, .leave-form, .misconduct-form, .contract-form{grid-template-columns:1fr;}
}

.profile-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; margin:14px 0 18px;}
.profile-grid div{background:var(--bg-alt); padding:12px 14px; border-radius:10px; font-size:14.5px;}

/* ---------- Table ---------- */
.table-wrapper{overflow-x:auto; margin-top:14px;}
table{width:100%; border-collapse:collapse; font-size:14px;}
thead th{
  text-align:left; font-family:'Space Grotesk'; font-size:12px; text-transform:uppercase;
  letter-spacing:.05em; color:var(--ink-soft); padding:10px 12px; border-bottom:2px solid rgba(23,20,15,0.1);
  white-space:nowrap;
}
tbody td{padding:12px; border-bottom:1px solid rgba(23,20,15,0.07); vertical-align:middle;}
tbody tr:hover{background:var(--bg-alt);}
tbody td button{
  background:var(--bg-alt); color:var(--ink); padding:6px 10px; font-size:12px; margin-right:4px; margin-bottom:4px;
  border:1px solid rgba(23,20,15,0.12);
}
tbody td button:hover{background:var(--green-pale);}

.warning-badge, .contract-badge{
  display:inline-block; padding:4px 10px; border-radius:999px; font-size:12px;
  font-family:'Space Grotesk'; font-weight:600; background:var(--gold); color:var(--green-deep);
}
