:root{
  --bg-page:#f4f4f2;
  --surface:#ffffff;
  --surface-muted:#fafaf9;
  --border:#e4e3df;
  --border-strong:#c9c8c2;
  --text-primary:#1f1f1d;
  --text-secondary:#6b6a64;
  --text-muted:#9a9a92;
  --accent:#185fa5;
  --accent-bg:#e6f1fb;
  --success:#0f6e56;
  --success-bg:#e1f5ee;
  --warning:#854f0b;
  --warning-bg:#faeeda;
  --danger:#a32d2d;
  --danger-bg:#fcebeb;
  --radius:8px;
}
*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--bg-page);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  color:var(--text-primary);
  padding:2rem 1rem;
}
.card{ max-width:900px; margin:0 auto; background:var(--surface); border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.card.wide{ max-width:100%; width:100%; margin:0; }
table td:nth-child(10), table td:nth-child(11){ width:90px; }
.header{ padding:1.25rem 1.5rem; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; }
.header-title{ display:flex; align-items:center; gap:10px; font-size:16px; font-weight:600; text-decoration:none; color:var(--text-primary); }
.header-icon{ width:28px; height:28px; display:flex; align-items:center; justify-content:center; background:var(--accent-bg); color:var(--accent); border-radius:6px; font-size:15px; }
.nav-links{ display:flex; gap:14px; font-size:13px; }
.nav-links a{ color:var(--text-secondary); text-decoration:none; }
.nav-links a:hover{ color:var(--text-primary); }
.user{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text-secondary); }
.avatar{ width:28px; height:28px; border-radius:50%; background:var(--accent-bg); color:var(--accent); display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:600; }
.section{ padding:1.25rem 1.5rem; border-bottom:1px solid var(--border); }
.section:last-child{ border-bottom:none; }
label{ font-size:13px; color:var(--text-secondary); display:block; margin-bottom:6px; }
input[type="date"], input[type="text"], input[type="password"], input[type="number"], select{
  height:36px; padding:0 10px; border:1px solid var(--border-strong); border-radius:var(--radius);
  font-size:14px; color:var(--text-primary); background:var(--surface); font-family:inherit;
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
}
select{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6z' fill='%236b6a64'/></svg>");
  background-repeat:no-repeat; background-position:right 10px center; padding-right:26px; cursor:pointer;
}
input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button{ -webkit-appearance:none; margin:0; }
input[type="number"]{ -moz-appearance:textfield; }
input[type="date"]::-webkit-calendar-picker-indicator{ filter:invert(45%) sepia(0%) saturate(0%); cursor:pointer; }
.dropzone{ border:1.5px dashed var(--border-strong); border-radius:var(--radius); padding:2rem 1rem; text-align:center; background:var(--surface-muted); }
.dropzone .hint{ font-size:12px; color:var(--text-muted); margin:4px 0 12px; }
button, .btn{ font-family:inherit; font-size:13px; padding:8px 16px; border-radius:var(--radius); border:1px solid var(--border-strong); background:var(--surface); color:var(--text-primary); cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; gap:6px; }
button:hover, .btn:hover{ background:var(--surface-muted); }
button.primary, .btn.primary{ background:var(--text-primary); color:#fff; border-color:var(--text-primary); }
button.primary:hover, .btn.primary:hover{ opacity:.9; }
button.danger{ color:var(--danger); border-color:var(--danger-bg); }
.file-list{ margin-top:14px; display:flex; flex-direction:column; gap:6px; }
.file-row{ display:flex; align-items:center; justify-content:space-between; padding:8px 10px; background:var(--surface-muted); border-radius:var(--radius); font-size:13px; }
.status{ display:flex; align-items:center; gap:4px; font-size:12px; }
.status.ok{ color:var(--success); }
.status.pending{ color:var(--warning); }
.status.fail{ color:var(--danger); }
table{ width:100%; border-collapse:collapse; font-size:13px; border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; }
thead tr{ background:var(--surface-muted); }
th{ text-align:left; padding:8px 10px; font-weight:600; color:var(--text-secondary); border-bottom:1px solid var(--border); font-size:12px; }
td{ padding:6px 8px; border-bottom:1px solid var(--border); vertical-align:middle; }
tr:last-child td{ border-bottom:none; }
tr.row-warning{ background:var(--warning-bg); }
td input, td select{ border:none; background:transparent; width:100%; padding:4px; font-size:12px; -webkit-appearance:none; -moz-appearance:none; appearance:none; }
td select{ background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='5'><path d='M0 0l4 5 4-5z' fill='%236b6a64'/></svg>"); background-repeat:no-repeat; background-position:right 2px center; padding-right:14px; cursor:pointer; }
td input:focus, td select:focus{ outline:2px solid var(--accent); outline-offset:-2px; background:var(--surface); }
.table-wrap{ overflow-x:auto; }
.badge{ display:inline-flex; align-items:center; gap:4px; font-size:11px; padding:3px 8px; border-radius:999px; }
.badge.done{ background:var(--success-bg); color:var(--success); }
.badge.progress{ background:var(--warning-bg); color:var(--warning); }
.alert{ padding:10px 12px; border-radius:var(--radius); font-size:13px; margin-top:10px; }
.alert.danger{ background:var(--danger-bg); color:var(--danger); }
.alert.warning{ background:var(--warning-bg); color:var(--warning); }
.alert.success{ background:var(--success-bg); color:var(--success); }
.login-wrap{ max-width:360px; margin:4rem auto; }
.field{ margin-bottom:14px; }
.field input{ width:100%; }
.muted{ color:var(--text-muted); font-size:12px; }
