/* All estimator controls are scoped to this plugin. */
.sle-shortcode { --sle-ink:#20372f; --sle-muted:#52665c; --sle-green:#215b44; --sle-paper:#f5f7f2; --sle-line:#d7dfd5; --sle-soft:#edf3eb; color:var(--sle-ink); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Yu Gothic",Meiryo,sans-serif; font-size:14px; line-height:1.6; container-type:inline-size; }
.sle-shortcode *, .sle-shortcode *::before, .sle-shortcode *::after { box-sizing:border-box; }
.sle-shortcode [hidden] { display:none !important; }
.sle-shortcode :focus-visible { outline:3px solid #9a6916; outline-offset:3px; }
.sle-shortcode a { color:var(--sle-green); text-decoration:underline; text-underline-offset:3px; }
.sle-shortcode .sle-app :is(h2,h3,h4,p,ul,dl) { margin:0; padding:0; border:0; }
.sle-shortcode .sle-app h2 { font-size:clamp(26px,3vw,38px); line-height:1.4; letter-spacing:.03em; color:var(--sle-ink); }
.sle-shortcode .sle-app h3 { font-size:16px; line-height:1.6; font-weight:700; color:var(--sle-ink); }
.sle-shortcode .sle-app h4 { font-size:14px; line-height:1.5; font-weight:700; color:var(--sle-ink); }
.sle-shortcode .sle-assumption-notice { margin:0 0 18px; padding:12px 16px; border-left:3px solid #a4802b; background:#faf5e8; font-size:13px; }
.sle-shortcode .sle-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; padding-bottom:20px; border-bottom:1px solid var(--sle-line); }
.sle-shortcode .sle-heading p { color:var(--sle-muted); margin-top:10px; }
.sle-eyebrow { display:block; color:var(--sle-green); font-size:11px; font-weight:700; letter-spacing:.14em; margin-bottom:10px; }
.sle-tools { display:flex; gap:6px; justify-content:flex-end; flex-wrap:wrap; max-width:380px; }
.sle-shortcode button { appearance:none; font:inherit; font-weight:600; font-size:12px; color:var(--sle-green); background:#fff; border:1px solid #b6c9b7; border-radius:6px; padding:9px 12px; line-height:1.5; min-height:38px; cursor:pointer; transition:background .15s; }
.sle-shortcode button:hover { color:#173e2e; background:var(--sle-soft); }
.sle-shortcode .sle-tools [data-action=save] { background:var(--sle-green); color:#fff; border-color:var(--sle-green); }
.sle-shortcode .sle-local-note { color:var(--sle-muted); font-size:12px; margin-top:10px; }
.sle-shortcode .sle-message { margin:8px 0; font-size:13px; color:var(--sle-green); }
.sle-message:empty { display:none; }
.sle-shortcode .sle-message.is-error { color:#94391f; }
.sle-presets { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:20px 0; }
.sle-presets>span { font-size:12px; font-weight:700; margin-right:4px; }
.sle-presets button[aria-pressed=true] { background:var(--sle-green); color:#fff; border-color:var(--sle-green); }
.sle-presets>small { flex-basis:100%; color:var(--sle-muted); font-size:11px; }
.sle-layout { display:grid; grid-template-columns:250px minmax(0,1fr) 260px; gap:20px; align-items:start; }
.sle-layout>* { min-width:0; }
.sle-panel { padding:18px; border:1px solid var(--sle-line); border-radius:10px; background:#fff; }
.sle-conditions>.sle-panel+.sle-panel { margin-top:14px; }
.sle-section-no { font-size:11px; color:var(--sle-green); margin-right:5px; font-weight:600; }
.sle-shortcode .sle-panel>h3 { margin-bottom:15px; }
.sle-field { margin:14px 0 0; min-width:0; }
.sle-field>label, .sle-item-price>label { display:block; font-size:12px; font-weight:500; color:var(--sle-muted); margin-bottom:5px; }
.sle-shortcode input, .sle-shortcode select { appearance:auto; font:inherit; font-size:13px; background:#fff; color:var(--sle-ink); border:1px solid #becdbd; border-radius:5px; width:100%; max-width:100%; min-width:0; min-height:40px; padding:8px 9px; line-height:1.5; box-shadow:none; }
.sle-shortcode input:disabled, .sle-shortcode select:disabled { background:#f1f3ef; color:#5d6a61; opacity:1; }
.sle-shortcode input[aria-invalid=true] { border:2px solid #94391f; }
.sle-input-unit { display:flex; align-items:center; gap:5px; }
.sle-input-unit>input { flex:1; }
.sle-input-unit>span { font-size:11px; color:var(--sle-muted); white-space:nowrap; }
.sle-field-error { color:#94391f; display:block; font-size:11px; margin-top:4px; }
.sle-field-error:empty { display:none; }
.sle-shortcode .sle-help { font-size:12px; color:var(--sle-muted); margin:10px 0 0; line-height:1.7; }
.sle-shortcode details>summary { font-size:13px; font-weight:700; cursor:pointer; list-style-position:outside; margin-left:14px; }
.sle-details-body { padding-top:2px; }
.sle-manual-fields { padding-top:4px; }
.sle-overview { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:16px; border:1px solid var(--sle-line); background:var(--sle-paper); border-radius:10px; }
.sle-total-card { background:var(--sle-green); color:#fff; padding:18px; border-radius:7px; min-width:0; }
.sle-total-card>span { display:block; font-size:12px; }
.sle-total-card>strong { display:block; font-size:clamp(18px,2.2cqw,31px); font-weight:700; letter-spacing:.015em; margin:4px 0; white-space:nowrap; }
.sle-total-card>small { font-size:10px; }
.sle-total-card--light { background:#e5ede0; color:var(--sle-ink); }
.sle-budget { grid-column:1/-1; display:grid; grid-template-columns:1fr auto; gap:6px; align-items:center; padding:0 2px; font-size:12px; }
.sle-budget strong { color:var(--sle-green); font-size:14px; }
.sle-budget.is-over strong { color:#94391f; }
.sle-budget-track { grid-column:1/-1; height:5px; border-radius:5px; background:#d8e0d4; overflow:hidden; }
.sle-budget-track span { display:block; height:100%; border-radius:5px; background:var(--sle-green); }
.sle-budget.is-over .sle-budget-track span { background:#a04c2e; }
.sle-budget-caption { grid-column:1/-1; font-size:11px; color:var(--sle-muted); }
.sle-shortcode .sle-list-heading { display:flex; align-items:center; flex-wrap:wrap; justify-content:space-between; gap:8px; margin-top:24px; }
.sle-list-heading>span { font-size:11px; color:var(--sle-muted); }
.sle-item-group { margin-top:20px; border:1px solid var(--sle-line); border-radius:9px; overflow:hidden; background:#fff; }
.sle-shortcode .sle-item-group>h3 { padding:10px 16px; background:var(--sle-soft); font-size:12px; color:var(--sle-muted); }
.sle-item { display:grid; grid-template-columns:90px minmax(0,1fr) 112px; gap:12px; padding:15px; border-top:1px solid var(--sle-line); align-items:start; }
.sle-item-title h4 { margin-top:3px !important; }
.sle-item-status { display:inline-block; font-size:10px; color:var(--sle-muted); margin-top:7px; }
.sle-item-status--owned { color:var(--sle-green); }
.sle-item-options { display:grid; grid-template-columns:minmax(0,1fr) 98px; gap:6px; min-width:0; }
.sle-item-options>select { font-size:12px; }
.sle-shortcode .sle-item-note { grid-column:1/-1; font-size:10px; color:var(--sle-muted); line-height:1.6; }
.sle-item-price>label { font-size:10px; }
.sle-item-price input { min-height:34px; padding:5px; font-size:12px; }
.sle-item-total { display:block; text-align:right; font-size:13px; color:var(--sle-green); margin-top:5px; }
.sle-utility-panel { margin-top:24px; }
.sle-shortcode .sle-utility-panel .sle-list-heading { margin-top:0; }
.sle-utility-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:18px; }
.sle-utility-cards>div { background:var(--sle-paper); padding:14px 10px; border-radius:6px; }
.sle-utility-cards span { display:block; font-size:11px; }
.sle-utility-cards strong { display:block; margin-top:3px; font-size:19px; }
.sle-utility-cards small { display:block; font-size:10px; color:var(--sle-muted); margin-top:4px; }
.sle-seasons { display:flex; flex-wrap:wrap; gap:16px; margin-top:16px; font-size:12px; }
.sle-seasons strong { margin-left:4px; }
.sle-utility-panel>details { border-top:1px solid var(--sle-line); margin-top:16px; padding-top:16px; }
.sle-model { font-size:12px; padding-top:12px; color:var(--sle-muted); }
.sle-shortcode .sle-model p { margin:12px 0; }
.sle-shortcode .sle-model ul { margin-left:18px; list-style:disc; }
.sle-shortcode .sle-model li+li { margin-top:6px; }
.sle-accounting-note { margin-top:16px; }
.sle-accounting-note p { font-size:12px; color:var(--sle-muted); }
.sle-results-sticky { position:sticky; top:32px; }
.sle-breakdown dl>div { display:flex; align-items:baseline; justify-content:space-between; gap:8px; font-size:12px; margin:11px 0; }
.sle-breakdown dt { color:var(--sle-muted); }
.sle-breakdown dd { font-variant-numeric:tabular-nums; margin:0; white-space:nowrap; font-weight:600; }
.sle-breakdown .sle-breakdown-total { padding-top:10px; border-top:1px solid var(--sle-line); font-size:14px; margin-bottom:18px; }
.sle-breakdown-total dd { color:var(--sle-green); }
.sle-income-result { padding:14px; background:var(--sle-soft); border-radius:6px; }
.sle-income-result span, .sle-year-result span { display:block; font-size:11px; color:var(--sle-muted); }
.sle-income-result strong { display:block; color:var(--sle-green); font-size:20px; margin-top:3px; }
.sle-income-result.is-over strong { color:#94391f; }
.sle-year-result { margin-top:16px; }
.sle-year-result strong { display:block; font-size:19px; margin-top:3px; }
.sle-year-result small { font-size:10px; color:var(--sle-muted); }
.sle-check-panel { margin-top:14px; }
.sle-shortcode .sle-checks { list-style:none; }
.sle-check { padding:12px !important; background:var(--sle-paper); border-radius:5px; font-size:12px; color:var(--sle-muted); line-height:1.7; }
.sle-check+.sle-check { margin-top:8px !important; }
.sle-check>span { display:block; font-size:10px; font-weight:700; color:var(--sle-green); margin-bottom:3px; }
.sle-check--warning { background:#faf5e8; }
.sle-check--warning>span { color:#795515; }
.sle-mobile-total { display:none; }
.sle-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
/* Present this page as a tool, within the existing site header and footer. */
body.sle-page .site.grid-container { max-width:1540px; }
body.sle-page.synthia-theme .site.grid-container { max-width:1540px; }
body.sle-page.synthia-theme .synthia-entry-content, body.sle-page.synthia-theme .synthia-page .entry-header { max-width:none; }
body.sle-page.synthia-theme .synthia-page>.inside-article { padding:28px; max-width:none; }
body.sle-page.synthia-theme .synthia-page .entry-title { font-size:22px; }
body.sle-page.synthia-theme .synthia-entry-content { margin-top:18px; }
@media (max-width:1250px) {
 .sle-layout { grid-template-columns:220px minmax(0,1fr); gap:16px; }
 .sle-results { grid-column:2; }
 .sle-results-sticky { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
 .sle-check-panel { margin-top:0; }
 .sle-item { grid-template-columns:80px minmax(0,1fr) 108px; gap:10px; }
 .sle-item-options { grid-template-columns:1fr; }
}
@media (max-width:900px) {
 .sle-heading { flex-direction:column; gap:16px !important; }
 .sle-tools { max-width:none; justify-content:flex-start; }
 .sle-layout { grid-template-columns:1fr; }
 .sle-conditions { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
 .sle-conditions>.sle-panel+.sle-panel { margin-top:0; }
 .sle-results { grid-column:1; }
 .sle-item { grid-template-columns:90px minmax(0,1fr) 120px; }
 .sle-item-options { grid-template-columns:minmax(0,1fr) 105px; }
 body.sle-page.synthia-theme .site-content { padding:20px 16px 50px; }
 body.sle-page.synthia-theme .synthia-page>.inside-article { padding:20px; }
}
@media (max-width:600px) {
 .sle-shortcode { font-size:13px; }
 .sle-shortcode .sle-heading p { font-size:12px; }
 .sle-shortcode .sle-app h2 { font-size:26px; }
 .sle-conditions { grid-template-columns:1fr; }
 .sle-panel { padding:15px; }
 .sle-conditions>.sle-panel:first-child { display:grid; grid-template-columns:1fr 1fr; column-gap:12px; }
 .sle-conditions>.sle-panel:first-child>h3 { grid-column:1/-1; margin-bottom:0; }
 .sle-tools { gap:6px; }
 .sle-shortcode button { padding:9px 10px; }
 .sle-presets { gap:6px; }
 .sle-presets>span { flex-basis:100%; }
 .sle-overview { padding:10px; gap:8px; }
 .sle-total-card { padding:12px 10px; }
 .sle-total-card>strong { font-size:clamp(14px,4.4cqw,22px); }
 .sle-total-card>small { font-size:9px; }
 .sle-budget { grid-template-columns:1fr; }
 .sle-item { grid-template-columns:minmax(0,1fr) 105px; padding:12px; gap:8px; }
 .sle-item-title { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:8px; }
 .sle-item-title h4 { margin:0 !important; }
 .sle-item-status { margin:0; }
 .sle-item-options { grid-template-columns:1fr; }
 .sle-item-options>select { font-size:12px; }
 .sle-utility-cards { grid-template-columns:1fr; gap:6px; }
 .sle-utility-cards>div { display:grid; grid-template-columns:1fr auto; align-items:center; gap:2px 8px; padding:10px 12px; }
 .sle-utility-cards strong { font-size:18px; margin:0; }
 .sle-utility-cards small { grid-column:1/-1; }
 .sle-results-sticky { grid-template-columns:1fr; }
 .sle-shortcode { padding-bottom:65px; }
 .sle-mobile-total { position:fixed; display:flex; align-items:center; justify-content:space-between; gap:8px; bottom:0; left:0; right:0; background:var(--sle-green); color:#fff; padding:10px 16px max(10px,env(safe-area-inset-bottom)); z-index:100; border-top:1px solid #b6c9b7; box-shadow:0 -3px 12px #20372f18; }
 .sle-mobile-total>span { font-size:10px; }
 .sle-mobile-total strong { display:block; font-size:16px; }
 .sle-shortcode .sle-mobile-total a { color:#fff; font-size:11px; }
 body.sle-page.synthia-theme .site-content { padding:16px 10px 32px; }
 body.sle-page.synthia-theme .synthia-page>.inside-article { padding:14px; }
}
/* Adapt to the actual article width as well as the viewport, for other themes. */
@container (max-width:1250px) {
 .sle-layout { grid-template-columns:220px minmax(0,1fr); gap:16px; }
 .sle-results { grid-column:2; }
 .sle-results-sticky { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
 .sle-check-panel { margin-top:0; }
 .sle-item { grid-template-columns:80px minmax(0,1fr) 108px; gap:10px; }
 .sle-item-options { grid-template-columns:1fr; }
}
@container (max-width:900px) {
 .sle-heading { flex-direction:column; gap:16px !important; }
 .sle-tools { max-width:none; justify-content:flex-start; }
 .sle-layout { grid-template-columns:1fr; }
 .sle-conditions { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
 .sle-conditions>.sle-panel+.sle-panel { margin-top:0; }
 .sle-results { grid-column:1; }
 .sle-item { grid-template-columns:90px minmax(0,1fr) 120px; }
 .sle-item-options { grid-template-columns:minmax(0,1fr) 105px; }
}
@container (max-width:600px) {
 .sle-conditions { grid-template-columns:1fr; }
 .sle-conditions>.sle-panel:first-child { display:grid; grid-template-columns:1fr 1fr; column-gap:12px; }
 .sle-conditions>.sle-panel:first-child>h3 { grid-column:1/-1; margin-bottom:0; }
 .sle-presets>span { flex-basis:100%; }
 .sle-overview { padding:10px; gap:8px; }
 .sle-total-card { padding:12px 10px; }
 .sle-total-card>strong { font-size:clamp(14px,4.4cqw,22px); }
 .sle-total-card>small { font-size:9px; }
 .sle-budget { grid-template-columns:1fr; }
 .sle-item { grid-template-columns:minmax(0,1fr) 105px; padding:12px; gap:8px; }
 .sle-item-title { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:8px; }
 .sle-item-title h4 { margin:0 !important; }
 .sle-item-status { margin:0; }
 .sle-item-options { grid-template-columns:1fr; }
 .sle-utility-cards { grid-template-columns:1fr; gap:6px; }
 .sle-utility-cards>div { display:grid; grid-template-columns:1fr auto; align-items:center; gap:2px 8px; padding:10px 12px; }
 .sle-utility-cards strong { font-size:18px; margin:0; }
 .sle-utility-cards small { grid-column:1/-1; }
 .sle-results-sticky { grid-template-columns:1fr; }
}
@media print {
 body.sle-page :is(.site-header,.main-navigation,.site-footer,.synthia-footer-links,.sle-tools,.sle-presets,.sle-conditions,.sle-mobile-total,.sle-message,.sle-local-note) { display:none !important; }
 body.sle-page.synthia-theme .site-content { padding:0; }
 body.sle-page.synthia-theme .synthia-page>.inside-article { padding:0; border:0; }
 .sle-shortcode { font-size:10pt; padding:0; }
 .sle-layout { display:block; }
 .sle-results-sticky { display:block; position:static; }
 .sle-results { margin-top:20px; }
 .sle-heading { display:block; }
 .sle-item { grid-template-columns:100px minmax(0,1fr) 100px; break-inside:avoid; }
 .sle-item-options { grid-template-columns:1fr 100px; }
 .sle-shortcode select { appearance:none; border:0; font-size:10pt; }
 .sle-item-price>label, .sle-item-price>.sle-input-unit { display:none; }
 .sle-item-total { font-size:10pt; }
 .sle-shortcode .sle-item-group { break-inside:auto; }
 .sle-total-card { background:#fff; color:#20372f; border:1px solid #d7dfd5; }
 .sle-utility-panel { break-inside:avoid; }
 .sle-panel { border-color:#bbb; }
 .sle-assumption-notice { font-size:9pt !important; }
 .sle-year-result, .sle-income-result { break-inside:avoid; }
}
/* Official product search is optional; all selectors stay within the estimator. */
.sle-app .sle-product-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.sle-app .sle-search-heading > button { flex-shrink: 0; white-space: nowrap; }
.sle-app .sle-product-source { display: block; font-weight: 700; margin-bottom: 6px; font-size: 12px; }
.sle-app .sle-manual-dialog input[type="checkbox"] { width: auto; }
.sle-app .sle-credit-yahoo a { color: #0000ee; font-size: 16px; }
.sle-app .sle-credit-yahoo a:visited { color: #551a8b; }
.sle-app .sle-credit-yahoo { font-size: 16px; }
.sle-app .sle-manual-status { color: #a13824; }
.sle-app .sle-product-slot { grid-column: 1 / -1; min-width: 0; }
.sle-app .sle-product-open { margin-top: 10px; }
.sle-app .sle-chosen-product { background: #f1f7f3; border-left: 3px solid #33715c; padding: 12px; margin-top: 12px; overflow-wrap: anywhere; }
.sle-app .sle-chosen-product small { display: block; margin: 8px 0; line-height: 1.7; }
.sle-app .sle-product-credit { padding: 18px 0; font-size: 13px; line-height: 1.8; }
.sle-app .sle-product-dialog { width: min(780px, calc(100vw - 24px)); max-height: 85vh; box-sizing: border-box; padding: 24px; border: 1px solid #bfd2c5; border-radius: 16px; color: #22382c; background: #fff; overflow: auto; }
.sle-app .sle-product-dialog::backdrop { background: #102c2599; }
.sle-app .sle-search-heading { display: flex; justify-content: space-between; align-items: start; gap: 16px; }
.sle-app .sle-search-heading h3 { font-size: 20px; margin: 0 0 18px; }
.sle-app .sle-search-form { display: grid; gap: 8px; }
.sle-app .sle-search-form input, .sle-app .sle-search-form select { width: 100%; min-width: 0; }
.sle-app .sle-search-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 18px 0; }
.sle-app .sle-search-card { min-width: 0; padding: 16px; border: 1px solid #cbd8ce; border-radius: 10px; overflow-wrap: anywhere; }
.sle-app .sle-search-card h4 { font-size: 15px; line-height: 1.6; }
.sle-app .sle-search-card small, .sle-app .sle-search-card button { display: block; margin-top: 12px; }
@media (max-width: 600px) {
  .sle-app .sle-product-dialog { padding: 16px; }
  .sle-app .sle-search-results { grid-template-columns: 1fr; }
}
@media print {
  .sle-app .sle-product-dialog, .sle-app .sle-product-open, .sle-app [data-clear-product] { display: none !important; }
}
