:root{
  --ink:#191919; --gray:#636363; --line:#e3e3e3; --bg:#f7f8fa;
  --blue:#143a6b; --check:#2e7fc2; --accent:#0b5fa5; --card:#ffffff;
  --green:#007546; --red:#cb1475;
}
*{box-sizing:border-box}
body{margin:0;font-family:"Segoe UI",system-ui,-apple-system,Arial,sans-serif;
  color:var(--ink);background:var(--bg)}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
header{background:var(--blue);color:#fff;padding:14px 28px;display:flex;
  align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 16px}
header .brand{font-size:19px;font-weight:700;letter-spacing:.2px}
header .brand span{color:#9ec7ea}
header nav{display:flex;flex-wrap:wrap;align-items:center}
header nav a{color:#dbe9f7;margin-left:20px;font-size:14px}
header nav a:hover{color:#fff}
main{max-width:980px;margin:28px auto;padding:0 20px 60px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:22px 24px;margin-bottom:20px;box-shadow:0 1px 3px rgba(0,0,0,.05)}
h1{font-size:24px;margin:0 0 6px;overflow-wrap:anywhere}
h2{font-size:18px;margin:0 0 12px}
p.muted{color:var(--gray);font-size:14px;margin:4px 0 14px}
label{display:block;font-size:13px;font-weight:600;margin:14px 0 5px}
input[type=text],input[type=email],input[type=password],input[type=number]{
  width:100%;padding:10px 12px;border:1px solid #c9c9c9;border-radius:8px;
  font-size:15px}
input[type=file]{padding:8px 0;max-width:100%}
button,.btn{display:inline-block;background:var(--accent);color:#fff;border:0;
  border-radius:8px;padding:11px 20px;font-size:15px;cursor:pointer}
button:hover,.btn:hover{background:#0a4e86;text-decoration:none}
.btn.secondary{background:#eef2f6;color:var(--ink)}
.btn.danger{background:#b3261e}
.btn.small{padding:7px 12px;font-size:13px}
.flash{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px}
.flash.error{background:#fdecea;color:#8f1d16}
.flash.ok{background:#e6f4ea;color:#14532d}
table{width:100%;border-collapse:collapse;font-size:14px}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line)}
th{color:var(--gray);font-size:12px;text-transform:uppercase;letter-spacing:.4px}
.pill{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;
  font-weight:600}
.pill.done{background:#e6f4ea;color:var(--green)}
.pill.processing{background:#fff4d6;color:#7a5b00}
.pill.failed{background:#fdecea;color:#8f1d16}
.score{font-size:44px;font-weight:700;line-height:1}
.score small{font-size:18px;color:var(--gray);font-weight:400}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-form{grid-template-columns:2fr 2fr 1fr}
.stat{font-size:30px;font-weight:700}
.stat-label{color:var(--gray);font-size:13px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.inline-form{display:inline}
.inline-form input{width:90px;display:inline-block;padding:6px 8px}
.login-wrap{max-width:420px;margin:70px auto}
.login-wrap .card{padding:30px}
.center{text-align:center}

/* ---- Mobile: nothing may spill past the viewport ---- */
html,body{overflow-x:hidden}
@media (max-width:640px){
  header{padding:12px 16px}
  header .brand{font-size:17px}
  header nav a{margin-left:12px;font-size:13px}
  main{margin:16px auto;padding:0 12px 40px}
  .card{padding:16px}
  h1{font-size:20px}
  /* All grids collapse to one column (incl. the admin stat/form grids) */
  .grid,.grid.cols-3,.grid.cols-form{grid-template-columns:1fr}
  .score{font-size:36px}
  .stat{font-size:26px}
  table{font-size:13px}
  th,td{padding:7px 6px}
  .login-wrap{margin:30px auto}
  .login-wrap .card{padding:22px 18px}
  .btn,.btn.small{padding:9px 14px}
}
