/* ระบบคำนวณจุดคุ้มทุนโซล่าเซลล์ — นรสิงห์ โซล่าเซลล์
   โทนสี/ตัวอักษร อ้างอิงชุดเดียวกับหน้าตัวอย่าง (Preview) ที่ส่งมอบให้ลูกค้า */

:root{
  --paper:#F5F7F2; --surface:#FFFFFF; --surface-2:#EBF0E7; --line:#DBE3D9;
  --ink:#14231F; --ink-soft:#3E4B45; --muted:#657669;
  --primary:#0F5C52; --primary-strong:#0A3F38; --primary-wash:#E4F1EE;
  --accent:#C87F1E; --accent-wash:#FBF0DD;
  --good:#1E8E5A; --good-wash:#E7F5EC;
  --critical:#B3261E; --critical-wash:#FBEAE8;
  --warn:#8F5714; --warn-wash:#FBF0E1;
  --radius:9px; --radius-lg:14px;
  --shadow:0 1px 2px rgba(20,35,31,.06), 0 8px 24px rgba(20,35,31,.05);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0C1512; --surface:#131F1A; --surface-2:#1A2822;
    --line:#26362E; --ink:#E9EFEA; --ink-soft:#C2CFC7; --muted:#87988D;
    --primary:#57C9B3; --primary-strong:#8FE0CF; --primary-wash:#122A26;
    --accent:#EFB35E; --accent-wash:#2B2314;
    --good:#57C98A; --good-wash:#122A1C;
    --critical:#F0857B; --critical-wash:#331714;
    --warn:#E0A85C; --warn-wash:#2E2211;
    --shadow:0 1px 2px rgba(0,0,0,.3), 0 12px 28px rgba(0,0,0,.35);
  }
}

* { box-sizing: border-box; }
html,body{margin:0;padding:0;}
body {
  background: var(--paper); color: var(--ink);
  font-family: 'IBM Plex Sans Thai', 'Sarabun', system-ui, -apple-system, sans-serif;
  font-size: 15px; line-height: 1.6;
}
h1,h2,h3,h4{ font-family:'Chakra Petch','IBM Plex Sans Thai',sans-serif; font-weight:700; text-wrap:balance; margin:0 0 .4em; }
.num{ font-family:'IBM Plex Mono',ui-monospace,monospace; font-variant-numeric:tabular-nums; }
a { color: var(--primary-strong); }
:focus-visible{ outline:2px solid var(--primary); outline-offset:2px; }

/* ----- Top bar ----- */
.topbar {
  background: var(--surface);
  border-bottom: 1px solid var(--line);
  position: sticky; top: 0; z-index: 10;
}
.topbar-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 12px 20px;
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}
.brand { display:flex; align-items:center; gap:10px; font-weight: 700; font-size: 1.02rem; text-decoration: none; color: var(--ink); font-family:'Chakra Petch',sans-serif; }
.brand img{ height:30px; width:auto; flex:none; display:block; }
.nav { display: flex; gap:2px; flex-wrap:wrap; }
.nav a {
  text-decoration: none; color: var(--muted); font-weight: 500; font-size:.92rem;
  padding:8px 12px; border-radius:8px;
}
.nav a:hover { background:var(--surface-2); color: var(--primary-strong); }
.user-menu { display: flex; align-items: center; gap: 12px; font-size: 0.85rem; color: var(--muted); margin-left:auto; }
.btn-link { text-decoration: none; color: var(--critical); font-weight: 600; }

/* ----- Layout ----- */
.container { max-width: 1140px; margin: 0 auto; padding: 28px 20px 64px; }
.lead { color: var(--muted); margin-bottom: 22px; max-width:70ch; }
.hint { color: var(--muted); font-size: 0.85rem; }

.card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 26px;
  margin-bottom: 22px;
  box-shadow: var(--shadow);
}

/* ----- Forms ----- */
label { display: block; font-weight: 600; font-size: 0.86rem; color:var(--ink-soft); margin-bottom: 16px; }
input, select, textarea {
  width: 100%;
  padding: 10px 12px;
  margin-top: 6px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font-size: 0.95rem;
  font-family: inherit;
  background: var(--paper);
  color: var(--ink);
}
input:focus, select:focus, textarea:focus { outline: 2px solid var(--primary); outline-offset: 1px; border-color:var(--primary); }
.req { color: var(--critical); }

.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.form-grid-3 { grid-template-columns: 1fr 1fr 1fr; }
@media (max-width: 640px) {
  .form-grid, .form-grid-3 { grid-template-columns: 1fr; }
  .topbar-inner{ gap:10px; }
  .user-menu{ margin-left:0; width:100%; justify-content:space-between; }
}

.btn {
  display: inline-flex; align-items:center; justify-content:center; gap:8px;
  padding: 11px 22px;
  border-radius: 8px;
  border: none;
  font-size: 0.92rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  font-family: inherit;
}
.btn-primary { background: var(--primary); color: #fff; }
.btn-primary:hover { background: var(--primary-strong); }
.btn-secondary { background: var(--accent); color: #fff; }
.btn-secondary:hover { filter:brightness(.94); }
.btn-outline { background: var(--surface); border: 1px solid var(--primary); color: var(--primary-strong); }
.btn-outline:hover{ background:var(--primary-wash); }
.btn-block { width: 100%; }
.btn-danger { background: var(--critical-wash); color: var(--critical); }
.form-actions { margin-top: 22px; display: flex; gap: 12px; flex-wrap: wrap; }

/* ----- Appliance table ----- */
.appliance-table { width: 100%; border-collapse: collapse; margin-top: 10px; }
.appliance-table th { text-align: left; font-size: 0.74rem; text-transform:uppercase; letter-spacing:.03em; color: var(--muted); padding: 0 8px 8px; border-bottom: 1px solid var(--line); font-weight:600; }
.appliance-table td { padding: 7px 8px; vertical-align: middle; }
.app-row select, .app-row input { margin-top: 0; }
.btn-remove-row {
  background: var(--critical-wash); color: var(--critical); border: 1px solid var(--critical-wash);
  border-radius: 7px; width: 30px; height: 30px; cursor: pointer; font-weight: 700;
}

/* ----- Alerts ----- */
.alert { padding: 14px 18px; border-radius: var(--radius); margin-bottom: 18px; font-size:.92rem; }
.alert-error { background: var(--critical-wash); color: var(--critical); }
.alert-success { background: var(--good-wash); color: var(--good); }
.alert ul { margin: 6px 0 0; padding-left: 20px; }

/* ----- Result card ----- */
.badge-row { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; }
.badge { padding: 8px 16px; border-radius: 10px; font-size: 0.92rem; font-weight: 700; font-family:'Chakra Petch',sans-serif; }
.badge-green { background: var(--accent-wash); color: var(--warn); }
.badge-blue { background: var(--primary-wash); color: var(--primary-strong); }
.badge-gray { background: var(--surface-2); color: var(--ink-soft); font-family:inherit; font-weight:500; font-size:.85rem; }
.reasoning-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; counter-reset:step; }
.reasoning-list li { background: var(--surface-2); border-radius:9px; padding:12px 14px; font-size:.92rem; position:relative; padding-left:44px; }
.reasoning-list li::before{
  counter-increment:step; content:counter(step);
  position:absolute; left:12px; top:12px; width:20px; height:20px; border-radius:50%;
  background:var(--primary); color:#fff; font-size:.7rem; font-weight:700;
  font-family:'IBM Plex Mono',monospace; display:flex; align-items:center; justify-content:center;
}
.highlight { color: var(--good); font-size: 1.15em; font-family:'IBM Plex Mono',monospace; font-weight:700; }

/* ----- เปรียบเทียบยี่ห้อ (เช่น ออนกริดที่ลูกค้าเลือกได้ทั้ง Huawei และ Solis) ----- */
.brand-compare-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:16px; margin-bottom:22px; }
.brand-compare-card {
  background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 18px; display:flex; flex-direction:column; gap:6px;
}
.brand-compare-card.brand-compare-default { border-color: var(--good); }
.brand-compare-model { font-weight:700; margin:2px 0 0; }
.brand-compare-price { font-family:'IBM Plex Mono',monospace; font-weight:700; font-size:1.3rem; color:var(--primary-strong); margin:4px 0; }
.brand-compare-card .btn { margin-top:8px; }
@media (max-width: 640px) {
  .brand-compare-grid { grid-template-columns: 1fr; }
}

/* ----- ตารางผ่อนชำระแยกตามยี่ห้อ (แสดงครบทุกยี่ห้อเมื่อมีให้เลือกมากกว่า 1) ----- */
.installment-brand-block {
  border: 1px solid var(--line); border-radius: var(--radius);
  padding: 16px 18px; margin-bottom: 18px; background: var(--surface-2);
}
.installment-brand-block:last-child { margin-bottom: 0; }
.installment-brand-title { margin: 0 0 10px; }
.installment-brand-block h5 { margin: 14px 0 4px; font-size: .88rem; color: var(--muted); }
.installment-brand-block h5:first-of-type { margin-top: 4px; }
.installment-brand-block .btn-sm { margin-top: 14px; }
.btn-sm { padding: 8px 14px; font-size: .82rem; }

table.price-table, table.breakeven-table, table.installment-table, table.data-table {
  width: 100%; border-collapse: collapse; margin-top: 8px;
}
table.price-table td, table.breakeven-table td, table.breakeven-table th,
table.installment-table td, table.installment-table th, table.data-table td, table.data-table th {
  padding: 10px; border-bottom: 1px solid var(--line); text-align: left; font-size: 0.9rem;
}
table.breakeven-table th, table.installment-table th, table.data-table th { color: var(--muted); font-weight: 600; font-size:.74rem; text-transform:uppercase; letter-spacing:.03em; }
.num { text-align: right; }
.positive { color: var(--good); font-weight: 600; }
.negative { color: var(--critical); }
.total-row td { font-weight: 700; border-top: 2px solid var(--ink); font-size:1.02rem; }
.payback-row td { background: var(--good-wash); font-weight: 600; }
.chart-canvas { width: 100%; max-width: 900px; height: auto; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); margin-top: 14px; }

/* ----- Login page ----- */
.login-body {
  display: flex; align-items: center; justify-content: center; min-height: 100vh;
  background:
    radial-gradient(circle at 15% 20%, color-mix(in oklab, var(--primary) 16%, transparent), transparent 45%),
    radial-gradient(circle at 85% 80%, color-mix(in oklab, var(--accent) 14%, transparent), transparent 45%),
    var(--paper);
  margin: 0; font-family: 'IBM Plex Sans Thai', system-ui, sans-serif; padding:20px;
}
.login-box { background: var(--surface); padding: 38px 34px; border-radius: var(--radius-lg); width: 100%; max-width: 380px; box-shadow: 0 10px 40px rgba(15,35,30,.12); border:1px solid var(--line); }
.login-box .login-logo{ display:flex; justify-content:center; margin-bottom:16px; }
.login-box .login-logo img{ height:64px; width:auto; }
.login-box h1 { font-size: 1.2rem; margin-bottom: 4px; text-align:center; }
.login-box .subtitle { color: var(--muted); font-size: 0.84rem; margin-bottom: 22px; text-align:center; }
.login-box .hint { margin-top: 18px; font-size: 0.8rem; text-align: center; }

/* ----- Footer ----- */
.site-footer { text-align: center; color: var(--muted); font-size: 0.84rem; padding: 26px 0; }

/* ----- Admin ----- */
.admin-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.admin-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 20px; text-decoration: none; color: var(--ink); box-shadow:var(--shadow); }
.admin-card:hover { border-color: var(--primary); }
.admin-card h3 { margin: 0 0 6px; color: var(--primary-strong); font-size:1rem; }
.admin-card p { margin: 0; color: var(--muted); font-size: 0.87rem; }
.settings-group { margin-bottom: 30px; }
.settings-group h3 { margin-bottom: 4px; color:var(--primary-strong); }
.table-actions { display: flex; gap: 10px; flex-wrap:wrap; }
.table-actions a, .table-actions button { font-size: 0.85rem; }
.status-active { color: var(--good); font-weight: 600; }
.status-inactive { color: var(--critical); font-weight: 600; }

/* ----- ใบเสนอราคา (Quotation Document) ----- */
.quote-toolbar { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:18px; }
.quote-toolbar-actions { display:flex; gap:10px; flex-wrap:wrap; }
.quote-toolbar-actions form { margin:0; }
.quote-toolbar-actions button, .quote-toolbar-actions a { font-size:.86rem; padding:9px 16px; }

.quote-doc {
  background:#fff; color:#14231F; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:36px 40px; box-shadow:var(--shadow); font-size:13.5px; line-height:1.55;
  margin-bottom:28px;
}
.quote-head { display:flex; justify-content:space-between; gap:20px; border-bottom:2px solid #14231F; padding-bottom:12px; margin-bottom:10px; }
.quote-head-left p { margin:2px 0; }
.quote-taxline{ font-weight:600; }
.quote-addr{ color:#3E4B45; }
.quote-contact{ color:#3E4B45; }
.quote-head-right{ text-align:right; }
.quote-company-name{ font-weight:700; font-size:1.15rem; font-family:'Chakra Petch','IBM Plex Sans Thai',sans-serif; }
.quote-title{ text-align:center; font-size:1.3rem; margin:18px 0; letter-spacing:.02em; }
.quote-down-note{ font-size:.82rem; color:#3E4B45; font-style:italic; margin:-8px 0 14px; }
.quote-meta-table{ width:100%; border-collapse:collapse; margin-bottom:14px; }
.quote-meta-table td{ padding:3px 6px; vertical-align:top; font-size:.92rem; }
.quote-meta-table td.lbl{ font-weight:600; white-space:nowrap; width:1%; color:#3E4B45; }
.quote-meta-table td.val{ width:48%; }
.quote-intro{ font-weight:600; margin:14px 0 8px; }

table.quote-items-table{ width:100%; border-collapse:collapse; margin-bottom:16px; }
.quote-items-table th, .quote-items-table td{ border:1px solid #B8C4BC; padding:6px 8px; font-size:.86rem; vertical-align:top; }
.quote-items-table thead th{ background:#EBF0E7; text-align:center; font-weight:700; }
.quote-items-table thead th small{ font-weight:400; text-transform:none; letter-spacing:0; display:block; font-size:.78rem; color:#3E4B45; }
.quote-items-table .c-no{ width:6%; text-align:center; }
.quote-items-table .c-qty{ width:10%; }
.quote-items-table .c-price{ width:13%; }
.quote-items-table .c-disc{ width:9%; }
.quote-items-table .c-amt{ width:14%; }
.quote-items-table tr.job-row td{ font-weight:700; background:#F5F7F2; }
.quote-items-table tr.main-row td.c-desc{ font-weight:600; }
.quote-items-table tr.sub-row td.c-desc{ color:#3E4B45; padding-left:20px; }
.quote-items-table tr.down-row td{ font-weight:700; }

.quote-totals{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:22px; flex-wrap:wrap; }
.quote-totals-left{ flex:1; min-width:220px; }
.quote-bahttext{ font-style:italic; font-weight:600; border:1px solid #B8C4BC; border-radius:6px; padding:8px 12px; display:inline-block; }
.quote-totals-table{ border-collapse:collapse; min-width:280px; }
.quote-totals-table td{ padding:4px 10px; font-size:.92rem; }
.quote-totals-table tr.grand td{ font-weight:700; border-top:2px solid #14231F; font-size:1rem; padding-top:8px; }

.quote-terms{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:20px; border-top:1px solid var(--line); padding-top:16px; }
.quote-terms h4{ font-size:.92rem; margin-bottom:8px; }
.quote-terms ol{ margin:0; padding-left:18px; font-size:.84rem; color:#3E4B45; display:flex; flex-direction:column; gap:4px; }

.quote-bank{ margin-bottom:28px; font-size:.9rem; }
.quote-bank p{ margin:2px 0; }

.quote-signature{ display:grid; grid-template-columns:1fr 1fr; gap:30px; text-align:center; margin-top:30px; }
.sig-block p{ margin:4px 0; font-size:.88rem; }
.sig-line{ border-bottom:1px dashed #657669; height:50px; margin-bottom:6px; }
.sig-name{ font-weight:600; }

/* ----- รองรับการใช้งานบนมือถือ/แท็บเล็ต ----- */
@media (max-width: 640px) {
  .container { padding: 18px 14px 48px; }
  .card { padding: 18px; }
  body { font-size: 14.5px; }

  .topbar-inner { padding: 10px 14px; gap: 10px; }
  .brand span { display:none; } /* เหลือแค่โลโก้ ประหยัดพื้นที่แถบบนสุด */
  .nav { gap: 0; width: 100%; order: 3; justify-content: space-between; }
  .nav a { padding: 8px 6px; font-size: .82rem; }
  .user-menu { font-size: .78rem; gap: 8px; }

  h1 { font-size: 1.25rem; }
  h2 { font-size: 1.1rem; }
  .form-actions { flex-direction: column; align-items: stretch; }
  .form-actions .btn { width: 100%; }

  /* ตารางกว้างๆ ให้เลื่อนดูในแนวนอนได้แทนที่จะบีบจนอ่านไม่ออก หรือดันหน้าให้กว้างเกินจอ */
  .appliance-table, table.data-table, table.price-table,
  table.breakeven-table, table.installment-table, table.quote-items-table,
  .quote-meta-table, .quote-totals-table {
    display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; white-space: nowrap;
  }
  .appliance-table thead, .appliance-table tbody,
  table.data-table thead, table.data-table tbody { white-space: nowrap; }

  .badge-row { gap: 6px; }
  .reasoning-list li { padding: 10px 12px 10px 38px; font-size: .86rem; }
  .brand-compare-price { font-size: 1.15rem; }

  /* เอกสารใบเสนอราคา — ลดขอบ/ระยะห่าง และวางเป็นคอลัมน์เดียวบนจอแคบ */
  .quote-doc { padding: 20px 16px; font-size: 12.5px; }
  .quote-head { flex-direction: column; gap: 10px; }
  .quote-head-right { text-align: left; }
  .quote-terms { grid-template-columns: 1fr; gap: 16px; }
  .quote-signature { grid-template-columns: 1fr; gap: 22px; }
  .quote-toolbar { flex-direction: column; align-items: stretch; }
  .quote-toolbar-actions { justify-content: stretch; }
  .quote-toolbar-actions a, .quote-toolbar-actions button { flex:1; text-align:center; }

  .admin-grid { grid-template-columns: 1fr; }
}
@media (max-width: 400px) {
  .nav a { font-size: .76rem; padding: 7px 5px; }
}

@media print {
  @page { size: A4; margin: 9mm 11mm; }
  .topbar, .site-footer, .no-print { display:none !important; }
  body, .container { background:#fff !important; padding:0 !important; margin:0 !important; max-width:none !important; }
  a[href]:after { content:""; }

  /* บีบใบเสนอราคาให้พอดี 1 หน้ากระดาษ A4 เสมอ (เอกสารทางการ ไม่ควรพิมพ์ล้นหลายหน้า) และเต็มหน้าใกล้เคียงกับที่แสดงบนจอ */
  .quote-doc {
    box-shadow:none !important; border:none !important; padding:0 !important; border-radius:0 !important;
    font-size:11.3px !important; line-height:1.3 !important;
  }
  .quote-doc .quote-head { padding-bottom:5.2px; margin-bottom:6.5px; }
  .quote-doc .quote-company-name { font-size:15.6px; }
  .quote-doc .quote-taxline, .quote-doc .quote-addr, .quote-doc .quote-contact { font-size:10.8px; margin:1.3px 0; }
  .quote-doc .quote-title { font-size:16.9px; margin:7.8px 0; }
  .quote-doc .quote-down-note { font-size:8.8px; margin:-2.6px 0 6.5px; }
  .quote-doc .quote-meta-table { margin-bottom:6.5px; }
  .quote-doc .quote-meta-table td { padding:1px 6.5px; font-size:10.8px; }
  .quote-doc .quote-intro { margin:6.5px 0 3.9px; font-size:11.1px; }
  .quote-doc .quote-items-table { margin-bottom:6.5px; }
  .quote-doc .quote-items-table th, .quote-doc .quote-items-table td { padding:1.3px 5.2px; font-size:10.1px; line-height:1.2; }
  .quote-doc .quote-items-table thead th { padding:2.6px 5.2px; }
  .quote-doc .quote-items-table thead th small { font-size:8.6px; }
  .quote-doc .quote-items-table tr.sub-row td.c-desc { padding-left:15.6px; }
  .quote-doc .quote-totals { margin-bottom:7.8px; align-items:flex-end; }
  .quote-doc .quote-bahttext { padding:2.6px 9.1px; font-size:10.4px; border-radius:5.2px; }
  .quote-doc .quote-totals-table { min-width:286.0px; }
  .quote-doc .quote-totals-table td { padding:1px 10.4px; font-size:10.4px; }
  .quote-doc .quote-totals-table tr.grand td { font-size:11.4px; padding-top:2.6px; border-top-width:2.0px; }
  .quote-doc .quote-terms { gap:20.8px; margin-bottom:7.8px; padding-top:6.5px; }
  .quote-doc .quote-terms h4 { font-size:10.4px; margin-bottom:2.6px; }
  .quote-doc .quote-terms ol { font-size:9.5px; gap:1px; padding-left:16.9px; }
  .quote-doc .quote-bank { margin-bottom:7.8px; font-size:10.1px; }
  .quote-doc .quote-bank p { margin:1px 0; }
  .quote-doc .quote-signature { gap:26.0px; margin-top:10.4px; }
  .quote-doc .sig-line { height:28.6px; margin-bottom:3.9px; }
  .quote-doc .sig-block p { margin:2.0px 0; font-size:10.1px; }

  /* ใบเสนอราคาแบบที่ 2 (ฟรีดาวน์) ให้ขึ้นหน้าใหม่เสมอ แยกจากแบบดาวน์ 10% หน้าแรก */
  .quote-variant-page { page-break-before: always; break-before: page; }

  /* หน้าเอกสารประกอบการตัดสินใจ (ผลการคำนวณ/จุดคุ้มทุน/ผ่อนชำระ) ให้ขึ้นหน้าใหม่เสมอ แยกจากใบเสนอราคาหน้าแรก */
  .quote-analysis-page {
    page-break-before: always; break-before: page;
    font-size:10.5px !important; line-height:1.35 !important;
  }
  .quote-analysis-page .quote-title { font-size:14px; margin:8px 0 10px; }
  .quote-analysis-page h3 { font-size:10.5px; margin:12px 0 6px; }
  .quote-analysis-page h4 { font-size:9.3px; margin:8px 0 3px; }
  .quote-analysis-page .badge-row { gap:6px; margin-bottom:10px; }
  .quote-analysis-page .badge { padding:3px 8px; font-size:8.3px; border-radius:6px; }
  .quote-analysis-page .badge-gray { font-size:7.8px; }
  .quote-analysis-page .reasoning-list { gap:4px; }
  .quote-analysis-page .reasoning-list li { padding:5px 8px 5px 26px; font-size:8.6px; border-radius:5px; page-break-inside: avoid; }
  .quote-analysis-page .hint { font-size:7.8px; }
  .quote-analysis-page .highlight { font-size:1.05em; }
  .quote-analysis-page .chart-canvas { max-width:100%; margin-top:6px; page-break-inside: avoid; }
  .quote-analysis-page table.breakeven-table,
  .quote-analysis-page table.installment-table { width:100%; border-collapse:collapse; margin:4px 0 8px; page-break-inside: avoid; }
  .quote-analysis-page table.breakeven-table td, .quote-analysis-page table.breakeven-table th,
  .quote-analysis-page table.installment-table td, .quote-analysis-page table.installment-table th {
    padding:2px 6px; font-size:7.8px; border-bottom:1px solid #D9DFDA;
  }
  .quote-analysis-page table.breakeven-table th, .quote-analysis-page table.installment-table th { font-size:7.3px; }
}
