/* 캠핑장터 2.0 화면 스타일 — 서버 위치: /var/www/camp/public/assets/app.css
   색: 청록(주색) · 하늘(바탕 강조) · 파랑(인증·정보) */
:root{
  --teal:#0E8C8C; --teal-deep:#06636A; --teal-soft:#D7F0EF;
  --sky:#E4F4FA; --sky-mid:#9ED6EA;
  --blue:#1F6FD1; --blue-soft:#E3EEFC;
  --ink:#12272C; --mute:#627C82; --line:#DFEAEC; --paper:#FFFFFF; --bg:#F3F8F9;
  --warn:#B9740F; --warn-soft:#FCF1DE; --bad:#CF4141; --bad-soft:#FBE6E6; --good:#1E9A5B; --good-soft:#E2F5EA;
  --f-display:"Black Han Sans","IBM Plex Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --f-body:"IBM Plex Sans KR","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
  --r:14px; --tab-h:64px; --wide:1120px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:hidden}   /* 어떤 기종에서도 화면이 좌우로 밀리지 않게 */
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.55;
  padding-bottom:calc(var(--tab-h) + env(safe-area-inset-bottom,0px))}
body.no-tabbar{padding-bottom:0}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.ic{width:22px;height:22px;flex:none}
.ic-s{width:16px;height:16px;flex:none}
.muted{color:var(--mute)}
.small{font-size:13px}
.num{font-variant-numeric:tabular-nums}
.hide{display:none!important}

/* ---------- 위쪽 바 ---------- */
.topbar{position:sticky;top:0;z-index:30;background:var(--paper);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.topbar-in{max-width:var(--wide);margin:0 auto;display:flex;align-items:center;gap:12px;padding:10px 16px;min-height:56px}
.brand{font-family:var(--f-display);font-size:23px;color:var(--teal);letter-spacing:-.3px;white-space:nowrap}
/* 캠핑장터 ↔ 낚시장터 스위치 (로고 옆) */
.mk-sw{flex:none;position:relative;width:54px;height:30px;border-radius:15px;background:var(--teal-soft);border:1px solid var(--line);display:inline-block;transition:background .2s}
.mk-sw .mk-knob{position:absolute;top:2px;left:2px;width:24px;height:24px;border-radius:50%;background:var(--paper);box-shadow:0 1px 3px rgba(0,0,0,.2);display:grid;place-items:center;color:var(--teal);transition:transform .2s}
.mk-sw .mk-knob svg{width:16px;height:16px}
.mk-sw.on{background:var(--teal)}
.mk-sw.on .mk-knob{transform:translateX(24px)}
.mk-beta{flex:none}
@media (max-width:520px){ .bd.mk-beta{display:none} .tadmin{display:none} }   /* 휴대폰: 관리자 화면은 MY → 관리자 화면으로 */
@media (prefers-reduced-motion:reduce){ .mk-sw,.mk-sw .mk-knob{transition:none} }
/* 낚시장터: 깊은 바다색 */
body.mk-fish{--teal:#1D5FA6;--teal-deep:#123F73;--teal-soft:#DCE8F6;--sky:#E5EFFA;--sky-mid:#9DBFE6;--bg:#F2F6FB;--line:#DCE5EF}
.tb-back{display:grid;place-items:center;margin-left:-6px}
.tsearch{flex:1;display:flex;align-items:center;gap:8px;background:var(--bg);border-radius:12px;padding:0 12px;min-width:0;max-width:420px;color:var(--mute)}
.tsearch input{border:0;background:transparent;padding:9px 0;width:100%;outline:none;color:var(--ink);min-width:0}
.tnav{display:none;gap:4px}
.tnav a{padding:8px 12px;border-radius:10px;font-weight:600;color:var(--mute);position:relative}
.tnav a.on,.tnav a:hover{color:var(--ink);background:var(--bg)}
.tright{display:flex;align-items:center;gap:6px;margin-left:auto}
.tbell{position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:10px}
.tmy{display:none;align-items:center;gap:6px;padding:8px 10px;border-radius:10px;font-weight:600;font-size:14px}
.tmy span{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tright .tsell{display:none}
.dot{position:absolute;top:2px;right:0;min-width:17px;height:17px;padding:0 5px;border-radius:999px;background:var(--teal);color:#fff;font-style:normal;font-size:10.5px;font-weight:700;line-height:17px;text-align:center}
@media (min-width:860px){
  .tnav,.tmy,.tright .tsell{display:flex}
  .tright .tsell{padding:9px 14px}
  .tabbar{display:none!important}
  body{padding-bottom:0}
  .tb-back{display:none}
}
@media (max-width:520px){ .tsearch{display:none} .tsearch.show{display:flex} }

/* ---------- 아래 탭 ---------- */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;
  background:var(--paper);border-top:1px solid var(--line);padding:6px 4px calc(8px + env(safe-area-inset-bottom,0px));height:calc(var(--tab-h) + env(safe-area-inset-bottom,0px))}
.tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;color:var(--mute);position:relative}
.tabbar a.on{color:var(--teal);font-weight:700}
.tabbar .cam span{width:52px;height:52px;margin-top:-22px;border-radius:18px;background:var(--teal);color:#fff;display:grid;place-items:center;border:3px solid var(--paper);box-shadow:0 6px 14px -6px rgba(14,140,140,.8)}
.tabbar .cam .ic{width:26px;height:26px}
.tabbar .dot{right:calc(50% - 22px)}

/* ---------- 본문 ---------- */
.main{max-width:var(--wide);margin:0 auto;padding:0 0 24px}
.wrap{padding:16px}
.narrow{max-width:560px;margin:0 auto}
.page-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 16px 10px}
.page-h h1{margin:0;font-size:21px;letter-spacing:-.3px}
.page-h h1 small{font-size:13px;color:var(--mute);font-weight:500;margin-left:6px}
@media (min-width:860px){ .main{padding:8px 24px 48px} .page-h{padding:24px 0 14px} .wrap{padding:16px 0} }

.flashes{max-width:var(--wide);margin:10px auto 0;padding:0 16px;display:flex;flex-direction:column;gap:6px}
.flash{padding:11px 14px;border-radius:12px;font-size:14px;background:var(--good-soft);color:#14603a}
.flash-bad{background:var(--bad-soft);color:#8a2424}
.flash-info{background:var(--blue-soft);color:#14468a}

/* ---------- 버튼·입력 ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:12px;padding:12px 16px;font-weight:700;font-size:15px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;line-height:1.2;white-space:nowrap}
.btn:hover{border-color:#c4d6d9}
.btn-p{background:var(--teal);border-color:var(--teal);color:#fff}
.btn-p:hover{background:var(--teal-deep);border-color:var(--teal-deep)}
.btn-b{background:var(--blue);border-color:var(--blue);color:#fff}
.btn-ghost{background:transparent;border-color:transparent;color:var(--mute)}
.btn-danger{color:var(--bad);border-color:#f0c9c9}
.btn-sm{padding:8px 12px;font-size:13px;border-radius:10px}
.btn-block{display:flex;width:100%}
.btn[disabled],.btn.disabled{opacity:.45;pointer-events:none}
.btn-nv{background:#03C75A;border-color:#03C75A;color:#fff}
.btn-kk{background:#FEE500;border-color:#FEE500;color:#191919}
.soc{width:20px;height:20px;border-radius:5px;display:grid;place-items:center;font-weight:800;font-size:12px}

.form{display:flex;flex-direction:column;gap:16px}
.field{display:flex;flex-direction:column;gap:6px}
.field>label,.field>.lbl{font-size:14px;font-weight:600}
.field .hint{font-size:12.5px;color:var(--mute)}
.input,select.input,textarea.input{width:100%;border:1px solid var(--line);background:var(--paper);border-radius:12px;padding:12px 14px;font-size:15px;outline:none}
.input:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft)}
textarea.input{min-height:140px;resize:vertical;line-height:1.6}
.input-won{position:relative}
.input-won .input{padding-right:40px;font-weight:700;font-variant-numeric:tabular-nums}
.input-won::after{content:"원";position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--mute)}
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--paper)}
.seg label{display:block;text-align:center;cursor:pointer}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:block;padding:10px 4px;font-size:14px}
.seg input:checked+span{background:var(--ink);color:#fff;font-weight:700}
.seg input:focus-visible+span{outline:2px solid var(--blue);outline-offset:-2px}
.check{display:flex;align-items:flex-start;gap:10px;font-size:14.5px;cursor:pointer}
.check input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--teal);flex:none}
.err{color:var(--bad);font-size:13px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.sect{background:var(--paper);padding:16px;border-bottom:8px solid var(--bg)}
@media (min-width:860px){ .sect{border:1px solid var(--line);border-radius:var(--r);margin-bottom:12px} }
.sect-t{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px;font-size:16px;font-weight:700}
.sect-t small{font-weight:500;color:var(--mute);font-size:13px}

/* ---------- 카테고리 칩 ---------- */
.chips{display:flex;gap:6px;overflow-x:auto;padding:12px 16px;scrollbar-width:none;background:var(--paper);border-bottom:1px solid var(--line);overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;font-size:13.5px;padding:7px 13px;border-radius:999px;border:1px solid var(--line);background:var(--paper);white-space:nowrap}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:600}
@media (min-width:860px){ .chips{background:transparent;border:0;padding:0 0 16px;flex-wrap:wrap} }

/* ---------- 상품 목록 (휴대폰: 줄 / PC: 카드) ---------- */
.items{display:flex;flex-direction:column;background:var(--paper)}
.it{display:flex;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line);position:relative}
.it-img{flex:none;width:104px;height:104px;border-radius:12px;overflow:hidden;background:linear-gradient(150deg,var(--sky),var(--teal-soft));color:var(--teal-deep);display:grid;place-items:center;position:relative}
.it-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}   /* 칸을 꽉 채우고 장비 위치(style)가 가운데 */
.it-img svg{width:46px;height:46px}
.it-img .st{position:absolute;left:6px;top:6px;background:rgba(18,39,44,.78);color:#fff;font-size:11px;font-weight:700;padding:2px 7px;border-radius:6px}
.it-b{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}
.it-t{font-size:15.5px;line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.it-m{font-size:12.5px;color:var(--mute)}
.it-p{font-weight:700;font-size:16.5px;font-variant-numeric:tabular-nums}
.it-c{margin-top:auto;display:flex;justify-content:flex-end;gap:10px;font-size:12px;color:var(--mute)}
.it-c span{display:inline-flex;align-items:center;gap:3px}
.badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}
.bd{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;font-weight:600;padding:1px 7px;border-radius:6px;line-height:1.65;white-space:nowrap}
.bd .ic-s{width:12px;height:12px}
.bd-v{background:var(--blue-soft);color:var(--blue)}
.bd-g{background:var(--teal-soft);color:var(--teal-deep)}
.bd-w{background:var(--warn-soft);color:var(--warn)}
.bd-n{background:var(--bg);color:var(--mute)}
.bd-bad{background:var(--bad-soft);color:var(--bad)}
/* 태블릿·PC: 카드를 작게 (한 칸 약 180~220px) — 화면이 넓으면 칸 수가 늘어남 */
@media (min-width:600px){
  .items{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:22px 16px;background:transparent;padding:0 16px}
  .it{flex-direction:column;padding:0;border:0;gap:10px}
  .it-img{width:100%;height:auto;aspect-ratio:1/1;max-width:100%;border-radius:14px}
  .it-img svg{width:70px;height:70px}
  .it-c{justify-content:flex-start}
}
@media (min-width:860px){ .items{padding:0} }
.more{display:flex;justify-content:center;padding:18px 16px}

.empty{padding:56px 24px;text-align:center;color:var(--mute);display:flex;flex-direction:column;align-items:center;gap:12px}
.empty b{color:var(--ink);font-size:17px}
.empty svg{width:56px;height:56px;color:var(--teal)}

/* ---------- 상품 상세 ---------- */
.detail{display:grid;grid-template-columns:minmax(0,1fr)}
@media (min-width:860px){ .detail{grid-template-columns:minmax(0,460px) minmax(0,1fr);gap:32px;padding-top:20px;align-items:start} }
.gallery{position:relative;background:var(--paper)}
.g-main{aspect-ratio:1/1;max-width:100%;background:linear-gradient(150deg,var(--sky),var(--teal-soft));display:grid;place-items:center;overflow:hidden;color:var(--teal-deep)}
.g-main img{width:100%;height:100%;object-fit:contain;background:#0b1c1f}
.g-main svg{width:120px;height:120px}
@media (min-width:860px){ .g-main{border-radius:18px} }
.g-thumbs{display:flex;gap:6px;padding:10px 16px;overflow-x:auto}
@media (min-width:860px){ .g-thumbs{padding:10px 0} }
.g-thumbs button{flex:none;width:64px;height:64px;border-radius:10px;overflow:hidden;border:2px solid transparent;padding:0;background:var(--bg);cursor:pointer}
.g-thumbs button.on{border-color:var(--teal)}
.g-thumbs button{position:relative}
.g-thumbs img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.seller{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--paper);border-bottom:1px solid var(--line)}
@media (min-width:860px){ .seller{border:1px solid var(--line);border-radius:var(--r);margin-bottom:12px} }
.avatar{width:44px;height:44px;border-radius:50%;background:var(--teal-soft);color:var(--teal-deep);display:grid;place-items:center;flex:none;overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar.lg{width:60px;height:60px}
.lv{display:inline-flex;align-items:center;font-size:11.5px;font-weight:700;color:var(--teal-deep);background:var(--teal-soft);padding:2px 8px;border-radius:999px;white-space:nowrap}
.d-body{background:var(--paper);padding:16px}
@media (min-width:860px){ .d-body{border:1px solid var(--line);border-radius:var(--r);margin-bottom:12px} }
.d-title{font-size:21px;font-weight:700;margin:0 0 4px;letter-spacing:-.3px;line-height:1.35}
.d-price{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums;margin:8px 0 2px}
.d-desc{white-space:pre-wrap;word-break:break-word;margin:16px 0 8px;line-height:1.75}
.d-facts{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 16px;font-size:14px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.d-facts dt{color:var(--mute)}
.d-facts dd{margin:0}
.owner-bar{display:flex;flex-wrap:wrap;gap:6px;padding:12px 16px;background:var(--paper);border-top:1px solid var(--line)}
@media (min-width:860px){ .owner-bar{padding:0;background:transparent;border:0;margin-bottom:12px} }
.dock{position:sticky;bottom:calc(var(--tab-h) + env(safe-area-inset-bottom,0px));z-index:20;display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--paper);border-top:1px solid var(--line)}
.no-tabbar .dock{bottom:env(safe-area-inset-bottom,0px)}
@media (min-width:860px){ .dock{position:static;border:1px solid var(--line);border-radius:var(--r)} }
.like{width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:var(--paper);display:grid;place-items:center;color:var(--mute);cursor:pointer;flex:none}
.like.on{color:var(--bad);border-color:#f3caca}
.like.on svg{fill:currentColor}

/* VERIFIED 허가증 */
.permit{border-radius:14px;background:var(--paper);border:1.5px solid var(--blue);overflow:hidden;margin:12px 16px}
@media (min-width:860px){ .permit{margin:0 0 12px} }
.permit-h{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--blue);color:#fff}
.permit-h strong{font-family:var(--f-display);font-weight:400;font-size:17px;letter-spacing:.3px}
.permit-h em{margin-left:auto;font-style:normal;font-size:12px;opacity:.92;font-variant-numeric:tabular-nums}
.permit.teal{border-color:var(--teal)}
.permit.teal .permit-h{background:var(--teal)}
.permit.old{border-color:var(--warn)}
.permit.old .permit-h{background:var(--warn)}
.permit ul{list-style:none;margin:0;padding:12px 14px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px 12px;font-size:13.5px}
.permit li{display:flex;align-items:center;gap:6px}
.permit li.ok svg{color:var(--good)}
.permit li.no{color:var(--mute)}
.permit .fine{padding:0 14px 12px;font-size:12px;color:var(--mute);line-height:1.5}

/* 신뢰카드 */
.trust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.trust div{background:var(--paper);padding:11px 6px;text-align:center;display:flex;flex-direction:column;gap:1px}
.trust b{font-size:17px;font-variant-numeric:tabular-nums}
.trust span{font-size:12px;color:var(--mute)}
.tags{display:flex;flex-direction:column;gap:6px;font-size:13.5px;margin-top:12px}
.tags div{display:flex;justify-content:space-between}
.tags b{color:var(--teal-deep);font-variant-numeric:tabular-nums}
.bar{height:7px;border-radius:4px;background:var(--bg);overflow:hidden}
.bar i{display:block;height:100%;background:var(--teal);border-radius:4px}

/* 메뉴 목록 */
.menu{background:var(--paper)}
@media (min-width:860px){ .menu{border:1px solid var(--line);border-radius:var(--r);overflow:hidden} }
.menu a,.menu button{display:flex;align-items:center;gap:12px;width:100%;padding:15px 16px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;font-size:15px;cursor:pointer}
.menu a:last-child,.menu form:last-child button{border-bottom:0}
.menu .r{margin-left:auto;color:var(--mute);font-size:13px;display:flex;align-items:center;gap:4px}

/* ---------- 판매 등록 (촬영 미션) ---------- */
.steps{display:flex;gap:4px;padding:0 16px}
.steps i{flex:1;height:4px;border-radius:2px;background:var(--line)}
.steps i.d{background:var(--teal)}
.missions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:12px 16px}
@media (min-width:600px){ .missions{grid-template-columns:minmax(0,1fr) minmax(0,1fr)} }
.mission{display:flex;gap:12px;align-items:center;background:var(--paper);border:1.5px dashed #b9d3d7;border-radius:14px;padding:12px;position:relative}
.mission.done{border-style:solid;border-color:var(--teal)}
.mission.warn{border-color:var(--warn)}
.mission .shot{width:76px;height:76px;flex:none;border-radius:12px;background:var(--bg);display:grid;place-items:center;overflow:hidden;color:var(--mute)}
.mission .shot img{width:100%;height:100%;object-fit:cover}
.mission .mb{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.mission .mn{font-size:12px;color:var(--mute);font-weight:600}
.mission .mt{font-weight:700;font-size:15px;line-height:1.35}
.mission .ms{font-size:12.5px}
.mission label.btn{align-self:flex-start}
.mission input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.mission .shot{position:relative}
.mission.busy .shot::after,.mission.checking .shot::after{content:"";position:absolute;inset:0;margin:auto;width:24px;height:24px;border-radius:50%;border:3px solid rgba(255,255,255,.7);border-top-color:var(--teal);animation:spin .8s linear infinite;background:rgba(18,39,44,.25);box-shadow:0 0 0 30px rgba(18,39,44,.18)}
.mission.checking{border-color:var(--sky-mid)}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){ .mission.busy .shot::after,.mission.checking .shot::after,.x-load,.spinner.sm{animation:none} }
.timer{display:inline-flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums;font-weight:700;color:var(--teal-deep);background:var(--teal-soft);padding:4px 10px;border-radius:999px;font-size:13px}
.timer.low{color:var(--bad);background:var(--bad-soft)}
.note{margin:12px 16px;padding:12px 14px;border-radius:12px;background:var(--blue-soft);font-size:13.5px;display:flex;gap:8px;line-height:1.55}
.note svg{color:var(--blue);margin-top:2px}
.note.warn{background:var(--warn-soft)}
.note.warn svg{color:var(--warn)}
@media (min-width:860px){ .note{margin:12px 0} .steps,.missions{padding-left:0;padding-right:0} }
.extras{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 8px}
@media (min-width:860px){ .extras{padding:0 0 8px} }
.extras .x{width:72px;height:72px;border-radius:10px;overflow:hidden;position:relative;background:var(--bg)}
.extras .x img{width:100%;height:100%;object-fit:cover}
.extras .x button{position:absolute;right:3px;top:3px;width:22px;height:22px;border-radius:50%;border:0;background:rgba(18,39,44,.7);color:#fff;display:grid;place-items:center;cursor:pointer;padding:0}
.extras .x button svg{width:12px;height:12px}
.extras label{width:72px;height:72px;border-radius:10px;border:1.5px dashed #b9d3d7;display:grid;place-items:center;color:var(--mute);cursor:pointer;position:relative}
.extras input{position:absolute;width:1px;height:1px;opacity:0}

/* ---------- 채팅 ---------- */
.rooms{background:var(--paper)}
@media (min-width:860px){ .rooms{border:1px solid var(--line);border-radius:var(--r);overflow:hidden} }
.room{display:flex;gap:12px;align-items:center;padding:13px 16px;border-bottom:1px solid var(--line)}
.room .rb{flex:1;min-width:0}
.room .rn{display:flex;gap:6px;align-items:baseline}
.room .rp{font-size:14px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room .rp.unread{color:var(--ink);font-weight:600}
.room .cnt{margin-left:auto;background:var(--teal);color:#fff;font-size:11px;border-radius:999px;padding:0 7px;font-weight:700;line-height:18px}
.room-thumb{width:46px;height:46px;border-radius:10px;overflow:hidden;flex:none;background:linear-gradient(150deg,var(--sky),var(--teal-soft));display:grid;place-items:center;color:var(--teal-deep)}
.room-thumb img{width:100%;height:100%;object-fit:cover}
.room-thumb svg{width:24px;height:24px}

.chatwrap{display:flex;flex-direction:column;height:calc(100dvh - 57px - var(--tab-h) - env(safe-area-inset-bottom,0px) - env(safe-area-inset-top,0px));background:var(--bg)}
.no-tabbar .chatwrap{height:calc(100dvh - 57px - env(safe-area-inset-top,0px))}
@media (min-width:860px){ .chatwrap{height:calc(100dvh - 120px);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-top:16px} }
.c-item{display:flex;gap:10px;align-items:center;padding:10px 16px;background:var(--paper);border-bottom:1px solid var(--line)}
.c-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:6px;padding:8px 16px 10px;background:var(--paper);border-bottom:1px solid var(--line)}
.msgs{flex:1;overflow-y:auto;padding:14px 12px;display:flex;flex-direction:column;gap:8px;overscroll-behavior:contain}
.m{max-width:76%;padding:9px 12px;border-radius:16px;font-size:14.5px;line-height:1.5;white-space:pre-wrap;word-break:break-word}
.m-row{display:flex;align-items:flex-end;gap:6px}
.m-row.me{justify-content:flex-end}
.m-row .t{font-size:10.5px;color:var(--mute);flex:none}
.m-row.me .m{background:var(--teal);color:#fff;border-bottom-right-radius:5px}
.m-row.you .m{background:var(--paper);border-bottom-left-radius:5px}
.sys{align-self:center;font-size:12px;color:var(--mute);background:var(--paper);padding:4px 12px;border-radius:999px;text-align:center;max-width:90%}
.day{align-self:center;font-size:12px;color:var(--mute);padding:6px 0}
.ocard{width:250px;max-width:82%;background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.m-row.me .ocard{border-color:var(--teal)}
.ocard .oh{padding:10px 12px 0;font-size:12.5px;color:var(--mute);display:flex;align-items:center;gap:6px}
.ocard .ov{padding:2px 12px 8px;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}
.ocard .ox{padding:0 12px 10px;font-size:13.5px;line-height:1.5}
.ocard .os{padding:0 12px 10px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:4px}
.os.ok{color:var(--good)} .os.no{color:var(--mute)} .os.wait{color:var(--warn)}
.ocard .oa{display:flex;border-top:1px solid var(--line)}
.ocard .oa button{flex:1;padding:10px 0;border:0;background:none;font-size:13.5px;font-weight:600;cursor:pointer}
.ocard .oa button+button{border-left:1px solid var(--line)}
.ocard .oa .yes{color:var(--teal-deep)}
.composer{display:flex;gap:8px;align-items:flex-end;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));background:var(--paper);border-top:1px solid var(--line)}
.composer textarea{flex:1;resize:none;border:0;background:var(--bg);border-radius:20px;padding:10px 14px;max-height:120px;min-height:42px;outline:none;line-height:1.4;font-size:15px}
.composer .btn{border-radius:20px;padding:10px 16px}

/* 아래에서 올라오는 창 */
.sheet-bg{position:fixed;inset:0;background:rgba(10,30,34,.45);z-index:50;display:flex;align-items:flex-end;justify-content:center}
.sheet-bg[hidden]{display:none}
.sheet{width:100%;max-width:520px;background:var(--paper);border-radius:20px 20px 0 0;padding:18px 18px calc(18px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:14px;max-height:90dvh;overflow:auto}
@media (min-width:860px){ .sheet-bg{align-items:center} .sheet{border-radius:20px} }
.sheet h3{margin:0;font-size:18px}

/* ---------- 로그인 ---------- */
.login{max-width:440px;margin:0 auto;padding:28px 20px 40px;display:flex;flex-direction:column;gap:12px}
.login-hero{border-radius:22px;padding:26px 22px;background:linear-gradient(170deg,var(--sky) 0%,var(--paper) 90%);border:1px solid var(--line);margin-bottom:8px}
.login-hero .brand{font-size:30px}
.login-hero h1{font-size:23px;line-height:1.35;margin:14px 0 6px;letter-spacing:-.5px;text-wrap:balance}
.login-hero p{margin:0;color:var(--mute)}
.glyphs{display:flex;gap:10px;color:var(--teal-deep);margin-top:16px}
.glyphs svg{width:30px;height:30px}
/* 알림 설정 */
.nset{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 0 14px}
.nset-h{font-size:13px;color:var(--mute);font-weight:600;margin:0;padding:12px 16px 4px}
.nrow{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--line)}
.nset-h+.nrow{border-top:0}
.nrow[hidden]{display:none}
.nrow-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.nquiet .input{width:auto;flex:1;min-width:0;padding:10px}
.sw{appearance:none;-webkit-appearance:none;flex:none;width:50px;height:30px;border-radius:15px;background:#C9D6D9;position:relative;cursor:pointer;transition:background .15s;margin:0}
.sw::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}
.sw:checked{background:var(--teal)}
.sw:checked::after{transform:translateX(20px)}
.sw:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.sw:disabled{opacity:.5}
.nick-msg{font-size:13px;min-height:0}
.nick-msg:empty{display:none}
.nick-msg.ok{color:#0F8A5F}
.nick-msg.ok::before{content:"✓ "}
.nick-msg.bad{color:#D14343}
.nick-msg.bad::before{content:"✕ "}
.login-links{display:flex;justify-content:center;gap:10px;font-size:14px;color:var(--mute)}
.login-links a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.divider{display:flex;align-items:center;gap:10px;color:var(--mute);font-size:12.5px;margin:10px 0 2px}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--line)}

/* ---------- 관리자 ---------- */
.admin-nav{display:flex;gap:6px;flex-wrap:wrap;padding:0 16px 12px}
@media (min-width:860px){ .admin-nav{padding:0 0 12px} }
.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 16px}
@media (min-width:860px){ .stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));padding:0} }
.stat{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:14px}
.stat span{font-size:13px;color:var(--mute)}
.stat b{display:block;font-size:24px;font-variant-numeric:tabular-nums}
.tbl-wrap{overflow-x:auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);margin:0 16px}
@media (min-width:860px){ .tbl-wrap{margin:0} }
table.tbl{width:100%;border-collapse:collapse;font-size:13.5px;min-width:720px}
.tbl th,.tbl td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.tbl th{font-size:12.5px;color:var(--mute);font-weight:600;background:var(--bg)}
.tbl td form{display:inline}
.tbl .acts{display:flex;flex-wrap:wrap;gap:4px}

/* ---------- 아래 정보 ---------- */
.foot{border-top:1px solid var(--line);background:var(--paper);margin-top:24px}
.foot-in{max-width:var(--wide);margin:0 auto;padding:20px 16px 24px;font-size:12.5px;color:var(--mute)}
.foot nav{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:8px}
.foot p{margin:4px 0}
.foot-note{font-size:11.5px}
@media (min-width:860px){ .foot-in{padding:24px} }

.legal{background:var(--paper);padding:20px 18px 32px;line-height:1.8;font-size:14.5px}
@media (min-width:860px){ .legal{border:1px solid var(--line);border-radius:var(--r);padding:32px 40px;max-width:820px} }
.legal h2{font-size:16px;margin:24px 0 6px}
.legal .draft{background:var(--warn-soft);color:#7a4c08;padding:10px 12px;border-radius:10px;font-size:13px}

.stars{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px}
.stars input{position:absolute;opacity:0}
.stars label{cursor:pointer;color:#cfdcde}
.stars label svg{width:34px;height:34px}
.stars input:checked~label,.stars label:hover,.stars label:hover~label{color:#F2B01E}
.tagpick{display:flex;flex-wrap:wrap;gap:6px}
.tagpick label{position:relative}
.tagpick input{position:absolute;opacity:0}
.tagpick span{display:inline-block;padding:8px 12px;border:1px solid var(--line);border-radius:999px;font-size:13.5px;cursor:pointer;background:var(--paper)}
.tagpick input:checked+span{background:var(--teal-soft);border-color:var(--teal);color:var(--teal-deep);font-weight:600}
.tagpick input:focus-visible+span{outline:2px solid var(--blue)}

.noti{display:flex;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--paper)}
.noti.unread{background:#f2fafb}
.noti .nb{flex:1;min-width:0}
.noti .nt{font-weight:600}

.msearch{display:none;align-items:center;gap:8px;margin:12px 16px 0;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:0 12px;color:var(--mute)}
.msearch input{border:0;background:transparent;padding:11px 0;width:100%;outline:none;color:var(--ink)}
@media (max-width:520px){ .msearch{display:flex} }
.pc-only{display:none!important}
@media (min-width:860px) and (pointer:fine){ .pc-only{display:flex!important} }
[hidden]{display:none!important}
@media (min-width:860px){ .gallery{background:transparent} }
.spinner{width:40px;height:40px;border-radius:50%;border:4px solid var(--teal-soft);border-top-color:var(--teal);animation:spin .9s linear infinite}
@media (prefers-reduced-motion:reduce){ .spinner{animation:none} }
.ai-panel{margin:12px 16px;border-radius:14px;border:1.5px solid var(--blue);background:var(--paper);overflow:hidden}
@media (min-width:860px){ .ai-panel{margin:12px 0} }
.ai-panel .ah{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--blue-soft);color:var(--blue);font-weight:700}
.ai-panel .ab{padding:12px 14px;display:flex;flex-direction:column;gap:8px;font-size:14px}
.ai-row{display:flex;gap:8px;align-items:flex-start}
.ai-row svg{margin-top:3px}
.ai-row .ok{color:var(--good)} .ai-row .wa{color:var(--warn)}
.ai-panel .fine{font-size:12px;color:var(--mute)}
.price-panel{margin:12px 16px;border-radius:14px;border:1.5px solid var(--teal);background:var(--paper);padding:14px;display:flex;flex-direction:column;gap:10px}
@media (min-width:860px){ .price-panel{margin:12px 0} }
.price-panel .pr{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}
.range{position:relative;height:10px;border-radius:5px;background:linear-gradient(90deg,var(--teal-soft),var(--teal),var(--blue))}
.opts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.opt{border:1px solid var(--line);border-radius:12px;padding:9px 4px;text-align:center;display:flex;flex-direction:column;gap:1px;background:var(--paper);cursor:pointer;font:inherit}
.opt span{font-size:12px;color:var(--mute)}
.opt b{font-size:14.5px;font-variant-numeric:tabular-nums}
.opt.on{border-color:var(--teal);background:var(--teal-soft)}
.srcs{display:flex;flex-direction:column;gap:4px;font-size:12.5px}
.srcs a{color:var(--blue);text-decoration:underline;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.market{display:flex;flex-direction:column;gap:4px;font-size:14px}
.match{margin:12px 16px;border-radius:14px;border:1.5px solid var(--blue);background:var(--paper);padding:14px;display:flex;flex-direction:column;gap:10px}
@media (min-width:860px){ .match{margin:12px 0} }
.match-h{font-weight:700;font-size:16px}
.match-imgs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.match-imgs figure{margin:0;display:flex;flex-direction:column;gap:4px;min-width:0}
.match-imgs .mi{aspect-ratio:1/1;max-width:100%;border-radius:12px;overflow:hidden;background:var(--bg);display:grid;place-items:center}
.match-imgs .mi img{width:100%;height:100%;object-fit:contain;background:#fff}
.match-imgs figcaption{font-size:12px;color:var(--mute)}
.match-imgs figcaption a{color:var(--blue);text-decoration:underline}
.match-btns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.match.ok{border-color:var(--teal)}
.match.ok .match-btns{display:none}
.match.no{border-color:var(--line)}
.match.no .match-btns{display:none}
.pp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.pp{display:flex;flex-direction:column;gap:2px;background:var(--bg);border-radius:12px;padding:10px 12px;min-width:0}
.pp-l{font-size:12.5px;color:var(--mute);font-weight:600}
.pp-v{font-size:17px;font-variant-numeric:tabular-nums;line-height:1.3}
.srcs-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
@media (min-width:600px){ .srcs-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)} }

/* 상세 사진 넘기기 */
.gallery{position:relative}
.g-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;aspect-ratio:1/1;max-width:100%;background:var(--bg);overscroll-behavior-x:contain;touch-action:pan-x pan-y}
.g-track::-webkit-scrollbar{display:none}
.g-slide{flex:0 0 100%;scroll-snap-align:center;scroll-snap-stop:always;position:relative;overflow:hidden}
.g-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;user-select:none;-webkit-user-drag:none}   /* 칸을 꽉 채우고, 장비 위치(style)가 있으면 장비가 가운데 */
@media (min-width:860px){ .g-track{border-radius:18px} }
@media (prefers-reduced-motion:reduce){ .g-track{scroll-behavior:auto} }
.g-count{position:absolute;right:12px;top:12px;background:rgba(18,39,44,.72);color:#fff;font-size:12.5px;padding:3px 10px;border-radius:999px;font-variant-numeric:tabular-nums;pointer-events:none}
.g-nav{position:absolute;top:calc(50% - 22px);width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.9);box-shadow:0 2px 8px rgba(6,40,44,.2);display:none;place-items:center;cursor:pointer;color:var(--ink)}
.g-nav.prev{left:10px} .g-nav.next{right:10px}
@media (pointer:fine){ .g-nav{display:grid} }
.g-nav[disabled]{opacity:0;pointer-events:none}
.g-stage{position:relative}
.g-dots{position:absolute;left:0;right:0;bottom:12px;display:flex;justify-content:center;gap:5px;pointer-events:none}
.g-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.6);box-shadow:0 0 2px rgba(0,0,0,.4)}
.g-dots i.on{background:#fff;width:16px;border-radius:3px}

.m-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.m-acts .btn{margin:0}

/* 택배 거래 */
.ship-steps{list-style:none;margin:0;padding:14px 16px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;background:var(--paper);border-bottom:8px solid var(--bg)}
@media (min-width:860px){ .ship-steps{border:1px solid var(--line);border-radius:var(--r);margin-bottom:12px} }
.ship-steps li{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11px;color:var(--mute);text-align:center;position:relative}
.ship-steps li i{width:14px;height:14px;border-radius:50%;background:var(--line);border:2px solid var(--paper);box-shadow:0 0 0 2px var(--line);z-index:1}
.ship-steps li::before{content:"";position:absolute;top:6px;left:-50%;width:100%;height:2px;background:var(--line)}
.ship-steps li:first-child::before{display:none}
.ship-steps li.d i{background:var(--teal);box-shadow:0 0 0 2px var(--teal)}
.ship-steps li.d::before,.ship-steps li.now::before{background:var(--teal)}
.ship-steps li.now i{background:var(--paper);box-shadow:0 0 0 3px var(--teal)}
.ship-steps li.now span{color:var(--ink);font-weight:700}
.ship-chk{margin-top:10px;padding:10px 12px;border-radius:12px;display:flex;flex-direction:column;gap:2px;font-size:13.5px}
.ship-chk.ok{background:var(--good-soft);color:#14603a}
.ship-chk.warn{background:var(--warn-soft);color:#7a4c08}
.ship-chk.bad{background:var(--bad-soft);color:#8a2424}
.ship-chk.none{background:var(--bg);color:var(--mute)}
.ship-chk span{color:var(--ink);font-size:13px}
.ship-track{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.ship-track div{display:flex;flex-direction:column;gap:2px;min-width:0}
.ship-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ship-photos figure{margin:0;display:flex;flex-direction:column;gap:4px;min-width:0}
.ship-photos .mi{aspect-ratio:1/1;max-width:100%;border-radius:10px;overflow:hidden;background:var(--bg);display:grid;place-items:center}
.ship-photos .mi img{width:100%;height:100%;object-fit:cover}
.ship-photos figcaption{font-size:12px;color:var(--mute);text-align:center}
.ship-bar{display:flex;align-items:center;gap:8px;padding:9px 16px;background:var(--blue-soft);font-size:13.5px;border-bottom:1px solid var(--line)}
.ship-bar b{color:var(--blue)}
.ship-bar a{margin-left:auto;color:var(--blue);font-weight:600;text-decoration:underline}

/* 앱 안에서는 PC 안내 숨김 */
.in-app .pc-only{display:none!important}

/* 우리 동네 지도 */
.nmap-wrap{position:relative;margin:0 16px}
@media (min-width:860px){ .nmap-wrap{margin:0} }
.nmap{height:56vh;min-height:320px;max-height:560px;border-radius:16px;overflow:hidden;background:var(--bg);border:1px solid var(--line)}
.mk{transform:translate(0,0);background:var(--paper);border:2px solid var(--teal);color:var(--ink);font:700 12px/1 var(--f-body);padding:5px 8px;border-radius:999px;white-space:nowrap;box-shadow:0 2px 6px rgba(6,40,44,.25);position:relative}
.mk::after{content:"";position:absolute;left:50%;bottom:-6px;width:8px;height:8px;background:var(--teal);transform:translateX(-50%) rotate(45deg)}
.mk.v{border-color:var(--blue)} .mk.v::after{background:var(--blue)}
.mk-home{width:18px;height:18px;border-radius:50%;background:var(--blue);border:3px solid #fff;box-shadow:0 0 0 6px rgba(31,111,209,.2)}
.nmap-card{position:absolute;left:10px;right:10px;bottom:10px;z-index:10;display:flex;gap:10px;align-items:center;background:var(--paper);border-radius:14px;padding:10px 12px;box-shadow:0 6px 18px rgba(6,40,44,.25)}

/* 동네 고르기 */
.rp-search{display:flex;gap:8px}
.rp-search .input{flex:1;min-width:0}
.rp-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--paper);max-height:260px;overflow-y:auto}
.rp-list[hidden]{display:none}
.rp-list button{display:block;width:100%;text-align:left;padding:12px 14px;border:0;border-bottom:1px solid var(--line);background:none;font-size:14.5px;cursor:pointer}
.rp-list li:last-child button{border-bottom:0}
.rp-list button:hover,.rp-list button:focus{background:var(--sky)}
.input[readonly]{background:var(--bg)}

/* ---------- 관리자 화면 ---------- */
.tadmin{background:var(--teal-deep);border-color:var(--teal-deep);color:#fff}
.adm-body{background:var(--bg);min-height:100dvh;padding-bottom:0}
.adm-top{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;height:56px;padding:0 16px;background:var(--teal-deep);color:#fff}
.adm-top .brand{color:#fff;font-size:21px}
.adm-top .brand small{font-family:"IBM Plex Sans KR",sans-serif;font-size:13px;font-weight:600;opacity:.8;margin-left:4px}
.adm-top-r{display:flex;align-items:center;gap:10px}
.adm-top-r .btn{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);color:#fff}
.adm-top-r .small{opacity:.85}
@media (max-width:520px){ .adm-top-r .small{display:none} }
.adm-wrap{display:flex;max-width:1400px;margin:0 auto}
.adm-side{flex:none;width:208px;padding:16px 10px;position:sticky;top:56px;align-self:flex-start;max-height:calc(100dvh - 56px);overflow:auto;display:flex;flex-direction:column;gap:2px}
.adm-side a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;font-size:14.5px;color:var(--ink)}
.adm-side a:hover{background:var(--paper)}
.adm-side a.on{background:var(--teal-soft);color:var(--teal-deep);font-weight:700}
.adm-side .ic-s{color:var(--mute)}
.adm-side a.on .ic-s{color:var(--teal-deep)}
.adm-badge{margin-left:auto;font-style:normal;font-size:11.5px;font-weight:700;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--bad);color:#fff;display:grid;place-items:center}
.adm-main{flex:1;min-width:0;padding:18px 20px 60px;display:flex;flex-direction:column;gap:14px}
.adm-flashes{margin:0;padding:0;max-width:none}
@media (max-width:860px){
  .adm-wrap{flex-direction:column}
  .adm-side{position:sticky;top:56px;z-index:20;width:auto;max-height:none;flex-direction:row;overflow-x:auto;padding:8px 10px;background:var(--paper);border-bottom:1px solid var(--line);scrollbar-width:none}
  .adm-side a{flex:none;padding:8px 12px;font-size:13.5px}
  .adm-side .ic-s{display:none}
  .adm-badge{margin-left:4px}
  .adm-main{padding:14px 12px 60px}
}
.adm-h{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.adm-h h1{margin:0;font-size:22px;letter-spacing:-.3px}
.adm-h h1 a{font-weight:500}
.adm-main .note,.adm-main .tbl-wrap,.adm-main .stat-grid{margin:0;padding-left:0;padding-right:0}
.adm-main .note{padding:12px 14px}
.adm-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.adm-card-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.adm-card-h h2{margin:0;font-size:15.5px}
.adm-2col{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media (min-width:1000px){ .adm-2col{grid-template-columns:minmax(0,1fr) minmax(0,1fr)} }
.adm-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:860px){ .adm-stats{grid-template-columns:repeat(4,minmax(0,1fr))} }
a.stat:hover{border-color:var(--teal)}
.adm-todo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (min-width:860px){ .adm-todo{grid-template-columns:repeat(4,minmax(0,1fr))} }
.adm-todo-i{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-radius:var(--r);background:var(--paper);border:1px solid var(--line);font-size:14px}
.adm-todo-i b{font-size:22px;font-variant-numeric:tabular-nums;color:var(--mute)}
.adm-todo-i.hot{border-color:#f0c9c9;background:var(--bad-soft)}
.adm-todo-i.hot b{color:var(--bad)}
.adm-legend{font-size:12.5px;color:var(--mute);display:flex;align-items:center;gap:6px}
.adm-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-left:6px}
.lg-u,.b-u{background:var(--blue)} .lg-l,.b-l{background:var(--teal)} .lg-d,.b-d{background:var(--warn)}
.adm-bars{display:flex;align-items:flex-end;gap:6px;height:170px;padding-top:6px}
.adm-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;min-width:0}
.adm-bar-g{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:2px;border-bottom:1px solid var(--line)}
.adm-bar-g i{width:28%;max-width:10px;min-height:1px;border-radius:3px 3px 0 0}
.adm-bar-col span{font-size:11px;color:var(--mute)}
.tbl-s{min-width:0 !important}
.tbl-s td,.tbl-s th{padding:8px 6px}
.tbl td.bad{color:var(--bad);font-weight:700}
.tbl tr.muted td{color:var(--mute)}
.tbl-wrap.flat{border:0;border-radius:0}
.lnk{text-decoration:underline;text-underline-offset:2px}
.adm-thumb{width:44px;height:44px;border-radius:8px;object-fit:cover;display:block;background:var(--bg)}
.adm-search{display:flex;gap:8px;max-width:560px}
.adm-search .input{flex:1}
.adm-chips{display:flex;gap:6px;flex-wrap:wrap}
.adm-pager{display:flex;align-items:center;gap:10px;justify-content:center}
.adm-f{display:inline}
.adm-inline{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.adm-inline .input{width:auto;flex:1;min-width:140px;padding:8px 10px}
.adm-inline select.input{flex:none;min-width:0}
.adm-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.adm-dl{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px 12px;margin:0;font-size:14px}
.adm-dl dt{color:var(--mute)}
.adm-dl dd{margin:0;word-break:break-all}
.adm-list{display:flex;flex-direction:column;gap:10px}
.adm-item{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.adm-item.done{opacity:.75}
.adm-item p{margin:0}
.adm-item-h{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.adm-quote{background:var(--bg);border-radius:10px;padding:10px 12px;font-size:14px;white-space:normal}
.adm-answer{border-left:3px solid var(--teal);padding:6px 12px;font-size:14px}
.adm-empty{padding:30px;text-align:center;color:var(--mute);background:var(--paper);border:1px dashed var(--line);border-radius:var(--r)}
.adm-set{padding:10px 0;border-bottom:1px solid var(--line)}
.adm-set:last-of-type{border-bottom:0}
.adm-chat{display:flex;flex-direction:column;gap:10px;max-height:70vh;overflow:auto;background:var(--bg)}
.adm-msg{display:flex;flex-direction:column;gap:3px;max-width:75%}
.adm-msg.buyer{align-self:flex-end;align-items:flex-end}
.adm-msg.sys{align-self:center;max-width:90%}
.adm-bubble{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:8px 12px;font-size:14px}
.adm-msg.buyer .adm-bubble{background:var(--teal-soft);border-color:transparent}
.adm-msg.sys .adm-bubble{background:none;border:0;color:var(--mute);font-size:12.5px;text-align:center}
.reveal{cursor:pointer;border-bottom:1px dashed var(--mute)}

/* 판매: 추가 사진 올리는 중 · 시세 찾는 중 */
.x-load{position:absolute;right:4px;bottom:4px;width:16px;height:16px;border-radius:50%;border:2.5px solid rgba(255,255,255,.85);border-top-color:var(--teal);animation:spin .8s linear infinite;box-shadow:0 0 0 2px rgba(18,39,44,.25)}
.spinner.sm{width:18px;height:18px;border-width:3px;flex:none}
.price-wait{display:flex;flex-direction:column;gap:6px}
.price-wait .pw-row{display:flex;align-items:center;gap:10px}

/* ---------- 마이창고 ---------- */
.gsum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border-block:1px solid var(--line);margin-bottom:12px}
.gsum div{background:var(--paper);padding:12px 14px;display:flex;flex-direction:column;gap:2px;min-width:0}
.gsum span{font-size:12px;color:var(--mute)}
.gsum b{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gsum em{font-style:normal;font-size:11px;color:var(--mute)}
@media (min-width:860px){ .gsum{border:1px solid var(--line);border-radius:var(--r);overflow:hidden} }
.gear-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px;padding:4px 16px 24px}
@media (min-width:600px){ .gear-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))} }
@media (min-width:860px){ .gear-grid{padding:4px 0 24px} }
.gtile{display:flex;flex-direction:column;gap:3px;min-width:0}
.gimg{position:relative;aspect-ratio:1/1;max-width:100%;border-radius:14px;overflow:hidden;background:linear-gradient(150deg,var(--sky),var(--teal-soft));color:var(--teal-deep);display:grid;place-items:center;margin-bottom:5px}
.gimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gimg > svg{width:52px;height:52px}
.gfav{position:absolute;right:7px;top:7px;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;color:var(--warn)}
.gfav svg{width:15px;height:15px;fill:currentColor}
.gst{position:absolute;left:7px;top:7px;background:rgba(18,39,44,.8);color:#fff;font-style:normal;font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px}
.gst.ai{background:var(--teal)}
.gname{font-size:14.5px;line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.gmeta{font-size:12px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gval{font-size:14px;font-weight:700}
.gpick{display:block;cursor:pointer}
.gpick-in{aspect-ratio:4/3;max-width:100%;border:2px dashed var(--line);border-radius:16px;background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:16px;overflow:hidden;color:var(--teal)}
.gpick-in b{color:var(--ink);font-size:16px}
.gpick-in svg{width:36px;height:36px}
.gpick-in img{width:100%;height:100%;object-fit:contain;border-radius:12px}
.gpick:focus-within .gpick-in{border-color:var(--teal)}
.gview{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
@media (min-width:860px){ .gview{grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:32px;padding-top:20px;align-items:start} }
.gv-photos{background:var(--paper)}
.gv-main{position:relative;aspect-ratio:1/1;max-width:100%;overflow:hidden;background:linear-gradient(150deg,var(--sky),var(--teal-soft));display:grid;place-items:center;color:var(--teal-deep)}
.gv-main img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gv-main > svg{width:80px;height:80px}
@media (min-width:860px){ .gv-main{border-radius:18px} .gv-photos{background:transparent} }
.gv-thumbs{display:flex;gap:8px;padding:10px 16px;overflow-x:auto}
@media (min-width:860px){ .gv-thumbs{padding:10px 0} }
.gv-th{position:relative;flex:none;margin:0}
.gv-th > button:first-of-type{width:62px;height:62px;border-radius:10px;overflow:hidden;border:2px solid transparent;padding:0;background:var(--bg);cursor:pointer;display:block}
.gv-th.on > button:first-of-type{border-color:var(--teal)}
.gv-th > button:first-of-type{position:relative}
.gv-th img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gv-del{position:absolute;right:-6px;top:-6px;width:22px;height:22px;border-radius:50%;border:0;background:var(--ink);color:#fff;display:grid;place-items:center;padding:0;cursor:pointer}
.gv-del svg{width:12px;height:12px}
.gv-add{flex:none;width:62px;height:62px;border-radius:10px;border:2px dashed var(--line);display:grid;place-items:center;color:var(--teal);cursor:pointer}
.gv-add.busy{opacity:.5;pointer-events:none}
.gv-body{display:flex;flex-direction:column;gap:14px;padding:6px 16px 28px}
@media (min-width:860px){ .gv-body{padding:0 0 28px} }
.gv-title{font-size:22px;line-height:1.3;margin:0;text-wrap:balance}
.gv-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:-6px}
.gv-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:0}
@media (min-width:600px){ .gv-facts{grid-template-columns:repeat(4,minmax(0,1fr))} }
.gv-facts div{background:var(--paper);padding:10px 12px}
.gv-facts dt{font-size:12px;color:var(--mute)}
.gv-facts dd{margin:2px 0 0;font-weight:700;font-size:16px}
.gv-acts{display:flex;flex-direction:column;gap:8px}
.gv-h{font-size:16px;margin:0;display:flex;justify-content:space-between;align-items:baseline}
.gv-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.gv-hist{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:4px;font-size:14px}
.gv-out{margin-top:4px}
/* 장터 위쪽 [전체 | 우리 동네] */
.mseg{display:flex;gap:6px;max-width:var(--wide);margin:0 auto;padding:10px 16px 0}
.mseg a{flex:none;font-size:14px;font-weight:600;padding:7px 16px;border-radius:999px;border:1px solid var(--line);background:var(--paper);color:var(--mute)}
.mseg a.on{background:var(--teal);border-color:var(--teal);color:#fff}
@media (min-width:860px){ .mseg{padding:16px 24px 0} }

/* ---------- 짐 싸기 · 출조 준비 ---------- */
.trips a{display:flex;align-items:center;gap:12px}
.tr-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.tr-b b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tr-bar{display:block;height:6px;border-radius:3px;background:var(--line);overflow:hidden;max-width:220px}
.tr-bar i{display:block;height:100%;background:var(--teal);border-radius:3px;transition:width .25s}
.tr-bar.big{height:10px;border-radius:5px;max-width:none}
.trip{display:flex;flex-direction:column;gap:14px;padding-bottom:28px}
.tr-head{padding:16px 16px 0;display:flex;flex-direction:column;gap:4px}
.tr-head h1{font-size:23px;margin:0;line-height:1.3;text-wrap:balance}
.eyebrow-s{font-size:12.5px;font-weight:700;color:var(--teal);letter-spacing:.04em}
.tr-edit summary{cursor:pointer;color:var(--teal);margin-top:4px}
.tr-prog{padding:0 16px;display:flex;flex-direction:column;gap:6px}
.tr-prog-t{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.tr-miss{margin:0 16px;padding:12px 14px;border-radius:12px;background:var(--warn-soft);display:flex;flex-direction:column;gap:8px}
.tr-miss-h{display:flex;align-items:center;gap:6px;color:var(--warn)}
.tr-miss-h b{color:var(--ink)}
.tr-chips{display:flex;flex-wrap:wrap;gap:6px}
.tr-chips form{margin:0}
.tr-chips .chip{cursor:pointer;font:inherit;font-size:13.5px}
.tr-list{background:var(--paper);border-block:1px solid var(--line)}
.tr-it{display:flex;align-items:center;gap:6px;padding:8px 8px 8px 16px;border-top:1px solid var(--line)}
.tr-it:first-child{border-top:0}
.tr-it form{margin:0}
.tr-ck{flex:1;min-width:0;display:flex;align-items:center;gap:12px;cursor:pointer;padding:4px 0}
.tr-ck input{width:22px;height:22px;flex:none;accent-color:var(--teal);margin:0}
.tr-img{position:relative;flex:none;width:48px;height:48px;border-radius:10px;overflow:hidden;background:linear-gradient(150deg,var(--sky),var(--teal-soft));color:var(--teal-deep);display:grid;place-items:center}
.tr-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tr-img svg{width:24px;height:24px}
.tr-img.tr-txt{background:var(--bg);color:var(--mute)}
.tr-nm{min-width:0;display:flex;flex-direction:column}
.tr-nm b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tr-it.on .tr-nm b{text-decoration:line-through;color:var(--mute)}
.tr-it.on .tr-img{opacity:.55}
.tr-x{border:0;background:transparent;color:var(--mute);width:40px;height:40px;display:grid;place-items:center;cursor:pointer;border-radius:10px}
.tr-x svg{width:16px;height:16px}
.tr-x:hover{background:var(--bg)}
.tr-add{display:flex;gap:8px;padding:0 16px}
.tr-add .input{flex:1;min-width:0}
.tr-gear{padding:0 16px;display:flex;flex-direction:column;gap:10px}
.tr-pick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 10px}
@media (min-width:600px){ .tr-pick{grid-template-columns:repeat(4,minmax(0,1fr))} }
.tr-pk{display:flex;flex-direction:column;gap:4px;cursor:pointer;min-width:0}
.tr-pk input{position:absolute;opacity:0;pointer-events:none}
.tr-pk .gimg{margin:0;border:3px solid transparent}
.tr-pk input:checked + .gimg{border-color:var(--teal)}
.tr-pk input:focus-visible + .gimg{outline:2px solid var(--blue);outline-offset:2px}
.tr-pk-ck{position:absolute;right:5px;top:5px;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.9);border:1px solid var(--line);display:grid;place-items:center;color:transparent}
.tr-pk-ck svg{width:14px;height:14px}
.tr-pk input:checked + .gimg .tr-pk-ck{background:var(--teal);border-color:var(--teal);color:#fff}
.tr-pk .gname{font-size:13px;-webkit-line-clamp:2}
.tr-done,.tr-del{padding:0 16px;margin:0}
.gear-acts{display:flex;gap:6px}

/* ---------- 장소 · 후기 · 날씨 · 발자국 · 리포트 ---------- */
.ac{position:relative}
.ac-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:20;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(18,39,44,.12);overflow:hidden;max-height:320px;overflow-y:auto}
.ac-it{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;text-align:left;border:0;border-top:1px solid var(--line);background:transparent;padding:10px 14px;cursor:pointer;font:inherit}
.ac-it:first-child{border-top:0}
.ac-it span{font-size:12.5px;color:var(--mute)}
.ac-it.on,.ac-it:hover{background:var(--sky)}
.wx{margin:0 16px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--paper);display:flex;flex-direction:column;gap:8px}
.wx-h{display:flex;justify-content:space-between;align-items:baseline}
.wx-days{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(78px,1fr);gap:6px;overflow-x:auto;padding-bottom:2px}
.wx-d{display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 4px;border-radius:10px;background:var(--bg);font-size:12px;text-align:center}
.wx-d.on{background:var(--teal-soft);outline:2px solid var(--teal)}
.wx-dt{font-weight:700;font-size:13px}
.wx-dt small{font-weight:500;color:var(--mute)}
.wx-ic{font-size:22px;line-height:1.2}
.wx-t{font-size:13px}
.wx-x{color:var(--mute);white-space:nowrap}
.wx-adv p{color:var(--ink)}
.place{display:flex;flex-direction:column;gap:16px;padding-bottom:28px}
.pl-hero{aspect-ratio:16/9;max-width:100%;overflow:hidden;background:var(--bg)}
.pl-hero img{width:100%;height:100%;object-fit:cover}
@media (min-width:860px){ .pl-hero{border-radius:18px;margin-top:16px} }
.pl-head{padding:0 16px;display:flex;flex-direction:column;gap:6px}
.pl-head h1{font-size:24px;margin:0;line-height:1.3;text-wrap:balance}
.pl-rate{margin:0}
.stars{color:var(--warn);letter-spacing:1px}
.pl-fac{display:flex;flex-wrap:wrap;gap:4px}
.pl-links{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.lnk{color:var(--teal);text-decoration:underline;text-underline-offset:3px}
.pl-tags,.pl-reviews{padding:0 16px;display:flex;flex-direction:column;gap:10px}
.rv{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:6px;position:relative}
.rv-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rv-tags{display:flex;flex-wrap:wrap;gap:4px}
.rv-ph{display:flex;gap:6px;overflow-x:auto}
.rv-ph a{flex:none;width:84px;height:84px;border-radius:10px;overflow:hidden;position:relative}
.rv-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rv-rep{position:absolute;right:0;top:12px}
.rv-stars{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px}
.rv-stars label{cursor:pointer;font-size:34px;line-height:1;color:var(--line)}
.rv-stars input{position:absolute;opacity:0;pointer-events:none}
.rv-stars label:has(input:checked),.rv-stars label:has(input:checked) ~ label{color:var(--warn)}
.rv-stars label:hover,.rv-stars label:hover ~ label{color:var(--warn)}
.rv-stars input:focus-visible + span{outline:2px solid var(--blue);border-radius:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.lbl{font-weight:600;font-size:14px}
.chip-ck input{position:absolute;opacity:0;pointer-events:none}
.chip-ck .chip{cursor:pointer;display:inline-block}
.chip-ck input:checked + .chip{background:var(--teal);border-color:var(--teal);color:#fff;font-weight:600}
.chip-ck input:focus-visible + .chip{outline:2px solid var(--blue)}
.rv-ups{display:flex;gap:8px;flex-wrap:wrap}
.rv-up{position:relative;width:62px;height:62px;border-radius:10px;overflow:visible}
.rv-up img{width:62px;height:62px;object-fit:cover;border-radius:10px}
.tr-rv{display:flex;flex-direction:column;gap:8px;padding:0 16px}
.tr-head h1 a{color:inherit}
.fp-map{height:280px;margin:0 16px 12px;border-radius:14px;overflow:hidden;background:var(--bg)}
.fp-pin{background:var(--teal);color:#fff;font-size:12px;font-weight:600;padding:4px 8px;border-radius:12px;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.fp-pin b{background:#fff;color:var(--teal);border-radius:8px;padding:0 5px;margin-left:2px}
.year{display:flex;flex-direction:column;gap:14px;padding:16px 16px 28px}
.yr-card{background:linear-gradient(160deg,var(--teal),var(--teal-deep));color:#fff;border-radius:20px;padding:22px 20px;display:flex;flex-direction:column;gap:12px}
.yr-card .eyebrow-s{color:rgba(255,255,255,.8)}
.yr-card h1{font-family:var(--f-display);font-weight:400;font-size:28px;margin:0}
.yr-big{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.yr-big div{background:rgba(255,255,255,.12);border-radius:12px;padding:10px;display:flex;flex-direction:column;align-items:center}
.yr-big b{font-size:30px;line-height:1.1}
.yr-big span{font-size:12.5px;opacity:.85}
.yr-months{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:3px;align-items:end;height:90px}
.yr-m{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:3px}
.yr-bar{display:block;width:100%;min-height:3px;background:rgba(255,255,255,.85);border-radius:4px 4px 0 0;position:relative}
.yr-bar i{position:absolute;top:-16px;left:0;right:0;text-align:center;font-style:normal;font-size:10.5px}
.yr-m small{font-size:10px;opacity:.8}
.yr-line{margin:0}
.yr-gear{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.yr-gear li{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.1);border-radius:12px;padding:6px 10px}
.yr-gear li b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.yr-gear .small{color:rgba(255,255,255,.8)}
/* 캠핑장 찾기 */
.pl-search{margin:12px 16px 0}
@media (min-width:860px){ .pl-search{margin:16px 0 0;max-width:520px} }
.pl-list{display:flex;flex-direction:column;background:var(--paper);border-block:1px solid var(--line)}
@media (min-width:860px){ .pl-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;border:0;background:transparent} }
.pl-it{display:flex;gap:12px;padding:12px 16px;border-top:1px solid var(--line);align-items:center}
.pl-it:first-child{border-top:0}
@media (min-width:860px){ .pl-it{padding:12px 0} .pl-it:nth-child(2){border-top:0} }
.pl-img{position:relative;flex:none;width:92px;height:70px;border-radius:10px;overflow:hidden;background:linear-gradient(150deg,var(--sky),var(--teal-soft));color:var(--teal-deep);display:grid;place-items:center}
.pl-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.pl-img svg{width:30px;height:30px}
.pl-b{min-width:0;display:flex;flex-direction:column;gap:2px}
.pl-b > b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seg a.on{background:var(--ink);color:#fff;font-weight:700}
.seg a{display:block;text-align:center;padding:7px 0;font-size:13px}
.tr-shop{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding-top:8px;border-top:1px dashed rgba(0,0,0,.12)}
.tr-shop .chip{display:inline-flex;align-items:center;gap:4px;background:var(--paper)}
/* 중간 묶음 */
.btn-on{background:var(--teal-soft);border-color:var(--teal);color:var(--teal-deep)}
.gv-carelist{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column}
.gv-carelist li{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding:6px 0;font-size:14px}
.gv-carelist form{margin:0}
.gv-care label{display:flex;flex-direction:column;gap:4px}
.ga-ol{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.ga-oi{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-top:1px solid var(--line);cursor:pointer}
.ga-oi:first-child{border-top:0}
.ga-oi input{width:20px;height:20px;margin-top:2px;accent-color:var(--teal);flex:none}
.ga-oi > span{display:flex;flex-direction:column;min-width:0}
.tr-share{padding:0 16px;display:flex;flex-direction:column;gap:8px}
.tr-share form{margin:0}
.tr-link{display:flex;gap:6px}
.tr-link .input{flex:1;min-width:0;font-size:13px}

/* 세팅 사진 장비 이름표 (/shot/번호) */
.shot{display:grid;gap:12px;padding-bottom:24px}
.shot-box{position:relative;width:100%;background:#0d1f22;overflow:hidden}
.shot-box>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.shot-box.can-tag{cursor:crosshair}
.shot-tag{position:absolute;transform:translate(-11px,-11px);display:flex;align-items:center;gap:4px;z-index:2;max-width:70%;text-decoration:none}
.shot-dot,.shot-new{width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.95);border:5px solid var(--teal);box-shadow:0 1px 4px rgba(0,0,0,.4);flex:none}
.shot-new{position:absolute;transform:translate(-11px,-11px);z-index:3;border-color:#f5a524}
.shot-lb{background:rgba(13,31,34,.82);color:#fff;font-size:12px;font-weight:600;padding:3px 8px;border-radius:999px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.shot-nav{display:flex;gap:6px;overflow-x:auto;padding:0 16px}
.shot-nav a{flex:none;width:56px;height:56px;border-radius:8px;overflow:hidden;position:relative;opacity:.55;border:2px solid transparent}
.shot-nav a.on{opacity:1;border-color:var(--teal)}
.shot-nav img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.shot-body{display:grid;gap:10px;padding:0 16px}
.shot-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.shot-list li{display:flex;align-items:center;gap:8px}
.shot-list li>a{flex:1;min-width:0;display:flex;align-items:center;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:inherit;text-decoration:none}
.shot-list li>a b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.shot-form{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.shot-form select,.shot-form input{width:100%;min-width:0}
.shot-btns{display:flex;gap:8px;justify-content:flex-end}
.rv-ph a .rv-tagn{position:absolute;right:4px;bottom:4px;z-index:2;background:rgba(13,31,34,.8);color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:1px 6px;display:flex;align-items:center;gap:2px}
.rv-ph a .rv-tagn svg{width:11px;height:11px}
.shot-tag.rt{flex-direction:row-reverse;transform:translate(calc(-100% + 11px),-11px)}

/* 업체센터 · 업체 배지 */
.bd-biz{background:#1F4E8C;color:#fff}
.biz{display:grid;gap:14px}
.biz-card{display:grid;gap:10px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
.biz-card h2{margin:0;font-size:20px}
.biz-card.ok{border-color:var(--teal)}
.biz-free{display:grid;gap:2px;padding:12px;border-radius:10px;background:var(--teal-soft)}
.biz-links{display:flex;gap:8px;flex-wrap:wrap}
.biz-links .btn{flex:1 1 auto}
.biz-hero{display:grid;gap:4px;padding:16px;border-radius:14px;background:linear-gradient(150deg,var(--sky),var(--teal-soft))}
.biz-hero ul{margin:4px 0 0;padding-left:18px}
.biz-kind{display:flex;gap:8px}
.biz-kind label{flex:1;min-width:0}
.biz-kind input{position:absolute;opacity:0;pointer-events:none}
.biz-kind span{display:block;text-align:center;padding:12px 8px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-weight:600}
.biz-kind input:checked+span{border-color:var(--teal);background:var(--teal-soft);color:var(--teal-deep)}
.biz-kind input:focus-visible+span{outline:2px solid var(--teal);outline-offset:2px}
.biz-agree{display:flex;gap:8px;align-items:flex-start}
.biz-agree input{margin-top:3px;flex:none}
.biz-info{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px 12px;border-radius:10px;background:var(--bg);border:1px solid var(--line);margin:8px 0;overflow-wrap:anywhere}
.rv-reply{margin-top:6px;padding:10px 12px;border-left:3px solid var(--teal);background:var(--teal-soft);border-radius:0 8px 8px 0;display:grid;gap:2px}
.rv-reply-f{margin-top:4px}
.rv-reply-f form{display:grid;gap:6px;margin-top:6px}
.adm-cert{display:block;max-width:360px;height:220px;margin-top:8px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--bg)}
.adm-cert img{display:block;width:100%;height:100%;object-fit:contain}
/* 관리자 첫 화면 AI 비용 */
.ai-meter{display:grid;gap:6px}
.ai-meter-bar{height:14px;border-radius:999px;background:var(--bg);border:1px solid var(--line);overflow:hidden}
.ai-meter-bar i{display:block;height:100%;background:var(--teal);border-radius:999px}
.ai-meter-bar.warn i{background:#E8A13A}
.ai-meter-bar.over i{background:#C2492B}
.ai-feat{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;font-size:14px;margin:6px 0 0}
.chips-sub{background:var(--bg);padding-top:8px;padding-bottom:8px}
.chips-sub .chip{font-size:13px}

/* 캠핑 가는 길 */
.near{display:grid;gap:0;padding-bottom:24px}
.near-h{padding:16px 16px 4px;display:grid;gap:2px}
.near-h h1{margin:0;font-size:22px}
.near-map{margin-top:12px}
.near-it{display:flex;gap:10px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}
.near-b{flex:1;min-width:0;display:grid;gap:3px}
.near-b>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.near-b .small{overflow-wrap:anywhere}
.near-acts{display:flex;gap:6px;flex:none}
.near-pt{background:color-mix(in srgb,var(--teal-soft) 55%,var(--paper))}
.near-pt .bd{width:fit-content}
.near-perk{font-weight:700;color:var(--teal-deep)}
.near-deal{background:var(--paper);border:1px dashed #E8A13A;border-radius:8px;padding:6px 8px;width:fit-content;max-width:100%}
.near-note{padding:10px 16px;margin:0}
.near-join{display:flex;gap:6px;align-items:center;margin:4px 16px 0;padding:12px 14px;border-radius:12px;background:var(--bg);border:1px solid var(--line);color:var(--teal-deep);font-weight:600;text-decoration:none;font-size:14px}
.near-u{position:relative;min-width:0}
.near-d{position:absolute;left:8px;top:8px;z-index:3;background:rgba(13,31,34,.8);color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:2px 7px}
.nr-pin{background:var(--paper);border:2px solid var(--teal);color:var(--ink);font:700 11px/1 var(--f-body);padding:4px 7px;border-radius:999px;white-space:nowrap;box-shadow:0 2px 6px rgba(6,40,44,.25)}
.nr-pin.home{background:var(--teal);color:#fff}
.nr-pin.star{border-color:#E8A13A}
.place-near{display:grid;gap:8px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--paper);text-decoration:none;color:inherit}
.place-near .tr-chips{display:flex;flex-wrap:wrap;gap:6px}
.biz-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.biz-stats div{display:grid;gap:2px;text-align:center;padding:10px 4px;border-radius:10px;background:var(--bg)}
.biz-stats b{font-size:20px}
.biz-stats span{font-size:12px;color:var(--mute)}
.biz-row{display:flex;gap:8px}
.biz-row .input{flex:1;min-width:0}
.biz-kind{flex-wrap:wrap}
.biz-kind label{flex:1 1 30%}
.biz-kind span{padding:12px 4px;font-size:14px}
.place-near{margin:12px 16px 0}
.tr-near{margin:12px 0 0}
/* MY — 로그인 방법 배지 */
.login-ways{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.lg-bd{display:inline-flex;align-items:center;font-size:11.5px;font-weight:700;padding:3px 8px;border-radius:999px;line-height:1.2}
.lg-naver{background:#03C75A;color:#fff}
.lg-kakao{background:#FEE500;color:#191919}
.lg-google{background:var(--paper);color:var(--ink);border:1px solid var(--line)}
.lg-apple{background:#111;color:#fff}
.lg-pw{background:var(--teal-soft);color:var(--teal-deep)}
.lg-etc{background:var(--bg);color:var(--ink);border:1px solid var(--line)}

/* 지도 크게 보기 */
.near-mapwrap{position:relative;margin:12px 16px}
.near-mapwrap .near-map{margin:0}
.map-full-btn{position:absolute;right:10px;top:10px;z-index:5;border:1px solid var(--line);background:var(--paper);color:var(--ink);font:700 13px/1 var(--f-body);padding:9px 12px;border-radius:999px;box-shadow:0 2px 8px rgba(6,40,44,.2);cursor:pointer}
.map-card{position:absolute;left:10px;right:10px;bottom:10px;z-index:6;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px 40px 12px 14px;display:grid;gap:4px;box-shadow:0 6px 18px rgba(6,40,44,.25)}
.map-card b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.map-card .btn{width:fit-content;margin-top:4px}
.map-card-x{position:absolute;right:8px;top:8px;border:0;background:none;font-size:16px;color:var(--mute);cursor:pointer;padding:4px 8px}
.near-mapwrap.full{position:fixed;inset:0;z-index:1000;margin:0;background:var(--paper)}
.near-mapwrap.full .near-map{height:100%;border-radius:0}
.near-mapwrap.full .map-full-btn{top:calc(10px + env(safe-area-inset-top,0px))}
.near-mapwrap.full .map-card{bottom:calc(14px + env(safe-area-inset-bottom,0px))}
html.map-open,html.map-open body{overflow:hidden}
/* 전국 캠핑장 지도 */
.pmap{display:grid}
.pmap-box{position:relative;height:calc(100dvh - 190px);min-height:420px}
.pmap-map{position:absolute!important;inset:0;width:100%;height:100%;background:var(--bg)}
.pmap-list{text-decoration:none;left:10px;right:auto}
.pmap-hint{position:absolute;left:50%;transform:translateX(-50%);top:12px;z-index:4;background:rgba(13,31,34,.8);color:#fff;padding:5px 12px;border-radius:999px;white-space:nowrap}
.pm-grp{border-radius:50%;background:color-mix(in srgb,var(--teal) 88%,transparent);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;border:3px solid #fff;box-shadow:0 2px 8px rgba(6,40,44,.35);line-height:1.05;text-align:center}
.pm-grp b{font-size:13px}
.pm-grp span{font-size:9.5px;max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pmap-card{padding:12px 40px 12px 12px}
.pmap-card-in{display:flex;gap:10px;align-items:center;min-width:0}
.pmap-img{flex:none;width:64px;height:48px;border-radius:8px;overflow:hidden;background:linear-gradient(150deg,var(--sky),var(--teal-soft))}
.pmap-img img{width:100%;height:100%;object-fit:cover;display:block}
.pmap-acts{display:flex;gap:6px;margin-top:6px}
.pmap-acts .btn{flex:1;text-align:center}
.page-h:has(.pl-mapbtn){flex-wrap:wrap}
.pl-mapbtn{order:3}

/* 캠핑장터 소개 */
.about{display:grid;gap:18px;padding:16px 16px 28px}
.about-hero{display:grid;gap:8px;padding:22px 18px;border-radius:16px;background:linear-gradient(150deg,var(--sky),var(--teal-soft))}
.about-hero h1{margin:0;font-size:24px;line-height:1.35;letter-spacing:-.4px}
.about-hero p{margin:0}
.about-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:10px}
.about-grid article{display:grid;gap:4px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.about-grid p{margin:0;font-size:14px;color:var(--mute)}
.about-faq h2{font-size:18px;margin:0 0 8px}
.about-faq details{border-bottom:1px solid var(--line);padding:12px 2px}
.about-faq summary{font-weight:700;cursor:pointer}
.about-faq details p{margin:8px 0 0;color:var(--mute);font-size:14.5px}
.about-links{display:flex;gap:8px}
.about-links .btn{flex:1;text-align:center}
.pl-facts{margin:10px 16px 0;padding:12px 14px;border-radius:12px;background:var(--bg);border:1px solid var(--line);font-size:14px;line-height:1.6}
.pl-facts b{display:block;font-size:13px;color:var(--teal-deep);margin-bottom:2px}
.pl-intro{margin:0 16px 4px;font-size:14px;color:var(--mute);line-height:1.6}

/* 내 어항 */
.aq{display:grid;gap:14px;padding:16px 16px 28px}
.aq-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.aq-head h1{margin:0;font-size:22px}
.tank{position:relative;height:clamp(300px,62vw,440px);border-radius:18px;overflow:hidden;border:4px solid #CFE6EA;box-shadow:inset 0 0 40px rgba(6,60,80,.25)}
.tank-water{position:absolute;inset:0;background:linear-gradient(180deg,#BFE8F2 0%,#5FB6CC 45%,#2D7F9E 100%)}
.tank-water::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(100deg,rgba(255,255,255,.08) 0 18px,transparent 18px 60px);animation:aq-light 9s ease-in-out infinite alternate}
.tank-sand{position:absolute;left:0;right:0;bottom:0;height:13%;background:radial-gradient(ellipse at 30% 0,#E9D7A8,#C9AE73 70%)}
.tank-weed{position:absolute;bottom:8%;width:14px;border-radius:50% 50% 0 0;background:linear-gradient(#5DAA62,#2F7A44);transform-origin:bottom center;animation:aq-weed 4s ease-in-out infinite alternate}
.tank-weed.w1{left:8%;height:34%}.tank-weed.w2{left:13%;height:22%;animation-delay:-1.5s}.tank-weed.w3{right:10%;height:40%;animation-delay:-2.5s}
.bubble{position:absolute;bottom:10%;width:8px;height:8px;border-radius:50%;border:1.5px solid rgba(255,255,255,.8);animation:aq-bub 6s linear infinite}
.bubble.b1{left:20%}.bubble.b2{left:72%;animation-delay:-2s;width:6px;height:6px}.bubble.b3{left:86%;animation-delay:-4s}
.tank-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:24px;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.35)}
.swim{position:absolute;left:0;width:var(--w);text-decoration:none;color:#fff;animation-name:aq-swim;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;z-index:2}
.swim-flip{display:block;animation-name:aq-flip;animation-timing-function:steps(1);animation-iteration-count:infinite}
.swim-bob{display:block;animation:aq-bob 2.4s ease-in-out infinite alternate}
.swim svg{display:block;width:var(--w);height:auto;filter:drop-shadow(0 3px 3px rgba(0,30,40,.25))}
.swim-tag{display:block;width:max-content;max-width:160px;margin:2px auto 0;font-size:11px;font-weight:700;background:rgba(10,40,52,.6);padding:2px 7px;border-radius:999px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@keyframes aq-swim{from{left:2%}to{left:calc(98% - var(--w))}}
@keyframes aq-flip{0%{transform:scaleX(1)}50%{transform:scaleX(-1)}}
@keyframes aq-bob{from{transform:translateY(-4px)}to{transform:translateY(4px)}}
@keyframes aq-weed{from{transform:rotate(-6deg)}to{transform:rotate(6deg)}}
@keyframes aq-bub{0%{transform:translateY(0);opacity:0}10%{opacity:1}100%{transform:translateY(-320px);opacity:0}}
@keyframes aq-light{from{transform:translateX(-4%)}to{transform:translateX(4%)}}
@media (prefers-reduced-motion:reduce){.swim,.swim-flip,.swim-bob,.tank-weed,.bubble,.tank-water::after{animation:none}.swim{position:relative;display:inline-block;margin:10px}}
.aq-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.aq-stats div{display:grid;text-align:center;padding:10px 4px;border-radius:12px;background:var(--paper);border:1px solid var(--line)}
.aq-stats b{font-size:20px}.aq-stats span{font-size:12px;color:var(--mute)}
.aq-list{display:grid;gap:0}
.aq-it{display:flex;gap:10px;align-items:center;padding:10px 2px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.aq-ph{flex:none;width:60px;height:48px;border-radius:10px;overflow:hidden;background:#D6EEF3;display:flex;align-items:center;justify-content:center}
.aq-ph img{width:100%;height:100%;object-fit:cover}
.aq-b{flex:1;min-width:0;display:grid;gap:2px}
.aq-req{display:grid;gap:8px;padding:14px;border:1px dashed var(--line);border-radius:14px;background:var(--paper)}
.aq-req-f{display:grid;gap:6px}
.aq-req-list{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:14px}
.catch-f .cf-photo{display:grid;gap:4px}
.cf-shot{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:linear-gradient(160deg,#D6EEF3,#B4DCE6);cursor:pointer;position:relative}
.cf-shot img{width:100%;height:100%;object-fit:cover}
.cf-shot.busy::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.5) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Ccircle cx='20' cy='20' r='14' fill='none' stroke='%230E8C8C' stroke-width='4' stroke-dasharray='60 30'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 20 20' to='360 20 20' dur='1s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/svg%3E") center/48px no-repeat}
.cf-ph{display:grid;justify-items:center;gap:4px;color:var(--teal-deep)}
.cf-ph svg{width:36px;height:36px}
.cf-ai{margin:0;min-height:1.2em}
.cf-chk{display:flex;gap:8px;align-items:center;font-size:14px}
.cf-small{margin:6px 0 0}
.adm-sp-f{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
.adm-sp-f .input{width:auto;min-width:0;flex:1 1 120px}
.adm-sp-f input[type=color],.adm-sp-row input[type=color]{flex:0 0 48px;width:48px;padding:2px;height:38px}
.adm-sp-list{display:grid;gap:6px}
.adm-sp-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}
.adm-sp-row.off{opacity:.5}
.adm-sp-row .input{width:auto;flex:0 1 110px;min-width:0}
.adm-sp-pic{width:64px;display:flex}
.swim{border:0;background:none;padding:0;cursor:pointer;font:inherit;text-align:center}
.swim:focus-visible{outline:2px solid #fff;outline-offset:2px;border-radius:8px}
.aq-card{position:absolute;left:10px;right:10px;bottom:10px;z-index:5;display:flex;gap:10px;align-items:center;padding:10px 40px 10px 10px;border-radius:14px;background:var(--paper);box-shadow:0 6px 18px rgba(0,30,40,.3)}
.aq-card-ph{flex:none;width:72px;height:56px;border-radius:10px;overflow:hidden;background:#D6EEF3}
.aq-card-ph img{width:100%;height:100%;object-fit:cover}
.aq-card-b{display:grid;gap:2px;min-width:0}
.aq-card-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aq-card-cm{font-size:22px;font-weight:800;color:var(--teal-deep);line-height:1.1}
.aq-card-go{width:fit-content;margin-top:2px}
.aq-pub{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--paper)}
.aq-pub-f{display:flex;gap:12px;align-items:center;margin:0}
.aq-pub-f>span{display:grid;gap:1px;min-width:0}
.aq-sw{flex:none;position:relative;width:52px;height:30px;border-radius:999px;border:0;background:#C9D6DA;cursor:pointer;transition:background .2s}
.aq-sw.on{background:var(--teal)}
.aq-sw-k{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s}
.aq-sw.on .aq-sw-k{transform:translateX(22px)}
.aq-share{display:flex;gap:6px}
.aq-share .input{flex:1;min-width:0;font-size:13px}
.user-aq{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:10px}
/* 창고 → 내 어항 입구 (낚시장터) */
.aq-entry{display:flex;align-items:center;gap:12px;margin:0 16px 12px;padding:12px 14px;border-radius:14px;text-decoration:none;color:#fff;background:linear-gradient(120deg,#2D7F9E,#5FB6CC 70%,#8FD3E2);box-shadow:0 4px 14px rgba(20,90,120,.25);overflow:hidden}
.aq-entry-fish{flex:none;display:flex;animation:aq-bob 2.4s ease-in-out infinite alternate}
.aq-entry-fish svg{filter:drop-shadow(0 2px 2px rgba(0,30,40,.3))}
.aq-entry-b{flex:1;min-width:0;display:grid;gap:2px}
.aq-entry-b b{font-size:17px}
.aq-entry-b .small{opacity:.92;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aq-entry svg.ic-s{color:#fff}
@media (prefers-reduced-motion:reduce){.aq-entry-fish{animation:none}}

/* 구경하기 */
.ex{display:grid;gap:12px;padding:0 16px 28px}
.ex-tabs{width:100%}
.ex-tabs a{flex:1;text-align:center}
.ex-area{display:grid;gap:8px;margin:0}
.ex-chips{padding:0;background:none;border:0}
.ex-chips button.chip{font:inherit;cursor:pointer}
.ex-pick{display:flex;gap:6px}
.ex-pick .input{flex:1;min-width:0}
.ex-mine{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px;background:var(--paper);border:1px solid var(--line);margin:0}
.ex-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:10px}
.ex-card{display:grid;gap:8px;padding:12px;border-radius:14px;background:var(--paper);border:1px solid var(--line);color:inherit;text-decoration:none;min-width:0}
.ex-h{display:flex;justify-content:space-between;gap:8px;align-items:baseline;min-width:0}
.ex-h b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ex-ph{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;position:relative}
.ex-ph span{aspect-ratio:1;border-radius:8px;overflow:hidden;position:relative;background:var(--bg);display:flex;align-items:center;justify-content:center;color:var(--mute)}
.ex-ph span svg{width:22px;height:22px}
.ex-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ex-ph em{position:absolute;right:4px;bottom:4px;font-style:normal;font-size:12px;font-weight:700;background:rgba(13,31,34,.75);color:#fff;border-radius:999px;padding:1px 7px}
.ex-sale{color:var(--teal-deep)}
.ex-tank{height:78px;border-radius:10px;background:linear-gradient(180deg,#BFE8F2,#4FA8C0);display:flex;align-items:center;justify-content:space-around;overflow:hidden;padding:0 6px}
.ex-f{display:flex;animation:aq-bob 2.2s ease-in-out infinite alternate}
.ex-gh{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:16px}
.ex-gh h1{margin:0;font-size:20px}
.ex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(46%,160px),1fr));gap:10px}
.ex-g{display:grid;gap:3px;padding:0;border:0;background:none;text-align:left;cursor:pointer;font:inherit;color:inherit;min-width:0}
.ex-g-ph{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--bg);display:flex;align-items:center;justify-content:center;color:var(--mute)}
.ex-g-ph svg{width:30px;height:30px}
.ex-g-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ex-g-ph i{position:absolute;top:6px;font-style:normal;font-size:11px;font-weight:700;border-radius:999px;padding:2px 7px}
.ex-fav{left:6px;background:#fff;color:#D9534F}
.ex-on{right:6px;background:var(--teal);color:#fff}
.ex-g-n{font-weight:700;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ex-sheet{position:fixed;inset:0;z-index:1000;background:rgba(6,20,24,.55);display:flex;align-items:flex-end;justify-content:center}
.ex-sheet-in{position:relative;width:100%;max-width:560px;max-height:88vh;overflow:auto;background:var(--paper);border-radius:18px 18px 0 0;padding:14px 14px calc(18px + env(safe-area-inset-bottom,0px))}
.ex-pics{display:flex;gap:6px;overflow-x:auto;scroll-snap-type:x mandatory;margin:22px 0 10px}
.ex-pics img{flex:0 0 86%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;scroll-snap-align:center}
.ex-info{display:grid;gap:6px}
.ex-info b{font-size:18px}
.ex-facts{display:flex;flex-wrap:wrap;gap:6px}
.ex-entry{display:flex;align-items:center;gap:8px;margin:0 16px 10px;padding:12px 14px;border-radius:12px;background:var(--paper);border:1px solid var(--line);color:inherit;text-decoration:none}
.ex-entry b{white-space:nowrap}
.ex-entry .small{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ===== 업체 광고 (구독) ===== */
.ad-lb{display:inline-block;font-style:normal;font-size:11px;font-weight:700;padding:0 6px;border-radius:5px;background:rgba(18,39,44,.08);color:var(--mute);line-height:1.7;letter-spacing:.02em}
.ad-it{background:linear-gradient(90deg,rgba(31,78,140,.04),transparent 60%)}
.ad-card{display:flex;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:inherit;text-decoration:none;min-width:0}
.ad-card .ad-ph{flex:none;width:96px;height:72px;border-radius:10px;object-fit:cover;background:linear-gradient(150deg,var(--sky),var(--teal-soft));display:grid;place-items:center;color:var(--teal-deep);overflow:hidden}
.ad-card .ad-ph img{width:100%;height:100%;object-fit:cover}
.ad-tx{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.ad-tx b{font-size:15px;line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}
.ad-tx small{font-size:12.5px;color:var(--mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad-tx .ad-lb{align-self:flex-start}
.ad-top{margin:0 16px 10px;position:relative;display:block;padding:0;overflow:hidden;border:0;aspect-ratio:16/7;max-height:220px;width:auto}
.ad-top .ad-ph{position:absolute;inset:0;width:100%;height:100%;border-radius:0}
.ad-top .ad-tx{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 12px;background:linear-gradient(transparent,rgba(10,24,28,.78));color:#fff}
.ad-top .ad-tx small{color:rgba(255,255,255,.85)}
.ad-top .ad-lb{position:absolute;top:10px;right:10px;background:rgba(10,24,28,.6);color:#fff}
.ad-item{margin:12px 16px}
.ad-prev .ad-ph img{display:block}
.ad-row{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:inherit;text-decoration:none}
.ad-row img{flex:none;width:72px;height:72px;border-radius:10px;object-fit:cover;background:var(--bg)}
.ad-row>div{display:grid;gap:3px;min-width:0}
.ad-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad-row-h{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ad-plan-mini{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ad-plan-mini a{display:grid;gap:2px;padding:12px;border:1px solid var(--line);border-radius:12px;color:inherit;text-decoration:none;background:var(--bg)}
.ad-plan-mini small{color:var(--mute);font-size:12px}
.ad-f fieldset{border:0;padding:0;margin:0;min-width:0}
.ad-f legend{font-weight:600;margin-bottom:6px;padding:0}
.ad-f .lab{font-weight:600}
.ad-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ad-plans label{min-width:0;position:relative}
.ad-plans input{position:absolute;opacity:0;pointer-events:none}
.ad-plans span{display:grid;gap:3px;height:100%;padding:12px;border:1.5px solid var(--line);border-radius:12px;background:var(--paper)}
.ad-plans em{font-style:normal;font-weight:700;font-size:18px}
.ad-plans em small{font-size:12px;font-weight:500;color:var(--mute)}
.ad-plans small{font-size:12px;color:var(--mute);overflow-wrap:anywhere}
.ad-plans .ad-left{color:var(--teal-deep);font-weight:600}
.ad-plans input:checked+span{border-color:var(--teal);background:var(--teal-soft)}
.ad-plans input:focus-visible+span{outline:2px solid var(--teal);outline-offset:2px}
.ad-plans label.off span{opacity:.5}
.ad-sum{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 12px;margin:0;font-size:14px}
.ad-sum dt{color:var(--mute)}
.ad-sum dd{margin:0;min-width:0}
.ad-chart{display:flex;align-items:flex-end;gap:2px;height:90px;padding:6px 0;border-bottom:1px solid var(--line)}
.ad-chart i{flex:1;min-width:0;background:var(--teal-soft);border-radius:3px 3px 0 0}
.ad-chart i.c{background:var(--teal)}
.ad-tbl{width:100%;border-collapse:collapse}
.ad-tbl th,.ad-tbl td{padding:6px 4px;border-bottom:1px solid var(--line);text-align:left}
.ad-tbl th{color:var(--mute);font-weight:500}
.biz-ad-entry{display:flex;gap:10px;align-items:center;padding:12px;border-radius:12px;background:linear-gradient(120deg,rgba(31,78,140,.08),var(--teal-soft));color:inherit;text-decoration:none}
.biz-ad-entry>span{display:grid;gap:1px;flex:1;min-width:0}
.biz-ad-entry small{font-size:12.5px;color:var(--mute)}

/* 요금 안내 */
.pr{padding:0 16px 32px;display:grid;gap:18px}
.pr-hero{display:grid;gap:6px;padding:22px 18px;border-radius:16px;background:linear-gradient(150deg,var(--sky),var(--teal-soft));margin-top:12px}
.pr-hero h1{margin:0;font-size:24px;line-height:1.35}
.pr-hero p{margin:0;font-size:14px}
.pr-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.pr-plan{position:relative;display:grid;gap:8px;align-content:start;padding:18px 16px;border:1.5px solid var(--line);border-radius:16px;background:var(--paper)}
.pr-plan.best{border-color:var(--teal);box-shadow:0 6px 20px rgba(6,99,106,.12)}
.pr-plan .bd{justify-self:start}
.pr-plan h2{margin:0;font-size:18px}
.pr-price b{font-size:28px}
.pr-plan ul{margin:0;padding-left:18px;display:grid;gap:4px}
.pr-how,.pr-faq{display:grid;gap:8px}
.pr-how h2,.pr-faq h2{margin:0;font-size:18px}
.pr-how ol{margin:0;padding-left:20px;display:grid;gap:6px}
.pr-acts{display:flex;gap:8px;flex-wrap:wrap}
.pr-acts .btn{flex:1 1 auto}
.pr-faq details{border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:12px 14px}
.pr-faq summary{font-weight:600;cursor:pointer}
.pr-faq details p{margin:8px 0 0;font-size:14px}
.pr-co{text-align:center;margin:0;overflow-wrap:anywhere}

/* ===== 사장님 가입 ===== */
.boss-entry{display:flex;gap:10px;align-items:center;padding:13px 14px;border-radius:12px;border:1.5px solid var(--teal);background:linear-gradient(120deg,var(--teal-soft),var(--sky));color:inherit;text-decoration:none}
.boss-entry>span{display:grid;gap:1px;flex:1;min-width:0}
.boss-entry small{font-size:12.5px;color:var(--mute)}
.boss-entry>svg:first-child{color:var(--teal-deep)}
.boss-steps{display:flex;gap:6px;list-style:none;margin:0 0 4px;padding:0;counter-reset:none}
.boss-steps li{flex:1;min-width:0;display:flex;align-items:center;gap:5px;padding:8px 7px;border-radius:10px;background:var(--bg);border:1px solid var(--line);font-size:12.5px;color:var(--mute);letter-spacing:-.02em}
.boss-steps b{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:12px;background:var(--line);color:var(--ink)}
.boss-steps span{line-height:1.2;word-break:keep-all}
.boss-steps li.now{border-color:var(--teal);color:var(--ink);font-weight:600;background:var(--paper)}
.boss-steps li.now b{background:var(--teal);color:#fff}
.boss-steps li.done b{background:var(--teal-deep);color:#fff}
.boss-why{display:grid;gap:4px}
.lg-boss{background:#1F4E8C;color:#fff}
.nts-row{display:flex;gap:8px}
.nts-row .input{flex:1;min-width:0}
.nts-row .btn{flex:none;white-space:nowrap}
.nts-res{display:grid;gap:2px;padding:10px 12px;border-radius:10px;font-size:13.5px}
.nts-res.ok{background:var(--teal-soft);color:var(--teal-deep)}
.nts-res.bad{background:#FCEFE8;color:#9A3F1C}
.nts-res span{font-size:12.5px}

/* ===== 관리자 · 전체 알림 성과 ===== */
.pcamp{display:grid;gap:8px;padding:12px 0;border-top:1px solid var(--line)}
.pcamp-h{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pcamp-h b{min-width:0;overflow-wrap:anywhere}
.pcamp-big{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.pcamp-big b{font-size:26px;color:var(--teal-deep)}
.pcamp-big span{font-size:13px;color:var(--mute)}
.pbars{display:grid;gap:6px}
.pbar{display:grid;grid-template-columns:76px minmax(0,1fr) 56px;gap:2px 8px;align-items:center;font-size:13px}
.pbar-t{height:14px;border-radius:7px;background:var(--bg);overflow:hidden}
.pbar-t i{display:block;height:100%;border-radius:7px}
.pbar b{text-align:right}
.pbar small{grid-column:2 / 4;font-size:11.5px;color:var(--mute)}
.pb-all{background:#9DB7BC}.pb-sent{background:#3E8FB0}.pb-seen{background:#7BC4C4}.pb-open{background:var(--teal-deep)}
.push-reach{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin:0 0 10px}
.push-reach>div{display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:12px;background:var(--paper);border:1px solid var(--line)}
.push-reach b{font-size:22px;color:var(--teal-deep);white-space:nowrap}
.push-reach span{font-size:13px;line-height:1.35}
.push-reach small{color:var(--mute);font-size:11.5px}
.push-reach>div:first-child{border-color:var(--teal);background:var(--teal-soft)}

/* ===== 안드로이드 앱 설치 배너 (화면 아래 고정, 탭 메뉴 바로 위) ===== */
.app-ban{position:fixed;left:8px;right:8px;bottom:calc(var(--tab-h) + env(safe-area-inset-bottom,0px) + 26px);z-index:31;display:flex;align-items:center;gap:10px;
  padding:10px 10px 10px 12px;border-radius:14px;background:var(--paper);border:1.5px solid var(--teal);box-shadow:0 8px 24px -8px rgba(6,99,106,.45);max-width:560px;margin:0 auto}
.app-ban.no-tab{bottom:calc(env(safe-area-inset-bottom,0px) + 10px)}
.app-ban img{flex:none;width:40px;height:40px;border-radius:10px}
.app-ban>span{display:grid;gap:1px;flex:1;min-width:0;line-height:1.25}
.app-ban b{font-size:14.5px}
.app-ban small{font-size:12px;color:var(--mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-ban .btn{flex:none}
.app-ban-x{flex:none;width:32px;height:32px;border:0;background:none;color:var(--mute);font-size:16px;cursor:pointer;border-radius:8px}
body.has-app-ban{padding-bottom:calc(var(--tab-h) + env(safe-area-inset-bottom,0px) + 96px)}
body.has-app-ban.no-tabbar{padding-bottom:84px}
@media (min-width:900px){.app-ban{bottom:16px}}
.mk-move{border:0;padding:0;margin:0;min-width:0}
.mk-move legend{font-weight:600;margin-bottom:6px;padding:0}
.mk-move-opts{display:flex;gap:8px}
.mk-move-opts label{flex:1;min-width:0;position:relative}
.mk-move-opts input{position:absolute;opacity:0;pointer-events:none}
.mk-move-opts span{display:block;text-align:center;padding:11px 8px;border:1.5px solid var(--line);border-radius:10px;background:var(--paper);font-weight:600}
.mk-move-opts input:checked+span{border-color:var(--teal);background:var(--teal-soft);color:var(--teal-deep)}
.mk-move-opts input:focus-visible+span{outline:2px solid var(--teal);outline-offset:2px}
.pf-from-box{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.pf-from-box .avatar{flex:none}
.pf-from-box dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;margin:0;font-size:14px;min-width:0}
.pf-from-box dt{color:var(--mute)}
.pf-from-box dd{margin:0;min-width:0;overflow-wrap:anywhere}

/* cs-ad2 ── 업체 배너 광고 모양 (2026-10-12) */
.ad2{position:relative;display:block;color:inherit;text-decoration:none;border-radius:16px;overflow:hidden}
.ad2-top{margin:0 16px 12px;min-height:150px;background:var(--ad2c,#ffd45c)}
.ad2-photo{aspect-ratio:16/7;max-height:230px;background:#1c2b2e}
.ad2-photo .ad2-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ad2-photo .ad2-tx{position:absolute;left:0;right:0;bottom:0;padding:34px 16px 14px;background:linear-gradient(transparent,rgba(10,24,28,.82));color:#fff}
.ad2-tx{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
.ad2-tx b{font-size:20px;line-height:1.3;font-weight:800;overflow-wrap:anywhere}
.ad2-tx small{font-size:14px;opacity:.92;line-height:1.4}
.ad2-btn{display:inline-block;font-style:normal;font-weight:800;font-size:13.5px;padding:7px 13px;border-radius:9px;background:var(--ad2c,#ffd45c);color:var(--ad2f,#12272c);margin-top:6px;white-space:nowrap}
.ad2-photo .ad2-btn{box-shadow:0 2px 8px rgba(0,0,0,.25)}
.ad2-below{background:#fff;border:1px solid var(--line)}
.ad2-below .ad2-ph{display:block;aspect-ratio:16/7;max-height:200px;background:var(--bg);overflow:hidden}
.ad2-below .ad2-ph img{width:100%;height:100%;object-fit:cover;display:block}
.ad2-below .ad2-tx{padding:12px 16px 14px}
.ad2-below .ad2-btn{background:var(--ad2c,#ffd45c);color:var(--ad2f,#12272c)}
.ad2-color{display:flex;align-items:center;gap:12px;padding:18px 16px;background:var(--ad2c,#ffd45c);color:var(--ad2f,#12272c)}
.ad2-color .ad2-tx{flex:1}
.ad2-color .ad2-btn{background:var(--ad2f,#12272c);color:var(--ad2c,#ffd45c)}
.ad2-color .ad2-ph{flex:none;width:110px;height:110px;border-radius:12px;overflow:hidden}
.ad2-color .ad2-ph img{width:100%;height:100%;object-fit:cover}
.ad2-lb{position:absolute;top:10px;right:10px;font-style:normal;font-size:11px;font-weight:700;padding:1px 7px;border-radius:6px;background:rgba(10,24,28,.55);color:#fff}
.ad2-strip{display:flex;align-items:center;gap:12px;margin:12px 16px;padding:10px 12px;border:1px solid var(--line);background:var(--paper,#fff)}
.ad2-sph{flex:none;width:64px;height:64px;border-radius:10px;object-fit:cover}
.ad2-stx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ad2-stx b{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad2-stx small{font-size:12.5px;color:var(--mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ad2-lb2{align-self:flex-start;font-style:normal;font-size:11px;font-weight:700;padding:0 6px;border-radius:5px;background:rgba(18,39,44,.08);color:var(--mute)}
.ad2-strip .ad2-btn{margin:0}
.ad2-mini{font-size:11.5px;font-weight:700;color:var(--teal-deep)}
/* 만들기 화면 */
.ad2-f .ad2-opts{display:flex;flex-wrap:wrap;gap:6px}
.ad2-f .ad2-opts label{position:relative}
.ad2-f .ad2-opts input{position:absolute;opacity:0;pointer-events:none}
.ad2-f .ad2-opts span{display:inline-block;padding:8px 12px;border:1.5px solid var(--line);border-radius:999px;font-size:14px;background:var(--paper,#fff)}
.ad2-f .ad2-opts input:checked+span{border-color:var(--teal);background:var(--teal-soft);font-weight:700}
.ad2-f .ad2-sw span{width:34px;height:34px;padding:0;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px var(--line)}
.ad2-f .ad2-sw input:checked+span{box-shadow:0 0 0 3px var(--teal)}
.ad2-f .ad2-tabs{display:flex;gap:6px;margin:4px 0 8px}
.ad2-f .ad2-tabs button{border:1px solid var(--line);background:var(--paper,#fff);border-radius:8px;padding:6px 10px;font-size:13px;font-family:inherit;cursor:pointer}
.ad2-f .ad2-tabs button.on{background:var(--teal);color:#fff;border-color:var(--teal)}
.ad2-f .ad2-pv{border:1px dashed var(--line);border-radius:14px;padding:10px 0;background:var(--bg)}
.ad2-f .ad2-pv .ad2-top,.ad2-f .ad2-pv .ad2-strip{margin:0 10px}
.ad2-plans{display:grid;gap:8px}
.ad2-plans label{position:relative}
.ad2-plans input{position:absolute;opacity:0;pointer-events:none}
.ad2-plans span{display:grid;gap:3px;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--paper,#fff)}
.ad2-plans b{font-size:16px}
.ad2-plans em{font-style:normal;font-weight:800;color:var(--teal-deep);float:right}
.ad2-plans small{font-size:12.5px;color:var(--mute);line-height:1.5}
.ad2-plans input:checked+span{border-color:var(--teal);background:var(--teal-soft)}
.ad2-plans label.off span{opacity:.5}

/* cs-ad2-fix 2026-10-12: 목록 광고에도 '광고' 표시가 꼭 보이게(표시광고법) · 관리자 미리보기는 작게 */
.ad-it .badges .ad-lb{display:inline-block!important}
.ad2-admpv{max-width:420px}
.ad2-admpv .ad2-top{margin:0;min-height:0;max-height:170px}
.ad2-admpv .ad2-photo{aspect-ratio:16/7}
.ad2-admpv .ad2-below .ad2-ph{max-height:110px}
.ad2-admpv .ad2-color .ad2-ph{width:80px;height:80px}
.ad2-admpv .ad2-strip{margin:0}
.ad2-admpv .ad2-tx b{font-size:16px}
.adm-main .ad2-top{max-width:560px}

/* cs-ad4 지역 고르기 · 지금 광고 사진 */
.ad4-sd{border:1px solid var(--line);border-radius:10px;padding:6px 10px;margin:0 0 6px;background:var(--paper,#fff)}
.ad4-sd summary{cursor:pointer;padding:4px 0}
.ad4-sd .ad2-opts{margin-top:6px}
.ad4-cur{display:flex;gap:10px;align-items:center;margin:0 0 6px}
.ad4-cur img{width:120px;height:72px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.ad4-cur span{font-size:13px;color:var(--mute)}

/* cs-ad5 지역 고르기 창 (청비서 24시 오더 지역 고르기와 같은 모양) */
.ad5-bg{position:fixed;inset:0;z-index:9000;background:rgba(15,23,42,.5);display:flex;align-items:center;justify-content:center;padding:14px}
.ad5-bg[hidden]{display:none}
.ad5-box{background:#fff;border-radius:18px;padding:20px;width:100%;max-width:520px;max-height:92vh;display:flex;flex-direction:column}
.ad5-cols{display:flex;border:1px solid var(--line);border-radius:12px;overflow:hidden;height:min(360px,52vh)}
.ad5-left{flex:0 0 92px;overflow-y:auto;background:#f8fafc;border-right:1px solid var(--line)}
.ad5-left button{display:block;width:100%;border:0;background:none;padding:14px 6px;font-size:15px;font-weight:700;color:#475569;cursor:pointer;font-family:inherit;border-left:3px solid transparent}
.ad5-left button.on{background:#fff;color:var(--teal-deep);border-left-color:var(--teal)}
.ad5-left button i{font-style:normal;color:var(--teal);font-size:12px}
.ad5-right{flex:1;overflow-y:auto}
.ad5-row{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);font-size:15px;cursor:pointer}
.ad5-row input{width:20px;height:20px;accent-color:var(--teal)}

/* cs-album 미션 단추 두 개 나란히 */
.mission .m-acts{display:flex;gap:6px;flex-wrap:wrap}

/* campB-6 색 바탕 광고 카드 */
.ad-colimg{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px;text-align:center;overflow:hidden}
.ad-colimg b{font-size:15px;line-height:1.3;font-weight:800;word-break:keep-all;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.ad-colimg small{font-size:12px;font-weight:700;opacity:.9}

/* campB-4 가입 직후 안내 · campB-3 검색 0건 판매 유도 */
.b4-card{margin:10px 16px;padding:14px 16px;border-radius:14px;background:var(--teal-soft,#e6f4f1);display:grid;gap:6px}
.b4-card b{font-size:16px}.b4-card span{font-size:14px;color:var(--mute)}
.b4-card div{display:flex;gap:8px;margin-top:4px}
.b3-want{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);display:grid;gap:6px;justify-items:center}
.b3-want b{font-size:15px}.b3-want span{font-size:13px;color:var(--mute)}

/* campB-6b 광고 표시 늘 보이게 */
.ad-colimg{position:relative}
.ad-colimg .ad-lbx{position:absolute;top:6px;left:6px;font-style:normal;font-size:11px;font-weight:800;padding:1px 6px;border-radius:5px;background:rgba(0,0,0,.35);color:#fff;line-height:1.6}
.ad-it .badges .bd.ad-lb{display:inline-block!important;visibility:visible!important;opacity:1!important;color:#475569!important;background:#e2e8f0!important}
.ad-colimg{padding-top:26px!important}

/* campB-5 구해요 줄 */
.b5-strip{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 16px 10px;padding:9px 12px;border:1px dashed var(--line);border-radius:12px;font-size:14px}
.b5-strip span{flex:1;min-width:120px;color:var(--mute)}
.b5-strip a{font-weight:700;color:var(--teal-deep,#0f766e);text-decoration:underline}
.b5-strip a.b5-go{background:var(--teal,#0d9488);color:#fff;text-decoration:none;border-radius:9px;padding:6px 10px}

/* cs-infscroll 무한 스크롤 */
.inf-tip{font-size:13px;color:var(--mute);text-align:center;padding:6px 0}
.inf-tip.on::before{content:"";display:inline-block;width:14px;height:14px;margin-right:6px;vertical-align:-2px;border:2px solid var(--line);border-top-color:var(--teal);border-radius:50%;animation:infspin .8s linear infinite}
@keyframes infspin{to{transform:rotate(360deg)}}
.inf-end{font-size:13px;color:var(--mute);text-align:center;padding:18px 16px 26px}

/* cs-srch 2026-10-15 대표 지시: 'AI가 웹에서 찾는 중'을 웹 화면이 지나가는 모습으로 */
.cs-srch{background:#f4f8f7;border:1px solid var(--line);border-radius:14px;padding:12px;overflow:hidden;text-align:left;width:100%;box-sizing:border-box}
.cs-srch .sq{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:7px 12px;font-size:13.5px;min-height:20px}
.cs-srch .sq b{font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs-srch .cur{display:inline-block;width:1.5px;height:15px;background:#0f766e;animation:csblink 1s steps(1) infinite;flex:none}
@keyframes csblink{50%{opacity:0}}
.cs-srch .lane{position:relative;height:132px;margin:10px 0 8px;overflow:hidden}
.cs-srch .trk{display:flex;gap:10px;position:absolute;left:0;top:0;animation:csslide 10s linear infinite}
@keyframes csslide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.cs-srch .win{width:140px;height:124px;flex:none;background:#fff;border:1px solid var(--line);border-radius:9px;overflow:hidden;font-size:11px}
.cs-srch .wb{display:flex;gap:3px;align-items:center;padding:5px 6px;border-bottom:1px solid var(--line)}
.cs-srch .wb i{width:5px;height:5px;border-radius:3px;background:#cbd5e1;flex:none}
.cs-srch .wb span{margin-left:4px;font-weight:700;color:#334155;white-space:nowrap}
.cs-srch .wr{display:flex;gap:6px;padding:5px 6px}
.cs-srch .wi{width:30px;height:30px;border-radius:5px;background:#e2e8f0;flex:none}
.cs-srch .wl{height:6px;border-radius:3px;background:#e2e8f0;margin:3px 0}
.cs-srch .wp{height:7px;width:40%;border-radius:3px;background:#99d5cc;margin:3px 0}
.cs-srch .lens{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 40%,rgba(20,163,152,.18) 50%,transparent 60%);animation:csscan 2.2s ease-in-out infinite}
@keyframes csscan{from{transform:translateX(-60%)}to{transform:translateX(60%)}}
.cs-srch .sts{display:grid;gap:6px;font-size:13.5px;color:#94a3b8}
.cs-srch .st{display:flex;gap:8px;align-items:center}
.cs-srch .st i{width:14px;height:14px;border-radius:7px;border:2px solid #cbd5e1;flex:none;box-sizing:border-box}
.cs-srch .st.done{color:#334155}.cs-srch .st.done i{background:#10b981;border-color:#10b981}
.cs-srch .st.on{color:#0f172a;font-weight:700}.cs-srch .st.on i{border-color:#14a398;border-top-color:transparent;animation:csspin .8s linear infinite}
@keyframes csspin{to{transform:rotate(360deg)}}
.cs-srch .cap{font-size:11.5px;color:#94a3b8;margin-top:8px}
@media (prefers-reduced-motion:reduce){.cs-srch .trk,.cs-srch .lens{animation:none}}
/* cs-srch2: '상품 사진 찾는 중' 작은 칸용 */
.cs-mini{position:relative;width:100%;height:100%;min-height:120px;display:flex;flex-direction:column;justify-content:center;gap:8px;padding:8px 0;box-sizing:border-box;overflow:hidden}
.cs-mini .lane{position:relative;height:96px;overflow:hidden}
.cs-mini .trk{display:flex;gap:8px;position:absolute;left:0;top:0;animation:csslide 7s linear infinite}
.cs-mini .win{width:92px;height:92px;flex:none;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:10px}
.cs-mini .wb{display:flex;gap:3px;align-items:center;padding:4px 5px;border-bottom:1px solid var(--line)}
.cs-mini .wb i{width:4px;height:4px;border-radius:2px;background:#cbd5e1;flex:none}
.cs-mini .wb span{margin-left:3px;font-weight:700;color:#334155;white-space:nowrap}
.cs-mini .pic{margin:6px auto 0;width:58px;height:52px;border-radius:6px;background:#e2e8f0}
.cs-mini .lens{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 40%,rgba(20,163,152,.2) 50%,transparent 60%);animation:csscan 2s ease-in-out infinite}
.cs-mini .mcap{font-size:12.5px;font-weight:700;color:#334155;text-align:center}
.cs-mini .mcap .cur{display:inline-block;width:1.5px;height:12px;background:#0f766e;animation:csblink 1s steps(1) infinite;margin-left:2px;vertical-align:middle}

/* cs-pltabs 캠핑장 [목록] [지도] 탭 + 컴퓨터 화면 지도 옆 목록 */
.pl-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:12px 16px 0;background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:4px}
.pl-tabs a{display:flex;align-items:center;justify-content:center;gap:6px;padding:11px 0;border-radius:10px;font:800 15px/1 var(--f-body);color:var(--mute);text-decoration:none}
.pl-tabs a.on{background:var(--paper);color:var(--ink);box-shadow:0 1px 4px rgba(6,40,44,.15)}
@media (min-width:860px){ .pl-tabs{margin:16px 0 0;max-width:360px} }
.pmap-t .pl-tabs{margin-bottom:8px}
.pmap-split.on{display:block}
.pm-side{display:none}
@media (min-width:1000px){
  .pmap-split.on{display:grid;grid-template-columns:340px minmax(0,1fr);gap:12px;align-items:stretch}
  .pmap-split.on .pm-side{display:flex;flex-direction:column;height:calc(100dvh - 230px);min-height:420px;border:1px solid var(--line);border-radius:14px;background:var(--paper);overflow:hidden}
  .pmap-split.on .pmap-box{height:calc(100dvh - 230px)}
  .pm-side-h{padding:12px 14px;border-bottom:1px solid var(--line);font:700 13px/1.4 var(--f-body);color:var(--mute)}
  .pm-side-l{flex:1;overflow-y:auto}
  .pm-si{display:flex;gap:10px;align-items:center;width:100%;padding:10px 14px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;cursor:pointer;color:var(--ink);text-decoration:none;font:inherit}
  .pm-si:hover,.pm-si.on{background:var(--teal-soft)}
  .pm-sg{justify-content:space-between}
  .pm-sb{display:grid;gap:2px;min-width:0}.pm-sb b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

/* cs-place2 캠핑장 상세·지도 보강 (미리보기) */
.pl2-hero{position:relative;background:linear-gradient(150deg,var(--sky),var(--teal-soft));min-height:60px}
.pl2-hero img{display:block;width:100%;max-height:300px;object-fit:cover}
.pl2-share{position:absolute;right:12px;top:12px;border:0;background:rgba(13,31,34,.65);color:#fff;font:700 13px/1 var(--f-body);padding:8px 12px;border-radius:999px;cursor:pointer}
.pl2-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.pl2-rank{font:800 13px/1 var(--f-body);color:var(--teal,#0d7f7a)}
.pl2-cnt{margin:4px 0 0;font-size:14px;color:var(--mute)}.pl2-cnt b{color:var(--ink)}
.pl2-noown{margin:6px 0 0;text-align:right}
.pl2-acts{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:12px;border:1px solid var(--line);border-radius:16px;padding:10px 4px;background:var(--paper)}
.pl2-acts a,.pl2-acts button,.pl2-acts .off{display:flex;flex-direction:column;align-items:center;gap:4px;border:0;background:none;font:700 13px/1.2 var(--f-body);color:var(--ink);text-decoration:none;cursor:pointer;padding:6px 0;border-radius:12px}
.pl2-acts i{font-style:normal;font-size:22px;line-height:1}
.pl2-acts .off{color:var(--mute);opacity:.45;cursor:default}
.pl2-acts .on{background:var(--teal-soft);color:var(--teal,#0d7f7a)}
.pl2-acts .on .hrt{color:#e0245e}
.pl2-msg{margin:8px 0 0;background:var(--ink);color:#fff;padding:9px 12px;border-radius:10px}
.pl2-tabs{position:sticky;top:0;z-index:20;display:flex;overflow-x:auto;background:var(--paper);border-bottom:1px solid var(--line);margin:14px 0 0;scrollbar-width:none}
.pl2-tabs::-webkit-scrollbar{display:none}
.pl2-tabs a{flex:1 0 auto;text-align:center;padding:13px 14px;font:800 15px/1 var(--f-body);color:var(--mute);text-decoration:none;border-bottom:3px solid transparent}
.pl2-tabs a.on{color:var(--ink);border-bottom-color:var(--accent,#e85d2c)}
.pl2-sec{padding:18px 16px;border-bottom:8px solid var(--bg)}
.pl2-sh{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}.pl2-sh .gv-h{margin:0}
.pl2-info{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:8px}.pl2-info li{display:flex;gap:10px;align-items:flex-start;word-break:break-all}.pl2-info span{flex:none;width:22px;text-align:center}
.pl2-map{position:relative;height:220px;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:var(--bg)}
.pl2-mapc{position:absolute!important;inset:0}
.pl2-map-off{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:800}
.pl2-map-lock{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);z-index:5;border:0;background:rgba(13,31,34,.75);color:#fff;font:700 12px/1 var(--f-body);padding:8px 12px;border-radius:999px;cursor:pointer}
.pl2-mapbtns{position:absolute;right:8px;top:8px;z-index:5;display:grid;gap:6px}
.pl2-mapbtns a,.pl2-mapbtns button{display:block;width:58px;padding:7px 0;border:1px solid var(--line);background:var(--paper);border-radius:10px;font:700 12px/1.25 var(--f-body);text-align:center;color:var(--ink);text-decoration:none;cursor:pointer;box-shadow:0 2px 6px rgba(6,40,44,.15)}
.pl2-mapbtns .or{background:#e85d2c;border-color:#e85d2c;color:#fff}
.pl2-routebox{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}
.pl2-routebox a{text-align:center;padding:10px 4px;border:1px solid var(--line);border-radius:10px;font:700 13px/1.2 var(--f-body);color:var(--ink);text-decoration:none;background:var(--paper)}
.pl2-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.pl2-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;display:block}
.pl2-grid.one{grid-template-columns:1fr}.pl2-grid.one img{aspect-ratio:16/9}
.pl2-note{background:var(--bg);border-radius:10px;padding:10px 12px;margin:8px 0 0}
.pl2-ext{display:grid;gap:8px;margin-top:10px}
.pl2-ext a{display:flex;align-items:center;gap:10px;padding:13px 14px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink);font-weight:800;background:var(--paper)}
.pl2-ext b{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px}
.pl2-ext .nv{background:#03c75a}.pl2-ext .yt{background:#ff0033}.pl2-ext .im{background:#5b6ee1}
.pl2-nl{display:grid;gap:0}
.pl2-nl a{display:flex;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--ink)}
.pl2-ni{flex:none;width:84px;height:62px;border-radius:10px;overflow:hidden;background:linear-gradient(150deg,var(--sky),var(--teal-soft))}.pl2-ni img{width:100%;height:100%;object-fit:cover;display:block}
.pl2-nb{display:grid;gap:2px;min-width:0}.pl2-nb b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl2-km{color:#e85d2c;font-weight:700}
.pl2-owner{margin:12px 16px;padding:18px;border-radius:16px;background:var(--teal-soft);text-align:center}.pl2-owner p{margin:6px 0 12px}
.pm-kinds{margin-bottom:6px}.pm-kinds .chip{cursor:pointer;font-family:inherit}
.pm-side-btns{position:absolute;left:10px;bottom:10px;z-index:5;display:flex;gap:6px} /* cs-pl3 안내 문구·숫자 동그라미와 안 겹치게 왼쪽 아래 (핀 카드가 열리면 카드 뒤로) */
.pm-side-btns button{width:54px;padding:8px 0;border:1px solid var(--line);background:var(--paper);border-radius:10px;font:700 12px/1.25 var(--f-body);color:var(--ink);cursor:pointer;box-shadow:0 2px 6px rgba(6,40,44,.2)}
.pm-p2 .pmap-img{width:96px;height:72px}
.pm-p2 .pmap-acts{flex-wrap:wrap}

/* cs-place2b 2차 */
.pl2-notice{margin:0;padding:11px 16px;background:#fff6d6;color:#6b4e00;font-weight:700;font-size:14px}
.pl2-ownbar{display:block;margin:0;padding:11px 16px;background:var(--ink);color:#fff;font-weight:800;font-size:14px;text-decoration:none}
.pl2-stab{display:flex;gap:6px;overflow-x:auto;margin:10px 0;scrollbar-width:none}
.pl2-stab button,.pl2-stab a{flex:none;border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:8px 13px;font:700 14px/1 var(--f-body);color:var(--mute);cursor:pointer;text-decoration:none}
.pl2-stab .on{background:var(--ink);border-color:var(--ink);color:#fff}
.pl2-post{display:grid;gap:3px;padding:12px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--ink)}
.pl2-post b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl2-post .muted{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pl2-dt{color:var(--teal,#0d7f7a);font-weight:700}
.pl2-rec{padding:16px;border-bottom:8px solid var(--bg)}
.pl2-recn{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;text-align:center}
.pl2-recn div{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 2px}.pl2-recn b{display:block;font-size:22px}.pl2-recn span{font-size:12px;color:var(--mute)}
.pl2-badges{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:12px}
.pl2-badges div{display:grid;justify-items:center;gap:2px;padding:8px 2px;border-radius:12px;background:var(--bg);opacity:.45;filter:grayscale(1);text-align:center}
.pl2-badges div.on{opacity:1;filter:none;background:var(--teal-soft)}
.pl2-badges i{font-style:normal;font-size:24px}.pl2-badges b{font-size:11px;line-height:1.2}.pl2-badges span{font-size:10px;color:var(--mute)}

/* cs-mapcard 휴대폰: 지도 카드가 아래 메뉴에 가려지지 않게 위로 */
@media (max-width:859px){ .pmap-card{bottom:calc(86px + env(safe-area-inset-bottom,0px))} }

/* cs-pl3 상세: 사진 넘김 · 시설 아이콘 · 사이트 정보 · 크게 보기 · 목록 아이콘 줄 */
.pl2-hero{position:relative;overflow:hidden}
.pl2-slide .pl2-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.pl2-slide .pl2-track::-webkit-scrollbar{display:none}
.pl2-slide .pl2-sl{flex:0 0 100%;scroll-snap-align:start}
.pl2-slide .pl2-sl img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:3/2}
.pl2-cnt-ph{position:absolute;right:10px;bottom:10px;background:rgba(6,40,44,.65);color:#fff;font:700 12px/1 var(--f-body);padding:6px 9px;border-radius:999px;z-index:3}
.pl2-dots{position:absolute;left:0;right:0;bottom:12px;display:flex;justify-content:center;gap:5px;z-index:3;pointer-events:none}
.pl2-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.55)}.pl2-dots i.on{background:#fff;width:14px;border-radius:3px}
.pl3-h{font:800 15px/1.3 var(--f-body);margin:14px 0 8px}
.pl3-icons{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
@media (min-width:600px){.pl3-icons{grid-template-columns:repeat(8,1fr)}}
.pl3-ic{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;border:1px solid var(--line);border-radius:12px;background:var(--paper);text-align:center}
.pl3-ic i{position:relative;font-style:normal;font-size:22px;line-height:1}.pl3-ic i em{position:absolute;right:-7px;top:-5px;font-style:normal;font-size:11px;font-weight:900;color:#c0392b;background:#fff;border-radius:50%;width:15px;height:15px;line-height:15px}
.pl3-ic b{font-size:11px;line-height:1.2}.pl3-ic span{font-size:10px;color:var(--mute);line-height:1.2}
.pl3-ic.ok{border-color:var(--teal-soft);background:var(--teal-soft)}.pl3-ic.ok b{color:var(--ink)}
.pl3-ic.no,.pl3-ic.none{opacity:.5}.pl3-ic.no i{filter:grayscale(1)}.pl3-ic.none i em{color:#999}
.pl3-tbl{width:100%;border-collapse:collapse;font-size:14px}.pl3-tbl th{width:84px;text-align:left;color:var(--mute);font-weight:700;padding:7px 4px;border-bottom:1px solid var(--line);vertical-align:top}.pl3-tbl td{padding:7px 4px;border-bottom:1px solid var(--line)}
.pl3-gc a{display:block;aspect-ratio:1;overflow:hidden;border-radius:10px}.pl3-gc a img{width:100%;height:100%;object-fit:cover;display:block}
.pl3-lb{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center}
.pl3-lb img{max-width:100%;max-height:100%;object-fit:contain}
.pl3-lb-x{position:absolute;right:12px;top:calc(12px + env(safe-area-inset-top,0px));background:rgba(255,255,255,.15);color:#fff;border:0;border-radius:50%;width:40px;height:40px;font-size:20px}
.pl3-lb-n{position:absolute;left:0;right:0;bottom:calc(16px + env(safe-area-inset-bottom,0px));text-align:center;color:#fff;font:700 13px/1 var(--f-body)}
.pl3-lb-p,.pl3-lb-nx{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.15);color:#fff;border:0;border-radius:50%;width:40px;height:40px;font-size:24px}.pl3-lb-p{left:8px}.pl3-lb-nx{right:8px}
.pl3-mini{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}.pl3-mini em{font-style:normal;font-size:13px;line-height:1;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:3px 6px;display:inline-flex;align-items:center;gap:3px}.pl3-mini em small{font-size:10px;color:var(--mute)}

/* cs-ad5 정상가·할인 표시 */
.ad-reg s{color:#9ca3af}.ad-from{font-style:normal;font-size:11px;background:#f1f5f9;color:#64748b;border-radius:6px;padding:1px 6px;margin-left:4px;white-space:nowrap}
.ad-sale{display:inline-block;margin:2px 0;font-size:12px;font-weight:700;color:#c2410c;background:#fff1e8;border-radius:6px;padding:2px 8px}
.ad-sale-mini{font-style:normal;font-size:11px;color:#c2410c;background:#fff1e8;border-radius:5px;padding:1px 5px;margin-left:4px}
.pr-plan .bd+.bd{margin-left:6px}
/* cs-dong 2026-11-02 내 동네 설정 */
.dn-slots{display:grid;gap:10px;margin:0 0 6px}
.dn-slot{border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:var(--paper)}
.dn-slot>span{width:100%}
.dn-slot>b{flex:1 1 140px;font-size:17px}
.dn-slot.on{border:2px solid var(--teal)}
.dn-slot form{margin:0}
.dn-h{font-size:17px;margin:18px 0 6px}

/* 캠핑 섬 탭(2026-11-12): 좁은 화면에서 탭 4개가 한 줄에 들어가게 좌우 여백만 줄임 */
@media (max-width:400px){.mseg{gap:5px;padding-left:10px;padding-right:10px}.mseg a{padding-left:11px;padding-right:11px}}

/* 2026-11-14 공개 창고 장비 팝업 사진 표시만 */
.ex-photo-stage{position:relative;margin:22px 0 10px}
.ex-photo-stage[hidden],.ex-photo-arrow[hidden]{display:none!important}
.ex-photo-stage .ex-pics{margin:0;gap:0;border-radius:12px;scrollbar-width:none}
.ex-photo-stage .ex-pics::-webkit-scrollbar{display:none}
.ex-photo-stage .ex-pics img{flex:0 0 100%;width:100%;min-width:0;scroll-snap-align:start}
.ex-photo-count{position:absolute;right:10px;top:10px;border-radius:12px;background:rgba(0,0,0,.58);color:#fff;padding:4px 9px;font-size:13px;line-height:1.3;pointer-events:none;font-variant-numeric:tabular-nums}
.ex-photo-arrow{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:46px;border:0;border-radius:20px;background:rgba(0,0,0,.45);color:#fff;font-size:34px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;touch-action:manipulation}
.ex-photo-prev{left:8px}.ex-photo-next{right:8px}

/* 2026-11-14 본인 창고 사진 영역에만 적용 */
.gv-main .my-photo-gallery{position:absolute;inset:0}
.my-photo-track{display:flex;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;width:100%;height:100%;scrollbar-width:none;overscroll-behavior-x:contain}
.my-photo-track::-webkit-scrollbar{display:none}
.gv-main .my-photo-track img{position:static;inset:auto;flex:0 0 100%;width:100%;height:100%;min-width:0;object-fit:cover;scroll-snap-align:start}
.my-photo-count{position:absolute;right:12px;top:12px;padding:4px 10px;border-radius:14px;background:rgba(0,0,0,.58);color:#fff;font-size:13px;line-height:1.3;pointer-events:none;font-variant-numeric:tabular-nums}
.my-photo-arrow{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:46px;border:0;border-radius:20px;background:rgba(0,0,0,.45);color:#fff;font-size:34px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;touch-action:manipulation}
.my-photo-arrow[hidden]{display:none!important}.my-photo-prev{left:8px}.my-photo-next{right:8px}

/* 2026-11-14 창고 장비 넣기에만 촬영 우선 */
#gear-add .ga-camera{display:flex;flex-direction:column;gap:10px}
#gear-add .ga-help{margin:0;font-size:15px;font-weight:700}
#gear-add .ga-camera-stage{position:relative;aspect-ratio:4/3;background:#12292d;border-radius:16px;overflow:hidden;color:#fff;display:grid;place-items:center}
#gear-add .ga-camera-stage>span{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
#gear-add .ga-camera-stage>span svg{width:54px;height:54px}
#gear-add .ga-camera-stage.has-photo>span{display:none}
#gear-add .ga-camera-stage>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
#gear-add .ga-shoot{min-height:66px;font-size:22px;gap:10px;border-radius:16px}
#gear-add .ga-previews{display:flex;gap:8px;overflow-x:auto;min-height:0}
#gear-add .ga-previews>div{position:relative;flex:0 0 76px;height:76px}
#gear-add .ga-previews img{width:100%;height:100%;object-fit:cover;border-radius:10px}
#gear-add .ga-previews button{position:absolute;right:0;top:0;width:27px;height:27px;border:0;border-radius:50%;background:rgba(0,0,0,.7);color:white;font-size:21px;line-height:1}
#gear-add #ga-photo-count{margin:0;text-align:center}
#gear-add .ga-album{min-height:48px}
