.file-row {
  grid-template-columns: 34px minmax(0, 1fr) auto auto;
}

.tax-refund-file-toolbar{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid #e3ebf2;background:#fff}.tax-refund-file-toolbar>div{margin-right:auto}.tax-refund-file-toolbar b,.tax-refund-file-toolbar span{display:block}.tax-refund-file-toolbar b{color:#1b3d54;font-size:17px}.tax-refund-file-toolbar span{margin-top:3px;color:#74899a;font-size:12px}.tax-refund-file-toolbar label{display:inline-flex;align-items:center;gap:6px;color:#536b80;font-size:13px;cursor:pointer}.tax-refund-file-toolbar input,.tax-refund-file-row input{width:16px;height:16px}.tax-refund-delete-selected{color:#d33d3d}.tax-refund-file-list{display:grid;gap:8px;width:auto;margin:0;padding:14px 18px 20px}.tax-refund-file-row{display:grid;grid-template-columns:22px 34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 13px;border:1px solid #dfe9f1;border-radius:9px;background:#fff}.tax-refund-file-row>span:first-of-type{display:grid;place-items:center;height:26px;border-radius:7px;background:#e7f1ff;color:#1478df;font-weight:900}.tax-refund-append{padding:10px;border:1px dashed #a9c9e8;border-radius:8px;background:#f8fbfd;color:#52708a;text-align:center;cursor:pointer}.tax-refund-append:hover,.tax-refund-append.is-dragging,.tax-refund-upload.is-dragging{border-color:#1478df;background:#eef7ff;color:#1478df}

.file-remove {
  border: 0;
  background: transparent;
  color: #d73c3c;
  font-weight: 800;
  cursor: pointer;
}

.result-actions {
  display: flex;
  gap: 9px;
}

.topbar-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.file-drop-card {
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.file-title-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.file-select-all-bar {
  display: flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 25px;
  border-bottom: 1px solid #e3ebf2;
  background: #fbfdff;
}

.invoice-batch-file-card .file-select-all-bar {
  padding-left: 30px;
}

.tax-refund-file-select-all {
  padding: 8px 13px;
}

.file-select-all {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #536b80;
  font-size: 13px;
  cursor: pointer;
}

.file-select-all input,
.file-row-select {
  width: 16px;
  height: 16px;
}

.file-import-btn {
  padding: 7px 13px;
  color: #1478df;
}

.file-delete-selected {
  padding: 7px 13px;
  color: #d33d3d;
}

.file-row {
  grid-template-columns: 22px 34px minmax(0, 1fr) auto auto;
}

.file-drop-card.is-dragging {
  border-color: #1478df;
  background: #f0f8ff;
  box-shadow: 0 0 0 3px rgba(20, 120, 223, .12);
}

.file-drop-empty {
  display: grid;
  place-items: center;
  gap: 7px;
  width: 100%;
  min-height: 120px;
  border: 1px dashed #8abbe9;
  border-radius: 10px;
  background: #f8fcff;
  color: #1478df;
  cursor: pointer;
}

.file-drop-empty strong {
  font-size: 16px;
}

.file-drop-empty span {
  color: #72869a;
  font-size: 12px;
}

.file-drop-empty:hover {
  border-color: #1478df;
  background: #eef7ff;
}

.file-drop-hint {
  grid-column: 1 / -1;
  padding: 9px;
  border: 1px dashed #a9c9e8;
  border-radius: 8px;
  color: #52708a;
  text-align: center;
  font-size: 12px;
}

.app,
main,
.content,
.content > *,
.card,
.card-head,
.table-wrap {
  min-width: 0;
  max-width: 100%;
}

.app {
  width: 100%;
  height: 100vh;
  overflow-x: hidden;
  overflow-y: hidden;
}

html,
body {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
}

main {
  height: 100vh;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.content {
  width: 100%;
  overflow-x: hidden;
}

.table-wrap {
  width: 100%;
  overflow-x: auto;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.table-wrap table {
  width: max-content;
  min-width: 100%;
  table-layout: auto;
}

.table-wrap th,
.table-wrap td {
  min-width: 110px;
  max-width: 260px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.table-wrap th:first-child,
.table-wrap td:first-child {
  min-width: 180px;
}

.table-wrap.invoice-batch-table th:first-child,
.table-wrap.invoice-batch-table td:first-child {
  min-width: 52px;
  width: 52px;
  text-align: center;
}

.table-select-all,
.table-row-select {
  width: 16px;
  height: 16px;
}

.table-wrap::-webkit-scrollbar {
  width: 11px;
  height: 11px;
}

.table-wrap::-webkit-scrollbar-track {
  background: #edf2f7;
}

.table-wrap::-webkit-scrollbar-thumb {
  border: 2px solid #edf2f7;
  border-radius: 8px;
  background: #8797a8;
}

.table-wrap.invoice-preview-grid {
  position: relative;
  max-height: min(620px, 62vh);
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: stable;
}

.invoice-preview-toolbar {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 14px;
  border-bottom: 1px solid #e7edf3;
  background: #fff;
  color: #627589;
  font-size: 13px;
}

.invoice-preview-toolbar label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #263b4e;
  font-weight: 800;
}

.invoice-preview-toolbar-selection,.invoice-preview-toolbar-actions{display:flex;align-items:center;gap:12px}.invoice-preview-toolbar-selection>span{padding-left:12px;border-left:1px solid #dce6ee;color:#1478df;font-weight:800}.invoice-preview-toolbar-actions{justify-content:flex-end}.invoice-preview-toolbar-actions button{padding:8px 12px;white-space:nowrap}@media(max-width:760px){.invoice-preview-toolbar{align-items:flex-start;flex-direction:column}.invoice-preview-toolbar-actions{width:100%;align-items:flex-start;justify-content:space-between}.invoice-preview-toolbar-actions>span{max-width:60%}}

.invoice-preview-cards {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  padding: 16px;
  min-width: 0;
}

.invoice-preview-card {
  display: grid;
  grid-template-columns: 24px 48px minmax(0, 1fr) auto auto;
  gap: 13px;
  align-items: start;
  padding: 16px;
  border: 1px solid #dce7f0;
  border-radius: 12px;
  background: linear-gradient(145deg, #fff, #f8fbfe);
  box-shadow: 0 5px 18px rgba(40, 76, 109, .07);
  min-width: 0;
}

.table-wrap.invoice-preview-grid::-webkit-scrollbar {
  width: 11px;
}

.tax-refund-content{display:grid;gap:16px}.tax-refund-content.hidden{display:none}.tax-refund-steps{display:grid;grid-template-columns:repeat(6,minmax(125px,1fr));overflow:hidden;border:1px solid #dce7f0;border-radius:13px;background:#fff}.tax-refund-step{position:relative;display:flex;gap:10px;align-items:center;min-height:72px;padding:13px;border:0;border-right:1px solid #e7eef4;background:#fff;color:#708598;text-align:left;cursor:pointer}.tax-refund-step:last-child{border-right:0}.tax-refund-step>span{display:grid;place-items:center;flex:0 0 28px;height:28px;border:1px solid #bfd0df;border-radius:50%;background:#f6f9fb;font-weight:900}.tax-refund-step b,.tax-refund-step small{display:block}.tax-refund-step b{color:#385267;font-size:13px}.tax-refund-step small{margin-top:3px;line-height:1.35}.tax-refund-step.is-active{background:#edf7ff}.tax-refund-step.is-active>span{border-color:#1478df;background:#1478df;color:#fff}.tax-refund-step.is-complete>span{border-color:#1e9b77;background:#e9f8f2;color:#147b60}.tax-refund-panel{padding:0;overflow:hidden}.tax-refund-panel-head{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 22px;border-bottom:1px solid #e6edf3}.tax-refund-panel-head span{color:#14866b;font-size:11px;font-weight:900;letter-spacing:.1em}.tax-refund-panel-head h3{margin:5px 0 3px;color:#19384e;font-size:20px}.tax-refund-panel-head p{margin:0;color:#72879a;font-size:13px}.tax-refund-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.tax-refund-body{min-height:310px;max-height:58vh;overflow:auto;background:#fbfdff}.tax-refund-upload{display:grid;place-items:center;gap:10px;min-height:300px;margin:18px;border:1px dashed #8db9dc;border-radius:12px;background:linear-gradient(180deg,#f9fcff,#f1f8fd);text-align:center}.tax-refund-upload strong{color:#1d4b69;font-size:18px}.tax-refund-upload p{margin:0;color:#71889a}.tax-refund-file-list{display:grid;gap:8px;width:min(760px,calc(100% - 36px));margin:0 auto 20px}.tax-refund-file-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 13px;border:1px solid #dfe9f1;border-radius:9px;background:#fff}.tax-refund-file-row>span:first-child{display:grid;place-items:center;height:26px;border-radius:7px;background:#edf5fb;color:#2876ac;font-weight:900}.tax-refund-file-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#344f63}.tax-refund-file-row button{border:0;background:transparent;color:#d34444;font-weight:800;cursor:pointer}.tax-refund-table{width:max-content;min-width:100%;border-collapse:collapse;background:#fff}.tax-refund-table th{position:sticky;top:0;z-index:2;padding:11px 12px;border-bottom:1px solid #d9e4ed;background:#eef5fa;color:#335166;font-size:12px;text-align:left;white-space:nowrap}.tax-refund-table td{max-width:260px;padding:10px 12px;border-bottom:1px solid #edf1f5;color:#536b7d;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tax-refund-table tr:hover td{background:#f7fbfe}.tax-refund-empty{display:grid;place-items:center;min-height:300px;color:#7d91a1}.tax-refund-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 20px;border-top:1px solid #e6edf3;background:#f8fbfd;color:#75899a;font-size:12px}.tax-refund-footer button:disabled{visibility:hidden}@media(max-width:1100px){.tax-refund-steps{grid-template-columns:repeat(3,1fr)}.tax-refund-step:nth-child(3){border-right:0}.tax-refund-step:nth-child(-n+3){border-bottom:1px solid #e7eef4}}@media(max-width:720px){.tax-refund-panel-head{align-items:flex-start;flex-direction:column}.tax-refund-steps{grid-template-columns:1fr 1fr}.tax-refund-step:nth-child(3){border-right:1px solid #e7eef4}.tax-refund-step:nth-child(even){border-right:0}.tax-refund-step:nth-child(-n+4){border-bottom:1px solid #e7eef4}}

.table-wrap.invoice-preview-grid::-webkit-scrollbar-track {
  background: #edf2f7;
}

.table-wrap.invoice-preview-grid::-webkit-scrollbar-thumb {
  border: 2px solid #edf2f7;
  border-radius: 8px;
  background: #8797a8;
}

.invoice-card-check input,
.invoice-preview-toolbar input {
  width: 17px;
  height: 17px;
}

.invoice-card-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 11px;
  background: #e9f4ff;
  color: #1478df;
  font-size: 20px;
  font-weight: 900;
}

.invoice-card-main {
  min-width: 0;
}

.invoice-card-main > b {
  display: block;
  overflow: hidden;
  margin-bottom: 8px;
  color: #17324a;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.invoice-card-main p {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr);
  gap: 7px;
  margin: 4px 0;
  color: #556c80;
  font-size: 12px;
}

.invoice-card-main p span {
  color: #8a9aa8;
}

.invoice-card-main small {
  display: block;
  margin-top: 9px;
  color: #8292a1;
}

.invoice-card-side {
  display: grid;
  gap: 8px;
  min-width: 104px;
}

.invoice-card-amount {
  align-self: start;
  color: #d04a3a;
  font-size: 18px;
  white-space: nowrap;
}

.invoice-card-side button {
  padding: 7px 10px;
  color: #1478df;
}

.invoice-preview-modal {
  z-index: 1000;
  isolation: isolate;
  padding: 24px;
  background: rgba(16, 30, 43, .72);
}

.invoice-preview-dialog {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(1500px, 96vw);
  height: min(920px, 94vh);
  border-radius: 14px;
  background: #eef3f7;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
  overflow: hidden;
}

.invoice-preview-dialog > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 15px 20px;
  background: #fff;
  border-bottom: 1px solid #d9e2e9;
}

.invoice-preview-dialog header h2,
.invoice-preview-dialog header p {
  margin: 0;
}

.invoice-preview-dialog header p {
  margin-top: 4px;
  color: #758797;
  font-size: 12px;
}

.invoice-preview-dialog header > div:last-child {
  display: flex;
  align-items: center;
  gap: 10px;
}

.invoice-preview-close {
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 9px;
  background: #edf2f6;
  color: #344d62;
  font-size: 24px;
  cursor: pointer;
}

.invoice-preview-scroll {
  overflow: auto;
  padding: 24px;
}

#invoicePreviewPaper {
  min-width: 1120px;
}

.invoice-paper {
  position: relative;
  width: 1120px;
  min-height: 720px;
  margin: 0 auto;
  padding: 34px 38px 24px;
  border: 1px solid #7f9db4;
  background: #fff;
  color: #18344d;
  box-shadow: 0 12px 36px rgba(37, 60, 80, .18);
}

.invoice-paper-stamp {
  position: absolute;
  top: 86px;
  left: 50%;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 150px;
  height: 150px;
  border: 4px double rgba(207, 48, 48, .34);
  border-radius: 50%;
  color: rgba(207, 48, 48, .42);
  transform: translateX(-50%) rotate(-12deg);
  pointer-events: none;
}

.invoice-paper-stamp span {
  font-size: 11px;
}

.invoice-paper > header {
  display: grid;
  grid-template-columns: 120px 1fr 250px;
  gap: 20px;
  align-items: end;
  margin-bottom: 18px;
}

.invoice-paper-qr {
  display: grid;
  place-items: center;
  width: 82px;
  height: 82px;
  border: 2px dashed #244a67;
  color: #698096;
  text-align: center;
  font-size: 12px;
}

.invoice-paper-title {
  text-align: center;
}

.invoice-paper-title h3 {
  margin: 0;
  color: #164c72;
  font-family: serif;
  font-size: 27px;
  letter-spacing: 3px;
}

.invoice-paper-title i {
  display: block;
  width: 82%;
  height: 3px;
  margin: 10px auto 0;
  border-top: 1px solid #164c72;
  border-bottom: 1px solid #164c72;
}

.invoice-paper-meta p {
  margin: 7px 0;
  font-size: 13px;
}

.invoice-party {
  display: grid;
  grid-template-columns: 44px 1fr 44px 1fr;
  min-height: 90px;
  border: 1px solid #47708f;
}

.invoice-party > b,
.invoice-remark > b {
  display: grid;
  place-items: center;
  padding: 8px;
  border-right: 1px solid #47708f;
  color: #174f78;
  font-size: 12px;
  text-align: center;
}

.invoice-party > div {
  padding: 10px 13px;
  border-right: 1px solid #47708f;
}

.invoice-party > div:last-child {
  border-right: 0;
}

.invoice-party p,
.invoice-remark p {
  margin: 6px 0;
  font-size: 12px;
}

.invoice-lines-wrap {
  width: 100%;
  overflow-x: auto;
}

.invoice-lines {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.invoice-lines th,
.invoice-lines td {
  min-width: 0;
  max-width: none;
  padding: 8px 5px;
  border: 1px solid #47708f;
  border-top: 0;
  color: #25465f;
  text-align: center;
  white-space: normal;
  word-break: break-all;
  font-size: 11px;
}

.invoice-lines th:first-child { width: 20%; }
.invoice-lines th:nth-child(2) { width: 14%; }
.invoice-lines th:nth-child(3) { width: 7%; }
.invoice-lines th:nth-child(4) { width: 9%; }
.invoice-lines th:nth-child(5),
.invoice-lines th:nth-child(6),
.invoice-lines th:nth-child(8) { width: 12%; }
.invoice-lines th:nth-child(7) { width: 14%; }

.invoice-lines tfoot td {
  color: #174f78;
  font-weight: 800;
}

.invoice-total {
  display: grid;
  grid-template-columns: 180px 1fr 260px;
  gap: 16px;
  padding: 13px 20px;
  border: 1px solid #47708f;
  border-top: 0;
  color: #174f78;
  font-size: 13px;
}

.invoice-remark {
  display: grid;
  grid-template-columns: 44px 1fr;
  min-height: 72px;
  border: 1px solid #47708f;
  border-top: 0;
}

.invoice-remark > div {
  padding: 7px 13px;
}

.invoice-paper > footer {
  padding: 15px 10px 0;
  font-size: 12px;
}

@media (max-width: 780px) {
  .invoice-preview-cards { grid-template-columns: 1fr; padding: 10px; }
  .invoice-preview-card { grid-template-columns: 22px 42px minmax(0, 1fr); }
  .invoice-card-amount { grid-column: 3; }
  .invoice-card-side { grid-column: 2 / -1; grid-template-columns: auto auto; justify-content: end; align-items: center; }
  .invoice-preview-modal { padding: 8px; }
  .invoice-preview-dialog { width: 100%; height: 98vh; }
}

.invoice-preview-scroll {
  display: grid;
  place-items: center;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 12px;
  background: #e9edf3;
}

#invoicePreviewPaper {
  min-width: 0;
}

.customs-invoice-preview-paper-wrap {
  position: relative;
  width: calc(var(--invoice-preview-paper-width, 1208px) * var(--invoice-preview-scale, 1));
  min-height: calc(var(--invoice-preview-paper-height, 832px) * var(--invoice-preview-scale, 1));
}
.customs-invoice-pages{display:grid;justify-items:center;gap:22px;padding:4px 0}.customs-invoice-paper-real .customs-invoice-page-number{color:var(--invoice-red);font-size:14px;text-align:right}

.customs-invoice-paper {
  --invoice-red: #8f1515;
  --invoice-text: #151515;
  position: absolute;
  top: 0;
  left: 0;
  width: 1160px;
  min-width: 1160px;
  min-height: 704px;
  padding: 10px 24px 14px;
  border-radius: 2px;
  background: #fff;
  color: var(--invoice-text);
  box-shadow: 0 18px 48px rgba(22, 34, 54, .18);
  font-family: "FangSong", "SimSun", "Microsoft YaHei", serif;
  font-size: 17px;
  line-height: 1.25;
  transform: scale(var(--invoice-preview-scale, 1));
  transform-origin: top left;
}

.customs-invoice-paper-head {
  position: relative;
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr) 292px;
  align-items: start;
  min-height: 112px;
  gap: 16px;
  margin-bottom: 4px;
}

.customs-invoice-qr {
  position: relative;
  display: grid;
  place-items: center;
  width: 112px;
  height: 112px;
  margin: 4px 0 0 2px;
  background: repeating-linear-gradient(45deg, #fff 0 5px, #18222c 5px 8px, #fff 8px 12px);
  color: #fff;
  font-family: "Microsoft YaHei", sans-serif;
  font-size: 12px;
  text-shadow: 0 1px 2px #000;
}

.customs-invoice-title-wrap {
  position: relative;
  display: grid;
  justify-items: center;
  padding-top: 8px;
}

.customs-invoice-title {
  position: relative;
  z-index: 1;
  color: var(--invoice-red);
  font-size: 35px;
  font-weight: 500;
  letter-spacing: 0;
  text-align: center;
  white-space: nowrap;
}

.customs-invoice-title-rule {
  width: 416px;
  height: 7px;
  margin-top: 13px;
  border-top: 2px solid var(--invoice-red);
  border-bottom: 2px solid var(--invoice-red);
}

.customs-invoice-stamp {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 0;
  display: grid;
  place-items: center;
  width: 238px;
  height: 136px;
  border: 8px solid rgba(229, 22, 22, .38);
  border-radius: 50%;
  color: rgba(229, 22, 22, .42);
  font-family: "Microsoft YaHei", sans-serif;
  font-size: 25px;
  font-weight: 800;
  transform: translate(-50%, -50%) rotate(-5deg);
  pointer-events: none;
}

.customs-invoice-stamp small {
  display: block;
  margin-top: -20px;
  font-size: 15px;
  font-weight: 700;
}

.customs-invoice-meta {
  display: grid;
  gap: 12px;
  justify-self: end;
  padding-top: 22px;
  font-size: 18px;
  white-space: nowrap;
}

.customs-invoice-meta p { margin: 0; }
.customs-invoice-meta b { color: var(--invoice-red); font-weight: 500; }
.customs-invoice-tax-board { border: 1px solid var(--invoice-red); }

.customs-invoice-party-row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 34px minmax(0, 1fr);
  min-height: 126px;
  border-bottom: 1px solid var(--invoice-red);
}

.customs-invoice-side-label {
  display: grid;
  place-items: center;
  padding: 8px 0;
  border-right: 1px solid var(--invoice-red);
  color: var(--invoice-red);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.15;
  writing-mode: vertical-rl;
}

.customs-invoice-info-block {
  display: grid;
  align-content: space-between;
  min-height: 126px;
  padding: 24px 10px 25px;
  border-right: 1px solid var(--invoice-red);
  overflow: hidden;
}

.customs-invoice-party-row .customs-invoice-info-block:last-child { border-right: 0; }
.customs-invoice-info-block p { display: flex; min-width: 0; margin: 0; gap: 2px; }
.customs-invoice-info-block b { flex: 0 0 auto; color: var(--invoice-red); font-weight: 500; }
.customs-invoice-info-block span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }

.customs-invoice-lines {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 17px;
}

.customs-invoice-col-name { width: 18%; }
.customs-invoice-col-model { width: 18%; }
.customs-invoice-col-unit { width: 9%; }
.customs-invoice-col-qty { width: 10%; }
.customs-invoice-col-price { width: 15%; }
.customs-invoice-col-amount { width: 13%; }
.customs-invoice-col-tax-rate { width: 9%; }
.customs-invoice-col-tax { width: 8%; }

.customs-invoice-lines th,
.customs-invoice-lines td {
  height: 26px;
  min-width: 0;
  max-width: none;
  padding: 2px 0;
  border: 0;
  color: var(--invoice-text);
  vertical-align: middle;
  white-space: normal;
  word-break: break-word;
}

.customs-invoice-lines th { height: 30px; color: var(--invoice-red); font-weight: 500; text-align: center; }
.customs-invoice-lines td:nth-child(n+3) { text-align: right; }
.customs-invoice-lines tbody { height: 220px; vertical-align: top; }
.customs-invoice-lines tbody tr:first-child td { padding-top: 4px; }
.customs-invoice-lines tfoot td { height: 35px; border-top: 1px solid var(--invoice-red); font-weight: 500; }
.customs-invoice-lines tfoot td:first-child { color: var(--invoice-red); text-align: center; }

.customs-invoice-total {
  display: grid;
  grid-template-columns: 292px minmax(0, 1fr) 345px;
  align-items: center;
  height: 46px;
  min-height: 46px;
  border-top: 1px solid var(--invoice-red);
  overflow: hidden;
}

.customs-invoice-total span,
.customs-invoice-total b {
  height: 100%;
  padding: 11px 14px 0;
  border-right: 1px solid var(--invoice-red);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.15;
}

.customs-invoice-total span:first-child,
.customs-invoice-total span:last-child { color: var(--invoice-red); text-align: center; }
.customs-invoice-total span:last-child { border-right: 0; }

.customs-invoice-remark {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  min-height: 114px;
  border-top: 1px solid var(--invoice-red);
}

.customs-invoice-remark > div:last-child { padding: 6px 8px; overflow: hidden; }
.customs-invoice-remark p { margin: 0 0 2px; }
.customs-invoice-footer { padding: 14px 0 0 88px; font-size: 18px; }
.customs-invoice-footer b { color: var(--invoice-red); font-weight: 500; }

.invoice-batch-file-list{max-height:min(520px,52vh);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.invoice-batch-file-list::-webkit-scrollbar{width:11px}.invoice-batch-file-list::-webkit-scrollbar-track{background:#edf2f7}.invoice-batch-file-list::-webkit-scrollbar-thumb{border:2px solid #edf2f7;border-radius:8px;background:#8797a8}.invoice-batch-file-list::-webkit-scrollbar-thumb:hover{background:#667b8e}@media(max-height:760px){.invoice-batch-file-list{max-height:340px}}@media(max-width:720px){.invoice-batch-file-list{max-height:46vh}}


/* Project editor aligned with tax-office drawer reference. */
.invoice-batch-project-editor>section{inset:4px 0 0 28px}.invoice-batch-project-editor>section>header{min-height:116px;padding:24px 42px}.invoice-batch-project-editor h2{font-size:30px;line-height:1}.invoice-batch-project-editor p{margin-top:12px;font-size:17px}.invoice-batch-project-editor>section>header button{width:58px;height:58px;font-size:30px}.project-editor-body{grid-template-columns:58% 42%}.project-editor-fields{gap:22px;padding:34px 50px}.project-editor-fields>label,.project-editor-grid>label{gap:10px;font-size:17px}.project-editor-fields>label>span,.project-editor-grid>label>span,.project-editor-grid legend{color:#435d70;font-weight:900}.project-editor-fields input,.project-editor-fields select,.project-editor-tax input{min-height:58px;padding:14px 16px;border-color:#a9cbea;border-radius:6px;font-size:17px;font-weight:700}.project-editor-grid{gap:22px 36px}.project-editor-grid fieldset{align-items:flex-start;flex-wrap:wrap;font-size:17px}.project-editor-grid fieldset legend{width:100%}.project-editor-grid input[type=radio]{width:20px;height:20px;min-height:0}.project-editor-tax>header{padding:38px 42px 28px}.project-editor-tax>header>div{gap:14px;margin-bottom:20px}.project-editor-tax b{font-size:25px}.project-editor-tax span{font-size:16px}.project-editor-tax #invoiceBatchTaxCodeResults{display:block;padding:20px 36px 48px}.project-tax-tree-node{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:start;padding-left:calc(var(--tree-depth) * 22px)}.project-tax-tree-toggle{display:grid;place-items:center;width:36px;height:44px;border:0;background:transparent;color:#4b5e6d;font-size:18px;cursor:pointer}.project-tax-tree-toggle:disabled{cursor:default}.project-tax-tree-label{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;min-height:44px;padding:9px 8px;border:0;background:transparent;text-align:left;cursor:pointer}.project-tax-tree-label:hover{background:#edf6ff}.project-tax-tree-label b{font-size:18px;color:#193a51}.project-tax-tree-label span{font-size:12px;color:#1478df;font-family:Consolas,monospace}.project-tax-tree-children{grid-column:1/-1}.project-tax-tree-children.hidden{display:none}.invoice-batch-project-editor form>footer{gap:18px;padding:22px 40px}.invoice-batch-project-editor form>footer button{min-height:62px;font-size:21px;font-weight:900}@media(max-width:1100px){.project-editor-fields{padding:28px}.invoice-batch-project-editor>section{inset:4px}.project-editor-body{grid-template-columns:55% 45%}}@media(max-width:780px){.project-editor-body{grid-template-columns:1fr}.project-editor-tax{max-height:42vh}.project-editor-fields{padding:22px}.project-editor-grid{grid-template-columns:1fr}.invoice-batch-project-editor>section>header{padding:20px}.invoice-batch-project-editor h2{font-size:24px}.invoice-batch-project-editor p{font-size:14px}}

.project-category-row{display:grid;grid-template-columns:minmax(0,1fr) 34px 34px;align-items:center;width:calc(100% - 24px);margin:0 12px}.project-category-row>button{height:46px;border:0;background:#fff;color:#29475c;cursor:pointer}.project-category-row>button:first-child{display:flex;align-items:center;justify-content:space-between;padding:0 16px;text-align:left}.project-category-row>button:not(:first-child){color:#7890a2}.project-category-row.active>button{background:#eaf4ff;color:#1478df}.project-category-row i{display:grid;place-items:center;min-width:30px;height:26px;border-radius:14px;background:#e9f2fc;color:#1478df;font-style:normal}

.tax-office-project-page{background:#eef3f7}.tax-office-project-page>header{display:grid;grid-template-columns:50px minmax(0,1fr) auto;align-items:center;gap:14px}.project-page-back{display:grid!important;place-items:center;width:44px!important;height:44px!important;border-radius:7px!important;color:#1478df!important;font-size:26px!important}.project-page-company{padding:10px 18px;border:1px solid #cfe0ef;border-radius:22px;background:#f2f8fc;color:#315c7b;font-weight:800}.project-page-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px;min-height:0;padding:24px}.project-category-sidebar{display:flex;flex-direction:column;min-height:0;border:1px solid #dbe5ed;background:#fff}.project-category-title{display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:1px solid #e4ebf1}.project-category-title b{color:#1e3d53;font-size:20px}.project-category-title button{width:44px;height:44px;border:0;border-radius:7px;background:#edf5ff;color:#1478df;font-size:26px;cursor:pointer}.project-category-sidebar>label{display:grid;gap:7px;padding:20px;color:#718597}.project-category-sidebar input,.project-filter-grid input,.project-filter-grid select{padding:12px;border:1px solid #cddce7;border-radius:5px;background:#fff;outline:none}.project-category-all,.project-category-list button{display:flex;align-items:center;justify-content:space-between;width:calc(100% - 24px);margin:0 12px;padding:14px 16px;border:0;background:#fff;color:#29475c;text-align:left;cursor:pointer}.project-category-all.active,.project-category-list button.active{background:#eaf4ff;color:#1478df}.project-category-all i,.project-category-list i{display:grid;place-items:center;min-width:30px;height:26px;border-radius:14px;background:#e9f2fc;color:#1478df;font-style:normal}.project-page-main{display:grid;grid-template-rows:auto minmax(0,1fr);gap:18px;min-width:0;min-height:0}.project-filter-card,.project-table-card{border:1px solid #dbe5ed;border-radius:7px;background:#fff}.project-filter-card>header{display:flex;justify-content:space-between;padding:22px 26px 10px}.project-filter-card>header b{font-size:19px;color:#1d3d53}.project-filter-card>header span{color:#7d8f9d}.project-filter-grid{display:grid;grid-template-columns:minmax(220px,1.8fr) minmax(180px,1.1fr) minmax(180px,1fr) 100px 100px;align-items:end;gap:16px;padding:14px 26px 24px}.project-filter-grid label{display:grid;gap:8px;color:#415d70;font-weight:800}.project-table-card{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;padding:24px}.project-table-actions{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr);gap:12px;margin-bottom:16px}.project-table-wrap{min-height:0;overflow:auto;border:1px solid #dce6ee}.project-table-wrap table{width:max-content;min-width:100%;border-collapse:collapse}.project-table-wrap th{position:sticky;top:0;padding:12px;border-bottom:1px solid #9fc5e6;background:#e8f4ff;color:#23435a;white-space:nowrap}.project-table-wrap td{padding:12px;border-bottom:1px solid #dce7ef;color:#435e71;white-space:nowrap}.project-table-wrap tbody tr:hover td{background:#f5faff}.project-table-wrap td button{border:0;background:transparent;color:#243f53;font-weight:800;cursor:pointer}.project-table-wrap .tax-code-link{color:#1478df}.tax-included-tag{padding:3px 8px;border:1px solid #b9d7f3;border-radius:12px;background:#f1f8ff;color:#1478df}.project-table-card>footer{display:flex;align-items:center;justify-content:space-between;padding-top:18px;color:#748899}.project-table-card>footer div{display:flex;gap:8px;align-items:center}.project-table-card>footer button,.project-table-card>footer b{display:grid;place-items:center;width:38px;height:38px;border:1px solid #cfe0ed;border-radius:6px;background:#fff}.project-table-card>footer b{border-color:#1478df;background:#1478df;color:#fff}.invoice-batch-project-editor{position:fixed;inset:0;z-index:90;background:rgba(16,35,50,.48)}.invoice-batch-project-editor.hidden{display:none}.invoice-batch-project-editor>section{position:absolute;inset:8px 0 0 max(20px,12vw);display:grid;grid-template-rows:auto minmax(0,1fr);background:#fff;box-shadow:-20px 0 60px rgba(10,31,47,.28)}.invoice-batch-project-editor>section>header{display:flex;align-items:center;justify-content:space-between;padding:24px 38px;border-bottom:1px solid #dbe5ed}.invoice-batch-project-editor h2{margin:0;color:#1c3c52;font-size:28px}.invoice-batch-project-editor p{margin:6px 0 0;color:#75899a}.invoice-batch-project-editor>section>header button{width:46px;height:46px;border:1px solid #bcd5e9;border-radius:8px;background:#f2f8fc;color:#1478df;font-size:26px}.invoice-batch-project-editor form{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0}.project-editor-body{display:grid;grid-template-columns:58% 42%;min-height:0}.project-editor-fields{display:grid;align-content:start;gap:18px;padding:30px 38px;overflow:auto;border-right:1px solid #dce5ec}.project-editor-fields>label{display:grid;gap:8px;color:#415d70;font-weight:800}.project-editor-fields input,.project-editor-fields select,.project-editor-tax input{width:100%;padding:13px 14px;border:1px solid #bad3e7;border-radius:5px;background:#fff;outline:none}.project-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 28px}.project-editor-grid>label{display:grid;gap:8px;color:#415d70;font-weight:800}.project-editor-grid fieldset{display:flex;align-items:center;gap:15px;margin:0;padding:0;border:0;color:#415d70}.project-editor-grid legend{margin-bottom:9px;font-weight:800}.project-editor-grid fieldset label{display:inline-flex;align-items:center;gap:6px}.project-editor-tax{min-width:0;overflow:auto;background:#fbfdff}.project-editor-tax>header{position:sticky;top:0;z-index:2;padding:30px 36px;border-bottom:1px solid #dce5ec;background:#fff}.project-editor-tax>header>div{display:flex;align-items:baseline;gap:10px;margin-bottom:16px}.project-editor-tax b{color:#1d3d53;font-size:22px}.project-editor-tax span{color:#778b9b}.project-editor-tax #invoiceBatchTaxCodeResults{display:grid;gap:8px;padding:18px 28px}.project-editor-tax #invoiceBatchTaxCodeResults button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:13px;border:1px solid #dce6ee;border-radius:7px;background:#fff;text-align:left}.project-editor-tax #invoiceBatchTaxCodeResults button:hover{border-color:#6eabe0;background:#f2f9ff}.project-editor-tax #invoiceBatchTaxCodeResults b{font-size:14px}.project-editor-tax #invoiceBatchTaxCodeResults span{color:#1478df;font-family:Consolas,monospace}.project-editor-tax #invoiceBatchTaxCodeResults small{grid-column:1/-1;color:#7d8f9d}.invoice-batch-project-editor form>footer{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:22px 38px;border-top:1px solid #dbe5ed;background:#fff}.invoice-batch-project-editor form>footer button{min-height:52px;font-size:18px}@media(max-width:1000px){.project-page-layout{grid-template-columns:230px minmax(0,1fr);gap:12px;padding:12px}.project-filter-grid{grid-template-columns:1fr 1fr}.project-editor-body{grid-template-columns:1fr}.project-editor-tax{max-height:42vh}.invoice-batch-project-editor>section{inset:4px}.project-editor-fields{border-right:0;border-bottom:1px solid #dce5ec}}@media(max-width:720px){.project-page-layout{grid-template-columns:1fr}.project-category-sidebar{max-height:260px}.project-filter-grid{grid-template-columns:1fr}.project-table-actions{grid-template-columns:1fr}.project-editor-grid{grid-template-columns:1fr}}

.invoice-batch-content{display:grid;gap:16px}.invoice-batch-content.hidden{display:none}.invoice-batch-overview{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 24px;background:linear-gradient(120deg,#f8fcff,#eef6fb)}.invoice-batch-overview>div>span{color:#14866b;font-size:11px;font-weight:900;letter-spacing:.12em}.invoice-batch-overview h2{margin:5px 0;color:#17384f;font-size:23px}.invoice-batch-overview p{margin:0;color:#718698}.invoice-batch-overview-actions{display:flex;align-items:center;gap:16px}.invoice-batch-overview-actions>div{text-align:right}.invoice-batch-overview-actions strong,.invoice-batch-overview-actions span{display:block}.invoice-batch-overview-actions strong{color:#1478df;font-size:24px}.invoice-batch-overview-actions span{color:#74899a;font-size:12px}.invoice-batch-file-card,.invoice-batch-preview-card{padding:0;overflow:hidden}.invoice-batch-file-card>header,.invoice-batch-preview-card>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-bottom:1px solid #e3ebf2}.invoice-batch-file-card header>div,.invoice-batch-preview-card header>div{display:flex;align-items:center;gap:12px}.invoice-batch-file-card header>div:last-child{flex-wrap:wrap;justify-content:flex-end}.invoice-batch-file-card header b,.invoice-batch-preview-card header b{color:#1b3d54;font-size:17px}.invoice-batch-file-card header span,.invoice-batch-preview-card header span{color:#75899a;font-size:12px}.invoice-batch-file-card header label{display:inline-flex;align-items:center;gap:6px;color:#536b80;font-size:13px}.invoice-batch-file-list{display:grid;gap:8px;min-height:128px;padding:14px 18px 20px;background:#fbfdff}.invoice-batch-file-list.is-dragging{background:#eef7ff}.invoice-batch-drop-empty{display:grid;place-items:center;gap:7px;min-height:118px;border:1px dashed #8abbe9;border-radius:10px;background:#f8fcff;color:#1478df;cursor:pointer}.invoice-batch-drop-empty b{font-size:16px}.invoice-batch-drop-empty span{color:#72869a;font-size:12px}.invoice-batch-file-row{display:grid;grid-template-columns:22px 34px minmax(0,1fr) auto 54px;align-items:center;gap:10px;padding:10px 12px;border:1px solid #dfe9f1;border-radius:9px;background:#fff}.invoice-batch-file-row>span{display:grid;place-items:center;height:26px;border-radius:7px;background:#e7f1ff;color:#1478df;font-weight:900}.invoice-batch-file-row b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#344f63}.invoice-batch-file-row small{color:#7a8d9d}.invoice-batch-file-row button{border:0;background:transparent;color:#d34444;font-weight:800;cursor:pointer}.invoice-batch-append{padding:10px;border:1px dashed #a9c9e8;border-radius:8px;background:#f8fbfd;color:#52708a;cursor:pointer}.invoice-batch-preview{max-height:54vh;overflow:auto;background:#fff}.invoice-batch-preview table{width:max-content;min-width:100%;border-collapse:collapse}.invoice-batch-preview th{position:sticky;top:0;z-index:2;padding:10px 12px;border:1px solid #dce6ee;background:#edf5fa;color:#315066;font-size:12px;white-space:nowrap}.invoice-batch-preview td{max-width:260px;padding:9px 12px;border:1px solid #e4ebf1;color:#536b7d;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invoice-batch-preview tr:hover td{background:#f7fbfe}.invoice-batch-projects-drawer{position:fixed;inset:0;z-index:80;padding:18px;background:rgba(15,38,56,.4);backdrop-filter:blur(4px)}.invoice-batch-projects-drawer.hidden{display:none}.invoice-batch-projects-shell{display:grid;grid-template-rows:auto minmax(0,1fr);width:100%;height:100%;overflow:hidden;border:1px solid #d6e2eb;border-radius:16px;background:#f5f9fc;box-shadow:0 28px 80px rgba(14,40,59,.28)}.invoice-batch-projects-shell>header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #dce6ee;background:#fff}.invoice-batch-projects-shell>header span{color:#16806a;font-size:10px;font-weight:900;letter-spacing:.15em}.invoice-batch-projects-shell>header h2{margin:4px 0;color:#17384f}.invoice-batch-projects-shell>header p{margin:0;color:#718698;font-size:12px}.invoice-batch-projects-shell>header button{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:#eef4f8;color:#3c576b;font-size:25px;cursor:pointer}.invoice-batch-projects-layout{display:grid;grid-template-columns:minmax(260px,24%) minmax(360px,32%) minmax(420px,44%);min-height:0}.invoice-batch-projects-layout>aside,.invoice-batch-project-form,.invoice-batch-tax-browser{min-width:0;overflow:auto;border-right:1px solid #dce6ee;background:#fff}.invoice-batch-project-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:16px;border-bottom:1px solid #e2eaf0}.invoice-batch-project-search input,.invoice-batch-project-form input,.invoice-batch-tax-browser input{width:100%;padding:10px 12px;border:1px solid #ccdbe6;border-radius:8px;background:#fff;color:#29465a;outline:none}.invoice-batch-project-list{display:grid;gap:8px;padding:12px}.invoice-batch-project-list>button{display:grid;gap:4px;padding:13px;border:1px solid #dce6ee;border-radius:10px;background:#fff;text-align:left;cursor:pointer}.invoice-batch-project-list>button:hover{border-color:#79afe0;background:#f4faff}.invoice-batch-project-list b{color:#29475c}.invoice-batch-project-list span{color:#60798b;font-size:12px}.invoice-batch-project-list small{color:#8a9aa7}.invoice-batch-project-form{display:grid;align-content:start;gap:15px;padding:22px}.invoice-batch-form-title{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid #e3ebf1}.invoice-batch-form-title span{color:#16806a;font-size:11px;font-weight:900}.invoice-batch-form-title h3{margin:4px 0 0;color:#1c3b51;font-size:20px}.invoice-batch-project-form label{display:grid;gap:6px;color:#536b7d;font-size:13px}.invoice-batch-project-form label>span{font-weight:800}.invoice-batch-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.invoice-batch-project-form footer{display:flex;justify-content:flex-end;gap:9px;padding-top:8px}.danger-link{border:0;background:transparent;color:#d23d3d;font-weight:800;cursor:pointer}.invoice-batch-tax-browser{border-right:0}.invoice-batch-tax-browser>header{position:sticky;top:0;z-index:2;display:grid;gap:10px;padding:16px;border-bottom:1px solid #e2eaf0;background:#fff}.invoice-batch-tax-browser b{color:#1e4057}.invoice-batch-tax-code-results{display:grid;gap:8px;padding:12px}.invoice-batch-tax-code-results>button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:12px;border:1px solid #dde7ee;border-radius:9px;background:#fff;text-align:left;cursor:pointer}.invoice-batch-tax-code-results>button:hover{border-color:#69a8df;background:#f3f9fe}.invoice-batch-tax-code-results b{color:#29495f}.invoice-batch-tax-code-results span{color:#1478df;font-family:Consolas,monospace;font-size:12px}.invoice-batch-tax-code-results small{grid-column:1/-1;color:#7a8e9e}@media(max-width:1050px){.invoice-batch-projects-layout{grid-template-columns:280px minmax(340px,1fr)}.invoice-batch-tax-browser{grid-column:1/-1;max-height:38vh;border-top:1px solid #dce6ee}.invoice-batch-projects-drawer{padding:8px}}@media(max-width:720px){.invoice-batch-overview,.invoice-batch-file-card>header,.invoice-batch-preview-card>header{align-items:flex-start;flex-direction:column}.invoice-batch-overview-actions{width:100%;justify-content:space-between}.invoice-batch-projects-layout{grid-template-columns:1fr}.invoice-batch-projects-layout>aside,.invoice-batch-project-form,.invoice-batch-tax-browser{max-height:none;border-right:0;border-bottom:1px solid #dce6ee}.invoice-batch-form-grid{grid-template-columns:1fr}}

/* Tax refund file manager: final overrides must stay after legacy compact rules. */
.tax-refund-body:has(.tax-refund-file-toolbar){overflow-y:auto}.tax-refund-file-toolbar{display:flex;align-items:center;gap:12px;width:100%;padding:16px 20px;border-bottom:1px solid #e3ebf2;background:#fff}.tax-refund-file-toolbar>div{margin-right:auto}.tax-refund-file-toolbar b,.tax-refund-file-toolbar span{display:block}.tax-refund-file-toolbar b{color:#1b3d54;font-size:17px}.tax-refund-file-toolbar span{margin-top:3px;color:#74899a;font-size:12px}.tax-refund-file-toolbar label{display:inline-flex;align-items:center;gap:6px;color:#536b80;font-size:13px;cursor:pointer}.tax-refund-file-toolbar input,.tax-refund-file-row input{width:16px;height:16px;flex:0 0 auto}.tax-refund-file-list{display:grid;gap:8px;width:100%;max-width:none;margin:0;padding:14px 18px 20px}.tax-refund-file-row{display:grid;grid-template-columns:22px 34px minmax(0,1fr) 56px;align-items:center;gap:10px;width:100%;padding:11px 13px;border:1px solid #dfe9f1;border-radius:9px;background:#fff}.tax-refund-file-row>span:first-of-type{display:grid;place-items:center;width:34px;height:26px;border-radius:7px;background:#e7f1ff;color:#1478df;font-weight:900}.tax-refund-file-row b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#344f63}.tax-refund-file-row button{width:56px;white-space:nowrap;text-align:center}.tax-refund-append{width:100%;padding:10px;border:1px dashed #a9c9e8;border-radius:8px;background:#f8fbfd;color:#52708a;text-align:center;cursor:pointer}.tax-refund-append:hover,.tax-refund-append.is-dragging{border-color:#1478df;background:#eef7ff;color:#1478df}@media(max-width:720px){.tax-refund-file-toolbar{align-items:flex-start;flex-wrap:wrap}.tax-refund-file-toolbar>div{width:100%}.tax-refund-file-row{grid-template-columns:22px 30px minmax(0,1fr) 48px;padding:10px}.tax-refund-file-row button{width:48px}}

/* Final invoice-batch file scrolling override. */
.invoice-batch-file-list{max-height:310px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.invoice-batch-file-list::-webkit-scrollbar{width:11px}.invoice-batch-file-list::-webkit-scrollbar-track{background:#edf2f7}.invoice-batch-file-list::-webkit-scrollbar-thumb{border:2px solid #edf2f7;border-radius:8px;background:#8797a8}.invoice-batch-file-list::-webkit-scrollbar-thumb:hover{background:#667b8e}@media(max-height:760px){.invoice-batch-file-list{max-height:270px}}@media(max-width:720px){.invoice-batch-file-list{max-height:280px}}

/* Tax-refund file steps share invoice-batch file manager layout. */
.tax-refund-panel.tax-refund-file-step>.tax-refund-panel-head,.tax-refund-panel.tax-refund-file-step>.tax-refund-footer{display:none}.tax-refund-panel.tax-refund-file-step .tax-refund-body{min-height:0;max-height:none;overflow:hidden;background:#fff}.tax-refund-file-toolbar{display:flex;align-items:center;gap:12px;width:100%;padding:16px 20px;border-bottom:1px solid #e3ebf2;background:#fff}.tax-refund-file-toolbar>div{display:flex;align-items:center;gap:12px;margin-right:auto}.tax-refund-file-toolbar b{font-size:17px}.tax-refund-file-toolbar span{margin:0}.tax-refund-file-toolbar label{white-space:nowrap}.tax-refund-file-toolbar button{white-space:nowrap}.tax-refund-file-list{display:grid;gap:8px;width:100%;max-width:none;max-height:310px;margin:0;padding:14px 18px 20px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;background:#fbfdff}.tax-refund-file-row{display:grid;grid-template-columns:22px 34px minmax(0,1fr) auto 56px;align-items:center;gap:10px;width:100%;padding:10px 12px}.tax-refund-file-row small{color:#7a8d9d;white-space:nowrap}.tax-refund-file-list::-webkit-scrollbar{width:11px}.tax-refund-file-list::-webkit-scrollbar-track{background:#edf2f7}.tax-refund-file-list::-webkit-scrollbar-thumb{border:2px solid #edf2f7;border-radius:8px;background:#8797a8}.tax-refund-file-list::-webkit-scrollbar-thumb:hover{background:#667b8e}@media(max-height:760px){.tax-refund-file-list{max-height:270px}}@media(max-width:720px){.tax-refund-file-toolbar{align-items:flex-start;flex-wrap:wrap}.tax-refund-file-toolbar>div{width:100%}.tax-refund-file-list{max-height:280px}.tax-refund-file-row{grid-template-columns:22px 30px minmax(0,1fr) 48px}.tax-refund-file-row small{display:none}}

/* Expanded tax-refund workspace after files are uploaded. */
.tax-refund-content{min-height:calc(100vh - 126px)}.tax-refund-steps{min-height:82px;border-radius:15px;box-shadow:0 7px 24px rgba(35,75,105,.07)}.tax-refund-step{min-height:82px;padding:16px 18px}.tax-refund-step>span{flex-basis:32px;height:32px}.tax-refund-step b{font-size:14px}.tax-refund-step small{font-size:12px}.tax-refund-panel.tax-refund-file-step{border-radius:15px;box-shadow:0 10px 30px rgba(35,75,105,.08)}.tax-refund-file-toolbar{min-height:74px;padding:18px 24px}.tax-refund-file-toolbar b{font-size:19px}.tax-refund-file-toolbar span{font-size:13px}.tax-refund-file-toolbar button{min-height:42px;padding:0 18px}.tax-refund-file-row{min-height:54px;padding:12px 16px;border-radius:10px}.tax-refund-file-row b{font-size:15px}.tax-refund-panel.tax-refund-file-step.tax-refund-has-files{height:100%;min-height:0}.tax-refund-panel.tax-refund-file-step.tax-refund-has-files .tax-refund-body{height:100%}.tax-refund-panel.tax-refund-file-step.tax-refund-has-files .tax-refund-file-list{height:calc(100% - 74px);max-height:none;align-content:start;padding:16px 20px 24px}.tax-refund-panel.tax-refund-file-step:not(.tax-refund-has-files) .tax-refund-file-list{min-height:78px;max-height:none}.tax-refund-empty-import{min-height:58px;font-size:14px}@media(max-height:800px){.tax-refund-panel.tax-refund-file-step.tax-refund-has-files{height:100%;min-height:0}}@media(max-width:720px){.tax-refund-content{min-height:auto}.tax-refund-panel.tax-refund-file-step.tax-refund-has-files{height:calc(100vh - 260px);min-height:380px}.tax-refund-file-toolbar{min-height:0;padding:15px}.tax-refund-panel.tax-refund-file-step.tax-refund-has-files .tax-refund-file-list{height:calc(100% - 120px)}}

/* Keep top workflow navigation at original compact size. */
body.tax-refund-active{height:100vh;overflow:hidden}body.tax-refund-active .app{height:100vh;min-height:0}body.tax-refund-active main{display:grid;height:100vh;min-height:0;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.tax-refund-content{height:100%;min-height:0;padding:10px 12px;grid-template-rows:72px minmax(0,1fr);align-content:stretch;gap:8px;overflow:hidden}.tax-refund-steps{height:72px;min-height:72px;border-radius:13px;box-shadow:none}.tax-refund-step{height:72px;min-height:72px;padding:13px}.tax-refund-step>span{flex-basis:28px;height:28px}.tax-refund-step b{font-size:13px}.tax-refund-step small{font-size:11px}

/* Tax-refund file-step heading. */
.tax-refund-file-toolbar>.tax-refund-file-heading{display:grid;grid-template-columns:auto auto;align-items:end;gap:5px 12px}.tax-refund-file-heading>em{grid-column:1/-1;color:#138568;font-size:13px;font-style:normal;font-weight:900}.tax-refund-file-heading>div{display:flex;align-items:baseline;gap:12px}.tax-refund-file-heading>small{grid-column:1/-1;color:#74899a;font-size:12px}.tax-refund-file-heading b{font-size:19px}.tax-refund-file-heading span{font-size:13px}

/* Keep every tax-refund step header same height. */
.tax-refund-panel-head,.tax-refund-file-toolbar{height:auto;min-height:0;padding:16px 22px}.tax-refund-panel.tax-refund-file-step.tax-refund-has-files .tax-refund-file-list{height:calc(100% - 110px)}

/* Legacy-style invoice project editor. */
.invoice-batch-project-editor{padding:14px 34px 0;background:rgba(25,48,64,.48)}
.invoice-batch-project-editor>section{position:static;width:100%;height:calc(100vh - 14px);display:grid;grid-template-rows:150px minmax(0,1fr);overflow:hidden;border:1px solid #d2dee7;border-radius:0 14px 0 0;background:#fff;box-shadow:0 24px 70px rgba(10,31,47,.28)}
.invoice-batch-project-editor>section>header{padding:34px 60px;border-bottom:1px solid #d7e2ea;background:#fff}
.invoice-batch-project-editor h2{font-size:34px;line-height:1.1}
.invoice-batch-project-editor p{margin-top:8px;font-size:18px}
.invoice-batch-project-editor>section>header button{width:56px;height:56px;border-color:#a9cceb;border-radius:10px;background:#f4faff;font-size:30px;cursor:pointer}
.invoice-batch-project-editor form{grid-template-rows:minmax(0,1fr) 104px;min-height:0}
.project-editor-body{grid-template-columns:58% 42%;min-height:0;overflow:hidden}
.project-editor-fields{display:block;padding:32px 60px 40px;overflow-y:auto;overscroll-behavior:contain;border-right:1px solid #d7e2ea;background:#fff}
.project-editor-fields>label{display:grid;gap:10px;margin-bottom:24px;font-size:18px}
.project-editor-fields>label>span,.project-editor-grid label>span,.project-editor-grid legend{color:#35546a;font-size:18px;font-weight:800}
.project-editor-fields input,.project-editor-fields select,.project-editor-tax input{height:58px;padding:0 18px;border:1px solid #9dc7ea;border-radius:6px;color:#243f53;font-size:18px}
.project-editor-fields input::placeholder,.project-editor-tax input::placeholder{color:#8a8f94;font-weight:700}
.project-editor-grid{grid-template-columns:1fr 1fr;gap:24px 34px}
.project-editor-grid>label{gap:10px}
.project-editor-grid fieldset{min-height:88px;align-content:start;flex-wrap:wrap;gap:18px 24px}
.project-editor-grid legend{width:100%;margin-bottom:10px}
.project-editor-grid fieldset label{gap:8px;font-size:17px}
.project-editor-grid fieldset input{width:22px;height:22px;padding:0}
.project-editor-tax{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;overflow:hidden;background:#fbfdff}
.project-editor-tax>header{position:relative;padding:34px 40px 24px;border-bottom:1px solid #d7e2ea;background:#fff}
.project-editor-tax>header>div{margin-bottom:18px}
.project-editor-tax b{font-size:25px}
.project-editor-tax span{font-size:16px}
.project-editor-tax #invoiceBatchTaxCodeResults{align-content:start;gap:10px;padding:22px 36px 36px;overflow-y:auto;overscroll-behavior:contain}
.project-editor-tax #invoiceBatchTaxCodeResults button{min-height:58px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;padding:10px 16px;border-color:#cbdce9;border-radius:7px}
.project-editor-tax #invoiceBatchTaxCodeResults button::before{content:'▶';display:grid;place-items:center;width:34px;height:34px;border:1px solid #c5d9e8;border-radius:6px;color:#41677f;font-size:15px}
.project-editor-tax #invoiceBatchTaxCodeResults b{font-size:17px}
.project-editor-tax #invoiceBatchTaxCodeResults span{font-size:14px}
.project-editor-tax #invoiceBatchTaxCodeResults small{grid-column:2/-1}
.invoice-batch-project-editor form>footer{grid-template-columns:1fr 1fr;gap:20px;padding:20px 60px;border-top:1px solid #d7e2ea;background:#fff}
.invoice-batch-project-editor form>footer button{min-height:62px;border-radius:8px;font-size:21px}
@media(max-width:1000px){.invoice-batch-project-editor{padding:4px}.invoice-batch-project-editor>section{height:calc(100vh - 4px);grid-template-rows:120px minmax(0,1fr)}.invoice-batch-project-editor>section>header{padding:24px}.project-editor-body{grid-template-columns:1fr}.project-editor-fields{padding:24px;border-right:0;border-bottom:1px solid #d7e2ea}.project-editor-tax{max-height:42vh}.invoice-batch-project-editor form>footer{padding:16px 24px}}
@media(max-width:720px){.invoice-batch-project-editor>section{grid-template-rows:108px minmax(0,1fr)}.invoice-batch-project-editor h2{font-size:26px}.invoice-batch-project-editor p{font-size:13px}.project-editor-grid{grid-template-columns:1fr}.invoice-batch-project-editor form>footer{gap:10px;padding:12px}.invoice-batch-project-editor form>footer button{min-height:50px;font-size:17px}}.project-editor-fields::-webkit-scrollbar,.project-editor-tax #invoiceBatchTaxCodeResults::-webkit-scrollbar{width:11px}.project-editor-fields::-webkit-scrollbar-track,.project-editor-tax #invoiceBatchTaxCodeResults::-webkit-scrollbar-track{background:#edf2f6}.project-editor-fields::-webkit-scrollbar-thumb,.project-editor-tax #invoiceBatchTaxCodeResults::-webkit-scrollbar-thumb{border:2px solid #edf2f6;border-radius:8px;background:#8b9298}.project-editor-fields select{appearance:auto}.invoice-batch-project-editor form>footer .primary{border-color:#1478df;background:#1478df;color:#fff}.invoice-batch-project-editor form>footer .ghost{border-color:#c8d9e6;background:#fff;color:#17384f}
/* Exact legacy invoice-project editor layout. */
.invoice-batch-project-editor{padding:3px 16px 0;background:rgba(27,48,63,.46)}
.invoice-batch-project-editor>section{height:calc(100vh - 3px);grid-template-rows:132px minmax(0,1fr);border-radius:0;background:#fff}
.invoice-batch-project-editor>section>header{padding:26px 42px}
.invoice-batch-project-editor h2{font-size:30px;line-height:1}
.invoice-batch-project-editor p{margin-top:9px;font-size:17px}
.invoice-batch-project-editor>section>header button{width:48px;height:48px;border-radius:8px;font-size:27px}
.invoice-batch-project-editor form{grid-template-rows:minmax(0,1fr) 94px}
.project-editor-body{grid-template-columns:56% 44%}
.project-editor-fields{padding:32px 52px 46px}
.project-editor-fields>label{gap:8px;margin-bottom:18px;font-size:16px}
.project-editor-fields>label>span,.project-editor-grid label>span,.project-editor-grid legend{font-size:16px}
.project-editor-fields input,.project-editor-fields select,.project-editor-tax input{height:52px;padding:0 14px;border-color:#8fc2ed;border-radius:5px;font-size:17px}
.project-editor-grid{grid-template-columns:1fr 1fr;gap:20px 28px;margin-top:2px}
.project-editor-grid fieldset{min-height:70px;gap:14px 18px}
.project-editor-grid legend{margin-bottom:8px}
.project-editor-grid fieldset label{font-size:16px}
.project-editor-grid fieldset input{width:20px;height:20px}
.project-editor-tax{background:#f8fbfd}
.project-editor-tax>header{padding:32px 42px 26px}
.project-editor-tax>header>div{gap:12px;margin-bottom:18px}
.project-editor-tax b{font-size:23px}
.project-editor-tax span{font-size:15px}
.project-editor-tax #invoiceBatchTaxCodeResults{display:block;padding:20px 32px 38px;background:#fff}
.project-tax-tree-node{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:start;margin:0;padding-left:calc(var(--tree-depth) * 22px)}
.project-tax-tree-toggle{display:grid;place-items:center;width:30px;height:42px;padding:0;border:0;background:transparent;color:#566576;font-size:20px;cursor:pointer}
.project-tax-tree-toggle:disabled{opacity:.45;cursor:default}
.project-tax-tree-label{display:flex!important;align-items:center;justify-content:space-between;gap:18px;min-height:42px!important;padding:5px 4px!important;border:0!important;border-radius:0!important;background:transparent!important;text-align:left;cursor:pointer}
.project-tax-tree-label::before{display:none!important;content:none!important}
.project-tax-tree-label:hover{color:#1478df;background:transparent!important}
.project-tax-tree-label b{font-size:17px!important;color:#1d2f3f}
.project-tax-tree-label span{font-size:13px!important;color:#1478df;font-family:Consolas,monospace}
.project-tax-tree-label small{display:none}
.project-tax-tree-children{grid-column:1/-1}
.invoice-batch-project-editor form>footer{gap:16px;padding:18px 42px}
.invoice-batch-project-editor form>footer button{min-height:58px;border-radius:5px;font-size:20px}
@media(max-width:1000px){.invoice-batch-project-editor{padding:3px}.invoice-batch-project-editor>section{height:calc(100vh - 3px)}.invoice-batch-project-editor>section>header{padding:22px 26px}.project-editor-fields{padding:24px 28px}.project-editor-tax>header{padding:24px 28px}.project-editor-tax #invoiceBatchTaxCodeResults{padding:18px 24px}.invoice-batch-project-editor form>footer{padding:14px 28px}}.project-editor-fields>label>span::first-letter{color:#e33d4f}.project-editor-fields input:focus,.project-editor-fields select:focus,.project-editor-tax input:focus{border-color:#1478df;outline:2px solid rgba(20,120,223,.35);outline-offset:2px}.project-editor-tax #invoiceBatchTaxCodeResults:empty::before{content:'暂无编码数据';display:block;padding:20px;color:#8797a5}.project-editor-tax #invoiceBatchTaxCodeResults{min-height:100%;border-top:0}.invoice-batch-project-editor form>footer{background:#fff}
/* Legacy drawer occupies 10/16 viewport; background keeps 6/16. */
.invoice-batch-project-editor{padding:3px 0 0;background:rgba(27,48,63,.46)}
.invoice-batch-project-editor>section{position:absolute;inset:3px 0 0 37.5%;width:62.5%;height:calc(100vh - 3px);border-left:1px solid #cbd9e3;box-shadow:-18px 0 48px rgba(10,31,47,.24)}
.invoice-batch-project-editor>section>header{padding:24px 28px}
.project-editor-body{grid-template-columns:60% 40%}
.project-editor-fields{padding:28px 32px 40px}
.project-editor-tax>header{padding:28px 28px 24px}
.project-editor-tax #invoiceBatchTaxCodeResults{padding:18px 24px 34px}
.invoice-batch-project-editor form>footer{padding:16px 28px}
@media(max-width:1200px){.invoice-batch-project-editor>section{left:24%;width:76%}.project-editor-body{grid-template-columns:58% 42%}}
@media(max-width:780px){.invoice-batch-project-editor>section{left:0;width:100%}}
/* Exact values ported from python_app/web/css/tools.css. */
.invoice-batch-project-editor{display:flex;align-items:stretch;justify-content:flex-end;padding:0;background:rgba(8,16,28,.55)}
.invoice-batch-project-editor>section{position:relative;inset:auto;width:min(980px,62vw);min-width:min(760px,100vw);height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);border:0;border-left:1px solid #dde5ef;border-radius:0;background:#fff;box-shadow:-18px 0 46px rgba(13,31,55,.2)}
.invoice-batch-project-editor>section>header{min-height:72px;padding:0 22px;border-bottom:1px solid #e4eaf2}
.invoice-batch-project-editor h2{margin:0;color:#22334a;font-size:18px;line-height:normal}
.invoice-batch-project-editor p{margin:5px 0 0;color:#7c899a;font-size:12px}
.invoice-batch-project-editor>section>header button{width:36px;height:36px;border:1px solid #c6dcf6;border-radius:4px;background:#fbfdff;color:#1769c2;font-size:22px}
.invoice-batch-project-editor form{grid-template-rows:minmax(0,1fr) auto}
.project-editor-body{grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);gap:0;overflow:hidden}
.project-editor-fields{display:grid;align-content:start;gap:14px;padding:22px 28px 26px;overflow:auto;border-right:1px solid #edf1f6}
.project-editor-fields>label{gap:6px;margin:0;color:#536277;font-size:13px;font-weight:700}
.project-editor-fields>label>span,.project-editor-grid label>span,.project-editor-grid legend{color:#405267;font-size:13px;font-weight:700;line-height:1.3}
.project-editor-fields input,.project-editor-fields select,.project-editor-tax input{height:36px;min-height:36px;padding:0 10px;border:1px solid #d9e2ec;border-radius:3px;background:#fff;color:#26384d;font-size:13px;font-weight:400;box-shadow:none}
.project-editor-fields input:focus,.project-editor-fields select:focus,.project-editor-tax input:focus{border-color:#2b8bf2;outline:0;box-shadow:0 0 0 2px rgba(43,139,242,.14)}
.project-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px;margin:0;align-items:end}
.project-editor-grid>label{gap:6px;color:#536277;font-size:13px;font-weight:700}
.project-editor-grid fieldset{min-height:0;display:grid;gap:8px;margin:0;padding:0;border:0;color:#536277;font-size:13px;font-weight:700}
.project-editor-grid legend{width:auto;margin:0}
.project-editor-grid fieldset label{display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;padding:0;color:#344963;font-size:13px;font-weight:400;line-height:1;white-space:nowrap}
.project-editor-grid fieldset input{width:15px;height:15px;min-height:0;margin:0;padding:0;accent-color:#1f7fe8}
.project-editor-tax{grid-template-rows:auto minmax(0,1fr);border-left:0;background:#f7f9fc}
.project-editor-tax>header{position:relative;padding:20px 24px 18px;border-bottom:1px solid #e6ebf2;background:#fff}
.project-editor-tax>header>div{display:flex;align-items:baseline;gap:8px;margin-bottom:12px}
.project-editor-tax b{color:#22334a;font-size:18px}
.project-editor-tax span{color:#7c899a;font-size:12px}
.project-editor-tax #invoiceBatchTaxCodeResults{display:block;min-height:0;height:100%;padding:12px 16px 18px;overflow:auto;background:#fff}
.project-tax-tree-node{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;margin:0;padding-left:calc(var(--tree-depth) * 10px)}
.project-tax-tree-toggle{width:24px;height:32px;display:grid;place-items:center;padding:0;border:0;background:transparent;color:#4e5867;font-size:14px}
.project-tax-tree-label{width:100%;min-height:32px!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;margin:0;padding:4px 6px!important;border:0!important;border-radius:4px!important;background:#fff!important;box-shadow:none;text-align:left}
.project-tax-tree-label::before{display:none!important;content:none!important}
.project-tax-tree-label:hover{background:#f7f9fc!important}
.project-tax-tree-label b{color:#26303d;font-size:13px!important;font-weight:700;line-height:1.2}
.project-tax-tree-label span{color:#1769c2;font-size:12px!important;font-family:Consolas,monospace}
.project-tax-tree-children{grid-column:1/-1;margin-top:3px}
.invoice-batch-project-editor form>footer{display:flex;align-items:center;gap:10px;padding:16px 22px;border-top:1px solid #e4eaf2;background:#fff}
.invoice-batch-project-editor form>footer button{flex:1;min-height:34px;height:34px;border-radius:4px;font-size:14px;font-weight:800}
@media(max-width:1100px){.invoice-batch-project-editor>section{width:100vw;min-width:0;height:100%}.project-editor-grid{grid-template-columns:minmax(0,1fr)}.project-editor-fields{border-right:0;border-bottom:1px solid #edf1f6}.project-editor-body{grid-template-columns:1fr}.project-editor-tax{max-height:42vh}}.project-editor-unit-control{min-height:36px;display:grid;grid-template-columns:minmax(0,1fr) 36px;border:1px solid #d9e2ec;border-radius:3px;background:#fff;overflow:hidden}.project-editor-unit-control:focus-within{border-color:#2b8bf2;box-shadow:0 0 0 2px rgba(43,139,242,.14)}.project-editor-fields .project-editor-unit-control input{height:34px;min-height:34px;border:0;border-radius:0;box-shadow:none}.project-editor-unit-control button{width:36px;min-height:34px;display:grid;place-items:center;border:0;border-left:1px solid #e4eaf2;background:#f9fbfe}.project-editor-unit-control i{width:9px;height:9px;border-right:2px solid #42566f;border-bottom:2px solid #42566f;transform:translateY(-2px) rotate(45deg)}
/* Remove legacy broad button rules from tax tree controls. */
.project-editor-tax #invoiceBatchTaxCodeResults .project-tax-tree-toggle{display:grid!important;grid-template-columns:none!important;place-items:center!important;width:24px!important;min-width:24px!important;height:32px!important;min-height:32px!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#4e5867!important;font-size:14px!important;line-height:1!important}
.project-editor-tax #invoiceBatchTaxCodeResults .project-tax-tree-toggle::before{display:none!important;content:none!important}
.project-editor-tax #invoiceBatchTaxCodeResults .project-tax-tree-label{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;width:100%!important;min-width:0!important;min-height:32px!important;margin:0!important;padding:4px 6px!important;border:0!important;border-radius:4px!important;background:#fff!important;box-shadow:none!important}
.project-editor-tax #invoiceBatchTaxCodeResults .project-tax-tree-label::before{display:none!important;content:none!important}
.project-editor-tax #invoiceBatchTaxCodeResults .project-tax-tree-label b{min-width:0!important;font-size:13px!important;line-height:1.2!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.project-editor-tax #invoiceBatchTaxCodeResults .project-tax-tree-label span{font-size:12px!important;white-space:nowrap!important}
/* Keep project-editor radio choices on one row. */
.project-editor-grid fieldset{display:flex!important;align-items:flex-start!important;align-content:flex-start!important;flex-wrap:wrap!important;column-gap:16px!important;row-gap:8px!important}
.project-editor-grid fieldset legend{flex:0 0 100%!important;width:100%!important}
.project-editor-grid fieldset label{display:inline-flex!important;flex:0 0 auto!important;width:auto!important}.project-editor-unit-combobox{position:relative;min-width:0}.project-editor-unit-menu{position:absolute;left:0;right:0;bottom:calc(100% + 4px);z-index:20;border:1px solid #cfdceb;border-radius:3px;background:#fff;box-shadow:0 -14px 28px rgba(21,48,82,.16);overflow:hidden}.project-editor-unit-list{max-height:248px;overflow:auto;padding:4px;scrollbar-color:#8da4bc #eef3f8;scrollbar-width:thin}.project-editor-unit-list::-webkit-scrollbar{width:8px}.project-editor-unit-list::-webkit-scrollbar-track{background:#eef3f8}.project-editor-unit-list::-webkit-scrollbar-thumb{border-radius:999px;background:#8da4bc}.project-editor-unit-list button{width:100%;min-height:32px;display:flex;align-items:center;padding:0 10px;border:0;border-radius:2px;background:transparent;color:#1f334d;font-size:13px;text-align:left}.project-editor-unit-list button:hover{background:#edf6ff;color:#1769c2}.project-editor-unit-empty{padding:12px 10px;color:#7f8da1;font-size:13px;text-align:center}.project-editor-unit-combobox.is-open .project-editor-unit-control i{transform:translateY(2px) rotate(225deg)}
/* Real electronic-invoice proportions: 595.2756 × 396.8504 pt, rendered at 2×. */
.customs-invoice-preview-paper-wrap{width:calc(1190px * var(--invoice-preview-scale,1));min-height:calc(794px * var(--invoice-preview-scale,1))}
.customs-invoice-paper.customs-invoice-paper-real{box-sizing:border-box;width:1190px;min-width:1190px;height:794px;min-height:794px;padding:14px 42px 16px;border-radius:0;font-size:15px;line-height:1.2}
.customs-invoice-paper-real .customs-invoice-paper-head{grid-template-columns:132px minmax(0,1fr) 286px;min-height:116px;gap:18px;margin-bottom:3px}
.customs-invoice-paper-real .customs-invoice-qr{width:102px;height:102px;margin:8px 0 0 10px;background:#fff;text-shadow:none}
.customs-invoice-paper-real .customs-invoice-qr img{display:block;width:100%;height:100%;object-fit:contain}
.customs-invoice-paper-real .customs-invoice-title-wrap{position:absolute;top:0;left:50%;z-index:1;width:560px;padding-top:9px;transform:translateX(-50%)}
.customs-invoice-paper-real .customs-invoice-qr,.customs-invoice-paper-real .customs-invoice-meta{position:relative;z-index:2}
.customs-invoice-paper-real .customs-invoice-title{font-family:"SimSun","FangSong",serif;font-size:31px;letter-spacing:2px}
.customs-invoice-paper-real .customs-invoice-title-rule{width:420px;height:6px;margin-top:10px;border-top-width:2px;border-bottom-width:1px}
.customs-invoice-paper-real .customs-invoice-stamp{top:43px;left:56%;width:196px;height:84px;border-width:5px;font-size:20px;transform:translate(-50%,-50%) rotate(-4deg)}
.customs-invoice-paper-real .customs-invoice-stamp small{margin-top:-13px;font-size:12px}
.customs-invoice-paper-real .customs-invoice-meta{display:grid!important;grid-template-columns:1fr!important;grid-auto-flow:row!important;align-content:start;gap:11px;padding-top:21px;font-size:16px}
.customs-invoice-paper-real .customs-invoice-meta p{display:block!important;width:100%;margin:0!important;white-space:nowrap}
.customs-invoice-paper-real .customs-invoice-tax-board{height:626px}
.customs-invoice-paper-real .customs-invoice-party-row{grid-template-columns:31px minmax(0,1fr) 31px minmax(0,1fr);min-height:100px;height:100px}
.customs-invoice-paper-real .customs-invoice-side-label{padding:5px 0;font-size:15px}
.customs-invoice-paper-real .customs-invoice-info-block{min-height:100px;padding:19px 10px 18px}
.customs-invoice-paper-real .customs-invoice-lines{font-size:14px}
.customs-invoice-paper-real .customs-invoice-lines th,.customs-invoice-paper-real .customs-invoice-lines td{height:24px;padding:2px 3px}
.customs-invoice-paper-real .customs-invoice-lines th{height:28px}
.customs-invoice-paper-real .customs-invoice-lines tbody{height:302px}
.customs-invoice-paper-real .customs-invoice-lines tfoot td{height:32px}
.customs-invoice-paper-real .customs-invoice-total{grid-template-columns:278px minmax(0,1fr) 330px;height:42px;min-height:42px}
.customs-invoice-paper-real .customs-invoice-total span,.customs-invoice-paper-real .customs-invoice-total b{padding:10px 12px 0;font-size:15px}
.customs-invoice-paper-real .customs-invoice-remark{grid-template-columns:31px minmax(0,1fr);min-height:94px;height:94px}
.customs-invoice-paper-real .customs-invoice-remark>div:last-child{padding:7px 10px}
.customs-invoice-paper-real .customs-invoice-footer{padding:12px 0 0 78px;font-size:15px}

/* PDF-coordinate layout. Every position below is source PDF coordinate × 2. */
@font-face{font-family:"InvoiceFangSong";src:url("/assets/simfang.ttf") format("truetype");font-display:swap}
.customs-invoice-paper.customs-invoice-paper-real{--invoice-red:#800000;--invoice-text:#000;position:absolute;width:1190.5512px;min-width:1190.5512px;height:793.7008px;min-height:793.7008px;padding:0;overflow:hidden;background:#fff;color:#000;font-family:"InvoiceFangSong","FangSong","SimSun",serif;font-size:16px;line-height:1}
.customs-invoice-paper-real .customs-invoice-paper-head{position:absolute;inset:0 0 auto 0;display:block;width:100%;height:170.08px;min-height:170.08px;margin:0}
.customs-invoice-paper-real .customs-invoice-qr{position:absolute;top:12px;left:34px;width:116px;height:116px;margin:0}
.customs-invoice-paper-real .customs-invoice-title-wrap{position:absolute;top:25.38px;left:50%;width:540px;padding:0;transform:translateX(-50%)}
.customs-invoice-paper-real .customs-invoice-title{font-family:"InvoiceFangSong","FangSong",serif;font-size:36px;line-height:40.1px;letter-spacing:0;font-weight:400}
.customs-invoice-paper-real .customs-invoice-title-rule{position:absolute;top:56.68px;left:62.17px;width:413.84px;height:5.66px;margin:0;border-top:1.42px solid var(--invoice-red);border-bottom:1.42px solid var(--invoice-red)}
.customs-invoice-paper-real .customs-invoice-stamp{top:66px;left:50%;width:168px;height:92px;border-width:5px;color:rgba(220,0,0,.55);font-size:15px;transform:translate(-50%,-50%) rotate(0deg)}
.customs-invoice-paper-real .customs-invoice-stamp small{margin-top:-10px;font-size:11px}
.customs-invoice-paper-real .customs-invoice-meta{position:absolute;top:43.38px;right:46.8px;display:grid!important;width:268px;gap:15.34px;padding:0;font-size:16px;line-height:18px}
.customs-invoice-paper-real .customs-invoice-tax-board{position:absolute;top:130.08px;left:25.52px;box-sizing:border-box;width:1139.5px;height:592.92px;border-width:1.42px}
.customs-invoice-paper-real .customs-invoice-party-row{grid-template-columns:35.14px 535.74px 34.02px 531.76px;height:124.74px;min-height:124.74px;border-bottom-width:1.42px}
.customs-invoice-paper-real .customs-invoice-side-label{padding:0;border-right-width:1.42px;font-size:16px;line-height:19.84px}
.customs-invoice-paper-real .customs-invoice-info-block{box-sizing:border-box;height:124.74px;min-height:124.74px;padding:20px 12px 18px;border-right-width:1.42px;font-size:16px}
.customs-invoice-paper-real .customs-invoice-info-block p{line-height:24px}
.customs-invoice-paper-real .customs-invoice-lines{display:table;height:294.44px;font-size:15px;line-height:16px}
.customs-invoice-paper-real .customs-invoice-lines thead{height:31px}
.customs-invoice-paper-real .customs-invoice-lines tbody{height:235px}
.customs-invoice-paper-real .customs-invoice-lines tfoot{height:28.44px}
.customs-invoice-paper-real .customs-invoice-lines th,.customs-invoice-paper-real .customs-invoice-lines td{height:auto;padding:1px 2px;font-weight:400}
.customs-invoice-paper-real .customs-invoice-lines th{height:31px}
.customs-invoice-paper-real .customs-invoice-lines tbody tr{height:20px}
.customs-invoice-paper-real .customs-invoice-lines tbody tr:not(.customs-invoice-lines-spacer){height:20px;max-height:20px}
.customs-invoice-paper-real .customs-invoice-lines tbody tr:not(.customs-invoice-lines-spacer) td{height:20px;max-height:20px;padding-top:0;padding-bottom:0;vertical-align:middle}
.customs-invoice-paper-real .customs-invoice-lines tbody .customs-invoice-lines-spacer{height:100%}
.customs-invoice-paper-real .customs-invoice-lines tbody .customs-invoice-lines-spacer td{height:100%;padding:0}
.customs-invoice-paper-real .customs-invoice-lines tfoot td{height:28.44px;border-top-width:1.42px}
.customs-invoice-paper-real .customs-invoice-total{grid-template-columns:294.78px minmax(0,1fr) 330px;height:45.34px;min-height:45.34px;border-top-width:1.42px}
.customs-invoice-paper-real .customs-invoice-total span,.customs-invoice-paper-real .customs-invoice-total b{box-sizing:border-box;padding:13px 12px 0;border-right-width:1.42px;font-size:16px;font-weight:400}
.customs-invoice-paper-real .customs-invoice-remark{grid-template-columns:35.14px minmax(0,1fr);height:68.4px;min-height:68.4px;border-top-width:1.42px}
.customs-invoice-paper-real .customs-invoice-remark>div:last-child{padding:6px 4px;font-size:16px;line-height:18px}
.customs-invoice-paper-real .customs-invoice-footer{position:absolute;top:755.8px;left:110.7px;padding:0;font-size:16px;line-height:18px}
.customs-invoice-pages-portrait .customs-invoice-preview-paper-wrap{min-height:calc(1637px * var(--invoice-preview-scale,1))}
.customs-invoice-pages-portrait .customs-invoice-paper-real{height:1637px;min-height:1637px}
.customs-invoice-pages-portrait .customs-invoice-paper-real .customs-invoice-tax-board{height:1090px}
.customs-invoice-pages-portrait .customs-invoice-paper-real .customs-invoice-lines{height:807px;font-size:13px;line-height:15px}
.customs-invoice-pages-portrait .customs-invoice-paper-real .customs-invoice-lines thead{height:31px}
.customs-invoice-pages-portrait .customs-invoice-paper-real .customs-invoice-lines tbody{height:748px}
.customs-invoice-pages-portrait .customs-invoice-paper-real .customs-invoice-lines tbody tr{height:15px}
.customs-invoice-pages-portrait .customs-invoice-paper-real .customs-invoice-lines th,.customs-invoice-pages-portrait .customs-invoice-paper-real .customs-invoice-lines td{padding:1px 2px}
.customs-invoice-pages-portrait .customs-invoice-paper-real .customs-invoice-lines td:nth-child(2){white-space:normal;line-height:14px}
.customs-invoice-pages-portrait .customs-invoice-paper-real .customs-invoice-total{height:45px;min-height:45px}
.customs-invoice-pages-portrait .customs-invoice-paper-real .customs-invoice-remark{height:112px;min-height:112px}
.customs-invoice-pages-portrait .customs-invoice-paper-real .customs-invoice-footer{top:1510px}
.invoice-preview-card .invoice-card-side{grid-template-columns:1fr 1fr}.invoice-preview-card [data-invoice-preview-edit]{grid-column:1/-1}#invoiceSpecEditor.modal{z-index:1000!important;isolation:isolate}#invoiceSpecEditor>.invoice-spec-dialog{position:relative;z-index:1001;display:grid!important;grid-template-rows:88px minmax(0,1fr) 76px!important;width:min(720px,calc(100vw - 32px));height:min(520px,calc(100vh - 80px))!important;min-height:380px;max-height:none!important;overflow:hidden!important}.invoice-spec-dialog>header,.invoice-spec-dialog>footer{position:static!important;z-index:auto;box-sizing:border-box;margin:0;background:#fff}.invoice-spec-dialog>header{height:88px;padding:18px 20px}.invoice-spec-editor-rows{display:grid;align-content:start;gap:16px;min-width:0;min-height:0!important;height:auto!important;max-height:none!important;margin:0;padding:20px 24px 32px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;background:#fff}.invoice-spec-editor-rows label{display:grid;gap:9px;min-height:74px;color:#3c5669;font-weight:700}.invoice-spec-editor-rows input{display:block;box-sizing:border-box;width:100%;height:46px!important;min-height:46px!important;margin:0;padding:0 12px;border:1px solid #8fb9da;border-radius:6px;background:#fff;font-size:15px}.invoice-spec-dialog>footer{display:flex!important;align-items:center;justify-content:flex-end;gap:10px;height:76px;padding:16px 24px;border-top:1px solid #e0e8ef;background:#f8fbfd}
.invoice-spec-editor-rows input[aria-invalid=true]{border-color:#d14a4a;outline:3px solid rgba(209,74,74,.12)}#invoiceSpecEditor.is-batch>.invoice-spec-dialog{width:min(580px,calc(100vw - 32px));height:min(470px,calc(100vh - 64px))!important}.invoice-spec-batch-form{display:grid;gap:22px;padding:8px 4px}.invoice-spec-batch-impact{display:grid;grid-template-columns:auto auto 1px auto auto;align-items:baseline;justify-content:center;gap:8px;padding:20px;border:1px solid #cfe0ef;border-radius:10px;background:#f4f9fd;color:#536c80}.invoice-spec-batch-impact b{color:#1478df;font-size:30px}.invoice-spec-batch-impact i{width:1px;height:30px;margin:0 14px;background:#c9d9e6}.invoice-spec-batch-form label>span{display:flex;align-items:center;justify-content:space-between}.invoice-spec-batch-form label>span i{padding:2px 7px;border-radius:10px;background:#eef4f8;color:#60778b;font-size:11px;font-style:normal}.invoice-spec-batch-form p,.invoice-spec-batch-form small{margin:0;font-size:12px}.invoice-spec-batch-form p{color:#718698;line-height:1.6}.invoice-spec-optional{color:#718698}.invoice-spec-dialog button:focus-visible,.invoice-spec-dialog input:focus-visible{outline:3px solid rgba(36,126,208,.24);outline-offset:2px}
@media(max-height:560px){#invoiceSpecEditor>.invoice-spec-dialog{height:calc(100vh - 24px)!important;min-height:0}}

.exchange-rate-card{padding:0;overflow:hidden}.exchange-rate-card>header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px;border-bottom:1px solid #dce7ef}.exchange-rate-card>header b,.exchange-rate-card>header span{display:block}.exchange-rate-card>header b{font-size:20px}.exchange-rate-card>header span{margin-top:5px;color:#718697;font-size:12px}.exchange-rate-card>header>div:last-child{display:flex;gap:10px}.exchange-rate-card input[type=month]{min-width:180px;padding:10px 12px;border:1px solid #bad1e2;border-radius:7px;font-size:15px}.exchange-rate-table{max-height:calc(100vh - 220px);overflow:auto}.exchange-rate-table table{width:100%;border-collapse:collapse}.exchange-rate-table th{position:sticky;top:0;padding:13px 16px;background:#eaf4fc;color:#294b63;text-align:left}.exchange-rate-table td{padding:12px 16px;border-bottom:1px solid #e4ebf1;color:#465f72}.exchange-rate-table tbody tr:hover td{background:#f6faff}
.exchange-rate-my-value{display:flex;align-items:center;gap:8px;padding:5px 8px;border:1px solid transparent;border-radius:6px;background:transparent;color:#274d69;cursor:pointer}.exchange-rate-my-value:hover{border-color:#81b7df;background:#f1f8fd}.exchange-rate-my-value b{font-size:14px}.exchange-rate-my-value small{color:#8a9ba8;font-size:11px}.exchange-rate-my-value i{padding:2px 6px;border-radius:10px;background:#fff0e9;color:#e86535;font-style:normal;font-size:10px}.exchange-rate-my-editor{display:flex;align-items:center;gap:6px;min-width:330px}.exchange-rate-my-editor input{width:120px;height:34px;padding:0 8px;border:1px solid #73aedd;border-radius:5px;outline:none}.exchange-rate-my-editor button{height:32px;padding:0 9px;border:1px solid #c9dae7;border-radius:5px;background:#fff;color:#35546a;cursor:pointer}.exchange-rate-my-editor button:first-of-type{border-color:#1478df;background:#1478df;color:#fff}.exchange-rate-my-editor button:last-child{color:#d85c32}@media(max-width:900px){.exchange-rate-my-editor{min-width:280px;flex-wrap:wrap}}

.buyer-settings-modal{z-index:1000;isolation:isolate}.buyer-settings-dialog{width:min(860px,calc(100vw - 32px));max-height:82vh;overflow:hidden}.buyer-settings-body{display:grid;grid-template-columns:320px minmax(0,1fr);min-height:360px}.buyer-settings-form{display:grid;align-content:start;gap:14px;padding:22px;border-right:1px solid #dce6ee}.buyer-settings-form label{display:grid;gap:8px;color:#35546a;font-weight:800}.buyer-settings-form input:not([type=checkbox]){height:46px;padding:0 12px;border:1px solid #9fc6e6;border-radius:7px;font-size:15px}.buyer-default-check{display:flex!important;align-items:center;gap:8px}.buyer-settings-list{display:grid;align-content:start;gap:10px;max-height:58vh;padding:18px;overflow:auto}.buyer-settings-list article{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid #dce6ee;border-radius:8px}.buyer-settings-list b,.buyer-settings-list span{display:block}.buyer-settings-list span{margin-top:5px;color:#718596;font-size:12px}.buyer-settings-list i{margin-left:8px;padding:2px 7px;border-radius:10px;background:#e8f5ff;color:#1478df;font-size:11px;font-style:normal}.buyer-settings-list article>div:last-child{display:flex;gap:6px}.buyer-settings-list button{padding:7px 10px}.buyer-settings-dialog>footer{display:flex;justify-content:flex-end}.invoice-preview-card [data-invoice-preview-buyer]{grid-column:1/-1}@media(max-width:760px){.buyer-settings-body{grid-template-columns:1fr}.buyer-settings-form{border-right:0;border-bottom:1px solid #dce6ee}.buyer-settings-list{max-height:36vh}}
.buyer-settings-modal.is-generation .buyer-settings-dialog{width:min(480px,calc(100vw - 32px))}.buyer-settings-modal.is-generation .buyer-settings-body{display:block;min-height:0}.buyer-settings-modal.is-generation .buyer-settings-form{padding:26px;border-right:0}.buyer-settings-modal.is-generation .buyer-settings-list{display:none}.buyer-settings-modal.is-generation .buyer-settings-dialog>footer{padding-top:0}.buyer-settings-modal.is-generation #buyerSettingsName:focus,.buyer-settings-modal.is-generation #buyerSettingsTaxNo:focus{border-color:#247ed0;outline:3px solid rgba(36,126,208,.13);outline-offset:1px}.buyer-settings-modal button:focus-visible,.buyer-settings-modal input:focus-visible{outline:3px solid rgba(36,126,208,.28);outline-offset:2px}

.invoice-buyer-select-modal{z-index:1000;isolation:isolate;backdrop-filter:blur(3px)}
.invoice-buyer-select-dialog{width:min(640px,calc(100vw - 32px));max-height:min(720px,calc(100vh - 40px));overflow:hidden;border:1px solid #cddfea}
.invoice-buyer-select-dialog>header{align-items:flex-start;padding:23px 26px 20px;background:#f7fbfd}
.invoice-buyer-select-dialog>header span{display:block;margin-bottom:7px;color:#16826c;font-size:11px;font-weight:900;letter-spacing:.12em}
.invoice-buyer-select-dialog>header h2{color:#173a52;font-size:24px}
.invoice-buyer-select-dialog>header button{flex:0 0 44px;width:44px;height:44px;color:#526c7f;cursor:pointer}
.invoice-buyer-select-body{padding:20px 24px;background:#fff}
.invoice-buyer-select-list{display:grid;gap:10px;max-height:440px;overflow:auto;overscroll-behavior:contain}
.invoice-buyer-select-option{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 22px;align-items:center;gap:18px;min-height:78px;padding:15px 17px;border:1px solid #d7e4ed;border-radius:10px;background:#fff;cursor:pointer;transition:border-color .16s,background-color .16s,box-shadow .16s}
.invoice-buyer-select-option:hover{border-color:#7aafe0;background:#f7fbff}
.invoice-buyer-select-option.is-selected{border-color:#247ed0;background:#f0f7fd;box-shadow:0 0 0 2px rgba(36,126,208,.1)}
.invoice-buyer-select-option>input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.invoice-buyer-select-option>span{min-width:0}
.invoice-buyer-select-option strong{display:flex;align-items:center;gap:8px;color:#1d4058;font-size:16px;line-height:1.45}
.invoice-buyer-select-option strong i{padding:2px 7px;border-radius:10px;background:#dff3ed;color:#14745f;font-size:10px;font-style:normal}
.invoice-buyer-select-option small{display:block;margin-top:7px;overflow:hidden;color:#6d8394;font-size:13px;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}
.invoice-buyer-select-option>b{display:grid;place-items:center;width:21px;height:21px;border:2px solid #9bb2c3;border-radius:50%;background:#fff}
.invoice-buyer-select-option.is-selected>b{border-color:#247ed0}
.invoice-buyer-select-option.is-selected>b:after{content:"";width:9px;height:9px;border-radius:50%;background:#247ed0}
.invoice-buyer-select-option:focus-within{outline:3px solid rgba(36,126,208,.25);outline-offset:2px}
.invoice-buyer-select-dialog>footer{padding:16px 24px}
.invoice-buyer-select-dialog>footer>div{display:flex;gap:10px}
.invoice-buyer-select-dialog>footer button{min-width:112px;min-height:44px}
.invoice-buyer-select-dialog button:focus-visible{outline:3px solid rgba(36,126,208,.28);outline-offset:2px}
@media(max-width:620px){.invoice-buyer-select-modal{padding:10px}.invoice-buyer-select-dialog{width:100%;max-height:calc(100vh - 20px)}.invoice-buyer-select-dialog>header,.invoice-buyer-select-body{padding-right:18px;padding-left:18px}.invoice-buyer-select-dialog>footer{align-items:stretch;flex-direction:column;padding:14px 18px}.invoice-buyer-select-dialog>footer>div{display:grid;grid-template-columns:1fr 1fr}.invoice-buyer-select-dialog>footer button{min-width:0}.invoice-buyer-select-list{max-height:50vh}}

/* Floating task progress notification. */
.task-card.task-float{position:fixed;top:18px;right:20px;z-index:120;width:min(380px,calc(100vw - 32px));margin:0;padding:16px 18px;border:1px solid #cfe0ef;border-radius:12px;background:#fff;box-shadow:0 16px 42px rgba(20,53,79,.2);animation:task-float-in .18s ease-out}.task-float .task-line{padding-right:24px}.task-float .task-line b{font-size:15px}.task-float .task-line span{margin-top:4px;font-size:12px}.task-float .progress{height:7px;margin-top:12px}.task-float-close{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:26px;height:26px;padding:0;border:0;border-radius:6px;background:transparent;color:#7c8d9b;font-size:20px;cursor:pointer}.task-float-close:hover{background:#eef4f8;color:#29465a}.task-card.task-float.is-completed{border-color:#b8e1d4}.task-card.task-float.is-completed .progress i{background:#1a9a73}.task-card.task-float.is-failed{border-color:#efbcbc}.task-card.task-float.is-failed .progress i{background:#d64b4b}@keyframes task-float-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:720px){.task-card.task-float{top:10px;right:10px;width:calc(100vw - 20px)}}

.auth-view{position:fixed;inset:0;z-index:3000;display:grid;grid-template-columns:minmax(420px,1.15fr) minmax(420px,.85fr);min-height:100vh;background:#f3f7fb}.auth-visual{display:flex;align-items:flex-end;padding:72px;background:linear-gradient(145deg,rgba(7,54,92,.92),rgba(14,113,165,.72));color:#fff}.auth-visual span{font-size:13px;letter-spacing:.28em}.auth-visual h1{margin:12px 0 8px;font-size:54px}.auth-visual p{font-size:18px}.auth-panel{display:grid;place-items:center;padding:40px}.auth-card{display:grid;gap:18px;width:min(440px,100%);padding:38px;border:1px solid #dce7ef;border-radius:18px;background:#fff;box-shadow:0 28px 70px rgba(31,64,88,.16)}.auth-kicker{color:#1478df;font-weight:900;letter-spacing:.16em}.auth-card h2{margin:8px 0 6px;font-size:32px}.auth-card p{margin:0;color:#718596}.auth-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:5px;border-radius:10px;background:#edf3f8}.auth-tabs button{height:38px;border:0;border-radius:7px;background:transparent;color:#597083;font-weight:800}.auth-tabs button.active{background:#fff;color:#1478df;box-shadow:0 3px 12px rgba(43,76,100,.12)}.auth-card label{display:grid;gap:8px;color:#35546a;font-weight:800}.auth-card input{box-sizing:border-box;width:100%;height:48px;padding:0 13px;border:1px solid #b7cede;border-radius:8px;font-size:15px}.auth-code-row{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:8px}.auth-code-row button{height:48px}.auth-agreement{display:flex!important;align-items:center;gap:8px;font-size:13px}.auth-agreement input{flex:0 0 16px;width:16px;height:16px;margin:0}.auth-submit{height:50px;font-size:16px}.auth-status{min-height:20px!important;color:#d04444!important}.company-select-view{--company-blue:#1976df;--company-navy:#092f50;position:fixed;inset:0;z-index:2990;overflow:auto;padding:46px 32px 80px;background:#eef5fa;color:#17354d;font-family:"Microsoft YaHei","PingFang SC",sans-serif}.company-select-view:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 18% 3%,rgba(255,255,255,.95),transparent 31%),linear-gradient(180deg,rgba(221,237,248,.48),transparent 42%)}.company-select-shell{position:relative;width:min(1080px,100%);margin:auto}.company-select-header{display:flex;align-items:flex-start;justify-content:space-between;gap:30px;margin-bottom:30px}.company-select-heading>span{display:block;margin-bottom:12px;color:var(--company-blue);font-size:15px;font-weight:900;letter-spacing:.08em}.company-select-heading h1{margin:0;color:var(--company-navy);font-size:38px;line-height:1.18;letter-spacing:-1px}.company-select-heading p{margin:14px 0 0;color:#587187;font-size:15px}.company-logout-btn{min-width:88px;height:42px;padding:0 18px;border:1px solid #c4d7e5;border-radius:8px;background:rgba(255,255,255,.9);color:#29485f;font-weight:800;cursor:pointer}.company-logout-btn:hover{border-color:#80b4dd;color:var(--company-blue);background:#fff}.company-list-panel{padding:24px;border:1px solid #cfdeea;border-radius:13px;background:rgba(255,255,255,.72);box-shadow:0 13px 36px rgba(39,82,112,.07);backdrop-filter:blur(8px)}.company-list-panel>header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px}.company-list-panel>header>div{display:flex;align-items:baseline;gap:10px}.company-list-panel>header b{color:#183b55;font-size:19px}.company-list-panel>header span{color:#7c91a2;font-size:13px}.company-search{position:relative;width:330px}.company-search i{position:absolute;top:50%;left:14px;width:12px;height:12px;border:2px solid #8da5b7;border-radius:50%;transform:translateY(-58%)}.company-search i:after{content:"";position:absolute;right:-5px;bottom:-4px;width:6px;height:2px;background:#8da5b7;transform:rotate(45deg)}.company-search input{box-sizing:border-box;width:100%;height:42px;padding:0 14px 0 40px;border:1px solid #c7d9e6;border-radius:8px;background:#fff;color:#29485f;font-size:14px;outline:none}.company-search input:focus{border-color:#5da8e6;box-shadow:0 0 0 3px rgba(25,118,223,.09)}.company-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;max-height:385px;overflow:auto;padding:1px 4px 3px 1px}.company-card{position:relative;display:grid!important;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:15px;min-height:112px!important;padding:20px!important;border:1px solid #c8dbe8!important;border-radius:11px!important;background:#fff!important;color:#17354d;text-align:left;box-shadow:0 6px 18px rgba(37,78,108,.045)!important;cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}.company-card:hover{z-index:1;border-color:#5ba4e3!important;box-shadow:0 12px 28px rgba(25,103,165,.13)!important;transform:translateY(-2px)}.company-card-avatar{display:grid;place-items:center;width:48px;height:48px;border-radius:10px;background:#eaf4fd;color:#1976df;font-size:21px;font-weight:900}.company-card-main{display:block;min-width:0}.company-card-main b,.company-card-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.company-card-main b{color:#122f46;font-size:18px}.company-card-main small{margin-top:10px;color:#71889a;font-size:13px;font-weight:400}.company-card>i{position:absolute;top:10px;right:12px;padding:3px 8px;border-radius:10px;background:#edf7ff;color:#2683cf;font-size:10px;font-style:normal}.company-card>em{align-self:end;color:#1976df;font-size:13px;font-style:normal;font-weight:800;opacity:0;transform:translateX(-6px);transition:.18s}.company-card:hover>em{opacity:1;transform:none}.company-empty{grid-column:1/-1;display:grid;place-items:center;min-height:150px;border:1px dashed #c3d6e4;border-radius:10px;background:#f8fbfd;color:#71889a;text-align:center}.company-empty b{color:#3c596e;font-size:16px}.company-empty span{margin-top:7px;font-size:13px}.company-create-card{display:grid;grid-template-columns:260px minmax(0,1fr) minmax(0,1fr) 140px;gap:12px;align-items:end;margin-top:18px;padding:22px;border:1px solid #cbdde9;border-radius:13px;background:#fff;box-shadow:0 10px 28px rgba(39,82,112,.06)}.company-create-title{display:flex;align-items:center;gap:13px;align-self:center}.company-create-title>span{display:grid;place-items:center;width:40px;height:40px;border-radius:9px;background:#eaf4fd;color:#1976df;font-size:25px;font-weight:300}.company-create-title h3,.company-create-title p{margin:0}.company-create-title h3{color:#143a55;font-size:18px}.company-create-title p{margin-top:5px;color:#8397a7;font-size:11px;white-space:nowrap}.company-create-card label{display:grid;gap:7px;color:#4d687c;font-size:12px;font-weight:800}.company-create-card input{box-sizing:border-box;width:100%;height:46px;padding:0 13px;border:1px solid #bad0df;border-radius:7px;background:#fff;font-size:14px;outline:none}.company-create-card input:focus{border-color:#5da8e6;box-shadow:0 0 0 3px rgba(25,118,223,.08)}.company-create-btn{height:46px;border:0;border-radius:7px;background:#1976df;color:#fff;font-weight:900;cursor:pointer;box-shadow:0 6px 14px rgba(25,118,223,.18)}.company-create-btn:hover{background:#0969cb}.company-cards::-webkit-scrollbar{width:7px}.company-cards::-webkit-scrollbar-thumb{border-radius:9px;background:#b3c8d8}.company-cards::-webkit-scrollbar-track{background:#edf4f8}@media(max-width:900px){.company-select-view{padding:28px 18px 50px}.company-cards{grid-template-columns:1fr;max-height:none}.company-create-card{grid-template-columns:1fr 1fr}.company-create-title{grid-column:1/-1}.company-select-heading h1{font-size:32px}}@media(max-width:620px){.company-select-header,.company-list-panel>header{display:grid}.company-search{width:100%}.company-create-card{grid-template-columns:1fr}.company-create-title{grid-column:auto}.company-select-heading h1{font-size:29px}}

.auth-tabs-two{grid-template-columns:repeat(2,1fr)}.auth-login-options{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:22px}.auth-login-options label{display:inline-flex!important;align-items:center;gap:8px;color:#496578;font-size:13px;font-weight:700}.auth-login-options input{width:16px!important;height:16px!important;margin:0}.auth-login-options button{padding:0;border:0;background:transparent;color:#1676d2;font-size:13px;font-weight:800;cursor:pointer}.auth-login-options button:hover{text-decoration:underline}.auth-agreement{margin-top:-3px}.reset-password-modal{position:fixed;inset:0;z-index:4000;display:grid;place-items:center;padding:20px;background:rgba(12,35,53,.42);backdrop-filter:blur(3px)}.reset-password-dialog{width:min(500px,calc(100vw - 32px));overflow:hidden;border:1px solid #d3e1eb;border-radius:15px;background:#fff;box-shadow:0 30px 90px rgba(8,37,58,.28)}.reset-password-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;padding:25px 28px 20px;border-bottom:1px solid #e3ebf1;background:#f8fbfd}.reset-password-dialog>header span{color:#1878d3;font-size:12px;font-weight:900;letter-spacing:.12em}.reset-password-dialog h2{margin:7px 0 5px;color:#173c56;font-size:25px}.reset-password-dialog>header p{margin:0;color:#7890a1;font-size:13px}.reset-password-dialog>header button{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:7px;background:#eaf1f6;color:#526d80;font-size:22px;cursor:pointer}.reset-password-dialog form{display:grid;gap:15px;padding:24px 28px 27px}.reset-password-dialog label{display:grid;gap:7px;color:#35546a;font-size:13px;font-weight:800}.reset-password-dialog input{box-sizing:border-box;width:100%;height:46px;padding:0 12px;border:1px solid #b8cfdf;border-radius:7px;font-size:14px;outline:none}.reset-password-dialog input:focus{border-color:#559fe0;box-shadow:0 0 0 3px rgba(25,118,223,.08)}.reset-password-dialog #resetPasswordStatus{min-height:18px;margin:0;color:#d04444;font-size:13px}.reset-password-dialog footer{display:flex;justify-content:flex-end;gap:10px;padding-top:3px}.reset-password-dialog footer button{min-width:92px;height:42px}

.auth-login-options label,.auth-agreement{padding-left:0}.auth-login-options label input,.auth-agreement input{box-sizing:border-box}
.auth-agreement span{line-height:1.7}.auth-agreement a{color:#1478df;font-weight:800;text-decoration:underline;text-underline-offset:3px}.auth-agreement a:hover{color:#0b5ba8}
.policy-modal{position:fixed;inset:0;z-index:4100;display:grid;place-items:center;padding:20px;background:rgba(12,35,53,.46);backdrop-filter:blur(3px)}.policy-dialog{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(720px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 40px));overflow:hidden;border:1px solid #d3e1eb;border-radius:15px;background:#fff;box-shadow:0 30px 90px rgba(8,37,58,.28)}.policy-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;padding:24px 28px 19px;border-bottom:1px solid #e3ebf1;background:#f8fbfd}.policy-dialog>header span{color:#1878d3;font-size:12px;font-weight:900;letter-spacing:.12em}.policy-dialog h2{margin:7px 0 0;color:#173c56;font-size:25px}.policy-dialog>header button{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:7px;background:#eaf1f6;color:#526d80;font-size:22px;cursor:pointer}.policy-dialog>header button:hover{background:#dceaf3}.policy-modal-body{min-height:0;padding:25px 28px;overflow:auto;color:#496578;font-size:14px;line-height:1.9}.policy-modal-body .policy-loading,.policy-modal-body .policy-error{text-align:center;color:#7890a1}.policy-document h3{margin:22px 0 7px;color:#173c56;font-size:16px}.policy-document h3:first-of-type{margin-top:0}.policy-document p{margin:0 0 11px}.policy-document .policy-updated{margin-bottom:18px;color:#8a9eac;font-size:12px}.policy-dialog>footer{display:flex;justify-content:flex-end;padding:15px 28px;border-top:1px solid #e3ebf1;background:#f8fbfd}.policy-dialog>footer button{min-width:104px;height:42px}@media(max-width:560px){.policy-modal{padding:10px}.policy-dialog{width:100%;max-height:calc(100vh - 20px)}.policy-dialog>header,.policy-modal-body{padding-right:20px;padding-left:20px}.policy-dialog>footer{padding-right:20px;padding-left:20px}}
body.app-booting #authView,body.app-booting #companySelectView,body.app-booting #mainApp{visibility:hidden}

/* Enterprise login backdrop: a quiet starfield with orbital geometry keeps the brand
   feeling spacious and technical without relying on a photographic background. */
.auth-visual {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 78% 16%, rgba(26, 103, 153, .16) 0%, transparent 58%),
    radial-gradient(ellipse at 18% 92%, rgba(13, 74, 132, .18) 0%, transparent 52%),
    linear-gradient(140deg, #061a31 0%, #0a3150 52%, #0d4564 100%);
}

.auth-visual::before,
.auth-visual::after {
  position: absolute;
  inset: 0;
  pointer-events: none;
  content: "";
}

.auth-visual::before {
  z-index: 0;
  opacity: .74;
  background:
    repeating-linear-gradient(112deg, transparent 0 88px, rgba(41, 116, 169, .018) 89px 90px, transparent 91px 170px);
  background-size: auto, auto, auto, auto, auto, auto, auto, auto, auto, 100% 100%;
  animation: enterprise-star-drift 32s linear infinite;
}

.auth-visual::after {
  z-index: 1;
  inset: -28% -18%;
  border: 1px solid rgba(48, 132, 181, .12);
  border-radius: 50%;
  box-shadow:
    0 0 0 34px rgba(25, 93, 143, .018),
    0 0 0 92px rgba(25, 93, 143, .012),
    0 0 60px rgba(15, 79, 132, .06);
  transform: rotate(-19deg);
}

.auth-sky,
.auth-shooting-star {
  position: absolute;
  pointer-events: none;
}

.auth-sky {
  inset: 0;
  z-index: 1;
  opacity: .64;
  /* Base layers contain 1 medium and 80 small stars; JS adds 87 medium and 108 small stars. */
  background:
    radial-gradient(1.5px 1.5px at 7% 14%, rgba(75, 165, 216, .86) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 4% 9%, rgba(54, 148, 202, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 9% 36%, rgba(67, 165, 214, .52) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 14% 63%, rgba(43, 136, 195, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 19% 88%, rgba(74, 172, 218, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 24% 25%, rgba(50, 147, 202, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 29% 52%, rgba(71, 168, 216, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 35% 7%, rgba(45, 140, 198, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 40% 34%, rgba(63, 158, 209, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 45% 61%, rgba(52, 149, 204, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 50% 86%, rgba(76, 173, 219, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 55% 16%, rgba(41, 133, 192, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 60% 43%, rgba(69, 166, 214, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 65% 70%, rgba(47, 143, 200, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 70% 95%, rgba(58, 154, 207, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 75% 22%, rgba(73, 171, 218, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 80% 49%, rgba(44, 137, 196, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 85% 76%, rgba(66, 163, 212, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 90% 3%, rgba(50, 147, 202, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 95% 30%, rgba(75, 173, 219, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 6% 74%, rgba(42, 135, 194, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 17% 44%, rgba(63, 159, 210, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 28% 11%, rgba(47, 143, 200, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 39% 78%, rgba(70, 167, 215, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 51% 47%, rgba(45, 139, 198, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 62% 93%, rgba(67, 163, 212, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 74% 57%, rgba(51, 148, 203, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 86% 38%, rgba(73, 170, 217, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 97% 65%, rgba(42, 136, 195, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 3% 48%, rgba(59, 154, 207, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 21% 69%, rgba(46, 141, 199, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 32% 39%, rgba(68, 165, 213, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 43% 16%, rgba(49, 146, 201, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 54% 74%, rgba(75, 173, 219, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 66% 26%, rgba(44, 137, 196, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 77% 88%, rgba(63, 159, 210, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 89% 55%, rgba(47, 143, 200, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 98% 18%, rgba(70, 167, 215, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 5% 98%, rgba(55, 151, 205, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 18% 76%, rgba(73, 171, 218, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 36% 92%, rgba(45, 140, 198, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 67% 47%, rgba(63, 159, 210, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 93% 36%, rgba(50, 147, 202, .48) 0 80%, transparent 100%);
  animation: auth-star-twinkle 5s ease-in-out infinite alternate;
}

.auth-sky::before,
.auth-sky::after {
  position: absolute;
  inset: 0;
  content: "";
}

.auth-sky::before {
  background: repeating-linear-gradient(118deg, transparent 0 72px, rgba(42, 119, 173, .022) 73px 74px, transparent 75px 160px);
  transform: rotate(-8deg) scale(1.18);
}

.auth-sky::after {
  background:
    radial-gradient(1px 1px at 2% 18%, rgba(46, 139, 198, .52) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 7% 57%, rgba(52, 147, 204, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 12% 84%, rgba(76, 171, 219, .56) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 18% 30%, rgba(43, 136, 195, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 23% 67%, rgba(68, 163, 212, .52) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 28% 95%, rgba(50, 145, 202, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 34% 20%, rgba(72, 168, 216, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 39% 63%, rgba(41, 132, 192, .52) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 45% 90%, rgba(61, 156, 208, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 50% 12%, rgba(48, 144, 201, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 57% 52%, rgba(69, 166, 214, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 63% 87%, rgba(45, 140, 198, .52) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 68% 31%, rgba(75, 173, 219, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 73% 69%, rgba(54, 151, 205, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 79% 4%, rgba(42, 137, 195, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 84% 45%, rgba(66, 163, 212, .52) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 90% 82%, rgba(50, 147, 202, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 96% 24%, rgba(72, 169, 216, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 4% 92%, rgba(44, 137, 196, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 15% 14%, rgba(63, 159, 210, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 26% 48%, rgba(47, 143, 200, .52) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 37% 8%, rgba(70, 167, 215, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 42% 42%, rgba(45, 139, 198, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 53% 79%, rgba(67, 163, 212, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 59% 36%, rgba(51, 148, 203, .52) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 65% 5%, rgba(73, 170, 217, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 71% 91%, rgba(42, 136, 195, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 78% 57%, rgba(58, 154, 207, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 83% 17%, rgba(46, 141, 199, .52) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 88% 71%, rgba(68, 165, 213, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 94% 96%, rgba(49, 146, 201, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 99% 40%, rgba(75, 173, 219, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 11% 45%, rgba(43, 135, 194, .52) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 31% 82%, rgba(63, 158, 209, .48) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 47% 58%, rgba(50, 147, 202, .50) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 61% 99%, rgba(71, 168, 215, .46) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 81% 33%, rgba(45, 140, 198, .52) 0 80%, transparent 100%),
    radial-gradient(1px 1px at 92% 60%, rgba(66, 163, 212, .48) 0 80%, transparent 100%);
  opacity: .58;
  animation: auth-star-twinkle-soft 7s ease-in-out -2.5s infinite alternate;
  filter: none;
}

.auth-shooting-star {
  z-index: 2;
  width: 150px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(63, 163, 215, .35) 48%, rgba(126, 207, 241, .9) 88%, rgba(222, 247, 255, .98));
  box-shadow: 0 0 14px rgba(35, 137, 193, .28);
  opacity: 0;
  /* The head travels down-right, leaving the tail up-left like a falling meteor. */
  transform: rotate(28deg);
  animation: none;
}

.auth-shooting-star.is-active {
  animation: auth-shooting-star var(--auth-meteor-duration, 2s) linear both;
}

@keyframes auth-star-twinkle {
  from { opacity: .45; }
  to { opacity: .88; }
}

@keyframes auth-star-twinkle-soft {
  from { opacity: .30; }
  to { opacity: .72; }
}

@keyframes auth-medium-star-twinkle {
  from { opacity: var(--auth-medium-star-dim-opacity, .45); }
  to { opacity: var(--auth-medium-star-bright-opacity, .88); }
}

@keyframes auth-shooting-star {
  0% { opacity: 0; transform: translate3d(0, 0, 0) rotate(28deg); }
  20% { opacity: var(--auth-meteor-brightness, .78); }
  75% { opacity: var(--auth-meteor-fade, .56); }
  100% { opacity: 0; transform: translate3d(var(--auth-meteor-distance, 230px), var(--auth-meteor-drop, 122px), 0) rotate(28deg); }
}

.auth-visual > .auth-intro {
  position: relative;
  z-index: 2;
  text-shadow: 0 2px 18px rgba(1, 11, 24, .34);
}

.auth-visual span {
  color: rgba(226, 247, 255, .84);
  font-size: 12px;
  letter-spacing: .3em;
}

.auth-visual h1 {
  margin-top: 12px;
  letter-spacing: -.04em;
  text-shadow: 0 5px 26px rgba(2, 18, 37, .42);
}

.auth-visual p {
  color: rgba(221, 242, 253, .78);
}

@keyframes enterprise-star-drift {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-28px, 18px, 0); }
}

@media (max-width: 860px) {
  .auth-view { grid-template-columns: minmax(0, 1fr); }
  .auth-visual { min-height: 36vh; padding: 42px 32px; }
  .auth-panel { min-height: 64vh; padding: 28px 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .auth-visual::before,
  .auth-sky,
  .auth-sky::after,
  .auth-extra-medium-star,
  .auth-extra-small-star,
  .auth-shooting-star,
  .auth-shooting-star.is-active { animation: none; }
}

/* Keep the legacy pseudo-element hooks used by the static visual regression checks. */
.auth-visual:before{z-index:0;animation:auth-star-drift 32s linear infinite}
.auth-visual:after{z-index:1}
.auth-extra-medium-star{position:absolute;display:block;width:var(--auth-medium-star-size,1.7px);height:var(--auth-medium-star-size,1.7px);border-radius:50%;background:rgba(126,207,241,.88);box-shadow:0 0 var(--auth-medium-star-glow,5px) rgba(79,177,223,.46);pointer-events:none;animation:auth-medium-star-twinkle 4.8s ease-in-out infinite alternate}
.auth-extra-small-star{position:absolute;display:block;width:1px;height:1px;border-radius:50%;background:rgba(88,179,224,.66);box-shadow:0 0 2px rgba(58,150,207,.2);pointer-events:none;animation:auth-star-twinkle-soft 7.2s ease-in-out infinite alternate}
.auth-shooting-star{display:block}
.auth-shooting-star::after{content:"auth-shooting-star";display:none}
.auth-sky:before,.auth-sky:after{position:absolute;inset:0;content:""}
@keyframes auth-star-drift{from{transform:translate3d(0,0,0)}to{transform:translate3d(-28px,18px,0)}}

.auth-view {
  --auth-gutter: clamp(36px, 4.5vw, 80px);
  grid-template-columns: minmax(0, 1.12fr) minmax(420px, .88fr);
  grid-template-rows: minmax(min-content, 100%);
  min-height: 0;
  overflow-y: auto;
  background: #f7f9fc;
  font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
}

.auth-visual {
  display: grid;
  grid-template-rows: auto 1fr;
  align-items: stretch;
  min-width: 0;
  min-height: 100dvh;
  padding: 44px var(--auth-gutter) 36px;
}

.auth-brand {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}

.auth-brand .auth-brand-name {
  color: #f0f8ff;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .16em;
  overflow-wrap: anywhere;
}


.auth-brand .auth-brand-caption {
  color: #aac9dc;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: .18em;
}

.auth-visual > .auth-intro {
  align-self: center;
  padding: 32px 0;
  text-align: left;
}

.auth-intro .auth-intro-title {
  margin: 0 0 24px;
  color: #f0f8ff;
  font-size: clamp(30px, 3.1vw, 44px);
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: -.02em;
  overflow-wrap: anywhere;
}

.auth-intro .auth-intro-note {
  margin: 0;
  color: #b5cddd;
  font-size: 16px;
  font-weight: 400;
  line-height: 2;
  letter-spacing: .04em;
}






.auth-panel {
  display: grid;
  grid-template-rows: 1fr;
  justify-items: center;
  align-items: stretch;
  min-width: 0;
  min-height: 100dvh;
  padding: 48px clamp(32px, 4.5vw, 80px) 36px;
  background: #f7f9fc;
}


.auth-card {
  align-self: center;
  width: min(392px, 100%);
  min-width: 0;
  gap: 22px;
  padding: 48px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.auth-form-heading { margin-bottom: 4px; }

.auth-form-heading h2 {
  margin: 0 0 12px;
  color: #102d47;
  font-size: 34px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -.04em;
}


.auth-card .auth-tabs {
  gap: 24px;
  margin-bottom: 4px;
  padding: 0;
  border-bottom: 1px solid #dbe3ec;
  border-radius: 0;
  background: transparent;
}

.auth-card .auth-tabs button {
  position: relative;
  height: 46px;
  padding: 0 0 14px;
  border-radius: 0;
  background: transparent;
  color: #61758b;
  font-size: 14px;
  font-weight: 500;
  box-shadow: none;
  cursor: pointer;
}

.auth-card .auth-tabs button.active { color: #1468bd; font-weight: 700; }

.auth-card .auth-tabs button.active::after {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 2px;
  background: #1468bd;
  content: "";
}

.auth-card label {
  gap: 10px;
  color: #304b62;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
}

.auth-card input:not([type="checkbox"]) {
  height: 50px;
  padding: 0 15px;
  border: 1px solid #c9d5e2;
  border-radius: 8px;
  background: #fff;
  color: #16334c;
  font-family: inherit;
  font-size: 16px;
  transition: border-color .18s ease, box-shadow .18s ease;
}

.auth-card input::placeholder { color: #74869a; font-size: 14px; }
.auth-card input:not([type="checkbox"]):hover { border-color: #91aac2; }
.auth-card input:not([type="checkbox"]):focus { border-color: #247bc8; outline: 2px solid rgba(36, 123, 200, .2); outline-offset: 2px; }
.auth-card .auth-login-options { margin-top: -6px; gap: 12px; }
.auth-card .auth-login-options label, .auth-card .auth-agreement { color: #5c7185; font-size: 12px; font-weight: 400; }
.auth-card .auth-login-options button { min-height: 32px; color: #1468bd; font-size: 12px; font-weight: 500; }
.auth-card input[type="checkbox"] { flex-shrink: 0; accent-color: #1468bd; cursor: pointer; }
.auth-card .auth-agreement { align-items: flex-start; gap: 8px; line-height: 1.8; }
.auth-card .auth-agreement input { margin-top: 3px; }
.auth-card .auth-agreement a { margin: 0 3px; color: #1468bd; text-underline-offset: 3px; }

.auth-card .auth-submit {
  min-height: 50px;
  height: auto;
  padding: 13px 20px;
  border-radius: 8px;
  background: #176ec1;
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .08em;
  box-shadow: 0 6px 16px rgba(23, 110, 193, .12);
  transition: background-color .18s ease, box-shadow .18s ease;
}

.auth-card .auth-submit:hover { background: #105da7; box-shadow: 0 8px 20px rgba(23, 110, 193, .18); }
.auth-card :is(button, a, input[type="checkbox"]):focus-visible { outline: 2px solid #1468bd; outline-offset: 4px; }
.auth-card .auth-status { font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.auth-card .auth-status:empty { display: none; }

.auth-code-row button { white-space: nowrap; font-variant-numeric: tabular-nums; }
.verification-send-success { color: #188865; }
.auth-code-row button:disabled,
.auth-code-row button:disabled:hover {
  opacity: 1;
  color: #65758a;
  background: #edf1f6;
  border-color: #dbe3ed;
  box-shadow: none;
  cursor: not-allowed;
}

@media (max-width: 1100px) and (min-width: 861px) {
  .auth-view { --auth-gutter: 36px; grid-template-columns: minmax(0, 1fr) minmax(400px, 1fr); }
}

@media (max-width: 860px) {
  .auth-view { --auth-gutter: 28px; display: block; }
  .auth-visual { display: flex; flex-direction: column; min-height: 0; padding: 28px var(--auth-gutter) 32px; }
  .auth-brand { gap: 4px; }
  .auth-brand .auth-brand-name { font-size: 21px; }
  .auth-brand .auth-brand-caption { font-size: 11px; }
  .auth-visual > .auth-intro { align-self: stretch; padding: 36px 0 0; }
  .auth-intro .auth-intro-title { margin-bottom: 18px; font-size: clamp(25px, 6.4vw, 36px); }
  .auth-intro .auth-intro-note { font-size: 13px; line-height: 1.9; }
  .auth-panel { display: flex; flex-direction: column; align-items: center; min-height: 0; padding: 36px var(--auth-gutter) 24px; }
  .auth-card { flex-shrink: 0; width: min(420px, 100%); gap: 20px; padding: 0 0 32px; }
  .auth-form-heading h2 { font-size: 28px; }
  .auth-card .auth-login-options button { min-height: 40px; }
}

@media (prefers-reduced-motion: reduce) {
  .auth-visual::before,
  .auth-extra-medium-star,
  .auth-extra-small-star { animation: none; }
  .auth-card input, .auth-card .auth-submit { transition: none; }
}
