/* 온기 공통 서비스 디자인 · 2026-09-09 */
body[data-ongi-service]{--ongi-green:#253f35;--ongi-rust:#a64e33;--ongi-line:#dfe5dd;--ongi-paper:#fafaf7;--ink:#26342f;--muted:#647069;--line:#dfe5dd;--paper:#fafaf7;--green:#253f35;--green2:#253f35;--brown:#a64e33;--blue:#315f57;--navy:#253f35;--cream:#f2f3ed;--shadow:0 8px 28px #26342f0c;font-family:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;color:#26342f;background:#fafaf7;line-height:1.6}
body[data-ongi-service] :is(button,a,input,select,summary):focus-visible{outline:3px solid #a64e33;outline-offset:3px}
body[data-ongi-service] .ongi-network{position:sticky;top:0;z-index:2000;display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;height:calc(60px + env(safe-area-inset-top));margin:0;padding:env(safe-area-inset-top) clamp(16px,4vw,48px) 0;border:0;border-bottom:1px solid #dfe5dd;background:#fafaf7;color:#26342f;font-size:14px;line-height:1.3;box-sizing:border-box;letter-spacing:0}
body[data-ongi-service] .ongi-network-brand{display:flex;align-items:center;gap:10px;min-height:44px;font-size:23px;font-weight:800;white-space:nowrap;color:#253f35;text-decoration:none}
body[data-ongi-service] .ongi-network-brand img{width:31px;height:31px;object-fit:contain}
body[data-ongi-service] .ongi-network-title{display:inline-block;margin-left:4px;padding-left:15px;border-left:1px solid #d3dbd2;font-size:14px;font-weight:600;color:#647069}
body[data-ongi-service] .ongi-network details{position:relative;padding:0;margin:0;background:transparent;border:0}
body[data-ongi-service] .ongi-network summary{display:flex;align-items:center;gap:9px;min-height:44px;margin:0;padding:0 12px;border:1px solid #dfe5dd;border-radius:9px;background:white;font-size:14px;font-weight:650;cursor:pointer;list-style:none}
body[data-ongi-service] .ongi-network summary::-webkit-details-marker{display:none}
body[data-ongi-service] .ongi-network summary::after{content:'⌄';font-size:18px}
body[data-ongi-service] .ongi-network-links{position:absolute;right:0;top:calc(100% + 8px);width:280px;max-height:calc(100dvh - 90px);overflow:auto;display:grid;grid-template-columns:1fr 1fr;padding:10px;gap:4px;border:1px solid #dfe5dd;border-radius:14px;background:white;box-shadow:0 16px 40px #253f3524}
body[data-ongi-service] .ongi-network-links a{display:flex;align-items:center;min-height:46px;padding:10px;border-radius:8px;color:#253f35;text-decoration:none;font-size:14px;font-weight:600}
body[data-ongi-service] .ongi-network-links a:hover,body[data-ongi-service] .ongi-network-links a[aria-current=page]{background:#edf1e9}
body[data-ongi-service] :is(h1,h2,h3){text-wrap:pretty;word-break:keep-all;letter-spacing:-.035em}
body[data-ongi-service] button{font-family:inherit}
/* 지도의 조작 상태와 하단 목록 위치는 기존 서비스가 관리한다. */
body.ongi-map-service .ongi-network{position:fixed;left:0;right:0}
body.ongi-map-service #map{top:calc(60px + env(safe-area-inset-top))!important;min-height:0!important;height:calc(100dvh - 60px - env(safe-area-inset-top))!important}
body.ongi-map-service .topbar{top:calc(76px + env(safe-area-inset-top))!important;padding:12px 20px!important;border:1px solid #dfe5dd!important;border-radius:14px!important;background:#253f35!important;box-shadow:0 6px 20px #253f3517!important;backdrop-filter:none!important;color:#fff!important}
body.ongi-map-service .topbar strong{font-size:22px!important;line-height:1.4!important;color:#fff!important}
body.ongi-map-service .topbar :is(span,a){color:#e5ede5!important}
body.ongi-map-service :is(.detail,.panel){background:#fafaf7!important;border:1px solid #dfe5dd!important;border-radius:16px!important;box-shadow:0 12px 36px #26342f24!important;max-height:calc(100dvh - 155px)!important;backdrop-filter:none!important}
body.ongi-map-service :is(.mobile-card,.score-card,.tide-card,.weather-card,.season-card,.rig-card,.bait-card,.pair-card){background:#fff!important;border:1px solid #dfe5dd!important;border-radius:12px!important;box-shadow:none!important}
body.ongi-map-service .pair-card.active{border-color:#315f57!important;box-shadow:inset 3px 0 #315f57!important;background:#edf3eb!important}
body.ongi-map-service .sponsor-rail{top:calc(154px + env(safe-area-inset-top))!important}
body.ongi-map-service .mobile-list{border-color:#dfe5dd!important;background:#fafaf7!important}
body.ongi-map-service .leaflet-control-zoom{border:1px solid #dfe5dd!important;border-radius:10px!important;overflow:hidden;box-shadow:0 3px 12px #26342f19!important}
body.ongi-map-service .leaflet-control-zoom a{background:#fff!important;color:#253f35!important}
body[data-ongi-service=festival] .site-header{display:none}
body[data-ongi-service=festival] .hero{padding-top:44px;padding-bottom:34px}
body[data-ongi-service=festival] .hero h1{font-size:clamp(30px,3.7vw,46px);line-height:1.25}
body[data-ongi-service=festival] .region-panel{background:#f2f3ed;border-radius:14px}
body[data-ongi-service=festival] .festival-card{border-color:#dfe5dd;box-shadow:none}
body[data-ongi-service=festival] .region-button.active,body[data-ongi-service=festival] .search-submit{background:#253f35;color:#fff}
body[data-ongi-service=festival] .detail-view{padding-top:32px}
body[data-ongi-service=gilmore]>header{position:relative;top:auto;height:62px;background:#fafaf7;border-bottom:1px solid #dfe5dd}
body[data-ongi-service=gilmore] .hero{padding:48px max(24px,calc((100vw - 1180px)/2));gap:64px;background:#f2f3ed;grid-template-columns:minmax(0,1fr) minmax(340px,.85fr)}
body[data-ongi-service=gilmore] .routeMotion{display:none}
body[data-ongi-service=gilmore] .hero h1{font-size:clamp(32px,4vw,50px);line-height:1.24}
body[data-ongi-service=gilmore] .panel{border-radius:16px;box-shadow:0 8px 28px #253f350d}
body[data-ongi-service=gilmore] :is(.mark,.search){background:#253f35;box-shadow:none}
body[data-ongi-service=gilmore] .trust span{border:1px solid #d6dfd3;background:#fafaf7}
body[data-ongi-service=analroad]>.topbar{position:relative;top:auto;background:#fafaf7;backdrop-filter:none}
body[data-ongi-service=analroad] .hero{min-height:0;padding-top:44px;padding-bottom:52px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px}
body[data-ongi-service=analroad] .intro-panel{position:static}
body[data-ongi-service=analroad] h1{font-size:clamp(32px,3.5vw,48px);line-height:1.25}
body[data-ongi-service=analroad] .board{position:relative;top:auto;min-height:0;height:auto;border-radius:18px;background:#253f35;box-shadow:none;padding:12px}
body[data-ongi-service=analroad] .search-card{border-radius:14px;box-shadow:0 4px 16px #26342f0a;border-color:#b4c2b2}
body[data-ongi-service=analroad] .primary{background:#253f35;box-shadow:none}
body[data-ongi-service=analroad] :is(.feature-card,.step,.trust-card){border-radius:14px;box-shadow:none}
body[data-ongi-service^="0zip"]>header{position:relative;top:auto;background:#fafaf7;border-bottom:1px solid #dfe5dd;box-shadow:none}
body[data-ongi-service="0zip"]>header{display:none}
body[data-ongi-service^="0zip"] .hero{padding-top:36px;padding-bottom:28px}
body[data-ongi-service^="0zip"] .hero h1{font-size:clamp(30px,3.8vw,48px);line-height:1.22}
body[data-ongi-service^="0zip"] :is(.toolbar,.game-panel,.dashboard,.location-bar,.studio,.menu-card){border:1px solid #dfe5dd;border-radius:14px;background:#fff;box-shadow:none}
body[data-ongi-service^="0zip"] :is(.menu-card.active,.menu-card:hover){background:#f0f3eb;border-color:#b9c8b5;box-shadow:none}
body[data-ongi-service^="0zip"] .menu-icon{display:none}
body[data-ongi-service^="0zip"] .brand-mark{background:#a64e33;border-radius:10px;box-shadow:none}
body[data-ongi-service^="0zip"] :is(.btn.primary,.upload-label){background:#253f35;border-color:#253f35;color:#fff;box-shadow:none}
body[data-ongi-service=factlens]>.topbar{position:relative;top:auto;background:#fafaf7;height:60px}
body[data-ongi-service=factlens] .intro h1{font-size:clamp(34px,3.8vw,52px);line-height:1.18}
body[data-ongi-service=factlens] main{padding-top:40px;gap:40px;grid-template-columns:minmax(0,1fr) minmax(0,.9fr)}
body[data-ongi-service=factlens] .lead{font-size:18px;font-weight:400;line-height:1.7}
body[data-ongi-service=factlens] :is(.upload,.report){border:1px solid #dfe5dd;border-radius:16px;box-shadow:none}
body[data-ongi-service=factlens] .report{padding:0;overflow:hidden;background:white}
body[data-ongi-service=factlens] .report-head h2{font-size:27px}
body[data-ongi-service=factlens] :is(.trust-row span,.check,.status,.upload-icon,.form-title>span,.brand span){border:1px solid #dfe5dd;border-radius:8px}
body[data-ongi-service=factlens] :is(.upload button,.upload-icon,.brand span){background:#253f35;color:#fff;border-color:#253f35;border-radius:10px}
body[data-ongi-service=factlens] .dropzone{border-radius:10px;border-width:1px;padding:26px 18px}
body[data-ongi-service=factlens] .form-title>span{background:#edf2e8;color:#253f35}
body[data-ongi-service=factlens] .notice{border-left:3px solid #a64e33}
body[data-ongi-service=factlens] .metrics{background:#dfe5dd;border-color:#dfe5dd;border-width:1px}
body[data-ongi-service=factlens] footer{background:#253f35}
body[data-ongi-service=factlens] footer b{color:#eac69f}
@media(max-width:820px){
body[data-ongi-service=gilmore] .hero,body[data-ongi-service=analroad] .hero,body[data-ongi-service=factlens] main{display:grid;grid-template-columns:1fr;gap:28px;padding:30px 18px}
body[data-ongi-service=gilmore] .heroCopy{text-align:left}
body[data-ongi-service=gilmore] .panel{width:100%;max-width:none;margin:0}
body[data-ongi-service=analroad] .board{margin:0}
body[data-ongi-service=factlens] .intro{padding-top:0}
body[data-ongi-service=factlens] .metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
body[data-ongi-service=factlens] .metrics div{padding:12px}
}
@media(max-width:720px){
body[data-ongi-service] .ongi-network{height:calc(56px + env(safe-area-inset-top));padding-inline:14px;gap:8px}
body[data-ongi-service] .ongi-network-brand{font-size:21px;gap:7px}
body[data-ongi-service] .ongi-network-title{font-size:12px;padding-left:10px;margin-left:3px}
body[data-ongi-service] .ongi-network summary{font-size:12px;padding:0 9px;gap:6px}
body.ongi-map-service #map{top:calc(56px + env(safe-area-inset-top))!important;height:calc(100dvh - 56px - env(safe-area-inset-top))!important}
body.ongi-map-service .topbar{top:calc(68px + env(safe-area-inset-top))!important;left:12px!important;right:12px!important;width:auto!important;min-height:48px!important;padding:10px 14px!important;border-radius:12px!important}
body.ongi-map-service .topbar strong{font-size:18px!important}
body.ongi-map-service .topbar span{display:none!important}
body.ongi-map-service .leaflet-top{top:76px!important}
body.ongi-map-service .sponsor-rail{top:calc(126px + env(safe-area-inset-top))!important}
body.ongi-map-service :is(.detail,.panel){max-height:calc(100dvh - 140px - env(safe-area-inset-top))!important}
body[data-ongi-service=camfing] #map{height:42vh!important;opacity:1}
body[data-ongi-service=camfing] .mobile-list{top:calc(42vh + 56px + env(safe-area-inset-top));border-top-width:1px}
body[data-ongi-service=camfing] .panel{top:calc(68px + env(safe-area-inset-top))!important;max-height:calc(100dvh - 84px - env(safe-area-inset-top))!important}
body[data-ongi-service=festival] .hero{padding-top:28px;padding-bottom:24px}
body[data-ongi-service^="0zip"] .hero{padding-top:28px}
}
@media(prefers-reduced-motion:reduce){body[data-ongi-service] *{scroll-behavior:auto!important}body[data-ongi-service] .hero *{animation:none!important}}
body.ongi-map-service :is(.mobile-list,.mobile-card,.detail,.panel,.topbar){box-sizing:border-box}
@media(max-width:720px){body.ongi-map-service .topbar{transform:none!important}body[data-ongi-service=forest] .mobile-list{top:auto!important}}
body[data-ongi-service]:not(.ongi-map-service) #ongi-freshness{position:relative!important;inset:auto!important;display:flex;flex-direction:column;align-items:flex-end;max-width:1200px;margin:24px auto;padding:0 20px;z-index:10!important}
body[data-ongi-service] .of-btn{box-shadow:none!important;border-radius:10px!important}
body[data-ongi-service] .of-dot::before{animation:none!important}
body.ongi-map-service #ongi-freshness{right:12px!important;bottom:auto!important;top:calc(132px + env(safe-area-inset-top))!important;z-index:960!important}
body.ongi-map-service #ongi-freshness .of-panel{position:absolute;top:50px;right:0}
body.ongi-map-service #ongi-freshness .of-btn{min-height:40px!important;padding-inline:10px!important;font-size:12px!important}
@media(max-width:720px){body[data-ongi-service=gilmore] .trust{display:none}body.ongi-map-service #ongi-freshness{top:calc(122px + env(safe-area-inset-top))!important}}
body[data-ongi-service=analroad] h1 span{color:#a64e33;background:none;-webkit-text-fill-color:currentColor}
body[data-ongi-service=analroad] .brand-icon{background:#253f35}
body[data-ongi-service="0zip"] .menu-card{display:block;text-decoration:none}
body[data-ongi-service="0zip"] .menu-section{background:transparent;border:0;border-radius:0;box-shadow:none}
@media(max-width:720px){body[data-ongi-service="0zip"] .game-menu{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}body[data-ongi-service="0zip"] .menu-section{padding:0 16px;margin-bottom:24px}body[data-ongi-service="0zip"] .menu-card{padding:14px;min-height:150px}body[data-ongi-service="0zip"] .menu-state{position:static;display:inline-flex;margin-bottom:10px;font-size:11px}body[data-ongi-service="0zip"] .menu-card strong{font-size:16px}body[data-ongi-service="0zip"] .menu-card small{font-size:12px}body[data-ongi-service="0zip"] .menu-head h2{font-size:24px}body[data-ongi-service="0zip"] .hero p{font-size:15px}}
body[data-ongi-service^="0zip"]>header>a.back{transform:none;backface-visibility:visible}
@media(max-width:720px){body[data-ongi-service^="0zip/"] .settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%}body[data-ongi-service^="0zip/"] .settings label{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0}body[data-ongi-service^="0zip/"] .settings select{width:100%;min-width:0;max-width:100%;height:44px}}
body.ongi-map-service :is(.detail,.panel){z-index:1200!important}
@media(max-width:720px){body.ongi-map-service :is(.detail,.panel){top:calc(68px + env(safe-area-inset-top))!important;bottom:12px!important;max-height:calc(100dvh - 80px - env(safe-area-inset-top))!important}}
/* The SDK leaves its center control container without a top offset on these full-screen maps. */
body.ongi-map-service #map>div:has(img[alt="지도 확대"]){top:calc(50% - 40px)!important}
body[data-ongi-service=camfing] .region-count-marker{box-sizing:border-box;min-width:0;width:70px;height:54px;padding:5px;border-radius:14px;border:1px solid #315f57;background:#f5f8ef;color:#253f35;box-shadow:0 3px 9px #253f3520;transform:translate(6px,1px)}
body[data-ongi-service=camfing] .region-count-marker strong{font-size:11px;font-weight:700;line-height:1.1}
body[data-ongi-service=camfing] .region-count-marker span{font-size:18px;color:#315f57}

/* SWARMMING POOL: shared identity; preserve the 60px map navigation offset. */
body[data-ongi-service] .ongi-network{background:#f4f7f2;border-color:#d5e2dc;color:#163d38}
body[data-ongi-service] .ongi-network-brand{gap:9px;color:#163d38;min-width:0;font-size:14px;letter-spacing:.035em;font-weight:500}
body[data-ongi-service] .pool-network-wordmark{font-size:14px;line-height:1.2;white-space:nowrap;font-weight:500}
body[data-ongi-service] .pool-network-wordmark b{font-weight:800}
body[data-ongi-service] .ongi-network-brand img{flex-shrink:0}
body[data-ongi-service] .ongi-network details{flex-shrink:0}
body[data-ongi-service] .ongi-network summary{color:#163d38}
@media(max-width:700px){body[data-ongi-service] .ongi-network{padding-inline:14px;gap:8px}body[data-ongi-service] .pool-network-wordmark{font-size:11px;max-width:92px;white-space:normal}body[data-ongi-service] .pool-network-wordmark b{display:block}body[data-ongi-service] .ongi-network-title{display:none}body[data-ongi-service] .ongi-network summary{font-size:12px;padding-inline:9px}}
@media(max-width:370px){body[data-ongi-service=festival] .ongi-network-brand{flex-basis:100%}body[data-ongi-service=festival] .festival-network-actions{width:100%;justify-content:space-between}}
