/* Original layout and type scale are retained. The contrast palette is at the end. */
@font-face {
  font-family:Fallback;
  src:local("Microsoft YaHei")}
* {
  box-sizing:border-box}
 :root {
  --bg:#f6f7f4;
  --paper:#fff;
  --ink:#213c35;
  --muted:#7a8881;
  --green:#1c725b;
  --line:#e5eae4;
  --lime:#c8e7a3;
  --amber:#9a6c24}
body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font:14px/1.6 Inter,"Segoe UI",Fallback,"PingFang SC",sans-serif}
button,input,select,textarea {
  font:inherit}
button,a,input,summary,select {
  touch-action:manipulation}
button {
  cursor:pointer}
a {
  color:inherit;
  text-decoration:none}
button:disabled {
  opacity:.5;
  cursor:wait}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible {
  outline:3px solid #84ae66;
  outline-offset:3px}
.shell {
  display:flex;
  min-height:100vh}
.sidebar {
  width:232px;
  flex-shrink:0;
  background:#163c34;
  color:#dce6df;
  position:fixed;
  inset:0 auto 0 0;
  display:flex;
  flex-direction:column;
  padding:32px 18px 18px;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:#396051 transparent}
.brand {
  display:flex;
  align-items:center;
  gap:11px;
  padding:0 12px;
  font-size:24px;
  letter-spacing:2px;
  font-weight:650;
  line-height:1.2}
.brand-sub {
  display:block;
  font-size:10px;
  letter-spacing:2px;
  color:#a6bcb0;
  font-weight:400;
  margin-top:8px}
.nav-label {
  font-size:10px;
  letter-spacing:1.7px;
  color:#94b0a0;
  margin:37px 14px 10px}
.sidebar nav a {
  display:flex;
  align-items:center;
  gap:12px;
  border-radius:7px;
  padding:10px 14px;
  margin:3px 0;
  color:#b8cec1;
  min-height:40px}
.sidebar nav a:hover {
  background:#254d41;
  color:#fff}
.sidebar nav a.active {
  background:#d1e9b2;
  color:#244534;
  font-weight:650}
.sidebar nav small {
  margin-left:auto;
  font-size:11px;
  font-weight:400;
  opacity:.85}
.batch-label {
  margin-top:28px;
  display:flex;
  justify-content:space-between}
#batch-nav a {
  padding-top:7px;
  padding-bottom:7px;
  min-height:32px;
  font-size:12px}
.sidebar-footer {
  padding:24px 12px 0;
  margin-top:auto;
  font-size:11px;
  color:#c7d6cc}
.sidebar-footer p {
  font-size:10px;
  color:#91ad9b;
  margin:6px 0}
.dot {
  width:6px;
  height:6px;
  border-radius:50%;
  display:inline-block;
  background:#6fb486;
  margin-right:6px}
.dot.orange {
  background:#d6a059}
.dot.gray {
  background:#aab5ad}
.workspace {
  margin-left:232px;
  width:calc(100% - 232px)}
.topbar {
  min-height:77px;
  border-bottom:1px solid var(--line);
  padding:20px 40px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#6f8177;
  background:#f9faf7;
  font-size:12px}
.separator {
  padding:0 16px;
  color:#c1c9bf}
.top-actions {
  display:flex;
  align-items:center;
  gap:20px}
.connection {
  font-size:11px}
.connection:before {
  content:"";
  display:inline-block;
  width:6px;
  height:6px;
  background:#6aa783;
  border-radius:50%;
  margin-right:8px}
.connection.warning {
  color:#a4762e}
.connection.warning:before {
  background:#cc954b}
.button {
  border:1px solid var(--line);
  border-radius:7px;
  padding:10px 15px;
  background:#fff;
  color:var(--ink);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  white-space:nowrap;
  font-size:12px;
  font-weight:550}
.button:hover {
  border-color:#a5b9a8;
  background:#f3f7ef}
.button.primary {
  background:#1b5f4a;
  color:#fff;
  border-color:#1b5f4a;
  box-shadow:0 2px 4px #19453410}
.button.primary:hover {
  background:#164a3b}
.button.subtle {
  background:transparent}
.skip {
  position:fixed;
  left:260px;
  top:-80px;
  background:white;
  padding:10px;
  z-index:10}
.skip:focus {
  top:10px}
main {
  max-width:1600px;
  margin:auto;
  padding:38px 40px 24px;
  min-height:80vh}
.page-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  margin-bottom:28px}
.eyebrow {
  font-size:10px;
  letter-spacing:2px;
  color:#899585;
  font-weight:650;
  margin:0 0 9px}
h1 {
  font-size:30px;
  letter-spacing:-.7px;
  line-height:1.35;
  font-weight:600;
  margin:0 0 12px}
.heading-dot {
  color:#6d9873;
  padding-left:3px}
.subtitle {
  font-size:12px;
  color:var(--muted);
  margin:0}
.outline-tag {
  border:1px solid #d7e1d4;
  padding:5px 10px;
  border-radius:5px;
  font-size:10px;
  white-space:nowrap;
  color:#6b816d}
.hero {
  background:#214e3f;
  border-radius:12px;
  padding:30px 34px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  color:#edf4e9;
  margin-bottom:24px;
  position:relative;
  overflow:hidden}
.hero:after {
  content:"";
  position:absolute;
  right:-140px;
  top:-150px;
  width:470px;
  height:470px;
  border:1px solid #ffffff08;
  border-radius:50%;
  pointer-events:none}
.hero-label {
  color:#c5dac6;
  font-size:12px;
  letter-spacing:1px}
.hero h2 {
  font-size:45px;
  line-height:1.3;
  font-weight:550;
  letter-spacing:-1px;
  margin:12px 0}
.hero h2 small {
  font-size:25px;
  color:#9ebca8;
  font-weight:350}
.hero h2>span {
  display:block;
  font-size:14px;
  letter-spacing:.5px;
  font-weight:400;
  margin-top:5px;
  color:#e3eddc}
.hero-copy p {
  font-size:11px;
  color:#aac4b0;
  margin:0 0 20px}
.hero-links {
  display:flex;
  gap:24px;
  font-size:11px}
.hero-links a:first-child {
  color:#cee9a8}
.hero-links a:last-child {
  color:#b9d1bb}
.ring {
  width:150px;
  height:150px;
  position:relative;
  flex-shrink:0}
.ring svg {
  width:100%;
  height:100%;
  transform:rotate(-90deg)}
.ring circle {
  fill:none;
  stroke-width:7}
.ring-track {
  stroke:#456d53}
.ring-value {
  stroke:#c6e79f;
  stroke-linecap:round}
.ring>div {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center}
.ring strong {
  font-size:35px;
  line-height:1.2;
  font-weight:500}
.ring small {
  font-size:16px;
  margin-left:2px}
.ring span {
  font-size:10px;
  color:#b5ccba;
  margin-top:5px}
.hero-note {
  border-left:1px solid #ffffff1a;
  padding-left:26px;
  max-width:240px}
.hero-note>span {
  font-size:10px;
  color:#a6bfae}
.hero-note strong {
  display:block;
  font-size:12px;
  font-weight:500;
  margin:7px 0 20px}
.hero-note p {
  font-size:11px;
  color:#a7c0ad;
  line-height:1.9;
  margin:0}
.stats {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  margin-bottom:34px}
.stat {
  background:white;
  border:1px solid var(--line);
  padding:20px 22px;
  border-radius:9px}
.stat>span {
  font-size:11px;
  color:#738377}
.stat>strong {
  display:block;
  font-size:32px;
  font-weight:550;
  letter-spacing:-1px;
  margin:5px 0 8px;
  line-height:1.4}
.stat strong small {
  font-size:11px;
  font-weight:400;
  color:#8c998e;
  letter-spacing:0;
  margin-left:8px}
.stat p {
  font-size:10px;
  color:#94a093;
  margin:0}
.stat.success {
  background:#edf4e8;
  border-color:#e0e9d9}
.stat.success>strong {
  color:#3b704e}
.section-title {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:0 0 18px}
h2 {
  font-size:17px;
  line-height:1.5;
  font-weight:600;
  margin:0}
h3 {
  font-weight:600}
.section-title p,.list-heading p {
  font-size:11px;
  color:var(--muted);
  margin:5px 0 0}
.section-count {
  font-size:10px;
  font-weight:400;
  background:#e9eee5;
  color:#7a8976;
  padding:3px 8px;
  border-radius:4px;
  vertical-align:middle;
  margin-left:7px}
.muted {
  color:var(--muted);
  font-size:11px}
.batch-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:17px;
  margin-bottom:26px}
.batch-card {
  background:#fff;
  border:1px solid var(--line);
  border-radius:9px;
  padding:22px;
  transition:transform .15s,border-color .15s,box-shadow .15s}
.batch-card:hover {
  transform:translateY(-3px);
  border-color:#9db496;
  box-shadow:0 8px 22px #214e3f0b}
.card-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:14px}
.batch-number {
  font-size:16px;
  color:#6a8663;
  background:#f0f4eb;
  border-radius:6px;
  padding:3px 10px;
  min-width:38px;
  text-align:center;
  font-variant-numeric:tabular-nums}
.date {
  font-size:11px;
  color:#8d9a8b;
  font-variant-numeric:tabular-nums}
.batch-card h3 {
  font-size:15px;
  margin:0 0 4px;
  display:flex;
  align-items:center;
  gap:8px}
.batch-card p {
  color:#899486;
  font-size:11px;
  margin:0 0 25px}
.card-progress {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:11px;
  margin-bottom:9px;
  color:#6e8069}
.card-progress strong {
  color:#45613f;
  font-size:17px;
  font-weight:550}
.card-progress strong span {
  color:#8f9a8a;
  font-size:10px;
  font-weight:400}
progress {
  appearance:none;
  border:0;
  width:100%;
  height:5px;
  background:#eef1ea;
  border-radius:5px;
  overflow:hidden;
  display:block}
progress::-webkit-progress-bar {
  background:#eef1ea;
  border-radius:5px}
progress::-webkit-progress-value {
  background:#8ba978;
  border-radius:5px}
progress::-moz-progress-bar {
  background:#8ba978}
.card-bottom {
  display:flex;
  justify-content:space-between;
  font-size:10px;
  color:#9ba493;
  border-top:1px solid #f0f2ec;
  margin-top:20px;
  padding-top:13px}
.card-bottom span:last-child {
  color:#6e8963}
.tag {
  display:inline-block;
  font-size:9px;
  line-height:1.5;
  padding:2px 5px;
  border-radius:3px;
  font-weight:400;
  white-space:nowrap;
  margin-right:3px}
.tag.amber {
  background:#faf1dc;
  color:#a77e3c}
.tag.red {
  background:#fbe9e5;
  color:#ab5a47}
.tag.neutral {
  background:#edf0ed;
  color:#7f8b7d}
.panel {
  background:white;
  border:1px solid var(--line);
  border-radius:9px;
  margin:20px 0;
  overflow:hidden}
.panel>summary {
  padding:18px 22px;
  font-size:12px;
  cursor:pointer;
  font-weight:550}
.panel>summary span {
  font-size:10px;
  color:#8b9786;
  font-weight:400;
  margin-left:15px}
.detail-body {
  border-top:1px solid var(--line);
  padding:22px;
  color:#7a8876;
  font-size:12px}
.detail-body h3 {
  font-size:12px;
  color:#4d6547;
  margin-top:0}
.detail-body p {
  line-height:1.9}
.definition-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px 35px}
.definitions ul {
  padding-left:18px;
  line-height:2}
.history-row {
  display:flex;
  align-items:center;
  gap:20px;
  border-bottom:1px solid var(--line);
  padding:12px 0;
  font-size:11px}
.history-row time {
  margin-left:auto;
  color:#8a9587}
.page-footer {
  display:flex;
  justify-content:space-between;
  border-top:1px solid var(--line);
  margin:15px 40px 0;
  padding:20px 0 24px;
  font-size:9px;
  letter-spacing:1px;
  color:#9aa392}
.page-footer span:last-child {
  letter-spacing:0}
.batch-tabs {
  display:flex;
  gap:5px;
  overflow-x:auto;
  max-width:100%;
  padding:3px 0 10px;
  scrollbar-width:thin;
  margin:0 0 12px}
.batch-tabs a {
  white-space:nowrap;
  padding:7px 12px;
  font-size:11px;
  color:#85917e;
  border:1px solid transparent;
  border-radius:6px}
.batch-tabs a:hover {
  background:#e9eee3}
.batch-tabs a.selected {
  background:#214e3f;
  color:#f1f4ec}
.batch-meta {
  display:flex;
  flex-wrap:wrap;
  gap:24px;
  align-items:center;
  margin:7px 0 25px;
  font-size:11px;
  color:#929b8c}
.batch-meta strong {
  font-size:11px;
  font-weight:500;
  color:#596f50;
  margin-left:9px}
.notice {
  padding:12px 18px;
  margin:0 0 20px;
  font-size:11px;
  line-height:1.8;
  border-radius:6px;
  background:#faf2dd;
  color:#9b762e;
  border:1px solid #efe1bf}
.notice.danger {
  background:#fff1eb;
  border-color:#eed2c8;
  color:#9c5948}
.list-heading {
  padding:22px 24px 15px;
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center}
.filters {
  padding:0 24px 20px;
  display:flex;
  align-items:center;
  gap:12px}
.search {
  display:flex;
  align-items:center;
  border:1px solid var(--line);
  border-radius:6px;
  padding:8px 12px;
  gap:8px;
  flex:1;
  max-width:450px;
  background:#fcfcfa}
.search span {
  color:#8d9b86;
  font-size:19px;
  line-height:1}
.search input {
  border:0;
  outline:none;
  background:transparent;
  width:100%;
  font-size:12px;
  min-width:0;
  color:#46603d}
.search:focus-within {
  outline:2px solid #a4bc8c}
input::placeholder {
  color:#a0a998}
.filters select {
  border:1px solid var(--line);
  background:#fff;
  color:#66785c;
  border-radius:6px;
  padding:9px 25px 9px 10px;
  font-size:11px}
.filters>.button {
  margin-left:auto}
.profile-group {
  border-top:1px solid var(--line)}
.profile-group>summary {
  padding:15px 23px;
  display:flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
  background:#f9faf6;
  list-style:none;
  font-size:11px}
.profile-group>summary:before {
  content:'›';
  font-size:18px;
  line-height:1;
  color:#899c7d;
  transition:transform .15s}
.profile-group[open]>summary:before {
  transform:rotate(90deg)}
.profile-group>summary::-webkit-details-marker {
  display:none}
.folder {
  color:#89a374;
  font-size:18px}
.group-total {
  color:#8e9b84;
  font-size:10px}
.group-registered {
  margin-left:auto;
  color:#718b60;
  font-size:10px;
  white-space:nowrap}
.table-wrap {
  overflow-x:auto}
table {
  width:100%;
  border-collapse:collapse;
  text-align:left;
  min-width:1020px;
  font-size:11px}
th {
  font-weight:400;
  font-size:10px;
  background:#fff;
  color:#96a08c;
  padding:12px 18px;
  border-bottom:1px solid #f0f2eb;
  white-space:nowrap}
td {
  padding:15px 18px;
  border-bottom:1px solid #eff2e9;
  vertical-align:top;
  max-width:245px}
tr:last-child td {
  border-bottom:0}
td strong {
  font-size:12px;
  font-weight:550;
  color:#48603d}
.cell-sub {
  display:block;
  font-size:9px;
  color:#9aa38f;
  margin:4px 0;
  line-height:1.6;
  overflow-wrap:anywhere}
.username {
  font-size:10px}
.mono {
  font-family:"Cascadia Code",Consolas,monospace}
.status {
  font-size:10px;
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
  color:#a68040}
.status i {
  width:5px;
  height:5px;
  display:inline-block;
  background:currentColor;
  border-radius:50%;
  margin-right:6px}
.status.registered {
  color:#4d8b5b}
.status.unknown {
  color:#9a9c8d}
.yes {
  color:#4e8b60;
  font-size:11px}
.batch-link {
  font-size:11px;
  color:#608554;
  text-decoration:underline;
  text-underline-offset:3px}
.pagination {
  padding:15px 24px;
  border-top:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:10px;
  color:#8f9a83}
.pagination>div {
  display:flex;
  align-items:center;
  gap:16px}
.pagination .button {
  padding:5px 9px;
  font-size:10px}
.exception-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:16px}
.exception-grid article {
  padding:14px;
  border:1px solid var(--line);
  border-radius:6px;
  overflow-wrap:anywhere}
.exception-grid strong {
  color:#5e7152;
  font-size:12px}
.exception-grid .mono {
  float:right}
.exception-grid article>div {
  margin:7px 0}
.exception-grid small {
  font-size:10px;
  color:#9aa48e}
.exception-grid p {
  font-size:10px;
  margin:8px 0 0}
.empty,.loading {
  text-align:center;
  padding:70px 20px;
  color:#87967c}
.empty>span {
  font-size:36px}
.empty h1 {
  font-size:22px;
  margin:20px 0}
.empty h3 {
  color:#6f835e}
.empty p {
  font-size:12px}
.empty img {
  margin:auto}
#toast {
  position:fixed;
  bottom:28px;
  left:50%;
  transform:translate(-50%,20px);
  background:#204d3f;
  color:white;
  padding:13px 22px;
  max-width:90vw;
  border-radius:8px;
  box-shadow:0 8px 35px #163d3420;
  font-size:12px;
  opacity:0;
  pointer-events:none;
  transition:opacity .2s,transform .2s;
  z-index:50}
#toast.show {
  opacity:1;
  transform:translate(-50%,0)}
dialog {
  border:1px solid #d9e3d3;
  border-radius:13px;
  padding:30px;
  max-width:500px;
  width:90%;
  color:var(--ink);
  box-shadow:0 30px 90px #10312633}
dialog::backdrop {
  background:#153e3455}
dialog .close {
  float:right;
  padding:3px 10px;
  font-size:18px}
dialog textarea {
  width:100%;
  height:240px;
  resize:vertical;
  padding:12px;
  border:1px solid var(--line);
  border-radius:7px;
  margin:15px 0;
  font-family:monospace}
dialog p {
  font-size:12px}
@media(min-width:1550px) {
  .batch-grid {
  grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:1200px) {
  .sidebar {
  width:208px}
.workspace {
  margin-left:208px;
  width:calc(100% - 208px)}
main {
  padding:30px 27px}
.topbar {
  padding:18px 27px}
.hero-note {
  display:none}
.stats {
  gap:10px}
.stat {
  padding:16px}
.stat p {
  font-size:9px}
.batch-grid {
  gap:12px}
.batch-card {
  padding:17px}
.batch-card h3 {
  font-size:13px}
.batch-card h3 .tag {
  font-size:8px}
.page-footer {
  margin-left:27px;
  margin-right:27px}
.exception-grid {
  grid-template-columns:1fr 1fr}
}
@media(max-width:900px) {
  .sidebar {
  width:176px;
  padding:25px 12px}
.brand {
  font-size:21px;
  padding:0 5px}
.brand-sub {
  font-size:9px}
.brand img {
  width:32px;
  height:32px}
.workspace {
  margin-left:176px;
  width:calc(100% - 176px)}
.batch-grid {
  grid-template-columns:1fr 1fr}
.stats {
  grid-template-columns:1fr 1fr}
.hero {
  padding:25px}
.hero h2 {
  font-size:38px}
.ring {
  width:125px;
  height:125px}
.page-heading h1 {
  font-size:25px}
.outline-tag {
  display:none}
.filters {
  flex-wrap:wrap}
.search {
  max-width:none}
.filters>.button {
  margin-left:0}
.top-actions {
  gap:10px}
.connection {
  font-size:10px}
.definition-grid {
  gap:15px}
.page-footer span:last-child {
  display:none}
}
@media(max-width:640px) {
  .shell {
  display:block}
.sidebar {
  position:static;
  width:100%;
  padding:17px 18px 10px}
.brand {
  padding:0;
  font-size:19px}
.brand-sub {
  display:inline;
  margin-left:10px;
  font-size:9px}
.brand img {
  width:30px;
  height:30px}
.sidebar .nav-label,.sidebar-footer,#batch-nav {
  display:none}
#main-nav {
  display:flex;
  margin-top:14px;
  gap:6px}
#main-nav a {
  flex:1;
  font-size:11px;
  padding:7px 10px;
  gap:5px;
  margin:0;
  min-height:34px}
#main-nav small {
  font-size:9px}
.workspace {
  margin:0;
  width:100%}
.topbar {
  padding:12px 18px;
  min-height:55px;
  font-size:10px}
.topbar>span {
  display:none}
.top-actions {
  width:100%;
  justify-content:space-between}
main {
  padding:24px 18px}
.page-heading {
  align-items:flex-start;
  flex-wrap:wrap;
  gap:15px;
  margin-bottom:22px}
.page-heading h1 {
  font-size:25px}
.subtitle {
  font-size:11px}
.hero {
  padding:25px 20px;
  gap:10px}
.hero h2 {
  font-size:33px}
.hero h2 small {
  font-size:21px}
.hero h2>span {
  font-size:11px}
.hero-copy p {
  font-size:9px;
  max-width:180px;
  margin-bottom:15px}
.hero-label {
  font-size:10px}
.hero-links {
  gap:10px;
  font-size:9px;
  flex-wrap:wrap}
.ring {
  width:96px;
  height:96px}
.ring strong {
  font-size:27px}
.ring small {
  font-size:12px}
.ring span {
  font-size:9px}
.stats {
  gap:10px;
  margin-bottom:26px}
.stat {
  padding:15px}
.stat>strong {
  font-size:29px}
.stat>span {
  font-size:10px}
.stat p {
  line-height:1.6}
.section-title>.muted {
  display:none}
.section-title h2 {
  font-size:16px}
.batch-grid {
  gap:10px}
.batch-card {
  padding:14px}
.batch-card h3 {
  font-size:12px;
  gap:4px;
  flex-wrap:wrap}
.batch-card p {
  font-size:10px;
  min-height:32px;
  margin-bottom:15px}
.card-bottom {
  font-size:9px;
  gap:5px;
  flex-wrap:wrap}
.date {
  font-size:10px}
.batch-number {
  font-size:13px}
.card-top {
  margin-bottom:10px}
.definition-grid,.exception-grid {
  grid-template-columns:1fr}
.detail-body {
  padding:18px}
.panel>summary {
  font-size:11px;
  padding:16px}
.panel>summary span {
  font-size:9px;
  margin-left:8px}
.batch-meta {
  gap:12px;
  font-size:10px}
.batch-tabs {
  margin-right:-18px}
.list-heading {
  padding:18px 16px;
  align-items:flex-start;
  flex-wrap:wrap}
.filters {
  padding:0 16px 16px;
  gap:8px}
.search {
  flex-basis:100%}
.filters select {
  flex:1}
.profile-group>summary {
  padding:12px;
  font-size:10px;
  gap:6px;
  flex-wrap:wrap}
.profile-group>summary strong {
  max-width:185px;
  overflow-wrap:anywhere}
.group-total {
  font-size:9px}
.group-registered {
  font-size:9px}
.pagination {
  padding:12px;
  gap:10px;
  flex-wrap:wrap}
.pagination>div {
  gap:10px}
.history-row {
  gap:10px;
  flex-wrap:wrap}
.history-row time {
  margin:0}
.page-footer {
  margin:10px 18px 0}
.eyebrow {
  font-size:9px}
}


/* Contrast palette: neutral surfaces, dark text and a single blue accent.
   No changes to existing font sizes or layout. */
:root {
  --bg: #f3f5f8;
  --paper: #ffffff;
  --ink: #172033;
  --muted: #526075;
  --green: #245da8;
  --line: #d7dee8;
  --lime: #dbeafe;
  --amber: #825515;
}
.sidebar { background: #17263b; color: #f1f5fb; scrollbar-color: #61718a transparent; }
.brand-sub, .nav-label, .sidebar-footer, .sidebar-footer p { color: #c5d1e1; }
.sidebar nav a { color: #e3ebf6; }
.sidebar nav a:hover { background: #283e59; color: #ffffff; }
.sidebar nav a.active { background: #dbeafe; color: #163f73; }
.sidebar nav small { opacity: 1; }
.nav-batch { min-width: 0; }
.nav-date { display: block; color: #c5d1e1; }
.sidebar nav a.active .nav-date { color: #355779; }
.topbar { background: #ffffff; color: #526075; }
.separator { color: #66758a; }
.connection { color: #385471; }
.connection.warning { color: #80500e; }
.eyebrow, .subtitle, .muted, .section-title p, .list-heading p,
.stat > span, .stat p, .stat strong small, .date, .batch-card p,
.card-progress strong span, .card-bottom, .panel > summary span,
.detail-body, .page-footer, .batch-meta, .cell-sub, th,
.group-total, .group-registered, .pagination, .exception-grid small,
.empty, .loading { color: #526075; }
.heading-dot, .hero-links a:first-child, .hero-links a:last-child { color: #a9d1ff; }
.heading-dot { color: #245da8; }
.outline-tag { border-color: #bccce1; color: #355779; }
.hero { background: #203b60; color: #ffffff; }
.hero-label, .hero h2 > span { color: #f2f6ff; }
.hero h2 small, .hero-copy p, .hero-note > span, .hero-note p,
.ring span { color: #d1dff2; }
.hero-note { border-color: #ffffff40; }
.ring-track { stroke: #526e91; }
.ring-value { stroke: #a9d1ff; }
.stat.success { background: #eaf2ff; border-color: #cbdcf3; }
.stat.success > strong { color: #204f91; }
.section-count, .batch-number { background: #e9eff7; color: #3a5272; }
.card-progress, .card-progress strong, .card-bottom span:last-child,
.detail-body h3, td strong, .batch-meta strong, .empty h3,
.exception-grid strong { color: #263e5c; }
.card-bottom { border-color: #e0e6ee; }
.batch-card:hover { border-color: #93afd4; }
progress, progress::-webkit-progress-bar { background: #e0e7f0; }
progress::-webkit-progress-value { background: #447dc0; }
progress::-moz-progress-bar { background: #447dc0; }
.tag.amber, .notice { background: #fff3d6; color: #78500c; border-color: #e9d3a2; }
.tag.red, .notice.danger { background: #fee9e7; color: #9b3027; border-color: #e6bcb7; }
.tag.neutral { background: #e8edf3; color: #47576b; }
.button { background: #ffffff; color: #243d5e; }
.button:hover { border-color: #91aaca; background: #edf3fc; }
.button.primary, .batch-tabs a.selected { background: #245da8; border-color: #245da8; color: #ffffff; }
.button.primary:hover { background: #1c4b89; }
.button.subtle { color: #354d6c; }
.batch-tabs a { color: #445a76; }
.batch-tabs a:hover { background: #e0eafa; }
.batch-tabs a.selected:hover { background: #1c4b89; color: #ffffff; }
.search { background: #ffffff; }
.search span, .folder, .profile-group > summary:before { color: #546e8e; }
.search input, .filters select { color: #263e5c; }
input::placeholder { color: #647187; }
.search:focus-within { outline-color: #6597d3; }
.profile-group > summary { background: #f0f4f9; color: #213b5e; }
th, td { border-color: #e0e6ee; }
.status { color: #8c5614; }
.status.registered, .yes { color: #16633c; }
.status.unknown { color: #526075; }
.batch-link { color: #1c559f; }
.dot { background: #286b45; }
.dot.orange { background: #a26217; }
.dot.gray { background: #637185; }
.sidebar-footer .dot, .connection:before { background: #71b995; }
.history-row time { color: #526075; }
#toast { background: #203b60; color: #ffffff; }
dialog { border-color: #bccce1; color: #172033; }
button:focus-visible, a:focus-visible, summary:focus-visible,
input:focus-visible, select:focus-visible { outline-color: #4481ce; }
