:root{--ink:#15191c;--muted:#687076;--paper:#f4f3ef;--card:#fff;--line:#deddd7;--lime:#d9ff4b;--green:#2b7a52;--red:#a53c35;--amber:#936315;--blue:#3157a4;--radius:22px;--shadow:0 15px 50px rgba(18,25,28,.07)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.app-shell{max-width:1440px;margin:auto;min-height:100vh;padding-bottom:88px}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(244,243,239,.93);backdrop-filter:blur(14px);z-index:40}.brand{display:flex;gap:10px;align-items:center}.brand-mark{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--lime);font-weight:900}.brand b,.brand small{display:block}.brand small{color:var(--muted);font-size:11px}.header-actions{display:flex;align-items:center;gap:10px}.independent{font-size:12px;font-weight:700}.independent::first-letter{color:var(--green)}.avatar,.icon-btn,.info-inline{border:0;cursor:pointer}.avatar{width:38px;height:38px;border-radius:50%;background:#ece9df;font-weight:800}.icon-btn,.info-inline{width:22px;height:22px;border:1px solid #b7b6b0;border-radius:50%;background:transparent;font-weight:800;color:var(--muted)}.hero{display:grid;grid-template-columns:1fr 220px;align-items:end;gap:40px;padding:72px 34px 56px;border-bottom:1px solid var(--line)}.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:900;color:#6d7478}.hero h1{font-size:clamp(42px,6vw,84px);line-height:.96;letter-spacing:-.055em;margin:12px 0 22px;max-width:980px}.hero h1 em{font-style:normal;color:#6b7072}.hero p{font-size:17px;color:var(--muted);max-width:720px}.countdown{background:var(--ink);color:white;border-radius:var(--radius);padding:24px;position:relative}.countdown small,.countdown span{display:block;color:#b8bdbe}.countdown strong{font-size:64px;line-height:1;color:var(--lime)}.countdown .info-inline{position:absolute;right:16px;top:16px;color:#ddd;border-color:#666}.section{padding:48px 34px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}.section h2,.admin-hero h1{font-size:34px;letter-spacing:-.035em;margin:5px 0}.legend{display:flex;gap:14px;font-size:12px;color:var(--muted)}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.dot.green{background:var(--green)}.dot.grey{background:#aaa}.candidate-carousel{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}.candidate-card{min-width:215px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;scroll-snap-align:start;box-shadow:var(--shadow)}.candidate-top{display:flex;align-items:center;gap:13px}.candidate-ring{--pct:50;position:relative;width:72px;height:72px;border-radius:50%;background:conic-gradient(var(--ink) calc(var(--pct)*1%),#e7e5de 0);padding:4px}.candidate-photo{width:64px;height:64px;border-radius:50%;background:#d6d5ce;border:4px solid white;display:grid;place-items:center;font-weight:900;overflow:hidden}.candidate-photo img{width:100%;height:100%;object-fit:cover}.candidate-card h3{font-size:17px;margin:0}.candidate-card small{color:var(--muted)}.poll-num{font-size:32px;font-weight:900;letter-spacing:-.04em;margin:18px 0 4px}.delta.up{color:var(--green)}.delta.down{color:var(--red)}.sig-row{display:flex;justify-content:space-between;font-size:11px;margin-top:16px}.meter{height:7px;background:#ecebe5;border-radius:999px;overflow:hidden;margin-top:7px}.meter i{display:block;height:100%;background:var(--lime);border-right:2px solid var(--ink)}.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:0 34px 30px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.card-title{display:flex;justify-content:space-between;align-items:start}.card h3{font-size:25px;margin:4px 0 16px}.live{font-size:10px;font-weight:900;background:#ffd5d1;color:#8d2720;padding:6px 9px;border-radius:999px}.timeline{display:grid}.event{display:grid;grid-template-columns:45px 30px 1fr auto;gap:8px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}.event small{display:block;color:var(--muted);margin-top:3px}.event button,.ghost{border:1px solid var(--line);background:transparent;border-radius:999px;padding:8px 12px;cursor:pointer}.time{font-size:12px;color:var(--muted)}.shield{width:38px;height:38px;border-radius:50%;background:#dff8e7;color:var(--green);display:grid;place-items:center;font-weight:900}.verify-item{display:flex;gap:12px;border-top:1px solid var(--line);padding:15px 0;align-items:flex-start}.verify-item div{flex:1}.verify-item small{display:block;color:var(--muted);margin-top:4px}.status{font-size:9px;font-weight:900;padding:5px 7px;border-radius:6px}.status.false{background:#f8dedb;color:var(--red)}.status.context{background:#fff0ca;color:var(--amber)}.status.confirm{background:#dff8e7;color:var(--green)}.primary,.white-btn{border:0;border-radius:12px;padding:13px 18px;font-weight:800;cursor:pointer;background:var(--ink);color:white}.primary:disabled,.white-btn:disabled{opacity:.55;cursor:not-allowed}.full{width:100%;margin-top:10px}.topic-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.topic{background:#eeede7;border-radius:18px;padding:18px;min-height:128px;display:flex;flex-direction:column;justify-content:space-between}.topic strong{font-size:18px}.topic span{font-size:27px}.topic small{color:var(--muted)}.blind-mode{margin:20px 34px 54px;padding:40px;background:var(--ink);color:white;border-radius:28px;display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;overflow:hidden}.light{color:#a7adaf}.blind-mode h2{font-size:42px;letter-spacing:-.04em;margin:8px 0}.blind-mode p{color:#bbc0c1;max-width:540px}.white-btn{background:white;color:var(--ink)}.blind-cards{display:flex;gap:12px;align-items:center}.blind-card{background:#262c2f;border:1px solid #3b4447;border-radius:18px;padding:18px;min-width:180px;transform:rotate(-3deg)}.blind-card:nth-child(2){transform:translateY(-18px) rotate(2deg)}.blind-card:nth-child(3){transform:rotate(4deg)}.blind-card span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--lime);color:var(--ink);font-weight:900}.bottom-nav{position:fixed;z-index:50;bottom:14px;left:50%;transform:translateX(-50%);background:rgba(18,22,24,.95);backdrop-filter:blur(12px);border-radius:22px;padding:7px;display:flex;gap:5px;box-shadow:0 12px 40px rgba(0,0,0,.25)}.bottom-nav button{border:0;background:transparent;color:#aeb3b5;min-width:90px;padding:8px;border-radius:16px;font-size:18px;cursor:pointer}.bottom-nav button span{display:block;font-size:10px;margin-top:2px}.bottom-nav button.active{background:#2b3235;color:white}.hidden{display:none!important}.info-popover{position:fixed;z-index:100;width:min(350px,calc(100vw - 30px));background:#111718;color:white;border-radius:18px;padding:19px;box-shadow:0 25px 80px rgba(0,0,0,.35)}.info-popover button{position:absolute;right:12px;top:10px;border:0;background:transparent;color:white;font-size:22px}.info-popover strong{display:block;padding-right:30px}.info-popover p{color:#c7cccd;font-size:13px;line-height:1.45}.info-popover a{color:var(--lime);font-size:12px;text-decoration:none;font-weight:800}.admin-hero{padding:54px 34px 26px;display:flex;align-items:end;justify-content:space-between}.admin-hero p{color:var(--muted)}.admin-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:0 34px 24px}.kpi{background:var(--ink);color:white;border-radius:18px;padding:18px}.kpi span,.kpi small{display:block;color:#aeb4b6;font-size:11px}.kpi strong{font-size:30px;display:block;margin:4px 0;color:var(--lime)}.admin-layout{display:grid;grid-template-columns:270px 1fr;gap:16px;padding:0 34px 24px}.admin-nav{display:grid;gap:7px;align-content:start}.admin-nav button{text-align:left;border:1px solid var(--line);background:white;border-radius:14px;padding:14px;cursor:pointer}.admin-nav button.active{background:var(--ink);color:white;border-color:var(--ink)}.doc-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);padding-bottom:14px}.doc-tabs button{border:0;background:#efeee8;border-radius:999px;padding:8px 12px;cursor:pointer}.doc-tabs button.active{background:var(--ink);color:white}.doc-content{padding-top:15px;line-height:1.6}.doc-content h3{margin-bottom:8px}.doc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:15px}.doc-mini{background:#f3f2ed;border-radius:14px;padding:14px}.doc-mini small{display:block;color:var(--muted)}.qonto-test{margin:0 34px 60px}.qonto-test form{display:flex;gap:8px}.qonto-test input{flex:1;border:1px solid var(--line);border-radius:12px;padding:12px}.qonto-test pre{white-space:pre-wrap;background:#101617;color:#c9d0d2;padding:15px;border-radius:14px;font-size:12px;max-height:300px;overflow:auto}
.registry-banner{margin:18px 34px 0;padding:16px 18px;border:1px solid var(--line);border-radius:18px;background:#ebe9e2;display:flex;align-items:center;gap:12px}.registry-banner.verified{background:#e3f2e8;border-color:#bddac7}.registry-banner b,.registry-banner small{display:block}.registry-banner small{color:var(--muted);margin-top:3px}.registry-pulse{width:11px;height:11px;border-radius:50%;background:#999;box-shadow:0 0 0 6px rgba(0,0,0,.04)}.registry-banner.verified .registry-pulse{background:var(--green);box-shadow:0 0 0 6px rgba(43,122,82,.12)}.section-note{margin:5px 0 0;color:var(--muted);font-size:13px;max-width:720px}.candidate-card.real-data{min-width:270px;display:flex;flex-direction:column}.candidate-ident{min-width:0}.candidate-status{display:inline-flex;background:#e2f3e8;color:var(--green);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;padding:4px 7px;border-radius:999px;margin-bottom:5px}.candidate-ring.no-poll{background:#e8e6df}.candidate-note{font-size:12px;line-height:1.45;color:var(--muted);min-height:52px;margin:16px 0 0}.poll-pending{font-size:16px;font-weight:850;line-height:1.2;margin:18px 0 6px;padding:12px;border-radius:13px;background:#f1f0eb}.meter.empty i{display:none}.candidate-source{border-top:1px solid var(--line);margin-top:16px;padding-top:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;color:var(--muted)}.candidate-source a{color:var(--ink);font-weight:850;text-decoration:none}.empty-state{margin-top:12px;border:1px dashed #c8c6bf;border-radius:16px;padding:22px;background:#f7f6f2}.empty-state p{margin:7px 0 0;color:var(--muted);line-height:1.5}.empty-state.wide{min-width:100%;}.real-data .sig-row{margin-top:18px}
@media(max-width:900px){.hero{grid-template-columns:1fr}.countdown{max-width:220px}.grid.two,.blind-mode,.admin-layout{grid-template-columns:1fr}.topic-grid{grid-template-columns:repeat(2,1fr)}.admin-kpis{grid-template-columns:repeat(2,1fr)}.blind-cards{overflow:auto}.admin-nav{grid-template-columns:repeat(2,1fr)}.bottom-nav button{min-width:60px}.section-head{align-items:flex-start;flex-direction:column}.legend{flex-wrap:wrap}}
@media(max-width:600px){.topbar{padding:0 16px}.independent{display:none}.hero,.section{padding-left:16px;padding-right:16px}.hero{padding-top:42px}.hero h1{font-size:48px}.grid.two{padding-left:16px;padding-right:16px}.topic-grid{grid-template-columns:1fr 1fr}.blind-mode{margin-left:16px;margin-right:16px;padding:25px}.blind-mode h2{font-size:34px}.admin-hero{padding:36px 16px 20px;display:block}.admin-kpis,.admin-layout{padding-left:16px;padding-right:16px}.qonto-test{margin-left:16px;margin-right:16px}.qonto-test form{flex-direction:column}.bottom-nav{bottom:8px;width:calc(100% - 18px);justify-content:space-around}.bottom-nav button{min-width:auto;flex:1}.doc-grid{grid-template-columns:1fr}.registry-banner{margin-left:16px;margin-right:16px}.candidate-card.real-data{min-width:84vw}}
.brand-logo{width:42px;height:42px;display:block}.brand b span{background:linear-gradient(90deg,#1e5fa8,#d62935);-webkit-background-clip:text;background-clip:text;color:transparent}.brand small{letter-spacing:.02em}

.live-candidate{min-width:245px;max-width:245px;text-align:left;border:1px solid var(--line);background:var(--card);border-radius:24px;padding:0;overflow:hidden;scroll-snap-align:start;box-shadow:var(--shadow);cursor:pointer;color:var(--ink);transition:transform .18s ease,box-shadow .18s ease}.live-candidate:hover{transform:translateY(-2px);box-shadow:0 20px 55px rgba(18,25,28,.11)}.live-photo-wrap{height:220px;background:#ddd;position:relative;overflow:hidden}.live-portrait{width:100%;height:100%;object-fit:cover;object-position:center 20%;display:block}.live-initials{display:grid;place-items:center;height:100%;font-size:48px;font-weight:900}.live-status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;background:#ecebe5;color:#596065}.live-photo-wrap .live-status{position:absolute;left:14px;bottom:14px;background:rgba(255,255,255,.94);backdrop-filter:blur(6px)}.live-status.declared{color:var(--green)}.live-status.probable{color:var(--amber)}.live-candidate-body{padding:18px}.live-candidate-body h3{margin:0;font-size:20px;letter-spacing:-.025em}.live-candidate-body>p{margin:4px 0 14px;color:var(--muted);font-size:12px}.live-score{font-size:42px;line-height:1;font-weight:900;letter-spacing:-.06em;margin-top:10px}.live-score span{font-size:20px}.live-score.pending{color:#979b9d}.live-proof{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:12px;margin-top:14px;font-size:10px;color:var(--muted)}.poll-context{margin-top:18px;background:#101617;color:white;border-radius:22px;padding:22px;display:grid;grid-template-columns:1fr 1fr;gap:25px}.poll-context h3{margin:5px 0 8px;font-size:22px}.poll-context p{margin:0;color:#c1c8ca;font-size:13px}.poll-context details{margin-top:12px;border-top:1px solid #343c3e;padding-top:10px}.poll-context summary{cursor:pointer;color:var(--lime);font-size:11px;font-weight:800}.poll-context details p{margin-top:8px}.poll-context-meta{display:grid;gap:6px;align-content:center}.poll-context-meta span{font-size:12px;color:#b9c0c2}.poll-context-meta a{color:var(--lime);font-size:12px;font-weight:800;text-decoration:none;margin-top:4px}.live-radar-list,.live-fact-list{display:grid;margin-top:6px}.radar-row,.fact-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;text-decoration:none;color:inherit;border-top:1px solid var(--line);padding:15px 0;align-items:start}.radar-type{font-size:9px;font-weight:900;border-radius:999px;padding:6px 8px;background:#eef0eb;color:#58605e;text-transform:uppercase}.radar-row p,.fact-row p{font-size:12px;color:var(--muted);margin:5px 0}.radar-row small,.fact-row small{color:var(--muted)}.radar-arrow{font-size:18px}.fact-row{grid-template-columns:auto 1fr}.compare-section{padding-top:20px}.compare-tabs{display:flex;gap:8px;overflow:auto;margin-bottom:14px}.compare-tabs button{border:1px solid var(--line);background:white;border-radius:999px;padding:9px 13px;white-space:nowrap;cursor:pointer}.compare-tabs button.active{background:var(--ink);color:white;border-color:var(--ink)}.compare-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.compare-card{background:white;border:1px solid var(--line);border-radius:18px;padding:18px}.compare-name{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.compare-card p{font-size:16px;line-height:1.45}.compare-card a{font-size:11px;font-weight:800;color:var(--blue);text-decoration:none}.candidate-modal{position:fixed;inset:0;z-index:120}.candidate-modal-backdrop{position:absolute;inset:0;background:rgba(8,12,14,.58);backdrop-filter:blur(5px)}.candidate-modal-panel{position:absolute;right:0;top:0;bottom:0;width:min(560px,100%);background:var(--paper);padding:28px;overflow:auto;box-shadow:-20px 0 70px rgba(0,0,0,.25)}.candidate-modal-close{position:absolute;right:18px;top:14px;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:white;font-size:24px;cursor:pointer}.candidate-modal-head{display:flex;gap:18px;align-items:center;padding-right:45px}.candidate-modal-head img,.modal-initials{width:112px;height:132px;border-radius:18px;object-fit:cover;object-position:center 20%;background:#ddd}.modal-initials{display:grid;place-items:center;font-size:34px;font-weight:900}.candidate-modal-head h2{font-size:34px;letter-spacing:-.04em;margin:7px 0 4px}.candidate-modal-head p{color:var(--muted);margin:0}.candidate-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}.candidate-modal-grid>div{background:white;border:1px solid var(--line);border-radius:15px;padding:15px}.candidate-modal-grid small{color:var(--muted)}.candidate-modal-grid p{font-size:13px;line-height:1.45;margin:6px 0 0}.modal-section{margin-top:24px}.modal-section>a{display:block;background:white;border:1px solid var(--line);border-radius:14px;padding:13px;margin-top:8px;color:var(--ink);text-decoration:none}.modal-section>a b{display:block;font-size:13px;line-height:1.4}.modal-section>a small{display:block;color:var(--muted);margin-top:5px}.candidate-modal-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.candidate-modal-links a{border:1px solid var(--line);border-radius:999px;background:white;padding:9px 12px;text-decoration:none;color:var(--ink);font-size:11px;font-weight:800}.photo-credit{font-size:10px;color:var(--muted);margin-top:14px}@media(max-width:900px){.poll-context{grid-template-columns:1fr}.compare-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.live-candidate{min-width:220px;max-width:220px}.live-photo-wrap{height:195px}.poll-context{margin-left:0;margin-right:0}.compare-grid,.candidate-modal-grid{grid-template-columns:1fr}.candidate-modal-panel{padding:22px 16px}.candidate-modal-head img,.modal-initials{width:90px;height:112px}.candidate-modal-head h2{font-size:28px}.radar-row{grid-template-columns:auto 1fr}.radar-arrow{display:none}}

.candidate-toolbar{display:grid;grid-template-columns:minmax(250px,1fr) auto auto;gap:12px;align-items:center;margin:0 0 18px;padding:14px;background:rgba(255,255,255,.7);border:1px solid var(--line);border-radius:18px;backdrop-filter:blur(12px);position:sticky;top:88px;z-index:25}.candidate-search-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.candidate-search-clear{min-height:44px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);padding:0 12px;font:inherit;font-size:11px;font-weight:850;cursor:pointer}.candidate-search{height:44px;border:1px solid var(--line);border-radius:13px;background:#fff;display:flex;align-items:center;gap:9px;padding:0 12px}.candidate-search span{font-size:20px;color:var(--muted)}.candidate-search input{border:0;outline:0;background:transparent;width:100%;font:inherit;color:var(--ink)}.candidate-search input::placeholder{color:#91979a}.candidate-filters{display:flex;gap:6px;overflow:auto;scrollbar-width:none}.candidate-filters::-webkit-scrollbar{display:none}.candidate-filters button{border:1px solid var(--line);background:white;color:var(--ink);border-radius:999px;padding:9px 12px;font-size:11px;font-weight:800;white-space:nowrap;cursor:pointer}.candidate-filters button.active{background:var(--ink);color:white;border-color:var(--ink)}#candidateResultCount{color:var(--muted);font-size:11px;white-space:nowrap}.candidate-filtered-out{display:none!important}.candidate-filter-empty{margin:0 0 16px}.live-candidate:focus-visible,.candidate-filters button:focus-visible,.candidate-search:focus-within{outline:3px solid rgba(49,87,164,.22);outline-offset:2px}.live-candidate .live-score.pending{font-size:34px}.candidate-modal-panel{scrollbar-gutter:stable}.candidate-modal-panel .modal-section+.modal-section{border-top:1px solid var(--line);padding-top:20px}.bottom-nav button:focus-visible{outline:2px solid var(--lime);outline-offset:-2px}@media(max-width:1000px){.candidate-toolbar{grid-template-columns:1fr}.candidate-filters{width:100%}#candidateResultCount{justify-self:start}}@media(max-width:600px){.candidate-toolbar{top:78px;margin-left:0;margin-right:0;padding:10px;border-radius:15px}.candidate-search{height:42px}.candidate-filters button{padding:8px 10px}.candidate-carousel{scroll-padding-left:0}.live-candidate{min-width:78vw;max-width:78vw}.candidate-modal-panel{padding-bottom:90px}}

#sourceRoom{content-visibility:visible!important;contain:none!important}.source-float{position:fixed;right:18px;bottom:22px;z-index:95;pointer-events:none}.source-float>*{pointer-events:auto}.source-fab{position:relative;width:44px;height:44px;border:1px solid rgba(255,255,255,.18);border-radius:50%;display:grid;place-items:center;background:rgba(18,25,28,.96);color:#fff;box-shadow:0 12px 30px rgba(10,22,39,.22);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,opacity .16s ease;opacity:.94}.source-fab:hover,.source-fab:focus-visible{transform:translateY(-2px);box-shadow:0 17px 38px rgba(10,22,39,.28);outline:3px solid rgba(22,76,140,.18);outline-offset:3px;opacity:1}.source-fab svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.source-fab-dot{position:absolute;right:3px;bottom:3px;width:8px;height:8px;border-radius:50%;background:#e53b45;border:2px solid var(--ink)}.source-bubble{position:absolute;right:0;bottom:54px;width:min(390px,calc(100vw - 28px));max-height:min(72vh,650px);overflow:auto;overscroll-behavior:contain;background:rgba(255,255,255,.98);color:var(--ink);border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:0 28px 80px rgba(8,20,39,.24);backdrop-filter:blur(18px);transform-origin:bottom right}.source-bubble[hidden]{display:none}.source-bubble:focus{outline:none}.source-bubble-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.source-bubble-head strong{display:block;font-size:18px;line-height:1.18;letter-spacing:-.02em;margin-top:4px}.source-bubble-close{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#f4f3ef;color:var(--ink);font-size:22px;line-height:1;cursor:pointer;flex:0 0 auto}.source-bubble-intro{margin:12px 0 14px;color:var(--muted);font-size:12px;line-height:1.5}.source-kicker{font-size:9px;font-weight:900;letter-spacing:.13em;color:#7c8386;text-transform:uppercase}.source-room-health{border-radius:16px;padding:15px;background:linear-gradient(145deg,#0a1d38,#122b4e);color:#fff;border:1px solid rgba(255,255,255,.08)}.source-room-health strong{display:block;font-size:20px;margin:5px 0 4px}.source-room-health p{margin:0;color:#c6ced7;font-size:11px;line-height:1.45}.source-room-health.healthy strong{color:#a9e5bd}.source-room-health.warning strong{color:#ffd27a}.source-room-mini{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.source-room-mini>div{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff}.source-room-mini span{display:block;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.source-room-mini strong{display:block;font-size:24px;margin-top:4px}.source-room-list{display:grid;gap:7px;margin-top:9px}.source-family{background:#f2f1ec;border:1px solid #e7e4dc;border-radius:13px;padding:11px 12px}.source-family>div{display:flex;justify-content:space-between;gap:10px;align-items:center}.source-family span{font-size:9px;text-transform:uppercase;font-weight:900;letter-spacing:.06em;color:var(--muted)}.source-family b{font-size:16px}.source-family p{font-size:11px;color:var(--muted);line-height:1.42;margin:6px 0 0}.source-room-rule{margin-top:9px;border:1px dashed #c6c4ba;border-radius:13px;padding:11px}.source-room-rule b{font-size:11px}.source-room-rule p{margin:4px 0 0;color:var(--muted);font-size:10px;line-height:1.45}.source-method{display:block;margin-top:10px;text-decoration:none;color:var(--ink);font-size:11px;font-weight:850}.source-empty{padding:12px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:11px}@media(max-width:900px){.source-float{right:12px;bottom:calc(var(--reperes-bottom-nav-height,64px) + 16px + env(safe-area-inset-bottom))}.source-fab{width:44px;height:44px;opacity:.96}.source-fab svg{width:18px;height:18px}.source-bubble{bottom:52px;max-height:calc(100vh - 190px)}}@media(max-width:480px){.source-float{right:10px}.source-fab{width:44px;height:44px}.source-bubble{width:calc(100vw - 20px);padding:16px;border-radius:20px;right:0}.source-bubble-head strong{font-size:17px}}
@media(max-width:900px){.source-float.open{right:12px;bottom:calc(10px + env(safe-area-inset-bottom))}.source-float.open .source-bubble{position:fixed;right:10px;bottom:calc(66px + env(safe-area-inset-bottom));width:calc(100vw - 20px);max-height:calc(100dvh - 86px);border-radius:20px}.source-bubble-close{display:grid;place-items:center}.source-method{min-height:44px;display:flex;align-items:center}}

.issues-v016{position:relative}.issues-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:14px;align-items:center;margin:22px 0 18px}.issues-search{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:0 14px}.issues-search:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px rgba(21,25,28,.07)}.issues-search input{width:100%;border:0;outline:0;background:transparent;padding:13px 0;color:var(--ink);font:inherit}.issues-search-mark{font-size:11px;font-weight:900;letter-spacing:.12em;color:var(--muted)}.issues-families,.radar-filters,.blind-topic-tabs{display:flex;gap:7px;overflow:auto;scrollbar-width:none}.issues-families::-webkit-scrollbar,.radar-filters::-webkit-scrollbar,.blind-topic-tabs::-webkit-scrollbar{display:none}.issues-families button,.radar-filters button,.blind-topic-tabs button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:9px 12px;font:inherit;font-size:11px;font-weight:800;white-space:nowrap;cursor:pointer}.issues-families button.active,.radar-filters button.active,.blind-topic-tabs button.active{background:var(--ink);border-color:var(--ink);color:#fff}.issues-grid-v016{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.issue-card-v016{position:relative;min-height:150px;border:1px solid var(--line);background:#fff;border-radius:18px;padding:18px;text-align:left;cursor:pointer;color:var(--ink);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.issue-card-v016:hover,.issue-card-v016:focus-visible{transform:translateY(-2px);border-color:#a9aaa5;box-shadow:var(--shadow);outline:0}.issue-index{display:block;font-size:10px;font-weight:900;letter-spacing:.14em;color:var(--muted);margin-bottom:30px}.issue-card-v016 strong{display:block;font-size:18px;line-height:1.15}.issue-card-v016 small{display:block;margin-top:9px;color:var(--muted);font-size:11px}.issue-open{position:absolute;right:15px;bottom:14px;width:28px;height:28px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:15px}.issue-detail-v016{margin-top:16px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px}.issue-detail-head{display:flex;align-items:end;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:16px}.issue-detail-head h3{font-size:28px;margin:4px 0 3px;letter-spacing:-.035em}.issue-detail-head p{margin:0;color:var(--muted);font-size:12px}.issue-detail-close{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 12px;cursor:pointer;font-weight:800}.issue-positions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}.issue-position{border:1px solid var(--line);border-radius:16px;padding:15px;background:var(--paper)}.issue-position-person{display:flex;gap:10px;align-items:center}.issue-position-person img{width:44px;height:44px;border-radius:50%;object-fit:cover;background:#ddd}.issue-position-person b{display:block;font-size:13px}.issue-position-person small{display:block;color:var(--muted);margin-top:2px}.issue-position p{font-size:14px;line-height:1.45;margin:13px 0}.issue-position>a{font-size:11px;font-weight:850;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--ink)}.issues-empty{grid-column:1/-1;border:1px dashed var(--line);border-radius:16px;padding:20px;color:var(--muted)}
.radar-v016{padding-top:20px}.radar-shell{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);gap:14px}.radar-map-card,.radar-feed-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow)}.radar-map-head{display:flex;align-items:start;justify-content:space-between;gap:14px;margin-bottom:12px}.radar-map-head h3{font-size:26px;margin:3px 0 5px}.radar-map-head p{margin:0;max-width:690px;color:var(--muted);font-size:12px;line-height:1.45}.radar-map-wrap{position:relative;background:#eeede7;border-radius:18px;min-height:470px;overflow:hidden;border:1px solid #e2e0d8}.radar-svg{width:100%;height:470px;display:block}.radar-france{fill:#f8f7f3;stroke:#aeb0aa;stroke-width:1.5}.radar-coast{fill:none;stroke:#d4d2ca;stroke-width:1}.radar-inset{fill:#f8f7f3;stroke:#aeb0aa;stroke-width:1}.radar-inset-label{font-size:10px;fill:#72777a;font-weight:800;letter-spacing:.08em}.radar-pin{cursor:pointer;outline:none}.radar-pin circle{fill:var(--ink);stroke:#fff;stroke-width:3;transition:r .15s ease,fill .15s ease}.radar-pin:hover circle,.radar-pin:focus circle,.radar-pin.active circle{r:9;fill:var(--green)}.radar-pin text{font-size:8px;fill:#fff;font-weight:900;pointer-events:none;text-anchor:middle;dominant-baseline:central}.radar-selected{position:absolute;left:14px;right:14px;bottom:14px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:15px;padding:13px 15px;display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;box-shadow:0 12px 35px rgba(0,0,0,.12)}.radar-selected img{width:46px;height:46px;border-radius:50%;object-fit:cover;background:#ddd}.radar-selected b{display:block;font-size:13px}.radar-selected small{display:block;color:var(--muted);margin-top:4px}.radar-selected a{font-size:11px;font-weight:900;color:var(--ink);text-decoration:none}.radar-feed-card{max-height:650px;overflow:auto}.radar-feed-card h3{font-size:22px;margin:3px 0 14px}.radar-event-v016{width:100%;border:0;border-top:1px solid var(--line);background:transparent;text-align:left;padding:13px 0;cursor:pointer;color:var(--ink);display:grid;grid-template-columns:42px 1fr;gap:10px}.radar-event-v016:first-of-type{border-top:0}.radar-event-photo{width:42px;height:42px;border-radius:50%;object-fit:cover;background:#ddd}.radar-event-v016 b{font-size:12px;line-height:1.35}.radar-event-v016 small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.radar-kind{display:inline-block;font-size:9px;letter-spacing:.08em;font-weight:900;text-transform:uppercase;margin-bottom:5px;color:var(--green)}.radar-map-note{margin-top:10px;font-size:10px;color:var(--muted);line-height:1.45}.radar-no-map{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:30px;color:var(--muted)}
.blind-mode.blind-v016{margin:20px 34px 54px;padding:34px;border-radius:28px;background:var(--ink);display:block;color:#fff}.blind-v016-head{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end}.blind-v016 h2{font-size:42px;letter-spacing:-.045em;margin:7px 0 9px}.blind-v016 .blind-intro{color:#bbc0c1;max-width:720px;margin:0;line-height:1.55}.blind-privacy{font-size:10px;color:#9da5a8;text-align:right;max-width:300px}.blind-topic-tabs{margin-top:22px}.blind-topic-tabs button{background:#242a2d;border-color:#3d4548;color:#d8dcdd}.blind-topic-tabs button.active{background:var(--lime);color:var(--ink);border-color:var(--lime)}.blind-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:17px}.blind-actions small{color:#9fa7a9}.blind-shuffle{border:1px solid #4a5154;background:transparent;color:#fff;border-radius:999px;padding:9px 13px;font-weight:800;cursor:pointer}.blind-grid-v016{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}.blind-proposal{background:#22282b;border:1px solid #3b4346;border-radius:18px;padding:18px;min-height:235px;display:flex;flex-direction:column}.blind-code{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--lime);color:var(--ink);font-size:11px;font-weight:900;letter-spacing:.05em}.blind-proposal p{font-size:16px;line-height:1.5;color:#eef0f0;flex:1;margin:19px 0}.blind-proposal footer{border-top:1px solid #3a4245;padding-top:13px}.blind-reveal{width:100%;border:1px solid #545d60;background:transparent;color:#fff;border-radius:11px;padding:10px;font-weight:850;cursor:pointer}.blind-author{display:flex;align-items:center;gap:10px}.blind-author img{width:45px;height:45px;border-radius:50%;object-fit:cover;background:#555}.blind-author b,.blind-author small{display:block}.blind-author small{color:#aeb5b7;margin-top:3px}.blind-author a{margin-left:auto;color:var(--lime);font-size:11px;font-weight:850;text-decoration:none}.blind-loading{grid-column:1/-1;border:1px dashed #4a5356;border-radius:16px;padding:24px;color:#aeb5b7}.bottom-nav.v016-nav{gap:0}.bottom-nav.v016-nav button{font-size:11px;font-weight:750;min-width:100px;padding:11px 12px}.bottom-nav.v016-nav button span{font-size:11px;margin:0}.old-radar-hidden{display:none!important}
@media(max-width:1050px){.issues-grid-v016{grid-template-columns:repeat(3,1fr)}.issue-positions{grid-template-columns:repeat(2,1fr)}.radar-shell{grid-template-columns:1fr}.radar-feed-card{max-height:none}.blind-grid-v016{grid-template-columns:1fr 1fr}.blind-proposal:last-child{grid-column:1/-1}}
@media(max-width:760px){.issues-toolbar{grid-template-columns:1fr}.issues-grid-v016{grid-template-columns:repeat(2,1fr)}.issue-positions{grid-template-columns:1fr}.issue-detail-head{align-items:flex-start}.radar-map-wrap,.radar-svg{min-height:390px;height:390px}.radar-selected{grid-template-columns:auto 1fr}.radar-selected a{grid-column:1/-1}.blind-v016-head{grid-template-columns:1fr}.blind-privacy{text-align:left}.blind-grid-v016{grid-template-columns:1fr}.blind-proposal:last-child{grid-column:auto}.bottom-nav.v016-nav button{min-width:0;padding:10px 7px}}
@media(max-width:600px){.issues-grid-v016{grid-template-columns:1fr}.issue-card-v016{min-height:118px}.issue-index{margin-bottom:20px}.blind-mode.blind-v016{margin-left:16px;margin-right:16px;padding:22px 16px}.blind-v016 h2{font-size:34px}.radar-map-card,.radar-feed-card{padding:14px}.radar-map-wrap,.radar-svg{min-height:350px;height:350px}.radar-map-head{display:block}.radar-filters{margin-top:12px}.bottom-nav.v016-nav button span{font-size:9px}.issues-families{margin-right:-16px;padding-right:16px}}

.radar-map-wrap{background:#eeede7 url('/france-outline-v016.svg') center/contain no-repeat}.radar-france,.radar-coast{opacity:0}.candidate-search>span{display:none!important}.candidate-search{padding-left:14px}.candidate-search::before{content:'RECH.';font-size:10px;font-weight:900;letter-spacing:.12em;color:var(--muted)}

/* V0.16.1 — corrections issues de l'audit du 29/08/2026 */
:root{--muted:#596166}
#topicGrid[hidden]{display:none!important}
.blind-author[hidden]{display:none!important}

/* Hero plus compact, marque plus présente */
.hero{min-height:auto!important;padding-top:52px!important;padding-bottom:46px!important}
.hero h1{margin-top:10px!important}
.brand-logo{width:46px!important;height:46px!important}
.avatar{width:auto!important;min-width:48px!important;padding-inline:11px!important;border-radius:999px!important}

/* Réservation d'espace et chargement stable des portraits */
.live-photo-wrap,.candidate-photo,.candidate-modal-head>img,.issue-position-person img,.radar-event-photo,.radar-selected img{contain:layout paint}
.live-photo-wrap{aspect-ratio:1/1;overflow:hidden}
.live-portrait{width:100%;height:100%;object-fit:cover;display:block}
.candidate-modal-head>img{width:112px;height:112px;aspect-ratio:1/1;object-fit:cover}
.issue-position-person img,.radar-event-photo,.radar-selected img{aspect-ratio:1/1;object-fit:cover}
.candidate-carousel{scrollbar-width:none;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain}
.candidate-carousel::-webkit-scrollbar{display:none}
.live-candidate{scroll-snap-align:start}
.candidate-carousel-controls{display:flex;justify-content:flex-end;gap:8px;margin:-2px 0 10px}
.candidate-carousel-controls button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:9px 13px;font:inherit;font-size:11px;font-weight:850;cursor:pointer}
.candidate-carousel-controls button:disabled{opacity:.35;cursor:default}

/* Enjeux : documentés par défaut, états vides explicites */
.audit-topic-mode{display:flex;align-items:center;gap:6px;margin-left:auto}
.audit-topic-mode button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:8px 11px;font:inherit;font-size:10px;font-weight:850;cursor:pointer;white-space:nowrap}
.audit-topic-mode button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.issue-card-v016.audit-empty-topic{opacity:.54;cursor:not-allowed;background:#f6f5f0}
.issue-card-v016.audit-empty-topic .issue-open{display:none}
.issue-card-v016.audit-empty-topic small{font-size:0}
.issue-card-v016.audit-empty-topic small::after{content:'Pas encore de position vérifiée';font-size:11px}
.issue-card-v016.audit-hidden-topic{display:none!important}

/* Détail enjeu : panneau latéral sur grand écran */
#issueDetail .issue-detail-v016{position:fixed;z-index:1200;top:78px;right:18px;bottom:18px;width:min(720px,calc(100vw - 56px));margin:0;overflow:auto;box-shadow:0 24px 80px rgba(0,0,0,.24);animation:auditPanelIn .18s ease-out}
#issueDetail:not(.hidden)::before{content:"";position:fixed;inset:0;z-index:1199;background:rgba(8,12,14,.54);backdrop-filter:blur(4px)}
#issueDetail .issue-detail-head{position:sticky;top:-22px;z-index:2;background:#fff;padding-top:2px}
.issue-detail-close{min-width:76px;min-height:44px}
@keyframes auditPanelIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}

/* Navigation : barre basse uniquement mobile, navigation stable en tête sur desktop */
.desktop-section-nav{display:flex;align-items:center;gap:4px;margin-left:auto;margin-right:14px}
.desktop-section-nav button{border:0;background:transparent;color:var(--muted);font:inherit;font-size:11px;font-weight:800;padding:9px 10px;border-radius:999px;cursor:pointer}
.desktop-section-nav button.active{background:var(--ink);color:#fff}
#todayAnchor,#candidatesAnchor,#issuesAnchor,#liveCompare,#sourceRoom,#radarMapSection{scroll-margin-top:92px;scroll-margin-bottom:28px}
@media(min-width:901px){.bottom-nav.v016-nav{display:none!important}.app-shell{padding-bottom:0!important}}

/* Comparateur multi-candidats */
.audit-compare-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.34fr);gap:14px;margin:18px 0}
.audit-compare-picker{display:flex;gap:7px;overflow:auto;padding-bottom:3px;scrollbar-width:none}
.audit-compare-picker::-webkit-scrollbar{display:none}
.audit-compare-picker button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:9px 12px;font:inherit;font-size:11px;font-weight:800;white-space:nowrap;cursor:pointer}
.audit-compare-picker button.selected{background:var(--ink);color:#fff;border-color:var(--ink)}
.audit-compare-picker button[disabled]:not(.selected){opacity:.35;cursor:not-allowed}
.audit-compare-hint{display:block;margin-top:6px;color:var(--muted);font-size:10px}
.audit-compare-topic{width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:12px;padding:10px 12px;font:inherit}
.audit-compare-meta{color:var(--muted);font-size:11px;margin:0 0 10px}
.audit-compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.audit-compare-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:16px;min-height:150px}
.audit-compare-card h3{margin:0 0 9px;font-size:17px}
.audit-compare-card p{font-size:13px;line-height:1.5;margin:0 0 12px}
.audit-compare-card .audit-no-position{color:var(--muted)}
.audit-compare-card a{font-size:11px;font-weight:850;color:var(--ink)}

/* Dialogues et focus clavier */
.candidate-modal-panel[role="dialog"]{outline:none}
:where(button,a,input,select,summary,[tabindex]):focus,
:where(button,a,input,select,summary,[tabindex]):focus-visible{outline:3px solid #11191d!important;outline-offset:2px!important;box-shadow:0 0 0 5px var(--lime)!important}

/* Un verrou de scroll n'est valide que si son overlay est réellement visible.
   Une classe résiduelle ne doit jamais figer le document, notamment lorsque
   l'utilisateur arrive sur la Chronologie Radar après avoir fermé une fiche. */
body.candidate-overlay-open:has(#candidateModal:not(.hidden)),
body.issue-overlay-open:has(#issueDetail:not(.hidden)),
body.source-overlay-open:has(#sourceBubble:not([hidden])){overflow:hidden}
body:is(.candidate-overlay-open,.issue-overlay-open) .bottom-nav,
body:is(.candidate-overlay-open,.issue-overlay-open) .source-float,
body.source-overlay-open .bottom-nav{opacity:0!important;pointer-events:none!important}
.candidate-modal{z-index:1600}

/* Contraste AA renforcé pour les micro-libellés */
.eyebrow{color:#596166!important}
.radar-inset-label{fill:#596166!important}
#candidateResultCount{color:#30383c!important}
#pollContext .eyebrow{color:#cbd1d2!important}
.source-room-stat>span{color:#596166!important}
.eyebrow.light{color:#d8dcdd!important}

/* Navigation basse sûre sur mobile */
@media(max-width:900px){
  .desktop-section-nav{display:none!important}
  .app-shell{padding-bottom:calc(82px + env(safe-area-inset-bottom))!important}
  .bottom-nav.v016-nav{padding-bottom:env(safe-area-inset-bottom)}
}
@media(max-width:760px){
  #issueDetail .issue-detail-v016{inset:0;width:auto;border-radius:0;padding:20px 16px;padding-top:max(20px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom));z-index:1600}
  #issueDetail .issue-detail-head{top:calc(-20px - env(safe-area-inset-top));padding-top:max(20px,env(safe-area-inset-top))}
  .audit-topic-mode{width:100%;margin-left:0}
  .audit-compare-controls{grid-template-columns:1fr}
  .audit-compare-grid{grid-template-columns:1fr}
  .candidate-carousel-controls{justify-content:space-between}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  #issueDetail .issue-detail-v016{animation:none!important}
  .live-candidate,.candidate-carousel,.candidate-carousel-controls button,.source-fab,.radar-event-v019{scroll-behavior:auto!important;transition:none!important}
}

/* V0.18 — P0/P1 production audit corrections */

/* Radar: prevent intrinsic portrait dimensions from dictating layout. */
.radar-shell,.radar-map-card,.radar-feed-card,.radar-event-v016,.radar-event-v016>*,.radar-selected,.radar-selected>*{min-width:0}
.radar-feed-card{overflow-x:hidden}
.radar-event-v016{grid-template-columns:48px minmax(0,1fr);align-items:start;gap:11px}
.radar-event-photo{width:48px!important;height:48px!important;min-width:48px;max-width:48px;aspect-ratio:1/1;object-fit:cover;display:block}
.radar-event-v016 b,.radar-event-v016 small{overflow-wrap:anywhere;word-break:normal}
.radar-selected{grid-template-columns:52px minmax(0,1fr) auto}
.radar-selected img{width:52px!important;height:52px!important;min-width:52px;max-width:52px;display:block}
.radar-selected b,.radar-selected small{overflow-wrap:anywhere}

/* Keep map and feed usable before and after the 1050px stack breakpoint. */
@media (min-width:1051px){
  .radar-shell{grid-template-columns:minmax(0,1.55fr) minmax(320px,.55fr)}
  .radar-feed-card{max-width:100%}
}
@media (max-width:1050px){
  .radar-shell{grid-template-columns:minmax(0,1fr)}
  .radar-feed-card{width:100%;max-height:none}
}
@media (max-width:760px){
  .radar-selected{grid-template-columns:48px minmax(0,1fr)}
  .radar-selected img{width:48px!important;height:48px!important;min-width:48px;max-width:48px}
  .radar-selected a{grid-column:1/-1;justify-self:start}
}
@media (max-width:420px){
  .radar-map-card,.radar-feed-card{border-radius:16px;padding:12px}
  .radar-map-wrap{border-radius:14px}
  .radar-event-v016{grid-template-columns:44px minmax(0,1fr);gap:9px}
  .radar-event-photo{width:44px!important;height:44px!important;min-width:44px;max-width:44px}
}

/* Generic overflow guards for audited production surfaces. */
.grid,.card,.section,.candidate-carousel,.audit-compare-controls,.audit-compare-grid,.issue-detail-v016,.admin-layout,.admin-doc{min-width:0;max-width:100%}
.card p,.card h2,.card h3,.admin-doc,.section-note{overflow-wrap:anywhere}
img{max-width:100%}

/* Do not reserve large off-screen intrinsic boxes. These two modules are
   already hydrated lazily by JavaScript when approached, while their real
   placeholders remain cheap to paint. Reserving ~620px without painting the
   content produced a long empty band after Enjeux in Chromium/full-page use. */
#liveCompare,.blind-mode{content-visibility:visible;contain:none;contain-intrinsic-size:none}

/* The pre-hydration blind-mode placeholder must not expose a horizontal
   scroll region that keyboard users cannot focus. */
@media(max-width:900px){
  .blind-mode:not(.blind-v016) .blind-cards{overflow:visible!important;flex-wrap:wrap;align-items:stretch}
  .blind-mode:not(.blind-v016) .blind-card{flex:1 1 150px;min-width:0}
}
@media(max-width:600px){
  .blind-mode:not(.blind-v016) .blind-card{flex-basis:100%;transform:none!important}
}

/* Tablet blind-mode header. */
@media(max-width:820px){
  .blind-mode.blind-v016 .blind-v016-head{grid-template-columns:minmax(0,1fr)!important;gap:14px}
  .blind-mode.blind-v016 .blind-privacy{text-align:left;max-width:720px;margin:0}
}

/* Accessible private-admin login. The credential stays in sessionStorage and
   is validated server-side before the larger admin runtime is loaded. */
.admin-login-dialog{width:min(470px,calc(100vw - 28px));max-width:470px;border:1px solid var(--line);border-radius:22px;padding:0;background:var(--card);color:var(--ink);box-shadow:0 28px 90px rgba(0,0,0,.28)}
.admin-login-dialog::backdrop{background:rgba(15,20,22,.58);backdrop-filter:blur(4px)}
.admin-login-form{display:grid;gap:14px;padding:26px}
.admin-login-form h2{font-size:28px;letter-spacing:-.035em;margin:5px 0 8px}
.admin-login-form p{margin:0;color:var(--muted);line-height:1.5}
.admin-login-form label{font-size:12px;font-weight:850;margin-top:4px}
.admin-login-form input{width:100%;min-height:46px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);padding:11px 13px;font:inherit;outline:none}
.admin-login-form input:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(21,25,28,.10)}
.admin-login-error{min-height:20px!important;color:var(--red)!important;font-size:12px}
.admin-login-actions,.admin-hero-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.admin-login-actions button{min-height:42px}
.admin-hero-actions{align-items:center}
@media(max-width:600px){
  .admin-login-form{padding:21px}
  .admin-login-actions{display:grid;grid-template-columns:1fr}
  .admin-login-actions button{width:100%}
  .admin-hero-actions{justify-content:flex-start;margin-top:16px}
}

/* Admin payment architecture: SumUp collects, Qonto invoices/accounts. */
.payment-role-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.payment-role-strip>div{border:1px solid var(--line);border-radius:15px;background:#fff;padding:14px}
.payment-role-strip strong{display:block;font-size:13px;margin-bottom:5px}
.payment-role-strip small{color:var(--muted);line-height:1.45}
@media(max-width:600px){.payment-role-strip{grid-template-columns:1fr}}

/* V0.18 visual polish — keep the editorial impact without letting the hero
   consume the first viewport on phones and tablets. */
.hero{grid-template-columns:minmax(0,1fr) minmax(180px,205px)!important;gap:28px!important;padding-top:40px!important;padding-bottom:36px!important}
.hero h1{font-size:clamp(38px,4.7vw,68px)!important;line-height:.98!important;letter-spacing:-.05em!important;max-width:900px!important;margin:10px 0 18px!important}
.hero p{font-size:clamp(15px,1.15vw,17px);line-height:1.55;margin-bottom:0}
.countdown{padding:20px!important}
.countdown strong{font-size:56px!important}
.section{padding-top:40px;padding-bottom:40px}

/* Radar + verification: two columns only when there is enough real width.
   At tablet/small-laptop widths the previous 50/50 split looked like two
   under-filled half-panels. */
.grid.two{align-items:stretch}
.live-card,.verify-card{height:100%}
.verify-card{display:flex;flex-direction:column}
.verify-card .live-fact-list{flex:1}
@media(min-width:1151px){
  .grid.two{grid-template-columns:minmax(0,1.16fr) minmax(360px,.84fr)!important}
}
@media(min-width:901px) and (max-width:1150px){
  .grid.two{grid-template-columns:minmax(0,1fr)!important}
}

/* Tablet navigation is kept desktop-like but tightened before the full desktop
   spacing kicks in, avoiding a sudden 768 -> 1024 visual jump. */
@media(min-width:901px) and (max-width:1100px){
  .topbar{padding-inline:22px!important}
  .desktop-section-nav{gap:1px;margin-right:8px!important}
  .desktop-section-nav button{padding:8px 7px!important;font-size:10px!important}
  .brand small{display:none}
}

/* Mobile reading rhythm: fewer decorative vertical gaps while preserving
   comfortable touch targets and card readability. */
@media(max-width:900px){
  .hero{grid-template-columns:minmax(0,1fr)!important;gap:22px!important;padding-top:34px!important;padding-bottom:30px!important}
  .countdown{max-width:205px!important}
  .section{padding-top:34px;padding-bottom:34px}
  .grid.two{gap:12px;padding-bottom:22px}
  .blind-mode{margin-top:12px;margin-bottom:40px}
}
@media(max-width:600px){
  .hero{padding-top:28px!important;padding-bottom:26px!important}
  .hero h1{font-size:clamp(36px,11.4vw,42px)!important;line-height:1!important;margin-bottom:14px!important}
  .hero p{font-size:15px;line-height:1.5}
  .countdown{padding:17px!important;max-width:190px!important}
  .countdown strong{font-size:48px!important}
  .section{padding-top:28px!important;padding-bottom:28px!important}
  .section-head{margin-bottom:16px!important;gap:12px!important}
  .section h2{font-size:30px!important}
  .grid.two{padding-bottom:18px!important}
  .card{padding:19px!important;border-radius:19px!important}
  .card h3{font-size:22px!important}
  .blind-mode{padding:22px!important;margin-top:8px!important;margin-bottom:30px!important}
  .blind-mode h2{font-size:32px!important}
  .registry-banner{margin-top:12px!important;padding:14px 15px!important}
  .candidate-card.real-data{min-width:80vw!important}
  .candidate-toolbar{margin-bottom:12px!important}

  /* The registry toolbar + horizontal card rail are injected after the first
     API response. Reserve the height they occupy so the rest of the page does
     not jump by ~800px while the live registry hydrates. This is a minimum,
     not a fixed height: longer real content still expands naturally. */
  #candidatesAnchor{min-height:820px}
}

/* Mobile admin: persistent section shortcuts plus a denser operational rhythm.
   This prevents the console from behaving like one very long landing page. */
.admin-quick-nav{display:none}
@media(max-width:900px){
  body:has(#adminView:not(.hidden)) .bottom-nav{display:none!important}
  body:has(#adminView:not(.hidden)) .app-shell{padding-bottom:16px!important}
  .admin-quick-nav{position:sticky;top:78px;z-index:35;display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding:9px 16px;background:rgba(244,243,239,.96);backdrop-filter:blur(12px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .admin-quick-nav::-webkit-scrollbar{display:none}
  .admin-quick-nav button{flex:0 0 auto;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:8px 11px;font:inherit;font-size:10px;font-weight:850;cursor:pointer;white-space:nowrap}
  .admin-quick-nav button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
  #adminView>[data-admin-section],#adminView>.admin-layout,#adminView>.qonto-test{scroll-margin-top:132px}
  #adminView>.section{padding-top:26px!important;padding-bottom:26px!important}
  .admin-kpis{gap:8px!important;padding-bottom:16px!important}
  .kpi{padding:14px!important;border-radius:15px!important}
  .kpi strong{font-size:26px!important}
  .payment-role-strip{margin:10px 0!important}
  .ingestion-review-card{margin-top:12px!important}
}
@media(max-width:600px){
  .admin-hero{padding-top:28px!important;padding-bottom:16px!important}
  .admin-hero h1{font-size:30px!important}
  .admin-hero p{line-height:1.5}
  .admin-quick-nav{padding-inline:12px}
  .admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding-left:16px!important;padding-right:16px!important}
  .admin-nav{display:flex!important;grid-template-columns:none!important;overflow-x:auto;scrollbar-width:none;gap:7px!important;padding-bottom:4px}
  .admin-nav::-webkit-scrollbar{display:none}
  .admin-nav button{flex:0 0 min(210px,72vw);padding:12px!important}
  .doc-content{line-height:1.52!important}
  .qonto-test{margin-bottom:30px!important}

  /* Some operational rows contain long identifiers/URLs. Flex/grid items use
     min-width:auto by default and could push the root console 14px wider than
     a 390px viewport. Keep horizontal scrolling only inside the dedicated
     nav/pre surfaces, never at document level. */
  #adminView{width:100%;max-width:100%;min-width:0;overflow-x:clip}
  #adminView :where(.admin-hero,.admin-kpis,.section,.section-head,.card,.admin-layout,.admin-doc,.payment-role-strip,.verify-item,.verify-item>div,.qonto-test){min-width:0;max-width:100%}
  #adminView :where(p,b,strong,small,a,pre){overflow-wrap:anywhere;word-break:normal}
  #adminView pre{white-space:pre-wrap;overflow-x:auto}
}

/* V0.18 mobile Radar chronology hotfix — every row owns a media column only
   when a photo is actually present. The API template currently emits a bare
   <img>, so target the direct child instead of relying on a class. */
.radar-event-v016>img{
  grid-column:1!important;
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  max-width:48px!important;
  aspect-ratio:1/1!important;
  object-fit:cover!important;
  object-position:center!important;
  border-radius:12px!important;
  display:block!important;
  align-self:start!important;
}
.radar-event-v016>div{grid-column:2;min-width:0}
.radar-event-v016:not(:has(>img)){grid-template-columns:minmax(0,1fr)!important}
.radar-event-v016:not(:has(>img))>div{grid-column:1!important}
.radar-event-v016 .radar-kind{display:block!important;width:max-content;max-width:100%;margin:0 0 5px!important;font-size:10px;line-height:1.2}
.radar-event-v016 b{display:block!important;font-size:15px;line-height:1.35;margin:0 0 5px!important}
.radar-event-v016 small{display:block!important;font-size:12px;line-height:1.4;color:var(--muted)}
@media(max-width:600px){
  .radar-feed-card{padding:18px!important}
  .radar-feed-card>h3{font-size:25px!important;line-height:1.1;margin-bottom:10px!important}
  .radar-event-v016{width:100%!important;grid-template-columns:54px minmax(0,1fr)!important;gap:12px!important;padding:15px 0!important;align-items:start!important;text-align:left!important}
  .radar-event-v016>img{width:54px!important;height:54px!important;min-width:54px!important;max-width:54px!important;border-radius:13px!important}
  .radar-event-v016:not(:has(>img)){grid-template-columns:minmax(0,1fr)!important;padding-left:0!important}
  .radar-event-v016 b{font-size:16px!important;line-height:1.32!important}
  .radar-event-v016 small{font-size:12px!important}
}

.install-app{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:9px 12px;font:inherit;font-size:11px;font-weight:850;cursor:pointer;white-space:nowrap}.install-app:hover{background:#f7f7f4}.installed-app .install-app{display:none!important}.pwa-connectivity{position:sticky;top:0;z-index:2200;background:#0b1f3a;color:#fff;padding:9px 16px;text-align:center;font-size:12px;font-weight:750;box-shadow:0 4px 14px rgba(0,0,0,.16)}.offline-page{min-height:100vh;background:#f5f6f2;display:grid;place-items:center;padding:24px}.offline-shell{width:min(620px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:clamp(24px,6vw,48px);box-shadow:0 20px 60px rgba(11,31,58,.10);text-align:center}.offline-shell img{display:block;margin:0 auto 18px}.offline-shell h1{font-size:clamp(30px,7vw,52px);margin:8px 0 14px}.offline-shell p{color:var(--muted);line-height:1.65;margin:0 auto 22px;max-width:540px}.offline-shell .primary{display:inline-flex;text-decoration:none;align-items:center;justify-content:center}.offline-shell small{display:block;color:var(--muted);line-height:1.5;margin-top:20px}@media(max-width:900px){.header-actions .install-app{order:-1}.install-app{padding:8px 10px}}@media(max-width:600px){.header-actions .independent{display:none}.install-app{font-size:10px}.pwa-connectivity{font-size:11px;padding-inline:10px}}

.radar-v019{position:relative;overflow:hidden}.radar-v019-head{align-items:flex-end}.radar-filters-v019{margin:0 0 14px;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;padding-bottom:2px}.radar-filters-v019::-webkit-scrollbar{display:none}.radar-filters-v019 button{scroll-snap-align:start;flex:0 0 auto}.radar-shell-v019{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.45fr);gap:14px;align-items:stretch}.radar-map-card-v019,.radar-feed-v019{min-width:0;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 12px 34px rgba(11,31,58,.07)}.radar-map-card-v019{position:relative;padding:14px}.radar-map-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 3px 12px}.radar-map-top>div{display:flex;align-items:center;gap:8px}.radar-map-top b{font-size:14px;letter-spacing:-.01em}.radar-map-badge{font-size:8px;font-weight:900;letter-spacing:.12em;color:#53657b;border:1px solid #d8e1ea;background:#f7f9fb;border-radius:999px;padding:6px 8px}.radar-live-dot{width:8px;height:8px;border-radius:50%;background:#e53b45;box-shadow:0 0 0 5px rgba(229,59,69,.10)}.radar-map-v019{position:relative;height:clamp(430px,43vw,555px);border-radius:20px;overflow:hidden;background:#061a39;isolation:isolate}.radar-svg-v019{display:block;width:100%;height:100%}.radar-grid-lines line{stroke:#fff;stroke-width:.7;opacity:.065;stroke-dasharray:2 8}.radar-france-v019,.radar-corsica-v019{fill:url(#radarLand);stroke:#dbe9fa;stroke-width:2.2}.radar-route-lines path{fill:none;stroke:#7192b6;stroke-width:1.25;stroke-linecap:round;opacity:.33;stroke-dasharray:3 4}.radar-city circle{fill:#284c78;opacity:.72}.radar-city text{font-size:9.6px;font-weight:800;fill:#294a70;opacity:.9;letter-spacing:.01em}.radar-overseas-tile rect{fill:rgba(255,255,255,.075);stroke:rgba(255,255,255,.18);stroke-width:1}.radar-overseas-tile text{font-size:8.5px;fill:#dce8f8;text-anchor:middle;letter-spacing:.09em;font-weight:850}.radar-overseas-icon{fill:rgba(219,232,248,.34);stroke:rgba(255,255,255,.28);stroke-width:.7}.radar-pin-v019{cursor:pointer;outline:none;transform-box:fill-box;transform-origin:center}.radar-pin-v019 .radar-pulse{fill:var(--party);opacity:.18;transform-origin:center;animation:radarPulse 2.4s ease-out infinite}.radar-pin-v019 path{fill:var(--party);stroke:#fff;stroke-width:2.15}.radar-pin-v019 .radar-pin-core{fill:#fff;stroke:var(--party);stroke-width:2}.radar-pin-v019:hover,.radar-pin-v019:focus-visible,.radar-pin-v019.active{filter:brightness(1.08)}.radar-pin-v019.active path{stroke-width:3.25}.radar-pin-v019.active .radar-pulse{opacity:.31;animation-duration:1.45s}.radar-pin-v019:focus-visible path{stroke:#fff;stroke-width:4}@keyframes radarPulse{0%{transform:scale(.68);opacity:.27}75%,100%{transform:scale(1.75);opacity:0}}.radar-detail-v019{position:absolute;left:30px;bottom:70px;width:min(390px,calc(100% - 60px));border:1px solid rgba(255,255,255,.64);border-radius:18px;background:rgba(255,255,255,.95);backdrop-filter:blur(16px);padding:14px 15px 13px;box-shadow:0 18px 44px rgba(4,15,30,.22);z-index:3}.radar-detail-main{display:flex;align-items:flex-start;gap:11px}.radar-detail-photo{width:46px!important;height:46px!important;min-width:46px!important;max-width:46px!important;border-radius:13px!important;object-fit:cover!important;background:#e3e5e5;flex:0 0 auto}.radar-detail-copy{min-width:0}.radar-detail-party{display:flex;align-items:center;gap:7px;margin-bottom:6px}.radar-detail-party i{width:8px;height:8px;border-radius:50%;box-shadow:0 0 0 3px rgba(0,0,0,.04)}.radar-detail-party span{font-size:9px;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.radar-detail-v019 strong{display:block;font-size:15px;line-height:1.27;letter-spacing:-.01em}.radar-detail-v019 p{margin:6px 0 4px;font-size:11px;line-height:1.38;color:#4f575c}.radar-detail-v019 small{display:block;font-size:10px;line-height:1.4;color:var(--muted)}.radar-detail-source{display:inline-flex;align-items:center;gap:4px;margin-top:9px;color:#0b2f5f;text-decoration:none;font-size:10px;font-weight:900}.radar-detail-empty{font-size:11px;color:var(--muted);line-height:1.45}.radar-legend-v019{position:absolute;left:30px;right:30px;bottom:22px;z-index:2;display:flex;gap:6px;align-items:center;overflow-x:auto;scrollbar-width:none;mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 24px),transparent 100%)}.radar-legend-v019::-webkit-scrollbar{display:none}.radar-legend-v019 span{display:flex;align-items:center;gap:5px;flex:0 0 auto;max-width:210px;background:rgba(6,26,57,.82);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(10px);color:#edf3fb;border-radius:999px;padding:6px 9px;font-size:8.5px;font-weight:760;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.radar-legend-v019 i{width:7px;height:7px;min-width:7px;border-radius:50%;border:1px solid rgba(255,255,255,.72)}.radar-feed-v019{padding:18px;max-height:615px;overflow:auto;overscroll-behavior:contain}.radar-feed-head{position:sticky;top:-18px;z-index:2;background:linear-gradient(#fff 78%,rgba(255,255,255,.92));padding:17px 0 11px;margin-top:-17px}.radar-feed-head h3{font-size:23px;line-height:1.1;margin:4px 0 3px;letter-spacing:-.03em}.radar-feed-head p{margin:0;color:var(--muted);font-size:10px;line-height:1.4}.radar-event-v019{position:relative;width:100%;display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:10px;align-items:start;border:0;border-top:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;padding:13px 4px;cursor:pointer;border-radius:14px;transition:background .15s ease,transform .15s ease}.radar-event-v019:first-child{border-top-color:transparent}.radar-event-v019:hover,.radar-event-v019:focus-visible{background:#f7f8f8;outline:none;transform:translateX(1px)}.radar-event-v019.active{background:#f1f5f9}.radar-event-color{width:4px;height:48px;border-radius:999px}.radar-event-v019 img{width:48px!important;height:48px!important;min-width:48px!important;max-width:48px!important;border-radius:13px!important;object-fit:cover!important;display:block!important}.radar-event-v019:not(:has(img)){grid-template-columns:auto minmax(0,1fr) auto}.radar-event-v019:not(:has(img)) .radar-event-copy{grid-column:2}.radar-event-copy{min-width:0}.radar-event-copy small{display:block;color:#6d7579;font-style:normal;font-size:9px;line-height:1.2;font-weight:800;text-transform:uppercase;letter-spacing:.035em;margin-bottom:4px}.radar-event-copy b{display:block;font-size:13px;line-height:1.35;overflow-wrap:break-word}.radar-event-copy em{display:block;color:var(--muted);font-size:10px;line-height:1.38;font-style:normal;margin-top:5px}.radar-event-arrow{align-self:center;color:#9ca6af;font-size:22px;line-height:1}.radar-map-note-v019{margin:10px 2px 0;color:var(--muted);font-size:10px;line-height:1.45}.radar-map-loading,.radar-empty-v019{display:grid;place-items:center;min-height:130px;color:var(--muted);font-size:11px;text-align:center;padding:18px}.radar-map-v019>.radar-map-loading{height:100%;color:#dce7f5}@media(max-width:1050px){.radar-shell-v019{grid-template-columns:1fr}.radar-map-v019{height:clamp(390px,55vw,510px)}.radar-feed-v019{max-height:none}.radar-event-v019{grid-template-columns:auto auto minmax(0,1fr) auto}}@media(max-width:760px){.radar-v019 .section-head{align-items:flex-start}.radar-v019-head .status{display:none}.radar-map-card-v019{padding:10px;border-radius:20px}.radar-map-top{padding:4px 4px 9px}.radar-map-top b{font-size:13px}.radar-map-badge{font-size:7px;padding:5px 7px}.radar-map-v019{height:clamp(315px,66vw,400px);border-radius:18px}.radar-detail-v019{position:static;width:100%;margin-top:9px;background:#f7f8f7;border-color:var(--line);box-shadow:none;backdrop-filter:none;padding:15px;border-radius:17px}.radar-detail-photo{width:44px!important;height:44px!important;min-width:44px!important;max-width:44px!important}.radar-detail-v019 strong{font-size:15px}.radar-detail-v019 p{font-size:11px}.radar-detail-source{font-size:11px}.radar-legend-v019{position:static;margin-top:8px;padding:0 2px 2px;mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 22px),transparent 100%)}.radar-legend-v019 span{background:#0b2445;font-size:9px;padding:7px 9px;max-width:180px}.radar-feed-v019{padding:16px;border-radius:20px}.radar-feed-head{top:-16px;margin-top:-15px}.radar-event-v019{grid-template-columns:auto auto minmax(0,1fr) auto;gap:9px;padding:14px 5px}.radar-event-v019 img{width:50px!important;height:50px!important;min-width:50px!important;max-width:50px!important}.radar-event-color{height:50px}.radar-event-copy b{font-size:15px;line-height:1.3}.radar-event-copy em{font-size:11px}.radar-filters-v019{margin-right:-16px;padding-right:16px;gap:8px}.radar-filters-v019 button{white-space:nowrap}.radar-map-note-v019{font-size:10px}}@media(max-width:480px){.radar-map-card-v019{margin-left:-2px;margin-right:-2px}.radar-map-v019{height:315px}.radar-map-top{gap:7px}.radar-map-badge{display:none}.radar-feed-v019{padding:14px}.radar-event-v019:not(:has(img)){grid-template-columns:auto minmax(0,1fr) auto}.radar-event-copy small{font-size:8.5px}.radar-event-copy b{font-size:14px}.radar-legend-v019 span{font-size:8.5px;max-width:155px}.radar-detail-v019{padding:14px}.radar-map-note-v019{font-size:9.5px}}

.radar-production .radar-freshness{display:flex;align-items:center;gap:8px;margin:-5px 0 13px;color:var(--muted);font-size:11.5px;font-weight:750;line-height:1.35}.radar-production .radar-freshness::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(43,122,82,.09);flex:0 0 auto}

/* V0.22.4 — the official map projection is the visual coordinate system.
   No CSS zoom: marker transforms must correspond exactly to Etalab/IGN paths. */
.radar-production .radar-map-v019{background:#061a39}.radar-production .radar-svg-v019{transform:none;transform-origin:center;will-change:auto}.radar-production .radar-map-top b{font-size:16px;line-height:1.2;font-weight:850}.radar-production .radar-map-badge{font-size:9.5px;padding:7px 10px;letter-spacing:.1em}.radar-production .radar-map-instruction{margin:-3px 3px 10px;color:var(--muted);font-size:12px;line-height:1.4}.radar-production .radar-city circle{r:3.6px;fill:#183f6d;opacity:.92}.radar-production .radar-city text{font-size:13.5px;font-weight:900;fill:#173f6c;opacity:1;letter-spacing:.005em;paint-order:stroke;stroke:rgba(255,255,255,.92);stroke-width:2.7px;stroke-linejoin:round}.radar-production .radar-route-lines path{stroke-width:1.65;opacity:.42}.radar-production .radar-france-v019,.radar-production .radar-corsica-v019{stroke-width:2.7}.radar-production .radar-overseas-tile rect{stroke-width:1.35;fill:rgba(255,255,255,.095)}.radar-production .radar-overseas-tile text{font-size:11px;font-weight:900;letter-spacing:.075em;fill:#f1f6fd}.radar-production .radar-overseas-icon{stroke-width:1;fill:rgba(229,239,252,.46);stroke:rgba(255,255,255,.5)}

.radar-production .radar-hit{fill:transparent;stroke:none;pointer-events:all}.radar-production .radar-pin-v019{scale:1}.radar-production .radar-pin-v019 .radar-pulse{animation:none!important;opacity:.18!important}.radar-pin-glyph,.radar-cluster-glyph{pointer-events:none;transform-box:fill-box}.radar-pin-glyph{transform-origin:50% 100%;scale:1.14}.radar-cluster-glyph{transform-origin:center;scale:1.18}.radar-cluster-v020{cursor:pointer;outline:none;transform-box:fill-box;transform-origin:center;scale:1}.radar-cluster-v020 .radar-hit{fill:transparent}.radar-cluster-ring{fill:#0f294d;stroke:#fff;stroke-width:2.9}.radar-cluster-v020 text{fill:#fff;text-anchor:middle;dominant-baseline:central;font-size:12.5px;font-weight:950;pointer-events:none}.radar-cluster-v020.active .radar-cluster-ring,.radar-cluster-v020:focus-visible .radar-cluster-ring{stroke:#d9ff4b;stroke-width:4.3}.radar-pin-v019:focus-visible .radar-hit,.radar-cluster-v020:focus-visible .radar-hit{stroke:#fff;stroke-width:1;stroke-opacity:.01}

.radar-production .radar-detail-v019{padding:16px 17px 15px}.radar-production .radar-detail-main{gap:13px;padding-right:50px}.radar-detail-close{position:absolute;right:12px;top:12px;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font:700 22px/1 system-ui;cursor:pointer}.radar-detail-close:hover,.radar-detail-close:focus-visible{background:#edf2f6;outline:3px solid rgba(11,47,95,.2);outline-offset:2px}.radar-production .radar-detail-photo{width:54px!important;height:54px!important;min-width:54px!important;max-width:54px!important;border-radius:15px!important}.radar-production .radar-detail-party{margin-bottom:7px}.radar-production .radar-detail-party i{width:9px;height:9px}.radar-production .radar-detail-party span{font-size:10px;letter-spacing:.065em}.radar-production .radar-detail-v019 strong{font-size:17px;line-height:1.28}.radar-production .radar-detail-v019 p{font-size:12.5px;line-height:1.45;margin:7px 0 5px}.radar-production .radar-detail-v019 small{font-size:11px;line-height:1.45}.radar-detail-people{font-weight:750!important;color:#27333b!important}.radar-detail-sources{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin-top:11px;padding-top:10px;border-top:1px solid var(--line)}.radar-detail-sources::-webkit-scrollbar{display:none}.radar-detail-sources a,.radar-detail-sources span{flex:0 0 auto;text-decoration:none;font-size:11px;font-weight:850;color:#0b2f5f;background:#fff;border:1px solid #dbe1e5;border-radius:999px;padding:7px 10px;max-width:240px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.radar-detail-sources span{color:var(--muted)}

.radar-cluster-panel{position:absolute;z-index:6;left:30px;top:76px;width:min(390px,calc(100% - 60px));max-height:min(390px,calc(100% - 118px));overflow:auto;overscroll-behavior:contain;border:1px solid rgba(255,255,255,.72);border-radius:18px;background:rgba(255,255,255,.98);box-shadow:0 20px 54px rgba(4,15,30,.3);padding:14px}.radar-cluster-panel[hidden]{display:none}.radar-cluster-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}.radar-cluster-head strong{display:block;margin-top:4px;font-size:16px}.radar-cluster-head p{margin:4px 0 0;color:var(--muted);font-size:11px}.radar-cluster-head>button{width:44px;height:44px;flex:0 0 auto;border:1px solid var(--line);border-radius:50%;background:#f4f3ef;color:var(--ink);font-size:22px;cursor:pointer}.radar-cluster-list{display:grid}.radar-cluster-list>button{display:grid;grid-template-columns:5px minmax(0,1fr);gap:10px;min-height:58px;width:100%;padding:11px 4px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;cursor:pointer}.radar-cluster-list>button:last-child{border-bottom:0}.radar-cluster-list>button>span:first-child{width:5px;height:100%;min-height:38px;border-radius:999px}.radar-cluster-list b,.radar-cluster-list small{display:block}.radar-cluster-list b{font-size:13px;line-height:1.35}.radar-cluster-list small{margin-top:4px;color:var(--muted);font-size:10px;line-height:1.35}
@media(max-width:760px){.radar-cluster-panel{position:static;width:100%;max-height:none;margin-top:9px;background:#f7f8f7;border-color:var(--line);box-shadow:none}}

.radar-production .radar-legend-v019{gap:8px}.radar-production .radar-legend-v019 span{min-height:36px;font-size:10.5px;font-weight:800;padding:8px 11px;max-width:240px;gap:7px}.radar-production .radar-legend-v019 i{width:9px;height:9px;min-width:9px}.radar-production .radar-event-v019[aria-pressed="true"]{box-shadow:inset 3px 0 0 #244f7c}.radar-production .radar-filters button{min-height:44px;font-size:13.5px;font-weight:800;padding-inline:16px}.radar-production .radar-map-card-v019,.radar-production .radar-feed-v019{contain:layout paint}.radar-production .radar-map-v019{touch-action:pan-y}.radar-production .radar-map-note-v019{font-size:11px;line-height:1.5}.radar-production .radar-feed-head h3{font-size:25px}.radar-production .radar-feed-head p{font-size:11.5px;line-height:1.45}.radar-production .radar-event-copy small{font-size:10px}.radar-production .radar-event-copy b{font-size:14.5px}.radar-production .radar-event-copy em{font-size:11px}

/* V0.22.4 — on tablet/mobile the chronology is part of the document flow.
   Do not keep desktop scroll trapping once max-height is removed: a vertical
   gesture starting on CHRONOLOGIE must always continue scrolling the page. */
@media(max-width:1050px){.radar-production .radar-feed-v019{overflow:visible;overscroll-behavior:auto;touch-action:pan-y;contain:none}.radar-production .radar-feed-head{position:static;top:auto}.radar-production .radar-hit{r:30px}}

@media(max-width:760px){.radar-production .radar-freshness{margin-top:-2px;margin-bottom:12px;font-size:11px}.radar-production .radar-filters button{min-height:46px;padding:11px 16px;font-size:13px}.radar-production .radar-map-top{padding:6px 5px 11px}.radar-production .radar-map-top b{font-size:15.5px}.radar-production .radar-map-badge{font-size:8.5px}.radar-production .radar-city text{font-size:14px;stroke-width:3px}.radar-production .radar-city circle{r:3.8px}.radar-production .radar-overseas-tile text{font-size:11.5px}.radar-production .radar-detail-v019{position:relative;padding:16px}.radar-production .radar-detail-photo{width:52px!important;height:52px!important;min-width:52px!important;max-width:52px!important}.radar-production .radar-detail-v019 strong{font-size:17px}.radar-production .radar-detail-v019 p{font-size:13px}.radar-production .radar-detail-v019 small{font-size:11.5px}.radar-production .radar-detail-sources{margin-right:-6px;padding-right:6px}.radar-production .radar-detail-sources a{font-size:11px;min-height:36px;display:inline-flex;align-items:center}.radar-production .radar-legend-v019 span{font-size:10.5px;min-height:36px;padding:8px 10px;max-width:205px}.radar-production .radar-map-v019{height:clamp(305px,64vw,385px)}.radar-production .radar-feed-head h3{font-size:26px}.radar-production .radar-feed-head p{font-size:12px}.radar-production .radar-event-copy small{font-size:10px}.radar-production .radar-event-copy b{font-size:15.5px;line-height:1.32}.radar-production .radar-event-copy em{font-size:11.5px}}
@media(max-width:480px){.radar-production .radar-map-v019{height:305px}.radar-production .radar-map-top b{font-size:15px}.radar-production .radar-city text{font-size:13.5px}.radar-production .radar-overseas-tile text{font-size:10.8px}.radar-production .radar-detail-sources a{max-width:190px}.radar-production .radar-freshness{padding-inline:2px}.radar-production .radar-legend-v019 span{font-size:10px;max-width:180px}.radar-production .radar-map-note-v019{font-size:10.5px}}
@media(prefers-reduced-motion:reduce){.radar-production *{scroll-behavior:auto!important}.radar-production .radar-svg-v019{transform:none!important}.radar-production .radar-pulse{animation:none!important;opacity:.16!important}.radar-production .radar-event-v019,.radar-production .radar-pin-v019,.radar-production .radar-cluster-v020{transition:none!important}}

/* V0.22.4 — scale only marker artwork, never the translated SVG control.
   Scaling the outer <g> also multiplied its map coordinates and pushed DROM
   markers outside the clipped canvas. Mobile hit circles stay thumb-sized. */
@media(max-width:760px){
  .radar-production .radar-hit{r:clamp(32px,calc(92px - 8vw),64px)}
  .radar-pin-glyph{scale:1.55}
  .radar-cluster-glyph{scale:1.5}
  .radar-map-v019.radar-geo-v021-ready .radar-city text{font-size:25px!important;stroke-width:4px!important}
  .radar-map-v019.radar-geo-v021-ready .radar-overseas-tile text{font-size:22px!important}
}
@media(max-width:480px){
  .radar-pin-glyph{scale:2}
  .radar-cluster-glyph{scale:1.85}
}

/* The SVG anchoring runtime owns artwork scale with exact matrices. Keep the
   legacy individual transform neutral in the critical bundle so a slow
   secondary stylesheet can never move a pin away from its coordinate. */
.radar-production .radar-pin-glyph,
.radar-production .radar-cluster-glyph{
  scale:1!important;
  transform-box:view-box!important;
  transform-origin:0 0!important;
}

.radar-admin-review{margin-top:12px}.radar-admin-review>.section-head{margin-bottom:14px}.radar-admin-item{border:1px solid var(--line);border-radius:17px;background:#f7f7f4;padding:16px;margin-top:10px}.radar-admin-source{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding-bottom:12px;border-bottom:1px solid var(--line)}.radar-admin-source b,.radar-admin-source small{display:block}.radar-admin-source b{font-size:14px;line-height:1.35}.radar-admin-source small{color:var(--muted);font-size:10px;margin-top:4px;line-height:1.4}.radar-admin-source a{flex:0 0 auto;color:var(--ink);font-size:10px;font-weight:850;text-decoration:none;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 10px}.radar-admin-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.radar-admin-fields label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.radar-admin-fields input,.radar-admin-fields select{width:100%;min-width:0;min-height:42px;border:1px solid #d6d7d2;border-radius:11px;background:#fff;color:var(--ink);padding:9px 10px;font:inherit;font-size:12px;text-transform:none;letter-spacing:0;outline:none}.radar-admin-fields input:focus,.radar-admin-fields select:focus{border-color:#254d7a;box-shadow:0 0 0 3px rgba(37,77,122,.09)}.radar-admin-source-url{grid-column:span 2}.radar-admin-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:13px}.radar-admin-actions button{min-height:40px}.radar-admin-message{margin-right:auto;color:var(--muted);font-size:10px;line-height:1.4}.radar-admin-warning{grid-column:1/-1;border:1px solid #eed59f;background:#fff7e2;color:#6d5118;border-radius:11px;padding:10px 11px;font-size:10px;line-height:1.45;text-transform:none;letter-spacing:0;font-weight:700}@media(max-width:1000px){.radar-admin-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.radar-admin-item{padding:14px}.radar-admin-source{display:block}.radar-admin-source a{display:inline-flex;margin-top:9px}.radar-admin-fields{grid-template-columns:1fr}.radar-admin-source-url{grid-column:auto}.radar-admin-actions{display:grid;grid-template-columns:1fr 1fr}.radar-admin-actions button{width:100%}.radar-admin-message{grid-column:1/-1;grid-row:1;margin:0}.radar-admin-fields input,.radar-admin-fields select{min-height:44px}}
