:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#122e3c;background:#edf4f4;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}.app-shell{max-width:1160px;min-height:100vh;margin:auto;background:#f7fbfa;box-shadow:0 0 70px #0b2f3820;padding-bottom:88px}.topbar{height:76px;background:#082332;color:white;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(20px,5vw,56px)}.brand{font-size:20px;font-weight:900;letter-spacing:.035em;display:flex;align-items:center;gap:12px}.brand-icon{width:40px;height:40px;background:#13c4b1;color:#082332;border-radius:13px;display:grid;place-items:center;font-size:41px;line-height:1;transform:rotate(-7deg)}.brand-highlight{color:#24cbb4}.brand small{display:block;font-size:9px;letter-spacing:.18em;font-weight:600;color:#9ab9bf;margin-top:2px}.top-action{border:1px solid #ffffff40;border-radius:50%;background:#163b48;color:#e6fff9;width:40px;height:40px;font-size:27px}.screen{display:none;padding:36px clamp(20px,5vw,56px) 25px;animation:appear .25s ease}.screen.active{display:block}@keyframes appear{from{opacity:.3;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.eyebrow{display:block;color:#159987;font-size:11px;font-weight:850;letter-spacing:.18em;margin-bottom:10px}.screen-heading{margin-bottom:24px}.screen-heading h1{margin:0;font-size:clamp(30px,4.5vw,48px);line-height:1.12;letter-spacing:-.055em;color:#0a2b3a;font-weight:850}.screen-heading h1 em{font-style:normal;color:#12a893}.screen-heading p{font-size:14px;color:#607987;margin:12px 0 0}.stats-strip{display:flex;align-items:center;gap:20px;margin-bottom:18px;color:#5b7680;font-size:13px}.stats-strip strong{color:#123747}.stat-dot{color:#19b5a2}.map-card{border:1px solid #dce9e8;border-radius:18px;overflow:hidden;background:white;box-shadow:0 8px 25px #16414e0b}.map-toolbar{height:55px;display:flex;align-items:center;justify-content:space-between;padding:0 17px;font-size:13px;font-weight:750;color:#234655}.live-dot{display:inline-block;vertical-align:middle;background:#18bca7;width:9px;height:9px;border-radius:50%;margin-right:6px;box-shadow:0 0 0 4px #18bca71c}.chip-btn{border:1px solid #d6e6e4;background:#fff;color:#24796f;font-size:12px;font-weight:700;border-radius:30px;padding:9px 12px}.chip-btn:hover{background:#e9fbf7}#world-map{height:390px;background:#dbe8e4;position:relative;z-index:0}.map-footer{padding:12px 17px;display:flex;justify-content:space-between;gap:8px;color:#7b9299;font-size:11px}.map-fallback{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;text-align:center;padding:25px;color:#57737b}.map-fallback[hidden]{display:none}.leaflet-container{font-family:inherit}.surf-pin{background:#073444;color:white;border:3px solid #fff;box-shadow:0 3px 10px #0005;border-radius:50%;display:grid;place-items:center;font-weight:900;width:40px;height:40px}.surf-pin:hover{background:#10ad9e}.leaflet-popup-content-wrapper{border-radius:14px}.popup-photo{width:194px;height:104px;object-fit:cover;border-radius:8px;margin-bottom:8px}.popup-title{font-size:15px;font-weight:800}.popup-meta{color:#607784;margin:5px 0 10px}.popup-open{border:0;color:#fff;background:#0c9d8c;border-radius:8px;padding:8px 12px;font-weight:800;width:100%}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:27px 0 15px}.section-heading h2{font-size:20px;margin:0;letter-spacing:-.03em}.link-btn{border:0;background:none;color:#118c7e;font-weight:750;font-size:13px}.horizontal-posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.post-card{border:1px solid #deebea;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 4px 15px #0c3d4510;min-width:0}.post-image-wrap{position:relative;overflow:hidden}.post-image{width:100%;height:170px;object-fit:cover;display:block;background:#cde5e1}.demo-stamp{position:absolute;top:9px;left:9px;padding:5px 8px;background:#082e3bc9;color:white;border-radius:6px;font-size:10px;font-weight:800;letter-spacing:.07em}.condition-tag{position:absolute;bottom:9px;left:9px;background:#f8fffcf5;color:#0b6a62;border-radius:20px;font-size:10px;font-weight:850;padding:6px 9px}.post-body{padding:13px}.post-location{font-weight:850;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.post-sub{font-size:11px;color:#779198;margin-top:4px}.post-comment{color:#4a6570;font-size:12px;line-height:1.5;margin:10px 0;height:38px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.post-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #edf1ef;padding-top:10px}.byline{font-size:11px;color:#627d88;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70%}.like-button{background:none;border:0;color:#62808b;font-size:13px;font-weight:750;padding:6px;white-space:nowrap}.like-button.liked{color:#ec6170}.like-button span{font-size:17px;vertical-align:middle}.filter-row{display:flex;gap:12px;margin-bottom:20px}.search-wrap{background:white;border:1px solid #dce9e8;border-radius:12px;display:flex;align-items:center;gap:10px;flex:1;padding:0 14px;color:#77929a;font-size:25px}.search-wrap input{min-width:0;width:100%;height:46px;border:0;outline:none;color:#153644;background:transparent;font-size:14px}.filter-row select{border:1px solid #dce9e8;border-radius:12px;padding:0 12px;background:white;color:#214b59}.feed-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.feed-grid .post-image{height:235px}.empty{grid-column:1/-1;text-align:center;border:1px dashed #bdd7d5;border-radius:16px;background:#fff;padding:35px;color:#63838b}.empty strong{display:block;color:#1b4c5a;margin-bottom:8px}.publish-form{max-width:720px;margin:auto;background:white;border:1px solid #dce9e8;border-radius:20px;padding:24px;box-shadow:0 8px 27px #2149570c}.upload-area{display:grid;place-items:center;text-align:center;min-height:260px;border:2px dashed #a8d9d2;border-radius:15px;background:#f1faf7;position:relative;cursor:pointer;overflow:hidden;margin-bottom:23px}.upload-area input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:2}.upload-area img{width:100%;height:280px;object-fit:cover}.upload-area img[hidden]{display:none}.upload-icon{width:65px;height:65px;background:#d7f5ee;color:#0ca68f;border-radius:50%;display:grid;place-items:center;font-size:32px;margin:0 auto 13px}.upload-area strong{display:block;color:#164a51;font-size:17px}.upload-area small{display:block;color:#729199;font-size:12px;margin-top:8px}.field{display:block;margin-bottom:18px}.field>span{display:block;font-size:13px;font-weight:800;color:#294b58;margin-bottom:8px}.field b{color:#e87a72}.field input,.field select,.field textarea{width:100%;padding:13px;border:1px solid #d2e5e3;background:#fff;border-radius:10px;color:#1e4251;outline-color:#0fbaa2}.field textarea{resize:vertical}.field small{font-size:11px;color:#7a949c;display:block;text-align:right;margin-top:4px}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.geo-box{background:#eef8f6;border:1px solid #d6eeeb;border-radius:13px;padding:14px;display:flex;gap:12px;align-items:center}.geo-icon{width:42px;height:42px;background:#d6f3ec;border-radius:50%;display:grid;place-items:center;font-size:30px;color:#0ea895;flex:none}.geo-box>div{flex:1}.geo-box strong{font-size:13px;color:#1d4a50}.geo-box p{font-size:11px;line-height:1.4;color:#66848c;margin:5px 0 0}.notice{font-size:11px;line-height:1.65;color:#7a9196;margin:16px 0 22px}.primary-button{border:0;background:#0ba997;color:white;font-weight:850;width:100%;border-radius:12px;min-height:52px;padding:12px 18px;display:flex;justify-content:space-between;align-items:center}.primary-button:hover{background:#078b80}.primary-button span{font-size:23px}.ranking-info{background:#e8f6f2;color:#3a8079;border-radius:12px;padding:15px;font-size:13px;line-height:1.5;margin-bottom:17px}.seg-row{display:flex;background:#e8f1ef;padding:4px;border-radius:12px;width:max-content;margin-bottom:20px;max-width:100%}.seg{border:0;background:none;padding:10px 16px;border-radius:9px;color:#60818c;font-size:13px;font-weight:750}.seg.active{background:white;box-shadow:0 2px 9px #0e4a5215;color:#0a8378}.ranking-list{display:grid;gap:12px}.ranking-entry{display:flex;align-items:center;gap:16px;background:white;border:1px solid #dce9e8;padding:12px;border-radius:14px}.rank-number{font-size:25px;font-weight:900;color:#11a793;width:32px;text-align:center}.ranking-entry img{width:112px;height:80px;border-radius:10px;object-fit:cover}.ranking-entry .rank-text{flex:1;min-width:0}.rank-text strong{display:block;font-size:15px}.rank-text small{display:block;color:#769198;margin:5px 0}.rank-text p{font-size:12px;color:#54727c;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-likes{font-size:15px;font-weight:800;color:#da5a6b;white-space:nowrap}.profile-card{display:flex;align-items:center;gap:16px;background:#0b2f3c;border-radius:18px;color:white;padding:25px}.avatar{width:42px;height:42px;flex:none;border-radius:50%;background:#1db9a4;display:grid;place-items:center;font-weight:900;color:white}.avatar.large{width:72px;height:72px;font-size:30px}.profile-card h2{margin:0 0 7px}.profile-card p{color:#9ac3c5;font-size:13px;margin:0}.profile-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.profile-metrics>div{background:white;border:1px solid #deebea;border-radius:14px;padding:19px;text-align:center}.profile-metrics strong{font-size:28px;display:block;color:#0ca38e}.profile-metrics span{font-size:12px;color:#718d93}.profile-form{display:flex;align-items:end;gap:12px;margin:20px 0}.profile-form .field{flex:1;margin:0}.secondary-button{background:#0c3443;color:#fff;border:0;border-radius:10px;padding:13px 18px;font-size:13px;font-weight:800}.prototype-note{margin-top:30px;background:#ecf4f2;border-radius:15px;padding:18px;color:#516f78;font-size:12px;line-height:1.6}.prototype-note strong{font-size:14px;color:#244c59}.danger-link{border:0;background:none;color:#b15a5a;text-decoration:underline;font-size:12px;padding:7px 0}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);height:77px;width:min(100%,1160px);display:flex;align-items:center;justify-content:space-around;background:#fff;border-top:1px solid #e3eeec;box-shadow:0 -5px 35px #123a4615;z-index:1000;padding:5px 12px env(safe-area-inset-bottom)}.nav-item{min-width:60px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;border:0;background:transparent;color:#8ba2a9;font-size:11px;font-weight:750}.nav-item.active{color:#079a8a}.nav-icon{font-size:27px;line-height:32px}.nav-publish .nav-icon{background:#12ad9d;color:white;border-radius:15px;width:48px;height:42px;display:grid;place-items:center;font-size:34px;margin-top:-12px;box-shadow:0 6px 13px #0ca99c3b}.nav-publish.active .nav-icon{background:#082e3b}.toast{position:fixed;z-index:2000;bottom:96px;left:50%;transform:translateX(-50%) translateY(15px);max-width:calc(100% - 40px);min-width:220px;text-align:center;padding:13px 18px;border-radius:11px;background:#0c3542;color:white;box-shadow:0 10px 30px #0003;font-size:13px;opacity:0;pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}@media(max-width:650px){.topbar{height:65px;padding:0 20px}.brand{font-size:17px}.brand-icon{width:35px;height:35px;font-size:35px}.brand small{font-size:7px}.screen{padding:25px 16px 20px}.map-toolbar{padding:0 12px}.map-toolbar .chip-btn{font-size:10px}#world-map{height:340px}.map-footer{flex-direction:column}.horizontal-posts{grid-template-columns:repeat(2,minmax(0,1fr))}.horizontal-posts .post-card:nth-child(n+3){display:none}.post-image{height:127px}.feed-grid{grid-template-columns:1fr}.feed-grid .post-image{height:220px}.publish-form{padding:15px;border-radius:16px}.two-fields{grid-template-columns:1fr;gap:0}.geo-box{flex-wrap:wrap}.geo-box .chip-btn{margin-left:54px}.ranking-entry{gap:10px}.ranking-entry img{width:78px;height:68px}.rank-number{font-size:19px;width:22px}.rank-likes{font-size:12px}.profile-form{align-items:stretch;flex-direction:column}.bottom-nav{height:72px}.nav-item{min-width:50px;font-size:10px}.nav-icon{font-size:24px}.screen-heading h1{font-size:35px}}@media(min-width:900px){.feed-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}


/* v1.2: mapa próprio, independente do Leaflet */
#world-map.surf-map{height:390px;width:100%;max-width:100%;position:relative;overflow:hidden;isolation:isolate;background:#dceae7;touch-action:none;cursor:grab;user-select:none}
#world-map.surf-map.dragging{cursor:grabbing}
.surf-tiles,.surf-markers,.surf-popup-layer{position:absolute;inset:0;pointer-events:none}
.surf-tiles img{position:absolute;width:256px;height:256px;max-width:none;display:block;border:0;user-select:none;pointer-events:none}
.surf-map-marker{position:absolute;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;border:3px solid white;color:white;background:#063746;box-shadow:0 3px 12px #052c4c77;font-weight:900;font-size:17px;display:grid;place-items:center;pointer-events:auto;cursor:pointer;z-index:2}
.surf-map-marker:hover{background:#0ea997;scale:1.06}
.surf-zoom{position:absolute;top:12px;left:12px;z-index:5;border-radius:9px;overflow:hidden;border:1px solid #c8d5d5;box-shadow:0 2px 10px #0002;background:#fff;display:flex;flex-direction:column}
.surf-zoom button{border:0;background:#fff;color:#103d49;font:bold 24px/1 Arial,sans-serif;width:39px;height:39px;cursor:pointer;display:grid;place-items:center}
.surf-zoom button+button{border-top:1px solid #dfe8e7}.surf-zoom button:disabled{opacity:.3}.surf-zoom button:hover:not(:disabled){background:#e5f8f4}
.surf-attribution{position:absolute;bottom:0;right:0;background:#ffffffd9;color:#365e6a;padding:3px 6px;font:10px Arial,sans-serif;z-index:4}
.surf-attribution a{color:#276e8b}.surf-popup{position:absolute;transform:translate(-50%,-100%);width:238px;padding:11px;background:white;border-radius:13px;box-shadow:0 5px 24px #0005;z-index:4;pointer-events:auto;display:flex;flex-direction:column;gap:6px;color:#173745;text-align:left}
.surf-popup img{width:100%;height:100px;object-fit:cover;border-radius:6px}.surf-popup strong{font-size:14px}.surf-popup small{font-size:11px;color:#65818b;line-height:1.4}.surf-popup-open{padding:9px;border:0;border-radius:7px;color:white;background:#0f9e8e;font-weight:bold;cursor:pointer}.surf-popup-close{position:absolute;right:13px;top:13px;border:0;border-radius:50%;width:24px;height:24px;background:#fff;color:#222;cursor:pointer;font-size:20px;line-height:20px}
@media(max-width:650px){#world-map.surf-map{height:340px}}

/* SwellShot 1.3 */
.map-filter{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:0 0 12px;font-weight:700;color:#2c6671;font-size:13px}.map-filter select{border:1px solid #cce1de;border-radius:10px;padding:9px;background:white;color:#194754}.locate-post{border:0;background:transparent;color:#008d83;font-size:12px;font-weight:800;padding:0 0 12px;cursor:pointer}.test-mode{display:flex;align-items:flex-start;gap:9px;color:#536d73;background:#fff9e8;border:1px solid #e7d6a4;padding:12px;border-radius:10px;font-size:12px;line-height:1.4;margin-bottom:15px}.test-mode input{accent-color:#0ca38e;margin-top:2px}.map-toolbar{gap:8px}.map-toolbar span{line-height:1.2}

/* SwellShot 1.4 - localização por coordenadas, sem catálogo de praias */
.place-preview{background:#edf9f6;border:1px solid #cceae3;border-radius:13px;padding:16px;margin-bottom:18px;display:grid;gap:8px}.place-preview-head{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#36857d;font-size:12px;font-weight:800}.place-preview-head span:last-child{font-size:10px;color:#6c8c93;text-align:right}.place-preview strong{font-size:15px;color:#113d49}.place-preview small,.test-coordinates small{font-size:11px;color:#66818c;line-height:1.5}.field .field-hint{text-align:left}.test-coordinates{background:#fdfaf0;border:1px solid #e6d8b1;border-radius:12px;padding:14px;margin:-7px 0 16px}.test-coordinates[hidden]{display:none}.test-coordinates .field{margin-bottom:8px}.test-coordinates>.chip-btn{margin-top:12px}

/* Autenticacao online v1.5 */
.cloud-auth{background:#fff;border:1px solid #cfe2df;border-radius:18px;padding:20px;margin-bottom:22px}
.cloud-auth[hidden],.cloud-auth [hidden]{display:none!important}.auth-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.auth-head span{color:#0b9e91;font-size:13px}.auth-form{display:grid;gap:12px}.auth-buttons{display:flex;gap:12px;flex-wrap:wrap}.auth-buttons button{flex:1}.cloud-auth #google-login{width:100%;margin-bottom:14px}.text-button{background:transparent;border:0;color:#087c77;cursor:pointer;text-decoration:underline}.cloud-auth .field{display:grid;gap:6px}

/* Aviso visível para o piloto público v1.6 */
.pilot-banner{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:9px 19px;background:#fff5dc;border-bottom:1px solid #f5d98a;color:#755112;font-size:11px;font-weight:700;line-height:1.35}.pilot-banner span:last-child{font-weight:500}@media(max-width:650px){.pilot-banner{flex-direction:column;align-items:flex-start;gap:3px;padding:9px 15px}}

/* SwellShot v1.7 — fotos, filtros e diálogos */
.photo-open{display:block;width:100%;border:0;padding:0;background:transparent;cursor:zoom-in;text-align:inherit}.photo-open:focus-visible{outline:3px solid #0ba997;outline-offset:-3px}.photo-open img{width:100%}.rank-image-open{border:0;padding:0;background:transparent;cursor:zoom-in;flex:none}.rank-image-open img{display:block}.clear-search{border:0;background:#eaf3f1;color:#2b5960;border-radius:50%;width:28px;height:28px;font-size:22px;flex:none}.clear-search[hidden]{display:none}.likers-button{border:0;background:none;color:#148d7e;font-size:11px;text-decoration:underline;margin-left:7px;padding:6px 2px}.delete-post{display:block;background:none;border:none;color:#9c3d42;font-size:11px;text-decoration:underline;margin:0 0 8px;padding:4px 0}.photo-modal[hidden],.likers-modal[hidden]{display:none!important}.photo-modal{position:fixed;inset:0;z-index:9999;background:#061b24f7;color:white;display:flex;flex-direction:column}.photo-modal-open{overflow:hidden}.photo-modal-toolbar{display:flex;align-items:center;gap:10px;padding:12px;justify-content:flex-end;background:#092b38}.photo-modal-toolbar button,.likers-box button{border:1px solid #ffffff66;background:#214653;color:white;border-radius:8px;padding:8px 12px;cursor:pointer}.photo-modal-toolbar button:first-child{margin-right:auto}.photo-modal-stage{min-height:0;flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none}.photo-modal-stage img{display:block;max-height:100%;max-width:100%;object-fit:contain;transform-origin:center center;transition:transform .12s ease;user-select:none}.photo-modal-caption{padding:12px 18px 20px;text-align:center;max-height:26vh;overflow:auto}.photo-modal-caption p{font-size:13px;color:#c7dbdb}.photo-modal-caption small{font-size:11px;color:#a8bdc2}.likers-modal{position:fixed;inset:0;z-index:10001;background:#001923b0;display:grid;place-items:center;padding:20px}.likers-box{background:white;width:min(480px,100%);max-height:75vh;overflow:auto;border-radius:18px;padding:22px;color:#123744}.likers-box>button{float:right;background:#0b3443}.liker-entry{padding:12px 6px;border-bottom:1px solid #e3eeee}.likers-box h2{margin:0 0 15px}.post-footer{flex-wrap:wrap;gap:2px}.post-footer .byline{flex:1;min-width:80px}.post-footer .like-button{margin-left:auto}
@media(max-width:600px){.photo-modal-caption{padding:9px 12px 15px}.photo-modal-toolbar{gap:6px}.photo-modal-toolbar button{padding:7px 9px}.likers-button{font-size:10px}}
