:root{--blue:#0639a6;--blue2:#0798e8;--red:#e4251a;--gold:#ffd21c;--green:#0b7a48;--bg:#f3f7ff;--text:#17214d;--muted:#667395;--line:#dbe7ff;--card:#fff}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Arial,sans-serif;color:var(--text)}button,.secondary,.danger{border:0;border-radius:12px;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;font-weight:800;padding:11px 16px;cursor:pointer;box-shadow:0 8px 18px rgba(6,57,166,.12)}.secondary{background:#fff;color:var(--blue);border:1px solid var(--line);box-shadow:none}.danger{background:#fff2f2;color:var(--red);border:1px solid #ffd3d3;box-shadow:none}.file-label input{display:none}.app{display:flex;min-height:100vh}.sidebar{width:250px;background:#fff;padding:20px;border-right:1px solid var(--line);position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.brand img{width:60px;height:60px;object-fit:contain;background:#fff;border-radius:16px}.brand strong{display:block;font-size:20px;color:var(--blue)}.brand span{font-size:12px;color:var(--muted);font-weight:800}.nav{display:block;width:100%;margin:8px 0;background:#f8fbff;color:var(--text);box-shadow:none;text-align:left}.nav.active{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff}.main{flex:1;padding:24px;min-width:0}.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:16px}.top h1{margin:0;color:var(--blue);font-size:30px}.top p{margin:6px 0 0;color:var(--muted)}.top-actions{display:flex;gap:10px;flex-wrap:wrap}.tab{display:none}.tab.show{display:block}.grid.two{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);gap:18px}.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:0 12px 34px rgba(6,57,166,.06);margin-bottom:18px}.card h2{margin:0 0 16px;color:var(--blue)}.form-grid,.editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}label{display:block;font-weight:800;color:#31406c}input,select,textarea{width:100%;margin-top:7px;border:1px solid var(--line);border-radius:12px;padding:11px;background:#fff;font-size:15px;color:var(--text)}textarea{min-height:80px;resize:vertical}.checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.checks label{background:#f7faff;border:1px solid var(--line);border-radius:12px;padding:10px;font-size:14px}.checks input{width:auto;margin:0 6px 0 0}.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.calc-line{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed var(--line);padding:9px 0;font-weight:700}.calc-line.minus strong{color:var(--red)}.calc-total{margin-top:14px;border-radius:18px;background:linear-gradient(135deg,#fff7d0,#fff);border:1px solid #ffe49b;padding:16px}.calc-total b{display:block;color:var(--red);font-size:30px;margin-top:8px}.quote-wrap{display:flex;justify-content:center}.quote-sheet{width:1080px;background:#fff;border:1px solid var(--line);border-radius:26px;padding:28px;position:relative;overflow:hidden;box-shadow:0 14px 38px rgba(6,57,166,.08)}.quote-sheet:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:none;z-index:0}.quote-inner{position:relative;z-index:1}.sheet-head{display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:center;background:linear-gradient(135deg,#eaf7ff,#fff,#fff3c0);border-radius:22px;padding:18px}.sheet-logo{width:130px;height:130px;object-fit:contain}.sheet-title h2{font-size:42px;margin:0;color:var(--blue)}.sheet-title h3{font-size:34px;margin:8px 0;color:#111b63}.slogan{display:inline-block;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;border-radius:999px;padding:9px 20px;font-weight:900}.info-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:14px}.info{border:1px solid var(--line);border-radius:18px;padding:14px;background:#fff}.info small{display:block;color:var(--blue);font-weight:900;font-size:16px}.info b{display:block;margin-top:7px;font-size:18px;color:#111b63}.info span{display:block;margin-top:5px;color:var(--muted);font-size:12px}.promo-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.promo{border-radius:18px;padding:15px;border:1px solid var(--line);background:#f8fbff}.promo.red{background:linear-gradient(135deg,#fff5f5,#fff9e8);border-color:#ffd9d9}.promo h4{margin:0 0 8px;color:var(--red)}.promo.blue h4{color:var(--blue)}.cost-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.panel{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff}.panel h4{margin:0;padding:13px 16px;background:var(--blue);color:#fff;font-size:19px}.panel.green h4{background:var(--green)}table{width:100%;border-collapse:collapse;font-size:12px}th,td{border:1px solid var(--line);padding:6px;text-align:left}th{background:#f5f8ff;color:var(--blue)}.amount{font-weight:900;color:var(--blue)}.panel-total{padding:12px 16px;text-align:right;font-weight:900;color:var(--blue);font-size:18px}.panel-total strong{font-size:26px;color:var(--red)}.summary{margin-top:14px;border-radius:22px;border:1px solid var(--line);background:#fbfdff;padding:16px;text-align:center}.summary h4{margin:0 0 12px;color:var(--blue);font-size:24px}.sum-grid{display:grid;grid-template-columns:1fr 40px 1fr 40px 1.1fr;align-items:center;gap:10px}.sum-item{background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px;text-align:left}.sum-item small{display:block;color:var(--muted);font-weight:800}.sum-item b{display:block;color:var(--blue);font-size:22px;margin-top:4px}.plus,.equals{font-size:36px;color:var(--blue);font-weight:900}.final b{font-size:34px;color:var(--red)}.foot{margin-top:14px;background:#fff7e8;border:1px solid #ffdf9f;border-radius:16px;padding:12px;font-size:13px;color:#334}.list-item{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:12px;margin:8px 0;background:#fff}.list-actions{display:flex;gap:8px;flex-wrap:wrap}.list-actions button{padding:8px 10px;font-size:13px}.sub-box{border:1px solid var(--line);border-radius:16px;padding:14px;margin-top:14px;background:#fbfdff}.sub-box h3{margin:0 0 12px;color:var(--blue)}.muted{color:var(--muted)}.logo-preview{width:130px;height:90px;object-fit:contain;border:1px solid var(--line);border-radius:12px;background:#fff;margin-top:8px}@media(max-width:1180px){.app{display:block}.sidebar{position:relative;width:100%;height:auto;display:flex;gap:8px;overflow:auto;align-items:center}.brand{margin:0 10px 0 0;min-width:210px}.nav{min-width:110px;text-align:center}.grid.two,.cost-grid,.promo-grid{grid-template-columns:1fr}.form-grid,.checks,.info-grid{grid-template-columns:1fr}.quote-sheet{width:100%}.sum-grid{grid-template-columns:1fr}.plus,.equals{display:none}}@media print{@page{size:A4 portrait;margin:0}body{background:#fff}.sidebar,.top,.card:not(.print-keep){display:none!important}.main{padding:0}.tab{display:block}.quote-wrap{display:block}.quote-sheet{width:210mm;height:297mm;margin:0;border:0;border-radius:0;box-shadow:none;transform:scale(.72);transform-origin:top left;padding:8mm;overflow:hidden}}


/* 员工 / 管理员权限模式 */
.employee-mode .admin-only {
  display: none !important;
}

.admin-mode .employee-only {
  display: none !important;
}

.role-box {
  margin-top: 20px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #f8fbff;
}

.role-hint {
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
  margin-bottom: 10px;
}

.role-box button {
  width: 100%;
  justify-content: center;
}

.employee-mode #saveRecord {
  display: none !important;
}

.employee-mode .top-actions {
  display: none !important;
}


/* 价格单导入与课程课时显示 */
#priceText {
  min-height: 170px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 13px;
  line-height: 1.55;
}
#importResult {
  margin-top: 10px;
}
.quote-table td:nth-child(4),
.quote-table th:nth-child(4) {
  min-width: 80px;
}

.local-note {
  display: block;
  margin-top: 6px;
  color: #e4251a;
  font-weight: 800;
  font-size: 13px;
}

.cloud-box {
  margin-top: 18px;
  border: 1px solid #dbe7ff;
  background: #f8fbff;
  border-radius: 18px;
  padding: 16px;
}
.cloud-status {
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #eef8ff;
  color: #0639a6;
  font-weight: 800;
}
.cloud-status.bad {
  background: #fff1f1;
  color: #c40000;
}


/* V8 员工授权登录 */
.login-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #eaf7ff, #fff7d9);
  padding: 24px;
}
.locked-mode .login-overlay {
  display: flex;
}
.locked-mode .app {
  filter: blur(2px);
  pointer-events: none;
  user-select: none;
}
.login-card {
  width: min(430px, 100%);
  background: #fff;
  border: 1px solid #dbe7ff;
  border-radius: 28px;
  box-shadow: 0 24px 80px rgba(6,57,166,.18);
  padding: 28px;
  text-align: center;
}
.login-card img {
  width: 168px;
  height: 168px;
  object-fit: contain;
  margin: 0 auto 8px;
}
.login-card h1 {
  margin: 0;
  color: #0639a6;
  font-size: 26px;
}
.login-card p {
  color: #667395;
  font-weight: 800;
  margin: 8px 0 20px;
}
.login-card label {
  display: block;
  text-align: left;
  font-weight: 900;
  color: #17214d;
  margin: 12px 0;
}
.login-card input {
  margin-top: 8px;
  width: 100%;
  height: 48px;
  border: 1px solid #dbe7ff;
  border-radius: 14px;
  padding: 0 14px;
  font-size: 16px;
}
.login-card button {
  width: 100%;
  margin-top: 10px;
  justify-content: center;
}
.login-tip {
  margin-top: 14px;
  padding: 12px;
  border-radius: 14px;
  background: #f8fbff;
  color: #667395;
  font-size: 13px;
  line-height: 1.6;
  text-align: left;
}
.employee-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 14px;
}
.employee-table th,
.employee-table td {
  border-bottom: 1px solid var(--line);
  padding: 10px;
  text-align: left;
  vertical-align: middle;
}
.employee-code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  background: #f5f7ff;
  border-radius: 8px;
  padding: 4px 6px;
  display: inline-block;
}
.badge-ok {
  background: #e9f9f0;
  color: #0b7a48;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
}
.badge-bad {
  background: #fff1f1;
  color: #c40000;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
}


/* V9.1 报价单图片预览下载层 */
.image-preview-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(7, 18, 45, .72);
  padding: 16px;
}
.image-preview-modal.show {
  display: flex;
}
.image-preview-card {
  width: min(920px, 100%);
  max-height: 94vh;
  background: #fff;
  border-radius: 22px;
  box-shadow: 0 20px 80px rgba(0,0,0,.28);
  padding: 16px;
  overflow: hidden;
}
.image-preview-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}
.image-preview-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 10px 0;
}
.button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0 16px;
  border-radius: 12px;
  background: #0639a6;
  color: #fff;
  text-decoration: none;
  font-weight: 900;
}
.image-preview-scroll {
  max-height: 72vh;
  overflow: auto;
  background: #f3f6fb;
  border-radius: 14px;
  padding: 10px;
  text-align: center;
}
.image-preview-scroll img {
  width: min(100%, 720px);
  height: auto;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
  background: #fff;
}
@media (max-width: 720px) {
  .image-preview-card {
    max-height: 96vh;
    border-radius: 18px;
    padding: 12px;
  }
  .image-preview-scroll {
    max-height: 70vh;
    padding: 6px;
  }
  .button-link,
  .image-preview-actions button {
    width: 100%;
  }
}


/* V10.1 多课程 / 多宿舍 */
.multi-options {
  display: none;
  margin-top: 14px;
  padding: 14px;
  border: 1px dashed var(--line);
  border-radius: 16px;
  background: #f8fbff;
}
.multi-options.show {
  display: block;
}
.multi-options h3 {
  margin: 0 0 6px;
  color: #0639a6;
}


/* V10.8 课程课时 & 稳定导图增强 */
.course-extra {
  margin-top: 14px;
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 12px;
}
.course-extra > div {
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  padding: 14px 16px;
}
.course-extra h4 {
  margin: 0 0 10px;
  color: var(--blue);
  font-size: 18px;
}
.course-extra-list {
  display: grid;
  gap: 8px;
}
.course-row {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 10px;
  align-items: start;
  border-bottom: 1px dashed var(--line);
  padding-bottom: 7px;
}
.course-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.course-row b {
  color: #111b63;
  font-size: 15px;
}
.course-row span {
  color: #44506f;
  font-size: 14px;
  line-height: 1.45;
  white-space: pre-wrap;
}
.promo p {
  white-space: pre-wrap;
  line-height: 1.55;
}
.quote-export-host .quote-sheet,
.quote-sheet.exporting {
  width: 1080px !important;
  max-width: none !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}
.quote-export-host .info-grid,
.quote-sheet.exporting .info-grid {
  display: grid !important;
  grid-template-columns: repeat(5,1fr) !important;
}
.quote-export-host .promo-grid,
.quote-sheet.exporting .promo-grid,
.quote-export-host .cost-grid,
.quote-sheet.exporting .cost-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
}
.quote-export-host .sum-grid,
.quote-sheet.exporting .sum-grid {
  display: grid !important;
  grid-template-columns: 1fr 40px 1fr 40px 1.1fr !important;
}
.quote-export-host .course-extra,
.quote-sheet.exporting .course-extra {
  display: grid !important;
  grid-template-columns: 1.25fr .75fr !important;
}
.quote-export-host .plus,
.quote-export-host .equals,
.quote-sheet.exporting .plus,
.quote-sheet.exporting .equals {
  display: block !important;
}
@media(max-width:1180px){
  .course-extra{grid-template-columns:1fr}
  .course-row{grid-template-columns:1fr}
}


/* V10.9 手机端导图稳定修复 */
.quote-export-host {
  contain: layout style paint;
}
.quote-export-host .quote-sheet,
.quote-sheet.exporting {
  width: 1080px !important;
  max-width: 1080px !important;
  min-width: 1080px !important;
  box-sizing: border-box !important;
  overflow: visible !important;
  transform: none !important;
}
.quote-export-host table,
.quote-sheet.exporting table {
  page-break-inside: avoid;
}
.quote-export-host img,
.quote-sheet.exporting img {
  max-width: 100%;
}

/* V11.3 报价图模板按确认版优化 */
.quote-sheet{
  width:1080px;
  padding:28px;
  border-radius:28px;
}
.sheet-head{
  grid-template-columns: 160px 1fr;
  gap: 22px;
  align-items: center;
  min-height: 165px;
  background: linear-gradient(90deg,#eaf7ff 0%,#eef8ff 54%,#fff4cd 100%);
}
.sheet-logo{
  width:120px;
  height:120px;
  justify-self:center;
}
.sheet-title h2{
  font-size: 34px;
  line-height:1.1;
  margin-bottom:8px;
}
.sheet-title h3{
  font-size: 28px;
  line-height:1.15;
  margin: 0 0 12px;
}
.slogan{
  font-size: 15px;
  padding: 10px 18px;
}
.info-grid{
  margin-top: 16px;
  gap: 12px;
}
.info{
  min-height: 132px;
  padding: 14px 16px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}
.info small{
  font-size:15px;
}
.info b{
  font-size:17px;
  line-height:1.35;
}
.info span{
  font-size:12px;
  line-height:1.5;
  white-space:normal;
}
.course-extra{
  margin-top: 16px;
  display:grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 12px;
}
.course-extra>div{
  border:1px solid var(--line);
  border-radius:18px;
  padding:14px 16px;
  background:#fff;
}
.course-extra h4{
  margin:0 0 10px;
  color:var(--blue);
  font-size:16px;
}
.course-row{
  grid-template-columns: 220px 1fr;
}
.promo-grid,.cost-grid{
  margin-top:16px;
}
.promo{
  min-height: 118px;
}
.promo h4{
  font-size:16px;
}
.promo p{
  font-size:14px;
}
.panel h4{
  font-size:18px;
}
.panel-total{
  font-size:16px;
}
.panel-total strong{
  font-size:24px;
}
.summary{
  margin-top:16px;
}
.foot{
  margin-top:16px;
  line-height:1.55;
}
.quote-export-host .course-extra,
.quote-sheet.exporting .course-extra {
  display:grid !important;
  grid-template-columns: 1.6fr 1fr !important;
}
@media(max-width:1180px){
  .sheet-title h2{font-size:28px;}
  .sheet-title h3{font-size:24px;}
  .course-extra{grid-template-columns:1fr;}
  .course-row{grid-template-columns:1fr;}
}


/* V11.4 报价单模板精修：更接近确认截图 */
.quote-sheet{
  width:1080px;
  padding:30px;
  border-radius:28px;
  border:1px solid #dbe7ff;
  background:#fff;
}
.quote-inner{
  position:relative;
  z-index:1;
}
.sheet-head{
  min-height:168px;
  grid-template-columns:160px 1fr;
  gap:22px;
  padding:24px 28px;
  border-radius:24px;
  background:linear-gradient(90deg,#eaf7ff 0%,#f7fbff 55%,#fff4c9 100%);
}
.sheet-logo{
  width:112px;
  height:112px;
  justify-self:center;
}
.sheet-title h2{
  font-size:36px;
  line-height:1.12;
  letter-spacing:-1px;
  margin:0 0 12px;
}
.sheet-title h3{
  font-size:30px;
  line-height:1.12;
  margin:0 0 12px;
  color:#111b63;
}
.slogan{
  font-size:15px;
  padding:9px 18px;
  border-radius:999px;
}
.info-grid{
  grid-template-columns:repeat(5,1fr);
  gap:12px;
  margin-top:16px;
}
.info{
  min-height:130px;
  border-radius:16px;
  padding:14px 15px;
  display:flex;
  flex-direction:column;
}
.info small{
  font-size:15px;
  color:#0639a6;
}
.info b{
  font-size:17px;
  line-height:1.35;
  margin-top:8px;
}
.info span{
  font-size:12px;
  line-height:1.5;
}
.course-extra{
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:12px;
  margin-top:14px;
}
.course-extra>div{
  border:1px solid var(--line);
  border-radius:18px;
  padding:14px 16px;
  background:#fff;
}
.course-extra h4{
  margin:0 0 10px;
  color:#0639a6;
  font-size:17px;
}
.course-row{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:10px;
}
.course-row b{
  font-size:15px;
}
.course-row span{
  font-size:14px;
  line-height:1.45;
}
.promo-grid{
  margin-top:14px;
  gap:12px;
}
.promo{
  min-height:116px;
  border-radius:18px;
  padding:15px 17px;
}
.promo h4{
  font-size:16px;
  margin-bottom:10px;
}
.promo p{
  font-size:14px;
  line-height:1.58;
  white-space:pre-wrap;
}
.cost-grid{
  gap:14px;
  margin-top:14px;
}
.panel{
  border-radius:20px;
}
.panel h4{
  font-size:18px;
  padding:14px 16px;
}
table{
  font-size:12px;
}
th,td{
  padding:7px 6px;
  line-height:1.35;
}
.panel-total{
  padding:14px 16px;
  font-size:17px;
}
.panel-total strong{
  font-size:26px;
}
.summary{
  margin-top:16px;
  padding:18px 16px;
  border-radius:22px;
}
.summary h4{
  font-size:25px;
  margin-bottom:16px;
}
.sum-grid{
  grid-template-columns:1fr 44px 1fr 44px 1.15fr;
  gap:12px;
}
.sum-item{
  border-radius:16px;
  padding:13px 14px;
}
.sum-item b{
  font-size:22px;
}
.final b{
  font-size:34px;
}
.foot{
  margin-top:16px;
  border-radius:16px;
  padding:13px 16px;
  font-size:13px;
  line-height:1.55;
}

/* 导出时强制使用电脑端确认版布局 */
.quote-export-host .quote-sheet,
.quote-sheet.exporting{
  width:1080px!important;
  max-width:1080px!important;
  min-width:1080px!important;
}
.quote-export-host .sheet-head,
.quote-sheet.exporting .sheet-head{
  display:grid!important;
  grid-template-columns:160px 1fr!important;
}
.quote-export-host .info-grid,
.quote-sheet.exporting .info-grid{
  display:grid!important;
  grid-template-columns:repeat(5,1fr)!important;
}
.quote-export-host .course-extra,
.quote-sheet.exporting .course-extra{
  display:grid!important;
  grid-template-columns:1.6fr 1fr!important;
}
.quote-export-host .promo-grid,
.quote-sheet.exporting .promo-grid,
.quote-export-host .cost-grid,
.quote-sheet.exporting .cost-grid{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
}
.quote-export-host .sum-grid,
.quote-sheet.exporting .sum-grid{
  display:grid!important;
  grid-template-columns:1fr 44px 1fr 44px 1.15fr!important;
}
.quote-export-host .plus,
.quote-export-host .equals,
.quote-sheet.exporting .plus,
.quote-sheet.exporting .equals{
  display:block!important;
}
@media(max-width:1180px){
  .quote-sheet{width:100%;}
  .sheet-head{grid-template-columns:120px 1fr;}
  .sheet-logo{width:96px;height:96px;}
  .sheet-title h2{font-size:28px;}
  .sheet-title h3{font-size:24px;}
  .info-grid{grid-template-columns:1fr;}
  .course-extra{grid-template-columns:1fr;}
  .course-row{grid-template-columns:1fr;}
  .promo-grid,.cost-grid{grid-template-columns:1fr;}
  .sum-grid{grid-template-columns:1fr;}
  .plus,.equals{display:none;}
}


/* V11.6 紧凑规格优化：减少空白层，导图与电脑显示保持一致 */
.quote-sheet{
  width:1000px !important;
  max-width:1000px !important;
  padding:22px !important;
  border-radius:24px !important;
}
.sheet-head{
  min-height:138px !important;
  grid-template-columns:140px 1fr !important;
  gap:18px !important;
  padding:18px 22px !important;
  border-radius:20px !important;
}
.sheet-logo{
  width:96px !important;
  height:96px !important;
}
.sheet-title h2{
  font-size:34px !important;
  margin:0 0 8px !important;
}
.sheet-title h3{
  font-size:28px !important;
  margin:0 0 8px !important;
}
.slogan{
  font-size:14px !important;
  padding:8px 16px !important;
}
.info-grid{
  gap:10px !important;
  margin-top:12px !important;
}
.info{
  min-height:110px !important;
  padding:12px 13px !important;
  border-radius:14px !important;
}
.info small{font-size:14px !important;}
.info b{font-size:16px !important; line-height:1.28 !important; margin-top:6px !important;}
.info span{font-size:11px !important; line-height:1.35 !important; margin-top:4px !important;}
.course-extra{
  gap:10px !important;
  margin-top:12px !important;
}
.course-extra>div{
  padding:12px 14px !important;
  border-radius:16px !important;
}
.course-extra h4{font-size:16px !important; margin:0 0 8px !important;}
.course-row{grid-template-columns:190px 1fr !important; gap:8px !important;}
.course-row b{font-size:14px !important;}
.course-row span{font-size:13px !important; line-height:1.35 !important;}
.promo-grid{margin-top:12px !important; gap:10px !important;}
.promo{min-height:98px !important; padding:12px 14px !important; border-radius:16px !important;}
.promo h4{font-size:15px !important; margin-bottom:8px !important;}
.promo p{font-size:13px !important; line-height:1.45 !important; margin:0 !important;}
.cost-grid{gap:12px !important; margin-top:12px !important;}
.panel{border-radius:18px !important;}
.panel h4{font-size:17px !important; padding:12px 14px !important;}
table{font-size:11.5px !important;}
th,td{padding:5px 5px !important; line-height:1.25 !important; vertical-align:top !important;}
.panel-total{padding:12px 14px !important; font-size:16px !important;}
.panel-total strong{font-size:24px !important;}
.summary{margin-top:12px !important; padding:14px !important; border-radius:18px !important;}
.summary h4{font-size:22px !important; margin:0 0 12px !important;}
.sum-grid{grid-template-columns:1fr 34px 1fr 34px 1.08fr !important; gap:8px !important;}
.sum-item{padding:10px 12px !important; border-radius:14px !important;}
.sum-item small{font-size:12px !important;}
.sum-item b{font-size:18px !important; margin-top:2px !important;}
.plus,.equals{font-size:30px !important;}
.final b{font-size:30px !important;}
.foot{margin-top:12px !important; padding:10px 12px !important; border-radius:14px !important; font-size:12px !important; line-height:1.45 !important;}

/* 导图时同步使用紧凑宽度 */
.quote-export-host .quote-sheet,
.quote-sheet.exporting{
  width:1000px !important;
  max-width:1000px !important;
  min-width:1000px !important;
}
.quote-export-host .sheet-head,
.quote-sheet.exporting .sheet-head{
  grid-template-columns:140px 1fr !important;
}
.quote-export-host .course-row,
.quote-sheet.exporting .course-row{
  grid-template-columns:190px 1fr !important;
}


/* V11.8 仅修手机端保存图片，不改报价图模板 */
.image-preview-scroll img {
  -webkit-touch-callout: default !important;
  -webkit-user-select: auto !important;
  user-select: auto !important;
  pointer-events: auto !important;
}
@media (max-width: 720px) {
  .image-preview-scroll img {
    width: 100% !important;
    max-width: none !important;
  }
}


/* V11.9 只修手机端保存流程，不改报价图模板 */
#imagePreviewFull {
  background:#fff7d9;
  color:#7a4b00;
  border:1px solid #ffd98c;
  box-shadow:none;
}
.image-preview-scroll img {
  -webkit-touch-callout: default !important;
  -webkit-user-select: auto !important;
  user-select: auto !important;
  pointer-events: auto !important;
}
@media (max-width: 720px) {
  .image-preview-scroll {
    max-height: 64vh;
  }
  .image-preview-scroll img {
    width: 100% !important;
    max-width: none !important;
  }
}


/* V12 只修手机端保存流程，不改报价图模板 */
#imagePreviewServer {
  background:#0639a6;
  color:#fff;
  border:1px solid #0639a6;
  box-shadow:none;
}
#imagePreviewFull {
  background:#fff7d9;
  color:#7a4b00;
  border:1px solid #ffd98c;
  box-shadow:none;
}
.image-preview-scroll img {
  -webkit-touch-callout: default !important;
  -webkit-user-select: auto !important;
  user-select: auto !important;
  pointer-events: auto !important;
}
@media (max-width: 720px) {
  .image-preview-scroll {
    max-height: 64vh;
  }
  .image-preview-scroll img {
    width: 100% !important;
    max-width: none !important;
  }
}


/* V13 手机端真实 PNG 保存，不改报价图模板 */
#imagePreviewRealPng {
  background:#e4251a;
  color:#fff;
  border:1px solid #e4251a;
  box-shadow:none;
}
#imagePreviewServer {
  background:#0639a6;
  color:#fff;
  border:1px solid #0639a6;
  box-shadow:none;
}
.image-preview-scroll img {
  -webkit-touch-callout: default !important;
  -webkit-user-select: auto !important;
  user-select: auto !important;
  pointer-events: auto !important;
}


/* V14 最终方案：手机端不再下载，改为同模板截图保存页 */
#imagePreviewFinal {
  background:#e4251a;
  color:#fff;
  border:1px solid #e4251a;
  box-shadow:none;
}
@media (max-width:720px){
  #downloadImage::after{
    content:"";
  }
}


/* V15 手机端可下载小JPG，不改报价图模板 */
@media (max-width:720px){
  #downloadImage{
    background:linear-gradient(135deg,#e4251a,#ff7a18);
  }
}


/* V13.6 恢复旧版导出图规格与布局：以后预览与导图统一按旧版大模板显示 */
.quote-sheet{
  width:1080px !important;
  max-width:1080px !important;
  min-width:1080px !important;
  padding:30px !important;
  border-radius:28px !important;
  border:1px solid #dbe7ff !important;
  background:#fff !important;
}
.sheet-head{
  min-height:168px !important;
  display:grid !important;
  grid-template-columns:160px 1fr !important;
  gap:22px !important;
  padding:24px 28px !important;
  border-radius:24px !important;
  background:linear-gradient(90deg,#eaf7ff 0%,#f7fbff 55%,#fff4c9 100%) !important;
}
.sheet-logo{ width:112px !important; height:112px !important; }
.sheet-title h2{ font-size:36px !important; line-height:1.12 !important; margin:0 0 12px !important; }
.sheet-title h3{ font-size:30px !important; line-height:1.12 !important; margin:0 0 12px !important; color:#111b63 !important; }
.slogan{ font-size:15px !important; padding:9px 18px !important; border-radius:999px !important; }
.info-grid{ display:grid !important; grid-template-columns:repeat(5,1fr) !important; gap:12px !important; margin-top:16px !important; }
.info{ min-height:130px !important; border-radius:16px !important; padding:14px 15px !important; display:flex !important; flex-direction:column !important; }
.info small{ font-size:15px !important; }
.info b{ font-size:17px !important; line-height:1.35 !important; margin-top:8px !important; }
.info span{ font-size:12px !important; line-height:1.5 !important; }
.course-extra{ display:grid !important; grid-template-columns:1.6fr 1fr !important; gap:12px !important; margin-top:14px !important; }
.course-extra>div{ padding:14px 16px !important; border-radius:18px !important; }
.course-extra h4{ font-size:17px !important; margin:0 0 10px !important; }
.course-row{ display:grid !important; grid-template-columns:220px 1fr !important; gap:10px !important; }
.course-row b{ font-size:15px !important; }
.course-row span{ font-size:14px !important; line-height:1.45 !important; }
.promo-grid{ display:grid !important; grid-template-columns:1fr 1fr !important; gap:12px !important; margin-top:14px !important; }
.promo{ min-height:116px !important; border-radius:18px !important; padding:15px 17px !important; }
.promo h4{ font-size:16px !important; margin-bottom:10px !important; }
.promo p{ font-size:14px !important; line-height:1.58 !important; }
.cost-grid{ display:grid !important; grid-template-columns:1fr 1fr !important; gap:14px !important; margin-top:14px !important; }
.panel{ border-radius:20px !important; }
.panel h4{ font-size:18px !important; padding:14px 16px !important; }
table{ font-size:12px !important; }
th,td{ padding:7px 6px !important; line-height:1.35 !important; vertical-align:top !important; }
.panel-total{ padding:14px 16px !important; font-size:17px !important; }
.panel-total strong{ font-size:26px !important; }
.summary{ margin-top:16px !important; padding:18px 16px !important; border-radius:22px !important; }
.summary h4{ font-size:25px !important; margin-bottom:16px !important; }
.sum-grid{ display:grid !important; grid-template-columns:1fr 44px 1fr 44px 1.15fr !important; gap:12px !important; }
.sum-item{ border-radius:16px !important; padding:13px 14px !important; }
.sum-item b{ font-size:22px !important; }
.final b{ font-size:34px !important; }
.foot{ margin-top:16px !important; border-radius:16px !important; padding:13px 16px !important; font-size:13px !important; line-height:1.55 !important; }
.quote-export-host .quote-sheet,
.quote-sheet.exporting{ width:1080px !important; max-width:1080px !important; min-width:1080px !important; }
.quote-export-host .sheet-head,
.quote-sheet.exporting .sheet-head{ display:grid !important; grid-template-columns:160px 1fr !important; }
.quote-export-host .info-grid,
.quote-sheet.exporting .info-grid{ display:grid !important; grid-template-columns:repeat(5,1fr) !important; }
.quote-export-host .course-extra,
.quote-sheet.exporting .course-extra{ display:grid !important; grid-template-columns:1.6fr 1fr !important; }
.quote-export-host .promo-grid,
.quote-sheet.exporting .promo-grid,
.quote-export-host .cost-grid,
.quote-sheet.exporting .cost-grid{ display:grid !important; grid-template-columns:1fr 1fr !important; }
.quote-export-host .sum-grid,
.quote-sheet.exporting .sum-grid{ display:grid !important; grid-template-columns:1fr 44px 1fr 44px 1.15fr !important; }
.quote-export-host .plus,
.quote-export-host .equals,
.quote-sheet.exporting .plus,
.quote-sheet.exporting .equals{ display:block !important; }
@media(max-width:1180px){
  .quote-sheet{ width:100% !important; max-width:100% !important; min-width:0 !important; }
  .sheet-head{ grid-template-columns:120px 1fr !important; }
  .sheet-logo{ width:96px !important; height:96px !important; }
  .sheet-title h2{ font-size:28px !important; }
  .sheet-title h3{ font-size:24px !important; }
  .info-grid,.course-extra,.promo-grid,.cost-grid,.sum-grid{ grid-template-columns:1fr !important; }
  .course-row{ grid-template-columns:1fr !important; }
  .plus,.equals{ display:none !important; }
}


/* V14.0 导图细节优化 */
.time-split{display:block;font-size:14px;font-weight:800;line-height:1.55;color:#111b63;}
.course-extra h4{font-size:20px !important;font-weight:900 !important;}
.course-row b{font-size:15px !important;font-weight:900 !important;color:#111b63 !important;}
.course-row span{font-size:13px !important;font-weight:700 !important;line-height:1.55 !important;color:#2e3d64 !important;}
.quote-sheet .info:nth-child(2) span{font-size:14px !important;font-weight:800 !important;line-height:1.55 !important;color:#111b63 !important;}
.quote-sheet .info:nth-child(2) b{font-size:19px !important;font-weight:900 !important;}
.quote-sheet .info:nth-child(3) span,.quote-sheet .info:nth-child(4) span{display:none !important;}

/* V14.1 报价单底部说明：预览与下载图片共用 */
.foot{
  margin-top:16px!important;
  border-radius:16px!important;
  padding:14px 16px!important;
  font-size:13px!important;
  line-height:1.55!important;
  background:#fffaf0!important;
  border:1px solid #ead7ad!important;
  color:#33405c!important;
}
.foot-top{display:flex;align-items:baseline;gap:14px;justify-content:space-between;min-width:0;}
.foot-brand{font-weight:900;color:#156d61;font-size:15px;letter-spacing:.2px;white-space:nowrap;}
.foot-note{color:#526174;font-size:12px;text-align:right;}
.foot-rules-title{margin-top:5px;padding-top:5px;border-top:1px solid #eadfca;font-weight:900;color:#17214d;}
.foot-rules{display:grid;grid-template-columns:1.45fr 1fr 1fr;gap:10px;margin-top:3px;font-size:12px;line-height:1.42;}
.foot-rules span{min-width:0;}
.foot-rules b{color:#156d61;}
.summary .sum-item b{color:#c94f32!important;}
.quote-export-host .foot,.quote-sheet.exporting .foot{width:100%;}
@media(max-width:1180px){.foot-top{align-items:flex-start;flex-direction:column;gap:2px}.foot-note{text-align:left}.foot-rules{grid-template-columns:1fr;gap:3px;}}

/* 无水印专业版：以清晰的头尾品牌信息代替覆盖式图层。 */
.sheet-brand-line{
  margin:0 0 6px;
  color:#5b719c;
  font-size:13px;
  font-weight:900;
  letter-spacing:.08em;
}
.foot strong{
  color:#0639a6;
  font-size:14px;
  letter-spacing:.02em;
}
.image-preview-card{
  width:min(980px,100%);
  border:1px solid #dbe7ff;
  padding:18px;
}
.image-preview-head b{color:#0639a6;font-size:17px;}
.image-preview-actions{margin:12px 0;}
.image-preview-scroll{
  max-height:70vh;
  padding:12px;
  background:linear-gradient(180deg,#f8fbff,#eef5ff);
  border:1px solid #e1ebff;
}
.image-preview-scroll img{
  width:min(100%,800px);
  max-width:100%;
  border-radius:10px;
  image-rendering:auto;
}
@media(max-width:720px){
  .image-preview-card{padding:12px;border-radius:16px;}
  .image-preview-scroll{max-height:67vh;padding:6px;}
  .image-preview-actions{display:grid;grid-template-columns:1fr 1fr;}
  .button-link,.image-preview-actions button{width:100%;}
  .sheet-brand-line{font-size:11px;letter-spacing:.04em;}
}

/* V14.2 费用区纵向阅读版：网页、图片导出与打印共用同一结构。 */
.quote-sheet .cost-grid,
.quote-export-host .cost-grid,
.quote-sheet.exporting .cost-grid{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  gap:16px !important;
  margin-top:16px !important;
}
.quote-sheet .cost-grid .panel{
  width:100%;
}
.quote-sheet .cost-grid .panel h4{
  padding:14px 18px !important;
  font-size:19px !important;
}
.quote-sheet .cost-grid table{
  font-size:13px !important;
}
.quote-sheet .cost-grid th,
.quote-sheet .cost-grid td{
  padding:8px 10px !important;
  line-height:1.45 !important;
}
.quote-sheet .cost-grid .panel-total{
  padding:14px 18px !important;
}
@media print{
  @page{size:A4 portrait;margin:8mm;}
  .quote-sheet{
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    height:auto !important;
    min-height:0 !important;
    padding:0 !important;
    transform:none !important;
    overflow:visible !important;
  }
  .quote-sheet .cost-grid{grid-template-columns:minmax(0,1fr) !important;}
  .quote-sheet .panel{break-inside:avoid;page-break-inside:avoid;}
}

/* V15 · 05号简约编辑版：预览、PNG 导出与打印共用同一份报价单 DOM。 */
.quote-sheet,
.quote-export-host .quote-sheet,
.quote-sheet.exporting{
  --quote-ink:#183b37;
  --quote-green:#1d5d54;
  --quote-green-soft:#edf5f0;
  --quote-orange:#bf603d;
  --quote-orange-soft:#fff4ee;
  --quote-line:#d9dfda;
  background:#fff !important;
  border:1px solid var(--quote-line) !important;
  border-radius:14px !important;
  box-shadow:0 14px 34px rgba(24,59,55,.08) !important;
  padding:28px !important;
  color:var(--quote-ink) !important;
}
.quote-sheet:before{background:none !important;}
.sheet-head{
  min-height:154px !important;
  padding:18px 22px !important;
  border:0 !important;
  border-bottom:1px solid var(--quote-ink) !important;
  border-radius:0 !important;
  background:#fff !important;
  grid-template-columns:128px 1fr !important;
  gap:20px !important;
}
.sheet-logo{width:104px !important;height:104px !important;}
.sheet-brand-line{color:#62726d !important;font-size:12px !important;letter-spacing:.13em !important;}
.sheet-title h2{color:#122c29 !important;font-size:36px !important;letter-spacing:-.02em !important;}
.sheet-title h3{color:#183b37 !important;font-size:27px !important;font-weight:800 !important;}
.slogan{background:var(--quote-green) !important;border-radius:5px !important;padding:7px 13px !important;font-size:13px !important;}
.info-grid{gap:0 !important;margin-top:16px !important;border-top:1px solid var(--quote-line) !important;border-bottom:1px solid var(--quote-line) !important;}
.info{min-height:126px !important;border:0 !important;border-right:1px solid var(--quote-line) !important;border-radius:0 !important;padding:14px 15px !important;background:#fff !important;}
.info:last-child{border-right:0 !important;}
.quote-icon{width:22px;height:22px;object-fit:contain;display:inline-block;flex:0 0 auto;vertical-align:middle;}
.info .quote-icon{margin:0 0 7px;}
.info small{color:#586963 !important;font-size:13px !important;font-weight:800 !important;}
.info b{color:#183b37 !important;font-size:18px !important;margin-top:5px !important;}
.info span,.time-split{color:#485953 !important;font-size:12px !important;}
.course-extra{gap:0 !important;margin-top:14px !important;border-top:1px solid var(--quote-line) !important;border-bottom:1px solid var(--quote-line) !important;}
.course-extra>div{border:0 !important;border-radius:0 !important;padding:14px 16px !important;background:#fff !important;}
.course-extra>div+div{border-left:1px solid var(--quote-line) !important;}
.course-extra h4,.promo h4,.panel h4,.summary h4{display:flex;align-items:center;gap:9px;color:#183b37 !important;}
.course-extra h4{font-size:18px !important;}
.course-extra h4 .quote-icon{width:20px;height:20px;}
.course-row b{color:#183b37 !important;}
.course-row span{color:#4c5d58 !important;}
.promo-grid{gap:12px !important;margin-top:16px !important;}
.promo{min-height:108px !important;padding:15px 17px !important;border-radius:4px !important;background:#fbfcfb !important;border-color:var(--quote-line) !important;}
.promo.red{background:#fffaf7 !important;border-color:#ebcfc2 !important;}
.promo h4{font-size:17px !important;margin:0 0 9px !important;}
.promo.red h4{color:var(--quote-orange) !important;}
.promo.blue h4{color:var(--quote-green) !important;}
.promo h4 .quote-icon{width:21px;height:21px;}
.promo p{color:#42524d !important;font-size:13px !important;line-height:1.65 !important;}
.quote-sheet .cost-grid,.quote-export-host .cost-grid,.quote-sheet.exporting .cost-grid{gap:16px !important;margin-top:18px !important;}
.panel{border:1px solid var(--quote-line) !important;border-radius:4px !important;}
.panel h4{padding:13px 16px !important;background:var(--quote-green) !important;color:#fff !important;font-size:19px !important;}
.panel h4 .quote-icon{width:20px;height:20px;}
.panel.green h4{background:var(--quote-orange) !important;}
th{background:var(--quote-green-soft) !important;color:var(--quote-green) !important;font-weight:900 !important;}
.panel.green th{background:#fff0e9 !important;color:#a94f30 !important;}
.quote-sheet .cost-grid th,.quote-sheet .cost-grid td{border-color:var(--quote-line) !important;padding:8px 10px !important;}
.quote-sheet .cost-grid td{color:#354640 !important;}
.amount{color:var(--quote-green) !important;}
.panel-total{padding:13px 16px !important;color:var(--quote-green) !important;background:#fff !important;}
.panel.green .panel-total{color:#a94f30 !important;}
.panel-total strong{color:var(--quote-orange) !important;}
.summary{padding:16px !important;border:1px solid var(--quote-line) !important;border-radius:4px !important;background:#fff !important;text-align:left !important;}
.summary h4{font-size:22px !important;margin:0 0 14px !important;color:#183b37 !important;}
.summary h4 .quote-icon{width:21px;height:21px;filter:brightness(.55);}
.sum-item{border-color:var(--quote-line) !important;border-radius:4px !important;background:#fff !important;}
.sum-item b{color:var(--quote-orange) !important;}
.plus,.equals{color:var(--quote-green) !important;}
.final b{color:#b94d35 !important;}
.foot{border-radius:4px !important;background:#fffaf3 !important;border-color:#ead8bd !important;color:#485953 !important;}
.foot-brand{color:var(--quote-green) !important;}
.foot-rules-title{color:#183b37 !important;}
.foot-rules b{color:var(--quote-green) !important;}
@media(max-width:1180px){
  .quote-sheet{padding:18px !important;border-radius:10px !important;}
  .sheet-head{min-height:auto !important;grid-template-columns:88px 1fr !important;padding:14px 0 !important;gap:12px !important;}
  .sheet-logo{width:76px !important;height:76px !important;}
  .sheet-title h2{font-size:27px !important;}
  .sheet-title h3{font-size:22px !important;}
  .info-grid,.course-extra,.promo-grid,.sum-grid{gap:10px !important;border:0 !important;}
  .info,.course-extra>div{border:1px solid var(--quote-line) !important;border-radius:4px !important;min-height:0 !important;}
  .course-extra>div+div{border-left:1px solid var(--quote-line) !important;}
  .plus,.equals{display:none !important;}
}
@media(max-width:720px){
  .sidebar{display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:8px !important;overflow:visible !important;padding:12px !important;}
  .brand{grid-column:1 / -1;min-width:0 !important;margin:0 !important;padding:0 0 8px !important;}
  .brand img{width:46px !important;height:46px !important;}
  .brand strong{font-size:17px !important;}
  .brand span{font-size:10px !important;}
  .nav{min-width:0 !important;margin:0 !important;padding:10px 8px !important;text-align:center !important;font-size:13px !important;}
  .role-box{grid-column:1 / -1;margin:2px 0 0 !important;}
  .main{padding:14px 10px !important;}
  .top{align-items:flex-start !important;flex-direction:column !important;margin-bottom:14px !important;}
  .top h1{font-size:24px !important;}
  .top-actions{width:100%;display:grid !important;grid-template-columns:repeat(2,minmax(0,1fr));}
  .top-actions>*{min-width:0 !important;text-align:center;}
  .card{padding:16px !important;border-radius:14px !important;}
  .btn-row{display:grid !important;grid-template-columns:1fr 1fr;}
  .btn-row button{min-width:0 !important;padding:10px 7px !important;font-size:13px !important;}
  .quote-sheet{padding:14px !important;}
  .sheet-head{grid-template-columns:64px 1fr !important;gap:10px !important;}
  .sheet-logo{width:58px !important;height:58px !important;}
  .sheet-title h2{font-size:22px !important;}
  .sheet-title h3{font-size:18px !important;}
  .sheet-brand-line{font-size:9px !important;}
  .slogan{font-size:11px !important;padding:6px 8px !important;}
  .quote-sheet .cost-grid th,.quote-sheet .cost-grid td{padding:7px 5px !important;font-size:11px !important;word-break:break-word;}
  .quote-sheet .cost-grid th:nth-child(1),.quote-sheet .cost-grid td:nth-child(1){width:27%;}
  .quote-sheet .cost-grid th:nth-child(2),.quote-sheet .cost-grid td:nth-child(2){width:36%;}
  .quote-sheet .cost-grid th:nth-child(3),.quote-sheet .cost-grid td:nth-child(3){width:17%;}
  .quote-sheet .cost-grid th:nth-child(4),.quote-sheet .cost-grid td:nth-child(4){width:20%;}
  .panel h4{font-size:16px !important;padding:11px 12px !important;}
  .panel-total{font-size:15px !important;padding:11px 12px !important;}
  .panel-total strong{font-size:22px !important;}
}

/* 打印介质固定使用桌面报价单网格，避免 A4 宽度触发手机断点。 */
@media print{
  /* 长报价单导出为单张长页 PDF，避免费用表被拆成多页或留下大面积空白。 */
  @page{size:297mm 540mm;margin:8mm;}
  .quote-sheet,
  .quote-export-host .quote-sheet,
  .quote-sheet.exporting{
    width:1080px !important;
    min-width:1080px !important;
    max-width:1080px !important;
    margin:0 !important;
    padding:24px !important;
    transform:none !important;
  }
  .sheet-head{display:grid !important;grid-template-columns:128px 1fr !important;}
  .info-grid{display:grid !important;grid-template-columns:repeat(5,minmax(0,1fr)) !important;gap:0 !important;}
  .info{border-radius:0 !important;min-height:126px !important;}
  .course-extra{display:grid !important;grid-template-columns:1.6fr 1fr !important;gap:0 !important;}
  .promo-grid{display:grid !important;grid-template-columns:1fr 1fr !important;gap:12px !important;}
  .quote-sheet .cost-grid{display:grid !important;grid-template-columns:minmax(0,1fr) !important;}
  .sum-grid{display:grid !important;grid-template-columns:1fr 44px 1fr 44px 1.15fr !important;}
  .plus,.equals{display:block !important;}
}
