:root{
  --teal:#008f99; --teal-600:#008f99; --ink:#0f172a; --muted:#475569;
  --bg:#f6fafb; --card:#fff; --border:rgba(2,8,23,.08);
}
*{box-sizing:border-box}
body{background:var(--bg); color:var(--ink)}
a{text-decoration:none; color:inherit}
.container{max-width:1200px; margin:0 auto; padding:24px}

/* Layout helpers for pages that already have a fixed sidebar (width ~250px) */
.dashboard-main{ margin-left:250px; min-height:100vh; padding:24px; }

/* Section header */
.page-title{font-size:28px; font-weight:800; margin:0 0 16px;}
.subtitle{color:var(--muted); margin:4px 0 16px}

/* Card & grids */
.grid{display:grid; gap:16px}
.grid-3{grid-template-columns:repeat(3, minmax(0,1fr))}
.grid-2{grid-template-columns:repeat(2, minmax(0,1fr))}
@media (max-width:1024px){ .grid-3{grid-template-columns:repeat(2,1fr)} }
@media (max-width:640px){ .grid-3,.grid-2{grid-template-columns:1fr} }

.card{
  background:var(--card); border:1px solid var(--border); border-radius:16px;
  padding:18px; box-shadow:0 18px 50px rgba(2,8,23,.06);
}
.card h3{margin:0 0 8px; font-size:18px}
.card p{margin:0; color:var(--muted)}
.card .actions{margin-top:12px; display:flex; gap:10px; flex-wrap:wrap}

/* Buttons */
.btn{display:inline-block; padding:10px 14px; border-radius:12px; font-weight:700}
.btn-primary{background:var(--teal-600); color:#fff; box-shadow:0 8px 22px rgba(0,143,153,.25)}
.btn-ghost{background:#ecfeff; color:#065f63; border:1px solid rgba(0,143,153,.25)}

/* Stat cards */
.stat{
  display:flex; align-items:center; gap:12px;
}
.stat .icon{
  width:38px; height:38px; border-radius:10px; display:grid; place-items:center;
  background:#ecfeff; border:1px solid rgba(0,143,153,.18);
}
.stat .num{font-size:22px; font-weight:800}
.stat .label{color:var(--muted); font-size:13px}

/* Lists */
.list{display:grid; gap:10px; margin-top:8px}
.list-item{
  border:1px solid var(--border); border-radius:12px; padding:12px;
  display:flex; justify-content:space-between; align-items:center; gap:12px; background:#fff;
}
.item-meta{display:flex; flex-direction:column; gap:4px}
.item-title{font-weight:700}
.item-sub{font-size:13px; color:var(--muted)}

/* Alerts */
.alert{
  border-radius:12px; padding:12px 14px; margin:6px 0 16px; font-weight:600;
}
.alert.ok{background:rgba(0,143,153,.08); color:#075a5f; border:1px solid rgba(0,143,153,.25)}
.alert.err{background:#fff1f2; color:#991b1b; border:1px solid #fecaca}

/* Forms (for request form area or quick actions) */
.form-field{display:flex; flex-direction:column; gap:6px}
.input, textarea.input{
  width:100%; border:1px solid var(--border); border-radius:12px; padding:10px 12px;
}