:root {
  --brand: #dc1928;
  --brand-hover: #bc1320;
  --ink: #202421;
  --muted: #656b66;
  --line: #dde0da;
  --line-strong: #c5c9c2;
  --canvas: #f7f8f5;
  --soft: #f1f3ee;
  --paper: #fff;
  --good: #256145;
  --warn: #8b5414;
  --font: "Instrument Sans","Segoe UI","Microsoft YaHei UI","Microsoft YaHei","PingFang SC",sans-serif;
  --mono: "IBM Plex Mono","Cascadia Mono",Consolas,monospace;
  font-family: var(--font);
  color: var(--ink);
  background: var(--canvas);
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
*, *::before, *::after { box-sizing: border-box }
body { margin: 0; min-width: 300px; }
button, input, select, textarea { font: inherit; }
button, select { cursor: pointer; }
button { color: inherit; }
a { color: var(--brand-hover); text-underline-offset: 3px; }
img, svg, video { max-width: 100%; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { line-height: 1.3; text-wrap: balance; }
p { margin-bottom: .75rem; }
h1 { font-size: 2rem; letter-spacing: -.028em; font-weight: 700; margin-bottom: .45rem; }
h2 { font-size: 1.22rem; font-weight: 680; margin-bottom: 1rem; }
h3 { font-size: 1.04rem; font-weight: 650; margin-bottom: .75rem; }
small, .subtle, .muted, .hint { color: var(--muted); }
small, .hint { font-size: .81rem; }
.subtle { font-size: .93rem; }
.eyebrow, .role-label { color: var(--muted); font-size: .78rem; font-weight: 600; letter-spacing: .045em; }
.eyebrow { display: block; margin: 0 0 .55rem; }
.mono, code, kbd, .tracking, .upc { font-family: var(--mono); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
code { background: var(--soft); border-radius: 4px; padding: .08rem .35rem; }
hr { border: 0; border-top: 1px solid var(--line); margin: 1.25rem 0; }
:focus-visible { outline: 3px solid #286581; outline-offset: 3px; }
[hidden] { display: none !important; }
button, .btn {
  background: var(--paper); border: 1px solid var(--line-strong); color: var(--ink);
  min-height: 2.55rem; padding: .52rem .92rem; border-radius: 7px; font-size: .9rem;
  font-weight: 600; line-height: 1.35; text-decoration: none;
}
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; vertical-align: middle; }
button:hover, .btn:hover { background: var(--soft); border-color: #aeb4ae; }
button:active, .btn:active { transform: translateY(1px); }
button:disabled, .btn[aria-disabled="true"] { opacity: .52; cursor: not-allowed; transform: none; }
.btn.primary, button.primary, button[type="submit"].primary {
  color: white; background: var(--brand); border-color: var(--brand);
}
.btn.primary:hover, button.primary:hover { background: var(--brand-hover); border-color: var(--brand-hover); }
.btn.ghost, button.ghost { background: transparent; }
.btn.small, button.small { font-size: .81rem; min-height: 2.1rem; padding: .36rem .67rem; }
.btn.danger, button.danger { color: var(--brand-hover); border-color: #e9bdc0; background: #fff7f7; }
.field { display: flex; flex-direction: column; align-items: stretch; gap: .36rem; color: #3c413c; font-weight: 600; font-size: .88rem; }
.field small, .field .hint { font-weight: 400; }
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), textarea, select {
  display: block; width: 100%; min-width: 0; border: 1px solid var(--line-strong); background: white;
  border-radius: 7px; color: var(--ink); font-weight: 400; padding: .62rem .78rem; min-height: 2.65rem; font-size: .94rem;
}
input[type="checkbox"], input[type="radio"] { accent-color: var(--brand); width: 1.05rem; height: 1.05rem; vertical-align: middle; }
input[type="file"] { max-width: 100%; overflow: hidden; }
input::placeholder, textarea::placeholder { color: #858b84; opacity: 1; }
input:focus, select:focus, textarea:focus { outline: 2px solid #66899a; outline-offset: 1px; }
input:disabled, select:disabled, textarea:disabled { background: #f5f6f4; color: #747b74; }
textarea { resize: vertical; min-height: 6.5rem; }
form label { font-size: .9rem; }
fieldset { min-width: 0; border: 1px solid var(--line); border-radius: 8px; padding: 1rem; }
.actions, .toolbar, .filters { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem; }
.actions > .btn, .toolbar > .btn { flex: none; }
.toolbar > :is(strong, b, span, div), .modal-body :is(p, li, strong, b) { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.toolbar > :is(input, select) { width: auto; max-width: 100%; }
.tabs { display: flex; gap: .35rem; flex-wrap: wrap; align-items: center; }
.tabs button { border-color: transparent; background: transparent; color: var(--muted); }
.tabs :is(.active,.is-active,[aria-selected="true"]) { background: #e6ebe3; color: #222922; }
.badge { display: inline-flex; align-items: center; justify-content: center; vertical-align: middle; width: fit-content;
  padding: .19rem .52rem; border-radius: 5px; color: #505851; background: #edf0eb; font-size: .77rem; font-weight: 600; line-height: 1.45; white-space: nowrap; }
.badge.good, .badge.success { color: var(--good); background: #e5f2e9; }
.badge.warn, .badge.warning { color: var(--warn); background: #fff0d7; }
.badge.muted { color: #565e57; background: #edf0eb; }
.badge.error, .badge.danger { color: #ad2934; background: #fdebee; }
.brand { display: inline-flex; align-items: center; gap: .64rem; color: var(--ink); text-decoration: none; width: fit-content; }
.brand img { width: 41px; height: 41px; object-fit: contain; flex: none; }
.brand strong { display: block; font-size: 1.3rem; line-height: 1.16; font-weight: 720; letter-spacing: -.025em; }
.brand small { display: block; color: #505650; font-size: .62rem; font-weight: 650; letter-spacing: .14em; margin-top: 3px; }
.login-layout { display: grid; grid-template-columns: minmax(355px,.88fr) minmax(0,1.12fr); min-height: 100dvh; background: white; }
.login-form-panel { position: relative; display: flex; flex-direction: column; align-items: flex-start; padding: clamp(28px,4.3vw,78px); min-width: 0; }
.login-inner { width: min(100%,360px); margin: auto; padding: 44px 0; }
.login-inner > .eyebrow { margin-bottom: .65rem; font-size: .82rem; color: #687367; }
.login-inner h1 { font-size: clamp(2.05rem,2.65vw,2.8rem); letter-spacing: -.035em; margin-bottom: .75rem; }
.login-inner > .subtle { margin-bottom: 1.9rem; }
.login-inner form { margin-top: 1.85rem; display: grid; gap: 1rem; }
.login-inner form .field { gap: .49rem; }
.login-inner form input:not([type="checkbox"]):not([type="radio"]) { min-height: 47px; }
.login-inner form .btn.primary { width: 100%; min-height: 46px; margin-top: .3rem; }
.demo-login { width: 100%; margin-top: .65rem; display: flex; gap: .55rem; }
.demo-login button { flex: 1; }
#loginError { margin: 0; color: var(--brand-hover); font-size: .88rem; }
#loginError:empty { display: none; }
.login-footer { margin: 0; color: var(--muted); font-size: .8rem; }
.login-visual { margin: 16px 16px 16px 0; border-radius: 14px; background: #eae8e0; color: #31352e; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(28px,4vw,64px); min-width: 0; overflow: hidden; }
.visual-heading { font-size: .9rem; color: #4b514a; font-weight: 650; }
.visual-heading h2 { margin-bottom: .45rem; font-size: 1.35rem; }
.visual-art, .visual-art img { display: block; width: 100%; height: auto; }
.visual-art { margin: auto 0; max-height: 63dvh; object-fit: contain; align-self: center; }
.visual-note { color: #5f665c; margin: 0; font-size: .82rem; }
.app-shell { min-height: 100dvh; display: grid; grid-template-columns: 220px minmax(0,1fr); }
.sidebar { position: sticky; top: 0; align-self: start; height: 100dvh; display: flex; flex-direction: column; background: white; border-right: 1px solid var(--line); padding: 27px 16px 18px; min-width: 0; }
.sidebar .brand { margin: 0 6px 28px; }
.sidebar .role-label { margin: 0 .7rem 1rem; }
.sidebar nav { display: flex; flex-direction: column; gap: 4px; overflow-y: auto; }
.nav-link { display: flex; align-items: center; width: 100%; gap: .75rem; text-align: left; border: 0; border-radius: 6px; background: transparent; padding: .62rem .77rem; color: #555c55; font-weight: 540; font-size: .94rem; min-height: 43px; }
.nav-link:hover { background: #f2f4ef; }
.nav-link.is-active, .nav-link[aria-current="page"] { color: #af1723; background: #fcebec; font-weight: 670; }
.nav-icon { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 21px; flex: none; }
.nav-icon svg { width: 19px; height: 19px; }
.sidebar-bottom { margin-top: auto; padding: 1rem .55rem 0; border-top: 1px solid var(--line); color: var(--muted); }
.sidebar-bottom button { width: 100%; }
.main-area { min-width: 0; }
.topbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 62px; padding: .6rem clamp(20px,3vw,48px); border-bottom: 1px solid var(--line); background: white; }
.breadcrumb, .session { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; font-size: .84rem; }
.breadcrumb { color: var(--muted); }
.session { color: #424942; }
#content { width: min(100%,1530px); min-width: 0; margin: 0 auto; padding: 34px clamp(20px,3vw,48px) 5rem; }
.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.45rem; }
.page-head .subtle { margin: .3rem 0 0; }
.page-head .eyebrow { margin-bottom: .4rem; }
.grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,225px),1fr)); gap: .95rem; align-items: start; }
.grid > * { min-width: 0; }
.card { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: 1.25rem; min-width: 0; }
#content > .card + .card, #content > .grid + .card, #content > .card + .grid, #content > .toolbar + .card { margin-top: 1rem; }
.card > :last-child { margin-bottom: 0; }
.fee-guide { margin:0 0 1rem; }
.fee-guide > div { display:grid; grid-template-columns:minmax(6rem, 8rem) 1fr; gap:.35rem 1rem; padding:.65rem 0; border-bottom:1px solid var(--line); }
.fee-guide dt { font-weight:600; }
.fee-guide dd { margin:0; }
.fee-guide dd p { margin:.18rem 0 0; color:var(--muted); }
@media(max-width:540px){ .fee-guide > div { grid-template-columns:1fr; } }
.card .toolbar { margin-bottom: 1rem; }
.metric { display: flex; flex-direction: column; align-items: flex-start; gap: .32rem; color: var(--muted); background: white; border: 1px solid var(--line); border-radius: 9px; padding: 1rem 1.15rem; }
.metric strong, .metric b { font-size: 1.7rem; font-weight: 650; line-height: 1.2; color: var(--ink); font-variant-numeric: tabular-nums; }
.table-wrap { overflow-x: auto; overscroll-behavior-x: contain; max-width: 100%; }
table { border-collapse: collapse; width: 100%; text-align: left; font-size: .88rem; }
th, td { padding: .74rem .8rem; border-bottom: 1px solid #e5e8e2; vertical-align: middle; line-height: 1.55; }
th { color: #535d54; background: #f4f6f1; font-size: .8rem; white-space: nowrap; font-weight: 610; }
td { font-variant-numeric: tabular-nums; }
td > :is(strong, b) { display: inline-block; max-width: min(34ch, 100%); overflow-wrap: anywhere; }
tr:last-child td { border-bottom: 0; }
td .btn, td button { font-size: .8rem; min-height: 2.1rem; padding: .32rem .58rem; white-space: nowrap; }
td a, td button { text-underline-offset: 2px; }
.empty { text-align: center; padding: 2.35rem 1rem; color: var(--muted); font-size: .92rem; }
.modal-backdrop { position: fixed; z-index: 30; inset: 0; display: grid; place-items: center; padding: 20px; background: rgb(29 32 29/.43); }
.modal { width: min(100%,690px); max-height: calc(100dvh - 40px); display: flex; flex-direction: column; background: white; border-radius: 12px; overflow: hidden; box-shadow: 0 14px 60px rgb(22 25 20/.2); }
.modal-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); padding: 1rem 1.3rem; }
.modal-head :is(h1,h2,h3,h4) { margin: 0; font-size: 1.18rem; }
.modal-head > button { min-width: 36px; min-height: 36px; padding: .3rem; }
.modal-body { min-width: 0; overflow: auto; overscroll-behavior: contain; padding: 1.25rem 1.3rem; }
.modal-body .field, .modal-body > .toolbar, .modal-body > table, .modal-body > .table-wrap { margin-bottom: .9rem; }
.modal-body .actions { margin-top: 1rem; }
.toast { position: fixed; z-index: 55; left: 50%; bottom: 24px; transform: translateX(-50%); background: #252b26; color: white; border-radius: 8px; max-width: min(520px,calc(100% - 24px)); padding: .72rem 1.15rem; font-size: .9rem; box-shadow: 0 4px 22px rgb(30 36 30/.15); }
.toast:empty { display: none; }
@media (min-width: 1550px) {
  .app-shell { grid-template-columns: 246px minmax(0,1fr); }
  .sidebar { padding-left: 23px; padding-right: 23px; }
}
@media (max-width: 1000px) {
  .app-shell { grid-template-columns: 178px minmax(0,1fr); }
  .sidebar { padding-inline: 10px; }
  #content { padding-inline: 20px; }
  .login-form-panel { padding-inline: 34px; }
}
@media (max-width: 730px) {
  .login-layout { grid-template-columns: 1fr; }
  .login-form-panel { min-height: 100dvh; padding: 24px max(22px,calc((100vw - 500px)/2)); }
  .login-inner { width: 100%; padding-block: 36px; }
  .login-visual { display: none; }
  .app-shell { display: block; }
  .sidebar { height: auto; position: static; display: grid; grid-template-columns: 1fr auto; gap: .6rem; padding: .65rem 1rem 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .sidebar .brand { margin: 0; align-self: center; }
  .sidebar .brand img { width: 31px; height: 31px; }
  .sidebar .brand strong { font-size: 1.02rem; }
  .sidebar .brand small { font-size: .52rem; }
  .sidebar .role-label { display: none; }
  .sidebar nav { grid-column: 1/-1; grid-row: 2; flex-direction: row; flex-wrap: nowrap; overflow-x: auto; padding: .15rem 0 .55rem; }
  .nav-link { flex: none; width: auto; justify-content: center; white-space: nowrap; padding: .48rem .6rem; font-size: .85rem; min-height: 40px; gap: .35rem; }
  .nav-icon { width: 16px; height: 17px; }
  .nav-icon svg { width: 16px; height: 16px; }
  .sidebar-bottom { margin: 0; border: 0; padding: 0; grid-column: 2; grid-row: 1; display: flex; align-items: center; }
  .sidebar-bottom button { width: auto; padding: .35rem .62rem; min-height: 36px; }
  .topbar { min-height: 40px; padding: .42rem 1rem; }
  .breadcrumb, .session { font-size: .77rem; }
  #content { padding: 20px 15px 65px; }
  .page-head { flex-wrap: wrap; align-items: flex-start; margin-bottom: 1.05rem; gap: .65rem; }
  .page-head h1 { font-size: 1.6rem; }
  .card { padding: .9rem; border-radius: 10px; }
  .actions, .toolbar { gap: .45rem; }
  .grid { gap: .65rem; }
  th, td { padding: .63rem .58rem; }
  .table-wrap table { min-width: max-content; }
  .modal-backdrop { padding: 10px; }
  .modal { max-height: calc(100dvh - 20px); }
  .modal-body, .modal-head { padding-inline: .95rem; }
  .modal-body { padding-bottom: max(1rem,env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; transition-duration: .001ms !important; }
}
@media print {
  :root, body { background: white; }
  .app-shell { display: block; }
  .sidebar, .topbar, .actions, .toast, .toolbar { display: none !important; }
  #content { padding: 0; }
  .card, .table-wrap { overflow: visible; }
}

.forecast-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;margin-bottom:10px}
#cc-forecast-lines fieldset {min-width:0;margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:8px}
.package-list td { vertical-align:top; overflow-wrap:anywhere; }
.package-contents { list-style:none; margin:0; padding:0; }
.package-contents li { padding:0; margin:0; color:var(--muted); }
.package-contents li+li { margin-top:.55rem; padding-top:.55rem; border-top:1px solid var(--line); }
.package-specs { display:flex; flex-wrap:wrap; gap:.15rem .85rem; font-variant-numeric:tabular-nums; }
.package-specs b { color:var(--ink); }
.package-item-line { margin-top:.15rem; font-size:.82rem; }
.review-group + .review-group { margin-top:1.35rem; }
.review-group h3 { margin-bottom:.45rem; }
.review-items { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.review-item { padding:.8rem 0; border-bottom:1px solid var(--line); }
.review-state, .review-actions, .review-list-note { display:flex; align-items:center; flex-wrap:wrap; gap:.35rem .6rem; }
.review-list-note, .review-counts, .review-actions { margin-top:.4rem; }
.review-counts { display:flex; flex-wrap:wrap; gap:.2rem .85rem; color:var(--muted); font-variant-numeric:tabular-nums; }
@media(max-width:730px){
 .review-task-list table, .review-task-list tbody { display:block; }
 .review-task-list .table-wrap table { min-width:0; }
 .review-task-list thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
 .review-task-list tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem; padding:.8rem 0; border-bottom:1px solid var(--line); }
 .review-task-list td { grid-column:1/-1; display:block; padding:0; border:0; white-space:normal; overflow-wrap:anywhere; }
 .review-task-list td:nth-child(3), .review-task-list td:nth-child(4) { grid-column:span 1; }
 .review-task-list td:nth-child(3)::before { content:"预报 "; color:var(--muted); }
 .review-task-list td:nth-child(4)::before { content:"实扫 "; color:var(--muted); }
 .package-list .table-wrap table { display:block; min-width:0; }
 .package-list thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
 .package-list tbody { display:block; }
 .package-list tr { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.5rem; padding:.85rem 0; border-bottom:1px solid var(--line); }
 .package-list td { display:block; padding:0; border:0; white-space:normal; }
 .package-list td:nth-child(n+3) { grid-column:1/-1; }
 .inventory-list tr { grid-template-columns:minmax(0,1fr); }
}
.customer-address-list { margin:0; padding:0; list-style:none; }
.customer-address-list li { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:.8rem; padding:.9rem 0; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.customer-address-list li:last-child { border-bottom:0; }
.customer-address-list p { margin:.3rem 0; }
.address-region-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr)); gap:.65rem; }
#customerAddressForm [data-address-region] { margin-bottom:.9rem; }
.address-photo { width:100%; max-height:126px; object-fit:contain; background:var(--soft); border-radius:6px; }
.address-error { margin:.5rem 0; color:var(--brand-hover); }

.operator-overview {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,315px),1fr));gap:1rem;margin-bottom:1rem}
.operator-overview .card {margin:0}
.operator-overview form {justify-content:flex-start;align-items:flex-end}
.operator-overview .field {margin:0;flex:1;min-width:130px}

.wh-pack-layout { display:grid; gap:1rem; align-items:start; }
.wh-pack-layout > .card { min-width:0; margin:0; }
#whWork form, .wh-box { display:grid; gap:.75rem; }
.wh-box { margin:0; }
.wh-box-tools { display:flex; gap:.6rem; flex-wrap:wrap; align-items:center; }
.wh-dims { display:grid; gap:.55rem; grid-template-columns:repeat(3,minmax(0,1fr)); }
.wh-box details label + label { margin-top:.45rem; }
@media(min-width:1200px){ .wh-pack-layout { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); } }

.wh-receive-layout { display:grid; align-items:start; gap:1rem; }
.wh-receive-layout > .card { min-width:0; margin:0; }
@media(min-width:1250px) {
  .wh-receive-layout { grid-template-columns:minmax(0, 1.55fr) minmax(350px, 1fr); }
  .wh-receive-layout > .card:last-child .table-wrap { max-height:calc(100vh - 310px); min-height:230px; overflow:auto; }
  .wh-receive-layout > .card:last-child th { position:sticky; top:0; background:var(--soft); }
  .wh-receive-layout > .card:last-child :is(th,td) { padding:.55rem .4rem; }
}
@media(max-width:730px) {
  [data-role="staff"] .sidebar nav { display:grid; grid-auto-columns:minmax(0,1fr); grid-auto-flow:column; gap:2px; }
  [data-role="staff"] .sidebar nav button { padding-inline:.2rem; min-width:0; }
}
@media(max-width:370px) {
  [data-role="staff"] .nav-link .nav-icon {display:none}
}

@media (max-width:730px) {
  .ewe-box-detail .table-wrap table, .ewe-box-detail tbody { display:block; min-width:0; }
  .ewe-box-detail thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .ewe-box-detail tr { display:block; padding:.65rem 0; border-bottom:1px solid var(--line); }
  .ewe-box-detail td { display:block; padding:.2rem 0; white-space:normal; border:0; overflow-wrap:anywhere; }
  .ewe-box-detail td:nth-child(2)::before {content:"物流单号　"}
  .ewe-box-detail td:nth-child(3)::before {content:"实重　"}
  .ewe-box-detail td:nth-child(4)::before {content:"运费　"}
}

.wh-scan-line { display:grid; grid-template-columns:minmax(10rem,1fr) auto; align-items:end; gap:.4rem .65rem; margin:.85rem 0; }
.wh-scan-line .field { margin:0; }
.wh-scan-line .actions { margin:0; }
.wh-scan-line :disabled { opacity:.65; cursor:default; }
@media(max-width:1150px){.wh-scan-line {grid-template-columns:1fr}}

.order-waybills,.tracking-number {overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.order-waybills {margin-top:.45rem;font-size:.86rem}
.order-waybills > span,.tracking-clock,.tracking-events time {color:var(--muted);font-size:.84rem}
.tracking-events {list-style:none;margin:.75rem 0 0;padding:0 0 0 .6rem}
.tracking-events li {position:relative;padding:0 0 1rem 1.2rem;border-left:1px solid var(--line-strong)}
.tracking-events li:last-child {border-left-color:transparent;padding-bottom:0}
.tracking-events li::before {content:"";position:absolute;left:-.28rem;top:.45rem;width:.5rem;height:.5rem;border-radius:50%;background:var(--line-strong)}
.tracking-events li:first-child::before {background:var(--brand)}
.tracking-events li > * {display:block}
.tracking-events li span {font-size:.9rem}

.forecast-sheet {min-width:0}
.forecast-sheet .toolbar {justify-content:space-between}
.forecast-sheet .table-wrap {overflow-x:auto;border:1px solid var(--line);border-radius:6px}
.forecast-sheet table {width:100%;min-width:850px;border-collapse:collapse;table-layout:fixed}
.forecast-sheet th,.forecast-sheet td {padding:.36rem .4rem;border-right:1px solid var(--line);vertical-align:middle}
.forecast-sheet th:first-child {width:3rem}
.forecast-sheet thead th:nth-child(2),.forecast-sheet thead th:nth-child(3) {width:16%}
.forecast-sheet thead th:nth-child(7),.forecast-sheet thead th:nth-child(8) {width:7%}
.forecast-sheet thead th:last-child {width:7rem}
.forecast-sheet td input {width:100%;min-width:0;min-height:38px;padding:.4rem;border:1px solid transparent;background:var(--paper);border-radius:3px}
.forecast-sheet td input:focus {outline:2px solid var(--brand);outline-offset:-2px}
.forecast-sheet tbody tr:nth-child(even) td {background:var(--canvas)}
.forecast-sheet tbody tr:not([data-reason=""]) {background:#fff4e0}
.forecast-sheet tbody th, .forecast-sheet .forecast-error {font-size:.8rem}
.forecast-sheet .forecast-error {margin:.2rem 0;color:#81450c;white-space:normal}
.forecast-submit {margin:1rem 0 0}
#cc-batch-result:not(:empty) {margin-top:.85rem}
@media(max-width:730px){.forecast-sheet .table-wrap table {min-width:850px}}

.barcode-camera{display:block;width:100%;max-height:58vh;object-fit:contain;background:#202020;border-radius:8px}
