/* Complément V2 : façade candidats, portraits et harmonisation sobre. */
.candidate-image{position:relative;display:grid;place-items:center;overflow:hidden;background:#e8edf1;color:var(--ink)}
.candidate-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 18%}
.candidate-image-fallback{display:grid;place-items:center;width:100%;height:100%;font:600 24px "Newsreader",serif}
.roster-face,.duel-face,.duel-roster-face,.duel-column-face,.podium-face,.feed-face,.feed-mini,.qcm-result-face,.election-face{background-image:none!important}
.candidate-scene-image{width:160px;height:210px;border:1px solid #ffffff66}
.seated-candidate.sober-candidate{display:flex;align-items:flex-end;gap:16px;background:transparent!important;border:0!important}
.seated-candidate.sober-candidate>b{max-width:160px;color:#fff;font:600 22px "Newsreader",serif}
.standing-candidate.sober-candidate{font-size:0!important;background:#e8edf1!important}
.candidates-page{background:#fff}
.candidates-hero{padding:clamp(55px,8vw,105px) clamp(22px,7vw,110px) 55px;border-bottom:1px solid var(--line)}
.candidates-hero h1{max-width:850px;margin:14px 0 24px;font:600 clamp(58px,8vw,96px)/.88 "Newsreader",serif;letter-spacing:-.045em}
.candidates-hero h1 em{color:var(--red);font-weight:500}
.candidates-hero>p{max-width:760px;color:var(--muted);font-size:18px;line-height:1.65}
.candidates-summary{display:grid;grid-template-columns:repeat(4,1fr);margin-top:45px;border:1px solid var(--line)}
.candidates-summary span{display:grid;gap:5px;padding:18px;border-right:1px solid var(--line);color:var(--muted);font-size:11px;text-transform:uppercase}
.candidates-summary span:last-child{border-right:0}
.candidates-summary b{color:var(--ink);font:600 35px/1 "Newsreader",serif}
.candidate-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;padding:1px;background:var(--line)}
.candidate-profile{display:grid;grid-template-columns:142px 1fr;grid-template-rows:auto auto auto;gap:0 25px;min-width:0;padding:25px;background:#fff}
.candidate-profile-image{grid-row:1/4;width:142px;height:178px;border:1px solid var(--line)}
.candidate-profile-copy>span{color:var(--red);font-size:9px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.candidate-profile-copy h2{margin:6px 0 2px;font-size:29px}
.candidate-profile-copy p{margin:0;color:var(--muted);font-size:12px}
.candidate-availability{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;align-self:end;margin-top:15px;border:1px solid var(--line);background:var(--line)}
.availability{display:grid;grid-template-columns:9px 1fr;gap:2px 7px;align-items:center;padding:9px;background:#fff}
.availability i{grid-row:1/3;width:8px;height:8px;border-radius:50%;background:#87949e}.availability.available i{background:#2d7157}
.availability b{font-size:9px}.availability small{color:var(--muted);font-size:8px}
.candidate-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:14px}
.candidate-actions a,.candidate-actions>span{padding:7px 9px;border:1px solid var(--line);color:var(--muted);font-size:9px;text-decoration:none}
.candidate-actions a{border-color:var(--ink);color:var(--ink);font-weight:700}.candidate-actions a:hover{background:var(--ink);color:#fff}
.candidate-actions .compare-candidate{border-color:var(--red);color:var(--red)}
.impact-status{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;padding:65px clamp(22px,7vw,110px);background:#e8eef3}
.impact-status h2{margin:8px 0;font-size:clamp(34px,4vw,52px)}.impact-status p{align-self:center;color:var(--muted);font-size:16px;line-height:1.65}
.home-candidate-carousel{max-width:1320px;margin:0 auto;padding:34px clamp(22px,5vw,68px) 42px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f6f7f8}
.home-candidate-carousel>header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px}.home-candidate-carousel h2{margin:5px 0 4px;font:600 clamp(30px,3.6vw,48px)/1 "Newsreader",serif;letter-spacing:-.025em}.home-candidate-carousel header p{margin:0;color:var(--muted);font-size:14px}
.home-carousel-controls{display:flex;gap:7px}.home-carousel-controls button{width:42px;height:42px;border:1px solid var(--ink);background:#fff;color:var(--ink);font-size:20px;cursor:pointer}.home-carousel-controls button:hover,.home-carousel-controls button:focus-visible{background:var(--ink);color:#fff}
.home-candidate-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,250px);gap:10px;overflow-x:auto;padding:1px 1px 12px;scroll-snap-type:x mandatory;scrollbar-color:var(--red) #dfe4e7;overscroll-behavior-inline:contain}
.home-candidate-card{display:grid;grid-template-columns:82px 1fr;gap:14px;align-items:center;min-height:126px;padding:14px;border:1px solid var(--line);background:#fff;color:var(--ink);text-decoration:none;scroll-snap-align:start;transition:border-color .2s,transform .2s}.home-candidate-card:hover,.home-candidate-card:focus-visible{border-color:var(--red);transform:translateY(-2px)}
.home-candidate-visual{display:grid;gap:7px}.home-candidate-face{width:82px;height:86px;border:1px solid var(--line)}.home-candidate-copy{display:grid;gap:5px;align-content:center}.home-candidate-copy b{font:600 21px/1.04 "Newsreader",serif}.home-candidate-copy small{color:var(--muted);font-size:10px;line-height:1.3}
.home-candidate-sources{display:flex;min-height:24px;gap:5px}.home-source-icon{display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--line);background:#f4f7f6;color:#2d7157}.home-source-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.home-source-icon.source-speech{color:#a33d36}.home-source-icon.source-votes{color:#18324b}
.home-carousel-legend{display:flex;flex-wrap:wrap;gap:10px 22px;margin:13px 0 0;color:var(--muted);font-size:10px}.home-carousel-legend>span{display:flex;align-items:center;gap:7px}.home-carousel-legend .home-source-icon{width:22px;height:22px}.home-carousel-legend .home-source-icon svg{width:14px;height:14px}

.interrogation-page,.duel-page,.battle-page,.feed-page,.qcm-page{background:var(--paper)!important;color:var(--ink)}
.interrogation-scene,.duel-hero,.feed-hero,.qcm-intro{background-color:var(--ink)!important;background-image:none!important}
.interrogation-scene,.duel-hero,.feed-hero{border-bottom:4px solid var(--red)!important}
.interrogation-scene-head>span,.duel-title>span,.feed-hero .eyebrow,.duel-step,.qcm-intro .eyebrow{color:#e3a39f!important}
.interrogation-theme.active,.duel-candidate.active,.podium-reset.active,.podium-candidate.active .podium-stage{background:#e8eef3!important;color:var(--ink)!important;border-color:var(--red)!important;box-shadow:none!important}
.duel-console,.feed-shell,.arena-game{background:var(--paper)!important}
.duel-setup,.duel-theme-control,.duel-wait,.duel-match,.feed-control,.candidate-podium,.feed-profile-head,.activity-panels>div,.weekly-grid article,.feed-item{border:1px solid var(--line)!important;background:#fff!important;color:var(--ink)!important;box-shadow:none!important}
.duel-candidate{background:#fff!important;color:var(--ink)!important;border:1px solid var(--line)!important}
.duel-candidate i,.duel-scoreboard,.podium-stage{background:var(--ink)!important;color:#fff!important}.duel-candidate.active i{background:var(--red)!important}
.feed-hero{min-height:410px!important}.feed-hero h1{color:#fff!important;font-family:"Newsreader",serif!important;font-weight:600!important;text-transform:none!important}.feed-hero p{color:#d8e0e6!important}
.feed-control>span,.podium-head span,.weekly-head>span,.key-message-label{color:var(--red)!important}
.podium-head h2,.podium-head p,.podium-candidate>strong,.feed-profile-head h2{color:var(--ink)!important}.podium-track{scrollbar-color:var(--red) #e7ebee!important}
.podium-arrow,.podium-reset{background:#fff!important;color:var(--ink)!important;border:1px solid var(--line)!important;box-shadow:none!important}
.podium-face{border-color:var(--line)!important}.podium-stage{border:0!important}.feed-kind,.feed-theme-link i{color:var(--red)!important}
.qcm-intro{color:#fff}.qcm-rules>div{border-color:#ffffff55!important}.qcm-start{background:var(--red)!important;color:#fff!important;border-color:var(--red)!important;box-shadow:none!important}
.versus{background:#fff!important;color:var(--red)!important;border:1px solid var(--line)!important;box-shadow:none!important;text-transform:uppercase}.duel-setup-head>strong{color:var(--red)!important}

@media(max-width:1100px){.topbar nav{gap:12px}.topbar nav a{font-size:11px}.candidate-directory{grid-template-columns:1fr}}
@media(max-width:700px){.candidates-summary{grid-template-columns:1fr 1fr}.candidates-summary span:nth-child(2){border-right:0}.candidates-summary span:nth-child(-n+2){border-bottom:1px solid var(--line)}.candidate-profile{grid-template-columns:94px 1fr;gap:0 15px;padding:18px}.candidate-profile-image{width:94px;height:122px}.candidate-availability{grid-template-columns:1fr}.candidate-actions{grid-column:1/3}.impact-status{grid-template-columns:1fr;gap:12px}.home-candidate-carousel{padding:28px 20px 34px}.home-candidate-carousel>header{align-items:flex-start}.home-candidate-carousel header p{max-width:230px}.home-carousel-controls button{width:38px;height:38px}.home-candidate-track{grid-auto-columns:minmax(220px,76vw)}.home-candidate-card{grid-template-columns:76px 1fr}.home-candidate-face{width:76px;height:82px}.home-carousel-legend{display:grid;gap:7px}}
@media(max-width:680px){.topbar nav a[data-route="qcm"]{display:flex!important}}

/* Comparateur — charte sobre */
.duel-page.duel-v2{padding-bottom:72px;background:var(--paper)!important;color:var(--ink)!important}
.duel-v2 .duel-hero{min-height:310px;padding:42px clamp(24px,6vw,84px);grid-template-columns:minmax(250px,.75fr) minmax(420px,1.25fr);gap:44px;background:var(--ink)!important;border-bottom:4px solid var(--red)!important}
.duel-v2 .duel-title>span,.duel-v2 .duel-step{color:#d77b72!important;font:700 11px/1.2 "DM Sans",sans-serif;letter-spacing:.14em}.duel-v2 .duel-title h1{margin:9px 0 12px;font:600 clamp(44px,6vw,76px)/.95 "Newsreader",serif;letter-spacing:-.035em;text-transform:none}.duel-v2 .duel-title p{max-width:480px;color:#d9e0e5;font:400 17px/1.55 "DM Sans",sans-serif}
.duel-v2 .duel-stage{gap:22px}.duel-v2 .duelist{min-width:145px;gap:8px}.duel-v2 .duelist .duel-face,.duel-v2 .duel-placeholder{width:112px;height:144px;border:1px solid #698093;background-color:#e8edf0;box-shadow:none!important}.duel-v2 .duelist b{max-width:190px;padding:0;background:transparent;color:#fff;border:0;font:600 13px/1.25 "DM Sans",sans-serif;text-transform:none}.duel-v2 .versus{width:40px;height:40px;border:1px solid #6d8294!important;border-radius:50%;background:transparent!important;color:#d9e0e5!important;box-shadow:none!important;transform:none;font:500 13px "Newsreader",serif;text-transform:none}
.duel-v2 .duel-console{width:min(1280px,92%);margin:28px auto 0;background:transparent!important}.duel-v2 .duel-setup,.duel-v2 .duel-theme-control,.duel-v2 .duel-wait{border:1px solid var(--line)!important;background:#fff!important;color:var(--ink)!important;box-shadow:none!important}.duel-v2 .duel-setup{padding:24px}.duel-v2 .duel-setup h2,.duel-v2 .duel-theme-control h2{margin:5px 0;font:600 clamp(24px,3vw,34px)/1.05 "Newsreader",serif;text-transform:none}.duel-v2 .duel-setup-head>strong{color:var(--red)!important;font:600 27px "Newsreader",serif}
.duel-v2 .duel-roster{gap:8px;border:0!important;background:transparent!important}.duel-v2 .duel-candidate{min-height:72px;padding:7px;border:1px solid var(--line);border-radius:0!important;background:#fff;color:var(--ink);box-shadow:none!important;transition:border-color .15s,background .15s}.duel-v2 .duel-candidate:hover{border-color:var(--red);background:#f7f3f0;transform:none}.duel-v2 .duel-candidate.active{border-color:var(--red);background:#f4e9e6;color:var(--ink);box-shadow:inset 3px 0 0 var(--red)!important}.duel-v2 .duel-candidate i{top:5px;right:5px;width:20px;height:20px;border:0;border-radius:50%;background:var(--red)!important;color:#fff;font-size:10px}.duel-v2 .duel-roster-face{border:1px solid var(--line);background-color:#edf1f3}.duel-v2 .duel-candidate b{font-size:11px;text-transform:none}.duel-v2 .duel-candidate small{font-size:9px;color:var(--muted);opacity:1}
.duel-v2 .duel-theme-control{grid-template-columns:1fr minmax(280px,.65fr) auto;margin-top:14px;padding:20px 24px}.duel-v2 .duel-theme-control select{height:48px;padding:0 14px;border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:600}.duel-v2 .duel-theme-control button{height:48px;padding:0 18px;border:1px solid var(--ink);background:var(--ink);color:#fff;font-weight:600}.duel-v2 .duel-theme-control button:hover{background:var(--red);border-color:var(--red)}
.duel-v2 .duel-match{margin-top:18px;border:0!important;background:transparent!important}.duel-v2 .duel-match-head{padding:30px 32px;border:1px solid var(--line);background:#fff;color:var(--ink)}.duel-v2 .duel-match-head>span{color:var(--red);font-size:11px;letter-spacing:.13em}.duel-v2 .duel-match-head h2{margin:8px 0;font:600 clamp(36px,5vw,58px)/1 "Newsreader",serif;letter-spacing:-.025em;text-transform:none}.duel-v2 .duel-match-head p{color:var(--muted);font-size:15px}
.duel-v2 .duel-scoreboard{border:1px solid var(--line);border-top:0;background:var(--ink)!important;color:#fff!important}.duel-v2 .duel-scoreboard div{padding:16px 20px;border-right:1px solid #405568}.duel-v2 .duel-scoreboard b{color:#e5a29b;font:600 28px "Newsreader",serif}.duel-v2 .duel-scoreboard span{font-size:10px;letter-spacing:.04em}
.duel-v2 .viral-toolbar{display:grid;grid-template-columns:minmax(220px,.85fr) minmax(430px,1.15fr);gap:22px;margin:14px 0 20px;padding:18px 20px;border:1px solid var(--line);border-top:3px solid var(--ink);background:#fff;color:var(--ink);box-shadow:none}.duel-v2 .viral-toolbar span{font:600 21px/1.1 "Newsreader",serif;text-transform:none}.duel-v2 .viral-toolbar small{margin-top:6px;color:var(--muted);font-size:11px}.duel-v2 .viral-actions{gap:7px}.duel-v2 .viral-actions button{min-height:39px;padding:7px 12px;border:1px solid var(--line);background:#fff!important;color:var(--ink)!important;box-shadow:none;font-weight:600}.duel-v2 .viral-actions button:first-child{border-color:var(--red);background:var(--red)!important;color:#fff!important}.duel-v2 .viral-actions button:hover{border-color:var(--red);transform:none;box-shadow:none}
.duel-v2 .duel-columns-head{grid-template-columns:1fr 54px 1fr;margin-top:0;border:1px solid var(--line);background:#fff;color:var(--ink)}.duel-v2 .duel-columns-head>div{padding:15px 20px}.duel-v2 .duel-columns-head h3{font:600 clamp(20px,2.5vw,30px) "Newsreader",serif;text-transform:none}.duel-v2 .duel-column-face{width:68px;height:86px;flex-basis:68px;border:1px solid var(--line);background-color:#edf1f3}.duel-v2 .duel-columns-head>span{width:auto;height:auto;border:0;border-radius:0;background:transparent;color:var(--muted);font:500 15px "Newsreader",serif}
.duel-v2 .duel-rounds{gap:12px;margin-top:12px}.duel-v2 .duel-round,.duel-v2 .duel-round.close,.duel-v2 .duel-round.opposed,.duel-v2 .duel-round.missing{border:1px solid var(--line);background:#fff;color:var(--ink);box-shadow:none}.duel-v2 .duel-round header{grid-template-columns:80px 1fr auto;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line);background:#f2f4f5;color:var(--ink)}.duel-v2 .duel-round header>span{color:var(--red);font-size:9px}.duel-v2 .duel-round header h3{font:600 clamp(18px,2vw,24px) "Newsreader",serif;text-transform:none}.duel-v2 .duel-round header b,.duel-v2 .duel-round.close header b,.duel-v2 .duel-round.opposed header b,.duel-v2 .duel-round.missing header b{padding:6px 9px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:9px;font-weight:700}
.duel-v2 .duel-evidence>div{padding:18px;border-right:1px solid var(--line)}.duel-v2 .duel-evidence article{margin-bottom:10px;padding:17px;border:1px solid var(--line);background:#fff}.duel-v2 .duel-evidence h4{font:600 clamp(18px,2vw,24px)/1.12 "Newsreader",serif}.duel-v2 .duel-evidence blockquote{border-left:3px solid var(--red);background:#f5f2ef;font:500 15px/1.4 "Newsreader",serif}.duel-v2 .duel-evidence a{color:var(--red)}.duel-v2 .duel-absence{min-height:150px;border:1px dashed #aab4bc;background:#f5f6f7}.duel-v2 .duel-method-note{margin-top:14px;padding:17px 19px;border:1px solid var(--line);border-left:4px solid var(--red);background:#eef1f3;color:var(--muted)}.duel-v2 .duel-method-note b{color:var(--ink)}
@media(max-width:850px){.duel-v2 .duel-hero{grid-template-columns:1fr;min-height:auto}.duel-v2 .duel-title{text-align:left}.duel-v2 .duel-stage{justify-content:flex-start}.duel-v2 .viral-toolbar{grid-template-columns:1fr}.duel-v2 .duel-theme-control{grid-template-columns:1fr}}
@media(max-width:650px){.duel-v2 .duel-console{width:100%;margin-top:14px}.duel-v2 .duel-match-head{padding:24px 20px}.duel-v2 .duel-match-head h2{font-size:37px}.duel-v2 .duel-columns-head{grid-template-columns:1fr 34px 1fr}.duel-v2 .duel-round header{grid-template-columns:1fr}.duel-v2 .viral-actions button{flex:1 1 calc(50% - 7px)}}
