:root{font-family:Inter,Arial,sans-serif;color:#17223d;background:#fff;font-synthesis:none}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh}
[hidden]{display:none!important}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:#275bc0}
.gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:#fff}
.gate-card{width:min(100%,440px);padding:28px 10px}
.gate-logo{width:74px;height:74px;object-fit:contain;margin-bottom:28px}
.eyebrow{display:block;color:#2b62bc;font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
h1,h2,h3,p{margin-top:0}
.gate h1{font-size:clamp(2rem,5vw,2.65rem);line-height:1.12;margin:12px 0}
.gate p{color:#5d6980;line-height:1.58}
.stack{display:grid;gap:16px;margin-top:24px}
label{display:grid;gap:7px;color:#263650;font-size:.88rem;font-weight:650}
input,select,textarea{width:100%;border:1px solid #c9d3e1;border-radius:12px;background:#fff;color:#17223d;padding:12px 13px;outline:none}
input:focus,select:focus,textarea:focus{border-color:#2b62bc;box-shadow:0 0 0 3px #2b62bc22}
textarea{resize:vertical}
.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;border:1px solid transparent;border-radius:12px;padding:12px 18px;font-size:.9rem;font-weight:750;text-decoration:none;min-height:45px;transition:transform .15s ease,background .15s ease}
.button:hover{transform:translateY(-1px)}
.button:disabled{opacity:.55;cursor:wait}
.button.primary{background:#2457b0;color:white}
.button.primary:hover{background:#18468f}
.button.secondary{background:#eaf0fb;color:#1c4a99}
.button.light{background:white;color:#183c77}
.button.ghost{background:white;border-color:#d1d9e6;color:#263c61}
.button.danger{background:#fff2f0;border-color:#f3c9c3;color:#a32f29}
.text-button{border:0;background:none;color:#516588;padding:12px 0;margin-top:17px;font-size:.82rem;text-decoration:underline}
.manager-form{padding-top:16px;border-top:1px solid #e3e8ef}
.message{border-radius:12px;padding:12px 15px;background:#eaf4ff;color:#174274;margin:16px 0}
.message.error{background:#fff0ee;color:#982f26}
.message.success{background:#e8f7ee;color:#1e6a40}
.app{min-height:100vh;background:#f4f7fc}
.topbar{background:white;border-bottom:1px solid #e1e7f0}
.topbar-inner{max-width:1240px;margin:auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:10px}
.brand img{width:43px;height:43px;object-fit:contain}
.brand strong,.brand span{display:block}
.brand strong{font-size:.93rem}
.brand span{font-size:.72rem;color:#6c7990;margin-top:3px}
.top-actions{display:flex;align-items:center;gap:12px}
.user-badge{font-size:.8rem;color:#3d5277;font-weight:700;text-align:right}
.container{max-width:1240px;margin:auto;padding:26px 24px 56px}
.hero{display:flex;align-items:end;justify-content:space-between;gap:24px;background:linear-gradient(115deg,#152952,#214b99);color:white;border-radius:24px;padding:38px;margin-bottom:22px}
.hero .eyebrow{color:#a9c7ff}
.hero h1{font-size:clamp(2rem,4.4vw,3.2rem);line-height:1.08;max-width:700px;margin:10px 0}
.hero p{color:#d7e4fd;line-height:1.5;max-width:630px;margin-bottom:0}
.hero-actions{display:flex;gap:9px;flex-wrap:wrap;flex-shrink:0}
.hero-actions .primary{background:#e3edff;color:#163f83}
.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.quick-card,.card,.info-strip{background:white;border:1px solid #e1e7f0;border-radius:18px;box-shadow:0 6px 22px #253a6610}
.quick-card{padding:21px}
.card-icon{display:inline-grid;place-items:center;width:34px;height:34px;background:#e8f0ff;border-radius:10px;color:#2457b0;font-size:.75rem;font-weight:800;margin-bottom:17px}
.quick-card h2{font-size:1rem;margin-bottom:9px}
.quick-card p,.quick-card a{font-size:.82rem;line-height:1.55}
.quick-card p{color:#5c6980;margin-bottom:8px}
.quick-card a{font-weight:700}
.info-strip{display:grid;grid-template-columns:repeat(3,1fr);margin-top:14px;overflow:hidden}
.info-strip>div{padding:20px;border-right:1px solid #e4e9f1}
.info-strip>div:last-child{border-right:0}
.info-strip strong,.info-strip span{display:block}
.info-strip strong{font-size:.87rem;margin-bottom:8px}
.info-strip span,.info-strip a{font-size:.8rem;line-height:1.5;color:#5b6980}
.info-strip a{display:inline-block;margin-top:5px;color:#2457b0;font-weight:700}
.resources-section{margin-top:28px}
.resources-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.resource-card{display:flex;flex-direction:column;align-items:flex-start;padding:20px;background:#fff;border:1px solid #e1e7f0;border-radius:16px;box-shadow:0 6px 22px #253a6610}
.resource-card h3{font-size:.95rem;margin-bottom:8px}
.resource-card p{color:#5c6980;font-size:.8rem;line-height:1.55;margin-bottom:14px}
.resource-card a{font-size:.8rem;font-weight:750;margin-top:auto}
.resource-note{font-size:.75rem;line-height:1.5;color:#65738a;margin:12px 2px 0}
.section{margin-top:30px}
.section.card{padding:28px}
.section-heading{display:flex;justify-content:space-between;align-items:start;gap:20px;margin-bottom:23px}
.section-heading h2{font-size:1.55rem;margin:6px 0}
.section-heading p{font-size:.88rem;color:#69768a;line-height:1.5;margin:0}
.saved-at,.count-pill{font-size:.75rem;font-weight:700;color:#647694;white-space:nowrap}
.count-pill{background:#e2ebfa;color:#2457b0;border-radius:999px;padding:8px 12px}
.manager-target{display:flex;align-items:end;gap:12px;padding:14px;background:#edf3ff;border-radius:14px;margin-bottom:20px}
.manager-target label{flex:1}
fieldset{border:0;margin:0;padding:0}
.checklist{padding:20px;border-radius:15px;background:#f3f7ff}
.checklist legend{float:left;width:100%;font-size:1.03rem;font-weight:800;margin-bottom:6px}
.checklist p{clear:both;font-size:.8rem;color:#65738a;margin-bottom:15px}
.checklist-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.checklist-grid label{display:flex;align-items:center;gap:10px;background:white;border:1px solid #dfe8f5;border-radius:10px;padding:10px 12px;font-size:.8rem}
.checklist-grid input,.share-field input{width:17px;height:17px;flex:none;accent-color:#2457b0}
.form-section{border-top:1px solid #e1e7f0;margin-top:25px;padding-top:23px}
.form-section h3{font-size:1.05rem;margin-bottom:16px}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.form-grid .wide{grid-column:1/-1}
.pin-panel{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:22px}
.pin-panel strong{font-size:.9rem}
.pin-panel p{font-size:.78rem;color:#69768a;margin:5px 0 0}
.pin-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.pick-map,.group-map{border:1px solid #d5dfec;background:#e5ecf6;border-radius:14px;z-index:0}
.pick-map{height:260px;margin-top:12px}
.group-map{height:400px}
.pin-status,.map-message{color:#617087;font-size:.78rem}
.map-attribution{font-size:.7rem;color:#7a879a;margin-top:-7px}
.share-field{display:flex;align-items:start;gap:12px;background:#f6f9fe;border:1px solid #dfe7f3;padding:15px;border-radius:13px;margin-top:22px}
.share-field strong,.share-field small{display:block}
.share-field small{font-size:.75rem;font-weight:400;line-height:1.5;color:#66738a;margin-top:4px}
.form-actions{display:flex;justify-content:flex-end;margin-top:19px}
.athlete-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}
.athlete-card{background:white;border:1px solid #e1e7f0;border-radius:16px;padding:18px;min-height:130px}
.athlete-card h3{font-size:.96rem;margin-bottom:8px}
.athlete-card p,.athlete-card li{font-size:.79rem;line-height:1.5;color:#56647d}
.athlete-card p{margin-bottom:5px}
.athlete-card ul{margin:7px 0 0;padding-left:17px}
.athlete-card a{font-size:.8rem;font-weight:700}
.athlete-card .status{display:inline-block;font-size:.7rem;font-weight:800;color:#2457b0;background:#ecf3ff;border-radius:999px;padding:4px 8px;margin-bottom:10px}
.athlete-card .status.muted{color:#687589;background:#edf0f5}
.leaflet-popup-content{font:13px/1.5 Inter,Arial,sans-serif}
.leaflet-popup-content strong{font-size:14px}
.popup-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.popup-actions a,.popup-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 9px;border:1px solid #d3dfef;border-radius:8px;background:#f2f6fd;color:#194b99;font-size:12px;font-weight:700;text-decoration:none}
.mobile-popup>strong{display:block;padding-right:14px;line-height:1.3}
.mobile-popup ul{list-style:none;margin:7px 0 0;padding:0;max-height:118px;overflow-y:auto}
.mobile-popup li{padding:6px 0;border-top:1px solid #e5eaf1}
.mobile-popup li strong,.mobile-popup li span{display:block;font-size:12px;line-height:1.35}
.mobile-popup li span{color:#64718a;margin-top:2px}
footer{text-align:center;color:#7a879a;font-size:.72rem;padding-top:35px}
.mobile-nav{display:none}
@media(max-width:950px){.quick-grid{grid-template-columns:repeat(2,1fr)}.resources-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.athlete-grid{grid-template-columns:repeat(2,1fr)}.hero{align-items:start;flex-direction:column}.info-strip{grid-template-columns:1fr}.info-strip>div{border-right:0;border-bottom:1px solid #e4e9f1}}
@media(max-width:620px){
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
  body{overflow-x:hidden}
  input,select,textarea{font-size:16px;min-height:46px}
  textarea{min-height:78px}
  .gate{padding:20px 18px}
  .gate-card{padding:14px 0}
  .gate-logo{width:60px;height:60px;margin-bottom:20px}
  .gate h1{font-size:1.7rem}
  .gate p{font-size:.88rem}
  .topbar-inner,.container{padding-left:14px;padding-right:14px}
  .topbar-inner{align-items:center;gap:8px;padding-top:9px;padding-bottom:9px}
  .brand{min-width:0;gap:7px}
  .brand img{width:32px;height:32px;flex:none}
  .brand strong{font-size:.73rem;line-height:1.2}
  .brand span{font-size:.61rem}
  .top-actions{gap:4px;flex-direction:column;align-items:flex-end;flex:none}
  .user-badge{font-size:.66rem;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .top-actions .button{min-height:28px;padding:3px 7px;font-size:.7rem}
  .container{padding-top:14px;padding-bottom:calc(88px + env(safe-area-inset-bottom))}
  .hero{gap:15px;padding:21px;border-radius:17px;margin-bottom:13px}
  .hero h1{font-size:1.55rem;line-height:1.15;margin:8px 0}
  .hero p{font-size:.83rem}
  .hero-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:7px}
  .hero-actions .button{padding:8px 7px;min-height:40px;font-size:.78rem}
  .eyebrow{font-size:.64rem}
  .quick-grid,.resources-grid,.athlete-grid,.checklist-grid,.form-grid{grid-template-columns:1fr}
  .quick-grid,.resources-grid,.athlete-grid{gap:9px}
  .quick-card,.resource-card{padding:16px}
  .card-icon{width:28px;height:28px;margin-bottom:10px}
  .quick-card h2,.resource-card h3{font-size:.9rem;margin-bottom:6px}
  .quick-card p,.quick-card a,.resource-card p,.resource-card a{font-size:.77rem}
  .info-strip{margin-top:10px}
  .info-strip>div{padding:15px}
  .info-strip strong{margin-bottom:5px}
  .resources-section{margin-top:23px}
  .resource-note{font-size:.7rem}
  .section{margin-top:0}
  .section.card{padding:16px}
  .section-heading{flex-direction:column;gap:8px;margin-bottom:17px}
  .section-heading h2{font-size:1.28rem}
  .section-heading p{font-size:.78rem}
  .form-grid{gap:13px}
  .form-section{margin-top:18px;padding-top:18px}
  .form-section h3{font-size:.96rem;margin-bottom:12px}
  .checklist{padding:14px}
  .checklist legend{font-size:.94rem}
  .checklist p{line-height:1.45}
  .checklist-grid label{font-size:.78rem;line-height:1.4}
  .checklist-grid input,.share-field input{min-height:17px}
  .manager-target{flex-direction:column;align-items:stretch}
  .pin-panel{align-items:stretch;flex-direction:column}
  .pin-actions{justify-content:stretch}
  .pin-actions .button{flex:1;font-size:.76rem;padding:8px}
  .pick-map{height:250px}
  .group-map{height:300px}
  .group-map .leaflet-control-zoom{display:none}
  .leaflet-popup-content{width:min(225px,calc(100vw - 95px))!important;margin:11px}
  .leaflet-popup-content-wrapper{max-width:calc(100vw - 68px)}
  .leaflet-popup-close-button{width:30px!important;height:30px!important;font-size:22px!important}
  .mobile-popup .popup-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}
  .mobile-popup .popup-actions a,.mobile-popup .popup-actions button{min-height:34px;padding:6px 4px;font-size:10px;white-space:nowrap}
  .athlete-card{padding:15px;min-height:0}
  .share-field{padding:13px}
  .form-actions .button{width:100%}
  .app .overview-panel,.app #minha-ficha,.app #atletas{display:none}
  .app[data-mobile-view="overview"] .overview-panel{display:block}
  .app[data-mobile-view="checklist"] #minha-ficha,.app[data-mobile-view="travel"] #minha-ficha{display:block}
  .app[data-mobile-view="athletes"] #atletas{display:block}
  .app[data-mobile-view="checklist"] #minha-ficha .form-section,.app[data-mobile-view="checklist"] #minha-ficha .share-field{display:none}
  .app[data-mobile-view="travel"] #minha-ficha .checklist{display:none}
  .mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:1000;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #dfe6f1;box-shadow:0 -5px 20px #17223d16}
  .mobile-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:50px;padding:4px 2px;border:0;border-radius:10px;background:transparent;color:#5c6980;font-size:.65rem;font-weight:700;line-height:1.15}
  .mobile-nav button[aria-current="page"]{background:#e9f1ff;color:#184b9e}
  .nav-symbol{font-size:1.2rem;font-weight:800;line-height:1}
  footer{display:none}
}
