:root{--ink:#13222a;--muted:#5d6b73;--paper:#f4f6f2;--warm:#fbfaf6;--card:#fff;--line:#dce3de;--blue:#155eef;--blue-dark:#0b3f9c;--blue-soft:#eaf1ff;--mint:#bff3dc;--orange:#ffb84d;--shadow-sm:0 8px 24px rgba(19,34,42,.06);--shadow:0 24px 70px rgba(19,34,42,.11);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;line-height:1.62;background:radial-gradient(circle at 92% 2%,rgba(191,243,220,.48),transparent 29rem),radial-gradient(circle at 8% 38%,rgba(21,94,239,.055),transparent 25rem),linear-gradient(rgba(19,34,42,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(19,34,42,.018) 1px,transparent 1px),var(--paper);background-size:auto,auto,32px 32px,32px 32px,auto}a{color:var(--blue-dark);text-underline-offset:3px;text-decoration-thickness:1.5px}a:hover{color:var(--blue)}button,input,select{font:inherit}.wrap{width:min(1160px,calc(100% - 36px));margin-inline:auto}.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}.skip-link{position:fixed;z-index:100;top:10px;left:10px;transform:translateY(-150%);background:var(--ink);color:#fff;padding:10px 14px;border-radius:9px}.skip-link:focus{transform:translateY(0)}:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.header{position:sticky;top:0;z-index:40;border-bottom:1px solid rgba(220,227,222,.9);background:rgba(244,246,242,.9);backdrop-filter:blur(18px)}.nav{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:22px}.logo{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-weight:950;letter-spacing:-.045em;white-space:nowrap}.logo-mark{display:grid;place-items:center;width:40px;height:40px;background:linear-gradient(145deg,#2f75ff,#0c4bdd);color:#fff;border-radius:13px;box-shadow:0 8px 18px rgba(21,94,239,.24)}.navlinks{display:flex;align-items:center;justify-content:flex-end;gap:clamp(12px,1.5vw,21px)}.navlinks a{position:relative;text-decoration:none;color:#536168;font-weight:780;font-size:.9rem;white-space:nowrap}.navlinks a::after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:2px;background:var(--blue);transition:right .18s ease}.navlinks a:hover::after{right:0}.menu-toggle{display:none;align-items:center;gap:7px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);padding:9px 12px;font-weight:800;cursor:pointer}
.hero{padding:clamp(62px,8vw,100px) 0 48px}.eyebrow{font-size:.75rem;font-weight:950;letter-spacing:.15em;text-transform:uppercase;color:var(--blue);margin-bottom:16px}h1,h2,h3{line-height:1.08;letter-spacing:-.045em;margin-top:0;text-wrap:balance}h1{font-size:clamp(2.75rem,7vw,5.7rem);max-width:900px;margin-bottom:22px}h2{font-size:clamp(1.75rem,4vw,2.75rem)}h3{font-size:1.19rem}p{text-wrap:pretty}.lede{font-size:clamp(1.07rem,2vw,1.32rem);color:var(--muted);max-width:780px}
.search-wrap{position:relative;max-width:850px;margin-top:32px}.search{display:flex;align-items:center;gap:10px;background:#fff;padding:10px;border:1px solid #d3dcd6;border-radius:19px;box-shadow:var(--shadow)}.search:focus-within{border-color:#8eb2ff;box-shadow:0 0 0 4px rgba(21,94,239,.1),var(--shadow)}.search input{min-width:0;flex:1;border:0;outline:0;background:#fff;padding:14px;font-size:1.03rem;color:var(--ink)!important;-webkit-text-fill-color:var(--ink)!important;caret-color:var(--blue);opacity:1;-webkit-appearance:none;appearance:none;text-transform:uppercase}.search input::placeholder{opacity:1;text-transform:none;color:#7b878e!important;-webkit-text-fill-color:#7b878e!important}.search input:-webkit-autofill{-webkit-text-fill-color:var(--ink)!important;box-shadow:0 0 0 1000px #fff inset!important}.search button,.btn,.button{border:0;border-radius:12px;background:linear-gradient(145deg,#2970ff,#155eef);color:#fff;font-weight:850;padding:14px 21px;text-decoration:none;cursor:pointer;box-shadow:0 8px 18px rgba(21,94,239,.2)}.search button:hover,.btn:hover,.button:hover{color:#fff;background:var(--blue-dark)}.results{position:absolute;display:none;top:calc(100% + 8px);left:0;right:0;max-height:min(60vh,420px);background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:30}.results.on{display:block}.result-summary{position:sticky;top:0;z-index:1;padding:9px 17px;background:#f3f6fb;border-bottom:1px solid var(--line);color:var(--muted);font-size:.76rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.result{display:block;padding:13px 17px;text-decoration:none;border-bottom:1px solid var(--line);color:var(--ink)}.result:last-child{border:0}.result:hover,.result:focus{background:var(--blue-soft)}.result strong,.result span{display:block}.result span{color:var(--muted);font-size:.84rem}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:18px 0 66px}.stat{position:relative;overflow:hidden;background:rgba(255,255,255,.82);border:1px solid var(--line);padding:23px;border-radius:18px;box-shadow:var(--shadow-sm)}.stat::after{content:"";position:absolute;width:70px;height:70px;right:-28px;bottom:-33px;border-radius:50%;background:var(--mint);opacity:.7}.stat strong{display:block;font-size:1.9rem;line-height:1.1}.stat span{color:var(--muted)}.section{padding:clamp(52px,7vw,78px) 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:27px}.section-head p{max-width:570px;color:var(--muted);margin:0}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card{position:relative;display:block;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:18px;padding:24px;color:var(--ink);text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.card::after{content:"→";position:absolute;right:20px;top:20px;color:var(--blue);opacity:0;transform:translateX(-5px);transition:.18s ease}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#9fb3a7;color:var(--ink)}.card:hover::after{opacity:1;transform:translateX(0)}.card p{margin:8px 0 0;color:var(--muted)}.tag{display:inline-flex;background:var(--blue-soft);color:var(--blue-dark);border-radius:999px;padding:6px 10px;font-size:.71rem;font-weight:950;text-transform:uppercase;letter-spacing:.09em;margin-bottom:24px}.time{font-size:1.55rem;font-weight:950;letter-spacing:-.04em}.directory-count{display:inline-flex;align-items:center;margin:26px 0 20px;padding:8px 12px;border-radius:999px;background:#e7f6ef;color:#145c4d;font-size:.84rem;font-weight:800}
.trust{position:relative;overflow:hidden;background:linear-gradient(145deg,#0c2823,#123d35);color:#fff}.trust::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 20%,rgba(191,243,220,.14),transparent 20rem);pointer-events:none}.trust .wrap{position:relative}.trust p{color:#c9ddd7}.trust .eyebrow{color:#7ee1bb}.trust .card{background:rgba(26,67,59,.8);color:#fff;border-color:#356157;box-shadow:none}.trust .card::after{display:none}.trust .card p{color:#c9ddd7}
.crumbs{padding-top:25px;font-size:.84rem;color:var(--muted);overflow-wrap:anywhere}.crumbs a{color:var(--muted)}.pagehero{padding:48px 0 30px}.pagehero h1{font-size:clamp(2.45rem,6vw,4.65rem)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:30px;align-items:start;padding-bottom:76px}.article{min-width:0;background:#fff;border:1px solid var(--line);border-radius:22px;padding:clamp(24px,5vw,48px);box-shadow:var(--shadow)}.answer{padding:24px;border-left:5px solid var(--blue);background:linear-gradient(135deg,#edf3ff,#f7faff);border-radius:15px;margin-bottom:31px}.answer strong{display:block;font-size:1.55rem;margin-bottom:5px}.article section{border-top:1px solid var(--line);padding:31px 0}.article section:first-of-type{border-top:0}.cycle-table{width:100%;border-collapse:collapse}.cycle-table th,.cycle-table td{text-align:left;padding:15px 12px;border-bottom:1px solid var(--line)}.cycle-table tbody tr:hover{background:#f8faf8}.cycle-table th{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.cycle-table a{font-weight:820}.calc{padding:23px;background:#f5f8ff;border:1px solid #d3e0ff;border-radius:16px}.calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.calc label{font-size:.83rem;font-weight:820;color:var(--muted)}.calc input,.calc select{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;margin-top:5px}.finish{font-size:1.48rem;font-weight:950;color:var(--blue-dark);margin-top:16px}.notice{padding:18px;border-radius:13px;background:#fff6e5;border:1px solid #f1cf91}.source{padding:21px;border:1px solid var(--line);border-radius:14px;background:var(--warm);overflow-wrap:anywhere}.sidebar{position:sticky;top:94px}.side{background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:17px;padding:21px;margin-bottom:14px;box-shadow:var(--shadow-sm)}.side ul{list-style:none;padding:0;margin:0}.side li{padding:10px 0;border-bottom:1px solid var(--line)}.side li:last-child{border:0}.side a{text-decoration:none;font-weight:780}.ad{display:grid;place-items:center;min-height:110px;border:1px dashed #a7b2ad;border-radius:13px;background:#f0f2ef;color:#7d8983;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;margin:27px 0}.directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.meta{color:var(--muted)}
.footer{padding:44px 0;border-top:1px solid var(--line);background:rgba(244,246,242,.75);color:var(--muted);font-size:.88rem}.footer-row{display:flex;justify-content:space-between;gap:25px}.footer nav{display:flex;gap:17px;flex-wrap:wrap}
.energy-calc{padding:24px;border:1px solid #cbdaf8;border-radius:18px;background:linear-gradient(145deg,#f3f7ff,#fbfdff)}.energy-result{display:flex;flex-direction:column;gap:3px;margin-bottom:20px}.energy-result span,.cost-output span{color:var(--muted);font-size:.75rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.energy-result strong{font-size:1.55rem;line-height:1.25}.energy-result small{color:var(--muted)}.energy-controls{display:grid;grid-template-columns:1.2fr auto 1fr 1fr 1fr;gap:11px;align-items:end}.energy-controls label{font-size:.8rem;font-weight:850;color:var(--muted)}.energy-controls input{display:block;width:100%;min-height:46px;margin-top:5px;padding:10px 11px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:var(--ink)}.energy-controls button{min-height:46px;padding:10px 15px;border:0;border-radius:10px;background:var(--blue);color:#fff;font-weight:850;cursor:pointer}.energy-controls button:disabled{opacity:.65;cursor:wait}.rate-status{margin:14px 0;padding:11px 13px;border-radius:10px;background:#e8f0ff;color:#24426e;font-size:.86rem}.cost-output{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.cost-output div{display:flex;flex-direction:column;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}.cost-output strong{font-size:1.08rem}.method-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.method-grid>div{padding:18px;border:1px solid var(--line);border-radius:13px;background:var(--warm)}
.model-energy-controls{margin:20px 0}.model-energy-controls .energy-controls{grid-template-columns:minmax(150px,1.2fr) auto minmax(150px,1fr) minmax(150px,1fr)}.energy-table [data-local-cost]{font-weight:900;color:var(--blue-dark);white-space:nowrap}
.search-control{position:relative}
.energy-table tr.lowest-energy{background:#e7f8ef}.energy-table tr.lowest-energy:hover{background:#ddf4e8}.lowest-badge{display:inline-flex;align-items:center;white-space:nowrap;padding:5px 9px;border-radius:999px;background:#146c4c;color:#fff;font-size:.72rem;font-weight:950;letter-spacing:.02em}.lowest-badge::before{content:"↓";margin-right:5px}
@media(max-width:1040px){.menu-toggle{display:inline-flex}.nav{position:relative}.navlinks{display:none;position:absolute;top:calc(100% + 1px);left:0;right:0;padding:12px 18px 18px;flex-direction:column;align-items:stretch;gap:0;background:rgba(250,251,248,.98);border:1px solid var(--line);border-top:0;border-radius:0 0 16px 16px;box-shadow:var(--shadow)}.navlinks.open{display:flex}.navlinks a{padding:11px 5px;border-bottom:1px solid var(--line)}.navlinks a:last-child{border-bottom:0}.navlinks a::after{display:none}}
@media(max-width:800px){.hero{padding-top:52px}.stats,.grid,.layout{grid-template-columns:1fr}.sidebar{position:static}.directory{grid-template-columns:1fr}.section-head,.footer-row{align-items:flex-start;flex-direction:column}.calc-grid,.energy-controls,.cost-output,.method-grid{grid-template-columns:1fr}.article{border-radius:18px}.cycle-table{display:block;max-width:100%;overflow-x:auto}.energy-controls button{width:100%}}
@media(max-width:520px){.wrap{width:min(100% - 24px,1160px)}.logo-mark{width:36px;height:36px}.logo{font-size:.94rem}.menu-toggle{padding:8px 10px}h1{font-size:clamp(2.45rem,13vw,3.5rem)}.search{align-items:stretch;flex-direction:column;border-radius:16px}.search input{display:block;width:100%;min-height:48px;padding:12px 10px;font-size:16px;line-height:1.4}.search button{width:100%}.results{top:calc(100% + 6px);max-height:52vh}.stats{padding-bottom:36px}.article{padding:22px 18px}.answer,.calc{padding:18px}.cycle-table th,.cycle-table td{padding:12px 9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

/* Results sit directly under the search box, not as a floating dropdown */
.search-wrap .results{position:static;top:auto;left:auto;right:auto;display:none;margin-top:12px;max-height:min(60vh,520px);border-radius:16px}
.search-wrap .results.on{display:block}

/* ---- Mobile layout: no sideways scrolling ---- */
@media (max-width:640px){
  .energy-controls,.model-energy-controls .energy-controls{grid-template-columns:1fr!important;gap:14px}
  .energy-controls>*{min-width:0}
  .energy-controls input{width:100%;max-width:100%}
  .energy-calc{padding:18px}
  .energy-calc .rate-status{margin:14px 0 0}

  /* Generic cycle tables: fit the screen and wrap text */
  .cycle-table{display:table;width:100%;max-width:100%;table-layout:fixed;overflow:visible}
  .cycle-table th,.cycle-table td{overflow-wrap:anywhere;padding:12px 8px;font-size:.92rem}
  .cycle-table th{font-size:.68rem;letter-spacing:.05em}

  /* Energy table: each cycle becomes a stacked, labelled card */
  .energy-table thead{display:none}
  .energy-table,.energy-table tbody,.energy-table tr,.energy-table td{display:block;width:100%}
  .energy-table tr{padding:14px 12px;border-bottom:1px solid var(--line)}
  .energy-table tr:last-child{border-bottom:0}
  .energy-table td{border:0;padding:3px 0;text-align:left}
  .energy-table td:first-child a{font-size:1.08rem}
  .energy-table td:nth-child(2)::before{content:"Energy: ";color:var(--muted);font-weight:760}
  .energy-table td:nth-child(3)::before{content:"Local cost: ";color:var(--muted);font-weight:760}
  .energy-table td:nth-child(3){font-size:1.02rem}
  .energy-table td:nth-child(4)::before{content:"Basis: ";color:var(--muted);font-weight:760}
  .energy-table [data-local-cost]{white-space:normal}
}

/* ---- Variable-time pages ---- */
.program-section .program-list{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.program-list li{padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:760;font-size:.92rem}
.variable-group{margin-top:30px}
.variable-group h2 small{font-size:.8rem;color:var(--muted);font-weight:800;margin-left:6px}
.variable-list{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.variable-list li{border:1px solid var(--line);border-radius:14px;background:#fff;padding:0}
.variable-list a{display:block;padding:14px 16px;text-decoration:none;color:var(--ink)}
.variable-list a:hover{background:var(--blue-soft)}
.variable-list a{font-weight:850}
.variable-list span{display:block;color:var(--muted);font-size:.84rem;font-weight:600;padding:0 16px 12px;margin-top:-6px}
