:root{
  --bg: #F5F8FC;
  --bg-alt: #EAF0FA;
  --navy: #29335C;
  --navy-soft: #47548C;
  --ink-soft: #5B648C;
  --sky: #7FC2EC;
  --purple: #6C57A8;
  --purple-deep: #4B3B79;
  --white: #FFFFFF;
  --line: rgba(41,51,92,0.15);
  --danger: #A32D2D;
  --success: #0F6E56;
}
*{ box-sizing: border-box; }
body{
  margin:0;
  background: var(--bg);
  color: var(--navy);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  line-height: 1.55;
}
a{ color: var(--purple-deep); }
.container{ max-width: 960px; margin: 0 auto; padding: 32px 24px; }
.center-page{ min-height: 100vh; display:flex; align-items:center; justify-content:center; padding: 24px; }
.card{
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 28px 30px;
}
.topbar{
  display:flex; align-items:center; justify-content:space-between;
  padding: 16px 24px; background: var(--white); border-bottom: 1px solid var(--line);
}
.topbar .brand{ font-weight:800; color: var(--navy); }
.topbar .brand span{ color: var(--purple-deep); }
h1,h2,h3{ margin: 0 0 8px; color: var(--navy); }
p{ margin: 0 0 12px; }
.muted{ color: var(--ink-soft); font-size: 14px; }
label{ display:block; font-size: 13px; font-weight:600; margin-bottom:6px; color: var(--ink-soft); text-transform:uppercase; letter-spacing:0.03em; }
input[type=text], input[type=email], input[type=password], input[type=file], textarea{
  width:100%; padding: 10px 12px; border: 1.5px solid var(--line); border-radius: 8px;
  font-size: 14.5px; margin-bottom: 16px; background: var(--bg);
  font-family: inherit; color: var(--navy);
}
button, .btn{
  display:inline-flex; align-items:center; gap:8px;
  background: linear-gradient(100deg, var(--navy), var(--purple));
  color: var(--white); border:none; text-decoration:none;
  font-weight:700; font-size:14.5px; padding: 11px 20px; border-radius: 999px;
  cursor:pointer;
}
button.secondary, .btn.secondary{ background: transparent; color: var(--navy); border: 1.5px solid var(--navy); }
.error-box{ background:#FCEBEB; color: var(--danger); padding: 10px 14px; border-radius:8px; font-size: 14px; margin-bottom:16px; }
.success-box{ background:#EAF3DE; color: var(--success); padding: 10px 14px; border-radius:8px; font-size: 14px; margin-bottom:16px; }
table{ width:100%; border-collapse: collapse; }
th, td{ text-align:left; padding: 10px 8px; border-bottom: 1px solid var(--line); font-size: 14px; }
th{ font-size:12px; text-transform:uppercase; letter-spacing:0.04em; color: var(--ink-soft); }
.badge{ font-size:12px; padding: 3px 10px; border-radius: 999px; font-weight:600; }
.badge.pend{ background:#FAEEDA; color:#854F0B; }
.badge.done{ background:#EAF3DE; color: var(--success); }
.row-actions{ display:flex; gap:8px; }
.client-list a{ text-decoration:none; }
.client-row{
  display:flex; align-items:center; justify-content:space-between;
  padding: 14px 16px; border: 1px solid var(--line); border-radius: 10px; margin-bottom: 10px;
  color: var(--navy);
}
.client-row:hover{ border-color: var(--purple); }
.upload-form{ border-top: 1px dashed var(--line); margin-top: 20px; padding-top: 20px; }
