:root{--bg:#f7faf7;--bg-alt:#eef4ee;--bg-card:#fff;--bg-desktop:#d4e0d4;--text:#0f1a0f;--muted:#5a6b5a;--muted-light:#8a9b8a;--green-deep:#0b3d2e;--green:#1eb564;--green-soft:#1eb5641f;--gold:#d4a017;--gold-soft:#d4a01724;--red:#d63031;--red-soft:#d630311f;--line:#0f1a0f1a;--line-strong:#0f1a0f2e;--shadow-card:0 1px 4px #0000000f, 0 4px 16px #0000000a;--radius:16px;--radius-sm:10px;--radius-pill:999px;--app-width:100%;--app-max-width:480px;--page-pad:16px;--nav-height:66px;--fs-2xs:10px;--fs-xs:11.5px;--fs-sm:13px;--fs-base:14.5px;--fs-md:16px;--fs-lg:18px;--fs-xl:21px;--fs-2xl:25px;--fs-3xl:30px}@media (width<=380px){:root{--page-pad:12px}}@media (width>=600px){:root{--app-max-width:640px;--page-pad:22px;--nav-height:70px;--fs-2xs:11px;--fs-xs:12.5px;--fs-sm:14px;--fs-base:15.5px;--fs-md:17.5px;--fs-lg:20px;--fs-xl:23px;--fs-2xl:27px;--fs-3xl:33px}}@media (width>=850px){:root{--app-max-width:760px;--page-pad:26px;--nav-height:72px;--fs-2xs:11.5px;--fs-xs:13px;--fs-sm:14.5px;--fs-base:16px;--fs-md:18.5px;--fs-lg:21px;--fs-xl:25px;--fs-2xl:29px;--fs-3xl:35px}}@media (width>=1150px){:root{--app-max-width:840px;--page-pad:30px;--nav-height:74px;--fs-2xs:12px;--fs-xs:13.5px;--fs-sm:15px;--fs-base:16.5px;--fs-md:19px;--fs-lg:22px;--fs-xl:26px;--fs-2xl:30px;--fs-3xl:36px}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:16px}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;min-height:100dvh;font-family:DM Sans,Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;line-height:1.5}@media (width>=600px){body{background:var(--bg-desktop);justify-content:center;align-items:flex-start;display:flex}:is(body:has(.landing-page),body:has(.login-page-container),body:has(.onboarding-page-container)){background:var(--bg);display:block}}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit;max-width:100%}img,svg,video,canvas{max-width:100%;height:auto}table{max-width:100%}.card,.fanzone-card{box-sizing:border-box;max-width:100%}*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}#root{width:100%;min-height:100dvh}@media (width>=600px){#root{width:100%;max-width:var(--app-max-width);min-height:100dvh;margin:0 auto}}@media (width>=600px){:is(#root:has(.landing-page),#root:has(.login-page-container),#root:has(.onboarding-page-container)){width:100%;min-width:100%;max-width:100%;box-shadow:none;border-radius:0}}.fanzone-shell{background:var(--bg);flex-direction:column;width:100%;min-height:100dvh;display:flex;position:relative;overflow-x:clip}@media (width>=600px){.fanzone-shell{border-radius:0 0 24px 24px;overflow:hidden;box-shadow:0 0 0 1px #00000014,0 8px 36px #0000001f,inset 0 1px #ffffff4d}}.bottom-nav-wrapper{width:100%;max-width:var(--app-max-width);z-index:100;position:fixed;bottom:0;left:50%;transform:translate(-50%)}@media (width>=600px){.bottom-nav-wrapper{border-radius:0 0 24px 24px;overflow:hidden}}.page{padding-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom,0px))}.card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-card);border:1px solid var(--line)}.kpi-grid{padding:10px var(--page-pad) 0;grid-template-columns:repeat(2,1fr);gap:8px;display:grid}@media (width>=360px){.kpi-grid{grid-template-columns:repeat(3,1fr)}}@media (width>=420px){.kpi-grid{grid-template-columns:repeat(4,1fr)}}@media (width>=600px){.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}}.category-chips{padding:10px var(--page-pad) 0;scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:6px;display:flex;overflow-x:auto}.category-chips::-webkit-scrollbar{display:none}.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.hide-scrollbar::-webkit-scrollbar{display:none}.chip{font-size:var(--fs-xs,11.5px);border-radius:var(--radius-pill);white-space:nowrap;align-items:center;gap:3px;padding:3px 8px;font-weight:700;transition:all .15s;display:inline-flex;box-shadow:0 2px 5px #0000000f,inset 0 1px 1px #fff9}.chip--up{background:var(--green-soft);color:var(--green-deep);box-shadow:0 2px 6px #1eb5642e,inset 0 1px 1px #ffffffb3}.chip--down{background:var(--red-soft);color:var(--red);box-shadow:0 2px 6px #ef444429,inset 0 1px 1px #ffffffb3}.chip--neutral{color:var(--muted);background:#5a6b5a1a}.btn-primary{border-radius:var(--radius);background:var(--green-deep);color:#fff;width:100%;font-size:var(--fs-base,15px);letter-spacing:-.01em;border:none;justify-content:center;align-items:center;gap:8px;padding:15px 20px;font-weight:600;transition:opacity .15s,transform .1s;display:flex}.btn-primary:active{opacity:.85;transform:scale(.98)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-outline{border-radius:var(--radius);border:1.5px solid var(--line-strong);width:100%;color:var(--text);font-size:var(--fs-base,15px);background:0 0;justify-content:center;align-items:center;gap:8px;padding:14px 20px;font-weight:500;transition:background .15s;display:flex}.btn-outline:hover{background:var(--bg-alt)}.input{border-radius:var(--radius-sm);border:1.5px solid var(--line-strong);background:var(--bg-card);width:100%;color:var(--text);font-size:var(--fs-base,15px);appearance:none;outline:none;padding:14px 16px;transition:border-color .15s}.input:focus{border-color:var(--green)}.input::placeholder{color:var(--muted-light)}.badge-rank{border:1.5px solid var(--green-deep);min-width:36px;height:26px;color:var(--green-deep);font-size:var(--fs-xs,12px);background:var(--bg-card);border-radius:8px;justify-content:center;align-items:center;padding:0 8px;font-weight:700;display:inline-flex}.btn-pin{border-radius:var(--radius-pill);font-size:var(--fs-xs,12px);border:1.5px solid var(--green-deep);white-space:nowrap;flex-shrink:0;align-items:center;gap:5px;padding:6px 12px;font-weight:600;transition:all .15s;display:inline-flex}.btn-pin--off{color:var(--green-deep);background:0 0}.btn-pin--on{background:var(--green-deep);color:#fff}.section-title{font-size:var(--fs-xs,11.5px);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;font-weight:700}.empty-state{padding:36px var(--page-pad);text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:8px;display:flex}.empty-state__icon{margin-bottom:4px;font-size:30px}.empty-state__title{font-size:var(--fs-md,16px);color:var(--text);font-weight:600}.empty-state__body{font-size:var(--fs-sm,13.5px);line-height:1.5}.snapshot-date{text-align:center;font-size:var(--fs-xs,11px);color:var(--muted-light);padding:12px 0 4px}.truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@keyframes live-radar-pulse{0%{transform:scale(.95);box-shadow:0 0 #22c55ebf}70%{transform:scale(1.05);box-shadow:0 0 0 10px #22c55e00}to{transform:scale(.95);box-shadow:0 0 #22c55e00}}@keyframes live-badge-glow{0%,to{border-color:#4ade8059;box-shadow:0 0 8px #22c55e33}50%{border-color:#4ade80d9;box-shadow:0 0 16px #22c55e80}}.live-dot-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite live-radar-pulse}.live-badge-glow{animation:2.5s ease-in-out infinite live-badge-glow}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes red-bullet-blink{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 #dc2626b3}50%{opacity:.35;transform:scale(.85);box-shadow:0 0 5px 2px #dc262666}}.bullet-red-live{background-color:#dc2626;border-radius:50%;flex-shrink:0;width:6.5px;height:6.5px;animation:1.2s ease-in-out infinite red-bullet-blink;display:inline-block}.badge-en-cours{color:#b91c1c;letter-spacing:.02em;background-color:#ef44441a;border:1px solid #ef444447;border-radius:4px;align-items:center;gap:4.5px;padding:2px 7px;font-size:10px;font-weight:800;display:inline-flex}@keyframes live-liseret-pulse{0%,to{border-color:#fca5a5;box-shadow:0 0 #ef4444bf,0 2px 5px #b91c1c59}50%{border-color:#fff;box-shadow:0 0 0 3.5px #ef44444d,0 2px 10px #dc262680}}.badge-tour-en-cours{text-transform:uppercase;color:#fff;letter-spacing:.02em;background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);border:1px solid #fca5a5;border-radius:4px;flex-shrink:0;align-items:center;gap:4.5px;padding:1.5px 7px;font-size:9.5px;font-weight:700;animation:1.8s ease-in-out infinite live-liseret-pulse;display:inline-flex}.bullet-white-live{background-color:#fff;border-radius:50%;flex-shrink:0;width:5.5px;height:5.5px;animation:1.2s ease-in-out infinite red-bullet-blink;display:inline-block}@keyframes green-bullet-pulse{0%,to{transform:scale(1);box-shadow:0 0 #1eb564bf}50%{transform:scale(1.15);box-shadow:0 0 0 4.5px #1eb56400}}.bullet-green-pulse{background-color:var(--green,#1eb564);border-radius:50%;flex-shrink:0;width:6.5px;height:6.5px;animation:1.6s ease-in-out infinite green-bullet-pulse;display:inline-block}@keyframes bellRadarPulse{0%{box-shadow:0 0 #f5c038d9,0 2px 6px #00000080}70%{box-shadow:0 0 0 7px #f5c03800,0 2px 6px #00000080}to{box-shadow:0 0 #f5c03800,0 2px 6px #00000080}}@keyframes bellChimeSwing{0%,to{transform:rotate(0)}6%,18%{transform:rotate(13deg)}12%,24%{transform:rotate(-13deg)}30%{transform:rotate(6deg)}36%{transform:rotate(-6deg)}42%{transform:rotate(0)}}.bell-button-has-unread{background:radial-gradient(circle,#1c5a42f2 0%,#0c261ce6 100%)!important;border-color:#f5c038d9!important;box-shadow:0 0 16px #d4af3773,0 3px 12px #00000073!important}.bell-svg-animated{transform-origin:top;animation:4.5s ease-in-out infinite bellChimeSwing}.bell-badge-radar{animation:2s cubic-bezier(.4,0,.6,1) infinite bellRadarPulse}.notif-modal-backdrop{-webkit-backdrop-filter:blur(10px);background:#0b1a12b8;justify-content:center;align-items:flex-end;padding:0;transition:opacity .2s;display:flex;position:fixed;inset:0;z-index:1000!important}@media (width>=600px){.notif-modal-backdrop{align-items:center;padding:24px}}.notif-modal-container{width:100%;max-width:var(--app-max-width,560px);background:var(--bg-page,#f7faf7);max-height:88vh;padding:18px 18px max(24px, env(safe-area-inset-bottom,20px));border:1px solid #fff6;border-radius:24px 24px 0 0;flex-direction:column;display:flex;box-shadow:0 -8px 36px #00000059}@media (width>=600px){.notif-modal-container{border-radius:24px;max-height:82vh;padding:22px 24px 24px;box-shadow:0 24px 64px #0006,0 0 0 1px #ffffff26}}.notif-card-item{transition:transform .12s,background .15s,box-shadow .15s}.notif-card-item:hover{transform:translateY(-1px)}.notif-delete-btn{opacity:.45;transition:opacity .15s,transform .12s,color .15s}.notif-delete-btn:hover{opacity:1;transform:scale(1.15);color:#ef4444!important}
