:root {
  color-scheme: light;
  font-family: "Microsoft YaHei", "Segoe UI", sans-serif;
  color: #202624;
  background: #f4f6f5;
  letter-spacing: 0;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-width: 320px;
}

button,
input,
select {
  font: inherit;
  letter-spacing: 0;
}

.button-link {
  min-height: 40px;
  padding: 9px 18px;
  border: 1px solid #c5ceca;
  border-radius: 6px;
  color: #2e3834;
  background: #fff;
  text-decoration: none;
}

button {
  min-height: 40px;
  padding: 0 18px;
  border: 1px solid #145f48;
  border-radius: 6px;
  color: #fff;
  background: #145f48;
  cursor: pointer;
}

button:disabled {
  cursor: wait;
  opacity: 0.6;
}

button.compact {
  min-height: 32px;
  margin: 2px 6px 2px 0;
  padding: 0 10px;
  font-size: 12px;
}

button.quiet {
  color: #2e3834;
  border-color: #c5ceca;
  background: #fff;
}

.topbar {
  min-height: 58px;
  padding: 0 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #dce2df;
  background: #fff;
}

.topbar strong {
  font-size: 17px;
}

.topbar span {
  margin-left: 16px;
  color: #69736f;
  font-size: 13px;
}

main {
  width: min(1180px, calc(100% - 40px));
  margin: 34px auto;
}

h1 {
  margin: 0;
  font-size: 24px;
  font-weight: 650;
}

p {
  margin: 6px 0 0;
  color: #69736f;
}

.login-panel {
  width: min(420px, 100%);
  margin: 10vh auto 0;
  padding: 30px;
  border: 1px solid #d7dfdb;
  border-radius: 8px;
  background: #fff;
}

.login-panel form {
  display: grid;
  gap: 18px;
  margin-top: 26px;
}

label {
  display: grid;
  gap: 7px;
  color: #46504c;
  font-size: 14px;
}

input,
select {
  width: 100%;
  min-height: 42px;
  padding: 8px 11px;
  border: 1px solid #bdc8c3;
  border-radius: 5px;
  color: #202624;
  background: #fff;
}

input:focus,
select:focus,
button:focus-visible,
a:focus-visible {
  outline: 3px solid rgba(20, 95, 72, 0.18);
  outline-offset: 2px;
}

.workspace-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 22px;
}

.head-actions,
.dialog-actions {
  display: flex;
  gap: 10px;
  align-items: center;
}

dialog {
  width: min(460px, calc(100% - 30px));
  padding: 0;
  border: 1px solid #d7dfdb;
  border-radius: 9px;
  box-shadow: 0 18px 60px rgba(25, 40, 34, 0.2);
}

dialog::backdrop {
  background: rgba(25, 35, 31, 0.42);
}

dialog form {
  display: grid;
  gap: 16px;
  padding: 26px;
}

dialog h2 {
  margin: 0;
}

.dialog-actions {
  justify-content: flex-end;
}

.eyebrow {
  margin: 0 0 6px;
  color: #145f48;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.feedback-panel {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 14px;
  align-items: center;
  margin-top: 18px;
  padding: 18px 20px;
  border: 1px solid #d7dfdb;
  border-radius: 8px;
  background: #fff;
}

.feedback-icon {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border-radius: 9px;
  color: #fff;
  background: #145f48;
  font-weight: 700;
}

.feedback-panel strong,
.feedback-panel span {
  display: block;
}

.feedback-panel span {
  margin-top: 5px;
  color: #69736f;
  font-size: 13px;
}

.feedback-processing { border-color: #8ab6d6; background: #f4f9fc; }
.feedback-completed { border-color: #8bc9ad; background: #f3faf7; }
.feedback-needs_review { border-color: #d6b57d; background: #fff9ef; }
.feedback-failed { border-color: #d7a19b; background: #fff6f5; }

.upload-band {
  display: grid;
  grid-template-columns: minmax(180px, 0.7fr) minmax(280px, 1.6fr) auto;
  gap: 16px;
  align-items: end;
  padding: 20px;
  border-block: 1px solid #d7dfdb;
  background: #fff;
}

.upload-band p {
  grid-column: 1 / -1;
  min-height: 20px;
  margin: 0;
}

.table-wrap {
  margin-top: 22px;
  overflow-x: auto;
  border: 1px solid #d7dfdb;
  background: #fff;
}

.table-title {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 15px 16px;
  border-bottom: 1px solid #d7dfdb;
}

.table-title span {
  color: #69736f;
  font-size: 13px;
}

table {
  width: 100%;
  min-width: 1240px;
  border-collapse: collapse;
  table-layout: fixed;
}

th,
td {
  padding: 13px 14px;
  border-bottom: 1px solid #e4e9e7;
  text-align: left;
  vertical-align: middle;
  overflow-wrap: anywhere;
  font-size: 14px;
}

th {
  color: #5e6965;
  font-size: 13px;
  font-weight: 600;
  background: #f8faf9;
}

th:nth-child(1) { width: 190px; }
th:nth-child(2) { width: 120px; }
th:nth-child(4) { width: 100px; }
th:nth-child(5) { width: 130px; }
th:nth-child(6) { width: 240px; }
th:nth-child(7) { width: 110px; }
th:nth-child(8) { width: 80px; }

.status {
  font-weight: 600;
}

.status-completed { color: #15714f; }
.status-failed { color: #a43c32; }
.status-needs_review { color: #9a5b16; }
.status-processing { color: #1e5f91; }

a {
  color: #145f48;
  font-weight: 600;
}

.empty {
  padding: 28px;
  text-align: center;
}

.error {
  min-height: 20px;
  color: #a43c32;
}

.admin-create {
  display: grid;
  grid-template-columns: 1fr 1fr 1.2fr 0.8fr auto;
  gap: 14px;
  align-items: end;
  padding: 20px;
  border: 1px solid #d7dfdb;
  background: #fff;
}

.admin-create p {
  grid-column: 1 / -1;
  min-height: 20px;
  margin: 0;
}

.admin-table {
  min-width: 980px;
}

.audit-section {
  margin-top: 30px;
}

.audit-list {
  border: 1px solid #d7dfdb;
  background: #fff;
}

.audit-item {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 13px 16px;
  border-bottom: 1px solid #e4e9e7;
  font-size: 13px;
}

.audit-item span {
  color: #69736f;
}

@media (max-width: 720px) {
  .topbar {
    padding: 0 16px;
  }

  main {
    width: calc(100% - 24px);
    margin: 22px auto;
  }

  .upload-band {
    grid-template-columns: 1fr;
  }

  .admin-create {
    grid-template-columns: 1fr;
  }

  .upload-band p {
    grid-column: 1;
  }

  .login-panel {
    margin-top: 6vh;
    padding: 22px;
  }
}

/* Shared visual tokens from the local second-generation workspace. */
:root{font-family:"Helvetica Neue","Microsoft YaHei",Arial,sans-serif;color:#17212b;background:#f7f7f8}
button,.feedback-icon{background:#002fa7;border-color:#002fa7}
button.quiet,.button-link.quiet{background:#fff;color:#3d4351;border-color:#dcdde3}
.topbar{min-height:72px;border-color:#e2e2e6}.topbar strong{color:#002fa7}
.topbar span,p,.audit-item span{color:#6b707b}
h1{font-size:30px;letter-spacing:-.035em}.eyebrow{color:#002fa7;letter-spacing:.03em;font-size:11px}
.workspace-head{gap:20px;padding-bottom:24px;border-bottom:1px solid #e2e2e6}.head-actions{flex-wrap:wrap;justify-content:flex-end}
.login-panel,.upload-band,.feedback-panel,.table-wrap,.admin-create,.audit-list{border-color:#e2e2e6;border-radius:10px;box-shadow:none;background:#fff}
.login-panel{padding:36px;width:min(440px,100%)}.login-panel h1{font-size:27px}.login-panel p{font-size:13px;line-height:1.8}
input,select{color:#17212b;border-color:#dcdde3;border-radius:6px}label{color:#515561}
input:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid #002fa7;outline-offset:3px}
dialog{border-color:#e2e2e6;box-shadow:none}dialog::backdrop{background:#17212b66}
@media(max-width:900px){.workspace-head{align-items:flex-start;flex-direction:column}.head-actions{justify-content:flex-start}.topbar>div{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.topbar span{margin-left:0}}
