*{box-sizing:border-box}body{margin:0;background:#061522;color:#f4f8fc;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{display:flex;min-height:100vh}.sidebar{width:255px;flex-shrink:0;background:#0b2336;border-right:1px solid #214054;padding:22px 14px;display:flex;flex-direction:column}.brand{padding:9px 12px 26px}.brand b{font-size:26px;font-style:italic;letter-spacing:-1px}.brand small{display:block;color:#d9fa48;font-size:11px;font-style:italic}.mount{color:#d9fa48;font-size:24px;margin-right:5px}.nav{display:grid;gap:4px}.nav button{border:0;text-align:left;background:transparent;color:#b5c9d5;padding:11px 13px;border-radius:12px}.nav button.active,.nav button:hover{background:#d9fa48;color:#071b2b;font-weight:800}.nav button span{margin-right:10px}.foot{font-size:11px;line-height:1.7;color:#8da6b6;margin-top:auto;padding:12px}.foot a{color:#d9fa48}.main{width:100%;min-width:0}.top{height:96px;background:#0b2336;display:flex;align-items:center;padding:15px 30px;gap:16px;border-bottom:1px solid #214054}.top h1{margin:2px 0;font-size:26px}.top small{font-size:10px;letter-spacing:2px;color:#d9fa48}.avatar{margin-left:auto;font-size:30px}.top #menu{display:none}.content{padding:24px 30px;max-width:1300px;margin:auto}.hero{background:linear-gradient(110deg,#0e3046dd,#061c2bd9),url('https://images.unsplash.com/photo-1551632811-561732d1e306?w=1600') center/cover;border:1px solid #345b69;border-radius:22px;padding:32px;min-height:200px;display:flex;flex-direction:column;justify-content:center}.hero h2{font-size:clamp(24px,3vw,38px);margin:0 0 8px}.hero p{color:#c6d9e3;max-width:610px}.pill{display:inline-block;width:max-content;color:#071b2b;background:#d9fa48;border-radius:25px;padding:6px 12px;font-size:12px;font-weight:800}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.card{background:#102c40;border:1px solid #244a5d;border-radius:18px;padding:20px;min-width:0}.card h3{margin:0 0 10px}.card .number{font-size:31px;font-weight:900;color:#d9fa48}.muted{color:#a8c0cc;font-size:13px}.section{margin:25px 0 12px}.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tile{text-align:left;border:1px solid #2b5366;background:#123448;color:#fff;border-radius:16px;padding:18px;min-height:115px}.tile:hover{border-color:#d9fa48}.tile .emoji{display:block;font-size:28px;margin-bottom:10px}.tile strong{display:block}.btn{border:0;border-radius:12px;background:#d9fa48;color:#071b2b;padding:12px 17px;font-weight:850}.btn.secondary{background:#21465a;color:#fff}.btn.danger{background:#e96065;color:#fff}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.fields{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}input,select,textarea{border:1px solid #365a6c;border-radius:10px;background:#071d2e;color:#fff;padding:11px;max-width:100%}input{min-width:140px}textarea{width:100%;min-height:80px}.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.colitem{background:#102c40;border:1px solid #244a5d;border-radius:15px;padding:16px}.colitem h3{margin:0 0 5px}.colitem small{color:#a8c0cc}.colitem .metric{color:#d9fa48;font-weight:800}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.list{display:grid;gap:10px}.item{background:#102c40;border:1px solid #244a5d;border-radius:12px;padding:14px}.item strong{color:#e9f5fb}.note{border-left:3px solid #d9fa48;padding:12px 16px;background:#173447;color:#d0e3ea;border-radius:8px;margin:15px 0}.bar{height:10px;background:#2c5063;border-radius:10px;overflow:hidden}.bar>span{display:block;height:100%;background:#d9fa48}.chart{display:flex;align-items:end;height:145px;gap:9px;padding:12px;background:#071d2e;border-radius:12px}.chart i{flex:1;background:linear-gradient(#d9fa48,#789b2a);border-radius:5px 5px 0 0;min-height:4px}.bottom{display:none}.hidden{display:none!important}@media(max-width:1100px){.grid,.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.sidebar{display:none}.top{height:76px;padding:12px 17px}.top h1{font-size:21px}.top #menu{display:block;border:0;background:transparent;color:white;font-size:24px}.content{padding:15px 14px 95px}.grid{gap:9px}.card{padding:14px}.card .number{font-size:24px}.tiles{gap:9px}.tile{padding:14px;min-height:96px}.cols{grid-template-columns:1fr}.hero{padding:20px;min-height:170px}.bottom{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:#0b2336;border-top:1px solid #34596a;padding:7px 0 calc(7px + env(safe-area-inset-bottom));z-index:5}.bottom button{border:0;background:transparent;color:#c8d7df;font-size:10px;display:grid;justify-items:center;gap:4px}.bottom button span{font-size:20px}.bottom button.active{color:#d9fa48}.shell.menu-open .sidebar{display:flex;position:fixed;z-index:10;inset:0 auto 0 0;width:min(300px,90vw);overflow:auto;box-shadow:0 0 0 100vw #0009}.fields input,.fields select{flex:1;min-width:0}}
.fav{border:1px solid #557081;border-radius:10px;background:#15374b;color:#d9fa48;font-size:24px;min-width:40px;height:38px}.fav.selected{background:#d9fa48;color:#071b2b}.route-map{height:440px;border:1px solid #34596a;border-radius:16px;overflow:hidden;margin:14px 0;background:#193649}.route-map .leaflet-container{font-family:inherit}@media(max-width:700px){.route-map{height:350px}}

.elevation{display:block;width:100%;height:auto;max-height:270px;margin:14px 0 4px;border-radius:12px;background:#0a2535}

.col-hero{background:linear-gradient(120deg,#1c4d5d,#0b263a);border:1px solid #365c6a;border-radius:18px;padding:24px;margin:12px 0 20px}.col-hero h2{font-size:clamp(26px,4vw,40px);margin:18px 0 10px}.side-card{margin:16px 0}.side-card .grid{grid-template-columns:repeat(4,minmax(0,1fr))}.profile-key{font-size:13px;color:#d9fa48;font-weight:700;margin-top:18px}.side-profile{width:100%;height:auto;display:block;margin:12px 0;background:#071e2d;border-radius:12px}.source-link{color:#d9fa48;font-weight:700}@media(max-width:700px){.side-card .grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.trip-days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.trip-day .pill{white-space:nowrap}.trip-day .item{margin-top:8px}.trip-day label{display:block;margin-top:10px}.trip-day label select{padding:6px;margin-left:6px}@media(max-width:800px){.trip-days{grid-template-columns:1fr}.trip-day .row{flex-wrap:wrap}}

/* V18: amélioration navigation, contraste et usage mobile */
:focus-visible{outline:3px solid #d9fa48;outline-offset:3px}button,.btn,a{transition:background .16s ease,border-color .16s ease,transform .16s ease}button:hover,.btn:hover{filter:brightness(1.12)}.quick-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quick-links button{background:#0a2232;color:#eefaff;border:1px solid #315a6b;border-radius:12px;text-align:left;padding:14px;font-weight:700}.quick-links button:hover{border-color:#d9fa48}.provider-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.provider{padding:18px;background:#071e2d;border:1px solid #315568;border-radius:14px}.provider strong{font-size:19px;display:block}.provider p{color:#c1d4dd;line-height:1.5}.provider a{color:#d9fa48}.pill-state{display:inline-block;color:#d9fa48;border:1px solid #557045;padding:4px 9px;border-radius:18px;font-size:11px;margin-top:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.integrations-hero{min-height:170px}.card,.tile,.item{box-shadow:0 4px 14px #0002}a{overflow-wrap:anywhere}@media(max-width:700px){.quick-links,.provider-grid{grid-template-columns:1fr}.hero h2{line-height:1.18}.top{position:sticky;top:0;z-index:4}.bottom button{min-width:48px;min-height:44px}}

/* V20 journal */
.ride-row{padding:18px;margin:10px 0}.ride-row .row{display:flex;align-items:center;justify-content:space-between;gap:12px}.ride-row .muted{margin:5px 0}.ride-facts{display:flex;gap:20px;flex-wrap:wrap;color:var(--muted,#9fb0b8);margin:12px 0}.ride-row .actions{display:flex;flex-wrap:wrap;gap:8px}

/* V21 — statistiques adaptatives */
.stat-months{height:190px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:7px;align-items:end;margin:18px 0 8px;border-bottom:1px solid rgba(150,170,185,.25)}
.stat-column{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px;min-width:0;font-size:11px;color:#a6b7c6}
.stat-bar{width:80%;min-height:2px;background:#dfff55;border-radius:5px 5px 0 0;max-height:160px}
.stat-month-details{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;font-size:12px;color:#afbdc8}
.progress-track{height:12px;border-radius:20px;overflow:hidden;background:#263e4c;margin-top:16px}
.progress-track>div{height:100%;background:#dfff55;border-radius:20px}
@media(max-width:620px){.stat-months{gap:3px;height:145px}.stat-column{font-size:9px}.stat-month-details{grid-template-columns:repeat(3,1fr)}}

/* V22 */
.challenge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:14px;margin-top:16px}
.challenge-grid .card{margin:0}
.challenge-grid .progress-track{margin:12px 0}

/* V28: podiums et maillots */
.jersey-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:12px 0}.jersey{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:14px;border:1px solid var(--line,#dce4e4)}.jersey.yellow{background:#fff3b6;color:#443600}.jersey.polka{background:radial-gradient(circle at 18px 18px,#d32937 0 7px,transparent 8px) 0 0/42px 42px,#fff;color:#532027}.jersey-icon{font-size:28px}.jersey small{opacity:.8}.stage-podium{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:16px 0}.podium-place{display:flex;flex-direction:column;gap:5px;border-radius:12px;padding:12px;background:var(--panel,#f1f4f5);overflow-wrap:anywhere}.podium-medal{font-size:25px}

/* V32 : photos du fil social, adaptatives aux écrans mobiles */
.social-photo{display:block;width:100%;max-height:480px;object-fit:contain;border-radius:14px;background:#102d37;margin:12px 0;}
@media(max-width:600px){.social-photo{max-height:350px}}

.social-profile-header{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.social-avatar-large{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid #d9fa48}.social-avatar-placeholder{display:grid;place-items:center;width:96px;height:96px;border-radius:50%;background:#183842;font-size:2.5rem}.social-avatar-small{width:36px;height:36px;border-radius:50%;object-fit:cover;margin-right:.5rem;vertical-align:middle}

/* V35 — commande accessible sur téléphone */
.sync-toggle{display:flex;align-items:center;gap:12px;min-height:48px;padding:12px;border:1px solid rgba(128,160,170,.35);border-radius:12px;cursor:pointer;flex-basis:100%;font-weight:600}.sync-toggle input{width:21px;height:21px;flex-shrink:0;accent-color:#b8ee40}

/* V39 : calendrier responsive des sorties */
.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;text-transform:capitalize}.activity-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-bottom:1rem}.calendar-weekday{text-align:center;font-weight:700;opacity:.65;padding:7px 0}.calendar-day{min-height:62px;border:1px solid var(--line,#d5dfe3);border-radius:10px;background:transparent;color:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;font:inherit}.calendar-day small{font-size:.68rem}.calendar-active{background:#dfff55;color:#102d37;border-color:#92b22e}.calendar-day:focus-visible{outline:3px solid #4a90e2;outline-offset:2px}.calendar-outside{opacity:.2;cursor:default}@media(max-width:480px){.activity-calendar{gap:3px}.calendar-day{min-height:52px;border-radius:6px}.calendar-day small{font-size:.59rem}}

/* V51 — identité visuelle inspirée de la maquette transmise */
:root{--neon:#dfff38;--navy:#061523;--panel:#10273b}
body{background:radial-gradient(ellipse at 80% 0%,#123c56 0%,#061523 55%);color:#f5faff}
.sidebar{background:linear-gradient(180deg,#071a2b,#0b293e)}
.brand b{font-size:29px;font-weight:950;letter-spacing:-1.7px;color:white}
.brand .mount{color:var(--neon)}
.brand small{color:var(--neon);font-weight:700}
.hero-consolidated{background:linear-gradient(95deg,rgba(4,21,35,.98) 0%,rgba(8,39,58,.92) 60%,rgba(10,46,65,.70)),linear-gradient(135deg,#102d45,#0d4862);min-height:260px;border-color:#52737b;position:relative;overflow:hidden}
.hero-consolidated:after{content:'▲';position:absolute;right:2%;top:0;font-size:clamp(120px,21vw,300px);line-height:1;color:rgba(223,255,56,.08);pointer-events:none}
.hero-consolidated>*{position:relative;z-index:1}
.hero-kicker{color:var(--neon);font-weight:900;letter-spacing:.08em;font-size:12px;margin-bottom:14px}
.hero-kicker span{color:#d7e7e9;margin-left:10px;font-weight:500}
.hero-consolidated h2{font-size:clamp(29px,4.2vw,52px);font-weight:950;line-height:1.08;letter-spacing:-.045em}
.hero-consolidated p{font-size:15px;line-height:1.5}
.cockpit-metrics{margin:18px 0}.cockpit-metrics .card{border-top:3px solid var(--neon)}
.cockpit-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:22px 0}
.cockpit-group{border:1px solid #345369;border-radius:18px;padding:17px;background:linear-gradient(150deg,#102c40,#0a2031);box-shadow:0 12px 32px #0003}
.cockpit-group h3{margin:0 0 13px;font-size:18px;color:white}.cockpit-group h3 span{margin-right:6px}
.cockpit-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.cockpit-links button{border:1px solid #33576a;background:#0a1c2b;color:#f0f7fc;text-align:left;border-radius:11px;padding:12px;font-size:13px;font-weight:700;min-height:50px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.cockpit-links button span{color:var(--neon);font-size:21px}
.cockpit-links button:hover,.cockpit-links button:focus-visible{border-color:var(--neon);background:#183b4b}
@media(max-width:850px){.cockpit-groups{grid-template-columns:1fr}}
@media(max-width:460px){.cockpit-links{grid-template-columns:1fr}.hero-consolidated{padding:22px}.hero-kicker span{display:block;margin:4px 0 0}.cockpit-group{padding:13px}}

.expense-member{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #61778055;border-radius:9px}.expense-member input{width:auto;min-width:18px}

/* V61 — identité issue de la maquette VELOCIMA ; couches appliquées aux écrans réels */
:root{--v61-lime:#dfff55;--v61-navy:#061522;--v61-panel:#102c40;--v61-stroke:#2b5267}
body{background:radial-gradient(ellipse at 80% 0%,#10374c 0%,#061522 50%);color:#f7fbff}
.sidebar{background:linear-gradient(180deg,#0c2c43,#081b2d);border-color:#31576a}
.brand{position:relative}.brand b{font-weight:950;letter-spacing:-1.5px;font-size:29px}.brand small{margin-top:5px;font-size:10px;letter-spacing:.2px}
.nav button{font-weight:650;transition:background .18s,color .18s,transform .18s}.nav button:hover{transform:translateX(2px)}
.top{background:#0a2538ed;backdrop-filter:blur(16px);border-color:#2e5061}.top h1{font-weight:900;letter-spacing:-.7px}.top small{font-weight:850}
.content{max-width:1440px}.card,.item,.colitem,.tile{background:linear-gradient(155deg,#12364b,#0b2537);border:1px solid #315568;box-shadow:0 12px 28px #0003}.card{border-radius:20px}.card h3{font-weight:850;letter-spacing:-.3px}.card .number{letter-spacing:-1px}.hero{position:relative;overflow:hidden;min-height:250px;background:linear-gradient(100deg,#071b2aef,#08283fc2 62%,#08233890),url('https://images.unsplash.com/photo-1551632811-561732d1e306?w=1600') center/cover;border-color:#426c79;border-radius:24px;box-shadow:0 24px 50px #0005}.hero:before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#dfff55,transparent)}.hero h2{font-weight:950;letter-spacing:-1.2px}.hero .btn{box-shadow:0 6px 18px #0004}
.btn{background:#dfff55;color:#071b2b;border-radius:13px;min-height:43px;box-shadow:0 5px 14px #0002}.btn.secondary{background:#21445a;color:#f6fbff;border:1px solid #466b7a}.tile{transition:transform .18s,border-color .18s}.tile:hover{transform:translateY(-3px);border-color:#dfff55}.tile .emoji{font-size:30px}.pill{background:#dfff55;color:#071b2b}
input,select,textarea{background:#061b2b;border-color:#43677a;min-height:43px}input:focus,select:focus,textarea:focus{outline:2px solid #dfff55;outline-offset:1px}.chart{background:#071e30}.chart i,.stat-bar{background:linear-gradient(0deg,#8baa28,#dfff55)}
.cockpit-metrics .card{position:relative;overflow:hidden}.cockpit-metrics .card:after{content:'';position:absolute;bottom:0;left:0;width:44%;height:3px;background:#dfff55}
@media(max-width:700px){.top{height:75px}.top h1{font-size:20px}.content{padding:14px 13px 100px}.card{border-radius:16px}.hero{min-height:210px;border-radius:18px}.bottom{background:#071e30f5;backdrop-filter:blur(18px);border-top:1px solid #3a6070;box-shadow:0 -8px 24px #0005}.bottom button{border-radius:12px;padding:4px 7px;min-width:52px}.bottom button.active{color:#dfff55;background:#19394b}.shell.menu-open .sidebar{background:#0a273b}}
@media(prefers-reduced-motion:reduce){.tile,.nav button,.btn{transition:none!important}}

/* V62 — finition cohérente des 16 écrans du visuel de référence */
:root{--v62-ink:#071725;--v62-deep:#071e30;--v62-card:#102c40;--v62-lime:#dfff55;--v62-border:#35586a}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
.content{width:100%;margin:0 auto}.screen-intro{min-height:192px;border:1px solid #3a6274;border-radius:23px;padding:27px 31px;display:flex;justify-content:space-between;align-items:center;gap:15px;overflow:hidden;position:relative;margin-bottom:21px;background:radial-gradient(circle at 92% 12%,#286079 0%,transparent 44%),linear-gradient(115deg,#061a2b,#12384d 80%);box-shadow:0 20px 38px #0004}
.screen-intro:before{content:"";height:3px;position:absolute;left:0;right:0;top:0;background:linear-gradient(90deg,#dfff55 0%,#b7d739 35%,transparent 80%)}
.screen-intro-copy{z-index:1;max-width:670px}.screen-eyebrow{font-size:11px;letter-spacing:2px;color:#dfff55;font-weight:900}.screen-dot{font-size:8px;margin:0 5px}.screen-intro h2{font-size:clamp(25px,3vw,42px);font-weight:950;letter-spacing:-1.2px;margin:12px 0 6px;color:white}.screen-intro p{color:#c9dce7;font-size:14px;margin:0 0 16px;line-height:1.5}.screen-link{border:1px solid #dfff55;background:#dfff55;color:#071b2b;padding:10px 14px;border-radius:12px;min-height:42px;font-weight:850;cursor:pointer}.screen-link span{margin-left:8px}.screen-symbol{font-size:clamp(70px,11vw,140px);filter:drop-shadow(0 18px 20px #0006);opacity:.9;transform:rotate(-8deg);flex-shrink:0}
.content[data-screen="gps"] .screen-intro{background:radial-gradient(circle at 85% 30%,#245d46,transparent 44%),linear-gradient(120deg,#071d2f,#12334a)}
.content[data-screen="cols"] .screen-intro,.content[data-screen="map"] .screen-intro{background:radial-gradient(circle at 90% 10%,#416543,transparent 45%),linear-gradient(120deg,#081b2c,#12405a)}
.content[data-screen="ranking"] .screen-intro,.content[data-screen="budget"] .screen-intro{background:radial-gradient(circle at 90% 20%,#5c4d25,transparent 48%),linear-gradient(120deg,#071b2b,#133b4d)}
.content[data-screen="nutrition"] .screen-intro,.content[data-screen="training"] .screen-intro{background:radial-gradient(circle at 90% 20%,#275b43,transparent 48%),linear-gradient(120deg,#071b2b,#123d4c)}
.content[data-screen="messages"] .screen-intro,.content[data-screen="polls"] .screen-intro,.content[data-screen="agenda"] .screen-intro{background:radial-gradient(circle at 90% 20%,#345b76,transparent 48%),linear-gradient(120deg,#071b2b,#12394d)}
.content .card h3{font-size:clamp(17px,1.5vw,21px);line-height:1.3}.content .number{color:#e4ff82;font-variant-numeric:tabular-nums}.content .muted{color:#bdd0db}.content .grid{gap:14px}.content .actions{gap:9px;flex-wrap:wrap}.content .btn:focus-visible,.screen-link:focus-visible,.nav button:focus-visible,.bottom button:focus-visible{outline:3px solid #fff;outline-offset:3px}
.content .item{border-radius:13px;padding:13px}.content .note{border-radius:14px;border-color:#3c6173;background:#112e41;color:#d5e5ee}.content table{max-width:100%;display:block;overflow-x:auto}.content .route-map{border-radius:18px;overflow:hidden;border:1px solid #426477}
@media(max-width:700px){.screen-intro{padding:22px 19px;min-height:170px;margin-bottom:15px;border-radius:18px}.screen-intro h2{font-size:26px}.screen-intro p{font-size:13px}.screen-symbol{font-size:64px;opacity:.5;position:absolute;right:10px;bottom:10px}.screen-intro-copy{max-width:90%}.content .grid{gap:10px}}
@media(max-width:390px){.screen-intro-copy{max-width:100%}.screen-symbol{opacity:.16}.screen-intro{padding:18px 15px}.screen-eyebrow{letter-spacing:1px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* V67 · Cols et ascensions : déclinaison mobile de la maquette VELOCIMA */
.cols-intro{padding:22px 20px;border:1px solid #2b5266;border-radius:22px;background:linear-gradient(140deg,#09243d,#071626);margin-bottom:16px}.cols-intro h2{font-size:clamp(1.7rem,4vw,2.4rem);margin:7px 0}.cols-intro p{color:#c2d2df;margin:0}.cols-eyebrow{font-size:.73rem;letter-spacing:.1em;text-transform:uppercase;color:#d9fa48;font-weight:800}.cols-controls{display:grid;grid-template-columns:minmax(0,2fr) minmax(130px,1fr);gap:10px;margin-bottom:12px}.cols-search{display:flex;align-items:center;gap:8px;background:#102c42;border:1px solid #496577;border-radius:13px;padding:0 12px}.cols-search span{font-size:1.5rem;color:#d9fa48}.cols-search input{min-width:0;width:100%;border:0!important;background:transparent!important;box-shadow:none!important}.cols-controls select{min-width:0}.cols-modern{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:14px}.col-modern{padding:0!important;border:1px solid #33536a!important;border-radius:19px!important;overflow:hidden;background:linear-gradient(155deg,#102b40,#081a2b)!important}.col-featured{border-color:#d9fa48!important;box-shadow:0 0 0 1px #d9fa48}.col-card-top{display:flex;gap:12px;align-items:center;padding:16px}.col-icon{width:66px;height:66px;flex:0 0 66px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,#245b75,#122336);font-size:2rem}.col-main{flex:1;min-width:0}.col-main h3{font-size:1.1rem;margin:4px 0 10px;line-height:1.2}.col-region{color:#a9c1d0;font-size:.8rem}.col-quickstats{display:flex;flex-wrap:wrap;gap:10px;color:#d9fa48;font-size:.84rem}.col-quickstats b{color:#f4faff}.col-open{display:flex;justify-content:space-between;width:100%;border:0;border-top:1px solid #35566a;background:#102e44;color:#d9fa48;font-weight:800;padding:12px 16px;cursor:pointer}.col-detail-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.col-back{background:none;border:0;color:#d9fa48;font-weight:700;cursor:pointer}.col-hero-modern{padding:24px!important;border-radius:22px!important;background:linear-gradient(120deg,#143c53,#08192d)!important}.col-hero-modern h2{font-size:clamp(1.65rem,5vw,2.6rem);margin:12px 0}.col-hero-alt{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.col-hero-alt strong{font-size:2rem;color:#d9fa48}.col-hero-alt span{color:#d0e0e9;font-size:.83rem}.col-side-panel{margin-top:16px}.col-side-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;scrollbar-width:thin}.col-side-tabs button{white-space:nowrap;padding:10px 14px;border-radius:999px;background:#163348;color:#e2edf2;border:1px solid #3b586a;cursor:pointer}.col-side-tabs button.active{background:#d9fa48;color:#071626;border-color:#d9fa48;font-weight:800}.col-side-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.col-grade{padding:7px 10px;border-radius:10px;background:#d9fa48;color:#081727;font-size:.8rem;font-weight:800}.col-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:18px 0}.col-stat-grid>div{background:#0c273a;border:1px solid #2a4b60;border-radius:12px;padding:14px 8px;text-align:center}.col-stat-grid b{display:block;color:#d9fa48;font-size:1.2rem}.col-stat-grid small{display:block;color:#bed2df;font-size:.75rem;margin-top:4px}.col-profile-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.col-profile{max-width:100%;height:auto;background:#071b2c;border-radius:14px;padding:6px}.col-data-warning{font-size:.85rem;color:#d0e0e9;background:#193448;border-left:3px solid #d9fa48;padding:12px;border-radius:7px}@media(max-width:540px){.cols-controls{grid-template-columns:1fr}.col-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.col-icon{width:56px;height:56px;flex-basis:56px}.col-card-top{padding:12px}}

/* V69 - Provenance visible dans le catalogue */
.col-quality{display:inline-block;font-size:.74rem;font-weight:700;margin:5px 0 7px;padding:4px 8px;border-radius:20px;border:1px solid #718a95;color:#d5e7ed}.col-quality.documented{border-color:#d9fa48;color:#d9fa48}.col-quality.pending{color:#d1d9dd}.cols-controls select{min-width:0;max-width:100%}@media(max-width:650px){.cols-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cols-search{grid-column:1/-1}.cols-controls select{width:100%}}

/* V73 — Design system VELOCIMA d'après la plaquette fournie : bleu alpin, jaune citron, cartes lumineuses */
:root{--velo-bg:#041425;--velo-bg2:#082b48;--velo-surface:#09273f;--velo-surface2:#103b56;--velo-border:#3c6176;--velo-accent:#e1ff21;--velo-ink:#f7fcff;--velo-muted:#c2d7e3;--neon:#e1ff21}
html[data-velo-theme="contrast"]{--velo-bg:#010812;--velo-bg2:#082035;--velo-surface:#06192b;--velo-surface2:#14364b;--velo-border:#7494a6;--velo-accent:#f0ff40;--velo-muted:#f0f6fa;--neon:#f0ff40}
html[data-velo-theme="soft"]{--velo-bg:#092238;--velo-bg2:#124463;--velo-surface:#153b55;--velo-surface2:#20536c;--velo-border:#60869a;--velo-accent:#e2fa62;--velo-muted:#d7e7ef;--neon:#e2fa62}
body{background:radial-gradient(circle at 83% -10%,var(--velo-bg2),transparent 46%),var(--velo-bg);color:var(--velo-ink)}
.sidebar{width:268px;background:linear-gradient(180deg,#0b3552,var(--velo-bg) 90%);border-right:1px solid var(--velo-border);padding:16px 12px;max-height:100vh;position:sticky;top:0;overflow:auto;scrollbar-width:thin}
.brand{padding:13px 12px 23px;border-bottom:1px solid #b8dcff24;margin-bottom:15px}.brand b{font-size:27px;font-weight:1000;letter-spacing:-1.5px;color:#fff;text-shadow:0 2px 15px #071a2d}.brand small{font-size:11px;color:var(--velo-accent);font-weight:750}.brand .mount{color:var(--velo-accent);font-size:27px}
.nav{display:block}.nav-group{margin:0 0 16px}.nav-heading{font-size:10px;letter-spacing:1.8px;color:#9fbfd0;font-weight:900;padding:9px 12px 7px}.nav button{width:100%;display:flex;align-items:center;gap:11px;font-size:13px;min-height:43px;border-radius:12px;padding:9px 12px;color:#d9eaf3}.nav button span:first-child{font-size:20px;min-width:23px;text-align:center;margin:0}.nav button.active{background:var(--velo-accent);color:#071a2a;box-shadow:0 5px 18px #e1ff2133}.nav button:hover:not(.active){background:#24506b;color:#fff;transform:none}
.top{height:86px;background:#08283fe8;border-color:var(--velo-border);box-shadow:0 6px 22px #0002}.top h1{font-size:25px}.top small{color:var(--velo-accent)}.avatar{border:1px solid #517d8f;border-radius:50%;background:#113e57;padding:7px 12px;font-size:25px}
.content{max-width:1480px}.hero,.screen-intro{border:1px solid #4b8195;background:radial-gradient(circle at 93% 8%,#2e7e94 0%,transparent 36%),linear-gradient(115deg,#04192b 5%,#0b3857 78%);box-shadow:0 22px 44px #0005}.hero:before,.screen-intro:before{background:linear-gradient(90deg,var(--velo-accent),#baff30 45%,transparent)}
.hero h2,.screen-intro h2{font-weight:1000;letter-spacing:-1.3px}.hero p,.screen-intro p{color:#d3e7f2}.screen-eyebrow{color:var(--velo-accent)}
.card,.tile,.item,.colitem,.cockpit-group{background:linear-gradient(155deg,var(--velo-surface2),var(--velo-surface));border:1px solid var(--velo-border);box-shadow:0 8px 26px #0003}.card,.tile{border-radius:18px}.card .number,.colitem .metric,.cockpit-links button span{color:var(--velo-accent)}.muted,.card .muted{color:var(--velo-muted)}
.btn,.pill,.screen-link{background:var(--velo-accent);color:#06182a;border-radius:12px;font-weight:900}.btn.secondary{background:#20516b;color:white;border:1px solid #668b9b}.btn:hover,.tile:hover{filter:brightness(1.06)}
input,select,textarea{background:#082339;color:#fff;border:1px solid #608296;border-radius:12px}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid var(--velo-accent);outline-offset:3px}
.bar>span,.chart i,.stat-bar{background:linear-gradient(0deg,#8bbb18,var(--velo-accent))}.source-link,.provider a{color:var(--velo-accent)}
@media(max-width:700px){.sidebar{position:fixed;max-height:none}.top{height:76px}.content{padding:14px 13px 110px}.bottom{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;background:#061d31f5;border-top:1px solid #487389;padding:7px 6px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -8px 28px #0008}.bottom button{width:100%;min-width:0;min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:12px;padding:4px 2px;font-size:11px}.bottom button span{font-size:23px}.bottom button small{font-size:10px;line-height:1.2;white-space:nowrap}.bottom button.active{background:var(--velo-accent);color:#061a2a;font-weight:900}.shell.menu-open .sidebar{width:min(310px,87vw);z-index:30;overflow-y:auto}.screen-intro{min-height:172px}.card,.item{overflow-wrap:anywhere}}
@media(max-width:360px){.bottom button small{font-size:9px}.bottom button span{font-size:20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
