/* V42.2 ticket system — shared by queries, master-data forms, account cards and documents. */
:root{
  --ticket-ink:var(--ui-primary,#155c49);
  --ticket-ink-dark:var(--ui-primary-dark,#0e4739);
  --ticket-paper:#fffefb;
  --ticket-paper-soft:#fafbf8;
  --ticket-line:color-mix(in srgb,var(--ticket-ink) 18%,#dfe7e3);
  --ticket-gold:var(--ui-gold,#c49346);
  --ticket-shadow:0 18px 48px rgba(24,53,44,.08);
}

/* All module pages read as one composed business document. */
#view.ticket-system-page{position:relative;padding-top:7px}
#view.ticket-system-page:before{content:"BUSINESS  DOCUMENT  ·  " attr(data-ticket-title);display:block;margin:0 0 12px;padding:0 2px;color:var(--ticket-gold);font-size:10px;font-weight:800;letter-spacing:.22em;text-transform:uppercase}
#view.ticket-system-page:after{content:"";position:absolute;left:0;right:0;top:0;height:3px;border-radius:99px;background:linear-gradient(90deg,var(--ticket-ink) 0 72%,var(--ticket-gold) 72% 100%);pointer-events:none}

.ticket-query-bar{position:relative;margin-bottom:18px!important;padding:19px 18px 17px 25px!important;border-radius:4px!important;border-color:var(--ticket-line)!important;background:linear-gradient(180deg,#fff,var(--ticket-paper-soft))!important;box-shadow:var(--ticket-shadow)!important}
.ticket-query-bar:before{content:"查询条件";position:absolute;left:0;top:0;bottom:0;display:grid;place-items:center;width:7px;overflow:hidden;color:transparent;background:var(--ticket-ink)}
.ticket-query-bar:after{content:"FILTER";align-self:center;margin-left:auto;color:color-mix(in srgb,var(--ticket-ink) 52%,#fff);font-size:9px;font-weight:800;letter-spacing:.18em}

.ticket-section,.ticket-system-page>.panel{position:relative;border-radius:5px!important;border-color:var(--ticket-line)!important;background:linear-gradient(180deg,var(--ticket-paper),#fff)!important;box-shadow:var(--ticket-shadow)!important;overflow:hidden}
.ticket-section:before,.ticket-system-page>.panel:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--ticket-ink) 0 76%,var(--ticket-gold) 76%)}
.ticket-section>.panel-head:first-child,.ticket-section>h3:first-child{padding-top:7px}
.ticket-section .panel-head h3:before{content:"SECTION " counter(ticket-section);margin-right:9px;color:var(--ticket-gold);font-size:9px;font-weight:800;letter-spacing:.14em;vertical-align:middle}
.ticket-system-page{counter-reset:ticket-section}.ticket-section{counter-increment:ticket-section}

.ticket-card-group{gap:13px!important}
.ticket-stat-card{position:relative;min-height:116px!important;border-radius:4px!important;border-color:var(--ticket-line)!important;background:linear-gradient(135deg,var(--ticket-paper),color-mix(in srgb,var(--ticket-ink) 4%,#fff))!important;box-shadow:0 9px 28px rgba(20,52,42,.06)!important;overflow:hidden}
.ticket-stat-card:before{content:counter(ticket-card,decimal-leading-zero);counter-increment:ticket-card;position:absolute;right:16px;bottom:10px;color:color-mix(in srgb,var(--ticket-ink) 10%,transparent);font:800 34px/1 Georgia,serif;letter-spacing:-.04em}
.ticket-card-group{counter-reset:ticket-card}
.ticket-stat-card:after{right:-32px!important;top:-42px!important;border:1px solid color-mix(in srgb,var(--ticket-ink) 8%,transparent);border-radius:50%!important;background:transparent!important}

/* Ticket tables: compact ledger headers, clear totals and printable geometry. */
.ticket-table-frame{border-radius:3px!important;border-color:var(--ticket-line)!important;box-shadow:inset 4px 0 0 var(--ticket-ink);background:var(--ticket-paper)!important}
.ticket-table-frame table{width:100%;font-variant-numeric:tabular-nums}
.ticket-table-frame th{height:43px!important;background:color-mix(in srgb,var(--ticket-ink) 8%,#fff)!important;color:var(--ticket-ink-dark)!important;border-bottom:1px solid color-mix(in srgb,var(--ticket-ink) 28%,#fff)!important;font-size:11px!important;letter-spacing:.065em!important}
.ticket-table-frame td{background:transparent;border-color:var(--ticket-line)!important}
.ticket-table-frame tbody tr:nth-child(even){background:color-mix(in srgb,var(--ticket-ink) 2.7%,#fff)}
.ticket-table-frame tbody tr:hover{background:color-mix(in srgb,var(--ticket-ink) 6%,#fff)!important}

/* New / edit dialogs become data-entry tickets rather than loose white boxes. */
.dialog.ticket-form-dialog{width:min(920px,96vw);padding:0!important;border-radius:8px!important;border:1px solid var(--ticket-line)!important;background:var(--ticket-paper)!important;overflow:auto!important}
.dialog.ticket-form-dialog:before{content:"DATA  ENTRY  TICKET";display:block;padding:24px 68px 7px 30px;color:var(--ticket-gold);font-size:10px;font-weight:800;letter-spacing:.25em;border-top:4px solid var(--ticket-ink)}
.dialog.ticket-form-dialog:after{content:"";position:absolute;right:0;top:0;width:24%;height:4px;background:var(--ticket-gold)}
.dialog.ticket-form-dialog #modalBody{padding:0 30px 28px}
.dialog.ticket-form-dialog #modalBody>h2:first-child,.dialog.ticket-form-dialog #modalBody>form>h2:first-child{margin-top:0;padding-bottom:16px;border-bottom:2px solid var(--ticket-ink);font-size:25px}
.dialog.ticket-form-dialog .field label{font-size:12px;color:#65746f;letter-spacing:.025em}
.dialog.ticket-form-dialog input,.dialog.ticket-form-dialog select,.dialog.ticket-form-dialog textarea{border-radius:3px!important;background:#fff!important}
.dialog.ticket-form-dialog .actions{position:relative;margin:24px -30px -28px!important;padding:16px 30px!important;border-top:1px dashed color-mix(in srgb,var(--ticket-ink) 25%,#fff)!important;background:color-mix(in srgb,var(--ticket-ink) 3%,#fff)}
.dialog.ticket-form-dialog .actions:before{content:"OPERATION";margin-right:auto;color:var(--ticket-gold);font-size:9px;font-weight:800;letter-spacing:.18em}
.dialog.ticket-form-dialog .panel{border-radius:4px!important;box-shadow:none!important}

/* Generated sales document is the canonical ticket. Screen, screenshot, PDF and print share it. */
.sale-document.ticket-output-document,.sale-document-v3,.sale-export-document{--doc-green:var(--ticket-ink)!important;--doc-dark:var(--ticket-ink-dark)!important;position:relative;background:var(--ticket-paper)!important}
.sale-document.ticket-output-document:before,.sale-document-v3:before,.sale-export-document:before{background:linear-gradient(90deg,var(--ticket-ink) 0 76%,var(--ticket-gold) 76% 100%)!important}
.sale-document-v3 .sale-doc-head,.sale-export-document .sale-doc-head{border-bottom:2px solid var(--ticket-ink)!important}
.sale-document-v3 .sale-doc-head>div:first-child,.sale-export-document .sale-doc-head>div:first-child{border-left:4px solid var(--ticket-gold);padding-left:16px}
.sale-document-v3 .sale-doc-meta,.sale-export-document .sale-doc-meta{display:grid!important;grid-template-columns:1fr!important;align-content:center!important;gap:3px!important;padding:52px 18px 14px!important;border-radius:4px!important;background:linear-gradient(135deg,color-mix(in srgb,var(--ticket-ink) 5%,#fff),#fff)!important}
.sale-document-v3 .sale-doc-meta b,.sale-export-document .sale-doc-meta b{top:0!important;right:0!important;left:auto!important;max-width:calc(100% - 18px);padding:9px 18px!important;border-radius:0 4px 0 4px!important;white-space:nowrap!important;overflow:visible!important;background:var(--ticket-ink)!important;color:#fff!important}
.sale-document-v3 .sale-doc-customer,.sale-export-document .sale-doc-customer{border-radius:4px!important;border-left:7px solid var(--ticket-ink)!important;background:color-mix(in srgb,var(--ticket-ink) 3%,#fff)!important}
.sale-document-v3 .sale-doc-table,.sale-export-document .sale-doc-table{border-radius:4px!important;overflow:hidden!important}
.sale-document-v3 .sale-doc-table th,.sale-export-document .sale-doc-table th{background:var(--ticket-ink)!important;color:#fff!important}
.sale-document-v3 .sale-doc-table tbody tr:nth-child(even),.sale-export-document .sale-doc-table tbody tr:nth-child(even){background:color-mix(in srgb,var(--ticket-ink) 3%,#fff)!important}
.sale-document-v3 .sale-doc-note,.sale-document-v3 .sale-doc-totals,.sale-export-document .sale-doc-note,.sale-export-document .sale-doc-totals{border-radius:4px!important;border-color:var(--ticket-line)!important}
.sale-document-v3 .sale-doc-totals .grand,.sale-export-document .sale-doc-totals .grand{border-left:4px solid var(--ticket-ink)!important;background:color-mix(in srgb,var(--ticket-ink) 7%,#fff)!important}
.sale-document-v3 .sale-doc-thanks,.sale-export-document .sale-doc-thanks{color:var(--ticket-ink)!important}

/* Keep action footer visually related to the paper without contaminating exports. */
.sale-viewer-v3-actions{border-radius:0!important;border-top:1px solid var(--ticket-line)!important;background:linear-gradient(180deg,#fff,var(--ticket-paper-soft))!important}
.sale-viewer-v3-actions button{border-radius:4px!important}

@media(max-width:850px){
  #view.ticket-system-page:before{letter-spacing:.12em}
  .ticket-query-bar:after{display:none}
  .dialog.ticket-form-dialog{width:calc(100vw - 16px);border-radius:5px!important}
  .dialog.ticket-form-dialog:before{padding-left:18px}
  .dialog.ticket-form-dialog #modalBody{padding:0 18px 22px}
  .dialog.ticket-form-dialog .actions{margin:20px -18px -22px!important;padding:14px 18px!important}
}

@media print{
  .sale-document,.sale-export-document{background:#fff!important;box-shadow:none!important}
  .sale-document:before,.sale-export-document:before{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .sale-doc-table th,.sale-doc-meta b{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
