:root{--ink:#1a1a18;--coral:#e05a3a;--teal:#1b6b6e;--cream:#fdfaf5;--coral-light:#f2eae5;--teal-light:#e3eded;--sand:#e8ddd0;--gold:#b8860b;--gold-light:#f5edd8;--sky:#4a90a4;--ink-soft:#3d3d3d;--ink-dim:#7a7880;--rule:#d4c8be;--green:#2e7d32;--red:#c62828;--orange:#e65100}.cat-hero{background:linear-gradient(180deg,var(--cream) 0,var(--coral-light) 100%);padding:48px 48px 40px;border-bottom:2px solid var(--ink);position:relative;overflow:hidden}.cat-hero:before{content:"";position:absolute;top:-60px;right:-60px;width:360px;height:360px;background:radial-gradient(circle,rgba(217,95,59,.06) 0,transparent 70%);pointer-events:none}.cat-eyebrow{font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--coral);margin-bottom:16px;display:flex;align-items:center;gap:10px}.cat-eyebrow:before{content:"";display:inline-block;width:32px;height:1px;background:var(--coral)}.live-dot{display:inline-flex;width:7px;height:7px;background:var(--coral);border-radius:50%;animation:pulse-dot 1.4s infinite;margin-right:5px}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.cat-title{font-family:"DM Serif Display",serif;font-size:clamp(28px,4vw,48px);line-height:1.1;letter-spacing:-.02em;color:var(--ink);margin-bottom:12px}.cat-desc{font-family:Cormorant Garamond,serif;font-size:18px;font-style:italic;color:var(--ink-soft);max-width:600px}.main-container{max-width:1280px;margin:0 auto;padding:0 48px}.section-header{display:flex;align-items:baseline;gap:16px;padding:40px 0 20px;border-bottom:2px solid var(--ink);margin-bottom:32px;flex-wrap:wrap}.section-title{font-family:"DM Serif Display",serif;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink)}.section-tagline{font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);flex:1}.fuel-table-wrap{border:1px solid var(--rule);margin-bottom:48px;overflow:hidden}.fuel-table{width:100%;border-collapse:collapse}.fuel-table thead{background:var(--ink);color:#fff}.fuel-table thead th{font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:12px 16px;text-align:left;font-weight:500}.fuel-table tbody tr{border-bottom:1px solid var(--rule)}.fuel-table tbody tr:last-child{border-bottom:none}.fuel-table tbody tr:hover{background:var(--sand)}.fuel-table tbody td{padding:14px 16px;font-size:13px;color:var(--ink-soft)}.fuel-name{font-family:"DM Serif Display",serif;font-size:15px;color:var(--ink)}.fuel-price{font-family:JetBrains Mono,monospace;font-size:14px;font-weight:500;color:var(--coral)}.fuel-note{letter-spacing:.06em}.fuel-note,.fuel-update{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-dim)}.fuel-update{background:var(--sand);padding:10px 16px;letter-spacing:.08em;text-transform:uppercase;border-top:1px solid var(--rule)}.elec-caduque,.elec-vide{font-family:Cormorant Garamond,serif;font-style:italic;font-size:16px;color:var(--ink-soft);padding:24px 0;margin-bottom:24px}.elec-filtre,.elec-liste{margin-bottom:24px}.elec-filtre{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.elec-filtre-label{font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}.elec-filtre-select{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--ink);background:#fff;border:1px solid var(--rule);padding:6px 10px}.elec-jour-groupe{margin-bottom:28px}.elec-jour-titre{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--coral);padding-bottom:8px;margin-bottom:12px;border-bottom:1px solid var(--rule);cursor:default}.elec-reste>summary{cursor:pointer}.elec-reste>summary::-webkit-details-marker{display:none}.elec-coupure-card{border:1px solid var(--rule);padding:14px 16px;margin-bottom:10px}.elec-coupure-municipio{font-family:"DM Serif Display",serif;font-size:16px;color:var(--ink);margin-bottom:4px}.elec-coupure-creneau{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-dim);letter-spacing:.04em;margin-bottom:8px}.elec-coupure-date{color:var(--coral)}.elec-coupure-zonas{font-size:13px;color:var(--ink-soft);line-height:1.4;margin-bottom:6px}.elec-coupure-causa{font-size:10px;letter-spacing:.06em;color:var(--ink-dim)}.elec-btn-signaler,.elec-coupure-causa{font-family:JetBrains Mono,monospace;text-transform:uppercase}.elec-btn-signaler{display:inline-block;background:var(--green);color:#fff;padding:10px 22px;border-radius:3px;font-size:11px;letter-spacing:.08em;text-decoration:none;font-weight:500;margin:12px 0 24px;transition:background .2s}.elec-btn-signaler:hover{background:#245f28}.elec-avert-fraicheur{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--gold);letter-spacing:.04em;margin-bottom:16px}.elec-vivacite{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--ink-dim);letter-spacing:.06em;margin-top:8px}.elec-notes-permanentes{margin:24px 0 48px}.elec-note-perimetre,.elec-note-reglementaire{font-family:Cormorant Garamond,serif;font-style:italic;font-size:13px;color:var(--ink-dim);line-height:1.5;margin-bottom:8px}.error-state{border:1px solid rgba(198,40,40,.2);background:rgba(198,40,40,.04);padding:32px;text-align:center;margin-bottom:48px}.error-title{font-family:"DM Serif Display",serif;font-size:24px;color:var(--red);margin-bottom:8px}.error-desc{font-family:Cormorant Garamond,serif;font-size:16px;font-style:italic;color:var(--ink-dim);margin-bottom:16px}.error-link{font-size:11px;color:var(--coral);text-decoration:none;border-bottom:1px solid var(--coral)}.error-link,.page-footer{font-family:JetBrains Mono,monospace}.page-footer{background:var(--ink);color:hsla(0,0%,100%,.4);padding:28px 48px;font-size:9px;letter-spacing:.1em;text-transform:uppercase;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.page-footer a{color:hsla(0,0%,100%,.4);text-decoration:none}.page-footer a:hover{color:var(--coral)}@media (max-width:900px){.main-container{padding:0 24px}.cat-hero{padding:32px 24px}.page-footer{padding:20px 24px}}