/* GROUND SAFE 2026: quiet camping-first design, intentional information hierarchy. */
:root{
 --gs-bg:#091b20;--gs-surface:#142e32;--gs-raised:#1b3a3b;
 --gs-line:rgba(175,214,196,.18);--gs-text:#f3f7ef;
 --gs-muted:#aac6bc;--gs-lime:#d6f0ad;--gs-teal:#82dcc2;
 --gs-orange:#ffcc8b;--gs-red:#ffad9d;
}
html{scroll-behavior:smooth}
body{font-family:system-ui,-apple-system,"Noto Sans KR","Malgun Gothic",sans-serif;
 font-synthesis:none;-webkit-font-smoothing:antialiased}
button,a,input,select,summary{-webkit-tap-highlight-color:transparent}
:where(button,a,input,select,textarea,summary):focus-visible{
 outline:2px solid #d6f0ad;outline-offset:3px;
}
button,.companion-btn,.primary,.outline{transition:background .15s ease,border-color .15s ease,transform .15s ease}
button:not(:disabled):active{transform:scale(.986)}
:where(.companion-segment,.companion-head,.companion-mini,.companion-place,.card,.panel,.hero,
  .feature,.kpi,.companion-business,.og-card){
 border-radius:16px;
}
.companion-head{overflow:hidden}
.companion-visual{background:linear-gradient(135deg,#254a48,#13272e);overflow:hidden}
.companion-visual img{width:100%;height:100%;object-fit:cover}
.companion-heading h2{font-weight:830;letter-spacing:-.055em;line-height:1.25}
.companion-segment{margin-top:17px}
.companion-sub,.companion-small{line-height:1.65}
.companion-business-filters button{border-radius:999px}
.companion-business-results{min-height:50px}
.gs-hazards{background:#112b31;border:1px solid var(--gs-line);border-radius:19px;padding:18px;margin:15px 0 22px;display:grid;gap:13px;min-width:0}
.gs-hazards-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.gs-hazards-title{font-size:17px;font-weight:850;letter-spacing:-.6px;color:var(--gs-text)}
.gs-hazards-head small{font-size:11px;color:var(--gs-muted)}
.gs-hazards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.gs-hazard-card{background:#193538;border:1px solid #345951;border-radius:13px;padding:15px;display:flex;flex-direction:column;gap:8px;min-width:0}
.gs-hazard-name{font-size:12px;font-weight:680;color:#d6e8de}
.gs-hazard-value{font-size:clamp(17px,2.5vw,23px);letter-spacing:-.6px;line-height:1.2;overflow-wrap:anywhere}
.gs-hazard-scope{font-size:10px;color:#adc8be;line-height:1.5}
.haz-present{border-color:#c38a70;background:#493733}.haz-present .gs-hazard-value{color:#ffd3ac}
.haz-none{border-color:#487d6d}.haz-none .gs-hazard-value{color:#d9f1bb}
.haz-unknown{border-color:#817554;background:#35382e}.haz-unknown .gs-hazard-value{color:#f3d29e}
.gs-hazard-detail{font-size:11px;color:#eadfd0;margin-top:4px}
.gs-hazard-detail summary,.gs-hazards-meaning summary{cursor:pointer;line-height:1.6}
.gs-hazard-detail p{margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}
.gs-hazards-meaning{border-top:1px solid rgba(255,255,255,.11);padding-top:9px;color:#b7d5c9;font-size:11px}
.gs-hazards-meaning summary{font-size:11px;font-weight:700}
.gs-hazards-meaning-inner{display:grid;gap:8px;margin:9px 0 0}
.gs-hazards-meaning-inner p{margin:0;line-height:1.65}
.gs-hazards-meaning-inner small{display:inline;color:#9db8ad;margin-left:4px}
.gs-hazards-meaning-inner a{margin-left:8px;text-decoration:underline;color:#e1efa9}
.gs-source-details,.gs-portal-information,.gs-mobile-information,.companion-gallery-collapsible{
 display:block;border-radius:14px;border:1px solid #45685f;background:#17332f;
 margin:18px 0;padding:0;overflow:hidden;
}
.gs-source-details>summary,.gs-portal-information>summary,.gs-mobile-information>summary,.companion-gallery-collapsible>summary{
 list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;
 padding:16px 18px;font-size:13px;font-weight:800;color:#e9f6d8;
}
.gs-source-details>summary::-webkit-details-marker,.gs-portal-information>summary::-webkit-details-marker,
.gs-mobile-information>summary::-webkit-details-marker,.companion-gallery-collapsible>summary::-webkit-details-marker{display:none}
.gs-source-details>summary:after,.gs-portal-information>summary:after,
.gs-mobile-information>summary:after,.companion-gallery-collapsible>summary:after{
 content:"＋";margin-left:auto;color:#c9e8a4;font-size:19px
}
.gs-source-details[open]>summary:after,.gs-portal-information[open]>summary:after,
.gs-mobile-information[open]>summary:after,.companion-gallery-collapsible[open]>summary:after{content:"−"}
.gs-source-details>*:not(summary),.gs-mobile-information>*:not(summary),
.gs-portal-information>*:not(summary),.companion-gallery-collapsible>*:not(summary){margin:12px 16px 18px}
.gs-portal-information{margin-top:28px;padding:0 3px}
.gs-portal-information>summary{background:linear-gradient(110deg,#1c403b,#123030);font-size:15px}
.gs-portal-information #connected{margin-top:22px}
.gs-portal-information .api-grid{margin-top:15px}
.companion-gallery-collapsible .companion-gallery{max-width:100%;overflow:auto}
.companion-gallery-collapsible img{aspect-ratio:3/2;object-fit:cover}
.gs-hide-public-copy{display:none!important}
/* Portal navigation: primary location/workflow, diagnostics one quiet destination */
.sidebar{background:#0c2228}
.sidebar .side-label{display:none}
.sidebar .nav{border-radius:12px;font-size:12px}
.sidebar-bottom{letter-spacing:0}
.top,.header{backdrop-filter:blur(16px)}
.hero{background:radial-gradient(ellipse at 90% 40%,#31665a,#183e40 42%,#143139 100%);box-shadow:0 12px 32px #020f1424}
.hero h1,.pagehead h1{font-weight:850}
.kpi,.feature,.controls,.panel{border-color:#3c5e59}
.primary{background:#d6edb3}
#campCompanionPortal,#campCompanion{scroll-margin-top:100px}
:where(.companion-segment,.gs-hazards,.og-dashboard) {min-width:0}
:where(.companion-gallery-collapsible,.gs-portal-information) {content-visibility:auto}
@media(max-width:720px){
 .gs-hazards{padding:13px;margin:10px 0 16px}
 .gs-hazards-title{font-size:15px}
 .gs-hazards-head small{font-size:10px}
 .gs-hazard-card{padding:11px 8px;gap:7px}
 .gs-hazard-name{font-size:10px}
 .gs-hazard-value{font-size:17px}
 .gs-hazard-scope{font-size:9px}
 .companion-heading h2{font-size:clamp(24px,7vw,31px)}
 .gs-portal-information{margin:20px 0}
}
@media(max-width:370px){
 .gs-hazards-grid{grid-template-columns:1fr}
 .gs-hazard-card{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between}
 .gs-hazard-scope{width:100%}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important}
}

/* v2.1 consumer-first responsive camping companion */
.companion-app{gap:9px;margin:15px 0;align-content:start}
.companion-head{border-radius:18px}
.companion-visual{height:165px}
.companion-heading{padding:15px 18px}
.companion-heading h2{font-size:clamp(21px,4vw,26px)}
.companion-intro{margin:7px 0;font-size:11px;line-height:1.55}
.companion-heading>.companion-small{display:none}
.companion-actions,.companion-cta{margin:7px 0;gap:7px}
.companion-actions>.companion-btn,.companion-cta>.companion-btn{padding:8px 11px;min-height:38px}
.companion-segment{padding:15px;border-radius:14px}
.companion-section-title{font-size:16px;letter-spacing:-.03em}
.companion-sub{line-height:1.55;margin-bottom:10px}
.companion-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.companion-fact{padding:9px 11px}
.companion-fact strong{font-size:11px;line-height:1.4}
.companion-pills{gap:5px;margin:10px 0 0}
.companion-pills span{font-size:10px;padding:6px 9px}
.companion-app .gs-hazards{margin:0}
.companion-solar{background:linear-gradient(120deg,#213e3d,#1a303c);border-color:#587f70}
.companion-solar>.companion-sub{margin-bottom:6px}
.solar-controls{margin:7px 0 11px}
.solar-controls label{flex:1 1 126px}
.solar-controls input{min-height:38px}
.solar-controls .companion-btn{min-height:38px}
.solar-official-top{display:grid;gap:9px;background:#203a41;border:1px solid #6f847e;border-radius:13px;padding:12px;margin-bottom:10px}
.solar-official-top>strong{font-size:12px;color:#f2eedb}
.solar-official-top>small{font-size:10px;color:#c8d8d1;line-height:1.5}
.solar-official-top .solar-card{padding:11px}
.solar-official-top .solar-card strong{font-size:clamp(24px,4vw,30px)}
.solar-camp-calculation{border:1px solid #526d6f;background:#183239;border-radius:9px;margin:9px 0;padding:9px 11px}
.solar-camp-calculation>summary{font-size:11px;font-weight:750;color:#cfe1d6;cursor:pointer}
.solar-camp-calculation>.solar-twocol{margin:10px 0}
.solar-card{padding:12px}
.solar-card strong{font-size:clamp(24px,4vw,30px)}
.solar-summary span{font-size:10px;padding:6px 9px}
.gs-conditions-shell{background:#142e30;border:1px solid #3c685d;border-radius:16px;overflow:hidden;min-width:0}
.gs-conditions-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;padding:5px;background:#102529}
.gs-conditions-tab{appearance:none;border:1px solid transparent;background:transparent;color:#a9c5bc;font:inherit;font-size:13px;font-weight:750;border-radius:10px;min-height:45px;padding:8px 4px;text-align:center;cursor:pointer}
.gs-conditions-tab.active,.gs-conditions-tab[aria-selected="true"]{background:#d5edae;color:#1a3833;border-color:#d5edae}
.gs-conditions-pane{padding:13px;min-width:0}
.gs-conditions-pane[hidden]{display:none!important}
.gs-conditions-pane .wx-dashboard{margin:0;gap:10px}
.gs-conditions-pane .wx-hero{min-height:132px;padding:15px;border-radius:13px}
.gs-conditions-pane .wx-info{grid-template-columns:repeat(2,minmax(0,1fr))}
.gs-conditions-pane .wx-title{font-size:23px}
.gs-conditions-pane .wx-temp{font-size:32px}
.gs-conditions-pane .wx-icon{width:72px;height:72px}
.gs-conditions-pane .wx-metric{padding:9px 11px;gap:5px}
.gs-conditions-pane .wx-metric strong{font-size:17px}
.gs-conditions-pane .og-dashboard{margin:0;gap:8px}
.gs-grade-guide>.og-title{display:grid;gap:4px;margin-top:11px}
.gs-grade-guide>.og-title strong{font-size:15px}
.gs-grade-guide>.og-title small{font-size:10px;line-height:1.5;color:#bfccc6}
.gs-grade-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.gs-grade-grid .og-card{min-width:0;padding:10px 7px;gap:5px;border-radius:10px}
.gs-grade-grid .og-label{font-size:10px;line-height:1.35;white-space:normal}
.gs-grade-grid .og-grade{font-size:13px;overflow-wrap:anywhere}
.gs-grade-grid .og-value{font-size:11px}
.gs-grade-grid .og-scope{font-size:9px;line-height:1.4}
.gs-conditions-pane .companion-segment{border:0;background:transparent;padding:0;margin:0}
.gs-conditions-pane .companion-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.gs-conditions-pane .companion-mini{padding:10px}
.gs-conditions-pane .companion-mini strong{font-size:17px}
.gs-conditions-pane .companion-signals{margin-top:8px}
.gs-weather-expand,.gs-camp-extras,.gs-deep-psi{background:#17322f;border:1px solid #456961;border-radius:13px;overflow:hidden;margin:10px 0 0}
.gs-weather-expand>summary,.gs-camp-extras>summary,.gs-deep-psi>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:13px 15px;cursor:pointer;font-size:12px;font-weight:750;color:#e0f2db}
.gs-weather-expand>summary::-webkit-details-marker,.gs-camp-extras>summary::-webkit-details-marker,.gs-deep-psi>summary::-webkit-details-marker{display:none}
.gs-weather-expand>summary:after,.gs-camp-extras>summary:after,.gs-deep-psi>summary:after{content:"＋";font-size:18px;color:#bedfa2;margin-left:10px}
.gs-weather-expand[open]>summary:after,.gs-camp-extras[open]>summary:after,.gs-deep-psi[open]>summary:after{content:"−"}
.gs-weather-expand>.wx-hours,.gs-weather-expand>.og-tip-grid{margin:6px 12px 13px}
.gs-camp-extras-inner{display:grid;gap:10px;padding:5px 12px 12px}
.gs-camp-extras-inner>.companion-segment{margin:0}
.gs-camp-extras-inner>.gs-source-details{margin:0}
.gs-deep-psi{margin:15px 0}
.gs-deep-psi>.fusion-panel{margin:5px 9px 10px}
.gs-deep-psi>.sectionhead{margin:10px 12px}
.gs-deep-psi>.fusion-card{margin:0 9px 10px}
.gs-conditions-pane .companion-psi-summary{margin-top:8px}
@media(max-width:720px){
 .companion-app{margin:10px 0;gap:8px}
 .companion-visual{height:142px}
 .companion-heading{padding:13px}
 .companion-heading h2{font-size:22px}
 .companion-sub{font-size:10px}
 .companion-actions,.companion-cta{gap:5px}
 .companion-actions>.companion-btn,.companion-cta>.companion-btn{flex:1 1 auto;font-size:10px;min-height:35px;padding:7px}
 .companion-segment{padding:12px}
 .gs-conditions-pane{padding:10px}
 .gs-grade-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .gs-grade-grid .og-grade{font-size:14px}
 .gs-grade-grid .og-card{padding:11px}
 .gs-grade-guide>.og-title{margin-top:5px}
 .solar-controls .companion-btn{flex:1 1 auto}
}

/* Humidity is shown alongside wind/rain, never fabricated from temperature. */
.gs-conditions-pane .wx-info.gs-weather-brief{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.gs-conditions-pane .wx-info.gs-weather-brief .wx-metric{min-width:0;padding:9px 8px}
.gs-conditions-pane .wx-info.gs-weather-brief .wx-metric strong{font-size:clamp(14px,2.2vw,17px);overflow-wrap:anywhere}
@media(max-width:390px){
 .gs-conditions-pane .wx-info.gs-weather-brief{grid-template-columns:repeat(2,minmax(0,1fr))}
 .gs-conditions-pane .wx-info.gs-weather-brief .wx-metric:last-child{grid-column:span 2}
}

/* GROUND SAFE 2.5.1 nationwide area picker integrated stylesheet */
/* GROUND SAFE nationwide area picker, minimal mobile-first layout */
.gs-region-picker{max-width:100%;min-width:0;display:grid;gap:10px;background:linear-gradient(130deg,#173b35,#163033);border:1px solid #4b7967;border-radius:17px;padding:16px;margin:13px 0;color:#e7f2e6}
.gs-region-picker>strong{font-size:17px;font-weight:850;letter-spacing:-.4px}
.gs-region-picker>p{margin:0;line-height:1.5;font-size:11px;color:#bed4c8}
.gs-area-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.gs-area-controls label{display:grid;gap:6px;font-size:11px;font-weight:700;min-width:0}
.gs-area-controls select,.gs-area-tools input{background:#092c29;color:#f5f9ef;border:1px solid #678978;border-radius:9px;min-width:0;width:100%;min-height:40px;padding:8px;font:inherit;font-size:12px}
.gs-region-picker button{background:#2e6352;color:#f0f8e9;border:1px solid #7daa82;border-radius:9px;padding:8px 12px;min-height:40px;cursor:pointer;font-size:12px;font-weight:750}
.gs-region-picker button:disabled{opacity:.55;cursor:wait}
.gs-area-tools{display:flex;gap:7px;align-items:stretch}
.gs-area-tools input{flex:1}
.gs-area-tools button{flex:none}
.gs-area-results{display:grid;gap:7px;max-height:360px;overflow-y:auto}
.gs-area-results>button{display:grid;text-align:left;gap:4px;background:#10322e}
.gs-area-results>button small{color:#bfcec3;font-size:10px}
.gs-area-pages{display:flex;justify-content:center;gap:10px;margin:7px}
.gs-nationwide-map{height:clamp(270px,45vw,430px);min-height:270px;background:#254a43;border:1px solid #698778;border-radius:12px;overflow:hidden;z-index:0}
.gs-nationwide-map[hidden]{display:none}
.gs-region-picker :focus-visible{outline:2px solid #cff3af;outline-offset:2px}
@media(max-width:600px){.gs-region-picker{padding:12px;gap:8px}.gs-area-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.gs-area-controls label:last-child{grid-column:1/-1}.gs-area-tools{flex-wrap:wrap}.gs-area-tools input{flex-basis:100%}.gs-area-tools button{flex:1}}


/* v2.6.0 official campsite condition filters */
.gs-facility-filters{display:flex;flex-wrap:wrap;gap:8px;margin:3px 0 5px}
.gs-facility-filters label{display:inline-flex;align-items:center;gap:6px;border:1px solid #5a8574;background:#123d34;padding:8px 11px;border-radius:25px;font-size:12px;color:#e4f2e3;cursor:pointer}
.gs-facility-filters input{accent-color:#bfe7a4;width:16px;height:16px}

.gs-terrain-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:3px 0 8px}
.gs-terrain-filters strong{width:100%;font-size:12px;color:#d5eccb}
.gs-terrain-filters label{display:inline-flex;align-items:center;gap:6px;border:1px solid #5b836f;border-radius:24px;padding:8px 11px;font-size:12px;background:#123c34;cursor:pointer;color:#e6f0dd}
.gs-terrain-filters input{width:16px;height:16px;accent-color:#c7ed9e}
@media(max-width:767px){.gs-facility-internet,.gs-facility-electricity{display:none!important}}
