/* ============================================================
 * 云梯 · 补充样式（Toast / 弹窗 / A4 预览 / 打印）
 * 仅包含原站 Tailwind CSS 中没有的自定义组件，设计语言与原站一致
 * ============================================================ */

/* ---------- Toast 轻提示 ---------- */
.toast-holder{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:300;display:grid;gap:8px;justify-items:center;padding:0 16px}
.toast{background:#0f172a;color:#fff;border-radius:999px;padding:10px 20px;font-size:13px;font-weight:600;box-shadow:0 8px 24px rgba(15,23,42,.25);animation:toast-in .25s;max-width:86vw}
.toast-error{background:#dc2626}
.toast-success{background:#059669}
.toast-out{opacity:0;transition:opacity .3s}
@keyframes toast-in{from{opacity:0;transform:translateY(8px)}}

/* ---------- 通用弹窗 ---------- */
.modal-mask{position:fixed;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:center;justify-content:center;padding:16px}
.modal-box{background:#fff;border-radius:16px;max-width:860px;width:100%;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 24px 64px rgba(15,23,42,.25)}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid #e2e8f0}
.modal-head b{font-size:16px;font-weight:800}
.modal-close{border:none;background:#f1f5f9;border-radius:8px;width:32px;height:32px;font-size:18px;color:#334155;font-weight:700}
.modal-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 18px;border-top:1px solid #e2e8f0;flex-wrap:wrap}

/* ---------- A4 下料单预览 ---------- */
.a4-pages{overflow:auto;padding:16px;display:grid;gap:16px;justify-items:center;background:#eef2f7}
.a4-page{width:100%;max-width:560px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.06),0 8px 24px rgba(15,23,42,.08)}
.a4-hint{font-size:12px;color:#64748b}

/* ---------- A4 弹窗打印模式 ---------- */
@media print{
  body.printing-a4>*{display:none!important}
  body.printing-a4 .modal-mask{display:block!important;position:static;background:none;backdrop-filter:none;padding:0}
  body.printing-a4 .modal-box{max-width:none;width:auto;box-shadow:none}
  body.printing-a4 .modal-head,body.printing-a4 .modal-foot{display:none!important}
  body.printing-a4 .a4-pages{background:none;padding:0;display:block}
  body.printing-a4 .a4-page{max-width:none;width:100%;page-break-after:always;box-shadow:none}
  @page{size:A4 portrait;margin:8mm}
}

/* ---------- 报价单打印模式 ---------- */
@media print{
  body.printing-sheet>*:not(.modal-mask){display:none!important}
  body.printing-sheet .modal-mask{position:static;background:none;padding:0;backdrop-filter:none}
  body.printing-sheet .modal-box{max-width:none;width:100%;box-shadow:none;max-height:none}
  body.printing-sheet .modal-head,body.printing-sheet .modal-foot{display:none!important}
  @page{size:A4 portrait;margin:10mm}
}

/* ---------- 报价单（页面内嵌展示）---------- */
.quote-sheet{background:#fdfbf6;border:1px solid #e7e0d0;border-radius:16px;padding:26px;position:relative}
.quote-sheet .sheet-tip{background:#fef3c7;color:#78350f;border-radius:12px;padding:8px 12px;font-size:12px;margin-bottom:14px}
.sheet-head{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #d6cdb8;padding-bottom:14px;flex-wrap:wrap}
.sheet-head .sh-l small{color:#8b7e63;font-size:12px;display:block}
.sheet-head .sh-l h2{margin:2px 0 0;font-size:22px;font-weight:900}
.sheet-head .sh-r{text-align:right;font-size:12.5px;color:#6b5d45;line-height:1.9}
.sheet-customer{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #d6cdb8;font-size:13.5px;flex-wrap:wrap}
.sheet-table{width:100%;border-collapse:collapse;margin-top:4px;font-size:13px}
.sheet-table th{background:#eef2f7;color:#334155;text-align:left;padding:9px 10px;font-size:12.5px;white-space:nowrap}
.sheet-table td{padding:10px;border-bottom:1px solid #ebe4d4;vertical-align:top}
.sheet-table .st-spec{color:#8b7e63;font-size:12px}
.sheet-table .st-num{font-variant-numeric:tabular-nums;white-space:nowrap}
.sheet-summary{display:flex;justify-content:flex-end;margin-top:10px}
.sheet-summary-inner{background:#fff;border:1px solid #e7e0d0;border-radius:12px;padding:12px 16px;min-width:240px}
.sheet-summary .ss-row{display:flex;justify-content:space-between;gap:18px;font-size:13px;padding:3px 0}
.sheet-summary .ss-total{border-top:1px solid #e7e0d0;margin-top:6px;padding-top:8px;font-weight:800}
.sheet-summary .ss-total .v{color:#0d9488;font-size:18px}
.sheet-notes{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:16px;padding-top:14px;border-top:1px solid #d6cdb8}
@media (max-width:640px){.sheet-notes{grid-template-columns:1fr}}
.sheet-notes h3{margin:0 0 6px;font-size:13.5px;font-weight:800}
.sheet-notes ul{margin:0;padding-left:18px;font-size:12px;color:#4b4132;line-height:1.9}
.sheet-foot{margin-top:14px;font-size:11.5px;color:#8b7e63;text-align:center}
.sheet-stamp{position:absolute;right:30px;top:88px;width:128px;height:128px;opacity:.9}
.sheet-images{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.sheet-images img{max-width:240px;border-radius:12px;border:1px solid #e7e0d0}
.upload-thumbs{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.upload-thumbs img{width:74px;height:74px;object-fit:cover;border-radius:8px;border:1px solid #374151;cursor:pointer}

/* ---------- 图纸缩略（清单内）---------- */
.sheet-holder svg{max-width:100%;height:auto}
.mini-diagram{background:#f8fafc;border-radius:12px;padding:8px}
.mini-diagram svg{max-width:100%;height:auto}

/* ---------- 表单微调（原站样式补充）---------- */
input[type="number"]{font-variant-numeric:tabular-nums}
textarea{resize:vertical}
