.opp-public-planner,.opp-public-planner *{box-sizing:border-box}.opp-public-planner{--opp-green:#1e6b42;--opp-green-dark:#155232;--opp-green-soft:#eaf5ee;--opp-ink:#17211b;--opp-muted:#66736b;--opp-line:#dde5df;--opp-soft:#f4f8f5;--opp-card:#fff;--opp-warn:#8a5a00;--opp-danger:#8a2020;color:var(--opp-ink);font:inherit;width:100%;min-width:0}.opp-public-planner button,.opp-public-planner input{font:inherit}.opp-public-planner img{max-width:100%;display:block}.opp-public-planner__loading{min-height:220px;display:flex;align-items:center;justify-content:center;gap:12px;color:var(--opp-muted)}.opp-public-planner__spinner{width:24px;height:24px;border:3px solid var(--opp-line);border-top-color:var(--opp-green);border-radius:50%;animation:opp-spin .8s linear infinite}@keyframes opp-spin{to{transform:rotate(360deg)}}

/*
 * Responsive viewport canvas. WordPress themes can place shortcodes inside very narrow
 * article columns. The JS layout guard applies an exact viewport-relative width/offset
 * when needed; these declarations are the CSS fallback and intentionally use !important
 * so theme max-width rules cannot squeeze the planner.
 */
@media (min-width:921px){
.opp-public-planner{width:min(1480px,calc(100vw - 32px))!important;max-width:min(1480px,calc(100vw - 32px))!important;min-width:0!important;overflow:visible!important}
}

.opp-planner-shell{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(380px,.85fr);gap:28px;align-items:start}.opp-planner-panel{min-width:0;background:var(--opp-card);border:1px solid var(--opp-line);border-radius:22px;overflow:hidden;box-shadow:0 12px 34px rgba(23,33,27,.055)}.opp-planner-panel__head{padding:26px 26px 16px}.opp-planner-panel__head h2{margin:0 0 7px;font-size:clamp(1.3rem,1.7vw,1.8rem);line-height:1.15;letter-spacing:-.02em}.opp-planner-panel__head p{margin:0;color:var(--opp-muted);line-height:1.5;max-width:68ch}

.opp-runtime{padding:20px 26px 22px;background:linear-gradient(135deg,var(--opp-soft),#fff);border-top:1px solid var(--opp-line);border-bottom:1px solid var(--opp-line)}.opp-runtime__top{display:flex;justify-content:space-between;gap:18px;align-items:end;flex-wrap:wrap;margin-bottom:13px}.opp-runtime__eyebrow{display:block;color:var(--opp-muted);font-size:.78rem;font-weight:750;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}.opp-runtime__value{font-size:clamp(1.55rem,2.2vw,2.15rem);font-weight:850;color:var(--opp-green-dark);line-height:1}.opp-runtime__slider-wrap{position:relative;padding:3px 0}.opp-runtime input[type=range]{width:100%;accent-color:var(--opp-green);height:30px;cursor:pointer}.opp-runtime__scale{display:flex;justify-content:space-between;color:var(--opp-muted);font-size:.76rem;margin-top:-2px}.opp-runtime__manual{display:flex;align-items:center;gap:8px;color:var(--opp-muted);font-size:.88rem}.opp-runtime__manual input{width:96px;min-height:44px;border:1px solid var(--opp-line);border-radius:11px;padding:8px 10px;background:#fff;color:var(--opp-ink)}.opp-runtime__presets{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.opp-runtime-preset{min-height:36px;border:1px solid var(--opp-line);border-radius:999px;background:#fff;color:var(--opp-ink);padding:6px 12px;font-size:.82rem;font-weight:700;cursor:pointer}.opp-runtime-preset.is-active{background:var(--opp-green);border-color:var(--opp-green);color:#fff}

.opp-categories{display:flex;gap:8px;overflow:auto;padding:18px 26px 9px;scrollbar-width:thin}.opp-category{border:1px solid var(--opp-line);background:#fff;color:var(--opp-ink);border-radius:999px;padding:9px 14px;white-space:nowrap;cursor:pointer;min-height:40px;font-weight:650}.opp-category.is-active{background:var(--opp-green);border-color:var(--opp-green);color:#fff}.opp-appliance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:13px;padding:14px 26px 26px}.opp-appliance-card{min-width:0;position:relative;border:1px solid var(--opp-line);background:#fff;border-radius:17px;padding:11px;cursor:pointer;text-align:left;min-height:142px;transition:border-color .15s ease,transform .15s ease,background .15s ease,box-shadow .15s ease}.opp-appliance-card:focus-visible,.opp-stepper button:focus-visible,.opp-category:focus-visible,.opp-primary-action:focus-visible,.opp-runtime-preset:focus-visible{outline:3px solid rgba(30,107,66,.25);outline-offset:2px}@media (hover:hover) and (pointer:fine){.opp-appliance-card:hover{border-color:#a9beb0;transform:translateY(-2px);box-shadow:0 8px 22px rgba(23,33,27,.07)}}.opp-appliance-card.is-selected{border-color:var(--opp-green);background:#f6fbf7;box-shadow:inset 0 0 0 1px var(--opp-green)}.opp-appliance-card__image{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:12px;background:var(--opp-soft);margin-bottom:9px}.opp-appliance-card__image img{width:100%;height:100%;object-fit:contain}.opp-appliance-card--text-only{display:flex;flex-direction:column;justify-content:center;min-height:142px}.opp-appliance-card__title{font-weight:780;line-height:1.22;overflow-wrap:break-word;word-break:normal;white-space:normal;min-width:0}.opp-appliance-card__watts{color:var(--opp-muted);font-size:.82rem;margin-top:6px}.opp-appliance-card__count{position:absolute;top:8px;right:8px;min-width:30px;height:30px;padding:0 8px;display:flex;align-items:center;justify-content:center;border-radius:999px;background:var(--opp-green);color:#fff;font-size:.8rem;font-weight:850;box-shadow:0 4px 12px rgba(21,82,50,.2)}

.opp-selected{padding:20px 26px 26px;border-top:1px solid var(--opp-line);background:#fcfdfc}.opp-selected__heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.opp-selected h3{margin:0;font-size:1.08rem}.opp-selected__badge{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 9px;border-radius:999px;background:var(--opp-green-soft);color:var(--opp-green-dark);font-size:.82rem;font-weight:800}.opp-selected__empty{color:var(--opp-muted);padding:16px 0}.opp-selected-row{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:14px;align-items:center;padding:13px 0;border-top:1px solid var(--opp-line)}.opp-selected-row:first-of-type{border-top:0}.opp-selected-row__name{font-weight:750}.opp-selected-row small{color:var(--opp-muted)}.opp-selected-row__controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.opp-watts-input{width:86px;min-height:42px;border:1px solid var(--opp-line);border-radius:10px;padding:7px 9px;background:#fff}.opp-stepper{display:flex;align-items:center;border:1px solid var(--opp-line);border-radius:11px;overflow:hidden;background:#fff}.opp-stepper button{width:42px;height:42px;border:0;background:#fff;cursor:pointer;color:var(--opp-ink);font-size:1.18rem}.opp-stepper span{min-width:36px;text-align:center;font-weight:800}.opp-results-panel{position:sticky;top:22px}.opp-results-body{padding:0 22px 22px}.opp-results-body[aria-busy="true"]{opacity:.72}.opp-results-state{padding:34px 8px;color:var(--opp-muted);text-align:center;line-height:1.55}.opp-results-state strong{color:var(--opp-ink)}

.opp-load-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:17px}.opp-load-stat{background:var(--opp-soft);border:1px solid #edf2ee;border-radius:14px;padding:13px;min-width:0}.opp-load-stat strong{display:block;font-size:1.08rem;line-height:1.15;overflow-wrap:anywhere}.opp-load-stat span{color:var(--opp-muted);font-size:.76rem;line-height:1.25;display:block;margin-top:3px}.opp-recommendations{display:grid;gap:16px}.opp-system-card{border:1px solid var(--opp-line);border-radius:19px;overflow:hidden;background:#fff}.opp-system-card__hero{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;padding:16px;align-items:center}.opp-system-card__image{min-height:132px;display:flex;align-items:center;justify-content:center;background:var(--opp-soft);border-radius:14px;overflow:hidden}.opp-system-card__image img{width:100%;height:132px;object-fit:contain}.opp-system-card--no-image .opp-system-card__hero{grid-template-columns:1fr;padding-top:20px}.opp-system-card__rank{color:var(--opp-green);font-size:.75rem;font-weight:850;text-transform:uppercase;letter-spacing:.055em}.opp-system-card h3{margin:4px 0 5px;font-size:1.35rem;letter-spacing:-.015em}.opp-system-card__status{color:var(--opp-muted);font-size:.9rem}.opp-system-card__runtime{margin-top:10px;font-size:.88rem;color:var(--opp-muted)}.opp-system-card__runtime strong{display:block;font-size:1.28rem;color:var(--opp-green-dark);line-height:1.1}.opp-system-card__metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.opp-system-metric{background:var(--opp-soft);border-radius:10px;padding:8px 9px}.opp-system-metric strong{display:block;font-size:.92rem;color:var(--opp-ink)}.opp-system-metric span{display:block;font-size:.7rem;color:var(--opp-muted);margin-top:2px}.opp-system-card__details{display:grid;gap:0;padding:0 16px 14px}.opp-config-row{display:grid;grid-template-columns:58px minmax(0,1fr);gap:12px;align-items:center;border-top:1px solid var(--opp-line);padding:12px 0}.opp-config-row__icon{width:58px;height:58px;border-radius:12px;background:var(--opp-soft);display:flex;align-items:center;justify-content:center;font-size:1.35rem;overflow:hidden}.opp-config-row__icon img{width:100%;height:100%;object-fit:contain}.opp-config-row strong{display:block;line-height:1.25}.opp-config-row small{color:var(--opp-muted);line-height:1.35;display:block;margin-top:2px}.opp-system-card__warnings{margin:0 16px 14px;border-radius:11px;background:#fff8e8;color:var(--opp-warn);padding:10px 12px;font-size:.82rem;line-height:1.4}.opp-primary-action{display:inline-flex;align-items:center;justify-content:center;min-height:46px;border-radius:12px;background:var(--opp-green);color:#fff!important;text-decoration:none!important;padding:10px 16px;font-weight:780;width:100%}.opp-system-card__actions{padding:0 16px 16px}.opp-planner-error{margin:0 26px 20px;background:#fff0f0;border:1px solid #f0c6c6;color:var(--opp-danger);border-radius:12px;padding:12px 14px}

@media (min-width:1320px){.opp-planner-shell{grid-template-columns:minmax(0,1.7fr) minmax(400px,.8fr)}.opp-appliance-grid{grid-template-columns:repeat(4,minmax(165px,1fr))}.opp-planner-panel__head{padding-left:30px;padding-right:30px}.opp-runtime,.opp-categories,.opp-appliance-grid,.opp-selected{padding-left:30px;padding-right:30px}}
@media (min-width:921px) and (max-width:1319px){.opp-planner-shell{grid-template-columns:minmax(0,1.35fr) minmax(340px,.75fr);gap:20px}.opp-appliance-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}.opp-system-card__hero{grid-template-columns:120px minmax(0,1fr)}.opp-system-card__image,.opp-system-card__image img{min-height:108px;height:108px}.opp-load-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.opp-load-stat:last-child{grid-column:1/-1}}
@media (max-width:920px){.opp-planner-shell{grid-template-columns:1fr}.opp-results-panel{position:static}.opp-appliance-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.opp-load-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.opp-load-stat:last-child{grid-column:auto}}
@media (max-width:720px){.opp-planner-panel{border-radius:15px;box-shadow:none}.opp-planner-panel__head,.opp-runtime,.opp-categories,.opp-appliance-grid,.opp-selected,.opp-results-body{padding-left:14px;padding-right:14px}.opp-planner-panel__head{padding-top:20px}.opp-runtime__top{align-items:flex-start}.opp-runtime__manual{width:100%;justify-content:space-between}.opp-appliance-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.opp-appliance-card{min-height:118px}.opp-appliance-card--text-only{min-height:118px}.opp-selected-row{grid-template-columns:1fr}.opp-selected-row__controls{justify-content:flex-start}.opp-system-card__hero{grid-template-columns:105px minmax(0,1fr);gap:12px}.opp-system-card__image,.opp-system-card__image img{min-height:92px;height:92px}.opp-load-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.opp-load-stat:last-child{grid-column:1/-1}.opp-config-row{grid-template-columns:50px minmax(0,1fr)}.opp-config-row__icon{width:50px;height:50px}}
@media (max-width:420px){.opp-runtime__presets{gap:6px}.opp-runtime-preset{padding-left:10px;padding-right:10px}.opp-system-card__hero{grid-template-columns:1fr}.opp-system-card__image{min-height:150px}.opp-system-card__image img{height:150px}.opp-system-card__metrics{grid-template-columns:1fr 1fr}.opp-load-summary{grid-template-columns:1fr 1fr}.opp-load-stat:last-child{grid-column:1/-1}}
@media (prefers-reduced-motion:reduce){.opp-public-planner__spinner{animation:none}.opp-appliance-card{transition:none}}
.opp-public-planner .screen-reader-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
