:root{
  --bg:#0b1015;--panel:#141b22;--panel2:#18222c;--text:#f4f7f8;--muted:#9eabb6;--line:#2b3945;
  --accent:#8cd63f;--accent2:#badf73;--warning:#f0b43c;--danger:#ec654f;--orange:#ee8d32;--good:#7bd262;
  --shadow:0 14px 40px rgba(0,0,0,.23);--radius:20px;
}
*{box-sizing:border-box} html{background:var(--bg);color-scheme:dark} body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 80% -10%,#1e3325 0,transparent 34%),var(--bg);color:var(--text)}
button,input{font:inherit}.topbar{max-width:1240px;margin:0 auto;padding:38px 22px 18px;display:flex;justify-content:space-between;gap:20px;align-items:center}.eyebrow{color:var(--accent);font-size:.78rem;font-weight:800;letter-spacing:.16em}.topbar h1{margin:.25rem 0 .25rem;font-size:clamp(2rem,5vw,3.55rem);line-height:1.02}.topbar p{margin:0;color:var(--muted)}
main{max-width:1240px;margin:0 auto;padding:12px 22px 50px}.panel{background:linear-gradient(180deg,rgba(255,255,255,.025),transparent),var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;margin:18px 0}.hero-panel{padding:16px}.dropzone{min-height:210px;border:1.5px dashed #506171;border-radius:16px;background:rgba(255,255,255,.018);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding:24px;cursor:pointer;transition:.2s}.dropzone:hover,.dropzone.dragover{border-color:var(--accent);background:rgba(140,214,63,.06)}.dropzone input{display:none}.drop-icon{font-size:2.8rem;color:var(--accent);line-height:1}.dropzone strong{font-size:1.2rem}.dropzone span:not(.drop-icon),.dropzone small{color:var(--muted)}.file-info{padding:12px 6px 2px}.muted{color:var(--muted)}.hidden{display:none!important}
.kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:18px 0}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:18px;min-width:0}.kpi span{display:block;color:var(--muted);font-size:.86rem}.kpi strong{display:block;font-size:clamp(1.55rem,3vw,2.25rem);margin:3px 0;white-space:nowrap}.kpi small{color:var(--muted)}
.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-title-row h2{margin:0 0 4px;font-size:1.12rem}.section-title-row p{margin:0}.wrap-row{flex-wrap:wrap}.status-badge{border-radius:999px;padding:8px 12px;background:#24303a;font-weight:800;font-size:.86rem}.battery-shell{height:38px;margin:22px 0 7px;border:2px solid #72818d;border-radius:10px;padding:4px;position:relative}.battery-shell:after{content:"";position:absolute;right:-9px;top:10px;width:6px;height:14px;background:#72818d;border-radius:0 4px 4px 0}.battery-fill{height:100%;border-radius:5px;background:var(--good);width:0;transition:width .45s ease}.battery-scale{display:flex;justify-content:space-between;color:#74828d;font-size:.75rem}.charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.charts-grid .panel{margin:0}canvas{width:100%;display:block;margin-top:14px;background:#10171d;border-radius:12px}
.params-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.param-card{border:1px solid var(--line);background:var(--panel2);border-radius:14px;padding:13px}.param-card label{display:block;font-weight:700;font-size:.88rem;margin-bottom:8px}.input-row{display:flex;align-items:center;gap:8px}.input-row input{width:100%;min-width:0;border:1px solid #3a4a56;background:#0f161c;color:var(--text);border-radius:9px;padding:10px 11px;outline:none}.input-row input:focus{border-color:var(--accent)}.unit{color:var(--muted);font-size:.82rem;white-space:nowrap}.param-desc{color:var(--muted);font-size:.76rem;margin-top:7px;line-height:1.35}.footnote{font-size:.8rem;color:#8e9aa4;margin:14px 0 0}.param-actions,.table-actions{display:flex;gap:9px;flex-wrap:wrap}button{border:0;border-radius:11px;padding:10px 14px;cursor:pointer;font-weight:800}.primary{background:var(--accent);color:#122008}.secondary,.ghost{background:#24303a;color:var(--text);border:1px solid #3a4b58}.ghost{background:transparent}.primary:hover{filter:brightness(1.06)}.secondary:hover,.ghost:hover{background:#2d3b47}
.table-wrap{overflow:auto;margin-top:16px;max-height:570px;border:1px solid var(--line);border-radius:13px}table{border-collapse:separate;border-spacing:0;width:100%;font-variant-numeric:tabular-nums;font-size:.86rem}th,td{padding:10px 11px;border-bottom:1px solid #24313b;text-align:right;white-space:nowrap}th{position:sticky;top:0;z-index:2;background:#202b35;color:#d9e2e8;font-size:.76rem;text-transform:uppercase;letter-spacing:.035em}th:first-child,td:first-child{text-align:center}td.mode{text-align:center;font-weight:800}.row-turbo td.mode{color:#ffab55}.row-critical{background:rgba(236,101,79,.07)}
.switch{position:relative;width:48px;height:28px;flex:0 0 auto}.switch input{display:none}.switch span{display:block;width:100%;height:100%;border-radius:99px;background:#35434e;cursor:pointer;position:relative;transition:.2s}.switch span:after{content:"";position:absolute;width:20px;height:20px;left:4px;top:4px;border-radius:50%;background:white;transition:.2s}.switch input:checked+span{background:var(--accent)}.switch input:checked+span:after{transform:translateX(20px)}.recharge-result{margin-top:15px;padding:14px;background:#10171d;border-radius:12px;line-height:1.55}.warnings{margin-top:12px;padding:12px 14px;border:1px solid rgba(240,180,60,.45);background:rgba(240,180,60,.08);color:#f5d58d;border-radius:12px}.warnings p{margin:4px 0}.formula-panel details{cursor:pointer}.formula-panel summary{font-weight:800}.formula-content{margin-top:14px;color:#c8d1d7;line-height:1.55}.formula-content code{display:block;background:#0e151a;border:1px solid var(--line);padding:10px 12px;border-radius:9px;margin:8px 0;overflow:auto;color:#dfffb9}footer{text-align:center;color:#677681;font-size:.78rem;padding:0 20px 28px}
@media(max-width:980px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.params-grid{grid-template-columns:repeat(2,1fr)}.charts-grid{grid-template-columns:1fr}}
@media(max-width:620px){.topbar{padding-top:24px;align-items:flex-start}.topbar p{font-size:.9rem}.kpi-grid{grid-template-columns:repeat(2,1fr)}.kpi:last-child{grid-column:span 2}.params-grid{grid-template-columns:1fr}.panel{padding:16px;border-radius:16px}.dropzone{min-height:180px}.wrap-row{align-items:flex-start}.table-actions,.param-actions{width:100%}.table-actions button,.param-actions button{flex:1}.topbar .ghost{display:none!important}}

/* V1.1 — accueil épuré + menu paramètres */
.top-actions{display:flex;align-items:center;gap:10px;position:relative}.menu-btn{width:46px;height:46px;padding:0;border-radius:50%;background:#24303a;color:var(--text);border:1px solid #3a4b58;font-size:1.8rem;line-height:1;display:grid;place-items:center}.menu-btn:hover{background:#2d3b47}.app-menu{position:absolute;right:0;top:54px;z-index:40;min-width:210px;padding:7px;background:#1b252e;border:1px solid #344551;border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.4)}.app-menu button{width:100%;text-align:left;background:transparent;color:var(--text);padding:12px 13px;font-weight:700}.app-menu button:hover{background:#26343f}.result-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin:28px 2px 12px}.result-heading h2{font-size:clamp(1.55rem,4vw,2.5rem);margin:.2rem 0 .25rem;line-height:1.08;overflow-wrap:anywhere}.result-heading p{margin:0}.change-gpx{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:11px;padding:10px 14px;cursor:pointer;font-weight:800;background:#24303a;color:var(--text);border:1px solid #3a4b58}.change-gpx:hover{background:#2d3b47}
.modal-backdrop{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.62);backdrop-filter:blur(3px)}.drawer{position:fixed;z-index:70;right:0;top:0;height:100dvh;width:min(680px,100%);overflow:auto;background:#10171d;border-left:1px solid #344551;box-shadow:-24px 0 70px rgba(0,0,0,.45);padding:24px}.drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;position:sticky;top:-24px;margin:-24px -24px 0;padding:24px;background:rgba(16,23,29,.96);backdrop-filter:blur(10px);z-index:2;border-bottom:1px solid rgba(52,69,81,.55)}.drawer-header h2{margin:.2rem 0 0;font-size:1.7rem}.drawer-intro{margin:20px 0 0}.close-btn{width:42px;height:42px;border-radius:50%;padding:0;font-size:1.8rem;line-height:1;background:#24303a;color:var(--text);border:1px solid #3a4b58}.drawer .params-grid{grid-template-columns:repeat(2,1fr);margin-top:18px}.drawer-actions{position:sticky;bottom:-24px;margin:22px -24px -24px;padding:15px 24px 24px;background:linear-gradient(180deg,rgba(16,23,29,.15),#10171d 22%);display:flex;gap:10px}.drawer-actions button{flex:1}.drawer .formula-content{margin-top:24px}.drawer .formula-content code{white-space:normal;overflow-wrap:anywhere}
body.modal-open{overflow:hidden}
@media(max-width:620px){.topbar{align-items:center}.brand-block{min-width:0}.topbar h1{font-size:clamp(1.75rem,8vw,2.4rem)}.topbar p{display:none}.top-actions{margin-top:2px}.menu-btn{width:42px;height:42px}.result-heading{align-items:flex-start;flex-direction:column}.change-gpx{width:100%}.drawer{padding:18px}.drawer-header{top:-18px;margin:-18px -18px 0;padding:18px}.drawer .params-grid{grid-template-columns:1fr}.drawer-actions{bottom:-18px;margin:20px -18px -18px;padding:14px 18px 18px;flex-direction:column}.topbar .ghost{display:none!important}}
.dropzone.has-file{min-height:116px;flex-direction:row;gap:12px;text-align:left;justify-content:flex-start;padding:18px 22px}.dropzone.has-file .drop-icon{font-size:2rem}.dropzone.has-file span:not(.drop-icon),.dropzone.has-file small{display:none}.dropzone.has-file strong{font-size:0}.dropzone.has-file strong:after{content:"Choisir un autre GPX";font-size:1rem}.file-info{font-weight:700;color:#cfd8de}
@media(max-width:620px){.dropzone.has-file{min-height:96px}.dropzone.has-file strong:after{content:"Choisir un autre GPX";font-size:1rem}}
