
.tps-upload-root{
  --tps-accent:#1E6B3A;
  --tps-accent-dark:#164F2B;
  --tps-accent-soft:#EDF5F0;
  --tps-ink:#1C2321;
  --tps-muted:#5F6B66;
  --tps-line:#D9E0DC;
  --tps-bg:#FFFFFF;
  --tps-danger:#B3261E;
  --tps-danger-soft:#FCEEED;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--tps-ink);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
.tps-upload-root *,.tps-upload-root *::before,.tps-upload-root *::after{box-sizing:border-box;}
.tps-upload-card{
  background:var(--tps-bg);
  border:1px solid var(--tps-line);
  border-radius:10px;
  padding:32px;
  max-width:640px;
  margin:0 auto;
}
.tps-upload-head{margin-bottom:28px;}
.tps-upload-title{
  font-size:24px;line-height:1.25;font-weight:700;margin:0 0 8px;color:var(--tps-ink);
}
.tps-upload-sub{margin:0;font-size:15px;color:var(--tps-muted);}
.tps-field{margin-bottom:22px;}
.tps-label{display:block;font-size:14px;font-weight:600;margin-bottom:7px;color:var(--tps-ink);}
.tps-req{color:var(--tps-danger);font-weight:600;}
.tps-input{
  width:100%;padding:11px 13px;font-size:15px;font-family:inherit;color:var(--tps-ink);
  background:#fff;border:1px solid var(--tps-line);border-radius:6px;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.tps-input::placeholder{color:#9AA5A0;}
.tps-input:focus{
  outline:none;border-color:var(--tps-accent);
  box-shadow:0 0 0 3px rgba(30,107,58,.16);
}
.tps-input.tps-invalid{border-color:var(--tps-danger);}
.tps-hint{margin:6px 0 0;font-size:13px;color:var(--tps-muted);}
.tps-err{margin:6px 0 0;font-size:13px;color:var(--tps-danger);display:none;}
.tps-err.tps-show{display:block;}

.tps-drop{
  border:1.5px dashed var(--tps-line);border-radius:8px;background:#FBFCFB;
  padding:26px 20px;text-align:center;cursor:pointer;
  transition:border-color .15s ease,background .15s ease;
}
.tps-drop:hover,.tps-drop.tps-dragover{border-color:var(--tps-accent);background:var(--tps-accent-soft);}
.tps-drop:focus-visible{outline:2px solid var(--tps-accent);outline-offset:2px;}
.tps-drop.tps-invalid{border-color:var(--tps-danger);}
.tps-drop-icon{width:28px;height:28px;color:var(--tps-accent);display:block;margin:0 auto 8px;}
.tps-drop-main{margin:0 0 4px;font-size:15px;font-weight:600;}
.tps-drop-hint{margin:0;font-size:13px;color:var(--tps-muted);}
.tps-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}

.tps-filelist{list-style:none;margin:14px 0 0;padding:0;}
.tps-fileitem{
  display:flex;align-items:center;gap:11px;
  padding:10px 12px;border:1px solid var(--tps-line);border-radius:6px;margin-bottom:8px;background:#fff;
}
.tps-fileitem.tps-bad{border-color:var(--tps-danger);background:var(--tps-danger-soft);}
.tps-filebadge{
  flex:0 0 auto;font-size:10px;font-weight:700;letter-spacing:.06em;
  padding:4px 6px;border-radius:3px;background:var(--tps-accent-soft);color:var(--tps-accent-dark);
}
.tps-fileitem.tps-bad .tps-filebadge{background:#F6D9D7;color:var(--tps-danger);}
.tps-filemeta{flex:1 1 auto;min-width:0;}
.tps-filename{
  display:block;font-size:14px;font-weight:500;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.tps-filesize{display:block;font-size:12px;color:var(--tps-muted);margin-top:2px;}
.tps-fileitem.tps-bad .tps-filesize{color:var(--tps-danger);}
.tps-remove{
  flex:0 0 auto;background:none;border:none;padding:5px;cursor:pointer;
  color:var(--tps-muted);border-radius:4px;line-height:0;
}
.tps-remove:hover{color:var(--tps-danger);background:var(--tps-danger-soft);}
.tps-remove:focus-visible{outline:2px solid var(--tps-accent);outline-offset:1px;}
.tps-remove svg{width:16px;height:16px;}
.tps-total{margin:4px 0 0;font-size:13px;color:var(--tps-muted);}

.tps-gotcha{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

.tps-submit{
  width:100%;padding:13px 20px;font-family:inherit;font-size:16px;font-weight:600;
  color:#fff;background:var(--tps-accent);border:none;border-radius:6px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:10px;
  transition:background .15s ease;
}
.tps-submit:hover{background:var(--tps-accent-dark);}
.tps-submit:focus-visible{outline:2px solid var(--tps-accent);outline-offset:2px;}
.tps-submit[disabled]{opacity:.6;cursor:not-allowed;}
.tps-spinner{
  display:none;width:16px;height:16px;border:2px solid rgba(255,255,255,.4);
  border-top-color:#fff;border-radius:50%;animation:tps-spin .7s linear infinite;
}
.tps-submit.tps-busy .tps-spinner{display:block;}
@keyframes tps-spin{to{transform:rotate(360deg);}}

.tps-formerr{
  margin:14px 0 0;padding:11px 13px;font-size:14px;
  color:var(--tps-danger);background:var(--tps-danger-soft);
  border:1px solid #F0C4C1;border-radius:6px;
}
.tps-success{text-align:center;padding:36px 20px;}
.tps-success-icon{width:44px;height:44px;color:var(--tps-accent);margin:0 auto 14px;display:block;}
.tps-success-title{font-size:20px;font-weight:700;margin:0 0 8px;}
.tps-success-body{margin:0 0 22px;font-size:15px;color:var(--tps-muted);}
.tps-again{
  padding:11px 22px;font-family:inherit;font-size:15px;font-weight:600;
  color:var(--tps-accent);background:#fff;border:1px solid var(--tps-accent);
  border-radius:6px;cursor:pointer;
}
.tps-again:hover{background:var(--tps-accent-soft);}
.tps-again:focus-visible{outline:2px solid var(--tps-accent);outline-offset:2px;}

@media (max-width:600px){
  .tps-upload-card{padding:22px 18px;border-radius:8px;}
  .tps-upload-title{font-size:21px;}
  .tps-drop{padding:22px 14px;}
}
@media (prefers-reduced-motion:reduce){
  .tps-upload-root *{animation-duration:.01ms !important;transition-duration:.01ms !important;}
}
