.vm-shell { max-width: 1120px; margin: 32px auto 64px; color: #1F2D24; overflow-wrap: anywhere; }
.vm-shell [hidden] { display: none !important; }
.vm-hero { padding: 28px 0; }
.vm-hero h1 { font-size: clamp(2.2rem, 4.5vw, 3.8rem); line-height: 1.08; max-width: 760px; margin: 16px 0; letter-spacing: -.035em; }
.vm-hero p { max-width: 700px; line-height: 1.65; }
.vm-eyebrow { color: #1D8A4A; font-weight: 800; text-transform: uppercase; font-size: .8rem; letter-spacing: .08em; }
.vm-panel, .vm-market { background: #FAF6EC; border: 1px solid #1D8A4A40; border-radius: 20px; padding: 24px; margin: 20px 0; }
.vm-panel h2, .vm-utility h2 { margin-top: 0; }
.vm-controls { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 24px; }
.vm-shell label { display: grid; gap: 10px; font-weight: 650; }
.vm-shell input:not([type=radio]):not([type=range]), .vm-shell select { width: 100%; min-width: 0; border: 1px solid #1D8A4A80; background: #FAF6EC; color: #1F2D24; padding: 12px; border-radius: 10px; font: inherit; }
.vm-shell input[type=range] { width: 100%; accent-color: #1D8A4A; }
.vm-shell fieldset { border: 0; padding: 0; min-width: 0; }
.vm-shell legend { font-weight: 700; margin-bottom: 12px; }
.vm-chips { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.vm-shell button, .vm-shell .vm-chip { border: 1px solid #1D8A4A70; border-radius: 999px; padding: 12px 18px; background: #FAF6EC; color: #1F2D24; font: inherit; cursor: pointer; }
.vm-shell .vm-chip { display: flex; align-items: center; gap: 8px; }
.vm-shell button[aria-pressed=true], .vm-shell button[aria-selected=true], .vm-chip:has(input:checked) { background: #1D8A4A; color: #FAF6EC; }
.vm-shell :focus-visible { outline: 3px solid #FFB627; outline-offset: 3px; }
.vm-shell button:disabled { opacity: .5; cursor: default; }
.vm-notice { font-size: .8rem; opacity: .85; margin-top: 32px; }
.vm-solar-hero { display: grid; grid-template-columns: 1.8fr 1fr; gap: 32px; align-items: center; }
.vm-market { border-left: 4px solid #1D8A4A; }
.vm-safe-card { display: grid; grid-template-columns: 1.8fr 1fr; gap: 28px; padding: 30px; border: 2px solid #1D8A4A; border-radius: 24px; background: linear-gradient(120deg,#1D8A4A14,#FAF6EC); box-shadow: 0 12px 30px #1F2D2410; }
.vm-safe-card aside { padding: 20px; background: #1D8A4A0D; border-radius: 16px; }
.vm-reasons { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; font-size: .85rem; }
.vm-shell output { color: #1D8A4A; }
.qa-banner { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; padding: 8px 12px; text-align: center; font-weight: 800; font-size: .8rem; background: #FFB627; color: #1F2D24; }
.qa-watermark { position: fixed; top: 45%; left: 0; width: 100%; z-index: 999; text-align: center; transform: rotate(-25deg); opacity: .14; font-weight: 900; font-size: clamp(1.2rem, 3.5vw, 3rem); pointer-events: none; }
.vm-table-wrap { overflow-x: auto; }
.vm-shell table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.vm-shell th, .vm-shell td { padding: 12px; border-bottom: 1px solid #1D8A4A30; text-align: left; vertical-align: top; }
.vm-shell th { color: #1D8A4A; }
.qa-record-list { display: grid; gap: 8px; margin: 18px 0; }
.qa-record-list button { border-radius: 12px; text-align: left; }
.vm-shell pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.vm-shell [role=tablist] { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0; }
@media(max-width:850px) { .vm-solar-hero, .vm-safe-card, .vm-reasons { grid-template-columns: 1fr; } .vm-shell { margin-top: 20px; } .vm-panel, .vm-safe-card { padding: 20px; } }

/* Internal QA inspection only. */
#qa-content [hidden] { display: none !important; }
.qa-summary-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(155px, 1fr)); gap: 12px; }
.qa-summary-cards > div { border: 1px solid #1D8A4A; border-radius: 12px; padding: 16px; background: #FAF6EC; }
.qa-summary-cards strong { display: block; font-size: 2rem; }
.qa-summary-cards span { display: block; }
.qa-buckets, .qa-filters { display: flex; flex-wrap: wrap; gap: 12px; margin: 20px 0; align-items: end; }
.qa-filters label { flex: 1 1 180px; min-width: 0; }
.qa-filters select, .qa-filters input { width: 100%; }
#qa-content pre { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 32rem; overflow: auto; padding: 16px; background: #1F2D240A; border-radius: 8px; }
#qa-content details { margin: 16px 0; }
#qa-content summary { cursor: pointer; font-weight: 700; }
#qa-records { overflow-x: auto; }
.qa-inspection-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.qa-inspection-table th, .qa-inspection-table td { padding: 12px; text-align: left; vertical-align: top; border-bottom: 1px solid #1F2D2433; overflow-wrap: anywhere; }
.qa-inspection-table th button { padding: 8px; font-size: inherit; }
.qa-inspection-table tbody tr { cursor: pointer; }
.qa-inspection-table tbody tr:hover, .qa-inspection-table tbody tr:focus-within { background: #FFB62722; }
.qa-inspection-table small { display: block; margin-top: 6px; }
.qa-owner { display: inline-block; padding: 4px 7px; border: 1px solid #1F2D24; border-radius: 6px; font-size: .75rem; font-weight: 700; margin: 3px 0; }
.qa-owner-0 { background: #1D8A4A22; }
.qa-owner-1 { background: #FAF6EC; }
.qa-owner-2 { background: #FFB62733; border-style: dashed; }
.qa-owner-3 { background: #FFB627; }
#qa-details { overflow-wrap: anywhere; }
@media (max-width: 699px) {
  .qa-inspection-table, .qa-inspection-table tbody, .qa-inspection-table tr, .qa-inspection-table td { display: block; }
  .qa-inspection-table thead, .qa-inspection-table thead tr { display: flex; flex-wrap: wrap; }
  .qa-inspection-table thead th { display: block; padding: 3px; border: 0; }
  .qa-inspection-table tbody tr { border: 1px solid #1D8A4A; border-radius: 12px; margin: 16px 0; padding: 8px; }
  .qa-inspection-table td { border: 0; padding: 8px; }
  .qa-inspection-table td::before { content: attr(data-label); display: block; font-weight: 800; margin-bottom: 4px; }
  .qa-filters { display: grid; grid-template-columns: 1fr; }
}

/* Track A 2026-09-24: founder entry — one sign-in, three clear choices. */
.founder-shell .founder-login { display: grid; gap: 10px; max-width: 420px; }
.founder-shell .founder-login input { width: 100%; }
.founder-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 16px 0; }
.founder-card { position: relative; display: flex; flex-direction: column; gap: 8px; border: 2px solid #1D8A4A; border-radius: 16px; padding: 20px; background: #FFFDF7; }
.founder-card h3 { margin: 0; }
.founder-card p { margin: 0; flex: 1; }
.founder-card button, .founder-link-btn { align-self: flex-start; }
.founder-link-btn { display: inline-block; padding: 10px 16px; border-radius: 999px; border: 2px solid #1D8A4A; font-weight: 700; text-decoration: none; }
.founder-num { display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; border-radius: 50%; background: #1D8A4A; color: #FAF6EC; font-weight: 800; }
.founder-journeys { display: grid; gap: 12px; padding-left: 0; list-style: none; }
.founder-journeys li { display: grid; gap: 4px; }
.founder-journeys a { font-weight: 800; font-size: 1.05rem; }
.founder-shell :focus-visible { outline: 3px solid #FFB627; outline-offset: 2px; }
.founder-shell h2[tabindex="-1"]:focus { outline: none; }
@media (max-width: 850px) { .founder-grid { grid-template-columns: 1fr; } }
/* R8 founder sign-in (2026-09-25): one field; team tools small and secondary. */
.founder-shell .founder-start { display: inline-block; padding: 12px 20px; border-radius: 999px; background: #1D8A4A; color: #fff; font-weight: 700; text-decoration: none; }
.founder-shell .founder-more { margin-top: 32px; font-size: 0.85rem; color: #555; }
.founder-shell .founder-more summary { cursor: pointer; display: inline-block; min-height: 24px; padding: 4px 0; text-decoration: underline; }
.founder-shell .founder-tool-list { list-style: none; padding: 0; margin: 8px 0 0; display: grid; gap: 6px; }
.founder-shell .founder-tool-list .founder-link-btn { border: 0; background: none; padding: 4px 0; min-height: 24px; font-weight: 400; text-decoration: underline; color: inherit; cursor: pointer; }

/* P1-5f (D-3): simulated-EFL delivery table scrolls inside its container on phones instead of crushing columns. */
.vm-doc-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.vm-doc-table-scroll table{min-width:34rem}
.vm-doc-table-scroll th,.vm-doc-table-scroll td:not(:last-child){white-space:nowrap}

/* S-15 (fix round d6ac806): separated, tappable document links + a way to choose from /browse. */
.vm-doc-links{display:flex;flex-wrap:wrap;gap:.25rem 1rem;margin:.5rem 0}
.vm-doc-links a{display:inline-flex;align-items:center;min-height:44px}
.vm-choose{display:inline-flex;align-items:center;min-height:44px;font-weight:700}

/* Solar: ZIP first, large tap targets on phones */
.vm-zipfirst { border-left: 4px solid #1D8A4A; }
.vm-zipfirst h2 { margin: 0 0 10px; font-size: 1.25rem; }
.vm-zip-row { display: flex; gap: 10px; align-items: stretch; flex-wrap: wrap; }
.vm-zip-row input { flex: 1 1 140px; min-width: 0; font-size: 1.5rem; letter-spacing: .08em; padding: 14px 16px; border: 2px solid #1D8A4A; border-radius: 14px; background: #fff; color: #1F2D24; }
.vm-zip-go { flex: 0 0 auto; font-size: 1.05rem; padding: 14px 22px; min-height: 52px; border: 0; border-radius: 14px; background: #1D8A4A; color: #FAF6EC; font-weight: 700; cursor: pointer; }
.vm-quiet { color: #1F2D24b0; font-size: .92rem; margin: 10px 0 0; }
.vm-ambiguous { margin-top: 12px; }
.vm-ambiguous .vm-chips button { min-height: 48px; padding: 10px 16px; border-radius: 14px; border: 2px solid #1D8A4A; background: #fff; font-size: 1rem; cursor: pointer; }
.vm-solar-hero { grid-template-columns: 1fr; }
@media(max-width:520px) { .vm-zip-go { flex: 1 1 100%; } }

/* Solar V3 (2026-10-05): compact shopping layout. Approved palette only (green / cream / amber / dark + tints). */
.vm-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.vm-back { display: inline-block; font-size: .9rem; margin: 0 0 4px; }
.vm-shell .vm-solar-hero { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 8px 0 4px; }
.vm-solar-hero h1 { font-size: clamp(1.7rem, 4vw, 2.5rem); margin: 6px 0 8px; letter-spacing: -.03em; }
.vm-solar-hero p { margin: 0; line-height: 1.45; max-width: 560px; }
.vm-sun { flex: 0 0 auto; width: 92px; height: 92px; }
.vm-shell .vm-zipfirst { padding: 16px 18px; margin: 14px 0 10px; }
.vm-zipfirst > label { display: block; font-size: .95rem; margin-bottom: 8px; }
.vm-zipfirst #solar-status { margin: 8px 0 0; min-height: 0; font-size: .92rem; }
.vm-zipfirst #solar-status:empty, .vm-zipfirst .vm-quiet:empty { display: none; }
.vm-zip-row input { font-size: 1.3rem; padding: 10px 14px; }
.vm-zip-go { min-height: 48px; padding: 10px 22px; }
.vm-summary { margin: 6px 2px 12px; font-size: .95rem; padding: 9px 14px; background: #1D8A4A14; border-radius: 12px; }
.vm-picks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0 0 14px; }
.vm-pick { display: flex; flex-direction: column; gap: 4px; padding: 14px; border: 1px solid #1D8A4A55; border-top: 4px solid #1D8A4A; border-radius: 14px; background: #FAF6EC; }
.vm-pick[data-pick="highestExportValue"] { border-top-color: #FFB627; }
.vm-pick h3 { margin: 0; font-size: 1.02rem; line-height: 1.25; }
.vm-pick p { margin: 0; font-size: .88rem; line-height: 1.4; flex: 1; opacity: .9; }
.vm-pick .vm-eyebrow { font-size: .7rem; }
.vm-adjust { margin: 0 0 14px; padding: 10px 16px; border: 1px solid #1D8A4A40; border-radius: 14px; background: #FAF6EC; }
.vm-adjust summary, .vm-more summary { cursor: pointer; font-weight: 650; min-height: 32px; display: flex; align-items: center; gap: 6px; }
.vm-adjust .vm-controls { margin-top: 10px; gap: 16px; }
.vm-list { margin: 0; }
.vm-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin-bottom: 8px; }
.vm-toolbar h2 { margin: 0; font-size: 1.2rem; }
.vm-toolbar fieldset { margin: 0; }
.vm-toolbar .vm-chips { gap: 6px; }
.vm-toolbar .vm-chip { padding: 7px 14px; font-size: .9rem; }
#solar-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 12px; }
.vm-plan { display: flex; flex-direction: column; gap: 8px; padding: 14px; border: 1px solid #1D8A4A40; border-radius: 14px; background: #FAF6EC; }
.vm-plan-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.vm-plan-head h3 { margin: 0; font-size: 1.02rem; line-height: 1.25; }
.vm-pill { flex: 0 0 auto; padding: 2px 10px; border-radius: 999px; background: #1D8A4A; color: #FAF6EC; font-size: .78rem; font-weight: 700; }
.vm-badges { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.vm-badge { padding: 2px 9px; border-radius: 999px; background: #FFB62733; font-size: .75rem; font-weight: 700; }
.vm-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; margin: 0; }
.vm-facts dt { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; opacity: .7; }
.vm-facts dd { margin: 0; font-weight: 650; font-size: .95rem; }
.vm-restrict { margin: 0; font-size: .85rem; padding: 5px 9px; border-radius: 8px; background: #FFB62722; }
.vm-more { font-size: .9rem; }
.vm-more .vm-terms { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; margin: 8px 0; }
.vm-more .vm-terms dd { margin: 0; }
.vm-more .hint { margin: 4px 0; font-size: .82rem; opacity: .85; }
.vm-plan .vm-choose { align-self: flex-start; margin-top: auto; padding: 0 2px; }
#solar-none { margin: 8px 0; }
@media (max-width: 850px) { .vm-picks { grid-template-columns: 1fr; } .vm-shell { margin-top: 12px; margin-bottom: 40px; } .vm-shell .vm-panel { padding: 14px; } }
@media (max-width: 520px) { .vm-sun { width: 60px; height: 60px; } .vm-solar-hero h1 { font-size: 1.55rem; } .vm-pick { padding: 12px; } .vm-picks { gap: 8px; } }
.vm-shell .vm-more summary { display: block; min-height: 0; padding: 2px 0; background: none; border: 0; color: #1D8A4A; font-weight: 700; font-size: .88rem; text-decoration: underline; }
.vm-shell .vm-adjust summary { font-size: .95rem; }
.vm-shell .vm-choose, .vm-shell .vm-pick a { color: #1D8A4A; text-decoration: none; border: 2px solid #1D8A4A; border-radius: 999px; padding: 0 16px; min-height: 40px; justify-content: center; align-self: flex-start; }
.vm-shell .vm-choose:hover { background: #1D8A4A; color: #FAF6EC; }
.vm-plan { gap: 6px; }
.vm-plan .vm-doc-links a { min-height: 32px; }
@media (min-width: 851px) { .vm-picks:has(.vm-pick[hidden]) { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); } }

/* Solar polish (2026-10-05): usage row wraps cleanly; "Full terms and documents" is a plain text toggle (no grey box). */
.vm-shell .vm-adjust summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; }
.vm-shell .vm-adjust summary output { white-space: nowrap; }
.vm-shell .vm-adjust summary .vm-quiet { margin: 0; white-space: nowrap; }
.vm-shell details.vm-more, .vm-shell details.vm-more[open] { background: none; border: 0; border-radius: 0; padding: 0; margin: 0; box-shadow: none; }
.vm-shell details.vm-more > summary { background: none; border: 0; border-radius: 0; padding: 2px 0; box-shadow: none; }

/* Solar copy refinement (2026-10-05): usage guidance, disclaimer and Safest Buyback explanation stay compact and secondary. */
.vm-howto { margin: 10px 0 12px; padding: 8px 12px; border-left: 3px solid #1D8A4A55; font-size: .84rem; line-height: 1.4; color: color-mix(in srgb, #1F2D24 78%, #FAF6EC); }
.vm-howto p { margin: 0 0 4px; }
.vm-howto-title { font-weight: 700; color: #1F2D24; font-size: .88rem; }
.vm-howto ul { margin: 2px 0 4px; padding-left: 1.1rem; }
.vm-howto li { margin: 1px 0; }
.vm-disclaimer { margin: 10px 0 0; font-size: .78rem; line-height: 1.35; color: color-mix(in srgb, #1F2D24 62%, #FAF6EC); }
.vm-shell details.vm-why { margin: 2px 0 0; padding: 0; border: 0; background: none; font-size: .82rem; }
.vm-shell details.vm-why > summary { padding: 2px 0; background: none; border: 0; color: #1D8A4A; font-weight: 700; font-size: .82rem; text-decoration: underline; cursor: pointer; }
.vm-why p { margin: 4px 0 2px; line-height: 1.4; opacity: .9; }

.vm-safest-none { margin: 0 0 12px; padding: 10px 14px; border: 1px solid #FFB62799; border-left: 4px solid #FFB627; border-radius: 12px; background: #FFB62714; font-size: .88rem; line-height: 1.4; }
.vm-safest-none b { display: block; margin-bottom: 2px; }
.vm-safest-none p { margin: 0; opacity: .9; }

.vm-custom-off { margin: 0 0 14px; padding: 12px 16px; border: 1px solid #1D8A4A40; border-radius: 14px; background: #FAF6EC; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.vm-custom-off p { margin: 0; flex: 1 1 220px; font-size: .95rem; }
.vm-custom-btn { min-height: 44px; padding: 0 18px; border: 0; border-radius: 999px; background: #1D8A4A; color: #FAF6EC; font: inherit; font-weight: 700; cursor: pointer; }
.vm-custom-reset { background: transparent; color: #1D8A4A; border: 1px solid #1D8A4A; margin-top: 8px; }
.vm-custom-off[hidden], .vm-adjust[hidden] { display: none; }
.vm-state { margin: 8px 0 12px; padding: 12px 14px; border: 1px dashed #1D8A4A66; border-radius: 12px; background: #FAF6EC; font-size: .92rem; color: #1F2D24; }
.vm-state[hidden], .vm-retry[hidden], .vm-example[hidden] { display: none; }
.vm-state[data-solar-state="loading"]::before, .vm-state[data-solar-state="partial"]::before { content: ""; display: inline-block; width: 12px; height: 12px; margin-right: 8px; border: 2px solid #1D8A4A; border-right-color: transparent; border-radius: 50%; animation: vm-spin .9s linear infinite; vertical-align: -2px; }
@keyframes vm-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .vm-state[data-solar-state="loading"]::before, .vm-state[data-solar-state="partial"]::before { animation: none; } }
.vm-retry { margin: 0 0 12px; }
.vm-example { margin: 8px 0; padding: 6px 10px; border-radius: 10px; background: rgba(255,182,39,.25); font-size: .85rem; font-weight: 650; }
