/* ============================================================
   ASTECO PRICING PORTAL — Standalone CSS
   ============================================================ */
:root{
  --pr-blue:#1B4F9B;--pr-blue-dk:#0F3670;--pr-blue-lt:#E8F0FB;
  --pr-orange:#E8732A;--pr-green:#1A7A4A;--pr-green-bg:#E6F5EE;
  --pr-amber:#7A5500;--pr-amber-bg:#FFF8E1;--pr-red:#9B1C1C;--pr-red-bg:#FEE8E8;
  --pr-purple:#5B2D8E;--pr-purple-bg:#F3EEFF;
  --pr-text:#1E293B;--pr-muted:#64748B;--pr-border:#CBD5E1;
  --pr-surface:#F8FAFC;--pr-white:#fff;--pr-bg:#EEF2F7;
}
.pr-page{ padding:18px; max-width:1100px; margin:0 auto; }

/* LANDING */
.pr-landing{ display:flex; align-items:center; justify-content:center; min-height:calc(100vh - 52px); background:var(--pr-bg); }
.pr-landing-inner{ text-align:center; }
.pr-landing-logo{ height:56px; margin-bottom:10px; }
.pr-landing-firm{ font-size:18px; font-weight:700; color:var(--pr-blue-dk); margin-bottom:4px; }
.pr-landing-sub{ font-size:13px; color:var(--pr-muted); margin-bottom:36px; }
.pr-module-cards{ display:flex; gap:20px; justify-content:center; flex-wrap:wrap; }
.pr-module-card{
  background:#fff; border:2px solid var(--pr-border); border-radius:14px;
  padding:32px 36px; width:240px; cursor:pointer;
  transition:border-color .2s, box-shadow .2s, transform .15s;
  text-align:center;
}
.pr-module-card:hover{ border-color:var(--pr-blue); box-shadow:0 6px 24px rgba(27,79,155,.13); transform:translateY(-2px); }
.pr-module-card.active-module{ border-color:var(--pr-orange); box-shadow:0 6px 24px rgba(232,115,42,.15); }
.pr-module-icon{ font-size:38px; margin-bottom:12px; }
.pr-module-title{ font-size:16px; font-weight:700; color:var(--pr-blue-dk); margin-bottom:6px; }
.pr-module-desc{ font-size:12px; color:var(--pr-muted); line-height:1.6; }

/* TABS */
.pr-tabs{ display:flex; gap:0; border-bottom:2px solid var(--pr-border); margin-bottom:20px; }
.pr-tab{ padding:9px 18px; font-size:13px; font-weight:600; border:none; background:none;
  cursor:pointer; color:var(--pr-muted); border-bottom:2px solid transparent;
  margin-bottom:-2px; transition:color .15s, border-color .15s; }
.pr-tab:hover{ color:var(--pr-blue); }
.pr-tab.active{ color:var(--pr-blue); border-bottom-color:var(--pr-blue); }
.pr-tab-content{ display:none; }
.pr-tab-content.active{ display:block; }

/* CARDS */
.pr-card{ background:#fff; border-radius:10px; border:1px solid var(--pr-border);
  padding:18px 22px; margin-bottom:16px; box-shadow:0 1px 3px rgba(0,0,0,.05); }
.pr-card-hdr{ font-size:11px; font-weight:700; color:var(--pr-muted);
  text-transform:uppercase; letter-spacing:.07em; margin-bottom:14px;
  display:flex; align-items:center; gap:8px; }
.pr-card-hdr::after{ content:''; flex:1; height:1px; background:var(--pr-border); }

/* FORMS */
.pr-fg2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.pr-fg3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px; }
.pr-field{ display:flex; flex-direction:column; gap:4px; }
.pr-field label{ font-size:11px; font-weight:600; color:var(--pr-muted);
  text-transform:uppercase; letter-spacing:.04em; }
.pr-field input,.pr-field select,.pr-field textarea{
  border:1px solid var(--pr-border); border-radius:6px; padding:7px 10px;
  font-size:13px; color:var(--pr-text); background:#fff; width:100%; }
.pr-field input:focus,.pr-field select:focus,.pr-field textarea:focus{
  outline:none; border-color:var(--pr-blue); }
.pr-field textarea{ resize:vertical; min-height:70px; }

/* BUTTONS */
.pr-btn{ padding:7px 15px; border-radius:7px; font-size:13px; font-weight:600;
  cursor:pointer; border:none; display:inline-flex; align-items:center; gap:6px; }
.pr-btn:hover{ opacity:.86; }
.pr-btn-blue{ background:var(--pr-blue); color:#fff; }
.pr-btn-orange{ background:var(--pr-orange); color:#fff; }
.pr-btn-outline{ background:#fff; color:var(--pr-blue); border:1.5px solid var(--pr-blue); }
.pr-btn-ghost{ background:var(--pr-surface); color:var(--pr-text); border:1px solid var(--pr-border); }
.pr-btn-red{ background:var(--pr-red); color:#fff; }
.pr-btn-sm{ padding:5px 11px; font-size:12px; }
.pr-btn-row{ display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
.pr-del{ background:none; border:none; cursor:pointer; color:var(--pr-border);
  font-size:14px; padding:2px 5px; border-radius:4px; }
.pr-del:hover{ color:var(--pr-red); background:var(--pr-red-bg); }

/* PROGRAM LIST */
.pr-prog-grid{ display:grid; grid-template-columns:260px 1fr; gap:16px; }
.pr-prog-list{ border:1px solid var(--pr-border); border-radius:8px; overflow:hidden; max-height:560px; overflow-y:auto; }
.pr-prog-item{ padding:10px 14px; cursor:pointer; border-bottom:1px solid var(--pr-border);
  font-size:13px; display:flex; justify-content:space-between; align-items:center; }
.pr-prog-item:last-child{ border-bottom:none; }
.pr-prog-item:hover{ background:var(--pr-blue-lt); }
.pr-prog-item.sel{ background:var(--pr-blue); color:#fff; }
.pr-prog-item.sel .pr-prog-badge{ background:rgba(255,255,255,.2); color:#fff; }
.pr-prog-badge{ font-size:10px; background:var(--pr-surface); color:var(--pr-muted);
  padding:2px 7px; border-radius:8px; font-weight:700; white-space:nowrap; }

/* FACTOR ROWS */
.pr-factor-row{ display:grid; grid-template-columns:1fr 1fr 80px 80px auto;
  gap:8px; align-items:center; padding:8px 12px;
  border-bottom:1px solid var(--pr-border); font-size:12px; }
.pr-factor-row:last-child{ border-bottom:none; }
.pr-factor-row:hover{ background:var(--pr-surface); }

/* DISCOUNT ROWS */
.pr-disc-row{ display:grid; grid-template-columns:1fr 1fr 90px 90px auto;
  gap:8px; align-items:center; padding:8px 12px;
  border-bottom:1px solid var(--pr-border); font-size:12px; }
.pr-disc-row:last-child{ border-bottom:none; }
.pr-disc-row:hover{ background:var(--pr-surface); }

/* QUOTE BUILDER */
.pr-quote-section{ background:#fff; border-radius:10px; border:1px solid var(--pr-border); padding:22px 26px; margin-bottom:14px; }
.pr-quote-section h4{ font-size:13px; font-weight:700; color:var(--pr-blue-dk); margin-bottom:14px; padding-bottom:8px; border-bottom:1px solid var(--pr-border); }
.pr-tier-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:4px; }
.pr-tier-card{ border:2px solid var(--pr-border); border-radius:9px; padding:14px 16px; cursor:pointer; transition:all .15s; }
.pr-tier-card:hover{ border-color:var(--pr-blue); }
.pr-tier-card.selected{ border-color:var(--pr-orange); background:#FFFBF5; }
.pr-tier-name{ font-size:13px; font-weight:700; color:var(--pr-blue-dk); }
.pr-tier-price{ font-size:20px; font-weight:700; color:var(--pr-orange); margin:4px 0; }
.pr-tier-desc{ font-size:11px; color:var(--pr-muted); line-height:1.5; }
.pr-factor-check{ display:flex; flex-direction:column; gap:8px; }
.pr-factor-check label{ display:flex; align-items:center; gap:8px; font-size:13px; cursor:pointer; }
.pr-disc-check{ display:flex; flex-wrap:wrap; gap:10px; }
.pr-disc-check label{ display:flex; align-items:center; gap:6px; font-size:13px; cursor:pointer;
  background:var(--pr-surface); border:1px solid var(--pr-border); border-radius:6px; padding:5px 10px; }

/* QUOTE SUMMARY */
.pr-summary-table{ width:100%; border-collapse:collapse; font-size:13px; margin-bottom:8px; }
.pr-summary-table td{ padding:7px 10px; border-bottom:1px solid #EEF2F7; }
.pr-summary-table tr:last-child td{ border-bottom:none; }
.pr-summary-table .pr-sum-label{ color:var(--pr-muted); }
.pr-summary-table .pr-sum-total{ font-weight:700; font-size:15px; color:var(--pr-blue-dk); border-top:2px solid var(--pr-border); }
.pr-summary-table .pr-sum-discount{ color:var(--pr-green); }
.pr-validity{ font-size:12px; color:var(--pr-muted); font-style:italic; margin-top:6px; }

/* PRINT / PDF */
@media print{
  body *{ visibility:hidden !important; }
  #prQuotePrint, #prQuotePrint *{ visibility:visible !important; }
  #prQuotePrint{ position:absolute !important; top:0 !important; left:0 !important;
    width:100% !important; box-shadow:none !important; border:none !important; padding:24px 32px !important; }
  .pr-no-print{ display:none !important; }
}
.pr-quote-print{ background:#fff; border-radius:10px; border:1px solid var(--pr-border);
  padding:28px 32px; box-shadow:0 2px 10px rgba(0,0,0,.07); }
.pr-quote-hdr{ display:flex; align-items:center; justify-content:space-between;
  padding-bottom:14px; border-bottom:2px solid var(--pr-blue-dk); margin-bottom:16px; }
.pr-quote-firm{ text-align:right; font-size:11px; color:var(--pr-muted); line-height:1.8; }
.pr-quote-title{ font-size:19px; font-weight:700; color:var(--pr-blue-dk); margin-bottom:12px; }
.pr-quote-meta{ display:grid; grid-template-columns:1fr 1fr; gap:5px 18px;
  background:var(--pr-surface); border-radius:7px; padding:11px 14px;
  margin-bottom:14px; border:1px solid var(--pr-border); font-size:12px; }
.pr-quote-meta b{ color:var(--pr-blue-dk); }
.pr-breakdown-tbl{ width:100%; border-collapse:collapse; font-size:12px; margin-bottom:14px; }
.pr-breakdown-tbl th{ background:var(--pr-blue-dk); color:#fff; padding:7px 10px; text-align:left; font-size:11px; }
.pr-breakdown-tbl td{ padding:7px 10px; border-bottom:1px solid #EEF2F7; }
.pr-breakdown-tbl tr:nth-child(even) td{ background:#FAFBFC; }
.pr-breakdown-tbl .pr-bd-total td{ font-weight:700; background:var(--pr-blue-lt); font-size:13px; }
.pr-breakdown-tbl .pr-bd-discount td{ color:var(--pr-green); }
.pr-breakdown-tbl .pr-bd-govt td{ color:var(--pr-purple); }
.pr-why-section{ background:var(--pr-blue-lt); border-radius:8px; padding:14px 16px; margin-bottom:14px; }
.pr-why-title{ font-size:12px; font-weight:700; color:var(--pr-blue-dk); text-transform:uppercase; letter-spacing:.05em; margin-bottom:8px; }
.pr-why-list{ list-style:none; padding:0; margin:0; }
.pr-why-list li{ font-size:12px; color:var(--pr-text); padding:3px 0; padding-left:14px; position:relative; }
.pr-why-list li::before{ content:'✓'; position:absolute; left:0; color:var(--pr-green); font-weight:700; }
.pr-disclaimer{ font-size:10px; color:var(--pr-muted); border-top:1px solid var(--pr-border); padding-top:10px; margin-top:10px; line-height:1.7; }
.pr-quote-footer{ display:flex; justify-content:space-between; font-size:11px; color:var(--pr-muted); border-top:1px solid var(--pr-border); padding-top:10px; margin-top:14px; }

/* MODALS */
.pr-overlay{ display:none; position:fixed; inset:0; background:rgba(10,25,55,.55);
  z-index:600; align-items:center; justify-content:center; }
.pr-modal{ background:#fff; border-radius:12px; padding:24px 28px; width:420px;
  box-shadow:0 8px 32px rgba(0,0,0,.18); max-height:90vh; overflow-y:auto; }
.pr-modal h3{ font-size:15px; font-weight:700; margin-bottom:14px; }

/* TOAST — reuse same positioning but separate class */
.pr-toast{ display:none; position:fixed; bottom:22px; right:22px;
  background:var(--pr-blue-dk); color:#fff; padding:10px 17px; border-radius:8px;
  font-size:13px; font-weight:600; box-shadow:0 4px 14px rgba(0,0,0,.2);
  z-index:700; align-items:center; gap:8px; }

/* EMPTY */
.pr-empty{ text-align:center; padding:36px 20px; color:var(--pr-muted); }

/* BADGE */
.pr-badge{ display:inline-block; padding:2px 8px; border-radius:6px; font-size:11px; font-weight:700; }
.pr-badge-blue{ background:var(--pr-blue-lt); color:var(--pr-blue); }
.pr-badge-green{ background:var(--pr-green-bg); color:var(--pr-green); }
.pr-badge-amber{ background:var(--pr-amber-bg); color:var(--pr-amber); }