:root{--paper:#eef2f7;--paper2:#ffffff;--card:#ffffff;--navy:#0c1b33;--navy-2:#13294b;--ink:#1c2430;--ink2:#22304e;--gray:#4a5570;--gray2:#5d6b7e;--faint:#9aa7b6;--line:#e3e8ef;--line2:#d3dbe6;--brand:#0d9488;--brand-d:#0f766e;--brand-l:#0b6b63;--orange:#f5961e;--orange-d:#e07d00;--orange-l:#c26f05;--blue:#2b6fb8;--blue-l:#e8f0f9;--good:#1f9d6b;--rowhover:#eef5f4;--bg:var(--paper);--mincho:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;--gothic:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;--mono:"IBM Plex Mono","Zen Kaku Gothic New",monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--gothic);color:var(--ink);background:var(--paper);line-height:1.8;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}a:hover{color:var(--brand-d)}img{max-width:100%;height:auto}::selection{background:#0d948847}input::placeholder{color:#9aa2b3}input:focus,button:focus{outline:2px solid rgba(13,148,136,.55);outline-offset:1px}.logo-img{display:block;flex:none;border-radius:6px;object-fit:cover;aspect-ratio:1;height:auto}header.site{position:sticky;top:0;z-index:50;background:#fffffff2;backdrop-filter:blur(6px);border-bottom:1px solid var(--line2)}.nav{max-width:1320px;margin:0 auto;padding:11px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:11px;color:var(--navy)}.brand b{font-family:var(--mincho);font-weight:800;font-size:19px;letter-spacing:.05em}.brand small{display:block;font-family:var(--mono);color:var(--brand-l);font-size:8.5px;font-weight:600;margin-top:2px;letter-spacing:.2em}nav.menu{display:flex;gap:18px;flex-wrap:wrap;align-items:center}nav.menu a{color:var(--gray2);font-size:13.5px;font-weight:500;padding:4px 1px;border-bottom:2px solid transparent;transition:.15s;white-space:nowrap}nav.menu a:hover{color:var(--navy)}nav.menu a.on{color:var(--navy);font-weight:700;border-color:var(--brand)}.nav-toggle{display:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:42px;height:42px;padding:0;border:1px solid var(--line2);border-radius:8px;background:var(--card);cursor:pointer;flex:none}.nav-toggle .nt-bar{width:20px;height:2px;background:var(--navy);border-radius:2px;transition:transform .2s,opacity .2s}.nav-toggle.open .nt-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle.open .nt-bar:nth-child(2){opacity:0}.nav-toggle.open .nt-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media (max-width:980px){.nav-toggle{display:flex}nav.menu{display:none;position:absolute;top:100%;left:0;right:0;z-index:60;flex-direction:column;gap:0;align-items:stretch;background:#fffffffa;backdrop-filter:blur(8px);border-top:1px solid var(--line);border-bottom:2px solid var(--brand);box-shadow:0 14px 26px -14px #0c1b3359;padding:6px 0}nav.menu.open{display:flex}nav.menu a{padding:13px 22px;font-size:15px;border-bottom:1px solid var(--line);border-radius:0;color:var(--navy)}nav.menu a:last-child{border-bottom:none}nav.menu a.on{border-bottom-color:var(--line);border-left:3px solid var(--brand);background:#0d948814;color:var(--navy)}}.hero{background:var(--paper);border-bottom:1px solid var(--line);padding:34px 22px 30px;position:relative}.hero-inner{max-width:1320px;margin:0 auto;position:relative}.chip{display:inline-block;border:1px solid rgba(12,27,51,.3);color:#3d4a68;background:var(--card);font-weight:700;font-size:10.5px;letter-spacing:.14em;padding:3px 12px;border-radius:999px;margin-bottom:14px}.hero h1{font-family:var(--mincho);color:var(--navy);font-weight:800;font-size:clamp(24px,3.2vw,34px);line-height:1.4;letter-spacing:.05em}.hero h1 .em{color:var(--brand-d)}.hero .sub{margin-top:12px;font-family:var(--mincho);color:var(--gray);font-size:clamp(13px,2vw,15px);font-weight:500;line-height:1.95;max-width:760px}.hero .meta{margin-top:14px;display:flex;align-items:center;gap:12px;font-family:var(--mono);color:var(--faint);font-size:10.5px;letter-spacing:.1em;flex-wrap:wrap}.hero .meta .dot{width:3px;height:3px;border-radius:50%;background:var(--faint)}.wrap{max-width:1320px;margin:0 auto;padding:26px 22px 80px}.wrap-narrow{max-width:960px;margin:0 auto;padding:26px 22px 80px}.section-title{display:flex;align-items:center;gap:11px;margin:38px 0 16px;font-family:var(--mincho);font-size:19px;font-weight:800;letter-spacing:.03em;color:var(--navy)}.section-title:first-child{margin-top:0}.section-title:before{content:"";width:5px;height:20px;border-radius:2px;background:var(--brand);flex:none}.section-title:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line2),transparent)}.section-title .l{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--faint);font-weight:600}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0 0}.stat{background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:16px 18px;position:relative;overflow:hidden}.stat:before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--brand),var(--brand-d))}.stat.gas:before{background:linear-gradient(90deg,var(--orange),var(--orange-d))}.stat.blue:before{background:linear-gradient(90deg,#5aa0e0,var(--blue))}.stat b{display:block;font-family:var(--mono);font-size:27px;font-weight:600;line-height:1.05;letter-spacing:-.02em;color:var(--navy);font-variant-numeric:tabular-nums}.stat span{display:block;margin-top:7px;color:var(--gray);font-size:11.5px;letter-spacing:.02em}@media (max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}}.controls{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:0 0 14px}input[type=search]{flex:1;min-width:240px;background:var(--card);border:2px solid var(--line);color:var(--ink);padding:12px 16px;border-radius:12px;font-size:15px;font-family:var(--gothic);outline:none;transition:.15s}input[type=search]:hover{border-color:var(--line2)}input[type=search]:focus{border-color:var(--brand);box-shadow:0 0 0 4px #0d948826}.count{margin-left:auto;display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11.5px;color:var(--gray);padding:8px 14px;border:1px solid var(--line2);border-radius:999px;background:var(--card);font-variant-numeric:tabular-nums;white-space:nowrap}.count:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--good)}.filters{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.fchip{padding:7px 14px;border-radius:999px;border:1px solid var(--line2);background:var(--card);color:var(--gray);font-size:12.5px;font-weight:600;cursor:pointer;user-select:none;letter-spacing:.02em;transition:.15s;font-family:var(--gothic)}.fchip:hover{color:var(--navy);border-color:var(--brand)}.fchip.on{background:var(--navy);border-color:var(--navy);color:#fff}.fsep{width:1px;align-self:stretch;background:var(--line2);margin:2px 4px}.table-shell{position:relative;border:1px solid var(--line2);border-radius:14px;background:var(--card);overflow:auto;box-shadow:0 18px 40px -34px #0c1b3380}.tall{max-height:min(74vh,880px)}table{width:100%;border-collapse:separate;border-spacing:0;background:transparent}th,td{text-align:left;padding:11px 14px;font-size:12.8px;vertical-align:top;border-bottom:1px solid var(--line)}th{position:sticky;top:0;z-index:2;background:var(--navy);color:#dbe4f2;font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.08em;white-space:nowrap;padding:12px 14px;border-bottom:none;border-left:1px solid rgba(255,255,255,.1)}th:first-child{border-left:none}th[data-k]{cursor:pointer;user-select:none}th[data-k]:after{content:"⇅";margin-left:6px;font-size:9px;opacity:.5}th[data-k]:hover{color:#fff}th[data-sort=asc]:after{content:"↑";opacity:1;color:#4fd1c5}th[data-sort=desc]:after{content:"↓";opacity:1;color:#4fd1c5}tbody tr:hover td{background:var(--rowhover)}tbody tr:last-child td{border-bottom:none}td.name{font-weight:700;color:var(--navy);font-size:13px;white-space:nowrap}tbody tr:hover td.name{color:var(--brand-d)}td a{white-space:nowrap;font-size:12.5px;color:var(--blue)}td a:hover{color:var(--brand-d);text-decoration:underline}.sticky-first th:first-child,.sticky-first td:first-child{position:sticky;left:0}.sticky-first th:first-child{z-index:3}.sticky-first td:first-child{z-index:1;background:var(--card);box-shadow:8px 0 12px -12px #0c1b3366}.sticky-first tbody tr:hover td:first-child{background:var(--rowhover)}.hidden-row{display:none}.badge{display:inline-block;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.03em;padding:2.5px 8px;border-radius:6px;background:#eef1f6;color:#4a5570;border:1px solid var(--line2);margin-right:5px;margin-bottom:2px;white-space:nowrap;vertical-align:middle}.badge.big4{background:#fff2e2;color:var(--orange-l);border-color:#f5961e80}.badge.pub{background:var(--blue-l);color:var(--blue);border-color:#2b6fb859}.sns{display:inline-block;font-family:var(--mono);font-size:10px;font-weight:600;padding:2.5px 7px;margin:0 4px 3px 0;border:1px solid rgba(43,111,184,.3);border-radius:6px;color:var(--blue);letter-spacing:.03em;white-space:nowrap;transition:.15s}.sns:hover{background:var(--blue-l);border-color:var(--blue);color:var(--blue);text-decoration:none}.rank{font-family:var(--mono);font-weight:700;font-size:14px;color:var(--gray);font-variant-numeric:tabular-nums}.rank.top{color:var(--brand-d);font-size:15px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.card{background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:18px 20px;transition:.15s}.card:hover{border-color:#0d94888c;box-shadow:0 16px 34px -26px #0c1b3373}.card h3{margin:0 0 9px;font-family:var(--mincho);font-size:16px;font-weight:800;letter-spacing:.02em;color:var(--navy)}.card h3 a{color:var(--navy)}.card h3 a:hover{color:var(--brand-d)}.card .meta{font-size:12.5px;color:var(--gray);display:grid;grid-template-columns:auto 1fr;gap:5px 12px}.card .meta b{color:var(--ink2);font-weight:700;font-size:11.5px;white-space:nowrap}.card .listtext{color:var(--gray);font-size:13px;line-height:1.85}.note{background:var(--blue-l);border:1px solid rgba(43,111,184,.22);border-radius:12px;padding:13px 16px;color:var(--ink2);font-size:13px;margin:12px 0;line-height:1.85}.note b{color:var(--navy);font-weight:700}.note.warn{background:#fff6ec;border-color:#f5961e4d;color:#6b543a}.note.warn b{color:var(--orange-l)}.note code{font-family:var(--mono);font-size:12px;background:#fff;border:1px solid var(--line2);border-radius:4px;padding:1px 6px}.src{display:flex;flex-wrap:wrap;gap:10px;font-size:13px}.src a{display:inline-flex;align-items:center;padding:9px 14px;border:1px solid var(--line2);border-radius:9px;background:var(--card);color:var(--gray);transition:.15s}.src a:hover{color:var(--navy);border-color:var(--brand);background:#fff;text-decoration:none}.tl-wrap{max-width:960px}.tl-day{display:flex;align-items:center;gap:12px;margin:24px 0 6px;font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.05em;color:var(--brand-l)}.tl-day:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line2),transparent)}.tl-item{display:flex;gap:10px;align-items:baseline;padding:9px 12px;border-radius:10px;border:1px solid transparent;transition:.15s}.tl-item:hover{background:var(--card);border-color:var(--line2)}.tl-co{flex:0 0 auto;min-width:8em;font-size:11px;font-weight:700;color:var(--gray);font-family:var(--mono);letter-spacing:.01em}.tl-co.gas{color:var(--orange-l)}.tl-co.elec{color:var(--blue)}.tl-co.org{color:var(--gray2)}.tl-cat{flex:0 0 auto;font-size:10px;font-family:var(--mono);padding:2px 9px;border-radius:999px;border:1px solid var(--line2);color:var(--gray2);white-space:nowrap;background:var(--card)}.tl-cat[data-c=料金]{color:var(--orange-l);border-color:#f5961e66}.tl-cat[data-c=脱炭素・GX]{color:var(--good);border-color:#1f9d6b66}.tl-cat[data-c=供給・保安]{color:#c0392b;border-color:#c0392b59}.tl-cat[data-c=新サービス]{color:var(--blue);border-color:#2b6fb866}.tl-cat[data-c=経営・人事]{color:#7a5cc0;border-color:#7a5cc066}.tl-item a.tl-title{color:var(--ink);line-height:1.6;font-size:13.5px}.tl-item a.tl-title:hover{color:var(--brand-d);text-decoration:underline}@media (max-width:640px){.tl-item{flex-wrap:wrap;gap:6px}.tl-co{min-width:0}}.nav-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:6px}@media (max-width:900px){.nav-cards{grid-template-columns:1fr 1fr}}@media (max-width:600px){.nav-cards{grid-template-columns:1fr}}.nav-card{display:block;background:var(--card);border:1px solid var(--line2);border-radius:16px;padding:24px 22px;transition:.15s;position:relative;overflow:hidden;color:var(--navy)}.nav-card:before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:linear-gradient(90deg,var(--brand),var(--brand-d));opacity:0;transition:.15s}.nav-card:hover{transform:translateY(-3px);box-shadow:0 20px 44px -28px #0c1b3380;color:var(--navy)}.nav-card:hover:before{opacity:1}.nav-card .nc-top{display:flex;justify-content:space-between;align-items:center}.nav-card .nc-no{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--brand-l)}.nav-card .nc-stat{font-family:var(--mono);font-size:11px;color:var(--faint);font-weight:600}.nav-card h3{font-family:var(--mincho);font-size:20px;font-weight:800;margin-top:12px;color:var(--navy)}.nav-card p{font-size:13px;line-height:1.9;color:var(--gray);margin-top:8px}.nav-card .cta{font-size:13px;font-weight:700;margin-top:14px;color:var(--navy)}footer.site{background:var(--navy);color:#9fb0cc;margin-top:56px;padding:40px 22px}.foot{max-width:1320px;margin:0 auto;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}footer .brand{color:#f7f4ee}footer .brand b{color:#f7f4ee}.disclaimer{color:#8ea1c0;font-size:11.5px;line-height:1.85;margin-top:12px;max-width:620px}.foot-nav{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px}.foot-nav a{font-size:12px;color:#9fb0cc}.foot-nav a:hover{color:#fff}footer small{font-size:11px;color:#7d90b0;align-self:flex-end;font-family:var(--mono);letter-spacing:.06em}@media (max-width:640px){.wrap,.wrap-narrow{padding:22px 14px 70px}th:nth-child(4),td:nth-child(4){display:none}th,td{padding:10px 11px}.count{margin-left:0}}
