/* ============================================================
   DriveAssess — Global Design System
   Black & White Outlined Theme
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500&display=swap');

/* ---- CSS Variables ---- */
:root {
  /* Core palette */
  --black:        #000000;
  --white:        #ffffff;
  --off-white:    #f0f0f0;
  --dim:          rgba(255,255,255,0.55);
  --dimmer:       rgba(255,255,255,0.30);
  --faint:        rgba(255,255,255,0.06);
  --faint-hover:  rgba(255,255,255,0.09);

  /* Borders */
  --border:       rgba(255,255,255,0.14);
  --border-strong:rgba(255,255,255,0.30);
  --border-focus: rgba(255,255,255,0.70);

  /* Semantic colours (muted tints only — no saturated fills) */
  --green:        rgba(0,220,130,1);
  --green-tint:   rgba(0,220,130,0.10);
  --green-border: rgba(0,220,130,0.25);

  --red:          rgba(255,75,75,1);
  --red-tint:     rgba(255,75,75,0.10);
  --red-border:   rgba(255,75,75,0.25);

  --amber:        rgba(255,175,50,1);
  --amber-tint:   rgba(255,175,50,0.10);
  --amber-border: rgba(255,175,50,0.25);

  --blue:         rgba(80,180,255,1);
  --blue-tint:    rgba(80,180,255,0.10);
  --blue-border:  rgba(80,180,255,0.25);

  /* Legacy aliases for backward compatibility */
  --bg-primary:    #000000;
  --bg-secondary:  #0a0a0a;
  --bg-tertiary:   #111111;
  --bg-card:       rgba(255,255,255,0.04);
  --bg-card-hover: rgba(255,255,255,0.08);
  --glass-border:  rgba(255,255,255,0.14);
  --glass-shadow:  0 8px 32px rgba(0,0,0,0.6);
  --glass-bg:      rgba(255,255,255,0.03);

  --accent-purple: #ffffff;
  --accent-cyan:   rgba(255,255,255,0.7);
  --accent-green:  rgba(0,220,130,1);
  --accent-orange: rgba(255,175,50,1);
  --accent-red:    rgba(255,75,75,1);

  --gradient-main:    linear-gradient(135deg, #fff 0%, rgba(255,255,255,0.85) 100%);
  --gradient-danger:  linear-gradient(135deg, #ff4b4b 0%, #ff7b7b 100%);
  --gradient-success: linear-gradient(135deg, #00dc82 0%, #00b4d8 100%);
  --gradient-warning: linear-gradient(135deg, #ffaf32 0%, #ffd700 100%);

  --text-primary:   #ffffff;
  --text-secondary: rgba(255,255,255,0.65);
  --text-muted:     rgba(255,255,255,0.35);
  --text-accent:    #ffffff;

  --radius-sm:  8px;
  --radius-md:  10px;
  --radius-lg:  14px;
  --radius-xl:  20px;
  --radius-full:9999px;

  --font-sans:  'Inter', system-ui, sans-serif;
  --font-mono:  'JetBrains Mono', monospace;

  --transition: all 0.2s cubic-bezier(0.4,0,0.2,1);
  --ease:       cubic-bezier(0.4,0,0.2,1);
}

/* ---- Reset & Base ---- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }

body {
  font-family: var(--font-sans);
  background: var(--black);
  color: var(--white);
  min-height: 100vh;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

/* ---- Typography ---- */
h1,h2,h3,h4,h5,h6 { font-weight: 700; line-height: 1.2; letter-spacing: -0.02em; }
h1 { font-size: clamp(1.8rem,4vw,2.8rem); }
h2 { font-size: clamp(1.4rem,3vw,2rem); }
h3 { font-size: clamp(1.1rem,2vw,1.4rem); }
h4 { font-size: 1.1rem; }
p  { color: var(--text-secondary); }

a { color: var(--white); text-decoration: none; transition: var(--transition); }
a:hover { color: var(--dim); }

/* ---- Glass Card (outlined) ---- */
.glass-card {
  background: var(--faint);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  transition: var(--transition);
  position: relative;
}
.glass-card:hover { border-color: var(--border-strong); }

/* ---- Buttons ---- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 20px;
  font-family: var(--font-sans);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  border: 1px solid transparent;
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: var(--transition);
  white-space: nowrap;
  text-decoration: none;
  line-height: 1;
}
.btn:active { transform: scale(0.97); }
.btn:disabled, .btn[disabled] { opacity: 0.4; cursor: not-allowed; transform: none !important; }

/* White filled — primary action */
.btn-primary {
  background: var(--white);
  color: var(--black);
  border-color: var(--white);
}
.btn-primary:hover { background: var(--off-white); opacity: 0.92; }

/* Danger */
.btn-danger {
  background: var(--red-tint);
  color: var(--red);
  border-color: var(--red-border);
}
.btn-danger:hover { background: rgba(255,75,75,0.18); }

/* Success */
.btn-success {
  background: var(--green-tint);
  color: var(--green);
  border-color: var(--green-border);
}
.btn-success:hover { background: rgba(0,220,130,0.18); }

/* Ghost — outlined */
.btn-ghost {
  background: transparent;
  color: var(--text-secondary);
  border-color: var(--border);
}
.btn-ghost:hover { color: var(--white); border-color: var(--border-strong); background: var(--faint-hover); }

.btn-sm  { padding: 7px 14px; font-size: 0.8rem; }
.btn-lg  { padding: 14px 28px; font-size: 1rem; }
.btn-block { width: 100%; }

/* ---- Form Elements ---- */
.form-group { margin-bottom: 1.25rem; }

.form-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--text-muted);
  margin-bottom: 7px;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.form-control {
  width: 100%;
  padding: 11px 14px;
  background: transparent;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  color: var(--white);
  font-family: var(--font-sans);
  font-size: 0.9rem;
  transition: var(--transition);
  outline: none;
}
.form-control::placeholder { color: var(--text-muted); }
.form-control:focus {
  border-color: var(--border-focus);
  box-shadow: 0 0 0 3px rgba(255,255,255,0.07);
}
.form-control.is-error { border-color: var(--red-border); }
textarea.form-control { resize: vertical; min-height: 120px; }
select.form-control {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='rgba(255,255,255,0.35)' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14L2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 38px;
  background-color: transparent;
}
select.form-control option { background: #111; color: #fff; }

/* ---- Toggle Switch ---- */
.toggle-switch { position: relative; display: inline-block; width: 42px; height: 24px; cursor: pointer; }
.toggle-switch input { opacity: 0; width: 0; height: 0; }
.toggle-slider {
  position: absolute; inset: 0;
  background: rgba(255,255,255,0.1);
  border: 1px solid var(--border);
  border-radius: 24px;
  transition: 0.25s;
}
.toggle-slider::before {
  content: '';
  position: absolute;
  width: 16px; height: 16px; left: 3px; top: 3px;
  background: rgba(255,255,255,0.45);
  border-radius: 50%;
  transition: 0.25s;
}
.toggle-switch input:checked + .toggle-slider { background: var(--green-tint); border-color: var(--green-border); }
.toggle-switch input:checked + .toggle-slider::before { transform: translateX(18px); background: var(--green); }

/* ---- Badge ---- */
.badge {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 9px;
  border-radius: var(--radius-full);
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em;
  border: 1px solid;
}
.badge-primary { background: var(--faint);        color: var(--white);  border-color: var(--border); }
.badge-success { background: var(--green-tint);   color: var(--green);  border-color: var(--green-border); }
.badge-danger  { background: var(--red-tint);     color: var(--red);    border-color: var(--red-border); }
.badge-warning { background: var(--amber-tint);   color: var(--amber);  border-color: var(--amber-border); }
.badge-muted   { background: transparent;         color: var(--dimmer); border-color: var(--border); }

/* ---- Alert ---- */
.alert {
  padding: 12px 16px; border-radius: var(--radius-md);
  font-size: 0.88rem; display: flex; align-items: center; gap: 10px;
  margin-bottom: 1rem; border: 1px solid;
}
.alert-danger  { background: var(--red-tint);   border-color: var(--red-border);   color: #ff9090; }
.alert-success { background: var(--green-tint); border-color: var(--green-border); color: var(--green); }
.alert-warning { background: var(--amber-tint); border-color: var(--amber-border); color: var(--amber); }
.alert-info    { background: var(--blue-tint);  border-color: var(--blue-border);  color: var(--blue); }

/* ---- Modal ---- */
.modal-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.85);
  backdrop-filter: blur(12px);
  /* Must stay above #fullscreen-prompt (z-index: 9999 in exam.css) — the
     two are frequently shown at the same time (e.g. a candidate exits
     fullscreen: the fullscreen-prompt appears AND the violation modal
     with "Return to Exam" appears). At the old z-index (1000) the modal
     rendered behind the fullscreen prompt and its buttons were visually
     hidden and unclickable. */
  z-index: 10000;
  display: flex; align-items: center; justify-content: center;
  padding: 1rem;
  opacity: 0; visibility: hidden;
  transition: var(--transition);
}
.modal-overlay.active { opacity: 1; visibility: visible; }

.modal {
  background: #0d0d0d;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 2rem;
  width: 100%; max-width: 520px;
  box-shadow: 0 24px 60px rgba(0,0,0,0.7);
  transform: scale(0.95) translateY(16px);
  transition: var(--transition);
}
.modal-overlay.active .modal { transform: scale(1) translateY(0); }

.modal-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border);
}
.modal-close {
  background: none; border: none;
  color: var(--text-muted); cursor: pointer;
  padding: 4px; border-radius: var(--radius-sm);
  font-size: 1.1rem; transition: var(--transition);
}
.modal-close:hover { color: var(--white); background: var(--faint); }

/* ---- Table ---- */
.table-wrapper { overflow-x: auto; }

table { width: 100%; border-collapse: collapse; font-size: 0.88rem; }

thead th {
  padding: 11px 16px; text-align: left;
  font-size: 0.68rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--text-muted);
  background: rgba(255,255,255,0.02);
  border-bottom: 1px solid var(--border);
}

tbody tr { border-bottom: 1px solid rgba(255,255,255,0.04); transition: var(--transition); }
tbody tr:hover { background: var(--faint); }
tbody tr:last-child { border-bottom: none; }

tbody td { padding: 13px 16px; color: var(--text-secondary); vertical-align: middle; }

/* ---- Progress Bar ---- */
.progress-bar { height: 4px; background: rgba(255,255,255,0.08); border-radius: var(--radius-full); overflow: hidden; }
.progress-fill { height: 100%; background: var(--white); border-radius: var(--radius-full); transition: width 0.5s ease; }

/* ---- Spinner ---- */
.spinner {
  width: 32px; height: 32px;
  border: 2px solid rgba(255,255,255,0.1);
  border-top-color: var(--white);
  border-radius: 50%;
  animation: spin 0.7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.spin-once { display: inline-flex; animation: spin 0.6s linear; }

/* ---- Utilities ---- */
.gradient-text { color: var(--white); }
.text-center  { text-align: center; }
.text-right   { text-align: right; }
.text-muted   { color: var(--text-muted) !important; }
.text-success { color: var(--green) !important; }
.text-danger  { color: var(--red) !important; }
.text-warning { color: var(--amber) !important; }
.text-accent  { color: var(--white) !important; }

.d-flex           { display: flex; }
.align-center     { align-items: center; }
.justify-between  { justify-content: space-between; }
.justify-center   { justify-content: center; }
.gap-1 { gap: 0.5rem; } .gap-2 { gap: 1rem; } .gap-3 { gap: 1.5rem; }
.flex-wrap { flex-wrap: wrap; }

.mb-1{margin-bottom:.5rem} .mb-2{margin-bottom:1rem} .mb-3{margin-bottom:1.5rem} .mb-4{margin-bottom:2rem}
.mt-1{margin-top:.5rem}    .mt-2{margin-top:1rem}    .mt-3{margin-top:1.5rem}   .mt-auto{margin-top:auto}
.p-1{padding:.5rem} .p-2{padding:1rem} .p-3{padding:1.5rem} .p-4{padding:2rem}
.w-100{width:100%} .hidden{display:none !important}

/* ---- Scrollbar ---- */
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: #000; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.3); }

/* ---- Animations ---- */
@keyframes fadeInUp  { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn    { from{opacity:0} to{opacity:1} }
@keyframes pulse     { 0%,100%{opacity:1} 50%{opacity:0.5} }

.animate-fade-up { animation: fadeInUp 0.4s ease both; }
.animate-fade    { animation: fadeIn   0.35s ease both; }
.animate-pulse   { animation: pulse 2s infinite; }

/* ---- Responsive ---- */
@media(max-width:768px){
  .hide-mobile{display:none !important}
  .btn{padding:9px 16px}
  /* iOS Safari auto-zooms the whole page when a focused form field's
     font-size is under 16px — bump it up on small screens only, so
     desktop keeps its tighter 0.9rem density. */
  .form-control, select.form-control, textarea.form-control, input.form-control { font-size: 16px; }
  table { font-size: 0.82rem; }
}

/* ============================================================
   Brand Font — Blanka (self-hosted, used only for "HEPTHEX")
   ============================================================ */
@font-face {
  font-family: 'Blanka';
  src: url('data:font/otf;base64,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') format('opentype'),
       url('/assets/fonts/Blanka-Regular.otf') format('opentype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* ============================================================
   Site Footer — "Powered by HEPTHEX"
   ============================================================ */
.site-footer {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 1.25rem 1rem 1.5rem;
  font-size: 0.8rem;
  color: var(--text-muted, rgba(255,255,255,0.5));
}
.site-footer .powered-by-link {
  color: inherit;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: opacity 0.2s ease;
}
.site-footer .powered-by-link:hover { opacity: 0.75; }
.site-footer .brand-blanka {
  font-family: 'Blanka', 'Inter', sans-serif;
  letter-spacing: 0.06em;
  font-size: 1rem;
  color: var(--white, #ffffff);
}
