@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800;900&family=DM+Sans:wght@400;500;600;700;800&display=swap');
:root{--bg:#07131f;--panel:#101f2d;--line:#263846;--card:#142535;--lime:#c8ff5a;--cyan:#55dfe6;--orange:#ffa85c;--muted:#93a5b3;--white:#f2f8fa;--danger:#ff7478}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--white);font:15px/1.55 'DM Sans',system-ui,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select{outline-offset:3px}button{cursor:pointer}img{max-width:100%}h1,h2,h3,h4,p{margin:0}h1,h2,h3{font-family:'Barlow Condensed','Arial Narrow',sans-serif;line-height:1.06;text-transform:uppercase;letter-spacing:.01em}h1{font-size:clamp(3rem,6.5vw,6.9rem);font-weight:900}h2{font-size:clamp(2rem,3.5vw,3.5rem)}h3{font-size:1.6rem}p{margin:0 0 12px}small,.small{font-size:.78rem}.subtle{color:var(--muted)}.container{width:min(1310px,calc(100% - 44px));margin-inline:auto}.page-pad{padding:58px 0 95px}.eyebrow{font-weight:800;font-size:.71rem;letter-spacing:.2em;text-transform:uppercase;color:var(--lime)}.topbar{position:sticky;top:0;z-index:1100;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px max(24px,calc((100vw - 1310px)/2));background:#07131ff2;border-bottom:1px solid #1d3243;backdrop-filter:blur(14px)}.brand{font-family:'Barlow Condensed',sans-serif;font-size:1.5rem;letter-spacing:.025em;font-weight:900;display:inline-flex;align-items:center;white-space:nowrap}.brand>span:not(.brand-mark){color:var(--lime)}.brand small{font-family:'DM Sans',sans-serif;font-size:.52rem;font-weight:800;letter-spacing:.23em;margin-left:10px;color:var(--muted)}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:35px;height:35px;background:var(--lime);color:#05111c;border-radius:8px;font-size:1.8rem;margin-right:9px}.topbar nav{display:flex;align-items:center;gap:24px;font-size:.85rem;font-weight:700}.topbar nav>a:not(.btn){color:#bbccd3}.topbar nav a:hover{color:var(--lime)}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--lime);background:var(--lime);color:#07131d;font-weight:800;border-radius:11px;padding:14px 20px;line-height:1.2;min-height:45px;transition:.2s transform,.2s background}.btn:hover{transform:translateY(-2px);background:#dfff92}.btn-small{padding:9px 13px;min-height:34px;font-size:.79rem}.btn.outline{background:transparent;color:var(--white);border-color:#506674}.btn.outline:hover{color:var(--lime);border-color:var(--lime)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#211017}.btn.danger.outline{background:transparent;color:var(--danger)}.btn[disabled]{opacity:.4;cursor:not-allowed;transform:none}.btn.full{width:100%}.footer{border-top:1px solid var(--line);padding:30px max(24px,calc((100vw - 1310px)/2));color:#91a2ae;display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:.78rem}.footer strong{color:var(--lime)}
/* Marketing */
.hero{overflow:hidden;position:relative;min-height:640px;background:radial-gradient(ellipse 50% 50% at 73% 51%,#1f544f 0%,transparent 85%),linear-gradient(135deg,#0e2637,#05111c 70%)}.hero:before{position:absolute;content:'';inset:0;opacity:.17;background:linear-gradient(110deg,transparent 45%,#7cd0ce 46%,transparent 46.3%),repeating-linear-gradient(90deg,transparent,transparent 80px,#426879 81px)}.hero-inner{position:relative;z-index:1;min-height:640px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:10px}.hero-copy{padding:75px 0}.hero-copy h1{margin:20px 0}.hero-copy h1 em{font-style:normal;color:var(--lime)}.hero-copy p{max-width:540px;color:#b6c5ce;font-size:1.03rem;line-height:1.8}.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}.hero-art{width:100%;height:100%;position:relative;min-height:500px}.hero-art svg{width:100%;height:100%;min-height:500px;filter:drop-shadow(0 25px 45px #0006)}.hero-art .float-card{position:absolute;right:3%;top:18%;background:#152d34de;border:1px solid #5c878b;backdrop-filter:blur(6px);padding:16px 21px;border-radius:15px;font-size:.73rem}.float-card strong{font-family:'Barlow Condensed',sans-serif;font-size:2rem;display:block;color:var(--lime)}.hero-bottom{border-top:1px solid #344b58;background:#0b1b27}.hero-bottom .container{display:flex;gap:20px;flex-wrap:wrap;justify-content:space-between;padding:16px 0}.hero-bottom span{font-size:.71rem;letter-spacing:.11em;text-transform:uppercase;color:#a5bcc5;font-weight:800}.section{padding:85px 0}.section-alt{background:#0c1b29}.section-head{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:34px}.section-head p{max-width:500px;color:var(--muted)}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.feature-card{background:linear-gradient(140deg,#142837,#0c1e2a);border:1px solid #2c4859;border-radius:18px;padding:27px;min-height:195px}.feature-card .f-icon{display:flex;align-items:center;justify-content:center;background:#c8ff5a14;border:1px solid #c8ff5a40;color:var(--lime);font-size:1.6rem;width:48px;height:48px;border-radius:13px;margin-bottom:20px}.feature-card h3{margin-bottom:11px}.feature-card p{font-size:.86rem;color:var(--muted)}.plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.plan-card{background:#112431;border:1px solid #304859;border-radius:21px;padding:30px;min-height:395px;display:flex;flex-direction:column}.plan-card:nth-child(2){border:1px solid var(--lime);box-shadow:0 0 42px #b8ff3320}.plan-card h3{font-size:2.5rem;margin-top:16px}.plan-card .price{font:800 3rem 'Barlow Condensed';color:var(--lime);margin:18px 0 0}.plan-card .price small{font:500 .83rem 'DM Sans';color:#b1bec7}.plan-card p{color:#b2c6d0}.plan-card ul{list-style:none;padding:0;margin:18px 0 26px;flex:1}.plan-card li{margin:9px 0;color:#bdc9d2;font-size:.83rem}.plan-card li:first-letter{color:var(--lime)}.plan-card form .btn{width:100%}.intro-strip{display:grid;grid-template-columns:1fr 1fr;gap:35px;align-items:center}.mock-mini{height:330px;border-radius:20px;overflow:hidden;background:#163041;border:1px solid #3b5360;position:relative}.mock-mini .mini-map{position:absolute;inset:0;background:radial-gradient(ellipse at 70% 30%,#2c6c68,transparent 55%),repeating-linear-gradient(30deg,transparent 0 48px,#4d768354 49px 52px,transparent 53px 100px),#162c3a}.mini-route{position:absolute;inset:20px;width:90%;height:90%}.mini-map .tracker-icon{position:absolute;top:50%;left:40%;font-size:2.3rem;filter:drop-shadow(0 5px 6px #0006)}.mini-panel{position:absolute;bottom:18px;left:18px;right:18px;display:flex;justify-content:space-between;border:1px solid #54737b;background:#091d2bde;padding:18px;border-radius:14px}.mini-panel strong{color:var(--lime)}
/* Forms & app */
.auth-shell{min-height:calc(100vh - 160px);padding:55px 18px;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse 65% 65% at 20% 20%,#173b3f,transparent)}.auth-card{width:min(530px,100%);padding:42px;background:#101f2e;border:1px solid #365464;border-radius:23px}.auth-card h1{font-size:3.6rem;margin:9px 0 16px}.auth-card p{color:var(--muted)}.auth-card>p:last-child{margin-top:16px}.form-stack{display:flex;flex-direction:column;gap:15px;margin:20px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-stack label,.form-row label{display:flex;flex-direction:column;gap:7px;font-size:.75rem;font-weight:700;color:#b4c5cc}.form-stack input,.form-stack select,.form-row input,.form-row select,select,.riders-side input,.inline-plan input{width:100%;background:#0b1c29;color:#ecf5f7;border:1px solid #395164;border-radius:10px;padding:12px 13px;min-width:0}.form-stack .checkline{display:flex;flex-direction:row;align-items:start;font-size:.8rem;font-weight:400}.checkline input{width:18px;flex-shrink:0;margin:3px}.form-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.form-row input{flex:1;min-width:100px}.form-row select{width:auto}.notice{border-radius:11px;padding:13px 15px;margin:15px 0;font-size:.85rem}.notice.ok{background:#17543e;color:#d7ffe8}.notice.bad{background:#5e292f;color:#ffe4e5}.notice.warn{background:#3c3220;color:#ffe0a8}.page-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:32px}.page-title h1{font-size:clamp(3rem,5vw,5rem);margin:9px 0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:18px}.stat{background:#122433;border:1px solid var(--line);border-radius:16px;padding:22px}.stat small{display:block;color:#93aab6;font-weight:700;letter-spacing:.1em}.stat strong{font:900 2.8rem 'Barlow Condensed';color:var(--lime)}.panel{border:1px solid #304354;background:#102130;border-radius:19px;padding:25px}.panel h2{font-size:2rem;margin-bottom:15px}.panel h3{margin-bottom:15px}.panel.narrow{max-width:600px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:19px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:14px}.section-title h2{margin:0}.section-title p{color:var(--muted)}.section-pad{margin-top:32px}.event-list-item{display:flex;align-items:center;gap:12px;border-bottom:1px solid #2c4352;padding:17px 0}.event-list-item:hover{color:var(--lime)}.event-avatar{font-size:1.7rem;background:#284052;border-radius:10px;padding:11px}.grow{flex:1;min-width:0}.event-list-item strong,.event-list-item small{display:block}.event-list-item small{font-size:.75rem;color:var(--muted)}.pill{display:inline-flex;align-items:center;background:#223746;border:1px solid #365161;padding:5px 10px;border-radius:99px;color:#c0d0d8;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.pill.on{background:#1a4d37;border-color:#4a795f;color:#cbffc6}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.81rem;white-space:nowrap}th,td{padding:13px 11px;text-align:left;border-bottom:1px solid #2c3e4c}th{color:#9eb1bf;font-size:.69rem;letter-spacing:.09em}td{color:#d7e5eb}td a{color:var(--lime)}.inline-plan{display:flex;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid var(--line)}.inline-plan>div{flex:1;min-width:115px}.inline-plan small{display:block;color:var(--muted)}.inline-plan label{max-width:103px;font-size:.72rem}.inline-plan input{padding:9px}.event-top{display:grid;grid-template-columns:1fr 1.5fr;gap:18px;margin-bottom:20px}.event-top .panel{padding:18px 22px}.event-top h3{font-size:1.36rem}.tracker-layout{display:grid;grid-template-columns:minmax(0,1fr) 315px;gap:14px;min-height:610px}.tracker-map-wrap{border:1px solid #375160;background:#0f2430;border-radius:17px;overflow:hidden}.map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:15px 16px}.map-toolbar b{font-size:.78rem;letter-spacing:.07em}.map-toolbar .subtle{font-size:.7rem}.toolbar-actions{display:flex;gap:7px;flex-wrap:wrap}.toolbar-actions select{width:auto;padding:7px;font-size:.75rem}.live-dot{display:inline-block;width:8px;height:8px;border-radius:100%;background:var(--lime);box-shadow:0 0 0 5px #c8ff5a24;margin-right:10px}.map-foot{padding:13px 14px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:.74rem;color:var(--muted)}#raceMap{height:540px;background:#254357}.riders-side{background:#101f2e;border:1px solid #375160;padding:17px;border-radius:17px;min-width:0;display:flex;flex-direction:column;gap:14px;max-height:663px}.side-title{display:flex;justify-content:space-between}.side-title h3{font-size:1.47rem}.riders-side input{font-size:.82rem;padding:10px}.rider-list{overflow-y:auto;min-height:100px;flex:1}.rider-row{display:flex;align-items:center;gap:10px;padding:11px 2px;border-bottom:1px solid #243947;cursor:pointer}.rider-row:hover{color:var(--lime)}.rider-row .rider-icon{font-size:1.32rem;width:34px}.rider-row strong{font-size:.79rem}.rider-row small{display:block;color:var(--muted);font-size:.7rem}.rider-row .grow{min-width:0}.status-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#efab64}.status-dot.online{background:#c6ff64}.status-dot.alert{background:#ff7676}.alerts-box{border:1px solid #c16457;background:#432c30;border-radius:15px;padding:16px;margin-bottom:18px}.alerts-box h3{margin-bottom:10px}.alert-item{display:flex;justify-content:space-between;gap:13px;align-items:center;border-top:1px solid #815760;padding:12px 0}.alert-item span{display:block;font-size:.75rem}.link-btn{background:transparent;border:0;color:var(--lime);padding:2px 5px;font-size:.79rem}.link-btn.danger{color:var(--danger)}.leaflet-container{font-family:'DM Sans',sans-serif!important}.race-icon{border:0!important;background:transparent!important}.race-icon .pin{border:2px solid #0e2030;box-shadow:0 4px 12px #0009;background:var(--lime);border-radius:50%;width:38px;height:38px;display:flex;align-items:center;justify-content:center;font-size:22px}.race-icon.stale .pin{background:#fbb86a}.race-icon.sos .pin{background:#ff7478;animation:sosblink 1s infinite alternate}.race-icon .bike-rotate{display:flex;align-items:center;justify-content:center;width:100%;height:100%}@keyframes sosblink{from{box-shadow:0 0 0 0 #ff747888}to{box-shadow:0 0 0 16px #ff747800}}
/* Athlete phone */
.mobile-wrap{width:min(570px,calc(100% - 30px));margin:auto;padding:35px 0 80px}.mobile-wrap h1{font-size:clamp(2.5rem,8vw,4.2rem);margin:12px 0 8px}.mobile-top{display:flex;justify-content:space-between;align-items:center}.phone-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:25px 0 15px}.phone-metrics>div{padding:15px 9px;background:#142a38;border:1px solid #34566a;border-radius:12px;text-align:center}.phone-metrics small{display:block;font-size:.62rem;font-weight:800;color:#9ab0be}.phone-metrics strong{display:block;font:800 1.8rem 'Barlow Condensed';color:var(--lime)}.phone-map{height:280px;background:#233e50;border-radius:15px;overflow:hidden}.mobile-controls{display:grid;gap:12px;margin:20px 0}.logline{background:#0f202e;border:1px solid #284759;border-radius:11px;padding:12px;color:#d3e4ed;font-size:.75rem}
@media (max-width:900px){.hero-inner{grid-template-columns:1fr}.hero{min-height:auto}.hero-copy{padding:65px 0 10px}.hero-art{min-height:320px;height:370px}.hero-art svg{min-height:320px}.hero-inner{gap:0}.feature-grid{grid-template-columns:repeat(2,1fr)}.tracker-layout{grid-template-columns:1fr}.riders-side{max-height:400px}.event-top{grid-template-columns:1fr}.intro-strip{grid-template-columns:1fr}}
@media (max-width:660px){.container{width:calc(100% - 28px)}.topbar{padding:12px 15px}.brand{font-size:1.17rem}.brand small{display:none}.brand-mark{width:30px;height:30px;font-size:1.45rem}.topbar nav{gap:10px;font-size:.7rem}.topbar nav>a:nth-child(1),.topbar nav>a:nth-child(2){display:none}.topbar nav .btn{padding:7px 9px;min-height:30px}.hero-copy h1{font-size:3.75rem}.hero-inner{min-height:auto}.hero-art{height:300px;min-height:300px}.hero-art svg{min-height:300px}.section{padding:55px 0}.feature-grid,.plan-grid,.grid-2,.stats{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.page-title{align-items:start;flex-direction:column}.page-pad{padding:37px 0}.auth-card{padding:26px}.footer{flex-direction:column;align-items:start}.stats{grid-template-columns:repeat(3,1fr)}.stat{padding:15px}.stat strong{font-size:2rem}.stat small{font-size:.62rem}.map-toolbar{align-items:start}.map-foot{display:block}.tracker-layout{min-height:0}#raceMap{height:480px}.inline-plan{flex-wrap:wrap}.event-top .form-row input{width:100%}.section-head{align-items:start;flex-direction:column}}

/* RACEPULSE_LEAFLET_RESCUE_V11 */
/* RacePulse 1.1: CSS mínimo de recuperação do Leaflet caso o CDN do CSS falhe. */
.leaflet-container{position:relative;overflow:hidden;background:#223c48;outline-offset:1px;touch-action:pan-x pan-y;font:12px/1.5 Arial,sans-serif}
.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}
.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:256px;height:256px}
.leaflet-tile{visibility:hidden;user-select:none;-webkit-user-select:none}
.leaflet-tile-loaded{visibility:inherit}
.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane svg{z-index:200}.leaflet-map-pane canvas{z-index:100}
.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}
.leaflet-control{position:relative;z-index:800;pointer-events:auto;float:left;clear:both}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-right{right:0}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}
.leaflet-container .leaflet-control-attribution{background:#fffdfd;color:#223;font-size:10px;padding:1px 6px}.leaflet-control-attribution a{color:#1a649f}.leaflet-control-zoom a{display:block;background:#fff;color:#21384a;text-align:center;width:30px;height:30px;line-height:30px;font-size:23px;font-weight:700;border-bottom:1px solid #ddd}.leaflet-control-zoom{overflow:hidden;border-radius:8px;box-shadow:0 3px 14px #0003}
.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}
.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:auto}.leaflet-interactive{cursor:pointer}.leaflet-container a{color:#17689b}.leaflet-container img{max-width:none!important}
.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{background:white;color:#21313a;border-radius:12px;box-shadow:0 6px 27px #0005;padding:1px}.leaflet-popup-content{margin:14px 18px;line-height:1.5}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;background:white;transform:translateY(-9px) rotate(45deg);margin:0 auto;box-shadow:0 3px 14px #0002}.leaflet-popup-close-button{position:absolute;top:5px;right:6px;font-size:20px;color:#566!important}
.leaflet-fade-anim .leaflet-tile{will-change:opacity}.leaflet-zoom-animated{transform-origin:0 0}.leaflet-zoom-box{z-index:800;pointer-events:none}
