:root{--bg:#02070d;--panel:#07111a;--panel2:#0b1823;--line:#1a2a37;--blue:#0a67e8;--blue2:#0d89ff;--text:#f7f9fb;--muted:#91a2af;--danger:#ef2e35}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{background:radial-gradient(circle at 50% -20%,#0d2840 0,transparent 35%),#02070d}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.topbar{position:sticky;top:0;z-index:30;display:flex;justify-content:space-between;align-items:center;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;background:#02070de8;border-bottom:1px solid #16232d;backdrop-filter:blur(22px)}.brand-wrap{display:flex;gap:10px;align-items:center}.brand-wrap>div:last-child{display:flex;flex-direction:column}.brand-wrap b{font-size:17px}.brand-wrap span{font-size:10px;color:var(--muted)}.ford-oval{border:2px solid #fff;border-radius:50%;padding:5px 15px;font-family:Georgia,serif;font-weight:700;font-style:italic;background:linear-gradient(#176bc9,#063d85);box-shadow:inset 0 0 0 2px #ffffff2c}.top-right{display:flex;align-items:center;gap:8px;color:#c9d4dd;font-size:12px}.icon-button{border:0;background:#13212d;color:#fff;width:34px;height:34px;border-radius:11px}main{max-width:820px;margin:auto;padding:14px 14px 110px}.view{display:none}.view.active{display:block}.card,.dashboard-card{background:linear-gradient(145deg,#0a1722,#050c12);border:1px solid #1c2c38;border-radius:24px;box-shadow:0 18px 45px #0008;margin-bottom:14px}.dashboard-card{padding:18px;display:grid;grid-template-columns:1.2fr .8fr;gap:8px;overflow:hidden;position:relative}.dashboard-card:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent,#0a72ff 30%,#0a72ff 70%,transparent)}.dash-copy{align-self:center}.eyebrow,.label{color:#1c85ff;font-size:11px;font-weight:800;letter-spacing:.12em}.dash-copy h1{font-size:25px;margin:8px 0 5px}.dash-copy p:last-child{color:var(--muted);margin:0}.speedometer{width:146px;height:146px;position:relative;justify-self:end;display:grid;place-items:center}.gauge-ring{position:absolute;inset:5px;border-radius:50%;background:conic-gradient(from 220deg,#0a67e8 0 215deg,#1b2a36 215deg 280deg,transparent 280deg);mask:radial-gradient(circle,transparent 58%,#000 60%);-webkit-mask:radial-gradient(circle,transparent 58%,#000 60%)}.gauge-ring:after{content:"0   20   40   60   80   100";position:absolute;inset:19px;color:#c9d7e1;font-size:8px;word-spacing:9px;transform:rotate(-18deg)}.needle{position:absolute;width:3px;height:54px;background:#e33;bottom:50%;left:50%;transform-origin:50% 100%;transform:rotate(-130deg);border-radius:4px;transition:transform .3s}.speed-value{text-align:center;z-index:2}.speed-value span{display:block;font-size:43px;font-weight:800}.speed-value small{font-size:10px;color:#aebcc6}.dash-metrics{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:5px}.dash-metrics div{background:#08121a;border:1px solid #12212d;border-radius:14px;padding:10px;text-align:center}.dash-metrics small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase}.dash-metrics b{font-size:16px}.app-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.app-tile{border:1px solid #172836;background:linear-gradient(145deg,#0c1822,#071018);color:#fff;border-radius:21px;min-height:118px;padding:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;box-shadow:0 12px 25px #0005}.app-tile:active{transform:scale(.97)}.app-tile img{width:58px;height:58px;border-radius:15px}.app-tile span{font-size:13px}.card{padding:16px}.card h2{margin:0 0 12px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.stats div{text-align:center}.stats b{display:block;font-size:17px}.stats small{font-size:10px;color:var(--muted)}.vehicle-summary h2{font-size:16px}.section-head{display:flex;align-items:center;gap:10px;margin:3px 0 14px}.section-head h1{font-size:25px}.back{width:39px;height:39px;border:0;border-radius:13px;background:#101d27;color:white;font-size:28px}.solo-dashboard{grid-template-columns:1fr;text-align:center}.speedometer.large{justify-self:center;width:210px;height:210px}.speedometer.large .needle{height:77px}.speedometer.large .speed-value span{font-size:64px}.primary,.secondary,.danger{border:0;border-radius:14px;padding:13px 16px;font-weight:750}.primary{background:linear-gradient(#0c73f7,#0858c9);color:white}.secondary{background:#14222e;color:white;border:1px solid #253746}.danger{background:var(--danger);color:white}.subtle{background:#321318;margin-top:10px;width:100%}.compact{padding:10px 14px}.destination{display:flex;gap:8px}.destination input,.settings-list input,.settings-list select{width:100%;background:#050d14;border:1px solid #21313d;color:#fff;border-radius:13px;padding:13px}.now-playing{width:100%;display:flex;align-items:center;gap:14px;text-align:left;color:#fff}.now-playing img{width:72px;height:72px;border-radius:17px}.now-playing div{flex:1}.now-playing small{color:#1b87ff;font-weight:800}.now-playing h2{margin:3px 0}.now-playing p{margin:0;color:var(--muted);font-size:12px}.now-playing>span{font-size:25px}.media-list{padding:0;overflow:hidden}.media-list button{width:100%;border:0;border-bottom:1px solid #15242f;background:none;color:white;padding:12px 15px;display:flex;align-items:center;gap:12px;text-align:left}.media-list button:last-child{border:0}.media-list img{width:42px;height:42px;border-radius:11px}.media-list span{display:flex;flex-direction:column;flex:1}.media-list small{color:var(--muted);margin-top:2px}.media-list em{font-style:normal;font-size:24px;color:#8796a2}.car-card{display:flex;align-items:center;gap:15px}.car-visual{width:130px;height:82px;border-radius:20px;background:linear-gradient(145deg,#0e81f1,#062d55);display:grid;place-items:center;font-weight:900;letter-spacing:.18em}.muted,.hint{color:var(--muted);font-size:12px}.list{display:flex;flex-direction:column;gap:8px}.spaced{margin-top:16px}.list-item{display:flex;justify-content:space-between;gap:12px;padding:12px;border-radius:13px;background:#050d14;border:1px solid #13212b}.list-item small{display:block;color:var(--muted);margin-top:3px}.list-item .right{text-align:right;white-space:nowrap}.settings-list label{display:block;color:#b2c0ca;font-size:13px;margin:12px 0}.settings-list input,.settings-list select{margin-top:6px}.button-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.file-button{display:flex;justify-content:center;align-items:center;text-align:center}.file-button input{display:none}.bottom-nav{position:fixed;z-index:40;left:0;right:0;bottom:0;display:flex;justify-content:space-around;padding:8px 7px calc(8px + env(safe-area-inset-bottom));background:#02070df2;border-top:1px solid #172631;backdrop-filter:blur(22px)}.bottom-nav button{border:0;background:none;color:#738590;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:20px}.bottom-nav span{font-size:9px}.bottom-nav .selected{color:#1585ff}.toast{position:fixed;z-index:60;left:50%;bottom:92px;transform:translate(-50%,30px);opacity:0;transition:.25s;background:#ecf5ff;color:#061a2b;border-radius:14px;padding:12px 16px;text-align:center;max-width:90%}.toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:600px){.app-grid{grid-template-columns:repeat(4,1fr);gap:8px}.app-tile{min-height:94px;padding:8px}.app-tile img{width:48px;height:48px}.app-tile span{font-size:11px}.dashboard-card{grid-template-columns:1fr .7fr}.speedometer{width:122px;height:122px}.speed-value span{font-size:36px}.dash-copy h1{font-size:20px}.dash-metrics b{font-size:14px}.appointment-actions>*{flex:1}}@media(max-width:380px){.app-grid{grid-template-columns:repeat(2,1fr)}.dashboard-card{grid-template-columns:1fr}.speedometer{justify-self:center}.dash-metrics{grid-template-columns:repeat(2,1fr)}}

/* Ford Companion v3 — compteur de vitesse */
.speedometer{--speed-angle:0deg;isolation:isolate;border-radius:50%;background:radial-gradient(circle at 50% 42%,#132b3d 0 12%,#07131d 42%,#02070b 72%);box-shadow:inset 0 0 0 1px #31506a,inset 0 0 24px #000,0 10px 28px #000b,0 0 18px #0879ff20;overflow:hidden}
.gauge-bezel{position:absolute;inset:2px;border-radius:50%;border:4px solid #101f2b;box-shadow:inset 0 0 0 1px #557086,0 0 0 1px #000;z-index:0}
.gauge-ticks{position:absolute;inset:11px;border-radius:50%;background:repeating-conic-gradient(from 230deg,#a9c1d2 0 1deg,transparent 1deg 8.125deg);-webkit-mask:radial-gradient(circle,transparent 66%,#000 67% 72%,transparent 73%);mask:radial-gradient(circle,transparent 66%,#000 67% 72%,transparent 73%);z-index:1}
.gauge-ring{position:absolute;inset:16px;border-radius:50%;background:conic-gradient(from 230deg,#138bff 0deg,#0867e8 var(--speed-angle),#162633 var(--speed-angle) 260deg,transparent 260deg);-webkit-mask:radial-gradient(circle,transparent 72%,#000 73% 82%,transparent 83%);mask:radial-gradient(circle,transparent 72%,#000 73% 82%,transparent 83%);filter:drop-shadow(0 0 6px #0a7cff88);z-index:2}
.gauge-ring:after{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 450deg,transparent 0 42deg,#ff3b30 42deg 70deg,transparent 70deg);opacity:.9}
.gauge-label{position:absolute;font-size:7px;font-weight:700;color:#b9cad6;text-shadow:0 1px 2px #000;z-index:4}.g0{left:21%;bottom:22%}.g50{left:20%;top:24%}.g100{right:17%;top:25%}.g150{right:17%;bottom:23%;color:#ff736b}
.needle{position:absolute;width:100%;height:100%;left:0;top:0;transform-origin:50% 50%;transform:rotate(-130deg);transition:transform .35s cubic-bezier(.2,.8,.2,1);z-index:6;background:none}
.needle i{position:absolute;left:calc(50% - 1.5px);top:17%;width:3px;height:38%;border-radius:3px;background:linear-gradient(#ff625b,#e51d23 72%,#fff0);box-shadow:0 0 8px #ff3030aa;clip-path:polygon(50% 0,100% 100%,0 100%)}
.needle-cap{position:absolute;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#e7f3fa,#506a7d 33%,#0b151d 70%);border:2px solid #02070d;box-shadow:0 0 0 2px #41596b,0 2px 8px #000;z-index:7}
.speed-value{z-index:5;margin-top:28px}.speed-value span{font-variant-numeric:tabular-nums;line-height:.9;text-shadow:0 0 12px #087cff55}.speed-value small{display:block;margin-top:7px;letter-spacing:.08em;text-transform:uppercase}.speed-value small em{font-style:normal;color:#1c8cff}
.speedometer.large .gauge-label{font-size:10px}.speedometer.large .needle i{width:4px;left:calc(50% - 2px)}.speedometer.large .needle-cap{width:22px;height:22px}.speedometer.large .speed-value{margin-top:39px}
@media(max-width:600px){.speedometer .gauge-label{font-size:6px}.speedometer.large .gauge-label{font-size:9px}}

.speedometer.large .needle{width:100%;height:100%;left:0;top:0;bottom:auto}.speedometer.large .speed-value span{font-size:64px}
