/* ===== Base / Reset ===== */
* { box-sizing: border-box; }
html, body { height: 100%; margin:0; font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; }
:root{
  --bg:#f7f7fb; --panel:#fff; --text:#1f2937;
  --muted:#6b7280; --border:#e5e7eb;
  --primary:#2563eb; --primary-700:#1d4ed8;
  --danger:#dc2626; --danger-700:#b91c1c;
  --success:#16a34a; --warning:#d97706;
  --radius:10px; --shadow:0 8px 24px rgba(0,0,0,.08);
}
@media(prefers-color-scheme:dark){
  :root{--bg:#0b0f16;--panel:#111827;--text:#e5e7eb;--muted:#9ca3af;--border:#1f2937;--shadow:0 10px 30px rgba(0,0,0,.45);}
}
body{font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Arial;color:var(--text);background:var(--bg);}
.container{max-width:960px;margin:2rem auto;padding:0 1rem;}
.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem;}
h1{margin-top:0;}
/* Forms */
label{display:block;margin:.9rem 0 .35rem;font-weight:600;}
input,textarea,select{width:100%;padding:.6rem .8rem;border:1px solid var(--border);border-radius:.5rem;background:var(--panel);color:var(--text);}
input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 .2rem rgba(37,99,235,.15);outline:none;}
textarea{min-height:120px;resize:vertical;}
/* Buttons */
.btn{display:inline-block;padding:.55rem 1rem;border-radius:.5rem;font-weight:600;cursor:pointer;text-decoration:none;transition:background .2s;}
.btn-primary{background:var(--primary);color:#fff;}
.btn-primary:hover{background:var(--primary-700);}
.btn-danger{background:var(--danger);color:#fff;}
.btn-danger:hover{background:var(--danger-700);}
.btn-ghost{border:1px solid var(--border);color:var(--text);background:transparent;}
.btn-ghost:hover{background:rgba(0,0,0,.05);}
button{border:none;}
/* Tables */
.table{width:100%;border-collapse:collapse;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
.table th,.table td{padding:.7rem .8rem;border-bottom:1px solid var(--border);text-align:left;}
.table th{background:rgba(0,0,0,.03);}
.table tr:hover td{background:rgba(0,0,0,.02);}
.table .actions{white-space:nowrap;}
/* Alerts */
.alert{padding:.8rem 1rem;border-radius:.5rem;margin:1rem 0;}
.alert.success{background:#ecfdf5;color:#065f46;border:1px solid #bbf7d0;}
.alert.error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca;}
.alert.warn{background:#fffbeb;color:#92400e;border:1px solid #fde68a;}
/* Badges */
.badge{padding:.2rem .6rem;border-radius:999px;font-size:.8rem;font-weight:600;}
.badge.pending{background:#fef3c7;color:#92400e;}
.badge.accepted{background:#dcfce7;color:#166534;}
.badge.denied{background:#fee2e2;color:#991b1b;}
