body { background:#f3f6fb; color:#20324b; padding:20px; }
body > .container { display:block; max-width:1540px; margin:0 auto; }
.header { display:block; padding:22px 28px; margin-bottom:24px; }
.header h1 { font-size:26px; margin-bottom:8px; }
.portal-shell { display:grid; grid-template-columns:220px minmax(0,1fr) 270px; gap:22px; align-items:start; }
.portal-nav,.portal-selection { background:white; border:1px solid #dce5f2; border-radius:16px; padding:22px; position:sticky; top:20px; }
.portal-shell h2 { font-size:19px; margin:0 0 20px; color:#1f4a7a; }
.portal-eyebrow { color:#526580; font-size:11px; letter-spacing:.12em; font-weight:700; margin-bottom:10px; }
.portal-links { display:grid; gap:8px; }
.portal-links button,.portal-selection button { width:100%; margin:0; padding:12px; font-size:14px; border-radius:9px; }
.portal-links button { background:transparent; color:#34465f; text-align:left; border:1px solid transparent; box-shadow:none; }
.portal-links button:hover { background:#f0f4fc; transform:none; }
.portal-links button[aria-current] { background:#eaf0ff; color:#254b98; border-color:#cad8f6; font-weight:700; }
.portal-workspace { min-width:0; outline:none; }
.portal-workspace .card { padding:24px; margin-bottom:18px; border-radius:16px; }
.portal-shell [hidden] { display:none !important; }
.portal-selection dl { display:grid; grid-template-columns:1fr auto; gap:14px 8px; margin:20px 0; font-size:14px; }
.portal-selection dd { margin:0; font-weight:700; text-align:right; overflow-wrap:anywhere; }
.portal-selection dt { color:#526580; }
.portal-help,#navMember { font-size:13px; line-height:1.6; color:#526580; }
.portal-selection button { margin-top:12px; }
#navEdit { background:#eef2fa; color:#254b98; }
.portal-workspace .step-indicator { position:static; display:flex; flex-wrap:wrap; gap:6px; }
.portal-workspace .step { flex:1; min-width:80px; font-size:12px; padding:10px 6px; }
.portal-workspace .pricing-grid { grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); }
.portal-workspace .pricing-tier { padding:18px 12px; }
.cart-badge { position:static; width:max-content; margin:16px 0; }
button:focus-visible,a:focus-visible { outline:3px solid #3968ce; outline-offset:3px; }
@media(max-width:1150px) { .portal-shell { grid-template-columns:185px minmax(0,1fr); } .portal-selection { grid-column:2; position:static; } }
@media(max-width:700px) { body { padding:10px; } .header { padding:18px; } .header h1 { font-size:21px; } .portal-shell { grid-template-columns:minmax(0,1fr); gap:14px; } .portal-nav { position:static; padding:16px; } .portal-links { grid-template-columns:repeat(2,minmax(0,1fr)); } .portal-nav h2 { margin-bottom:12px; } .portal-selection { grid-column:1; } .portal-workspace .card { padding:16px; } #cartModal.floating { width:calc(100vw - 24px); right:12px; } }
.rebate-modal { display:none; position:fixed; inset:0; z-index:3000; padding:24px; background:rgba(16,30,53,.65); align-items:flex-start; justify-content:center; overflow:auto; }
.rebate-modal-content { width:100%; max-width:640px; margin:auto; background:white; border-radius:16px; padding:24px; box-shadow:0 24px 70px #14233a55; }
.rebate-input-group { margin:16px 0; }
.rebate-input-group label { display:block; margin-bottom:6px; font-weight:600; }
.rebate-results { padding:18px; background:#edf3ff; border-radius:12px; margin:18px 0; }
.portal-workspace .pricing-tier { min-width:0; overflow-wrap:anywhere; }
.portal-workspace .pricing-tier .tier-name { font-size:19px; }
.header { text-align:center; }
#rebateModel { line-height:1.6; }
#rebateModel h3 { margin:24px 0 10px; }
#rebateModel p { margin:12px 0; }
.model-notice { padding:14px; border:1px solid #cad8ef; border-radius:10px; background:#eef4ff; color:#243f64; font-size:13px; margin:16px 0; }
.model-inputs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:20px 0; }
.model-inputs label { font-size:13px; font-weight:600; }
.model-inputs input { display:block; width:100%; }
.model-scroll { overflow:auto; max-width:100%; }
.model-table { border-collapse:collapse; width:100%; font-size:13px; }
.model-table th,.model-table td { padding:10px; text-align:left; border-bottom:1px solid #dce5f2; vertical-align:top; }
.model-table input { min-width:110px; width:110px; padding:8px; }
.model-totals { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; }
.model-totals dd { font-weight:700; margin:0; text-align:right; }
#modelError { color:#a21d2e; font-weight:600; }
@media(max-width:700px) { .model-inputs { grid-template-columns:1fr; } }
/* Compact illustration within the pricing canvas. */
.portal-workspace #rebateModel { padding:18px; font-size:13px; line-height:1.45; scroll-margin-top:16px; }
#rebateModel h2 { font-size:18px; margin-bottom:10px; }
#rebateModel h3 { font-size:15px; margin:16px 0 8px; }
#rebateModel p { margin:8px 0; }
#rebateModel .model-notice { padding:10px; margin:10px 0; }
#rebateModel .model-inputs { gap:10px; margin:12px 0; grid-template-columns:repeat(3,minmax(0,1fr)); }
#rebateModel input { padding:8px; font-size:14px; margin-top:4px; }
#rebateModel button { width:auto; padding:9px 12px; margin:8px 0; font-size:13px; }
.model-details { border:1px solid #dce5f2; border-radius:8px; margin:10px 0; padding:10px; }
.model-details summary { cursor:pointer; font-weight:650; color:#254b98; }
.model-details summary:focus-visible { outline:3px solid #3968ce; outline-offset:3px; }
#rebateModel .model-totals { gap:6px 10px; }
#rebateModel .model-table { font-size:12px; }
#rebateModel .model-table th,#rebateModel .model-table td { padding:6px 4px; overflow-wrap:anywhere; }
#rebateModel table:has(#modelScenarios) { table-layout:fixed; }
#rebateModel table:has(#modelYears),#modelYears { display:block; }
#rebateModel table:has(#modelYears) thead { display:none; }
#modelYears tr:not([hidden]) { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:12px; }
#modelYears tr[hidden] { display:none; }
#modelYears th { grid-column:1 / -1; }
#modelYears th::before { content:'Year '; }
#modelYears td { min-width:0; border:0; }
#modelYears label { display:block; font-size:12px; }
#rebateModel #modelYears input { min-width:0; width:100%; }
@media(max-width:700px) { #rebateModel .model-inputs { grid-template-columns:repeat(2,minmax(0,1fr)); } #rebateModel .model-table { font-size:11px; } }
/* All five stages remain visible while browsing the portal. */
#customerOrderProgress.step-indicator { display:grid !important; position:static; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; padding:10px; margin-bottom:10px; box-shadow:none; }
#customerOrderProgress .step { min-width:0; min-height:54px; font-size:13px; padding:10px; }
#customerOrderProgress .progress-number { flex-shrink:0; display:grid; place-items:center; width:24px; height:24px; border:1px solid currentColor; border-radius:50%; }
#orderProgressSummary { margin:0 0 18px; font-size:13px; }
@media(max-width:700px) {
  #customerOrderProgress.step-indicator { gap:4px; padding:6px; }
  #customerOrderProgress .step { flex-direction:column; text-align:center; padding:7px 3px; gap:5px; font-size:10px; line-height:1.3; }
  #customerOrderProgress .progress-number { width:21px; height:21px; }
}
