/* Root variables for theme */
:root {
  --brand-color: #3B82F6;
  --bg-light: #ffffff;
  --bg-dark: #121212;
  --text-dark: #0f1724;
  --text-light: #f5f5f5;
  --muted: #9a9b9c;
  --success: #28A745;
  --warn: #f59e0b;
  --danger: #FF4C4C;
  --ready: #3B82F6;
  --radius: 14px;
  --shadow-light: 0 4px 8px rgba(0,0,0,0.05);
  --shadow-dark: 0 8px 24px rgba(0,0,0,0.35);
  --spacing: 8px;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
body {
  font-family: Arial, sans-serif;
  background: var(--bg-light);
  color: var(--text-dark);
  line-height: 1.5;
  transition: background 0.3s, color 0.3s;
}
body.dark { background: var(--bg-dark); color: var(--text-light); }

.topbar { padding: calc(var(--spacing)*2) calc(var(--spacing)*2.5); border-bottom: 1px solid rgba(0,0,0,0.08); }
.topbar h1 { font-size: 20px; letter-spacing: 0.5px; }

.container { max-width: 1100px; margin: calc(var(--spacing)*3) auto; padding: 0 calc(var(--spacing)*2); }

.card {
  background: var(--bg-light);
  border-radius: var(--radius);
  padding: calc(var(--spacing) * 2);
  box-shadow: var(--shadow-light);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  border: 1px solid rgba(0,0,0,0.06);
  margin-bottom: calc(var(--spacing) * 2);
}
body.dark .card { background: #1f1f1f; box-shadow: var(--shadow-dark); }
.card:hover { transform: translateY(-3px); }

.grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: calc(var(--spacing) * 2); }

.role {
  display: block; padding: calc(var(--spacing) * 2.25); border-radius: var(--radius);
  text-decoration: none; color: inherit; background: var(--bg-light);
  border: 1px solid rgba(0,0,0,0.06);
}
.role:hover { transform: translateY(-3px); border-color: rgba(0,0,0,0.18); }
body.dark .role { background: #1f1f1f; border-color: rgba(255,255,255,0.1); }

h2 { font-size: 22px; margin-bottom: var(--spacing); }
h3 { font-size: 18px; margin: calc(var(--spacing) * 0.75) 0 calc(var(--spacing) * 1.5); }
label { display: block; font-size: 13px; color: var(--muted); margin-bottom: 6px; }

input, select, button, textarea {
  background: var(--bg-light); color: var(--text-dark); border: 1px solid var(--muted);
  border-radius: 8px; padding: 10px 12px; font-size: 14px; transition: all 0.2s ease;
}
body.dark input, body.dark textarea, body.dark select { background: #2a2a2a; color: var(--text-light); border: 1px solid #555; }

button { cursor: pointer; border: none; padding: 10px 16px; border-radius: var(--radius); }
button.primary { background: var(--brand-color); color: #fff; }
button.success { background: var(--success); color: #fff; }
button.warn { background: var(--warn); color: #fff; }
button.danger { background: var(--danger); color: #fff; }
button.ready { background: var(--ready); color: #fff; }

.row { display: flex; gap: calc(var(--spacing) * 1.25); flex-wrap: wrap; }
.row > * { flex: 1; min-width: 160px; }

.table { width: 100%; border-collapse: collapse; font-size: 14px; }
.table th, .table td { padding: 10px; border-bottom: 1px solid rgba(0,0,0,0.06); text-align: left; }

.badge { padding: 4px 8px; border-radius: 999px; font-size: 12px; text-align:center; }
.badge.pending { background: rgba(59,130,246,0.1); border: 1px solid rgba(59,130,246,0.4); color: var(--brand-color); }
.badge.done { background: rgba(107,114,128,0.08); border: 1px solid rgba(107,114,128,0.3); color: var(--muted); }

.metrics { display: flex; flex-wrap: wrap; gap: calc(var(--spacing) * 1.5); }
.metric { flex: 1; min-width: 160px; padding: calc(var(--spacing) * 1.5); border-radius: 10px; background: linear-gradient(180deg, rgba(0,0,0,0.02), rgba(0,0,0,0.01)); border: 1px solid rgba(0,0,0,0.06); }
.metric .label { font-size: 13px; color: var(--muted); }
.metric .value { font-size: 20px; font-weight: 700; margin-top: 6px; }

.foot { text-align: center; color: var(--muted); padding: calc(var(--spacing) * 2.5); }
.small { font-size: 12px; color: var(--muted); }
