
:root { --bg:#0b0f14; --card:#121922; --muted:#8aa0b4; --text:#e6eef6; --accent:#3b82f6; --danger:#ef4444; }
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, 'Helvetica Neue', Arial; background: var(--bg); color: var(--text); }
a { color: var(--accent); text-decoration: none; }
.container { width: min(1100px, 92%); margin: 0 auto; }
.topbar { background: #0d1520; border-bottom: 1px solid #1e293b; }
.flex { display:flex; align-items:center; gap: 1rem; }
.between { justify-content: space-between; }
.logo a { display:inline-block; padding: 0.9rem 0; font-weight: 700; letter-spacing: .5px; color: #e2ecf5; }
.main { padding: 1.25rem 0 3rem; }
.card { background: var(--card); border:1px solid #1f2a3a; border-radius: 14px; padding: 1rem; margin: 1rem 0; }
.table { width:100%; border-collapse: collapse; }
.table th, .table td { border-bottom: 1px solid #1f2a3a; padding: .6rem .5rem; text-align: left; }
.field { margin-bottom: .9rem; }
label { display:block; font-size: .95rem; margin-bottom:.35rem; color: #cbd5e1; }
label.inline { display:inline-block; margin-right: 1rem; }
input, textarea, select, button { width:100%; padding:.6rem .7rem; border-radius: 10px;  }
[class^='fb'],[id^='fb']{width:revert;}
.appointment-times .selected {
  outline: 2px solid #fff;
  background: aliceblue;
  color: black;
}
input[type="checkbox"], input[type="radio"] { width:auto; }
button, .button { background: var(--accent); color:#fff; border:none; cursor:pointer; font-weight:600; }
.button.secondary { background:#334155; }
.button.small { padding: .35rem .6rem; font-size: .85rem; }
.button.danger { background: var(--danger); }
.alert { padding:.6rem .7rem; border-radius: 10px; margin:.7rem 0; }
.alert.error { background:#3b181c; border:1px solid #933; }
.alert.success { background:#12321d; border:1px solid #2e7d32; }
.row { display:grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: .8rem; }
.grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(210px,1fr)); gap: .8rem; }
.stat { text-align:center; }
.stat-num { font-size: 2.2rem; font-weight: 800; }
.stat-label { color: var(--muted); }
.req { color: #fbbf24; margin-left: .35rem; }
.footer { border-top:1px solid #1e293b; padding: 1rem 0; color: var(--muted); }


/* Responsive table wrapper for wide submissions table */
.table-responsive { overflow-x: auto; width: 100%; }
#submissionsTable { width: 100% !important; }
