/* NRG+ batch 2: plan page, compare, tracker, landlord checker, map, thermal view, print. Respects prefers-reduced-motion. */
.ll-check .note{margin:0 0 10px}
.bandchip{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 8px;border-radius:8px;color:#fff;font-weight:900;font-family:var(--mono);font-size:1.05rem}
.bA{background:var(--bA)}.bB{background:var(--bB)}.bC{background:var(--bC)}.bD{background:var(--bD)}.bE{background:var(--bE)}.bF{background:var(--bF)}.bG{background:var(--bG)}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.doc.planpage,.doc.trackpage{max-width:900px}
.plan-head{display:flex;gap:18px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.plan-actions{display:flex;gap:8px;flex-wrap:wrap}
.plan-table th a{color:var(--ink)}
.plan-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.plan-totals div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.plan-totals small,.plan-band small{display:block;font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.plan-totals b{font-family:var(--mono);font-size:1.05rem}
@media(max-width:620px){.plan-totals{grid-template-columns:1fr}}
.plan-band{display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin:10px 0}
.plan-band i{font-style:normal;color:var(--muted)}
.plan-cta{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 8px}
.print-only{display:none}
/* compare */
.cmp{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0}
@media(max-width:700px){.cmp{grid-template-columns:1fr}}
.cmp-col{background:#fff;border:2px solid var(--line);border-radius:14px;padding:16px}
.cmp-col h3{font-size:1.15rem;margin-bottom:4px}
.cmp-col ul{margin:8px 0;padding-left:20px}
.cmp-col dl{margin:8px 0 0;display:grid;gap:6px}
.cmp-col dl div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:6px}
.cmp-col dt{font-size:.8rem;color:var(--muted)}.cmp-col dd{margin:0;font-weight:700;font-family:var(--mono);font-size:.9rem;text-align:right}
.cmp-band{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:6px 0}
.cmp-col .btnrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
/* plan tools on home */
.plantools{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;margin:18px 0}
.plantools h3{font-size:1.2rem;margin-bottom:4px}
.plantools .row{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.planlink{background:#f3fbf6;border:1.5px solid var(--acc-t);border-radius:12px;padding:12px;margin-top:10px;word-break:break-all}
.planlink code{font-family:var(--mono);font-size:.85rem}
/* tracker */
.trk{list-style:none;margin:20px 0;padding:0;display:grid;gap:0}
.trk li{display:flex;gap:14px;align-items:flex-start;position:relative;padding:0 0 22px}
.trk li:not(:last-child):before{content:"";position:absolute;left:17px;top:36px;bottom:0;width:3px;background:var(--line)}
.trk li.trk-done:not(:last-child):before{background:var(--acc-t)}
.trk-dot{flex:0 0 36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-family:var(--mono);background:#fff;border:3px solid var(--line);color:var(--muted)}
.trk-done .trk-dot{background:var(--acc-t);border-color:var(--acc-t);color:#fff}
.trk-next .trk-dot{border-color:#d9b24a;background:var(--warn-soft);color:var(--warn)}
.trk b{font-size:1.1rem}.trk p{margin:2px 0 0;color:var(--muted);font-size:.95rem}
.trk-todo b,.trk-todo p{opacity:.75}
.trk-note{margin:12px 0;padding:14px}
/* landlord */
.ll-status{background:var(--warn-soft);border:1.5px solid #d9b24a;border-radius:12px;padding:12px 14px;margin:14px 0;font-size:.95rem}
.ll-check{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;margin:18px 0}
.ll-table td,.ll-table th{vertical-align:top;font-size:.95rem}
.ll-table tbody th{width:16%}
.ll-res{border-radius:14px;padding:16px;margin:14px 0;border:2px solid var(--line);background:#fff}
.ll-res.ok{border-color:var(--acc-t);background:#f3fbf6}.ll-res.warn{border-color:#d9b24a;background:var(--warn-soft)}.ll-res.bad{border-color:var(--bad);background:var(--bad-soft)}
.ll-vs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
@media(max-width:620px){.ll-vs{grid-template-columns:1fr}}
.ll-vs>div{background:rgba(255,255,255,.7);border-radius:10px;padding:10px 12px;border:1px solid var(--line)}
.ll-vs h3{font-size:.95rem;margin-bottom:4px}
.ll-tag{display:inline-block;font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:6px;margin-right:6px;font-weight:700}
.ll-tag.law{background:var(--ink);color:#fff}.ll-tag.prop{background:#fff;color:var(--ink);border:1.5px dashed var(--ink)}
.expect-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:10px 0}
@media(max-width:620px){.expect-grid{grid-template-columns:1fr}}
.expect-grid>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.expect h3{font-size:1.02rem;margin:14px 0 4px}.expect-grid h3{margin-top:0}
/* map */
.mapsec{margin:0 0 22px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px}
.mapsec h3{font-size:1.2rem}
.mapframe{position:relative;border-radius:12px;overflow:hidden;background:#cdd6dd;margin:10px auto;aspect-ratio:4/3;max-width:760px}
#map{position:absolute;inset:0;background:#cdd6dd}
.mapctl{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.mapctl label{display:inline-flex;gap:8px;align-items:center;font-weight:700;font-size:.9rem;min-height:40px;cursor:pointer}
.mapctl input{width:20px;height:20px;accent-color:var(--acc-t)}
.mapcap{position:absolute;left:8px;top:8px;z-index:500;max-width:calc(100% - 16px);background:rgba(15,15,15,.85);color:#fff;font-size:.74rem;padding:5px 9px;border-radius:8px;pointer-events:none}
.mapsec .leaflet-container{font:inherit}
.roofsvg{overflow:visible;pointer-events:none}
.roofsvg .glow-roof{opacity:calc(var(--mh,1)*.95);transition:opacity .9s}
.roofsvg .glow-wall{opacity:calc(var(--mw,1)*.9);transition:opacity .9s}
.roofsvg.off .glow-roof,.roofsvg.off .glow-wall{opacity:0}
.roofsvg .solar{opacity:0;transition:opacity .5s}.roofsvg.sol .solar{opacity:1}
@media(prefers-reduced-motion:reduce){.roofsvg .glow-roof,.roofsvg .glow-wall,.roofsvg .solar{transition:none}}
/* thermal camera view on the house */
.thermalkey{display:none;margin:8px 0 0;font-size:.8rem;color:var(--muted)}
.thermalkey.on{display:block}
.thermalkey .scale{height:10px;border-radius:6px;background:linear-gradient(90deg,#2a1b8f,#1c6bd8 25%,#25c6b0 45%,#ffd400 65%,#ff7a00 82%,#ff1e1e);margin:4px 0}
.thermalkey .ends{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.7rem}
.stage3d[data-thermal=on]{background:#0a0620}
.stage3d[data-thermal=on] .layer.sky,.stage3d[data-thermal=on] .layer.ground,.stage3d[data-thermal=on] .layer.body,.stage3d[data-thermal=on] .layer.open{filter:grayscale(1) brightness(.5) contrast(1.2)}
.stage3d[data-thermal=on] .layer.fill .u{filter:grayscale(1) brightness(.7)}
.stage3d[data-thermal=on]::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(55,25,150,.6),rgba(20,70,170,.4));mix-blend-mode:multiply;pointer-events:none;z-index:6}
.stage3d[data-thermal=on][data-season]{--heat:1}
.stage3d[data-thermal=on] .heat{mix-blend-mode:screen}
.stage3d[data-thermal=on] .heat .z{opacity:calc(var(--h,1)*1);filter:blur(9px)}
.stage3d[data-thermal=on] .z-roof{fill:#ff1e1e}.stage3d[data-thermal=on] .z-wall{fill:#ff7a00}.stage3d[data-thermal=on] .z-win{fill:#ffd400}.stage3d[data-thermal=on] .z-door{fill:#fff27a}
.stage3d[data-thermal=on] .snow,.stage3d[data-thermal=on] .flakes{opacity:0}
/* photo health check */
.aibox{background:#f7f4ee;border:1.5px solid var(--lstrong);border-radius:12px;padding:12px 14px;margin:12px 0}
.aibox h4{margin:0 0 4px;font-size:1rem}
.aibox ul{margin:6px 0;padding-left:20px}
.aibox .tag-exp{display:inline-block;font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;background:var(--warn-soft);border:1px solid #d9b24a;border-radius:6px;padding:1px 7px;margin-left:6px}
.thumbwrap{width:96px;font-size:.7rem;line-height:1.2;color:var(--muted)}
.thumbwrap .cap{display:block;margin-top:2px}
/* print: clean, ink-light, no chrome */
@media print{
  nav,footer,.skip,.noprint,.bar,.cta-box,.plan-cta{display:none!important}
  body{background:#fff;color:#000}
  .print-only{display:block!important}
  .doc.planpage{max-width:none;padding:0}
  .plan-table,.cmp-col,.plan-totals div,.plan-band{break-inside:avoid;border-color:#999}
  a{color:#000;text-decoration:none}
  .bandchip{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .legend{border:1px solid #999;padding:6px}
}
.mapframe.thermal .leaflet-tile-pane{filter:grayscale(1) brightness(.62) contrast(1.15)}
.mapframe.thermal::before{content:"";position:absolute;inset:0;z-index:450;pointer-events:none;background:linear-gradient(180deg,rgba(55,25,150,.45),rgba(20,70,170,.3));mix-blend-mode:multiply}
.bar .btn.ghost-bar{background:transparent;color:#fff;border:2px solid #fff;min-height:44px}
.bar .btn.ghost-bar:hover{background:#fff;color:var(--ink)}
@media(max-width:620px){.bar .btn.ghost-bar{display:none}}

.cta-box .btn.ghost{background:transparent;color:#fff;border:2px solid #fff}.cta-box .btn.ghost:hover{background:#fff;color:var(--ink)}

/* real imagery (Google / Mapbox) panes: the picture is shown whole so the provider logo and copyright inside it stay visible */
.satpane,.svpane{position:absolute;inset:0;overflow:hidden;background:#1a1f24}
.satpane[hidden],.svpane[hidden],.maptabs[hidden],.svctl[hidden],.homeq[hidden]{display:none}
.satinner{position:absolute;inset:0;cursor:crosshair;transform-origin:var(--ox,50%) var(--oy,50%);transition:transform 1.7s cubic-bezier(.2,.7,.2,1),opacity 1.2s;outline-offset:-3px}
.satinner.pre{transform:scale(.45);opacity:0}
.satinner img,.svpane img{width:100%;height:100%;display:block;object-fit:contain}
.satinner .roofsvg{position:absolute;overflow:visible}
.mapframe.real .mapcap{background:rgba(15,15,15,.78)}
@media(prefers-reduced-motion:reduce){.satinner{transition:none}}
.maptabs{display:inline-flex;gap:0;border:2px solid var(--ink,#111);border-radius:10px;overflow:hidden;margin:6px 0}
.maptabs button{font:inherit;font-weight:700;font-size:.9rem;min-height:44px;padding:0 16px;border:0;background:#fff;color:inherit;cursor:pointer}
.maptabs button+button{border-left:2px solid var(--ink,#111)}
.maptabs button[aria-pressed=true]{background:var(--ink,#111);color:#fff}
.maptabs button:disabled{opacity:.45;cursor:not-allowed}
.svctl{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 6px}
.homeq{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:8px 0;padding:10px 12px;background:#f3f7f4;border:1px solid var(--line);border-radius:10px}
.mapframe:not(.real) .mapcap{top:auto;bottom:26px}
