/* MotoERP A4 document framework v1 — shared by all new printable A4 documents.
   Rule: preview and print use the same document DOM. Never create a second print-only layout. */
.a4-preview-list{background:#eef2f7;padding:12px;overflow:auto}
.a4-page{box-sizing:border-box;background:#fff;color:#111;width:min(210mm,100%);min-height:297mm;margin:0 auto 14px;padding:14mm 16mm 14mm;font-family:Arial,Helvetica,sans-serif;box-shadow:0 1px 3px rgba(15,23,42,.12);position:relative}
.a4-page:last-child{margin-bottom:0}
.a4-doc-toolbar{display:flex;justify-content:flex-end;gap:8px;margin-bottom:12px}
.a4-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:8mm}
.a4-keep{break-inside:avoid;page-break-inside:avoid}
.a4-num{text-align:right;font-variant-numeric:tabular-nums}

/* Shared landscape/table variant. Use this for all printable register/lager/list documents. */
.a4-page.a4-landscape{width:min(297mm,100%);min-height:210mm;padding:10mm 12mm}
.a4-table{width:100%;border-collapse:collapse;table-layout:fixed}
.a4-table thead{display:table-header-group}.a4-table tbody{display:table-row-group}.a4-table tr{display:table-row}
.a4-table th,.a4-table td{display:table-cell;vertical-align:top}

/* Shared contract component. Uses CSS grid, not HTML tables, so mobile-card table rules can never corrupt it. */
.contract-page{font-size:11px;line-height:1.34}
.contract-copy{position:absolute;right:16mm;top:8mm;font-size:9px;font-weight:700;color:#667085}
.contract-head{display:grid;grid-template-columns:1fr 1fr;gap:12mm;align-items:start;border-bottom:1.2px solid #111;padding-bottom:6mm;margin-bottom:7mm}
.contract-head .seller{font-size:10px;line-height:1.35}.contract-head .seller b{font-size:16px}
.contract-head .title{text-align:right}.contract-head h1{font-size:20px;margin:0 0 2mm;letter-spacing:.4px}
.contract-party{border:1px solid #ccd3dc;padding:3mm;margin:3mm 0;background:#fafafa;border-radius:2mm}
.contract-page h3{font-size:12px;margin:5mm 0 2mm}.contract-page p{margin:0 0 3mm;text-align:justify}
.contract-spec{display:grid;grid-template-columns:30mm 1fr 30mm 1fr;border:1px solid #b8c0ca;border-radius:1.5mm;overflow:hidden;margin:3mm 0 5mm}
.contract-spec>*{min-width:0;padding:2.2mm 2.5mm;border-right:1px solid #b8c0ca;border-bottom:1px solid #b8c0ca;display:flex;align-items:center;overflow-wrap:anywhere}
.contract-spec>*:nth-child(4n){border-right:0}
.contract-spec>*:nth-last-child(-n+4){border-bottom:0}
.contract-spec .label{background:#f3f5f8;color:#30435f;font-weight:700;font-size:9.2px;text-transform:uppercase;letter-spacing:.02em}
.contract-spec .value{font-weight:700;font-size:10.5px}
.contract-sign{display:grid;grid-template-columns:1fr 1fr;gap:25mm;margin-top:15mm;text-align:center}.contract-sign span{font-weight:700}.sigline{border-bottom:1px solid #111;height:15mm;margin-bottom:1.5mm}.contract-sign small{font-size:9px}
.contract-page footer{position:absolute;left:16mm;right:16mm;bottom:8mm;border-top:1px solid #ccc;padding-top:2mm;font-size:8px;color:#666;display:flex;justify-content:space-between}

@media (max-width:760px){
  .a4-preview-list{padding:0;background:#fff;overflow-x:auto}
  .a4-page{width:210mm;min-width:210mm;max-width:210mm;margin:0;box-shadow:none;transform-origin:top left}
  .a4-page.a4-landscape{width:297mm;min-width:297mm;max-width:297mm;min-height:210mm}
  /* Mobile shows the actual A4 sheet in a horizontally scrollable viewer; no card conversion. */
  .contract-page{font-size:10px}
}

@media print{
  /* v5.10.14: print is the SAME A4 sheet as preview — no print-only shrinking/reflow. */
  @page{size:A4 portrait;margin:0}
  html,body{background:#fff!important;margin:0!important;padding:0!important;overflow:visible!important}
  .app-sidebar,.app-header,.a4-doc-toolbar,.statement-print-toolbar,.app-copyright,.no-print,aside,main>header{display:none!important}
  .app-main,main,.page-content{display:block!important;margin:0!important;padding:0!important;width:auto!important;min-width:0!important;max-width:none!important;overflow:visible!important}
  .a4-preview-list{display:block!important;background:#fff!important;padding:0!important;margin:0!important;overflow:visible!important}
  .a4-page{
    display:block!important;box-sizing:border-box!important;
    width:210mm!important;min-width:210mm!important;max-width:210mm!important;
    height:297mm!important;min-height:297mm!important;max-height:297mm!important;
    margin:0!important;padding:14mm 16mm 14mm!important;
    background:#fff!important;color:#111!important;box-shadow:none!important;border:0!important;
    overflow:hidden!important;break-after:page!important;page-break-after:always!important;
    break-inside:avoid-page!important;page-break-inside:avoid!important;
    -webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;
  }
  .a4-page:last-child{break-after:auto!important;page-break-after:auto!important}
  /* Explicitly restore semantic elements because legacy global print CSS hides generic header/footer tags. */
  .a4-page header,.a4-page footer,.contract-head{display:grid!important}
  .contract-page{font-size:11px!important;line-height:1.34!important}
  .contract-copy{right:16mm!important;top:8mm!important;font-size:9px!important}
  .contract-head{grid-template-columns:1fr 1fr!important;gap:12mm!important;align-items:start!important;border-bottom:1.2px solid #111!important;padding-bottom:6mm!important;margin-bottom:7mm!important}
  .contract-head .seller{font-size:10px!important;line-height:1.35!important}.contract-head .seller b{font-size:16px!important}
  .contract-head .title{text-align:right!important}.contract-head h1{font-size:20px!important;margin:0 0 2mm!important;letter-spacing:.4px!important}
  .contract-party{padding:3mm!important;margin:3mm 0!important;border-radius:2mm!important;font-size:inherit!important}
  .contract-page h3{font-size:12px!important;margin:5mm 0 2mm!important}.contract-page p{margin:0 0 3mm!important;text-align:justify!important}
  .contract-spec{display:grid!important;grid-template-columns:30mm 1fr 30mm 1fr!important;margin:3mm 0 5mm!important;border-radius:1.5mm!important}
  .contract-spec>*{padding:2.2mm 2.5mm!important;display:flex!important;min-width:0!important;white-space:normal!important}
  .contract-spec .label{font-size:9.2px!important}.contract-spec .value{font-size:10.5px!important}
  .contract-sign{display:grid!important;grid-template-columns:1fr 1fr!important;gap:25mm!important;margin-top:15mm!important}.sigline{height:15mm!important}
  .contract-page footer{display:flex!important;left:16mm!important;right:16mm!important;bottom:8mm!important;font-size:8px!important}
}
