.mappsTextColorTools{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.mappsTextColorTools .mappsTextColorChoice{width:44px!important;min-width:44px;min-height:44px;height:44px!important;padding:5px!important;border:5px solid #fff!important;border-radius:50%!important;background:var(--swatch,#273244)!important;box-shadow:0 0 0 1px #bac3ce!important;cursor:pointer}
.mappsTextColorChoice[data-color="red"]{--swatch:#b42318}.mappsTextColorChoice[data-color="orange"]{--swatch:#994500}.mappsTextColorChoice[data-color="green"]{--swatch:#176b40}.mappsTextColorChoice[data-color="blue"]{--swatch:#1759a8}.mappsTextColorChoice[data-color="purple"]{--swatch:#783ca3}
.mappsTextColorTools .mappsTextColorChoice[aria-pressed="true"]{box-shadow:0 0 0 3px #1769c2!important}
.mappsTextColorTools .mappsTextColorChoice:focus-visible{outline:2px solid #1769c2;outline-offset:2px}
.mappsTextColorPreview{white-space:pre-wrap;overflow-wrap:anywhere;border:1px dashed #a5acb8;padding:10px;margin-top:6px;background:#fff;color:#273244;font-size:14px;line-height:1.7}
.mappsTextColorPreview[hidden]{display:none!important}
.mappsTextColor.mappsTextColor-red{color:var(--mapps-text-red,#b42318)!important}.mappsTextColor.mappsTextColor-orange{color:var(--mapps-text-orange,#994500)!important}.mappsTextColor.mappsTextColor-green{color:var(--mapps-text-green,#176b40)!important}.mappsTextColor.mappsTextColor-blue{color:var(--mapps-text-blue,#1759a8)!important}.mappsTextColor.mappsTextColor-purple{color:var(--mapps-text-purple,#783ca3)!important}
html[data-app-theme="dark"] .mappsTextColorPreview{background:#18202b;color:#e8edf5}
html[data-app-theme="dark"] :is(.mappsTextColorPreview,.boardDetail,#profileDetailModal.footprintFullScreen .myTripPortfolioStory){--mapps-text-red:#ff9d96;--mapps-text-orange:#ffc28a;--mapps-text-green:#8addac;--mapps-text-blue:#9cc7ff;--mapps-text-purple:#d7b0ff}
html, body {
  height: 100%;
  overflow: hidden !important;
}

body{margin:0;font-family:'Segoe UI','Roboto',sans-serif;background:#fff;}
.hide{display:none!important;}

/* =============================
   STEP 0 (iOS UI) - UI ONLY
   - 기능/로직 변경 없음
   ============================= */
:root{
  --ios-bg:#F2F2F7;
  --ios-card:#FFFFFF;
  --ios-sep:rgba(60,60,67,0.15);
  --ios-secondary:rgba(60,60,67,0.6);
  --ios-primary:#007AFF;
  --ios-radius:18px;
  --ios-shadow:0 6px 20px rgba(0,0,0,0.08);
}

body{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  background:var(--ios-bg);
  color:#111;
}

button{
  -webkit-tap-highlight-color: transparent;
}

button:not(:disabled):not([aria-disabled="true"]):active,
[role="button"]:not([aria-disabled="true"]):active,
summary:active{
  filter:brightness(.78) saturate(1.18)!important;
  opacity:.88;
}

#topBar{
  position:fixed;top:0;left:0;width:100%;height:60px;
  background:#fff;border-bottom:1px solid #eee;
  display:flex;justify-content:center;align-items:center;
  z-index:100;
}
#topLogo{
  width:min(330px, 82vw);
  height:54px;
  padding:0;
  border:none;
  background:transparent;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
}
#topLogo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

#myLoc{
  padding:0!important;
  overflow:visible;
  display:flex!important;
  align-items:center;
  justify-content:center;
}
#myLoc .my-location-pin{
  position:relative;
  display:block;
  width:24px;
  height:24px;
  border-radius:50% 50% 50% 0;
  background:#ef233c;
  transform:rotate(-45deg);
  box-shadow:0 2px 6px rgba(239,35,60,.38);
}
#myLoc .my-location-pin::after{
  content:"";
  position:absolute;
  width:9px;
  height:9px;
  left:7.5px;
  top:7.5px;
  border-radius:50%;
  background:#fff;
}
#nearbyRoomRangeNotice{
  position:fixed;
  left:50%;
  bottom:112px;
  transform:translateX(-50%);
  z-index:74;
  width:max-content;
  max-width:calc(100vw - 32px);
  padding:9px 13px;
  border-radius:999px;
  background:rgba(20,24,31,.86);
  color:#fff;
  font-size:12px;
  font-weight:700;
  text-align:center;
  box-shadow:0 5px 18px rgba(0,0,0,.2);
}
#nearbyRoomRangeNotice.hide{display:none;}

#searchBar{
  position:fixed;top:61px;left:50%;transform:translateX(-50%);
  width:92%;background:#fff;padding:4px 8px;
  display:flex;gap:7px;border-radius:12px;
  box-shadow:0 2px 6px rgba(0,0,0,.12);z-index:90;
}
#searchInput{
  flex:1;padding:6px 9px;font-size:15px;border:1px solid #ccc;border-radius:10px;
}
#searchBtn{
  padding:6px 11px;font-size:15px;background:#000;color:#fff;border:none;border-radius:10px;
}

#categoryBar{
  position:fixed;top:107px;width:100%;background:#fff;
  overflow-x:auto;border-bottom:1px solid #eee;z-index:80;
}
.catWrap button{
  padding:8px 14px;font-size:15px;
  background:#f5f5f5;border:none;border-radius:22px;flex-shrink:0;
}

#map{
  position: fixed;
  top: 156px;               /* 위쪽 UI 주변 높이 */
  left: 0;
  width: 100%;
  height: calc(100% - 221px);   /* 주변 높이에서 상단156 + 하단65 제거 */
  overflow: hidden;
}


/* shrink floating buttons */
#floatingBtns{
  position:fixed;right:10px;bottom:160px;
  display:flex;flex-direction:column;gap:10px;z-index:95;
}
#floatingBtns button{
  width:52px;height:52px;font-size:18px;
  border:none;border-radius:50%;background:#fff;
  box-shadow:0 2px 5px rgba(0,0,0,.2);
  font-weight:800;
  cursor:pointer;
}
#floatingBtns #profileAlertQuickBtn{
  background:#e7654b;
  color:#fff;
  box-shadow:0 8px 22px rgba(23,105,224,0.28);
  font-size:12px;
}
#chatFilterBtn{
  font-size:13px !important;
}
#chatFilterPanel{
  position:fixed;
  right:72px;
  bottom:214px;
  width:188px;
  padding:12px;
  border-radius:18px;
  background:rgba(255,255,255,0.94);
  box-shadow:0 10px 32px rgba(0,0,0,0.18);
  z-index:96;
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
#chatFilterPanel.hide{
  display:none;
}
.chat-filter-title{
  font-size:14px;
  font-weight:900;
  margin-bottom:8px;
}
.chat-filter-note{
  margin-top:9px;
  color:rgba(60,60,67,0.64);
  font-size:11px;
  line-height:1.35;
}

/* When category sheet is open, hide floating buttons to prevent overlap */
body.sheet-open #floatingBtns{
  opacity:0;
  pointer-events:none;
  transform:translateY(10px);
  transition:opacity .15s ease, transform .15s ease;
}
body.sheet-open #chatFilterPanel{
  display:none;
}

/* adjust Google map UI buttons size */
.gmnoprint button, .gm-style button{
  transform:scale(0.75); /* shrink 25% */
}
.gm-fullscreen-control,
.gm-svpc{
  display:none !important;
}

#communityCard{
  position:fixed;bottom:85px;left:50%;transform:translateX(-50%);
  background:#fff;padding:20px;border-radius:14px;
  box-shadow:0 2px 8px rgba(0,0,0,.18);z-index:96;font-size:17px;
  max-height:calc(100vh - 170px);
  overflow-y:auto;
  overflow-x:hidden;
  box-sizing:border-box;
}

/* 공식방 채널 선택 모달 */
#officialChannelModal{
  position:fixed;top:0;left:0;width:100%;height:100%;
  background:rgba(0,0,0,0.35);
  display:flex;align-items:flex-end;justify-content:center;
  z-index:120;
}
#officialChannelBox{
  width:100%;
  max-width:520px;
  background:#fff;
  border-top-left-radius:18px;
  border-top-right-radius:18px;
  padding:16px 16px 20px;
  box-shadow:0 -6px 24px rgba(0,0,0,0.18);
  max-height:calc(100vh - 24px);
  overflow-y:auto;
  overflow-x:hidden;
  box-sizing:border-box;
}
#officialChannelTitle{
  font-size:18px;
  font-weight:800;
}
#officialChannelSub{
  margin-top:6px;
  font-size:14px;
  color:#666;
}
#officialChannelList{
  margin-top:14px;
  max-height:46vh;
  overflow-y:auto;
  border-top:1px solid #eee;
  padding-top:10px;
}
.official-channel-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:12px 10px;
  border:1px solid #eee;
  border-radius:12px;
  margin-bottom:10px;
}
.official-channel-row .left{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.official-channel-row .name{
  font-size:16px;
  font-weight:700;
}
.official-channel-row .meta{
  font-size:13px;
  color:#666;
}
.official-channel-row button{
  border:none;
  background:#000;
  color:#fff;
  padding:10px 12px;
  border-radius:10px;
  font-size:14px;
}
.official-channel-row button:disabled{
  opacity:0.45;
}
.official-channel-actions{
  display:flex;
  gap:10px;
  margin-top:12px;
}
#officialChannelAutoBtn{
  flex:1;
  background:#000;
  color:#fff;
  border:none;
  border-radius:12px;
  padding:12px 14px;
  font-size:15px;
  font-weight:700;
}
#officialChannelCloseBtn{
  width:120px;
  background:#f1f1f1;
  color:#111;
  border:none;
  border-radius:12px;
  padding:12px 14px;
  font-size:15px;
  font-weight:700;
}
#officialChannelRejoinBtn{
  margin-top:12px;
  width:100%;
  background:#fff;
  border:1px solid #000;
  color:#000;
  border-radius:12px;
  padding:12px 14px;
  font-size:15px;
  font-weight:800;
}

#chatRoom{
  position:fixed;top:60px;bottom:0;width:100%;height:auto;background:#fff;
  border-top:1px solid #ddd;display:flex;flex-direction:column;z-index:140;
}
#chatHeader{
  padding:10px 12px;
  font-size:16px;
  border-bottom:1px solid #eee;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
#chatMessages{flex:1;overflow-y:auto;padding:10px;font-size:17px;}
#chatInputWrap{display:flex;padding:10px;}
#chatInput{
  flex:1;padding:9px 10px;font-size:16px;border:1px solid #ccc;border-radius:10px;
}
#sendBtn{
  margin-left:10px;padding:12px 16px;font-size:17px;background:#000;color:#fff;border:none;border-radius:10px;
}

#profileModal{
  position:fixed;top:0;left:0;width:100%;height:100%;
  background:rgba(0,0,0,.3);display:flex;justify-content:center;align-items:flex-end;z-index:100002;
}
#profileBox{
  width:100%;
  max-width:460px;
  box-sizing:border-box;
  background:rgba(255,255,255,0.96);
  padding:18px 16px 20px;
  border-radius:22px 22px 0 0;
  font-size:18px;
  box-shadow:0 -12px 34px rgba(0,0,0,0.18);
  max-height:calc(100vh - 24px);
  overflow-y:auto;
  overflow-x:hidden;
}
#profileName{
  font-size:20px;
  font-weight:900;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.profile-user-summary{
  margin-top:8px;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(0,0,0,0.04);
  color:#333;
  font-size:13px;
  font-weight:800;
}
.profile-user-trips{
  margin:12px 0;
  display:grid;
  gap:8px;
}
.profile-user-trips-title{
  font-size:13px;
  font-weight:1000;
  color:#111;
}
.profile-user-trips-empty{
  padding:14px 12px;
  border-radius:12px;
  background:rgba(60,60,67,0.08);
  font-size:13px;
  font-weight:800;
  color:#666;
}
.profile-user-trip-item{
  display:grid;
  grid-template-columns:48px 1fr;
  grid-template-rows:auto auto;
  gap:3px 10px;
  align-items:center;
  width:100%;
  border:1px solid rgba(0,0,0,0.08);
  border-radius:12px;
  background:#fff;
  padding:8px;
  text-align:left;
}
.profile-user-trip-item img,
.profile-user-trip-item span{
  grid-row:1 / span 2;
  width:48px;
  height:48px;
  border-radius:10px;
  background:#eef2f7;
  object-fit:cover;
}
.profile-user-trip-item strong{
  font-size:13px;
  font-weight:1000;
  color:#111;
}
.profile-user-trip-item em{
  font-style:normal;
  font-size:12px;
  font-weight:700;
  color:#666;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.profile-user-trips-title button{
  border:0;
  border-radius:999px;
  padding:7px 10px;
  background:#eef6ff;
  color:#007aff;
  font-size:12px;
  font-weight:900;
}
.profile-user-trip-detail{
  display:grid;
  gap:10px;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  overflow:hidden;
}
.profile-user-trip-media{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(0, 100%);
  gap:8px;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  border-radius:14px;
}
.profile-user-trip-media img{
  width:100%;
  max-width:100%;
  height:auto;
  max-height:260px;
  object-fit:cover;
  border-radius:14px;
  scroll-snap-align:start;
  background:#eef2f7;
}
.profile-user-trip-detail strong{
  font-size:16px;
  font-weight:1000;
  line-height:1.25;
  color:#111;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.profile-user-trip-detail span,
.profile-user-trip-detail p{
  margin:0;
  font-size:13px;
  font-weight:750;
  line-height:1.45;
  color:#444;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
#closeProfile{
  width:100%;
  margin-top:4px;
  border:none;
  border-radius:14px;
  padding:12px 10px;
  background:rgba(60,60,67,0.10);
  font-size:14px;
  font-weight:900;
}
.room-home-notice-editable{
  cursor:pointer;
  outline:2px solid rgba(0,122,255,0.18);
}

#bottomNav{
  position:fixed;bottom:0;width:100%;height:65px;background:#fff;
  border-top:1px solid #ddd;display:flex;justify-content:space-around;align-items:center;z-index:99;
}
#bottomNav button{
  background:none;border:none;font-size:17px;color:#333;
}

#loginOverlay {
  position:fixed; top:0; left:0; right:0; bottom:0;
  background:rgba(0,0,0,0.4);
  z-index:99998;
}
#loginPopup {
  position:fixed; bottom:120px; left:0; right:0;
  margin:auto; width:90%; max-width:400px;
  background:white; padding:20px; border-radius:14px;
  box-shadow:0 5px 20px rgba(0,0,0,0.25);
  z-index:99999;
}
.kakao-btn{
  width:100%; background:#FEE500; border:none;
  padding:12px; font-size:16px; border-radius:8px;
  margin-bottom:10px;
}
.google-btn{
  width:100%; background:white;
  border:1px solid #ccc; padding:12px;
  font-size:16px; border-radius:8px;
  margin-bottom:10px;
}
.login-popup-title{font-size:20px;font-weight:900;text-align:center;margin:2px 0 4px;}
.login-popup-help{font-size:12px;color:#6b7280;text-align:center;margin-bottom:16px;}
.apple-btn,.email-login-btn{width:100%;border:1px solid #d7dbe2;padding:12px;font-size:16px;border-radius:8px;margin-bottom:10px;font-weight:700;}
.apple-btn{background:#111;color:#fff;border-color:#111;}
.email-login-btn{background:#f3f4f6;color:#333;}
.apple-btn span,.email-login-btn span{font-size:11px;opacity:.72;margin-left:5px;}
.login-policy-btn{width:100%;border:0;background:transparent;color:#666;text-decoration:underline;font-size:12px;padding:7px 4px 11px;}
#locationAgreementModal{position:fixed;inset:0;z-index:100001;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:18px;}
#locationAgreementModal.hidden{display:none;}
.location-agreement-card{width:min(520px,100%);max-height:min(760px,calc(100vh - 36px));background:#fff;border-radius:22px;box-shadow:0 18px 55px rgba(0,0,0,.26);display:flex;flex-direction:column;overflow:hidden;}
.location-agreement-head{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 18px 13px;border-bottom:1px solid #eee;}
.location-agreement-head strong{display:block;font-size:19px;}.location-agreement-head span{display:block;color:#777;font-size:11px;margin-top:4px;}
.location-agreement-head button{border:0;background:#f2f3f5;border-radius:50%;width:34px;height:34px;font-size:17px;}
.location-agreement-scroll{overflow:auto;padding:4px 18px 10px;line-height:1.55;color:#34373d;}
.location-agreement-scroll section{padding:10px 0;border-bottom:1px solid #f0f1f2;}.location-agreement-scroll h3{font-size:14px;margin:0 0 5px;}.location-agreement-scroll p{font-size:12px;margin:0;}
.location-agreement-note{font-size:11px!important;color:#9a6700;background:#fff8db;border-radius:10px;padding:9px;margin-top:10px!important;}
.location-agreement-check{display:flex;gap:8px;padding:8px 18px 0;font-size:12px;align-items:flex-start;}.location-agreement-check input{margin-top:2px;}.location-agreement-check b{color:#e5484d;}
.location-agreement-check a{margin-left:4px;color:#1267ba;font-weight:850;text-decoration:none;white-space:nowrap;}
.location-agreement-all{margin:8px 18px 2px;padding:11px 12px;border-radius:12px;background:#f2f7ff;font-size:14px;}
.location-agreement-all b{color:#1267ba;}
.legal-agreement-summary{flex:0 1 auto;padding-top:12px;}
.location-agreement-actions{display:grid;grid-template-columns:1fr 2fr;gap:9px;padding:14px 18px 18px;}.location-agreement-actions button{border:0;border-radius:12px;padding:13px;font-weight:800;}.location-agreement-actions button:first-child{background:#eee;}.location-agreement-actions button:last-child{background:#1677ff;color:#fff;}.location-agreement-actions button:disabled{background:#c9cdd3;color:#fff;}
#emailAuthModal{position:fixed;inset:0;z-index:10030;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:18px;}
#emailAuthModal.hidden{display:none;}
.email-auth-card{width:min(430px,100%);background:#fff;border-radius:22px;box-shadow:0 18px 55px rgba(0,0,0,.26);overflow:hidden;}
.email-auth-head{display:flex;justify-content:space-between;align-items:flex-start;padding:18px;border-bottom:1px solid #eee;}
.email-auth-head strong{display:block;font-size:19px;}.email-auth-head span{display:block;color:#777;font-size:12px;margin-top:4px;}.email-auth-head button{border:0;background:#f2f3f5;border-radius:50%;width:34px;height:34px;font-size:17px;}
.email-auth-tabs{display:grid;grid-template-columns:1fr 1fr;padding:14px 18px 0;}.email-auth-tabs button{border:0;border-bottom:2px solid #e4e7eb;background:#fff;padding:11px;font-weight:800;color:#777;}.email-auth-tabs button.active{border-color:#1677ff;color:#1677ff;}
#emailAuthForm{padding:16px 18px 18px;}#emailAuthForm label{display:block;margin-bottom:12px;}#emailAuthForm label.hidden{display:none;}#emailAuthForm label span{display:block;font-size:12px;font-weight:800;margin-bottom:6px;}#emailAuthForm input{width:100%;box-sizing:border-box;border:1px solid #d8dde5;border-radius:11px;padding:13px;font-size:16px;}#emailAuthForm input:focus{outline:none;border-color:#d8dde5;box-shadow:none;}
.email-auth-message{min-height:18px;margin:2px 0 10px;color:#d93025;font-size:12px;line-height:1.45;}.email-auth-message.success{color:#087f23;}
.email-auth-submit{width:100%;border:0;border-radius:12px;padding:14px;background:#1677ff;color:#fff;font-size:15px;font-weight:800;}.email-auth-submit:disabled{background:#aeb7c5;}.email-password-reset{width:100%;border:0;background:transparent;color:#555;padding:13px 0 2px;font-size:12px;text-decoration:underline;}
.admin-login-btn{
  width:100%;
  background:#111;
  color:#fff;
  border:0;
  padding:12px;
  font-size:16px;
  font-weight:800;
  border-radius:8px;
}
.hidden{display:none;}

#profilePanel{
  position:fixed; top:100%; left:0; right:0;
  background:white; height:100vh;
  z-index:99999; transition:top 0.18s ease-out;
  padding:20px;
  overflow:hidden;
}
#profilePanel.show{
  top:0;
}
#profileHeader{
  font-size:20px; font-weight:bold;
  display:flex; align-items:center;
  margin-bottom:20px;
}
#backProfile{
  cursor:pointer; margin-right:10px;
}
#profileImage{
  width:80px; height:80px; border-radius:50%;
  background:#eee; margin:auto; margin-bottom:15px;
}
#profileNick, #profileLoginType{
  text-align:center; font-size:18px; margin-bottom:10px;
}
.profileStat{
  font-size:17px; margin:10px 0;
}
#logoutBtn{
  width:100%; padding:12px; font-size:16px;
  background:#ff5252; color:white;
  border:none; border-radius:8px;
  margin-top:20px;
}


/* 마커 라벨(방 제목) */
.room-label {
  font-size: 13px;
  font-weight: 700;
  padding: 4px 8px;
  border-radius: 999px;
  white-space: nowrap;
  color: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,0.35);
}

.room-label-open {
  background: #03C75A;
}

.room-label-private {
  background: #2962FF; /* 파란 비공개 */
}

.room-label-official {
  background: #C2185B; /* 분홍빛 자주색 공식방 */
}

/* 채팅 헤더 버튼 묶음 */
#chatHeader {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.chat-header-right{
  display:flex;
  align-items:center;
  gap:6px;
}
#inviteRoomBtn,
#reportRoomBtn,
#blockRoomBtn,
#roomInfoBtn{
  border:none;
  border-radius:10px;
  padding:7px 8px;
  background:rgba(255,149,0,0.14);
  color:#b06400;
  font-size:12px;
  font-weight:800;
}
#inviteRoomBtn{
  background:rgba(0,122,255,0.12);
  color:#007aff;
}
#blockRoomBtn{
  background:rgba(255,59,48,0.12);
  color:#c52f26;
}
#roomInfoBtn{
  min-width:68px;
  min-height:36px;
  border-radius:14px;
  padding:0 12px;
  background:rgba(0,122,255,0.12);
  color:#007aff;
  font-size:13px;
  font-weight:900;
  white-space:nowrap;
}

.chat-header-buttons {
  display: flex;
  gap: 6px;
}


.chat-header-left,
.chat-header-center,
.chat-header-right{
  display:flex;
  align-items:center;
  min-width:0;
}
.chat-header-left{
  flex:0 0 auto;
  width:62px;
}
.chat-header-center{
  flex:1 1 0;
  flex-direction:column;
  text-align:center;
  gap:2px;
  min-width:0;
  overflow:hidden;
  padding:0 8px;
}
.chat-header-right{
  flex:0 0 auto;
  justify-content:flex-end;
  max-width:226px;
  min-width:0;
  gap:5px;
}
#chatRoomName{
  font-size:16px;
  font-weight:600;
  width:100%;
  min-width:0;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  word-break:normal;
}
#chatRoomUsers{
  font-size:13px;
  color:#666;
  width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#deleteRoomInChat{
  padding:6px 8px;
  font-size:12px;
  border-radius:10px;
  border:1px solid #ddd;
  background:#fff;
  cursor:pointer;
  white-space:nowrap;
}
#roomOwnerIdLabel{
  display:none;
}
/* 채팅 닫기 버튼 - 프로필 뒤로가기 스타일과 통일 */
#closeChat{
  background:#000;
  color:#fff;
  padding:8px 14px;
  font-size:14px;
  font-weight:600;
  border:none;
  border-radius:10px;
  cursor:pointer;
}


/* 방 타입 선택 모달 */
#roomTypeModal {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  background: rgba(0,0,0,0.35);
  display: none;
  align-items: flex-end;
  justify-content: center;
  z-index: 120;
}

/* 방 생성 모달 (v1) */
#roomCreateModal{
  position:fixed;
  left:0; right:0; bottom:0; top:0;
  background:rgba(0,0,0,0.35);
  display:none;
  align-items:flex-end;
  justify-content:center;
  padding:0 12px;
  z-index:121;
}
#roomCreateModal.show{display:flex;}
.room-create-box{
  width:100%;
  max-width:420px;
  box-sizing:border-box;
  background:#fff;
  border-radius:18px 18px 0 0;
  padding:18px 20px 22px;
  box-shadow:0 -4px 12px rgba(0,0,0,0.2);
  max-height:calc(100vh - 24px);
  overflow-y:auto;
  overflow-x:hidden;
}
.room-create-title{
  font-size:17px;
  font-weight:700;
  margin-bottom:12px;
}
.room-create-label{
  display:block;
  font-size:13px;
  color:rgba(60,60,67,0.6);
  margin:10px 0 6px;
}
.room-create-input{
  width:100%;
  min-width:0;
  box-sizing:border-box;
  padding:12px;
  font-size:16px;
  border:1px solid #ddd;
  border-radius:12px;
  background:#fff;
}
.room-create-grid{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
  gap:10px;
}
.room-create-grid > div{
  min-width:0;
}
#roomCreateMaxMembers,
#roomCreateCategory{
  height:44px;
  min-height:44px;
  margin:0;
  padding:0 12px;
  line-height:normal;
}
.room-create-custom{
  margin-top:8px;
}
.official-create-fields{
  margin-top:12px;
  padding:12px;
  border-radius:16px;
  background:rgba(0,122,255,0.06);
  border:1px solid rgba(0,122,255,0.16);
}
.official-create-note{
  color:#0b5cad;
  font-size:13px;
  font-weight:800;
  line-height:1.4;
  margin-bottom:8px;
}
.official-create-locked{
  margin-top:10px;
  padding:12px;
  border-radius:14px;
  background:rgba(255,149,0,0.12);
  color:#7a4a00;
  font-size:13px;
  font-weight:800;
  line-height:1.45;
}
.official-create-locked strong,.official-create-locked span,.official-create-locked small{display:block}.official-create-locked strong{margin-bottom:6px;color:#603900;font-size:14px}.official-create-locked span{margin-top:5px;font-weight:700}.official-create-locked small{margin-top:9px;padding-top:8px;border-top:1px solid rgba(122,74,0,.18);font-size:11px;font-weight:700}.official-create-locked small b{color:#005fc7}
#roomCreateStartAt,
#roomCreateEndAt{
  min-width:0;
}
.room-create-btn{
  margin-top:10px;
  width:100%;
  padding:12px 0;
  border-radius:999px;
  border:0;
  font-size:16px;
  cursor:pointer;
}
.room-create-btn-primary{
  background:#000;
  color:#fff;
}
.room-create-btn-cancel{
  background:#eee;
}
@media (min-width: 720px){
  #roomCreateModal{
    align-items:center;
    padding:24px;
  }
  .room-create-box{
    border-radius:18px;
    max-width:560px;
    box-shadow:0 18px 50px rgba(0,0,0,0.22);
  }}
@media (max-width: 520px){
  .room-create-grid{
    grid-template-columns:1fr;
  }
  .room-create-capacity-grid{
    grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
  }}

/* Keep the general-room and channel-room creation cards identical in size. */
#roomCreateModal .room-create-box,
#roomCreateModal .room-create-box.official-mode{
  width:min(100%, 560px);
  max-width:560px;
  height:min(78dvh, calc(100vh - 130px));
  max-height:min(78dvh, calc(100vh - 130px));
}
@media (max-width:640px){
  #roomCreateModal .room-create-box,
  #roomCreateModal .room-create-box.official-mode{
    height:min(72dvh, calc(100vh - 170px));
    max-height:min(72dvh, calc(100vh - 170px));
  }}

/* Room creation modal service polish */
#roomCreateModal{
  padding:0 12px max(12px, env(safe-area-inset-bottom));
}
.room-create-box{
  max-height:min(78dvh, calc(100vh - 130px));
  overscroll-behavior:contain;
}
.room-create-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.room-create-head .room-create-title{
  margin-bottom:0;
  min-width:0;
}
.room-create-close{
  width:34px;
  height:34px;
  flex:0 0 34px;
  border:0;
  border-radius:50%;
  background:rgba(60,60,67,0.1);
  color:#111;
  font-size:24px;
  line-height:1;
  font-weight:700;
  cursor:pointer;
}
.room-create-input{
  max-width:100%;
  display:block;
}
.room-create-grid{
  min-width:0;
}
.room-create-grid > div{
  max-width:100%;
}
.official-image-picker{
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:10px;
  align-items:start;
}
.official-image-picker img{
  width:120px;
  aspect-ratio:16/9;
  object-fit:cover;
  border-radius:16px;
  background:#dfe8f3;
  border:1px solid rgba(60,60,67,0.12);
}
.official-url-fallback{
  margin-top:8px;
}
.official-image-help{
  margin-top:6px;
  color:rgba(60,60,67,0.55);
  font-size:12px;
  line-height:1.35;
}
.room-create-mini-btn{
  margin-top:8px;
  border:0;
  border-radius:999px;
  padding:8px 10px;
  background:rgba(60,60,67,0.1);
  color:#111;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}
.room-create-box.official-mode{
  max-width:560px;
}
.room-create-box.official-mode .room-create-title::after{
  content:" · 채널";
  color:#007aff;
}
#roomCreateStartAt,
#roomCreateEndAt{
  max-width:100%;
  font-size:14px;
}
@media (max-width: 640px){
  .room-create-box{
    padding:14px 16px 16px;
    max-height:min(72dvh, calc(100vh - 170px));
  }
  .room-create-grid{
    grid-template-columns:1fr;
  }
  .room-create-capacity-grid{
    grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
  }
  .official-image-picker{
    grid-template-columns:1fr;
  }
  .official-image-picker img{
    width:100%;
  }
  .room-create-label{
    margin:8px 0 5px;
  }
  .room-create-input{
    padding:10px 11px;
  }}
#roomTypeModal.show {
  display: flex;
}
.room-type-box {
  width: 100%;
  max-width: 420px;
  background: #fff;
  border-radius: 18px 18px 0 0;
  padding: 18px 20px 22px;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.2);
  max-height: calc(100vh - 24px);
  overflow-y: auto;
  overflow-x: hidden;
  box-sizing: border-box;
}
.room-type-title {
  font-size: 17px;
  font-weight: 600;
  margin-bottom: 14px;
}
.room-type-buttons {
  display: flex;
  gap: 10px;
}
.room-type-btn {
  flex: 1;
  padding: 12px 0;
  border-radius: 999px;
  border: 0;
  font-size: 16px;
  cursor: pointer;
}
.room-type-btn-open {
  background: #00c853;
  color: #fff;
}
.room-type-btn-private {
  background: #2962ff;
  color: #fff;
}
.room-type-btn-official {
  background: #ff2d55; /* iOS system pink */
  color: #fff;
}
.room-type-btn-cancel {
  margin-top: 10px;
  width: 100%;
  padding: 10px 0;
  border-radius: 999px;
  border: 0;
  font-size: 15px;
  background: #eee;
  cursor: pointer;
}

/* 마커 라벨 가독성 강화 */
.room-label {
  padding: 3px 7px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  background: rgba(255,255,255,0.9);
  color: #111;
  white-space: nowrap;
}
.room-label-open {
  border: 1px solid #00c853;
}
.room-label-private {
  border: 1px solid #2962ff;
}
.room-label-official {
  border: 1px solid #ff4081;
}

/* ===== iOS overrides (kept at end for precedence) ===== */
#topBar{
  background:rgba(255,255,255,0.72);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom:1px solid var(--ios-sep);
}

#searchBar{
  background:rgba(255,255,255,0.72);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border:1px solid var(--ios-sep);
  border-radius:var(--ios-radius);
  box-shadow:var(--ios-shadow);
  padding:4px 8px;
}
#searchInput{
  border:1px solid var(--ios-sep);
  border-radius:14px;
  background:rgba(255,255,255,0.9);
  padding:6px 9px;
  font-size:15px;
}
#searchBtn{
  background:var(--ios-primary);
  border-radius:14px;
  padding:6px 11px;
  font-size:15px;
}

#categoryBar{
  background:rgba(255,255,255,0.72);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom:1px solid var(--ios-sep);
}
.catWrap button{
  background:rgba(255,255,255,0.75);
  border:1px solid var(--ios-sep);
  border-radius:999px;
}
.catWrap button:active{ transform:scale(0.98); }

#floatingBtns button{
  background:rgba(255,255,255,0.8);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border:1px solid var(--ios-sep);
  box-shadow:var(--ios-shadow);
}

#communityCard{
  background:rgba(255,255,255,0.85);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border:1px solid var(--ios-sep);
  border-radius:var(--ios-radius);
  box-shadow:var(--ios-shadow);
}

#chatRoom{
  border-top:1px solid var(--ios-sep);
  border-top-left-radius:22px;
  border-top-right-radius:22px;
  overflow:hidden;
  box-shadow:0 -10px 30px rgba(0,0,0,0.12);
  top:60px;
  height:auto;
  z-index:140;
}
#chatHeader{
  padding:7px 10px;
  background:rgba(255,255,255,0.72);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-bottom:1px solid var(--ios-sep);
}
#chatRoomName{ font-size:18px; font-weight:800; }
#chatRoomUsers{ font-size:13px; color:var(--ios-secondary); }

/* 채팅방 상단 배너: 권장 원본 1200 x 200 (6:1) */
#chatBannerWrap{
  background:rgba(255,255,255,0.62);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-bottom:1px solid var(--ios-sep);
  padding:0;
  box-sizing:border-box;
}
#chatBannerWrap.is-loading #chatBannerTrack{
  background:linear-gradient(90deg,#edf2f7 0%,#f8fafc 45%,#edf2f7 100%);
}
#chatBannerWrap.hide{
  display:none;
}
#chatBannerTrack{
  width:min(100%,840px);
  margin-inline:auto;
  border-radius:0;
  overflow:hidden;
  border:0;
  box-shadow:none;
  touch-action:pan-y;
  cursor:grab;
  user-select:none;
  -webkit-user-select:none;
  aspect-ratio:6 / 1;
}
#chatBannerTrack:active{ cursor:grabbing; }
#chatBannerImg{
  display:block;
  width:100%;
  aspect-ratio:6 / 1;
  height:100%;
  object-fit:cover;
  object-position:center;
  pointer-events:none;
  -webkit-user-drag:none;
}
#chatBannerWrap.is-loading #chatBannerImg{visibility:hidden}

#chatMessages{
  background:var(--ios-bg);
  padding:12px 10px 14px;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  scroll-padding-bottom:14px;
}
#chatMessages::after{content:"";display:block;height:12px;flex:0 0 12px}
.chat-system-guide-row{display:flex;align-items:flex-end;justify-content:flex-end;gap:8px;width:100%;margin:28px 0 18px;padding:0 2px;box-sizing:border-box}.chat-system-guide-stack{display:grid;justify-items:end;gap:5px;max-width:min(78%,430px)}.chat-system-guide-stack>strong{padding-right:4px;color:#566176;font-size:11px}.chat-system-guide-bubble{padding:12px 14px;border-radius:18px 18px 4px 18px;background:#087cff;color:#fff;font-size:14px;line-height:1.55;box-shadow:0 7px 18px rgba(8,124,255,.18);word-break:keep-all}.chat-system-guide-avatar{display:grid;flex:0 0 38px;height:38px;place-items:center;border:1px solid #d9e7f6;border-radius:50%;background:#fff;font-size:19px;box-shadow:0 4px 12px rgba(31,91,150,.12)}
.chat-date-divider{
  width:max-content;
  max-width:80%;
  margin:8px auto 12px;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(60,60,67,0.10);
  color:#666;
  font-size:12px;
  font-weight:700;
}
.chat-message-row{
  display:flex;
  align-items:flex-end;
  margin:7px 0;
}
.chat-message-row.mine{
  justify-content:flex-end;
  align-items:flex-end;
  gap:8px;
}
.chat-message-row.theirs{
  justify-content:flex-start;
  align-items:flex-end;
  gap:8px;
}
.chat-bubble{
  display:inline-block;
  width:fit-content;
  max-width:min(68vw, 320px);
  min-width:70px;
  box-sizing:border-box;
  padding:9px 11px 7px;
  border-radius:18px;
  box-shadow:0 4px 12px rgba(0,0,0,0.05);
  word-break:keep-all;
  overflow-wrap:break-word;
  white-space:pre-wrap;
}
.chat-message-row.mine .chat-bubble{
  background:rgba(0,122,255,0.88);
  color:#fff;
  border-radius:18px;
}
.chat-message-row.mine .chat-bubble.image-bubble,
.chat-message-row.theirs .chat-bubble.image-bubble{
  width:min(280px,calc(100vw - 112px));
  max-width:100%;
  padding:0;
  background:transparent;
  border:none;
  box-shadow:none;
  color:inherit;
  overflow:visible;
}
.chat-message-row.theirs .chat-bubble{
  background:rgba(255,255,255,0.92);
  color:#111;
  border:1px solid rgba(60,60,67,0.10);
  border-radius:18px;
}
.chat-stack{
  width:min(calc(100% - 46px), 360px);
  max-width:min(calc(100% - 46px), 360px);
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.chat-message-row.mine .chat-stack{
  align-items:flex-end;
}
.chat-avatar-btn{
  flex:0 0 auto;
  width:34px;
  height:34px;
  padding:0;
  border:none;
  border-radius:50%;
  overflow:hidden;
  background:linear-gradient(135deg,rgba(0,122,255,0.16),rgba(52,199,89,0.16));
  color:#007aff;
  font-size:14px;
  font-weight:900;
  box-shadow:0 3px 10px rgba(0,0,0,0.08);
  cursor:pointer;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.chat-avatar-btn img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.chat-avatar-fallback{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
}
.chat-avatar-btn.has-image .chat-avatar-fallback{visibility:hidden}
.chat-sender-name{
  max-width:100%;
  margin:0 0 4px;
  padding:0 3px;
  border:none;
  background:transparent;
  color:#4a4a4a;
  font-size:12px;
  font-weight:800;
  text-align:left;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  cursor:pointer;
  display:flex;
  align-items:baseline;
  gap:5px;
}
.chat-message-row.mine .chat-sender-name{
  text-align:right;
  justify-content:flex-end;
}
.chat-sender-nick{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-sender-time{flex:0 0 auto;color:#7b8492;font-size:9px;font-weight:700}
.chat-text{
  display:block;
  font-size:15px;
  line-height:1.38;
  min-width:0;
  word-break:keep-all;
  overflow-wrap:break-word;
  white-space:pre-wrap;
}
.chat-meta{
  margin-top:5px;
  font-size:10px;
  opacity:.68;
  text-align:right;
}
.chat-meta-btn{
  display:block;
  width:100%;
  margin:5px 0 0;
  padding:0;
  border:none;
  background:transparent;
  color:inherit;
  font:inherit;
  opacity:.72;
  text-align:right;
  cursor:pointer;
}
.chat-message-row.theirs .chat-meta-btn{
  text-align:left;
}
.chat-image{
  display:block;
  width:100%;
  max-height:min(420px,55vh);
  object-fit:cover;
  border-radius:16px;
  cursor:pointer;
  box-shadow:0 6px 18px rgba(0,0,0,0.10);
}
.chat-gallery-card{
  display:grid;
  width:100%;
  max-width:280px;
  gap:3px;
  overflow:hidden;
  border-radius:16px;
  background:rgba(60,60,67,0.12);
  box-shadow:0 6px 18px rgba(0,0,0,0.10);
}
.chat-gallery-card.count-1{
  grid-template-columns:1fr;
}
.chat-gallery-card.count-2{
  grid-template-columns:repeat(2,1fr);
}
.chat-gallery-card.count-3,
.chat-gallery-card.count-4{
  grid-template-columns:repeat(2,1fr);
}
.chat-gallery-cell{
  position:relative;
  display:block;
  min-width:0;
  aspect-ratio:1/1;
  padding:0;
  border:none;
  background:#e5e5ea;
  overflow:hidden;
  cursor:pointer;
}
.chat-gallery-card.count-1 .chat-gallery-cell{
  aspect-ratio:4/3;
}
.chat-gallery-card.count-3 .chat-gallery-cell:first-child{
  grid-row:span 2;
  aspect-ratio:auto;
}
.chat-gallery-cell .chat-image{
  width:100%;
  height:100%;
  max-height:none;
  border-radius:0;
  box-shadow:none;
}
.chat-gallery-more{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,0.48);
  color:#fff;
  font-size:22px;
  font-weight:900;
}
.chat-gallery-count{
  margin-top:5px;
  padding:0 3px;
  color:#555;
  font-size:11px;
  font-weight:800;
  text-align:right;
}
.chat-bubble.image-bubble .chat-meta{
  display:block;
  width:100%;
  margin-top:4px;
  padding:0 3px;
  color:#555;
  text-shadow:none;
}
.chat-message-row.mine .chat-bubble.image-bubble .chat-meta{
  color:#555;
}
.profile-action-buttons{
  display:grid;
  gap:8px;
  margin:14px 0 10px;
}
.profile-action-buttons button{
  width:100%;
  border:none;
  border-radius:14px;
  padding:12px 10px;
  background:rgba(0,122,255,0.10);
  color:#007aff;
  font-size:14px;
  font-weight:900;
}
.profile-action-buttons button.danger{
  background:rgba(255,59,48,0.11);
  color:#c52f26;
}
.profile-action-buttons button:disabled{
  opacity:.55;
  cursor:default;
}
.profile-action-buttons button.hide{
  display:none;
}
.friendListItem{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 0;
  border-bottom:1px solid rgba(60,60,67,0.10);
}
.friendListItem:last-child{
  border-bottom:none;
}
.friendListItem strong{
  display:block;
  font-size:15px;
  font-weight:900;
}
.friendListItem span{
  display:block;
  margin-top:4px;
  color:rgba(60,60,67,0.68);
  font-size:13px;
  word-break:break-all;
}
.friendListActions{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:6px;
}
.friendListItem button{
  flex:0 0 auto;
  border:none;
  border-radius:999px;
  padding:8px 11px;
  background:rgba(255,59,48,0.10);
  color:#b42318;
  font-size:12px;
  font-weight:900;
}
.friendListActions button:first-child{
  background:rgba(0,122,255,0.10);
  color:#075985;
}
.room-notice-pinned{
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:space-between;
  padding:10px 12px;
  background:#fff8e5;
  border-bottom:1px solid rgba(255,149,0,0.24);
  color:#2a2114;
  font-size:13px;
  line-height:1.35;
}
.room-notice-copy{
  min-width:0;
  display:flex;
  gap:8px;
  align-items:flex-start;
  flex:1 1 auto;
}
.room-notice-pinned strong{
  flex:0 0 auto;
  color:#b45f00;
}
.room-notice-pinned span{
  min-width:0;
  word-break:break-word;
}
#editRoomNoticeBtn{
  flex:0 0 auto;
  border:none;
  border-radius:999px;
  padding:7px 10px;
  background:rgba(0,122,255,0.12);
  color:#007aff;
  font-size:12px;
  font-weight:900;
}
#roomInfoSheet{
  position:fixed;
  inset:0;
  z-index:140;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:18px;
  padding-bottom:calc(18px + env(safe-area-inset-bottom));
  background:rgba(0,0,0,0.22);
  box-sizing:border-box;
}
#roomInfoSheet.hide{
  display:none;
}
.room-info-box{
  width:min(440px,100%);
  border-radius:22px;
  padding:14px;
  background:rgba(255,255,255,0.96);
  box-shadow:0 -12px 34px rgba(0,0,0,0.18);
  box-sizing:border-box;
}
.room-info-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.room-info-head strong{
  color:#111;
  font-size:17px;
  font-weight:900;
}
.room-info-created{
  flex:1 1 auto;
  min-width:0;
  color:rgba(60,60,67,0.52);
  font-size:12px;
  font-weight:800;
  text-align:left;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#roomInfoClose{
  flex:0 0 auto;
  border:none;
  border-radius:12px;
  min-width:52px;
  height:34px;
  background:rgba(60,60,67,0.10);
  color:#111;
  font-size:13px;
  font-weight:900;
}
.room-info-title{
  margin:10px 0 12px;
  padding:10px 12px;
  border-radius:14px;
  background:#f6f8fb;
  color:#333;
  font-size:14px;
  font-weight:800;
  line-height:1.35;
  word-break:break-word;
}
.room-info-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}
.room-info-actions button{
  width:100%;
  min-height:44px;
  border:none;
  border-radius:14px;
  background:rgba(0,122,255,0.12);
  color:#007aff;
  font-size:15px;
  font-weight:900;
}
.room-info-actions button.danger{
  background:rgba(255,59,48,0.12);
  color:#c52f26;
}
.room-info-actions button.leave{
  background:rgba(255,149,0,0.14);
  color:#b45309;
}
.room-info-actions button.hide{
  display:none;
}
#chatRoomUsers{
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
#chatRoomUsers:active{
  opacity:.72;
}
#roomParticipantsSheet{
  position:fixed;
  inset:0;
  z-index:145;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:14px;
  background:rgba(0,0,0,0.22);
  box-sizing:border-box;
}
#roomParticipantsSheet.hide{
  display:none;
}
.room-participants-box{
  width:min(430px, calc(100vw - 28px));
  max-height:min(72dvh, calc(var(--app-height, 100dvh) - 40px));
  overflow:hidden;
  border-radius:22px;
  padding:14px;
  background:rgba(255,255,255,0.97);
  box-shadow:0 -12px 34px rgba(0,0,0,0.18);
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
}
.room-participants-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.room-participants-head strong{
  color:#111;
  font-size:17px;
  font-weight:900;
}
#roomParticipantsClose{
  flex:0 0 auto;
  border:none;
  border-radius:12px;
  min-width:52px;
  height:34px;
  background:rgba(60,60,67,0.10);
  color:#111;
  font-size:13px;
  font-weight:900;
}
.room-participants-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-height:0;
  width:100%;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
}
.room-participant-row{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  min-width:0;
  min-height:54px;
  border:none;
  border-radius:16px;
  padding:9px 10px;
  background:#f6f8fb;
  text-align:left;
  box-sizing:border-box;
}
.room-participant-profile-btn{
  flex:1 1 auto;
  min-width:0;
  max-width:100%;
  display:flex;
  align-items:center;
  gap:10px;
  border:0;
  padding:0;
  background:transparent;
  text-align:left;
}
.room-participant-kick-btn{
  flex:0 0 70px;
  border:0;
  border-radius:12px;
  min-width:0;
  height:34px;
  padding:0 8px;
  background:rgba(255,59,48,0.12);
  color:#d70015;
  font-size:12px;
  font-weight:900;
}
.room-participant-avatar{
  flex:0 0 auto;
  width:36px;
  height:36px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(0,122,255,0.12);
  color:#007aff;
  font-size:15px;
  font-weight:900;
}
.room-participant-body{
  display:flex;
  flex-direction:column;
  min-width:0;
  flex:1 1 auto;
}
.room-participant-body strong{
  color:#111;
  font-size:14px;
  font-weight:900;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.room-participant-body em{
  color:rgba(60,60,67,0.62);
  font-size:12px;
  font-style:normal;
  font-weight:800;
}
.room-participant-empty{
  padding:16px 12px;
  border-radius:16px;
  background:#f6f8fb;
  color:rgba(60,60,67,0.68);
  font-size:14px;
  font-weight:800;
  text-align:center;
}
#chatInputWrap{
  background:rgba(255,255,255,0.85);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-top:1px solid var(--ios-sep);
  gap:8px;
  align-items:center;
  padding-bottom:calc(10px + env(safe-area-inset-bottom));
}
#chatPhotoBtn{
  flex:0 0 auto;
  width:38px;
  height:38px;
  border:none;
  border-radius:14px;
  background:rgba(0,122,255,0.12);
  color:var(--ios-primary);
  font-size:24px;
  font-weight:700;
  line-height:1;
}
.chat-plus-menu{
  position:fixed;
  z-index:10030;
  display:flex;
  gap:7px;
  padding:8px;
  border-radius:18px;
  background:rgba(255,255,255,0.96);
  border:1px solid rgba(60,60,67,0.14);
  box-shadow:0 12px 30px rgba(15,23,42,0.18);
}
.chat-plus-menu.hide{
  display:none;
}
.chat-plus-menu button{
  border:0;
  border-radius:13px;
  min-width:58px;
  min-height:38px;
  padding:0 10px;
  background:#f2f4f7;
  color:#101828;
  font-size:13px;
  font-weight:950;
}
.chat-plus-menu button.chat-location-tool{display:flex;align-items:center;gap:5px;min-width:86px}.chat-plus-menu button.chat-location-tool span{white-space:nowrap;font-size:12px}
.chat-plus-menu{max-width:calc(100vw - 16px);overflow-x:auto;flex-wrap:wrap}.chat-media-retention-note{flex:1 0 100%;padding:2px 5px 0;color:#697386;font-size:11px;font-weight:750;line-height:1.35;text-align:center}.chat-media-expired{display:flex;min-width:190px;flex-direction:column;gap:4px;padding:16px;border:1px dashed #b8c1ce;border-radius:13px;background:#f3f5f8;color:#586273;text-align:center}.chat-media-expired strong{font-size:13px}.chat-media-expired span{font-size:11px;line-height:1.45}.media-expired-bubble{background:transparent!important;padding:0!important}.boardEditorBlock video{display:block;width:100%;max-height:420px;border-radius:13px;background:#000}
#chatInput{
  background:#fff;
  border:1px solid var(--ios-sep);
  border-radius:16px;
  min-width:0;
}
#chatInput:focus,#chatInput:focus-visible{outline:none!important;border-color:var(--ios-sep)!important;box-shadow:none!important}
#sendBtn{
  background:var(--ios-primary);
  color:#fff;
  border:none;
  border-radius:16px;
}
.chat-upload-preview{
  align-self:flex-end;
  width:min(230px, 78%);
  margin:6px 0;
  padding:9px;
  border-radius:16px;
  background:#eaf3ff;
  border:1px solid rgba(0,122,255,0.12);
  box-shadow:0 5px 14px rgba(15,23,42,0.08);
}
.chat-upload-title{
  color:#111827;
  font-size:12px;
  font-weight:950;
}
.chat-upload-thumbs{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:5px;
  margin-top:7px;
}
.chat-upload-thumb,
.chat-upload-more{
  overflow:hidden;
  aspect-ratio:1/1;
  border-radius:10px;
  background:#dbeafe;
}
.chat-upload-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.chat-upload-more{
  display:flex;
  align-items:center;
  justify-content:center;
  color:#007AFF;
  font-size:13px;
  font-weight:950;
}
.chat-upload-progress{
  overflow:hidden;
  height:5px;
  margin-top:8px;
  border-radius:999px;
  background:rgba(0,122,255,0.14);
}
.chat-upload-progress span{
  display:block;
  height:100%;
  width:0;
  border-radius:999px;
  background:#e7654b;
  transition:width .18s ease;
}
.chat-upload-status{
  margin-top:5px;
  color:#475467;
  font-size:11px;
  font-weight:850;
}
.chat-upload-preview.done{
  background:#ecfdf3;
  border-color:rgba(18,183,106,0.18);
}
.chat-upload-video{
  overflow:hidden;
  margin-top:7px;
  aspect-ratio:16/9;
  border-radius:10px;
  background:#111;
}
.chat-upload-video video{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
#chatImageModal{
  position:fixed;
  inset:0;
  z-index:180;
  background:rgba(0,0,0,0.84);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}
#chatImageModal.hide{
  display:none;
}
#chatImageModal img{
  max-width:100%;
  max-height:88vh;
  border-radius:14px;
  object-fit:contain;
  z-index:1;
  cursor:pointer;
}
.chat-image-viewer-btn{
  position:absolute;
  top:50%;
  z-index:2;
  width:44px;
  height:58px;
  transform:translateY(-50%);
  border:none;
  border-radius:16px;
  background:rgba(255,255,255,0.18);
  color:#fff;
  font-size:42px;
  font-weight:700;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.chat-image-viewer-prev{
  left:12px;
}
.chat-image-viewer-next{
  right:12px;
}
.chat-image-viewer-close{
  position:absolute;
  top:calc(12px + env(safe-area-inset-top));
  right:12px;
  z-index:3;
  width:42px;
  height:42px;
  border:none;
  border-radius:50%;
  background:rgba(255,255,255,0.18);
  color:#fff;
  font-size:30px;
  font-weight:700;
  line-height:1;
  cursor:pointer;
}
.chat-image-viewer-count{
  position:absolute;
  left:50%;
  bottom:calc(18px + env(safe-area-inset-bottom));
  z-index:2;
  transform:translateX(-50%);
  min-width:58px;
  padding:7px 11px;
  border-radius:999px;
  background:rgba(0,0,0,0.48);
  color:#fff;
  font-size:13px;
  font-weight:900;
  text-align:center;
}
.chat-image-viewer-btn.hide,
.chat-image-viewer-count.hide{
  display:none;
}

#closeChat{
  background:rgba(255,255,255,0.85);
  color:var(--ios-primary);
  border:1px solid var(--ios-sep);
  border-radius:14px;
}
#deleteRoomInChat{
  border-radius:14px;
  border:1px solid var(--ios-sep);
  background:rgba(255,255,255,0.8);
}

#chatHeader .chat-header-left{
  width:62px;
  flex:0 0 62px;
}
#chatHeader .chat-header-center{
  flex:1 1 0;
  min-width:0;
  overflow:hidden;
}
#chatHeader .chat-header-right{
  flex:0 0 auto;
  max-width:168px;
  min-width:0;
}
#chatHeader #chatRoomName,
#chatHeader #chatRoomUsers{
  display:block;
  width:100%;
  min-width:0;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  word-break:normal;
}

#bottomNav{
  background:rgba(255,255,255,0.72);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-top:1px solid var(--ios-sep);
  height:72px;
  padding-bottom:env(safe-area-inset-bottom);
}
#bottomNav button{
  font-size:12px;
  color:#111;
  opacity:0.9;
  padding:8px 10px;
  border-radius:14px;
}
#bottomNav button:active{ background:rgba(0,0,0,0.06); }

#loginPopup{
  border-radius:22px;
  box-shadow:var(--ios-shadow);
}
.kakao-btn,.google-btn{ border-radius:16px; }

#profilePanel{
  background:var(--ios-bg) !important;
  padding:0 !important;
  display:flex !important;
  flex-direction:column !important;
  height:100dvh !important;
  max-height:100dvh !important;
  overflow:hidden !important;
}
#profileHeader{
  flex:0 0 auto !important;
  background:rgba(255,255,255,0.72) !important;
  backdrop-filter: blur(18px) !important;
  -webkit-backdrop-filter: blur(18px) !important;
  border-bottom:1px solid var(--ios-sep) !important;
  padding:14px 14px !important;
  margin:0 !important;
}
#backProfile{
  background:rgba(255,255,255,0.85) !important;
  color:var(--ios-primary) !important;
  border:1px solid var(--ios-sep) !important;
  border-radius:14px !important;
}
#profileContent{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch !important;
  overscroll-behavior:contain !important;
  padding:18px 14px calc(40px + env(safe-area-inset-bottom)) !important;
}
#profileImage{ border:1px solid var(--ios-sep) !important; }
.profile-account-card{
  width:min(100%,360px);
  margin:14px auto 0;
  padding:12px;
  border:1px solid var(--ios-sep);
  border-radius:16px;
  background:rgba(255,255,255,0.88);
  box-shadow:0 6px 18px rgba(0,0,0,0.04);
}
.profile-account-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:5px 0;
  font-size:13px;
}
.profile-account-row span{
  flex:0 0 auto;
  color:#777;
  font-weight:800;
}
.profile-account-row strong{
  min-width:0;
  color:#111;
  font-size:13px;
  font-weight:900;
  text-align:right;
  word-break:break-all;
}
#copyProfileUidBtn,
#requestAdminRoleBtn{
  width:100%;
  margin-top:9px;
  border:none;
  border-radius:13px;
  padding:10px 12px;
  background:rgba(0,122,255,0.12);
  color:var(--ios-primary);
  font-size:14px;
  font-weight:900;
}
#requestAdminRoleBtn{
  background:rgba(52,199,89,0.14);
  color:#167a34;
}
#profilePageLogout{width:100%;margin-top:7px;border:0;border-radius:12px;padding:9px 10px;font-weight:900}
#requestAdminRoleBtn.hide{
  display:none !important;
}
#editProfileBtn{
  border:1px solid var(--ios-sep) !important;
  border-radius:14px !important;
  background:rgba(255,255,255,0.9) !important;
  color:var(--ios-primary) !important;
}
#logoutBtn{ border-radius:16px !important; }
.policyActionDanger{
  display:block;
  width:100%;
  min-height:44px;
  margin-top:14px;
  border:none;
  border-radius:14px;
  background:rgba(255,59,48,0.12);
  color:#c52f26;
  font-size:15px;
  font-weight:900;
}


/* Bottom Sheet (Category) */
.backdrop{
  position:fixed;inset:0;background:rgba(0,0,0,0.25);
  z-index:49;
  opacity:0;
  transition:opacity 180ms ease;
  will-change:opacity;
  pointer-events:none;
}
.sheet{
  position:fixed;left:0;right:0;bottom:0;
  display:flex;
  flex-direction:column;
  background:rgba(250,250,252,0.92);
  backdrop-filter: blur(18px);
  border-top-left-radius:24px;border-top-right-radius:24px;
  box-shadow:0 -12px 30px rgba(0,0,0,0.12);
  z-index:50;
  height:min(70vh,560px);
  overflow:hidden;
  padding:10px 14px 18px;
  box-sizing:border-box;
  opacity:0;
  transform:translate3d(0,24px,0);
  transition:
    transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
    opacity 180ms ease;
  will-change:transform,opacity;
}
.backdrop.active{
  opacity:1;
  pointer-events:auto;
}
.sheet.active{
  opacity:1;
  transform:translate3d(0,0,0);
}
.sheet.closing{
  opacity:0;
  transform:translate3d(0,20px,0);
}
.backdrop.closing{
  opacity:0;
}
.sheet.hide{display:none;}
.backdrop.hide{display:none;}
.sheetHandle:active,
#sheetHandle:active{
  cursor:grabbing;
}
.sheetHeader{
  flex:0 0 auto;
  display:flex;align-items:center;justify-content:space-between;
  padding:4px 2px 10px;
}
.sheetHeaderActions{
  display:flex;
  align-items:center;
  gap:7px;
}
#sheetTitle{font-size:18px;font-weight:800;}
#categoryRegisterBtn{
  border:none;
  border-radius:12px;
  min-height:34px;
  padding:0 10px;
  background:#e7654b;
  color:#fff;
  font-size:12px;
  font-weight:900;
}
#sheetClose{
  border:none;background:rgba(60,60,67,0.08);
  width:34px;height:34px;border-radius:12px;
  font-size:16px;
}


.sheetSponsor{
  flex:0 0 auto;
  display:flex;gap:10px;align-items:center;
  padding:10px;
  border-radius:18px;
  background:rgba(255,255,255,0.75);
  border:1px solid rgba(60,60,67,0.12);
  margin-bottom:10px;
}
.sheetSponsor img{
  width:56px;height:56px;border-radius:14px;
  object-fit:cover;
  background:#ddd;
}
.sponsorTextWrap{flex:1;min-width:0;}
#sponsorText{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sponsorBadge{
  display:inline-block;margin-top:4px;
  font-size:11px;font-weight:800;
  padding:4px 8px;border-radius:999px;
  background:rgba(255,149,0,0.14);
  color:rgba(255,149,0,1);
}
.sheetList{
  flex:1 1 auto;
  min-height:0;
  display:flex;flex-direction:column;gap:8px;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
  padding-bottom:110px;
  box-sizing:border-box;
}
.category-demo-detail{
  padding:13px;
  border-radius:18px;
  background:linear-gradient(135deg,rgba(255,255,255,0.96),rgba(235,248,255,0.92));
  border:1px solid rgba(0,122,255,0.18);
  box-shadow:0 10px 26px rgba(0,0,0,0.08);
}
.demo-detail-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.demo-detail-kicker{
  color:#007AFF;
  font-size:11px;
  font-weight:900;
}
.demo-detail-title{
  margin-top:3px;
  color:#111;
  font-size:17px;
  font-weight:900;
  line-height:1.2;
}
.demo-detail-meta{
  margin-top:4px;
  color:#60646c;
  font-size:12px;
  line-height:1.35;
}
#demoDetailClose{
  border:none;
  border-radius:12px;
  padding:7px 9px;
  background:rgba(60,60,67,0.08);
  color:#444;
  font-size:12px;
  font-weight:800;
  flex:0 0 auto;
}
.demo-flow{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
  margin-top:12px;
}
.demo-flow div{
  min-height:58px;
  padding:9px 8px;
  border-radius:13px;
  background:rgba(255,255,255,0.76);
  border:1px solid rgba(60,60,67,0.08);
}
.demo-flow strong{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  border-radius:999px;
  background:rgba(0,122,255,0.13);
  color:#007AFF;
  font-size:11px;
}
.demo-flow span{
  display:block;
  margin-top:6px;
  color:#222;
  font-size:11px;
  font-weight:800;
  line-height:1.25;
}
.demo-detail-actions{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
  margin-top:10px;
}
.demo-detail-actions button{
  border:none;
  min-height:36px;
  border-radius:12px;
  background:#e7654b;
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.demo-detail-actions button:nth-child(2){
  background:#09a7e8;
}
.demo-detail-actions button:nth-child(3){
  background:#2f855a;
}
.sheetItem{
  display:flex;align-items:center;justify-content:space-between;
  padding:7px 10px;
  border-radius:18px;
  background:rgba(255,255,255,0.72);
  border:1px solid rgba(60,60,67,0.10);
}
.sheetItem .meta{font-size:12px;opacity:0.72;margin-top:2px;}
.sheetItem .left{min-width:0;}
.sheetItem .title{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sheetItemDemo{
  align-items:flex-start;
}
.demoTags{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:7px;
}
.demoTags span{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:3px 7px;
  border-radius:999px;
  background:rgba(0,122,255,0.10);
  color:#0066cc;
  font-size:11px;
  font-weight:800;
}
.sheetItem button{
  border:none;border-radius:14px;
  padding:8px 10px;
  background:rgba(0,122,255,0.12);
  color:rgba(0,122,255,1);
  font-weight:800;
}
.catWrap button.active{
  background:rgba(0,122,255,0.14);
  color:rgba(0,122,255,1);
  font-weight:800;
}

#topBar,#searchBar,#categoryBar{pointer-events:auto;}
#bottomNav{
  padding-bottom:env(safe-area-inset-bottom);
  z-index:120;
  backdrop-filter:blur(18px);
}
#bottomNav button.active{font-weight:700;color:#007AFF;}
#map{
  height:calc(100% - 221px);
  z-index:1;
}
#bottomSheet{
  position:fixed;
  left:0;
  bottom:0;
  width:100%;
  height:min(70vh,560px);
  display:flex;
  flex-direction:column;
  background:#fff;
  border-radius:24px 24px 0 0;
  box-shadow:0 -6px 30px rgba(0,0,0,.12);
  transform:translateY(105%);
  transition:transform .22s ease;
  z-index:110;
  pointer-events:auto;
}
#bottomSheet.active{transform:translateY(0);}
.bottomSheetHeader{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 18px 10px;
}
#bottomSheetTitle{
  font-size:18px;
  font-weight:800;
}
#bottomSheetClose{
  border:none;
  background:rgba(60,60,67,0.08);
  width:34px;
  height:34px;
  border-radius:12px;
  font-size:16px;
}
#sheetContent{
  flex:1 1 auto;
  min-height:0;
  padding:0 20px 110px;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
  box-sizing:border-box;
}
#sheetContent h3{margin:4px 0 10px;font-size:24px;}
#sheetContent p{color:#666;line-height:1.5;font-size:15px;}
.miniList{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-bottom:10px;
}
.miniRoom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  width:100%;
  border:1px solid rgba(60,60,67,0.12);
  border-radius:12px;
  background:#f8f9fb;
  padding:10px 12px;
  text-align:left;
}
.miniRoom span{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:2px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-weight:800;
}
.miniRoom span small{overflow:hidden;text-overflow:ellipsis;color:#64748b;font-size:10px;font-weight:750;white-space:nowrap;}
.miniRoom em{
  flex:0 0 auto;
  font-style:normal;
  font-size:12px;
  color:#007AFF;
}
.miniEmpty{
  padding:12px;
  border-radius:12px;
  background:#f8f9fb;
  color:#666;
  font-size:13px;
}
.chatSection{
  margin-bottom:12px;
}
.chatSectionTitle{
  width:100%;
  margin:2px 0 7px;
  padding:10px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border:0;
  border-radius:12px;
  background:rgba(60,60,67,.07);
  color:#111;
  font-size:13px;
  font-weight:900;
  text-align:left;
}
.chatSectionTitle b{color:#667085;font-size:11px;font-weight:850}
.chatSectionTitle[aria-expanded="true"]{background:rgba(0,122,255,.09);color:#0969c9}
.chatSection .miniList[hidden]{display:none!important}
.chatSection .miniList{
  margin-bottom:0;
}
.chatSectionPrimary{
  padding:12px;
  border:1px solid rgba(0,122,255,0.18);
  border-radius:16px;
  background:#f5f9ff;
}
.chatExploreLabel{
  margin:18px 0 10px;
  color:#667085;
  font-size:12px;
  font-weight:900;
}
.profileHeroActions{
  position:absolute;
  top:12px;
  right:4px;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:8px;
  z-index:2;
}
.profileHeroActions #profilePageLogout{
  position:static;
  width:auto!important;
  margin:0!important;
}
.profileHeroAdminEntry{
  border:1px solid #b9d5ff;
  border-radius:10px;
  padding:7px 10px;
  background:#eef5ff;
  color:#007aff;
  font-size:11px;
  font-weight:950;
}
.profileHeroMessageEntry{
  min-width:160px;
  border:1px solid #1769e0;
  border-radius:10px;
  padding:8px 12px;
  background:#e7654b;
  color:#fff;
  font-size:11px;
  font-weight:950;
}
.profileHeroMessageEntry:disabled{
  border-color:#d5dbe4;
  background:#f2f4f7;
  color:#8a94a3;
}
.hotDemoList{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:10px;
}
.hotDemoList button{
  min-height:58px;
  border:1px solid rgba(60,60,67,0.12);
  border-radius:12px;
  background:#f8f9fb;
  padding:10px;
  text-align:left;
}
.hotDemoList span{
  display:block;
  color:#111;
  font-size:13px;
  font-weight:900;
  line-height:1.25;
}
.hotDemoList em{
  display:block;
  margin-top:5px;
  color:#007AFF;
  font-style:normal;
  font-size:11px;
  font-weight:800;
}

.category-results-panel{
  position:fixed;
  top:var(--category-results-top, 136px);
  right:10px;
  bottom:76px;
  left:10px;
  z-index:92;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid rgba(60,60,67,.12);
  border-radius:20px;
  background:rgba(255,255,255,.98);
  box-shadow:0 18px 55px rgba(0,0,0,.18);
  backdrop-filter:blur(20px);
}
.category-results-panel.hide{display:none;}
.category-results-head{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:16px 16px 12px;
  border-bottom:1px solid rgba(60,60,67,.10);
}
.category-results-head strong,
.category-results-head span{display:block;}
.category-results-head strong{font-size:20px;font-weight:950;color:#111;}
.category-results-head span{margin-top:3px;font-size:12px;color:#6b6b73;}
.category-results-head button{
  width:40px;height:40px;border:0;border-radius:14px;
  background:rgba(60,60,67,.08);font-size:18px;font-weight:800;
}
#categoryResultsContent{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding:14px;
  overscroll-behavior:contain;
}
.commerce-search-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr);
  gap:10px;
  align-items:end;
  margin-bottom:16px;
  padding:14px;
  border-radius:18px;
  background:#f4f6f9;
}
.commerce-search-form label{display:flex;flex-direction:column;gap:6px;min-width:0;}
.commerce-search-form label>span{font-size:12px;font-weight:850;color:#555;}
.commerce-search-form input,
.commerce-search-form select{
  width:100%;min-width:0;height:46px;box-sizing:border-box;
  border:1px solid rgba(60,60,67,.16);border-radius:13px;
  background:#fff;padding:0 12px;font-size:14px;color:#111;
}
.commerce-trip-type{
  grid-column:1/-1;display:flex;gap:16px;padding:0 2px;
  font-size:13px;font-weight:800;color:#333;
}
.commerce-trip-type label{display:flex;flex-direction:row;align-items:center;gap:6px;}
.commerce-trip-type input{width:auto;height:auto;}
.commerce-swap{
  width:42px;height:46px;border:0;border-radius:13px;background:#fff;
  color:#007aff;font-size:22px;font-weight:900;
}
.commerce-search-submit{
  grid-column:1/-1;height:48px;border:0;border-radius:14px;
  background:#111;color:#fff;font-size:15px;font-weight:900;
}
.commerce-hotel-form{grid-template-columns:repeat(3,minmax(0,1fr));}
.commerce-hotel-form .commerce-wide{grid-column:1/-1;}
.commerce-date-grid{
  grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;min-width:0;max-width:100%;
}
.commerce-date-grid label{min-width:0;max-width:100%;overflow:hidden;}
.commerce-date-grid input[type="date"]{
  display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box;
  height:46px;line-height:46px;padding-top:0;padding-bottom:0;text-align:center;
  -webkit-appearance:none;appearance:none;
}
.commerce-date-grid input[type="date"]::-webkit-date-and-time-value{
  display:flex;align-items:center;justify-content:center;
  width:100%;height:46px;min-height:46px;margin:0;
  line-height:46px;text-align:center;
}
.commerce-restaurant-form,
.commerce-place-search-form{grid-template-columns:1fr;}
.commerce-restaurant-form .commerce-wide,
.commerce-place-search-form .commerce-wide{grid-column:1/-1;}
.commerce-card-list{display:flex;flex-direction:column;gap:12px;}
.commerce-card{
  display:grid;grid-template-columns:112px minmax(0,1fr) auto;
  gap:13px;align-items:center;padding:12px;
  border:1px solid rgba(60,60,67,.12);border-radius:18px;background:#fff;
}
.commerce-card-thumb{
  width:112px;height:86px;border-radius:14px;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(145deg,#eef5ff,#e8ebf3);
  font-size:34px;font-weight:900;color:#2477ff;
}
.commerce-card-thumb img{width:100%;height:100%;object-fit:cover;}
.commerce-card-body{min-width:0;}
.commerce-card-body strong{display:block;font-size:15px;font-weight:950;color:#111;line-height:1.3;}
.commerce-card-body p{margin:5px 0;font-size:12px;line-height:1.45;color:#555;}
.commerce-card-body small{display:block;font-size:11px;line-height:1.4;color:#7b7b83;}
.commerce-card>a,
.commerce-card>button{
  min-width:76px;border:0;border-radius:13px;padding:11px 12px;
  background:#111;color:#fff;text-decoration:none;text-align:center;
  font-size:12px;font-weight:900;
}
.commerce-card-actions{
  display:flex;
  flex-direction:column;
  gap:7px;
  min-width:78px;
}
.commerce-card-actions a,
.commerce-card-actions button{
  border:0;border-radius:12px;padding:9px 10px;
  background:#111;color:#fff;text-decoration:none;text-align:center;
  font-size:11px;font-weight:900;font-family:inherit;cursor:pointer;
}
.commerce-card-actions>*+*{background:#edf3ff;color:#1769e0;}
.commerce-badge{
  display:inline-block;margin-bottom:5px;padding:4px 7px;border-radius:999px;
  background:#fff0f1;color:#ee3348;font-size:10px;font-weight:900;
}
.commerce-rating{margin:5px 0;color:#ef9b12;font-size:12px;font-weight:850;}
.commerce-schedule{margin-top:5px;font-size:11px;line-height:1.4;color:#64748b;}
.commerce-contact{margin-top:4px;font-size:11px;font-weight:750;color:#1769e0;}
.guide-panel-actions{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:11px;border-radius:13px;background:#eef6ff;}
.guide-panel-actions button{border:0;border-radius:11px;padding:10px 12px;background:#e7654b;color:#fff;font:inherit;font-size:12px;font-weight:850;cursor:pointer;}
.guide-panel-actions span{font-size:11px;line-height:1.4;color:#4b6380;}
.guide-panel-actions.hide{display:none;}
.guide-owner-manager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:12px;border:1px solid #cfe1f8;border-radius:14px;background:#f5f9ff;}
.guide-owner-manager.hide{display:none;}
.guide-owner-status{display:flex;flex-direction:column;gap:4px;}
.guide-owner-status strong{font-size:14px;color:#163a64;}
.guide-owner-status span{font-size:11px;line-height:1.4;color:#5b7088;}
.guide-owner-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px;}
.guide-owner-actions button{border:0;border-radius:10px;padding:9px 11px;background:#e7654b;color:#fff;font:inherit;font-size:11px;font-weight:850;cursor:pointer;}
.guide-owner-actions button.secondary{background:#eef1f5;color:#44546a;}
.guide-owner-actions button.danger{background:#fff0f1;color:#d72f43;}
.guide-register-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;padding:13px;border:1px solid #dbe7f5;border-radius:15px;background:#fff;}
.guide-register-form.hide{display:none;}
.guide-register-form label.hide{display:none;}
.guide-register-head,.guide-register-wide{grid-column:1/-1;}
.guide-register-head{display:flex;align-items:center;justify-content:space-between;}
.guide-register-head strong{font-size:15px;}
.guide-register-head button{border:0;background:transparent;color:#64748b;font:inherit;font-size:12px;font-weight:800;cursor:pointer;}
.guide-register-form label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:800;color:#475569;}
.guide-register-form input,.guide-register-form textarea{box-sizing:border-box;width:100%;border:1px solid #d7e1ee;border-radius:11px;padding:10px;background:#fff;font:inherit;font-size:12px;}
.guide-register-form textarea{min-height:78px;resize:vertical;}
.guide-register-message{grid-column:1/-1;min-height:18px;font-size:11px;font-weight:750;color:#1769e0;}
.guide-card-tags{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0;}
.guide-card-tags span{padding:3px 6px;border-radius:999px;background:#edf4ff;color:#1769e0;font-size:10px;font-weight:800;}
.guide-card-intro{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;font-size:11px;line-height:1.45;color:#64748b;}
@media(max-width:560px){.guide-panel-actions,.guide-owner-manager{align-items:flex-start;flex-direction:column}.guide-owner-actions{justify-content:flex-start}.guide-register-form{grid-template-columns:1fr}.guide-register-head,.guide-register-wide{grid-column:1}}
.commerce-search-note{margin:-2px 0 12px;padding:9px 11px;border-radius:11px;background:#fff8e7;color:#8a5a00;font-size:11px;line-height:1.45;}
.commerce-result-summary{
  display:flex;justify-content:space-between;gap:10px;align-items:center;
  padding:2px 2px 10px;
}
.commerce-result-summary strong{font-size:15px;font-weight:950;}
.commerce-result-summary span{font-size:12px;color:#666;text-align:right;}
.commerce-empty,.commerce-error{
  padding:28px 16px;border-radius:16px;background:#f6f7f9;
  color:#666;text-align:center;font-size:13px;line-height:1.5;
}
.commerce-error{background:#fff2f3;color:#cf2940;}
.hotCommerceHead{margin-bottom:13px;padding:2px 2px 8px;}
.hotCommerceHead strong,.hotCommerceHead span{display:block;}
.hotCommerceHead strong{font-size:18px;font-weight:950;}
.hotCommerceHead span{margin-top:4px;color:#666;font-size:12px;}
.hot-commerce-card{grid-template-columns:76px minmax(0,1fr) auto;}
.hot-commerce-card .commerce-card-thumb{width:76px;height:76px;}

@media (max-width:600px){
  .category-results-panel{
    top:var(--category-results-top, 126px);
    right:0;
    bottom:64px;
    left:0;
    border-radius:20px 20px 0 0;
  }
  .commerce-search-form{grid-template-columns:minmax(0,1fr) 38px minmax(0,1fr);padding:12px;}
  .commerce-hotel-form{grid-template-columns:minmax(0,1fr);}
  .commerce-date-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .commerce-search-form .flight-passengers,
  .commerce-search-form .flight-cabin{grid-column:1/-1;}
  .commerce-card{grid-template-columns:86px minmax(0,1fr);align-items:start;}
  .commerce-card-thumb{width:86px;height:76px;}
  .commerce-card>a,.commerce-card>button{grid-column:1/-1;width:100%;box-sizing:border-box;}
  .commerce-card-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;width:100%;}
  .hot-commerce-card{grid-template-columns:64px minmax(0,1fr);}
  .hot-commerce-card .commerce-card-thumb{width:64px;height:64px;}}

body.category-results-open #floatingBtns{
  display:none !important;
}
.bottom-demo-detail{
  margin-bottom:10px;
}
.bottom-demo-detail [data-bottom-demo-close]{
  border:none;
  border-radius:12px;
  padding:7px 9px;
  background:rgba(60,60,67,0.08);
  color:#444;
  font-size:12px;
  font-weight:800;
  flex:0 0 auto;
}
.plannerBox{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.plannerBox[data-ai-planner-ready="1"]{
  display:block;
  width:100%;
  min-width:0;
}
.plannerBox[data-ai-planner-ready="1"]>.aiPlannerForm,
.plannerBox[data-ai-planner-ready="1"]>.plannerResult{
  width:100%;
  min-width:0;
  box-sizing:border-box;
}
.ai-panel #sheetContent{
  padding-top:6px;
  scroll-padding-top:70px;
}
.ai-panel .plannerBox input,
.ai-panel .plannerBox select{
  scroll-margin-top:70px;
}
.plannerBox input,
.plannerBox select{
  min-width:0;
  border:1px solid rgba(60,60,67,0.16);
  border-radius:12px;
  padding:10px;
  background:#f8f9fb;
  font-size:14px;
}
.plannerBox button,
.sheetPrimaryBtn{
  border:none;
  border-radius:12px;
  padding:10px 12px;
  background:#e7654b;
  color:#fff;
  font-weight:800;
}
.plannerBox button{
  grid-column:1 / -1;
}
.plannerResult{
  margin-top:10px;
  padding:12px;
  border-radius:12px;
  background:#f5f7fa;
  color:#333;
  font-size:13px;
  line-height:1.5;
}
.aiPlanSummary strong{
  display:block;
  color:#111;
  font-size:15px;
  font-weight:900;
}
.aiPlanSummary span{
  display:block;
  margin-top:4px;
  color:#5f6368;
  font-size:12px;
  line-height:1.35;
}
.aiPlanSources{display:grid;gap:7px;margin-top:10px;padding:12px;border:1px solid #cfe1ff;border-radius:12px;background:#f5f9ff}
.aiPlanSources>b{font-size:13px}
.aiPlanSources>span,.aiPlanSources>em{color:#64748b;font-size:11px;font-style:normal}
.aiPlanSources>div{display:flex;flex-wrap:wrap;gap:6px}
.aiPlanSources a{display:inline-flex;padding:7px 9px;border-radius:9px;background:#fff;color:#1769e0;font-size:11px;font-weight:900;text-decoration:none}
.aiPlanGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:10px;
}
.aiPlanGrid div{
  min-height:66px;
  padding:9px;
  border-radius:12px;
  background:#fff;
  border:1px solid rgba(60,60,67,0.10);
}
.aiPlanGrid b{
  display:block;
  color:#007AFF;
  font-size:12px;
  font-weight:900;
}
.aiPlanGrid span{
  display:block;
  margin-top:5px;
  color:#222;
  font-size:12px;
  line-height:1.32;
}
.aiPlanActions{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
  margin-top:10px;
}
.aiPlanActions button{
  min-height:36px;
  border:none;
  border-radius:12px;
  background:#e7654b;
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.aiPlanActions button:nth-child(2){background:#09a7e8;}
.aiPlanActions button:nth-child(3){background:#2f855a;}
.travelHero{padding:12px;border-radius:14px;background:linear-gradient(135deg,#f8fbff,#eef9f3);border:1px solid rgba(60,60,67,.10)}
.travelHero strong,.travelHero span{display:block}.travelHero strong{color:#111;font-size:15px;font-weight:900}.travelHero span{margin-top:4px;color:#5f6368;font-size:12px;line-height:1.35}
.travelFeedStatus{margin-top:10px;padding:12px;border-radius:12px;background:#f7f8fa;color:#64748b;text-align:center;font-size:12px}.travelFeedStatus.hide{display:none}
.travelRankSection{margin-top:14px}.travelRankTitle{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 7px;color:#111}.travelRankTitle b{font-size:14px;font-weight:900}.travelRankTitle span{color:#7b8491;font-size:10.5px;font-weight:700}
.travelCourseList{display:flex;flex-direction:column;gap:8px;margin:0}
.travelCourseList button{width:100%;border:1px solid rgba(60,60,67,.12);border-radius:12px;background:#f8f9fb;padding:11px;text-align:left;color:#111}
.travelFeedTextRow{display:flex;align-items:center;gap:10px}
.travelRankBadge{display:grid!important;flex:0 0 28px;width:28px;height:28px;margin:0!important;border-radius:50%;place-items:center;background:#dfe5ed!important;color:#435064!important;font-size:12px!important;font-weight:950!important;line-height:1!important}.travelRankBadge.rank-1{background:#ffd95a!important;color:#6d4b00!important}.travelRankBadge.rank-2{background:#dce4ed!important;color:#465568!important}.travelRankBadge.rank-3{background:#e9b889!important;color:#6f3b12!important}
.travelRankThumb{flex:0 0 58px;width:58px;height:58px;border-radius:9px;object-fit:cover;background:#e5e7eb}
.travelRankCopy{display:block;min-width:0;flex:1}
.travelCourseList b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#111;font-size:13px;font-weight:900;line-height:1.25}
.travelCourseList span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:5px;color:#5f6368;font-size:12px;line-height:1.35}
.travelCourseList em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;color:#64748b;font-size:10.5px;font-style:normal}
.travelFeedEmpty{padding:14px 10px;border:1px dashed rgba(60,60,67,.12);border-radius:11px;text-align:center;color:#64748b;font-size:11px}
.chatPanelSwitch{
  position:sticky;
  top:0;
  z-index:20;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
  padding:5px;
  border-radius:14px;
  background:rgba(60,60,67,0.08);
  margin-bottom:10px;
}
.chatPanelSwitch button{position:relative;}
#chatDirectPane{min-height:260px;}
#chatDirectPane .directThreadList{padding:0;}
.bottom-tab[data-panel="chat"]{position:relative;}
.bottom-tab[data-panel="chat"].direct-active{color:#007aff;}
.bottomChatAlertBadge{position:absolute;z-index:10;top:7px;right:13px;display:flex;min-width:18px;height:18px;align-items:center;justify-content:center;border-radius:999px;background:#ff3b4e;color:#fff;font-size:9px;font-weight:900;}
.chat-footprint-link{display:grid;width:100%;gap:3px;padding:12px 14px;border:1px solid rgba(8,124,255,.28);border-radius:13px;background:rgba(255,255,255,.92);color:#172033;text-align:left}.chat-footprint-link b{color:#087cff;font-size:13px}.chat-footprint-link span{font-size:12px;font-weight:800}
.bottomNavUnreadBadge{position:absolute;top:2px;left:calc(50% + 12px);display:flex;min-width:18px;height:18px;padding:0 4px;align-items:center;justify-content:center;border:2px solid #fff;border-radius:999px;background:#ff3b4e;color:#fff;font-size:9px;font-weight:900;line-height:1;box-sizing:border-box;z-index:3}
.mapps-unread-item,.mapps-unread-item strong,.mapps-unread-item .directThreadText strong,.mapps-unread-item .boardPostCopy strong{color:#e3262e!important}
.mappsUnreadLabel{display:inline-flex;min-width:17px;height:17px;margin-left:6px;padding:0 4px;align-items:center;justify-content:center;border-radius:999px;background:#ff3b4e;color:#fff!important;font-size:9px!important;font-style:normal;font-weight:900;line-height:17px;vertical-align:middle;box-sizing:border-box}
.sheetHandle,.profileSheetHandle,#sheetHandle{touch-action:none}
.chatPanelSwitch button{
  border:0;
  border-radius:11px;
  min-height:38px;
  background:transparent;
  color:#5f6368;
  font-size:13px;
  font-weight:900;
}
.chatPanelSwitch button.active{
  background:#fff;
  color:#007AFF;
  box-shadow:0 4px 14px rgba(15,23,42,0.10);
}
.chatPane{
  display:none;
}
.chatPane.active{
  display:block;
}
.boardIntro{
  padding:13px;
  border-radius:14px;
  background:linear-gradient(135deg,#f8fbff,#f5fff9);
  border:1px solid rgba(60,60,67,0.10);
}
.boardIntro strong{
  display:block;
  color:#111;
  font-size:15px;
  font-weight:900;
}
.boardIntro span{
  display:block;
  margin-top:0;
  color:#5f6368;
  font-size:12px;
  line-height:1.35;
  font-weight:750;
  word-break:keep-all;
}
.boardCategoryTabs{
  display:flex;
  gap:6px;
  width:100%;
  padding:2px 0 4px;
  overflow-x:auto;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.boardCategoryTabs::-webkit-scrollbar{
  display:none;
}
.boardCategoryTabs button{
  flex:0 0 auto;
  min-width:48px;
  min-height:34px;
  border:1px solid rgba(60,60,67,0.12);
  border-radius:8px;
  padding:0 11px;
  background:#fff;
  color:#5f6368;
  font-size:12px;
  font-weight:900;
}
.boardCategoryTabs button.active{
  border-color:#111;
  background:#111;
  color:#fff;
}
.boardMenuList{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  margin-top:10px;
}
.boardMenuList button{
  width:100%;
  min-height:64px;
  border:1px solid rgba(60,60,67,0.12);
  border-radius:14px;
  background:#f8f9fb;
  padding:12px;
  text-align:left;
}
.boardMenuList span{
  display:block;
  color:#111;
  font-size:14px;
  font-weight:900;
}
.boardMenuList em{
  display:block;
  margin-top:5px;
  color:#007AFF;
  font-size:12px;
  font-style:normal;
  font-weight:800;
  line-height:1.35;
}
.boardFrame{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.channel-board-sheet{
  position:fixed;
  inset:0;
  z-index:100200;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  background:rgba(15,23,42,0.32);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.channel-board-sheet.hide{
  display:none;
}
.channel-board-box{
  width:min(560px,100%);
  height:min(86dvh,760px);
  max-height:calc(100dvh - 18px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  box-sizing:border-box;
  padding:8px 14px calc(16px + env(safe-area-inset-bottom));
  border:1px solid rgba(60,60,67,0.12);
  border-radius:22px 22px 0 0;
  background:#fff;
  box-shadow:0 18px 48px rgba(15,23,42,0.24);
}
.channel-board-root{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.channel-board-root .boardFrameHead{
  position:sticky;
  top:0;
  z-index:2;
  padding:4px 0 8px;
  background:#fff;
}
.boardFrameHead{
  display:grid;
  grid-template-columns:40px minmax(0,1fr) 28px auto;
  align-items:center;
  gap:8px;
  min-height:42px;
}
.boardFrameHead button{
  border:0;
  border-radius:12px;
  min-height:36px;
  padding:0 12px;
  background:#f2f4f7;
  color:#111;
  font-size:13px;
  font-weight:900;
}
.boardFrameHead button:first-child{
  padding:0;
  font-size:24px;
}
.boardFrameHead strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#111;
  font-size:16px;
  font-weight:950;
  text-align:center;
}
.boardFrameHead:not(:has([data-board-back])){
  grid-template-columns:minmax(0,1fr) 36px auto;
}
.boardFrameHead [data-board-write]{
  background:#e7654b;
  color:#fff;
  white-space:nowrap;
}
.boardFrameHead .boardFeatureGuide{padding:0!important}
.channel-board-root .boardFrameHead-channelList{grid-template-columns:minmax(0,1fr) 36px auto}
.channel-board-root .boardFrameHead .boardChannelReturn{grid-column:1/-1;justify-self:start;min-height:44px;padding:0 8px;font-size:14px;font-weight:700;background:transparent;color:#2466a8;white-space:nowrap}
.channel-board-root .boardChannelReturn:focus-visible{outline:2px solid #2466a8;outline-offset:2px}
.boardPostList,
.boardCommentList{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.boardPostItem{
  border:1px solid rgba(60,60,67,0.10);
  border-radius:14px;
  background:#f8f9fb;
  overflow:hidden;
}
.boardPostOpen{
  display:block;
  width:100%;
  border:0;
  background:transparent;
  padding:10px 12px;
  text-align:left;
}
.boardPostCopy{
  min-width:0;
}
.boardPostCopy small,
.boardDetailCategory{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  border-radius:7px;
  padding:0 7px;
  margin-bottom:6px;
  background:rgba(0,122,255,0.10);
  color:#007aff;
  font-size:10px;
  font-weight:900;
}
.boardPostThumb{
  width:62px;
  height:62px;
  border-radius:8px;
  object-fit:cover;
  background:#edf0f4;
}
.boardPostOpen strong{
  display:block;
  color:#111;
  font-size:14px;
  font-weight:950;
  line-height:1.25;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.boardPostOpen span{
  display:block;
  margin-top:4px;
  color:#475467;
  font-size:12px;
  line-height:1.4;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.boardPostOpen em,
.boardDetail em,
.boardComment em{
  display:block;
  margin-top:7px;
  color:#8a8f98;
  font-size:11px;
  font-style:normal;
  font-weight:800;
}
.boardPostActions,
.boardDetailActions,
.boardComment > div:last-child{
  display:flex;
  justify-content:flex-end;
  gap:6px;
  padding:0 10px 10px;
}
.boardPostActions button,
.boardDetailActions button,
.boardComment > div:last-child button{
  border:0;
  border-radius:10px;
  min-height:30px;
  padding:0 10px;
  background:rgba(60,60,67,0.08);
  color:#5f6368;
  font-size:11px;
  font-weight:900;
}
.boardPostActions button:last-child,
.boardDetailActions button:last-child,
.boardComment > div:last-child button:last-child{
  color:#d70015;
  background:rgba(255,59,48,0.10);
}
.boardDetail{
  padding:13px;
  border-radius:14px;
  background:#f8f9fb;
  border:1px solid rgba(60,60,67,0.10);
}
.boardDetail strong{
  display:block;
  color:#111;
  font-size:16px;
  font-weight:950;
  line-height:1.3;
}
.boardDetail p{
  margin:12px 0;
  color:#202124;
  font-size:14px;
  line-height:1.55;
  font-weight:750;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.boardImageGallery{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
  margin:12px 0;
}
.boardImageGallery button,
.boardCommentImage button,
.boardLocalPreview{
  border:0;
  border-radius:8px;
  padding:0;
  overflow:hidden;
  background:#eef1f5;
}
.boardImageGallery img{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
.boardImageGallery button:only-child img{
  aspect-ratio:auto;
  max-height:420px;
  object-fit:contain;
  background:#f4f5f7;
}
.boardCommentImage{
  width:72px;
  height:72px;
  margin-top:7px;
}
.boardCommentImage button,
.boardCommentImage img{
  display:block;
  width:72px;
  height:72px;
  object-fit:cover;
}
.boardDetailActions{
  padding:0;
}
.boardDetailActions button:first-child{
  background:#e7654b;
  color:#fff;
}
.boardComment{
  padding:11px;
  border-radius:13px;
  background:#fff;
  border:1px solid rgba(60,60,67,0.10);
}
.boardComment p{
  margin:0;
  color:#202124;
  font-size:13px;
  line-height:1.45;
  font-weight:750;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.boardComment > div:last-child{
  padding:8px 0 0;
}
.boardCompose,
.boardCommentCompose{
  display:flex;
  flex-direction:column;
  gap:12px;
  width:100%;
}
.boardCompose label{
  display:flex;
  flex-direction:column;
  gap:7px;
  color:#202124;
  font-size:13px;
  font-weight:900;
}
.boardCompose input,
.boardCompose select,
.boardCompose textarea,
.boardCommentCompose textarea{
  width:100%;
  border:1px solid rgba(60,60,67,0.16);
  border-radius:12px;
  padding:12px;
  background:#fff;
  color:#111;
  font:inherit;
  font-size:14px;
  line-height:1.5;
  letter-spacing:0;
  resize:vertical;
  box-sizing:border-box;
  outline:none;
}
.boardCompose input{
  min-height:46px;
}
.boardCompose select{
  min-height:46px;
}
.boardCompose input[type="file"]{
  min-height:44px;
  padding:8px;
}
.boardCompose textarea{
  min-height:240px;
}
.boardEditorLabel{
  display:block;
  margin-bottom:7px;
  color:#202124;
  font-size:13px;
  font-weight:900;
}
.boardBlockEditor{
  display:flex;
  flex-direction:column;
  gap:0;
  min-height:280px;
  padding:12px;
  border:1px solid rgba(60,60,67,0.13);
  border-radius:12px;
  background:#fff;
}
.boardEditorBlock{
  position:relative;
  border:0;
  border-radius:0;
  padding:0;
  background:#fff;
}
.boardEditorBlock textarea{
  min-height:72px;
  border:0;
  border-radius:6px;
  padding:8px;
  box-shadow:none !important;
}
.boardEditorBlock.image > img{
  display:block;
  width:100%;
  max-height:420px;
  border-radius:8px;
  object-fit:contain;
  background:#f3f5f7;
}
.boardEditorAddImage{
  width:100%;
  min-height:38px;
  margin-top:6px;
  border:1px dashed rgba(0,122,255,0.42);
  border-radius:8px;
  background:#f5f9ff;
  color:#007aff;
  font-size:12px;
  font-weight:900;
}
.boardEditorToolbar,
.room-home-editor-toolbar{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:8px;
}
.boardEditorToolbar button,
.room-home-editor-toolbar button{
  min-height:38px;
  padding:0 14px;
  border:1px solid rgba(0,122,255,0.25);
  border-radius:9px;
  background:#f5f9ff;
  color:#007aff;
  font-size:12px;
  font-weight:900;
}
.boardEditorControls{
  display:flex;
  justify-content:flex-end;
  gap:5px;
  margin-top:6px;
}
.boardEditorControls:empty{
  display:none;
}
.boardEditorControls button{
  min-width:34px;
  min-height:30px;
  border:0;
  border-radius:8px;
  background:#eef1f5;
  color:#40444c;
  font-size:12px;
  font-weight:900;
}
.boardEditorControls button.danger{
  color:#d70015;
  background:rgba(255,59,48,0.10);
}
.boardHiddenFile{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.boardContentBlocks{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:12px 0;
}
.boardContentBlocks p{
  margin:0;
  white-space:pre-wrap;
}
.boardInlineImage{
  width:100%;
}
.boardInlineImage button{
  display:block;
  width:100%;
  border:0;
  border-radius:8px;
  padding:0;
  overflow:hidden;
  background:#f3f5f7;
}
.boardInlineImage img{
  display:block;
  width:100%;
  max-height:520px;
  object-fit:contain;
}
.boardCommentCompose{
  padding:12px;
  border:1px solid rgba(60,60,67,0.10);
  border-radius:14px;
  background:#f8f9fb;
  box-sizing:border-box;
}
.boardCommentCompose textarea{
  min-height:96px;
}
.boardCommentFile{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:8px;
  color:#30343b;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
}
.boardCommentFile input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.boardCommentFile span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  border-radius:10px;
  padding:0 11px;
  background:rgba(0,122,255,0.11);
  color:#007aff;
}
.boardCommentFile em{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#7a8089;
  font-size:11px;
  font-style:normal;
  font-weight:750;
}
.boardMediaHint{
  color:#747b86;
  font-size:11px;
  font-weight:750;
  line-height:1.4;
}
.boardComposePreview{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
}
.boardComposePreview:empty,
.boardCommentPreview:empty{
  display:none;
}
.boardComposePreview .boardImageGallery{
  display:contents;
}
.boardComposePreview .boardImageGallery button,
.boardLocalPreview{
  width:100%;
}
.boardComposePreview img,
.boardLocalPreview img{
  display:block;
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
}
.boardCommentPreview img{
  display:block;
  width:72px;
  height:72px;
  border-radius:8px;
  object-fit:cover;
}
.boardCompose input:focus,
.boardCompose select:focus,
.boardCompose textarea:focus,
.boardCommentCompose textarea:focus{
  outline:none;
  border-color:#d8dde5;
  box-shadow:none;
}
.boardCompose > button,
.boardCommentCompose > button{
  width:100%;
  min-height:46px;
  border:0;
  border-radius:12px;
  padding:0 14px;
  background:#e7654b;
  color:#fff;
  font-size:14px;
  font-weight:900;
}
.boardEmpty{
  padding:16px 12px;
  border-radius:14px;
  background:#f8f9fb;
  color:#6b7280;
  font-size:13px;
  font-weight:850;
  text-align:center;
}
.profileDemoTop{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:12px;
  border-radius:14px;
  background:linear-gradient(135deg,#f8fbff,#f4f7ff);
  border:1px solid rgba(60,60,67,0.10);
}
.profileDemoTop strong{
  display:block;
  color:#111;
  font-size:15px;
  font-weight:900;
}
.profileDemoTop span{
  display:block;
  margin-top:4px;
  color:#5f6368;
  font-size:12px;
  line-height:1.35;
}
.profileDemoTop button{
  flex:0 0 auto;
  border:none;
  border-radius:12px;
  padding:9px 11px;
  background:#e7654b;
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.profileIdentityEntry{width:100%;appearance:none;-webkit-appearance:none;text-align:left;color:inherit}.profileIdentityEntry>b{color:#007aff;font-size:12px;white-space:nowrap}

/* v10 clean SNS profile page */
.profileDataControl{display:none!important}
.myTripDetailMedia{cursor:pointer}
#profileHeader{justify-content:space-between!important;gap:10px}#profileHeader>strong{flex:1;text-align:center;font-size:17px}#profilePageShare{border:0;background:transparent;color:#007aff;font-weight:900;padding:10px}
.snsProfileHero{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:center;padding:10px 4px 13px;cursor:pointer}.snsProfileAvatar{width:72px!important;height:72px!important;margin:0!important;border-radius:50%;background:#eef1f5 center/cover no-repeat;cursor:pointer}.snsProfileIdentity{min-width:0;padding-right:72px}.snsProfileIdentity #profileNick{margin:0!important;text-align:left!important;font-size:20px!important;font-weight:950}.snsProfileIdentity #profileLoginType{margin:2px 0 0!important;text-align:left!important;color:#7b8190!important;font-size:11px!important}.snsProfileIdentity p{margin:5px 0 0;color:#475569;font-size:12px;line-height:1.35}.profileEditHint{display:block;margin-top:5px;color:#94a3b8;font-size:10px}.profileHeaderSpacer{width:44px}#profilePageLogout{position:absolute;right:4px;bottom:13px;width:auto!important;margin:0!important;border:0;border-radius:9px;padding:6px 8px!important;color:#dc2626!important;background:transparent!important;font-size:11px!important;font-weight:900}.profileBottomAdminEntry{width:100%;margin-top:10px;border:1px solid #cfe1ff;border-radius:13px;background:#f3f7ff;padding:13px;text-align:left}.profileBottomAdminEntry strong,.profileBottomAdminEntry span{display:block}.profileBottomAdminEntry span{margin-top:3px;color:#64748b;font-size:11px}
.snsProfileSocialActions{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;margin:0 -2px 14px}.snsProfileSocialActions button{border:0;background:transparent;padding:12px 3px;display:flex;flex-direction:column;align-items:center;gap:2px}.snsProfileSocialActions span{font-size:18px}.snsProfileSocialActions b{font-size:16px;color:#111}.snsProfileSocialActions em{font-style:normal;font-size:10px;color:#64748b;font-weight:800}
.snsProfileSocialActions.publicMode{grid-template-columns:repeat(3,1fr)}.snsProfileSocialActions button.active span,.snsProfileSocialActions button[aria-pressed="true"] span{color:#ef4444}.snsProfilePublicActions{grid-template-columns:1fr}.snsProfilePublicActions button{width:100%}
.snsProfilePublicActions{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px}.snsProfilePublicActions button{border:1px solid #dce3ee;background:#fff;border-radius:12px;padding:11px 6px;color:#1d4ed8;font-weight:900}.snsProfilePublicActions button:disabled{color:#94a3b8;background:#f8fafc}
.snsProfileTabs{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);background:rgba(248,248,250,.94);backdrop-filter:blur(12px);border-bottom:1px solid #e5e7eb;margin:16px -14px 0;padding:0 14px}.snsProfileTabs button{border:0;background:transparent;padding:14px 4px;color:#64748b;font-size:12px;font-weight:900}.snsProfileTabs button.active{color:#111;border-bottom:2px solid #111}.snsProfilePane{display:none;padding-top:14px}.snsProfilePane.show{display:block}.snsPaneHead{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.snsPaneHead strong{font-size:16px}.snsPaneHead button{border:0;border-radius:10px;padding:8px 10px;background:#eaf2ff;color:#0671e8;font-size:12px;font-weight:900}
.snsTripGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}.snsTripGrid>button,.snsTripGrid>.profileCachedTripGridView>button{position:relative;display:grid;grid-template-rows:auto auto auto;border:0;background:#eef2f7;padding:0;overflow:hidden;text-align:left}.snsTripGrid img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover}.snsTripGrid>button>span,.snsTripGrid>.profileCachedTripGridView>button>span{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1/1;color:#94a3b8;font-size:11px;font-weight:900}.snsTripGrid>button>b,.snsTripGrid>.profileCachedTripGridView>button>b{display:block;min-width:0;padding:5px 6px 1px;color:#172033;font-size:11px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.snsTripGrid>button>em,.snsTripGrid>.profileCachedTripGridView>button>em{display:block;padding:1px 6px 6px;color:#64748b;font-size:9px;line-height:1.25;font-style:normal;font-weight:900}.snsProfileEmpty{grid-column:1/-1;padding:28px 12px;text-align:center;color:#8a94a3;background:#f7f8fa;border-radius:12px;font-size:13px}
.snsTripVisibility{position:absolute;right:5px;top:5px;padding:4px 6px;border-radius:999px;background:rgba(17,24,39,.84);color:#fff;font-size:9px;font-style:normal;font-weight:900;box-shadow:0 2px 6px rgba(0,0,0,.18)}.snsTripVisibility.public{background:rgba(0,122,255,.9)}.snsTripVisibility.friends{background:rgba(16,185,129,.92)}.snsTripVisibility.private{background:rgba(75,85,99,.9)}
.snsFriendList{display:grid;gap:8px}.snsFriendRow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid #e5e7eb;background:#fff;border-radius:13px;padding:8px}.snsFriendRow>[data-sns-friend]{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;border:0;background:transparent;padding:0;text-align:left}.snsFriendRow>[data-sns-friend]>span{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:#eaf2ff;color:#1677e8;font-weight:950}.snsFriendRow strong{font-size:13px}.snsFriendRow em{font-style:normal;color:#007aff;font-size:11px;font-weight:900}.snsFriendRow>div{display:flex;gap:4px}.snsFriendRow>div button{border:0;border-radius:8px;padding:7px;background:#f1f5f9;color:#64748b;font-size:10px;font-weight:900}.snsFriendRow>div button:last-child{color:#dc2626;background:#fff1f2}
.friendPresence{display:flex;align-items:center;gap:5px;margin-top:4px;color:#94a3b8;font-size:10px;font-weight:750}.friendPresence i{width:7px;height:7px;border-radius:50%;background:#94a3b8}.friendPresence.online{color:#159a58}.friendPresence.online i{background:#18b768;box-shadow:0 0 0 3px rgba(24,183,104,.14)}.friendPresence.recent{color:#d97706}.friendPresence.recent i{background:#f59e0b}
.snsMenuGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.snsMenuGrid button{min-height:54px;border:1px solid #e4e8ef;background:#fff;border-radius:12px;padding:10px;font-weight:900;color:#334155}.snsProfilePane .profileTrafficGroup{margin-top:16px;padding:14px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.snsProfilePane .profileTrafficGroup>strong{font-size:14px}.snsProfilePane #profileTrafficRefresh{width:100%;margin-top:9px;border:0;border-radius:10px;padding:10px;background:#111;color:#fff;font-weight:900}
@media(max-width:520px){.snsTripGrid{grid-template-columns:repeat(3,minmax(0,1fr))}}

.myTripDetailCounts{display:flex!important;flex-wrap:wrap;gap:6px!important}.myTripDetailCounts button,.myTripDetailCounts span{border:0;background:#f1f5f9;border-radius:9px;padding:7px 9px;color:#475569;font-size:11px;font-weight:800}.myTripDetailCounts button.active{color:#e11d48;background:#fff1f2}.myTripDetailCounts button:disabled{opacity:.55}.myTripTitleReactions,.myTripTitleReactions .myTripDetailCounts{margin-top:0!important}.myTripFollowAction{display:grid}.myTripFollowAction button{width:100%;min-height:46px;border:1px solid #d8e0ea;border-radius:14px;background:#fff;color:#344054;font-weight:900}.myTripInteractionBlock{display:block!important}.myTripPublicActions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px!important;margin-top:9px}.myTripPublicActions button{min-width:0!important;padding:10px 5px!important;font-size:11px!important}.myTripPublicActions [data-mytrip-edit],.myTripPublicActions [data-mytrip-delete]{grid-column:auto}.myTripMediaViewer{display:none;position:fixed;inset:0;z-index:100006;background:rgba(0,0,0,.9);padding:20px;overflow:auto}.myTripMediaViewer.show{display:block}.myTripMediaViewer>div{position:relative;display:grid;gap:12px;max-width:760px;margin:auto}.myTripMediaViewer img,.myTripMediaViewer video{width:100%;max-height:82vh;object-fit:contain;background:#000}.myTripMediaViewer [data-gallery-close]{position:sticky;top:0;justify-self:end;z-index:2;border:0;border-radius:50%;width:38px;height:38px;background:#fff;color:#111;font-size:18px}.profileQuickEditor{display:none;position:fixed;inset:0;z-index:100120;background:rgba(15,23,42,.52);align-items:flex-end;justify-content:center}.profileQuickEditor.show{display:flex}.profileQuickEditor>div{width:min(520px,100%);padding:18px;background:#fff;border-radius:22px 22px 0 0}.profileQuickHead{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.profileQuickHead strong{font-size:18px}.profileQuickHead button{border:0;background:#f1f5f9;border-radius:50%;width:36px;height:36px}.profileQuickPhoto{display:block;width:88px;height:88px;margin:0 auto 16px;border:0;border-radius:50%;background:#eaf2ff center/cover no-repeat;color:#1677e8;font-weight:900}.profileQuickEditor label{display:grid;gap:7px;font-weight:900}.profileQuickEditor input{border:1px solid #dbe3ee;border-radius:12px;padding:12px;font-size:16px}.profileQuickActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.profileQuickActions button{border:0;border-radius:12px;padding:12px;font-weight:900}.profileQuickActions button:last-child{background:#e7654b;color:#fff}
.profile-editor-open{overflow:hidden}.chat-entry-loading{display:flex;align-items:center;justify-content:center;min-height:96px;color:#64748b;font-size:13px;font-weight:800}.myTripDetailMedia img,.myTripDetailMedia video{cursor:zoom-in}
.myTripLinkShareModal{position:fixed;inset:0;z-index:100020;display:flex;align-items:flex-end;justify-content:center;background:rgba(15,23,42,.62);padding-top:max(14px,env(safe-area-inset-top))}
.myTripLinkShareBox{width:min(480px,100%);max-height:90vh;overflow:auto;background:#fff;color:#111827;border-radius:24px 24px 0 0;padding:20px 16px calc(20px + env(safe-area-inset-bottom));box-sizing:border-box}
.myTripLinkShareBox header{display:flex;align-items:center;justify-content:space-between;gap:12px}.myTripLinkShareBox strong{font-size:18px}.myTripLinkShareBox p{color:#475569;font-size:14px}
.myTripLinkShareBox header button{width:44px;height:44px;border:0;border-radius:12px;background:#f1f5f9;color:#111827;font-weight:900}
.myTripLinkShareActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.myTripLinkShareActions button{min-height:48px;border:0;border-radius:12px;background:#eaf2ff;color:#0866c7;font-weight:800}.myTripLinkShareActions button:disabled{opacity:.5}
html[data-app-theme="dark"] .myTripLinkShareBox{background:#18202b;color:#e8edf5}html[data-app-theme="dark"] .myTripLinkShareBox p{color:#c5d0df}html[data-app-theme="dark"] .myTripLinkShareBox button{background:#253449;color:#c5deff}
.myTripSearchNotice{display:grid;gap:5px;padding:14px;border:1px solid #bfdbfe;border-radius:15px;background:linear-gradient(135deg,#eff6ff,#f8fbff);color:#1e3a5f}.myTripSearchNotice b{color:#087cff;font-size:14px}.myTripSearchNotice span{font-size:12px;line-height:1.5;font-weight:750}.myTripComposeForm label>em{color:#087cff;font-size:11px;font-style:normal}.myTripComposeForm label>small{color:#64748b;font-size:11px;font-weight:700;line-height:1.45}.myTripComposeForm textarea#myTripSummaryInput{width:100%;resize:vertical;min-height:78px}.myTripPrivacyCheck{display:flex!important;grid-template-columns:22px minmax(0,1fr);align-items:flex-start!important;gap:9px!important;padding:12px;border-radius:13px;background:#fff7ed;color:#7c2d12;font-size:12px!important;line-height:1.45}.myTripPrivacyCheck input{width:19px!important;height:19px!important;margin:0!important}.myTripDetailSummary{margin:0;padding:12px;border-left:4px solid #087cff;border-radius:0 12px 12px 0;background:#eff6ff;color:#334155;font-size:13px;line-height:1.55}.myTripDetailHashtags{display:flex;flex-wrap:wrap;gap:6px}.myTripDetailHashtags span{padding:6px 9px;border-radius:999px;background:#eaf2ff;color:#087cff;font-size:11px;font-weight:850}
.myTripSearchCoach{display:grid;gap:11px;padding:14px;border:1px solid #cfe0f5;border-radius:16px;background:#fbfdff}.myTripSearchCoachHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.myTripSearchCoachHead b,.myTripSearchCoachHead span{display:block}.myTripSearchCoachHead b{font-size:14px}.myTripSearchCoachHead span{margin-top:3px;color:#64748b;font-size:11px}.myTripSearchCoachHead em{flex:none;padding:5px 8px;border-radius:999px;background:#eef2f7;color:#64748b;font-size:10px;font-style:normal;font-weight:900}.myTripSearchCoachHead em.ready{background:#dcfce7;color:#15803d}.myTripSearchChecks{display:grid;gap:7px}.myTripSearchChecks span{position:relative;padding-left:24px;color:#697586;font-size:11px;font-weight:800;line-height:1.4}.myTripSearchChecks span::before{content:'✓';position:absolute;left:0;top:-1px;display:grid;width:17px;height:17px;place-items:center;border-radius:50%;background:#e8edf3;color:#9aa5b1;font-size:10px}.myTripSearchChecks span.done{color:#17663a}.myTripSearchChecks span.done::before{background:#20b26b;color:#fff}.myTripSearchCoach>small{color:#7b8796;font-size:10px;line-height:1.45}.myTripSearchPreview{display:grid;gap:8px}.myTripSearchPreview>b{font-size:12px}.myTripSearchPreview>div{display:grid;gap:3px;padding:13px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.myTripSearchPreview span{color:#16813d;font-size:10px}.myTripSearchPreview strong{overflow:hidden;color:#1a0dab;font-size:15px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.myTripSearchPreview p{display:-webkit-box;overflow:hidden;margin:0;color:#4b5563;font-size:11px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.profileFriendSearchForm{display:grid;gap:7px;margin-bottom:12px;padding:13px;border:1px solid #dbe7f7;border-radius:15px;background:#f7faff}.profileFriendSearchForm>label{color:#26354a;font-size:13px;font-weight:900}.profileFriendSearchForm>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.profileFriendSearchForm input{min-width:0;padding:11px 12px;border:1px solid #ced9e8;border-radius:11px;background:#fff;font-size:14px}.profileFriendSearchForm button{border:0;border-radius:11px;padding:0 15px;background:#087cff;color:#fff;font-weight:900}.profileFriendSearchForm>small{color:#748095;font-size:10px}.profileFriendSearchResults{display:grid;gap:7px;margin-bottom:15px}.profileFriendSearchRow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px;border:1px solid #e6ebf2;border-radius:14px;background:#fff}.profileFriendSearchRow>button:first-child{display:flex;align-items:center;gap:9px;min-width:0;border:0;background:transparent;text-align:left}.profileFriendSearchRow>button:first-child>span{display:grid;place-items:center;flex:0 0 40px;height:40px;border-radius:50%;background:#eaf2ff center/cover no-repeat;color:#087cff;font-weight:900}.profileFriendSearchRow div{min-width:0}.profileFriendSearchRow strong,.profileFriendSearchRow small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profileFriendSearchRow small{margin-top:3px;color:#7a8495;font-size:10px}.profileFriendSearchRow>[data-friend-search-add]{border:0;border-radius:10px;padding:9px 10px;background:#087cff;color:#fff;font-size:11px;font-weight:900}.profileFriendSearchRow>[data-friend-search-add]:disabled{background:#e7edf5;color:#758095}
.profileDemoGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:10px;
}
.profileDemoGrid div,
.profileDemoGrid button{
  padding:10px;
  border-radius:12px;
  background:#f8f9fb;
  border:1px solid rgba(60,60,67,0.10);
  text-align:left;
}
.profileDemoGrid button{
  cursor:pointer;
  appearance:none;
  -webkit-appearance:none;
}
.profileDemoGrid button:active{
  background:#eef6ff;
}
.profileDemoGrid b{
  display:block;
  color:#5f6368;
  font-size:11px;
  font-weight:900;
}
.profileDemoGrid span{
  display:block;
  margin-top:4px;
  color:#111;
  font-size:16px;
  font-weight:900;
}
.profileDemoGroup{
  margin-top:12px;
}
.profileDemoGroupTitle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  width:100%;
  min-height:58px;
  border:1px solid rgba(60,60,67,0.10);
  border-radius:12px;
  background:#fff;
  padding:12px 14px;
  text-align:left;
  appearance:none;
  -webkit-appearance:none;
  cursor:pointer;
}
.profileDemoGroupTitle:after{
  content:"";
  flex:0 0 auto;
  width:9px;
  height:9px;
  margin-left:2px;
  border-right:2px solid rgba(60,60,67,0.52);
  border-bottom:2px solid rgba(60,60,67,0.52);
  transform:rotate(45deg);
  transition:transform .18s ease;
}
.profileDemoGroupTitle[aria-expanded="true"]{
  background:#f8fbff;
  border-color:rgba(0,122,255,0.20);
}
.profileDemoGroupTitle[aria-expanded="true"]:after{
  transform:rotate(225deg);
}
.profileDemoGroupTitle strong{
  flex:0 0 auto;
  color:#111;
  font-size:14px;
  font-weight:950;
}
.profileDemoGroupTitle span{
  flex:1 1 auto;
  color:#6b7280;
  font-size:11px;
  font-weight:800;
  line-height:1.25;
  text-align:right;
  word-break:keep-all;
}
.profileTrafficGroup.hide{
  display:none;
}
.profileAccordionPanel{
  display:none;
  padding-top:8px;
}
.profileAccordionPanel.show{
  display:block;
}
.profileTrafficGrid{
  margin-top:0;
}
.profileMyTripList{
  margin-top:8px;
}
.profileDemoList{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:0;
}
.profileDemoList button{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  width:100%;
  min-height:78px;
  border:1px solid rgba(60,60,67,0.12);
  border-radius:12px;
  background:#f8f9fb;
  padding:11px 9px;
  text-align:center;
}
.profileDemoList span{
  color:#111;
  font-size:13px;
  font-weight:900;
  line-height:1.25;
}
.profileDemoList em{
  color:#007AFF;
  font-style:normal;
  font-size:11px;
  font-weight:800;
  line-height:1.25;
  word-break:keep-all;
}
.profileDemoList button[data-profile-action="admin"]{
  grid-column:1 / -1;
  margin-top:8px;
  border-style:dashed;
  border-color:rgba(60,60,67,0.22);
  background:rgba(60,60,67,0.04);
  padding:9px 11px;
}
.profileDemoList button[data-profile-action="admin"] span{
  color:rgba(60,60,67,0.74);
  font-size:12px;
}
.profileDemoList button[data-profile-action="admin"] em{
  color:rgba(60,60,67,0.52);
  font-size:11px;
}
#policyModal{
  position:fixed;
  inset:0;
  display:none;
  align-items:flex-end;
  justify-content:center;
  background:rgba(0,0,0,0.28);
  z-index:100006;
}
#policyModal.show{display:flex;}
.accountSettings{display:grid;gap:10px;padding-bottom:calc(8px + env(safe-area-inset-bottom))}
.accountSettings section{display:grid;gap:9px;padding:14px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}
.accountSettings section>strong{font-size:15px}
.accountSettings section>p,.accountSettings section>small{margin:0!important;color:#64748b!important;font-size:12px!important;line-height:1.45}
.accountSettings section>button{width:100%;border:0;border-radius:11px;padding:11px;background:#eef4ff;color:#1769e0;font-weight:900}
.accountSettings label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #eef1f5;font-size:13px;font-weight:800}
.accountSettings label:last-of-type{border-bottom:0}
.accountSettings input[type="checkbox"]{width:22px;height:22px;accent-color:#1769e0}
.accountSettings .pushPermissionRow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border-radius:12px;background:#f4f8ff}
.accountSettings .pushPermissionRow span{color:#475569;font-size:12px;line-height:1.4}
.accountSettings .pushPermissionRow button{border:0;border-radius:10px;padding:9px 11px;background:#e7654b;color:#fff;font-weight:900;white-space:nowrap}
.accountSettings .pushPermissionRow button:disabled{background:#cbd5e1;color:#64748b}
.accountSettings .accountDanger{border-color:#fee2e2;background:#fffafa}
.accountSettings .accountDanger button{background:#fee2e2;color:#dc2626}
.alertCenter{display:grid;gap:14px;padding-bottom:calc(8px + env(safe-area-inset-bottom))}
.alertGroup{display:grid;gap:8px}
.alertGroup>strong{font-size:13px;color:#475569}
.alertCard{display:grid;gap:5px;padding:13px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;cursor:pointer}
.alertCard:focus-visible{outline:3px solid rgba(23,105,224,.25);outline-offset:2px}
.alertCard.is-unread{border-color:#fecaca;background:#fff7f7;box-shadow:inset 3px 0 #ef4444}
.alertCard b{font-size:14px;color:#0f172a}
.alertCard p{margin:0!important;color:#64748b!important;font-size:12px!important;line-height:1.5}
.alertCard.is-announcement>p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;overflow-wrap:anywhere;white-space:normal;line-height:1.5!important;max-height:4.5em;text-overflow:ellipsis}
.alertCardAction{margin-top:3px;color:#1769e0;font-size:12px;font-weight:900}
.alertEmpty{margin:0!important;padding:24px 14px;border:1px dashed #cbd5e1;border-radius:14px;text-align:center;color:#64748b!important}

#directMessageModal{
  position:fixed;inset:0;z-index:26000;display:none;align-items:stretch;justify-content:stretch;
  width:100%;height:100dvh;max-height:100dvh;padding:0;background:#f6f7fa;box-sizing:border-box;
}
#directMessageModal.show{display:flex;}
.directMessageBox{
  width:100%;height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;border-radius:0;background:#f6f7fa;
  box-shadow:none;
}
.directMessageBox>header{
  flex:0 0 auto;display:grid;grid-template-columns:40px minmax(0,1fr) 52px 40px;gap:4px;
  align-items:center;min-height:58px;padding:6px 10px;border-bottom:1px solid #e5e7eb;background:#fff;
}
.directMessageBox>header #directMessageTitle{width:auto;background:transparent;color:#111;text-align:center;font-size:17px;font-weight:950;}
.directMessageBox>header button{width:40px;height:40px;border:0;border-radius:12px;background:#f1f3f6;color:#1769e0;font:inherit;font-size:24px;font-weight:900;}
.directMessageBox>header #directMessageTitle{width:100%;height:40px;background:transparent;color:#111;font-size:17px;}
.directThreadList{flex:1;overflow:auto;padding:10px;}
.directThreadRow{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 42px;align-items:center;border-bottom:1px solid #e7e9ed;background:#fff;}
.directThreadOpen{width:100%;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px 10px;border:0;background:transparent;text-align:left;}
.directThreadMore{width:38px;height:38px;border:0;border-radius:11px;background:#f1f4f8;color:#475569;font-size:20px;font-weight:900;}
.directThreadRow:first-child{border-radius:15px 15px 0 0;}
.directThreadRow:last-child{border-bottom:0;border-radius:0 0 15px 15px;}
.directAvatar{
  width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:#dce9ff center/cover no-repeat;color:#1769e0;font-size:18px;font-weight:950;
}
.directAvatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit;}
.directThreadText{min-width:0;display:flex;flex-direction:column;gap:5px;}
.directThreadText strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;}
.directThreadText strong em{padding:3px 5px;border-radius:999px;background:#e8f1ff;color:#1769e0;font-size:9px;font-style:normal;}
.directThreadText small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#687386;font-size:12px;}
.directThreadMeta{display:flex;min-width:34px;flex-direction:column;align-items:flex-end;gap:6px;}
.directThreadMeta time{color:#94a3b8;font-size:10px;}
.directThreadMeta b{min-width:19px;height:19px;display:flex;align-items:center;justify-content:center;border-radius:999px;background:#ff3b4e;color:#fff;font-size:10px;}
.directConversation{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;}
.directMessageList{flex:1;min-height:0;overflow:auto;overflow-anchor:none;overscroll-behavior:contain;padding:16px 12px;display:flex;flex-direction:column;gap:9px;}
#directMessageForm{display:grid;flex:0 0 auto;grid-template-columns:44px minmax(0,1fr) auto;gap:8px;padding:10px;background:#fff;border-top:1px solid #e5e7eb;}
#directMessageForm input{height:44px;border:1px solid #dbe1ea;border-radius:13px;padding:0 12px;background:#f8fafc;font:inherit;font-size:14px;}
#directMessageForm button{min-width:64px;border:0;border-radius:13px;background:#e7654b;color:#fff;font:inherit;font-size:13px;font-weight:900;}
#directMessageForm #directPlusButton{min-width:44px;background:#eef3f8;color:#1769e0;font-size:24px;}
.directPlusMenu{position:absolute;z-index:4;left:8px;right:auto;bottom:66px;display:flex;max-width:calc(100% - 16px);gap:7px;padding:8px;overflow-x:auto;border:1px solid rgba(60,60,67,.14);border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 12px 30px rgba(15,23,42,.18);}
.directPlusMenu button{flex:0 0 auto;min-width:58px;min-height:38px;padding:0 10px;border:0;border-radius:13px;background:#f2f4f7;color:#101828;font:inherit;font-size:13px;font-weight:950;}
.directPlusMenu button{display:grid;place-items:center;gap:3px;min-width:54px;padding:6px 8px}.directPlusMenu svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.directPlusMenu span{font-size:10px}.directMessageList .image-bubble{width:min(280px,72vw);max-width:72vw}.directMessageList .chat-image{width:100%;max-height:min(360px,46vh);object-fit:cover}.directTitleWrap{display:flex;min-width:0;flex:1;flex-direction:column;align-items:center}.directTitleWrap #directMessageTitle{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.directPresenceLabel{display:inline-flex!important;align-items:center;gap:4px;color:#7b8794;font-size:10px;font-weight:750}.directPresenceLabel i{width:7px;height:7px;border-radius:50%;background:#98a2b3}.directPresenceLabel.online{color:#168a52}.directPresenceLabel.online i{background:#20b26b;box-shadow:0 0 0 2px rgba(32,178,107,.15)}.directMessageBox>header #directTranslateBtn{width:52px!important;min-width:52px!important;height:40px!important;white-space:nowrap!important;border:1px solid #80b6f4;border-radius:13px;background:#eef7ff;color:#0877da;font-size:12px!important;font-weight:900}.directTranslationPanel{margin:0 10px 7px;padding:9px;border:1px solid #cfe1f5;border-radius:14px;background:#f7fbff}.directTranslationPanel.hide{display:none}.directTranslationPanel>div{display:flex;align-items:center;gap:5px}.directTranslationPanel strong{font-size:11px;white-space:nowrap}.directTranslationPanel select{min-width:0;flex:1;padding:7px 4px;border:1px solid #d6e2ef;border-radius:8px;background:#fff}.directTranslationPanel button{border:0;background:transparent;font-weight:900}.directTranslationPanel p{margin:7px 2px 0;color:#173b5e;font-size:12px;font-weight:750;line-height:1.4}
.chat-video{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:16/9;max-height:min(55dvh,420px);object-fit:contain;border-radius:14px;background:#000}.chat-bubble.video-bubble{width:min(280px,calc(100vw - 112px));max-width:100%;min-width:0;padding:3px;overflow:hidden;background:#111;box-sizing:border-box}
.directEmpty{margin:auto;padding:28px 14px;color:#788395;text-align:center;font-size:13px;}
.snsMenuGrid button.direct-active,.snsProfilePublicActions button.direct-active{background:#e7654b;color:#fff;border-color:#1769e0;}
.directMenuBadge{display:inline-flex;min-width:19px;height:19px;margin-left:4px;align-items:center;justify-content:center;border-radius:999px;background:#ff3b4e;color:#fff;font-size:10px;}
#directThreadActionMenu{position:fixed;inset:0;z-index:29000;display:none;align-items:flex-end;justify-content:center;padding:14px;background:rgba(15,23,42,.42);}
#directThreadActionMenu.show{display:flex;}
#directThreadActionMenu>div{width:min(480px,100%);display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:20px;background:#fff;}
#directThreadActionMenu strong{padding:5px 4px 8px;font-size:15px;}
#directThreadActionMenu button{min-height:46px;border:0;border-radius:13px;background:#f1f4f8;color:#111;font:inherit;font-size:13px;font-weight:850;}
#directThreadActionMenu button.danger{background:#fff0f1;color:#d92d43;}

@media(max-width:600px){
  #directMessageModal{padding:0;}
  .directMessageBox{width:100%;height:100%;min-height:0;border-radius:0;}}
.policyBox{
  width:100%;
  max-width:560px;
  height:min(70vh,560px);
  max-height:min(70vh,560px);
  overflow:auto;
  margin:0;
  padding:16px;
  border-radius:22px 22px 0 0;
  background:#fff;
  box-shadow:0 -12px 30px rgba(0,0,0,0.18);
}

#profileDetailModal{
  position:fixed;
  inset:0;
  display:none;
  align-items:flex-end;
  justify-content:center;
  background:rgba(0,0,0,0.28);
  z-index:100004;
}
#profileDetailModal.show{
  display:flex;
}
.profileDetailBox{
  width:100%;
  max-width:560px;
  height:min(70vh,560px);
  max-height:min(70vh,560px);
  display:flex;
  flex-direction:column;
  border-radius:22px 22px 0 0;
  background:#fff;
  box-shadow:0 -14px 34px rgba(15,23,42,0.18);
  overflow:hidden;
}
.profileDetailHead{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px 10px;
  border-bottom:1px solid rgba(60,60,67,0.10);
}
.profileDetailHead strong{
  min-width:0;
  color:#111;
  font-size:17px;
  font-weight:950;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#profileDetailClose{
  flex:0 0 auto;
  width:34px;
  height:34px;
  border:0;
  border-radius:12px;
  background:rgba(60,60,67,0.08);
  color:#333;
  font-size:15px;
  font-weight:900;
}
.profileDetailBody{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  padding:12px 14px calc(20px + env(safe-area-inset-bottom));
  -webkit-overflow-scrolling:touch;
}
.myTripComposeForm{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.myTripComposeForm label{
  display:flex;
  flex-direction:column;
  gap:6px;
  color:#344054;
  font-size:12px;
  font-weight:900;
}
.myTripComposeForm input,
.myTripComposeForm textarea,
.myTripComposeForm select{
  width:100%;
  min-width:0;
  box-sizing:border-box;
  border:1px solid rgba(60,60,67,0.16);
  border-radius:12px;
  padding:10px;
  background:#f8f9fb;
  color:#111;
  font-size:14px;
}
.myTripComposeForm textarea{
  resize:vertical;
}
.myTripMediaPicker{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:10px;
  border:1px solid rgba(0,122,255,0.14);
  border-radius:14px;
  background:#f8fbff;
}
.myTripMediaPicker input[type="file"]{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.myTripMediaActions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
}
.myTripMediaPicker button{
  width:100%;
  min-height:42px;
  border:0;
  border-radius:12px;
  background:#e7654b;
  color:#fff;
  font-size:13px;
  font-weight:950;
}
#myTripMediaSummary{
  color:#111827;
  font-size:13px;
  font-weight:950;
}
.myTripMediaPreview{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
}
.myTripMediaThumb{
  position:relative;
  overflow:hidden;
  aspect-ratio:1/1;
  border-radius:12px;
  background:#eaf3ff;
  border:1px solid rgba(60,60,67,0.10);
}
.myTripMediaThumb img,
.myTripMediaThumb video{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.myTripMediaThumb span{
  position:absolute;
  right:5px;
  bottom:5px;
  min-width:20px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:rgba(17,24,39,0.78);
  color:#fff;
  font-size:11px;
  font-weight:950;
}
.myTripMediaThumb.is-video::before{
  content:"VIDEO";
  position:absolute;
  left:5px;
  top:5px;
  z-index:1;
  padding:2px 5px;
  border-radius:999px;
  background:rgba(0,122,255,0.86);
  color:#fff;
  font-size:9px;
  font-weight:950;
}
.myTripMediaMore{
  display:flex;
  align-items:center;
  justify-content:center;
  color:#007AFF;
  font-size:17px;
  font-weight:950;
}
.myTripUploadStatus{
  min-height:16px;
  color:#007AFF;
  font-size:12px;
  font-weight:900;
}
.myTripComposeHint{
  display:block;
  color:#667085;
  font-size:11px;
  line-height:1.35;
  font-weight:800;
  word-break:keep-all;
}
.myTripComposeGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.myTripFootprintBox{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:10px;
  border:1px solid rgba(0,122,255,0.14);
  border-radius:14px;
  background:#f8fbff;
}
.myTripFootprintHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.myTripFootprintHead strong{
  color:#111;
  font-size:13px;
  font-weight:950;
}
.myTripFootprintHead button,
.myTripStopTop button{
  flex:0 0 auto;
  border:0;
  border-radius:11px;
  min-height:32px;
  padding:0 10px;
  background:rgba(0,122,255,0.12);
  color:#007AFF;
  font-size:12px;
  font-weight:950;
}
.myTripStopList{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.myTripStopItem{
  display:flex;
  flex-direction:column;
  gap:7px;
  padding:9px;
  border:1px solid rgba(60,60,67,0.10);
  border-radius:13px;
  background:#fff;
}
.myTripStopTop{
  display:grid;
  grid-template-columns:94px minmax(0,1fr);
  gap:7px;
}
.myTripStopTopWithRemove{
  grid-template-columns:86px minmax(0,1fr) auto;
}
@media (max-width: 420px){
  .myTripMediaPreview{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .myTripStopTop,
  .myTripStopTopWithRemove{
    grid-template-columns:1fr;
  }}
#myTripSaveBtn{
  width:100%;
  min-height:44px;
  border:0;
  border-radius:13px;
  background:#e7654b;
  color:#fff;
  font-size:14px;
  font-weight:950;
}
#myTripSaveBtn:disabled{
  opacity:.62;
}
.profileDetailList{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.profileDetailCard{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  min-height:68px;
  padding:11px;
  border:1px solid rgba(60,60,67,0.11);
  border-radius:14px;
  background:#f8f9fb;
}
.profileDetailCardPlain{
  grid-template-columns:minmax(0,1fr);
}
.profileDetailCard strong{
  display:block;
  min-width:0;
  color:#111;
  font-size:14px;
  font-weight:950;
  line-height:1.25;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.profileDetailCard span{
  display:block;
  margin-top:5px;
  color:#667085;
  font-size:12px;
  font-weight:800;
  line-height:1.35;
  word-break:keep-all;
}
.profileDetailCard button{
  flex:0 0 auto;
  border:0;
  border-radius:12px;
  min-height:36px;
  padding:0 11px;
  background:rgba(0,122,255,0.12);
  color:#007AFF;
  font-size:12px;
  font-weight:950;
}
.profileDetailEmpty,
.profileDetailLoading{
  padding:20px 12px;
  border-radius:14px;
  background:#f8f9fb;
  color:#667085;
  font-size:13px;
  font-weight:850;
  text-align:center;
}
.reactionCardList{display:flex;flex-direction:column;gap:7px}
.reactionCard{display:grid;grid-template-columns:42px minmax(0,1fr) 30px;align-items:center;gap:9px;min-height:58px;padding:8px 9px;border:1px solid rgba(60,60,67,.1);border-radius:14px;background:#f8f9fb}
.reactionAvatar,.reactionContentThumb{width:42px;height:42px;padding:0;border:0;border-radius:10px;overflow:hidden;background:#dcecff;color:#0877e8;font-weight:950;object-fit:cover}.reactionAvatar{border-radius:50%}.reactionContentThumb.empty{display:grid;place-items:center;font-size:9px}
.reactionAvatar img{display:block;width:100%;height:100%;object-fit:cover}.reactionAvatar span{display:grid;width:100%;height:100%;place-items:center}
.reactionMain{min-width:0;padding:0;border:0!important;background:transparent!important;text-align:left}
.reactionMain strong,.reactionMain span,.reactionMain small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.reactionMain strong{font-size:13px}.reactionMain span{margin-top:2px!important;color:#475569!important;font-size:11px!important}.reactionMain small{margin-top:3px;color:#0877e8;font-size:11px;font-weight:850}
.reactionIcon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#fff;color:#ff4d5e;font-size:14px;box-shadow:0 1px 5px rgba(15,23,42,.08)}
.profileMyTripGuide{
  display:flex;
  flex-direction:column;
  gap:12px;
  align-items:stretch;
  padding:12px;
  margin-bottom:10px;
  border-radius:14px;
  background:#f8fbff;
  border:1px solid rgba(0,122,255,0.14);
  box-sizing:border-box;
}
.profileMyTripGuide strong{
  display:block;
  color:#111;
  font-size:15px;
  font-weight:950;
}
.profileMyTripGuide span{
  display:block;
  margin-top:5px;
  color:#5f6368;
  font-size:12px;
  line-height:1.38;
  font-weight:800;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.profileMyTripGuide button{
  width:100%;
  border:0;
  border-radius:12px;
  min-height:42px;
  padding:0 12px;
  background:#e7654b;
  color:#fff;
  font-size:12px;
  font-weight:950;
}
.profileMyTripPost{
  display:block;
  width:100%;
  padding:0;
  text-align:left;
  overflow:hidden;
  border:1px solid rgba(60,60,67,0.11);
  border-radius:14px;
  background:#fff;
}
.profileMyTripMedia{
  position:relative;
  width:100%;
  aspect-ratio:16/10;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#eef4ff center/cover no-repeat;
  color:#007AFF;
  font-size:13px;
  font-weight:950;
}
.profileMyTripMedia em{
  position:absolute;
  right:9px;
  bottom:9px;
  min-height:23px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:3px 8px;
  border-radius:999px;
  background:rgba(17,24,39,0.78);
  color:#fff;
  font-size:11px;
  font-style:normal;
  font-weight:950;
}
.profileMyTripMediaEmpty{
  background:linear-gradient(135deg,#eef4ff,#f7fbff);
}
.profileMyTripBody{
  padding:11px;
}
.profileMyTripBody strong{
  display:block;
  color:#111;
  font-size:14px;
  font-weight:950;
  line-height:1.3;
}
.profileMyTripBody span{
  display:block;
  margin-top:5px;
  color:#667085;
  font-size:12px;
  font-weight:850;
}
.profileMyTripBody p{
  margin:9px 0 0;
  color:#30343b;
  font-size:13px;
  line-height:1.45;
  font-weight:750;
  word-break:keep-all;
}
.profileMyTripStops{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:10px;
}
.profileMyTripStops span{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:24px;
  padding:3px 8px 3px 3px;
  border-radius:999px;
  background:#f2f4f7;
  color:#475467;
  font-size:11px;
  font-weight:900;
}
.profileMyTripStops b{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  border-radius:999px;
  background:#111827;
  color:#fff;
}
.profileMyTripMeta{
  margin-top:9px;
  color:#667085;
  font-size:12px;
  font-weight:850;
}
.profileMyTripTags{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:10px;
}
.profileMyTripTags em{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:3px 7px;
  border-radius:999px;
  background:rgba(0,122,255,0.10);
  color:#0066cc;
  font-size:11px;
  font-style:normal;
  font-weight:900;
}
.myTripDetail{
  display:flex;
  flex-direction:column;
  gap:11px;
}
.myTripDetailHead strong{
  display:block;
  color:#111;
  font-size:17px;
  font-weight:950;
}
.myTripDetailHead span,
.myTripDetailCounts{
  display:block;
  margin-top:5px;
  color:#667085;
  font-size:12px;
  font-weight:850;
}
.myTripDetailMedia{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
.myTripDetailMedia img,
.myTripDetailMedia video{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:13px;
  background:#eef4ff;
}
.myTripDetailReview{
  margin:0;
  padding:11px;
  border-radius:13px;
  background:#f8f9fb;
  color:#30343b;
  font-size:13px;
  line-height:1.45;
  font-weight:750;
}
.myTripDetailActions{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:7px;
}
.myTripDetailActions button{
  min-height:38px;
  border:0;
  border-radius:12px;
  background:rgba(0,122,255,0.12);
  color:#007AFF;
  font-size:12px;
  font-weight:950;
}
.myTripDetailActions button[data-mytrip-delete]{
  background:rgba(255,59,48,0.12);
  color:#ff3b30;
}
.myTripDetailStops{
  display:flex;
  flex-direction:column;
  gap:7px;
}
.myTripDetailStop{
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  gap:8px;
  padding:10px;
  border-radius:13px;
  background:#f8f9fb;
}
.myTripDetailStop b{
  width:28px;
  height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#111827;
  color:#fff;
  font-size:12px;
}
.myTripDetailStop strong{
  display:block;
  color:#111;
  font-size:13px;
  font-weight:950;
}
.myTripDetailStop span{
  display:block;
  margin-top:3px;
  color:#667085;
  font-size:11px;
  font-weight:850;
}
.myTripDetailStop p{
  margin:5px 0 0;
  color:#475467;
  font-size:12px;
  line-height:1.35;
  font-weight:750;
}
.policyHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.policyHead strong{
  color:#111;
  font-size:18px;
  font-weight:900;
}
.policyHead button{
  border:none;
  width:34px;
  height:34px;
  border-radius:12px;
  background:rgba(60,60,67,0.08);
  font-size:16px;
}
#policyBody p{
  margin:9px 0;
  color:#333;
  font-size:14px;
  line-height:1.45;
}
.featureList{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:12px;
}
.featureList div{
  min-height:34px;
  display:flex;
  align-items:center;
  padding:8px 10px;
  border-radius:10px;
  background:#f5f7fa;
  color:#222;
  font-size:13px;
  font-weight:700;
  line-height:1.25;
}

































.invitePreferenceToggle{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.invitePreferenceToggle button{min-height:44px;border:1px solid #ded7ca;border-radius:13px;background:#f6f3ed;color:#665f54;font-weight:900}.invitePreferenceToggle button.active{border-color:#3f6849;background:#e8f2e9;color:#285031}
.invitePreferenceSwitch{display:flex!important;align-items:center!important;justify-content:space-between!important;border:0!important;padding:8px 0!important}.invitePreferenceSwitch>span{display:flex;flex-direction:column;gap:2px}.invitePreferenceSwitch>span small{color:#64748b;font-size:11px}.invitePreferenceSwitch input{position:absolute;opacity:0;pointer-events:none}.invitePreferenceSwitch i{position:relative;width:52px;height:31px;flex:0 0 52px;border-radius:999px;background:#c7c7cc;transition:.2s}.invitePreferenceSwitch i:after{content:"";position:absolute;left:2px;top:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.25);transition:.2s}.invitePreferenceSwitch input:checked+i{background:#34c759}.invitePreferenceSwitch input:checked+i:after{transform:translateX(21px)}.alertCenterDescription{margin:0 0 14px;padding:11px 13px;border-radius:12px;background:#f4f7fb;color:#64748b;font-size:12px;line-height:1.5}
.scheduleUnreadNew{display:inline-flex;margin-left:6px;padding:2px 6px;border-radius:999px;background:#ff3b4e;color:#fff;font-size:9px;font-style:normal;font-weight:950;vertical-align:middle}#roomHomeChatBtn,[data-official-action="chat"],.alertInviteAccept{background:#e7654b!important;border-color:#e7654b!important;color:#fff!important}
/* c128: one consistent MAppsTalk switch system */
.accountSettings .settingsToggle{display:flex!important;align-items:center!important;justify-content:space-between!important;border-bottom:1px solid #eef1f5!important;padding:10px 0!important}.accountSettings .settingsToggle>span{display:flex;min-width:0;flex-direction:column;gap:2px}.accountSettings .settingsToggle>span small{color:#64748b;font-size:11px;font-weight:600}.accountSettings .settingsToggle input{position:absolute!important;opacity:0!important;pointer-events:none!important}.accountSettings .settingsToggle i{position:relative;width:52px;height:31px;flex:0 0 52px;border-radius:999px;background:#cbd5d0;transition:background .2s}.accountSettings .settingsToggle i:after{content:"";position:absolute;left:2px;top:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.22);transition:transform .2s}.accountSettings .settingsToggle input:checked+i{background:#e7654b}.accountSettings .settingsToggle input:checked+i:after{transform:translateX(21px)}.accountSettings .settingsToggle input:disabled+i{opacity:.5}
.alertCard[data-busy="1"]{pointer-events:none;background:#fff!important;border-color:#e2e8f0!important;box-shadow:none!important;opacity:.72}

/* c128: shared positive action palette; destructive actions stay red */
:root{--mapps-action:#4f7b55;--mapps-action-soft:#eaf2eb;--mapps-action-dark:#35593b}
.accountSettings section>button:not([data-account-withdraw]),.accountSettings .pushPermissionRow button,.guide-panel-actions button,.guide-owner-actions button,#directMessageForm button:not(#directPlusButton),.roomInviteActions button,.roomInviteFriends button,.alertInviteAccept,#roomHomeChatBtn,[data-official-action="chat"]{background:var(--mapps-action)!important;border-color:var(--mapps-action)!important;color:#fff!important}

/* c129: coral actions, bright-green switches, chat-tinted sheets */
:root{--mapps-action:#e7654b;--mapps-action-hover:#c94f38;--mapps-action-soft:#fff0eb;--mapps-sheet:#f2f2f7}
.accountSettings .settingsToggle input:checked+i,.invitePreferenceSwitch input:checked+i{background:#34c759!important}
.accountSettings .appThemeToggle input:checked+i{background:var(--mapps-action)!important}
#sendBtn,.directSendButton,#roomHomeChatBtn,[data-official-action="chat"],.alertInviteAccept,.room-create-btn-primary,#categoryRegisterBtn,.policyOpenChatBtn:not(.danger),.aiPlannerSubmit,.aiPlanRealActions button:first-child{background:var(--mapps-action)!important;border-color:var(--mapps-action)!important;color:#fff!important;box-shadow:0 7px 16px rgba(231,101,75,.22)!important}
#sendBtn:active,.directSendButton:active,#roomHomeChatBtn:active,.alertInviteAccept:active{background:var(--mapps-action-hover)!important}
#bottomSheet,#categorySheet,.category-results-panel,#profilePanel,#policyModal .policyBox,.directMessageBox,.room-location-box{background:var(--mapps-sheet)!important}

/* c135 white theme: text fields keep the same neutral edge while editing. */
input:focus,input:focus-visible,textarea:focus,textarea:focus-visible,select:focus,select:focus-visible{
  outline:none!important;
  box-shadow:none!important;
}

/* =============================
   GLASS REFRESH
   UI-only polish for iOS/Instagram-style surfaces.
   Keep chat bubble sizing and gallery layout unchanged.
   ============================= */
:root{
  --glass-bg:rgba(255,255,255,0.34);
  --glass-bg-strong:rgba(255,255,255,0.52);
  --glass-line:rgba(255,255,255,0.72);
  --glass-sep:rgba(60,60,67,0.11);
  --glass-shadow:0 18px 44px rgba(15,23,42,0.16);
  --glass-shadow-soft:0 10px 28px rgba(15,23,42,0.12);
  --glass-blur:blur(26px) saturate(1.65);
}

#topBar,
#searchBar,
#categoryBar,
#bottomNav,
#chatHeader,
#chatInputWrap,
#chatFilterPanel,
#communityCard,
#loginPopup,
#profileBox,
.room-create-box,
.room-type-box,
#officialChannelBox,
.room-info-box,
.sheet,
.profile-account-card,
.sheetSponsor{
  background:var(--glass-bg);
  border:1px solid var(--glass-line);
  box-shadow:var(--glass-shadow-soft);
  backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);
  isolation:isolate;
}

#topBar{
  top:8px;
  left:50%;
  width:min(360px, calc(100% - 28px));
  height:54px;
  transform:translateX(-50%);
  border-radius:22px;
  border-bottom:1px solid var(--glass-line);
  box-shadow:var(--glass-shadow), inset 0 1px 0 rgba(255,255,255,0.72);
}
#topLogo{
  height:48px;
}

#searchBar{
  top:72px;
  width:min(520px, calc(100% - 28px));
  padding:7px;
  border-radius:20px;
  box-shadow:var(--glass-shadow), inset 0 1px 0 rgba(255,255,255,0.72);
}
#searchInput,
.room-create-input,
#chatInput,
#bannerScope,
#bannerRoomType,
#bannerCategory,
#bannerRegion,
#bannerTitle,
#bannerImageUrl,
#bannerLandingUrl,
#bannerKeywords,
#officialSearchInput,
#officialEditTitle,
#officialEditDescription,
#officialEditCategory,
#officialEditKind,
#officialEditRetention,
#officialEditCustomCategory,
#officialEditImageUrl{
  background:rgba(255,255,255,0.76);
  border:1px solid var(--glass-sep);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.66);
}
#searchBtn,
#sendBtn,
.room-create-btn-primary,
#officialChannelAutoBtn,
#categoryRegisterBtn{
  background:#e7654b;
  color:#fff;
  box-shadow:0 9px 20px rgba(231,101,75,0.22);
}

#categoryBar{
  top:122px;
  left:50%;
  width:min(720px, calc(100% - 28px));
  transform:translateX(-50%);
  border-radius:19px;
  border-bottom:1px solid var(--glass-line);
  box-shadow:var(--glass-shadow), inset 0 1px 0 rgba(255,255,255,0.72);
}
.catWrap{
  padding:7px;
}
.catWrap button,
.chat-filter-list button,
#bottomNav button,
#roomInfoClose,
#closeChat,
#roomInfoBtn,
#officialChannelCloseBtn,
.room-create-close,
.room-create-btn-cancel,
.room-create-mini-btn,
#sheetClose,
#clearBannerBtn{
  background:rgba(255,255,255,0.56);
  border:1px solid rgba(255,255,255,0.52);
  box-shadow:0 2px 8px rgba(15,23,42,0.05);
  backdrop-filter:blur(14px) saturate(1.35);
  -webkit-backdrop-filter:blur(14px) saturate(1.35);
}
.catWrap button:active,
#bottomNav button:active,
#floatingBtns button:active{
  transform:scale(0.98);
}

/* 기능별 공통 도움말: 제목 옆의 한 버튼과 한 개의 안내창을 모든 화면에서 공유한다. */
.featureGuideButton{display:inline-flex!important;flex:0 0 28px!important;align-items:center!important;justify-content:center!important;width:28px!important;min-width:28px!important;max-width:28px!important;height:28px!important;min-height:28px!important;max-height:28px!important;margin:0!important;padding:0!important;border:2px solid #16813c!important;border-radius:50%!important;background:#fff!important;color:#16813c!important;font:950 15px/1 Arial,sans-serif!important;letter-spacing:0!important;text-align:center!important;box-shadow:none!important;transform:none!important;cursor:pointer}
.featureGuideMapButton{position:fixed!important;z-index:94;top:191px;right:12px;width:38px!important;min-width:38px!important;max-width:38px!important;height:38px!important;min-height:38px!important;max-height:38px!important;border-width:1.5px!important;border-color:#16813c!important;color:#16813c!important;font-size:18px!important;font-weight:700!important;box-shadow:0 5px 14px rgba(15,23,42,.14)!important}
.featureGuideMapButton{top:auto!important;bottom:380px!important}
#mainFieldTranslateBtn{position:fixed;z-index:94;top:191px;right:12px;display:grid;width:52px;height:52px;padding:0;place-items:center;border:1px solid rgba(17,24,39,.12);border-radius:50%;background:#fff;color:#667085;box-shadow:0 5px 14px rgba(15,23,42,.16);cursor:pointer}
.fieldTranslateIcon{position:relative;display:block;width:30px;height:26px}.fieldTranslateIcon i{position:absolute;display:grid;width:16px;height:15px;place-items:center;box-sizing:border-box;border:1.7px solid currentColor;border-radius:4px;background:#fff;font:900 9px/1 Arial,sans-serif;font-style:normal}.fieldTranslateIcon i:after{content:"";position:absolute;bottom:-4px;width:5px;height:5px;border-style:solid;border-color:currentColor;background:#fff;transform:rotate(45deg)}.fieldTranslateIcon i:first-child{left:0;top:0;z-index:1}.fieldTranslateIcon i:first-child:after{left:3px;border-width:0 1.7px 1.7px 0}.fieldTranslateIcon i:last-child{right:0;bottom:0;z-index:2}.fieldTranslateIcon i:last-child:after{right:3px;border-width:0 1.7px 1.7px 0}
body.sheet-open .featureGuideMapButton,body.category-results-open .featureGuideMapButton,body.filter-sheet-open .featureGuideMapButton,body.official-channel-open .featureGuideMapButton,body.feature-guide-open .featureGuideMapButton{display:none!important}
body.sheet-open #mainFieldTranslateBtn,body.category-results-open #mainFieldTranslateBtn,body.filter-sheet-open #mainFieldTranslateBtn,body.official-channel-open #mainFieldTranslateBtn,body.feature-guide-open #mainFieldTranslateBtn{display:none!important}
.featureGuideOverlay{position:fixed;z-index:2147483000;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:16px;box-sizing:border-box;background:rgba(15,23,42,.48)}
.featureGuideSheet{display:grid;width:min(520px,100%);max-height:min(680px,86vh);gap:14px;padding:20px;box-sizing:border-box;overflow:auto;border-radius:22px;background:#fff;box-shadow:0 18px 55px rgba(15,23,42,.3)}
.featureGuideSheet header{display:grid;grid-template-columns:34px minmax(0,1fr) 40px;align-items:center;gap:9px}.featureGuideSheet header strong{font-size:19px}.featureGuideSheet header button{width:40px;height:40px;border:0;border-radius:12px;background:#f1f3f5;color:#344054;font-size:25px;font-weight:700}.featureGuideSymbol{display:grid;width:32px;height:32px;place-items:center;border-radius:50%;background:#eaf8ee;color:#16813c;font-size:18px;font-weight:950}.featureGuideSheet ol{display:grid;gap:10px;margin:0;padding-left:24px;color:#344054}.featureGuideSheet li{padding-left:3px;font-size:14px;line-height:1.55}.featureGuideCaution{display:flex;align-items:flex-start;gap:9px;margin:0;padding:12px;border-radius:13px;background:#fff6df;color:#694b00;font-size:13px;line-height:1.5}.featureGuideCaution b{display:grid;flex:none;width:22px;height:22px;place-items:center;border-radius:50%;background:#f0a000;color:#fff}.featureGuideHeadingRow,.featureGuideStandaloneRow,.aiPlannerGuideRow,.roomCreateTitleRow{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.featureGuideStandaloneRow,.aiPlannerGuideRow{padding:0 2px}.featureGuideStandaloneRow strong,.aiPlannerGuideRow strong{font-size:15px}.course-date-title{display:flex;align-items:center;gap:7px}.featureGuideMapControls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.featureGuideMapControls span{display:grid;justify-items:center;gap:6px;padding:9px 3px;border:1px solid #dce5ef;border-radius:12px;background:#f8fbff;text-align:center}.featureGuideMapControls i{display:grid;width:27px;height:27px;place-items:center;color:#111;font-size:21px;font-style:normal}.featureGuideMapControls b{color:#344054;font-size:10px;white-space:nowrap}.featureGuideMapControls .floating-icon{filter:none}.featureGuideMapControls .my-location-pin,.featureGuideBlueMarker{position:relative;display:block;width:24px;height:24px;border-radius:50% 50% 50% 0;transform:rotate(-45deg)}.featureGuideMapControls .my-location-pin{background:#ef233c;box-shadow:0 2px 5px rgba(239,35,60,.3)}.featureGuideMapControls .my-location-pin:after{content:"";position:absolute;inset:7px;border-radius:50%;background:#fff}.featureGuideBlueMarker{background:#1677e8;box-shadow:0 2px 5px rgba(22,119,232,.3)}.featureGuideBlueMarker:after{content:"";position:absolute;inset:7px;border-radius:50%;background:#fff}
.featureGuideMapControls .fieldTranslateIcon{display:block;width:28px;height:24px;color:#667085;font-style:normal}.featureGuideMapControls .fieldTranslateIcon i{width:15px;height:14px;color:#667085;font-size:8.5px}
body.feature-guide-open{overflow:hidden}
.coreOnboardingReplay{display:block;width:100%;min-height:42px;border:0;border-radius:12px;background:#eef6ff;color:#0877e8;font-weight:850}
@media(max-width:520px){.featureGuideMapButton{top:auto!important;bottom:380px!important;right:10px;width:36px!important;min-width:36px!important;max-width:36px!important;height:36px!important;min-height:36px!important;max-height:36px!important}#mainFieldTranslateBtn{top:187px;right:10px;width:52px;height:52px}.featureGuideOverlay{padding:10px}.featureGuideSheet{padding:17px;border-radius:20px}.featureGuideSheet li{font-size:13px}.featureGuideMapControls{grid-template-columns:repeat(3,minmax(0,1fr))}}

#map{
  top:156px;
  height:calc(100% - 221px);
  z-index:1;
}

#floatingBtns button{
  background:var(--glass-bg-strong);
  border:1px solid var(--glass-line);
  box-shadow:var(--glass-shadow-soft);
  backdrop-filter:var(--glass-blur);
  -webkit-backdrop-filter:var(--glass-blur);
}
#floatingBtns #profileAlertQuickBtn{
  background:linear-gradient(180deg,#2786ff,#1769e0);
  border-color:rgba(255,255,255,0.42);
}

#communityCard{
  border-radius:24px;
  background:var(--glass-bg-strong);
}
#officialChannelBox,
#profileBox,
.room-create-box,
.room-type-box,
.room-info-box{
  background:rgba(250,250,252,0.82);
  border-color:var(--glass-line);
  box-shadow:0 -18px 42px rgba(15,23,42,0.16);
}

#chatHeader,
#chatInputWrap{
  background:rgba(250,250,252,0.76);
}
#chatInputWrap{
  padding-top:9px;
}
#chatPhotoBtn{
  background:rgba(255,255,255,0.62);
  border:1px solid var(--glass-line);
  box-shadow:0 3px 10px rgba(0,122,255,0.08);
}

#bottomNav{
  left:50%;
  bottom:8px;
  width:min(520px, calc(100% - 20px));
  transform:translateX(-50%);
  border-radius:24px;
  border-top:1px solid var(--glass-line);
  height:64px;
  padding-bottom:0;
  box-shadow:0 14px 38px rgba(15,23,42,0.16), inset 0 1px 0 rgba(255,255,255,0.72);
}

#loginPopup{
  background:rgba(250,250,252,0.86);
  border-radius:24px;
}
.kakao-btn,
.google-btn,
.admin-login-btn,
.profile-action-buttons button,
#copyProfileUidBtn,
#requestAdminRoleBtn,
#editProfileBtn,
#logoutBtn{
  border-radius:16px;
  box-shadow:0 4px 12px rgba(15,23,42,0.06);
}

.sheet{
  background:rgba(250,250,252,0.82);
  border:1px solid var(--glass-line);
}
.sheetHandle{
  background:rgba(60,60,67,0.28);
  box-shadow:none;
}

.room-create-box,
.room-type-box{
  border-radius:26px 26px 0 0;
}
@media (min-width: 720px){
  .room-create-box,
  .room-type-box{
    border-radius:26px;
  }}

.room-label{
  padding:6px 10px !important;
  border-radius:999px !important;
  background:rgba(255,255,255,0.58) !important;
  color:#111 !important;
  border:1px solid rgba(255,255,255,0.82) !important;
  box-shadow:0 10px 24px rgba(15,23,42,0.18), inset 0 1px 0 rgba(255,255,255,0.82) !important;
  backdrop-filter:blur(18px) saturate(1.65) !important;
  -webkit-backdrop-filter:blur(18px) saturate(1.65) !important;
  font-size:14px !important;
  font-weight:900 !important;
  letter-spacing:0 !important;
  text-shadow:none !important;
}
.room-label-open,
.room-label-private{
  background:rgba(255,255,255,0.6) !important;
}
.room-label-open{
  border:1.5px solid rgba(0,122,255,0.9) !important;
  box-shadow:0 10px 26px rgba(0,122,255,0.16), 0 10px 24px rgba(15,23,42,0.16), inset 0 1px 0 rgba(255,255,255,0.82) !important;
}
.room-label-private{
  border:1.5px solid rgba(52,64,84,0.9) !important;
  box-shadow:0 10px 26px rgba(52,64,84,0.15), 0 10px 24px rgba(15,23,42,0.16), inset 0 1px 0 rgba(255,255,255,0.82) !important;
}
.room-label-official{
  background:rgba(255,255,255,0.68) !important;
  border:1.5px solid rgba(255,59,48,0.94) !important;
  box-shadow:0 10px 26px rgba(255,59,48,0.18), 0 10px 24px rgba(15,23,42,0.16), inset 0 1px 0 rgba(255,255,255,0.82) !important;
}



@media (max-width: 520px){
  #topBar{
    width:calc(100% - 20px);
  }
  #searchBar{
    width:calc(100% - 20px);
  }
  #categoryBar{
    width:calc(100% - 20px);
  }}

/* =============================
   TOP UI RESTORE
   Keep bottom glass nav and map labels; restore the upper controls.
   ============================= */
#topBar{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:60px;
  transform:none;
  border:none;
  border-radius:0;
  border-bottom:1px solid #eee;
  background:#fff;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  display:flex;
  justify-content:center;
  align-items:center;
  z-index:100;
}
#topLogo{
  width:min(330px, 82vw);
  height:54px;
}

#searchBar{
  position:fixed;
  top:61px;
  left:50%;
  width:92%;
  transform:translateX(-50%);
  padding:4px 8px;
  display:flex;
  gap:7px;
  border:none;
  border-radius:12px;
  background:#fff;
  box-shadow:0 2px 6px rgba(0,0,0,.12);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  z-index:90;
}
#searchInput{
  flex:1;
  padding:6px 9px;
  font-size:15px;
  border:1px solid #ccc;
  border-radius:10px;
  background:#fff;
  box-shadow:none;
}
#searchBtn{
  padding:6px 11px;
  font-size:15px;
  background:#000;
  color:#fff;
  border:none;
  border-radius:10px;
  box-shadow:none;
}

#categoryBar{
  position:fixed;
  top:107px;
  left:0;
  width:100%;
  transform:none;
  overflow-x:auto;
  border:none;
  border-radius:0;
  border-bottom:1px solid #eee;
  background:#fff;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  z-index:80;
}
#categoryBar::-webkit-scrollbar{
  display:none;
}
.catWrap{
  display:flex;
  gap:10px;
  padding:8px 10px;
}
.catWrap button{
  padding:8px 14px;
  font-size:15px;
  background:#f5f5f5;
  color:#111;
  border:none;
  border-radius:22px;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  flex-shrink:0;
}

body:not(.admin-page)::before{
  content:"";
  position:fixed;
  top:0;
  left:0;
  right:0;
  height:156px;
  background:#fff;
  z-index:70;
  pointer-events:none;
}

/* mapps.b3: password gate replaced by authenticated public beta entry. */
body.beta-locked{overflow:hidden}
body.beta-locked #loginOverlay{z-index:1000001}
body.beta-locked #loginPopup{z-index:1000002;bottom:max(24px,env(safe-area-inset-bottom));}
body.beta-locked #locationAgreementModal,
body.beta-locked #emailAuthModal{z-index:1000003}
.beta-info-modal{position:fixed;inset:0;z-index:1000200;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,42,.48)}
.beta-info-modal.hide{display:none}
.beta-info-modal section{position:relative;width:min(390px,100%);box-sizing:border-box;border-radius:22px;padding:24px;background:#fff;box-shadow:0 20px 65px rgba(0,0,0,.28)}
.beta-info-modal section>b{display:inline-block;border-radius:999px;padding:5px 9px;background:#eaf3ff;color:#0877e8;font-size:11px}
.beta-info-modal strong{display:block;margin:12px 0 8px;font-size:20px}.beta-info-modal p{margin:0;color:#596274;font-size:13px;line-height:1.6}
.beta-info-modal small{display:block;margin:-3px 0 9px;color:#0877e8;font-weight:850}
.beta-info-modal section>button:last-child{width:100%;margin-top:16px;border:0;border-radius:13px;padding:13px;background:#e7654b;color:#fff;font-weight:900}
.beta-info-close{position:absolute;right:12px;top:12px;width:34px;height:34px;border:0;border-radius:50%;background:#f1f3f5;font-size:19px}
.chat-filter-note b{color:#0b67c2}

/* =============================
   BUBBLE / GUIDE / LOCATION UPDATE
   ============================= */
.usage-guide{
  position:fixed;
  inset:0;
  z-index:999999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(12,18,28,0.34);
  backdrop-filter:blur(16px) saturate(1.35);
  -webkit-backdrop-filter:blur(16px) saturate(1.35);
}
.usage-guide.hide{
  display:none;
}
.usage-guide-box{
  width:min(420px, 100%);
  padding:18px;
  border-radius:22px;
  background:rgba(255,255,255,0.9);
  border:1px solid rgba(255,255,255,0.78);
  box-shadow:0 22px 60px rgba(15,23,42,0.22);
}
.usage-guide-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}
.usage-guide-head strong{
  font-size:20px;
  font-weight:900;
}
.usage-guide-head button{
  width:36px;
  height:36px;
  border:none;
  border-radius:50%;
  background:rgba(60,60,67,0.1);
  font-size:22px;
  line-height:1;
}
.usage-guide-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.usage-guide-list div{
  padding:12px;
  border-radius:14px;
  background:rgba(247,248,250,0.86);
  border:1px solid rgba(60,60,67,0.08);
}
.usage-guide-list b{
  display:block;
  margin-bottom:4px;
  font-size:14px;
}
.usage-guide-list span{
  display:block;
  color:#475467;
  font-size:13px;
  line-height:1.42;
}
.usage-guide-check{
  display:flex;
  align-items:center;
  gap:8px;
  margin:14px 0 12px;
  color:#475467;
  font-size:13px;
}
#usageGuideClose{
  width:100%;
  padding:13px 16px;
  border:none;
  border-radius:15px;
  background:#0a84ff;
  color:#fff;
  font-size:16px;
  font-weight:900;
}

#profilePanel{
  z-index:300 !important;
}
.admin-page{
  background:#f7f8fb;
}
.admin-page::before{
  display:none !important;
}

.room-label{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  max-width:148px !important;
  min-height:26px !important;
  padding:5px 10px !important;
  border-radius:7px !important;
  color:#111 !important;
  font-size:14px !important;
  font-weight:900 !important;
  letter-spacing:0 !important;
  line-height:1.15 !important;
  text-shadow:none !important;
  white-space:nowrap !important;
  overflow:visible !important;
  box-shadow:0 5px 12px rgba(15,23,42,0.15) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
.room-label::after{
  content:"";
  position:absolute;
  left:12px;
  bottom:-7px;
  width:12px;
  height:10px;
  background:inherit;
  border-left:inherit;
  border-bottom:inherit;
  transform:skew(-26deg);
  transform-origin:top left;
  clip-path:polygon(0 0,100% 0,0 100%);
}
.room-label-open{
  background:#fff2a8 !important;
  border:1px solid #e1b200 !important;
  color:#2f2600 !important;
}
.room-label-private{
  background:#eef1f5 !important;
  border:1px solid #667085 !important;
  color:#101828 !important;
}
.room-label-official{
  background:#ffe3e1 !important;
  border:1px solid #ff3b30 !important;
  color:#3b0b08 !important;
}






.room-notice-pinned{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.room-notice-copy{
  min-width:0;
  cursor:pointer;
}
.room-notice-copy span{
  overflow-wrap:anywhere;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  line-height:1.32;
  white-space:pre-line;
}
.room-notice-pinned.is-expanded{
  align-items:flex-start;
}
.chat-bubble{
  position:relative;
  border-radius:19px 19px 19px 8px;
  box-shadow:0 6px 18px rgba(15,23,42,0.07);
}
.chat-message-row.theirs .chat-bubble{
  background:rgba(255,255,255,0.98);
  border:1px solid rgba(16,24,40,0.08);
  border-radius:18px;
}
.chat-message-row.mine .chat-bubble{
  background:linear-gradient(180deg,#1f8dff 0%,#0a78f0 100%);
  color:#fff;
  border:1px solid rgba(255,255,255,0.22);
  border-radius:18px;
}
.chat-message-row.mine .chat-bubble:not(.image-bubble)::after,
.chat-message-row.theirs .chat-bubble:not(.image-bubble)::after{
  content:none;
  display:none;
}
.chat-message-row.mine .chat-bubble.image-bubble,
.chat-message-row.theirs .chat-bubble.image-bubble{
  background:transparent;
}

#chatMessageActionMenu{
  display:none;
  position:fixed;
  inset:0;
  z-index:100120;
  align-items:flex-end;
  justify-content:center;
  padding:16px 12px max(16px, env(safe-area-inset-bottom));
  background:rgba(15,23,42,.34);
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
}
#chatMessageActionMenu.show{display:flex;}
.chat-message-action-sheet{
  width:min(430px,100%);
  padding:14px;
  border-radius:20px;
  background:#fff;
  box-shadow:0 18px 48px rgba(15,23,42,.24);
}
.chat-message-action-sheet>strong{display:block;padding:2px 4px 10px;font-size:14px;color:#64748b;}
.chat-message-action-sheet [data-chat-message-actions]{display:grid;gap:8px;}
.chat-message-action-sheet button{width:100%;border:0;border-radius:13px;padding:13px;background:#f2f5f9;color:#111827;font-size:16px;font-weight:900;}
.chat-message-action-sheet button.danger{background:#fff0f0;color:#dc2626;}
.chat-message-action-sheet>[data-chat-message-cancel]{margin-top:9px;background:#fff;border:1px solid #dce2ea;}
.chat-gallery-cell,
.chat-gallery-cell img,
.chat-image{
  -webkit-touch-callout:none !important;
  -webkit-user-select:none !important;
  user-select:none !important;
  -webkit-user-drag:none !important;
}

/* =============================
   FILTER / MAP THEME POLISH
   ============================= */
.gm-fullscreen-control,
.gm-svpc,
.gm-style-mtc,
.gm-bundled-control,
.gm-bundled-control-on-bottom,
.gm-compass,
button[title="Toggle fullscreen view"],
button[title="Street View"],
button[aria-label="Street View"],
button[aria-label="Keyboard shortcuts"],
button[aria-label="Map camera controls"]{
  display:none !important;
}

#mapThemeToggle{
  position:fixed;
  top:178px;
  left:12px;
  z-index:96;
  width:48px;
  height:48px;
  border:1px solid rgba(255,255,255,0.72);
  border-radius:18px;
  background:rgba(255,255,255,0.72);
  box-shadow:0 10px 26px rgba(15,23,42,0.16), inset 0 1px 0 rgba(255,255,255,0.85);
  backdrop-filter:blur(18px) saturate(1.5);
  -webkit-backdrop-filter:blur(18px) saturate(1.5);
  display:flex;
  align-items:center;
  justify-content:center;
}
.theme-orb{
  position:relative;
  width:27px;
  height:27px;
  display:block;
  transition:transform .28s ease, filter .28s ease;
}
.theme-sun{
  border-radius:50%;
  background:radial-gradient(circle at 35% 32%, #fff8c9 0 20%, #ffd86b 38%, #ff9f2f 72%, #ff7a1a 100%);
  box-shadow:0 0 16px rgba(255,190,76,0.68), 0 0 32px rgba(255,138,61,0.34);
}
.theme-sun::before{
  content:"";
  position:absolute;
  inset:-7px;
  border-radius:50%;
  background:conic-gradient(from 0deg, rgba(255,199,88,0), rgba(255,199,88,.65), rgba(255,199,88,0) 16%, transparent 17% 25%, rgba(255,199,88,.58) 26%, transparent 34%, transparent);
  filter:blur(.2px);
  z-index:-1;
}
.theme-moon{
  border-radius:50%;
  background:radial-gradient(circle at 35% 35%, #f7f0ff 0 18%, #a88dff 42%, #51417f 72%, #201c3b 100%);
  box-shadow:0 0 16px rgba(158,132,255,0.58), 0 0 34px rgba(67,48,126,0.42);
}
.theme-moon::before{
  content:"";
  position:absolute;
  width:21px;
  height:21px;
  top:1px;
  left:8px;
  border-radius:50%;
  background:rgba(255,255,255,0.9);
  box-shadow:-2px 2px 9px rgba(255,255,255,0.35);
}
.theme-moon::after{
  content:"";
  position:absolute;
  right:-3px;
  top:3px;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#fff9d8;
  box-shadow:-13px 18px 0 -1px #fff, -4px 24px 0 -1px rgba(255,255,255,.8);
}
.map-night-mode #mapThemeToggle{
  background:rgba(34,30,56,0.78);
  border-color:rgba(205,195,255,0.34);
}

#chatFilterPanel{
  width:min(330px, calc(100vw - 92px)) !important;
  right:76px !important;
  padding:14px !important;
  border-radius:20px !important;
  background:rgba(255,255,255,0.88) !important;
}
.chat-filter-title{
  font-size:15px !important;
  font-weight:900 !important;
  margin-bottom:10px !important;
}
.chat-filter-section{
  display:none;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:7px;
}
.chat-filter-section.active{
  display:grid;
}
.chat-filter-section button{
  border:1px solid rgba(60,60,67,0.12);
  border-radius:13px;
  padding:9px 8px;
  background:#fff;
  color:#1d2939;
  font-size:13px;
  font-weight:800;
}
.chat-filter-section button.active{
  background:#eaf3ff;
  border-color:#0a84ff;
  color:#0068d9;
}
.chat-filter-note{
  margin-top:9px !important;
  color:#667085 !important;
  font-size:12px !important;
}

.room-label{
  min-height:25px !important;
  padding:5px 10px !important;
  border-radius:8px !important;
  background:rgba(255,255,255,0.96) !important;
  color:#111827 !important;
  border:1px solid rgba(10,132,255,0.9) !important;
  box-shadow:0 5px 12px rgba(15,23,42,0.14) !important;
}
.room-label::after{
  content:"";
  position:absolute;
  left:14px;
  bottom:-5px;
  width:9px;
  height:9px;
  background:rgba(255,255,255,0.96);
  border-left:inherit;
  border-bottom:inherit;
  transform:rotate(-18deg) skew(-8deg);
  clip-path:polygon(0 0,100% 0,0 100%);
}
.room-label-open{
  border-color:#0a84ff !important;
}
.room-label-private{
  border-color:#7c3aed !important;
}
.room-label-official{
  border-color:#ff3b30 !important;
}
.map-night-mode .room-label{
  background:rgba(255,255,255,0.94) !important;
  box-shadow:0 7px 18px rgba(0,0,0,0.28) !important;
}
.map-night-mode .room-label::after{
  background:rgba(255,255,255,0.94);
}

#bottomNav{
  left:8px !important;
  right:8px !important;
  bottom:8px !important;
  width:auto !important;
  height:58px !important;
  background:rgba(255,255,255,0.82) !important;
  border:1px solid rgba(255,255,255,0.72) !important;
  border-radius:22px !important;
  box-shadow:0 10px 26px rgba(15,23,42,0.13) !important;
}

#roomLocationModal{
  position:fixed;
  inset:0;
  z-index:9998;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:0;
  background:rgba(15,23,42,0.28);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
#roomLocationModal.hide{
  display:none;
}
.room-location-box{
  box-sizing:border-box;
  width:min(430px, 100%);
  height:min(86vh, 720px);
  max-height:calc(100dvh - 22px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  padding:8px 16px calc(14px + env(safe-area-inset-bottom));
  border-radius:24px 24px 0 0;
  background:#fff;
  border:1px solid rgba(60,60,67,0.12);
  box-shadow:0 18px 48px rgba(15,23,42,0.22);
}
.room-home-handle,.room-home-detail-handle{
  position:relative;
  display:block;
  flex:0 0 38px;
  width:100%;
  height:38px;
  margin:0;
  border-radius:0;
  background:transparent;
  touch-action:none;
  cursor:grab;
}
.room-home-handle::before,.room-home-detail-handle::before{
  content:"";
  position:absolute;
  top:12px;
  left:50%;
  width:58px;
  height:6px;
  border-radius:999px;
  background:rgba(72,78,89,.34);
  transform:translateX(-50%);
}
.room-home-handle::after,.room-home-detail-handle::after{display:none!important}
.room-location-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex:0 0 auto;
  padding-bottom:8px;
  border-bottom:1px solid rgba(60,60,67,0.10);
}
.room-location-head strong{
  font-size:18px;
  font-weight:900;
}
.room-home-scroll{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  padding:0 0 14px;
}
.room-home-image{
  touch-action:pan-y;
  cursor:grab;
  user-select:none;
  -webkit-user-select:none;
  -webkit-user-drag:none;
  display:block;
  width:100%;
  aspect-ratio:2/1;
  object-fit:cover;
  margin-top:12px;
  border-radius:16px;
  background:#f2f4f7;
  cursor:pointer;
}
.room-notice-copy{display:grid;grid-template-columns:minmax(0,1fr);gap:3px;align-items:start;}
.room-notice-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.room-notice-copy span{-webkit-line-clamp:1;}
.room-notice-schedule{display:none;margin-top:6px;color:#007aff;font-size:12px;font-style:normal;font-weight:800;}
.room-notice-image{display:none;width:100%;max-width:600px;max-height:600px;margin-top:8px;border-radius:10px;object-fit:contain;background:#f2f4f7;}
.room-notice-pinned.is-expanded .room-notice-copy span{display:block;-webkit-line-clamp:unset;overflow:visible;}
.room-notice-pinned.is-expanded .room-notice-schedule.has-content{display:block;}
.room-notice-pinned.is-expanded .room-notice-image.has-content{display:block;}
.room-notice-actions{flex:0 0 auto;}
.room-location-btn{border:1px solid rgba(0,122,255,.25);border-radius:999px;padding:6px 10px;background:#fff;color:#0068d9;font-size:12px;font-weight:900;}
.room-notice-editor-box label{display:block;margin-top:10px;color:#667085;font-size:12px;font-weight:800;}
.room-notice-editor-box input,.room-notice-editor-box textarea{box-sizing:border-box;width:100%;margin-top:5px;}
.room-notice-editor-calendar{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.room-home-banner-controls{
  display:block;
  margin-top:8px;
}
.room-home-banner-controls.is-empty{
  display:block;
  margin-top:12px;
}
.room-home-banner-controls button{
  border:0;
  border-radius:999px;
  min-height:28px;
  padding:0 10px;
  background:rgba(0,122,255,0.12);
  color:#007aff;
  font-size:11px;
  font-weight:950;
}
.room-home-banner-manage-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:7px;
}
.room-home-banner-manage-head span{
  color:#667085;
  font-size:11px;
  font-weight:850;
}
.room-home-banner-manage-list{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.room-home-banner-manage-item{
  display:grid;
  grid-template-columns:58px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  border:1px solid rgba(60,60,67,0.10);
  border-radius:8px;
  padding:6px;
  background:#f8f9fb;
}
.room-home-banner-manage-item > img{
  display:block;
  width:58px;
  height:34px;
  border-radius:6px;
  object-fit:cover;
}
.room-home-banner-manage-item > div:nth-child(2){
  min-width:0;
}
.room-home-banner-manage-item strong,
.room-home-banner-manage-item span{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.room-home-banner-manage-item strong{
  color:#202124;
  font-size:11px;
  font-weight:900;
}
.room-home-banner-manage-item span{
  margin-top:3px;
  color:#7a8089;
  font-size:9px;
}
.room-home-banner-manage-item > div:last-child{
  display:flex;
  gap:4px;
}
.room-home-banner-editor-modal{
  position:fixed;
  inset:0;
  z-index:10070;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:16px;
  background:rgba(15,23,42,0.42);
  box-sizing:border-box;
}
.room-home-banner-editor{
  width:min(480px,100%);
  max-height:min(680px,calc(100vh - 32px));
  overflow-y:auto;
  border-radius:12px;
  padding:16px;
  background:#fff;
  box-shadow:0 18px 54px rgba(15,23,42,0.24);
  box-sizing:border-box;
}
.room-home-banner-editor-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:12px;
}
.room-home-banner-editor-head strong{
  font-size:17px;
  font-weight:950;
}
.room-home-banner-editor-head button{
  width:34px;
  height:34px;
  border:0;
  border-radius:50%;
  background:#f1f3f5;
  font-size:20px;
}
.room-home-banner-editor label{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:10px;
  color:#30343b;
  font-size:12px;
  font-weight:900;
}
.room-home-banner-editor input{
  width:100%;
  min-height:44px;
  border:1px solid rgba(60,60,67,0.16);
  border-radius:8px;
  padding:10px;
  font:inherit;
  box-sizing:border-box;
}
.room-home-banner-editor-hint{
  margin-top:8px;
  color:#6b7280;
  font-size:11px;
  font-weight:750;
}
.room-home-banner-editor-preview{
  display:block;
  width:100%;
  aspect-ratio:2/1;
  margin-top:10px;
  border-radius:8px;
  background:#eef1f5;
  object-fit:cover;
}
.room-home-banner-editor > button[type="submit"]{
  width:100%;
  min-height:46px;
  margin-top:12px;
  border:0;
  border-radius:8px;
  background:#e7654b;
  color:#fff;
  font-size:14px;
  font-weight:900;
}
.room-home-banner-controls button.danger{
  background:rgba(255,59,48,0.12);
  color:#ff3b30;
}
.room-home-banner-size{
  align-self:center;
  margin-right:auto;
  color:#667085;
  font-size:11px;
  font-weight:850;
  white-space:nowrap;
}
.room-home-banner-controls .room-home-banner-empty{
  width:100%;
  min-height:112px;
  border:1.5px dashed rgba(0,122,255,0.28);
  border-radius:16px;
  background:#f7fbff;
  color:#007aff;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:14px;
  text-align:center;
}
.room-home-banner-controls .room-home-banner-empty strong,
.room-home-banner-controls .room-home-banner-empty span{
  display:block;
}
.room-home-banner-credit{
  width:max-content;
  max-width:calc(100% - 16px);
  margin:-31px 8px 10px auto;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(0,0,0,.64);
  color:#fff;
  font-size:10px;
  font-weight:900;
  position:relative;
  z-index:2;
}
.room-location-address.channel-address{
  width:max-content;
  max-width:100%;
  margin:8px auto 0;
  padding:5px 9px;
  border:0;
  background:transparent;
  color:#667085;
  font-size:10px;
  text-align:center;
}
.representativeImageReportForm .representativeReportGuide{display:grid;gap:5px;padding:13px;border-radius:14px;background:#eef7ff}.representativeImageReportForm .representativeReportGuide strong{font-size:16px}.representativeImageReportForm .representativeReportGuide span{color:#53657b;font-size:12px;line-height:1.45}.representativeReportPreview{display:block;width:100%;aspect-ratio:2/1;margin-top:10px;border-radius:14px;object-fit:cover;background:#eef1f5}.representativeRightsCheck{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:9px!important;padding:12px;border-radius:12px;background:#fff7e8}.representativeRightsCheck input{flex:0 0 auto;width:20px!important;min-height:20px!important;margin:1px 0 0}.representativeRightsCheck span{font-size:11px;line-height:1.5}.representativeReportStatus{display:grid;gap:3px;margin:10px 0;padding:10px 12px;border-radius:12px;background:#fff7e8}.representativeReportStatus.approved{background:#edf9f0}.representativeReportStatus b{font-size:12px}.representativeReportStatus span{color:#667085;font-size:10px}
.room-home-banner-controls .room-home-banner-empty strong{
  color:#e7654b;
  font-size:19px;
  font-weight:950;
}
.room-home-banner-controls .room-home-banner-empty span{
  color:#667085;
  font-size:11px;
  font-weight:800;
  line-height:1.35;
}
.room-home-avatar{
  width:86px;
  height:86px;
  margin:14px auto 8px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#eaf3ff;
  background-position:center;
  background-size:cover;
  color:#007aff;
  font-size:34px;
  font-weight:950;
  box-shadow:0 10px 26px rgba(15,23,42,0.14);
}
.room-home-type{
  width:fit-content;
  margin:12px auto 0;
  padding:5px 9px;
  border-radius:999px;
  background:#eaf3ff;
  color:#0068d9;
  font-size:12px;
  font-weight:900;
}
#roomLocationModal.channel-home .room-home-type{
  background:rgba(255,149,0,0.14);
  color:#c76a00;
}

/* 채널홈은 채팅창과 같은 프레임으로 표시한다. */
#roomLocationModal.channel-home{
  inset:0;
  width:100%;
  height:var(--app-height,100dvh);
  min-height:0;
  max-height:var(--app-height,100dvh);
  padding:0;
  box-sizing:border-box;
  align-items:stretch;
  justify-content:stretch;
  overflow:hidden;
  background:transparent;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
#roomLocationModal.channel-home .room-location-box{
  width:100%;
  max-width:none;
  height:100%;
  max-height:100%;
  min-height:0;
  padding:max(8px,env(safe-area-inset-top)) 16px calc(14px + env(safe-area-inset-bottom));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-radius:0;
  border-top:1px solid var(--ios-sep, rgba(60,60,67,0.18));
  box-shadow:0 -10px 30px rgba(0,0,0,0.12);
}
#roomLocationModal.channel-home .room-location-head{
  flex:0 0 auto;
  background:#fff;
}
#roomLocationModal.channel-home .room-home-scroll{
  flex:1 1 auto;
  min-height:0;
  min-width:0;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
}
#roomLocationModal.channel-home .room-location-actions{
  flex:0 0 auto;
  padding-bottom:max(14px, env(safe-area-inset-bottom));
  background:#fff;
}
#roomLocationModal.channel-pop-home .room-home-feature-grid.channel-feature-grid{
  grid-template-columns:minmax(0,1fr);
}
#roomLocationModal.channel-pop-home .room-home-feature-grid.channel-feature-grid > *{
  grid-column:1;
  min-width:0;
}
#roomLocationModal.channel-pop-home .channel-pop-intro-card{
  min-height:112px;
  align-items:flex-start;
  justify-content:flex-start;
  text-align:left;
}
#roomLocationModal.channel-pop-home .channel-pop-intro-card > span{
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:4;
}
#roomLocationModal.channel-pop-home .photo-widget-direct{
  min-height:190px;
}
#roomLocationModal.channel-pop-home .photo-widget-direct .room-home-feature-photo,
#roomLocationModal.channel-pop-home .photo-widget-direct .room-home-photo-empty{
  min-height:140px;
}
#roomLocationModal.channel-pop-home .room-home-feature-grid .channel-pop-reactions{
  margin:0;
}
#roomLocationModal.channel-pop-home .channel-pop-reactions [data-content-save]{display:none}
#roomLocationModal.channel-pop-home .channel-pop-board-card{
  min-height:86px;
  align-items:flex-start;
  text-align:left;
}
#roomLocationModal.channel-pop-home #roomHomeChatBtn.hide{display:none;}
#roomLocationModal.channel-pop-home .room-location-subactions{margin-bottom:0;}
#roomLocationModal.channel-home .room-home-notice{
  background:#fff7ed;
  color:#5f3b16;
}
#roomLocationModal.general-home .room-home-notice{
  background:#eef6ff;
  color:#123b66;
}
.room-location-head button{
  width:34px;
  height:34px;
  border:0;
  border-radius:50%;
  background:#f2f4f7;
  font-size:20px;
}
.room-location-room{
  margin-top:9px;
  padding:10px 12px;
  border:1px solid rgba(60,60,67,0.12);
  border-radius:10px;
  background:#fff;
  color:#101828;
  font-size:18px;
  font-weight:900;
  line-height:1.25;
  text-align:center;
  box-shadow:0 4px 12px rgba(15,23,42,0.05);
}
#roomLocationModal.channel-home .room-location-room{
  border-color:rgba(199,106,0,0.18);
  background:#fffaf2;
}
#roomLocationModal.general-home .room-location-room{
  border-color:rgba(0,122,255,0.16);
  background:#f8fbff;
}
.room-home-summary{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:6px;
  margin-top:9px;
}
.room-home-summary span{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:5px 9px;
  border-radius:999px;
  background:#f2f4f7;
  color:#475467;
  font-size:11px;
  font-weight:900;
  line-height:1;
}
#roomLocationModal.channel-home .room-home-summary span{
  background:#fff3e0;
  color:#9a5a00;
}
.room-home-summary.hide{
  display:none;
}
.room-home-notice{
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin-top:10px;
  padding:12px;
  border-radius:14px;
  background:#fff8e5;
  color:#47351b;
  line-height:1.45;
  font-size:14px;
  font-weight:750;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.room-home-notice-icon{
  position:relative;
  flex:0 0 auto;
  width:22px;
  height:22px;
  margin-top:1px;
  border-radius:50%;
  background:rgba(255,59,48,0.12);
}
.room-home-notice-icon::before{
  content:"";
  position:absolute;
  left:5px;
  top:7px;
  width:7px;
  height:8px;
  background:#ff3b30;
  clip-path:polygon(0 27%, 38% 27%, 100% 0, 100% 100%, 38% 73%, 0 73%);
}
.room-home-notice-icon::after{
  content:"";
  position:absolute;
  left:12px;
  top:6px;
  width:6px;
  height:9px;
  border:2px solid #ff3b30;
  border-left:0;
  border-radius:0 999px 999px 0;
}
.room-home-notice-text{
  min-width:0;
  flex:1 1 auto;
  white-space:pre-line;
}
.room-home-notice.is-collapsed{
  max-height:46px;
  overflow:hidden;
}
.room-home-notice-toggle{
  display:block;
  width:100%;
  margin-top:6px;
  border:0;
  border-radius:12px;
  padding:8px 10px;
  background:#fff3e0;
  color:#c76a00;
  font-size:12px;
  font-weight:950;
}
.room-home-notice-toggle.hide{
  display:none;
}
.room-home-quick-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:10px;
}
.room-home-quick-actions button{
  min-height:42px;
  border:1px solid rgba(0,122,255,0.18);
  border-radius:13px;
  background:#f4f9ff;
  color:#007aff;
  font-size:13px;
  font-weight:900;
}
.room-home-quick-actions button:disabled{
  opacity:.45;
}
.room-home-host-card{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:12px;
  padding:12px;
  border:1px solid rgba(60,60,67,0.10);
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 22px rgba(15,23,42,0.06);
}
#roomLocationModal.channel-home .room-home-host-card{
  background:#fffaf2;
}
.room-home-host-avatar{
  flex:0 0 auto;
  width:54px;
  height:54px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#eaf3ff;
  background-position:center;
  background-size:cover;
  color:#007aff;
  font-size:22px;
  font-weight:950;
}
#roomLocationModal.channel-home .room-home-host-avatar{
  border-radius:16px;
  background:#fff0d8;
  color:#c76a00;
}
.room-home-host-copy{
  min-width:0;
  flex:1 1 auto;
}
.room-home-host-copy b,
.room-home-host-copy strong,
.room-home-host-copy span{
  display:block;
}
.room-home-host-copy b{
  color:#667085;
  font-size:11px;
  font-weight:950;
}
.room-home-host-copy strong{
  margin-top:3px;
  color:#101828;
  font-size:15px;
  font-weight:950;
  line-height:1.25;
}
.room-home-host-copy span{
  margin-top:4px;
  color:#667085;
  font-size:12px;
  font-weight:750;
  line-height:1.35;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.room-home-feature-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:10px;
  padding:0;
  border-radius:0;
  background:transparent;
  border:0;
}
.room-home-feature-card{
  display:flex;
  flex-direction:column;
  justify-content:center;
  width:100%;
  min-height:76px;
  padding:11px 10px;
  text-align:center;
  border-radius:12px;
  background:#f8f9fb;
  border:1px solid rgba(60,60,67,0.10);
  appearance:none;
  -webkit-appearance:none;
}
.room-home-feature-grid.channel-feature-grid .room-home-feature-card:nth-child(1),
.room-home-feature-grid.channel-feature-grid .room-home-feature-card:nth-child(2){
  grid-column:1 / -1;
  min-height:68px;
  text-align:left;
  align-items:flex-start;
}
.room-home-feature-grid.channel-feature-grid .calendar-widget{grid-column:1 / -1}
.room-home-feature-grid.channel-feature-grid{grid-template-columns:minmax(0,1fr)}
.room-home-feature-grid.channel-feature-grid > .room-home-feature-card{grid-column:1 / -1}
.room-home-feature-card + .room-home-feature-card{
  border-top:1px solid rgba(60,60,67,0.10);
  border-radius:12px;
}
.room-home-feature-card:active{
  transform:translateY(1px);
}
#roomLocationModal.general-home .room-home-feature-card{
  background:#f8fbff;
}
#roomLocationModal.channel-home .room-home-feature-card{
  background:#fffaf2;
}
.room-home-feature-grid.general-course-grid{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.room-home-feature-grid.general-course-grid .room-home-feature-card{
  min-height:78px;
  text-align:left;
  align-items:flex-start;
}
.room-home-feature-card.photo-widget{
  min-height:116px;
  justify-content:flex-end;
  overflow:hidden;
  position:relative;
}
.room-home-feature-card.calendar-widget,
.room-home-feature-card.photo-widget-direct{
  min-height:178px;
  padding:8px;
  justify-content:flex-start;
  overflow:hidden;
}
.room-home-calendar-preview{
  display:block !important;
  width:100%;
  min-height:142px;
  box-sizing:border-box;
  margin:0 !important;
  padding:10px;
  border-radius:10px;
  background:#1f3150;
  color:#eaf3ff !important;
  overflow:visible !important;
  -webkit-line-clamp:unset !important;
}
.room-home-calendar-preview > strong{
  display:block;
  color:#fff;
  font-size:12px;
  font-weight:950;
  text-align:left;
}
.room-home-calendar-preview-weekdays,
.room-home-calendar-preview-grid{
  display:grid !important;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:2px;
  width:100%;
  margin:6px 0 0 !important;
  overflow:visible !important;
  -webkit-line-clamp:unset !important;
}
.room-home-calendar-preview-weekdays b{
  color:rgba(234,243,255,0.6);
  font-size:8px;
  font-weight:900;
  text-align:center;
}
.room-home-calendar-preview-grid i{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  height:16px;
  border-radius:999px;
  color:rgba(234,243,255,0.82);
  font-size:8px;
  font-style:normal;
  font-weight:900;
}
.room-home-calendar-preview-grid i.today{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0.45);
}
.room-home-calendar-preview-grid i.has-event{
  background:#ff453a;
  color:#fff;
}
.room-home-feature-card .room-home-widget-label{
  display:block;
  width:100%;
  margin:7px 0 0;
  color:#101828;
  font-size:12px;
  font-weight:950;
  line-height:1.2;
  text-align:center;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  -webkit-line-clamp:unset;
}
.room-home-feature-card.photo-widget-direct .room-home-feature-photo{
  width:100%;
  height:142px;
  margin:0;
  border-radius:10px;
  background-position:center;
  background-size:cover;
}
.room-home-feature-card .room-home-photo-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:142px;
  margin:0;
  border-radius:10px;
  background:#f2f4f7;
  color:#667085;
  font-size:11px;
  font-weight:850;
  line-height:1.35;
  text-align:center;
  -webkit-line-clamp:unset;
}
.room-home-feature-photo{
  display:block;
  width:100%;
  height:70px;
  margin:-3px 0 8px;
  border-radius:10px;
  background-size:cover;
  background-position:center;
  border:1px solid rgba(60,60,67,0.10);
}
.room-home-course-card{
  margin-top:0;
  padding:12px 13px;
  border:1px solid rgba(0,122,255,0.12);
  border-radius:14px;
  background:#f8fbff;
}
.room-home-course-actions{
  display:flex;
  justify-content:flex-end;
  gap:6px;
  margin-top:10px;
  padding-top:8px;
  border-top:1px solid rgba(60,60,67,0.08);
}
.room-home-course-actions button{
  border:0;
  border-radius:999px;
  min-height:28px;
  padding:0 9px;
  background:rgba(0,122,255,0.12);
  color:#007aff;
  font-size:11px;
  font-weight:950;
}
.room-home-course-actions button:disabled{
  opacity:.45;
}
.room-home-course-body{
  display:flex;
  flex-direction:column;
  gap:0;
  margin-top:7px;
}
.room-home-course-body div{
  padding:8px 0;
  border-radius:0;
  background:transparent;
  border:0;
}
.room-home-course-body div + div{
  border-top:1px solid rgba(60,60,67,0.1);
}
.room-home-course-body b,
.room-home-course-body span{
  display:block;
}
.room-home-course-body b{
  color:#007aff;
  font-size:12px;
  font-weight:950;
}
.room-home-course-body span{
  margin-top:5px;
  color:#344054;
  font-size:12px;
  font-weight:800;
  line-height:1.38;
  white-space:pre-line;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.room-home-feature-card strong,
.room-home-feature-card span,
.room-home-feature-card em{
  display:block;
}
.room-home-feature-card strong{
  color:#101828;
  font-size:13px;
  font-weight:950;
}
.room-home-feature-card span{
  margin-top:5px;
  color:#475467;
  font-size:11px;
  font-weight:750;
  line-height:1.3;
  word-break:keep-all;
  overflow-wrap:anywhere;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.room-home-feature-card em{
  margin-top:7px;
  color:#007aff;
  font-size:11px;
  font-style:normal;
  font-weight:950;
}
#roomLocationModal.channel-home .room-home-feature-card em{
  color:#c76a00;
}
.room-home-detail-sheet{
  position:fixed;
  inset:0;
  z-index:10020;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  background:rgba(15,23,42,0.30);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.room-home-detail-sheet.hide{
  display:none;
}
.room-home-detail-sheet.conversation-tool-sheet{
  z-index:100200;
}
.room-home-detail-box{
  width:100%;
  max-width:560px;
  height:min(82vh,680px);
  max-height:min(82vh,680px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-radius:22px 22px 0 0;
  background:#fff;
  border:1px solid rgba(60,60,67,0.12);
  box-shadow:0 18px 48px rgba(15,23,42,0.24);
}
.room-home-detail-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border-bottom:1px solid rgba(60,60,67,0.10);
}
.room-home-detail-head strong{
  color:#101828;
  font-size:17px;
  font-weight:950;
}
.room-home-detail-head button{
  border:0;
  border-radius:999px;
  padding:8px 11px;
  background:#f2f4f7;
  color:#475467;
  font-size:12px;
  font-weight:900;
}
.room-home-detail-body{
  min-height:160px;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  padding:12px 16px calc(18px + env(safe-area-inset-bottom));
}
.room-home-detail-loading,
.room-home-detail-empty{
  padding:20px 12px;
  border-radius:15px;
  background:#f8f9fb;
  color:#667085;
  font-size:13px;
  font-weight:850;
  line-height:1.45;
  text-align:center;
  word-break:keep-all;
}
.room-home-detail-line{
  padding:12px;
  border-radius:15px;
  background:#f8f9fb;
  border:1px solid rgba(60,60,67,0.10);
}
.room-home-detail-line + .room-home-detail-line{
  margin-top:8px;
}
.room-home-detail-line strong,
.room-home-detail-line em,
.room-home-detail-line span{
  display:block;
}
.room-home-detail-line strong{
  color:#101828;
  font-size:14px;
  font-weight:950;
}
.room-home-detail-line em{
  margin-top:4px;
  color:#007aff;
  font-size:11px;
  font-style:normal;
  font-weight:900;
}
.room-home-detail-line span{
  margin-top:6px;
  color:#475467;
  font-size:12px;
  font-weight:750;
  line-height:1.4;
  white-space:pre-line;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.room-home-detail-action{
  width:100%;
  margin-top:10px;
  border:0;
  border-radius:14px;
  padding:12px 10px;
  background:#e7654b;
  color:#fff;
  font-size:14px;
  font-weight:900;
}
.room-home-detail-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:10px;
}
.room-home-detail-actions button{
  border:0;
  border-radius:999px;
  min-height:34px;
  padding:0 12px;
  background:#e7654b;
  color:#fff;
  font-size:13px;
  font-weight:950;
}
.room-home-detail-actions button.danger{
  background:rgba(255,59,48,0.12);
  color:#d70015;
}
.room-home-compose-form{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.room-home-editor-label{
  color:#202124;
  font-size:14px;
  font-weight:950;
}
.room-home-block-editor,
.room-home-content-blocks{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.room-home-block-editor{
  gap:0;
  min-height:280px;
  padding:12px;
  border:1px solid rgba(60,60,67,0.13);
  border-radius:12px;
  background:#fff;
}
.room-home-editor-block{
  position:relative;
  border:0;
  border-radius:0;
  padding:0;
  background:#fff;
}
.room-home-editor-block textarea{
  min-height:72px;
  border:0 !important;
  border-radius:6px !important;
  padding:8px !important;
  box-shadow:none !important;
}
.room-home-editor-block.image > img{
  display:block;
  width:100%;
  max-height:420px;
  border-radius:8px;
  object-fit:contain;
  background:#f3f5f7;
}
.room-home-editor-add-image{
  width:100%;
  min-height:38px;
  margin-top:6px;
  border:1px dashed rgba(0,122,255,0.42);
  border-radius:8px;
  background:#f5f9ff;
  color:#007aff;
  font-size:12px;
  font-weight:900;
}
.room-home-editor-controls{
  display:flex;
  justify-content:flex-end;
  gap:5px;
  margin-top:6px;
}
.room-home-editor-controls:empty{
  display:none;
}
.room-home-editor-controls button{
  min-width:34px;
  min-height:30px;
  border:0;
  border-radius:8px;
  background:#eef1f5;
  color:#40444c;
  font-size:12px;
  font-weight:900;
}
.room-home-editor-controls button.danger{
  color:#d70015;
  background:rgba(255,59,48,0.10);
}
.room-home-content-blocks{
  width:100%;
}
.channel-intro-detail .room-home-content-blocks{
  box-sizing:border-box;
  padding:16px;
  border:1px solid #d9e2ec;
  border-radius:16px;
  background:#f5f8fc;
}
.room-home-content-blocks p{
  margin:0;
  color:#344054;
  font-size:14px;
  font-weight:750;
  line-height:1.6;
  white-space:pre-line;
  overflow-wrap:anywhere;
}
.room-home-inline-image{
  display:block;
  width:100%;
  border:0;
  border-radius:8px;
  padding:0;
  overflow:hidden;
  background:#f3f5f7;
}
.room-home-inline-image img{
  display:block;
  width:100%;
  max-height:520px;
  object-fit:contain;
}
.room-home-compose-form label{
  display:flex;
  flex-direction:column;
  gap:7px;
  color:#344054;
  font-size:13px;
  font-weight:950;
}
.room-home-compose-form textarea,
.room-home-compose-form input[type="text"],
.room-home-compose-form input[type="datetime-local"]{
  width:100%;
  box-sizing:border-box;
  border:1px solid rgba(60,60,67,0.16);
  border-radius:14px;
  padding:12px;
  background:#fff;
  color:#101828;
  font-size:15px;
  font-weight:750;
}
.room-home-compose-form textarea{
  min-height:180px;
  line-height:1.45;
  resize:vertical;
}
.chat-poll-options{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.chat-poll-options-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  color:#344054;
  font-size:13px;
  font-weight:950;
}
.chat-poll-options-head span,
.chat-poll-optional{
  color:#98a2b3;
  font-size:12px;
  font-weight:800;
}
[data-poll-options-list]{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.chat-poll-option-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
}
.room-home-compose-form .chat-poll-option-row input[type="text"]{
  min-width:0;
}
.chat-poll-option-row button,
.chat-poll-add-option{
  border:1px solid rgba(60,60,67,0.13);
  border-radius:12px;
  min-height:42px;
  padding:0 13px;
  background:#f8f9fb;
  color:#475467;
  font-size:13px;
  font-weight:900;
}
.chat-poll-option-row button{
  color:#d92d20;
  background:#fff5f4;
}
.chat-poll-add-option{
  width:100%;
  color:#007aff;
  border-style:dashed;
  background:#f5f9ff;
}
.room-home-compose-form input[type="file"]{
  width:100%;
  box-sizing:border-box;
  padding:12px;
  border-radius:14px;
  background:#f8f9fb;
  border:1px dashed rgba(0,122,255,0.28);
  color:#475467;
  font-size:13px;
  font-weight:850;
}
.room-home-compose-form button[type="submit"]{
  border:0;
  border-radius:15px;
  min-height:46px;
  background:#e7654b;
  color:#fff;
  font-size:15px;
  font-weight:950;
}
.room-home-compose-hint{
  color:#667085;
  font-size:12px;
  font-weight:800;
  line-height:1.35;
}
.room-home-compose-preview,
.room-home-detail-images{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
  margin-top:10px;
}
.room-home-compose-preview img,
.room-home-detail-images img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:12px;
  border:1px solid rgba(60,60,67,0.10);
}
.room-home-detail-images button{
  border:0;
  padding:0;
  background:transparent;
}
.room-home-calendar-card{
  padding:14px;
  border-radius:16px;
  background:#f8fbff;
  border:1px solid rgba(0,122,255,0.12);
}
.chat-bubble.tool-bubble{
  max-width:min(270px, 82vw);
  padding:8px;
  background:#fff;
}
.chat-tool-card{
  min-width:190px;
  border-radius:16px;
  padding:12px;
  background:#f8f9fb;
  border:1px solid rgba(60,60,67,0.12);
}
.chat-tool-card b,
.chat-tool-card strong,
.chat-tool-card em,
.chat-tool-card p{
  display:block;
}
.chat-tool-card b{
  color:#007aff;
  font-size:11px;
  font-weight:950;
}
.chat-tool-card strong{
  margin-top:4px;
  color:#101828;
  font-size:14px;
  font-weight:950;
}
.chat-tool-card em{
  margin-top:5px;
  color:#667085;
  font-size:12px;
  font-style:normal;
  font-weight:850;
}
.chat-tool-card p{
  margin:8px 0 0;
  color:#475467;
  font-size:12px;
  font-weight:750;
  line-height:1.38;
  white-space:pre-line;
}
.chat-tool-options{
  display:grid;
  gap:6px;
  margin-top:9px;
}
.chat-tool-options button{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  border-radius:999px;
  padding:8px 10px;
  background:#fff;
  color:#344054;
  font-size:12px;
  font-weight:900;
  border:1px solid rgba(60,60,67,0.10);
}
.chat-tool-options button.selected{
  background:#eaf3ff;
  border-color:rgba(0,122,255,0.32);
  color:#007aff;
}
.chat-tool-options button strong,
.chat-tool-options button em{
  display:block;
}
.chat-tool-options button em{
  color:#667085;
  font-size:11px;
  font-style:normal;
  font-weight:850;
}
.chat-tool-summary{
  margin-top:8px;
  color:#667085;
  font-size:11px;
  font-weight:850;
}
.room-home-calendar-card strong,
.room-home-calendar-card span,
.room-home-calendar-card p{
  display:block;
}
.room-home-calendar-card strong{
  color:#101828;
  font-size:16px;
  font-weight:950;
}
.room-home-calendar-card span{
  margin-top:6px;
  color:#007aff;
  font-size:13px;
  font-weight:950;
}
.room-home-calendar-card p{
  margin:8px 0 0;
  color:#475467;
  font-size:13px;
  font-weight:800;
  line-height:1.42;
  white-space:pre-line;
}
.room-home-month-widget{
  padding:14px;
  border-radius:20px;
  background:linear-gradient(180deg,#263553 0%,#12294a 100%);
  color:#dbe7ff;
  box-shadow:0 12px 28px rgba(18,41,74,0.18);
}
.room-home-month-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.room-home-month-head strong{
  color:#f8fbff;
  font-size:18px;
  font-weight:950;
}
.room-home-month-head span{
  flex:0 0 auto;
  border-radius:999px;
  padding:6px 10px;
  background:rgba(255,255,255,0.12);
  color:#eaf3ff;
  font-size:12px;
  font-weight:950;
}
.room-home-month-days,
.room-home-month-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:5px;
}
.room-home-month-days{
  margin-top:13px;
}
.room-home-month-days b{
  color:rgba(234,243,255,0.62);
  font-size:12px;
  font-weight:950;
  text-align:center;
}
.room-home-month-grid{
  margin-top:7px;
}
.room-home-month-grid span.empty{
  min-height:32px;
}
.room-home-month-grid button{
  position:relative;
  min-width:0;
  min-height:32px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:rgba(234,243,255,0.78);
  font-size:14px;
  font-weight:950;
}
.room-home-month-grid button.today{
  color:#fff;
}
.room-home-month-grid button.has-event{
  background:rgba(255,69,58,0.92);
  color:#fff;
  box-shadow:0 0 0 1px rgba(255,255,255,0.08), 0 7px 14px rgba(255,69,58,0.18);
}
.room-home-month-grid button.selected{
  background:#ff453a;
  color:#fff;
  box-shadow:0 0 0 2px rgba(255,255,255,0.2), 0 7px 14px rgba(255,69,58,0.2);
}
.room-home-month-grid button.has-event::after{
  content:none;
  display:none;
}
.room-home-calendar-event{
  margin-top:14px;
  padding:12px;
  border-radius:16px;
  background:rgba(255,255,255,0.10);
  border:1px solid rgba(255,255,255,0.10);
}
.room-home-calendar-event strong,
.room-home-calendar-event span,
.room-home-calendar-event p{
  display:block;
}
.room-home-calendar-event strong{
  color:#fff;
  font-size:15px;
  font-weight:950;
}
.room-home-calendar-event span{
  margin-top:5px;
  color:#bcd3ff;
  font-size:12px;
  font-weight:900;
}
.room-home-calendar-event p{
  margin:7px 0 0;
  color:#eaf3ff;
  font-size:12px;
  font-weight:750;
  line-height:1.42;
  white-space:pre-line;
}
.room-home-section-title{
  margin:13px 2px 7px;
  color:#667085;
  font-size:12px;
  font-weight:950;
}
.room-home-info-list{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  margin-top:10px;
}
.room-home-info-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:11px 12px;
  border-radius:14px;
  background:#f7f8fb;
  color:#101828;
}
.room-home-info-row b{
  flex:0 0 auto;
  color:#667085;
  font-size:12px;
  font-weight:900;
}
.room-home-info-row span,
.room-home-info-row a,
.room-home-info-row button{
  min-width:0;
  color:#101828;
  font-size:13px;
  font-weight:850;
  line-height:1.35;
  text-align:right;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.room-home-info-row a{
  color:#007aff;
  text-decoration:none;
}
.room-home-info-row button{
  border:0;
  background:transparent;
  color:#007aff;
  padding:0;
  cursor:pointer;
}
.room-location-address{
  margin-top:10px;
  padding:13px;
  border-radius:14px;
  background:#f7f8fb;
  color:#101828;
  line-height:1.45;
  font-size:15px;
  font-weight:800;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.room-home-owner{
  min-height:18px;
  margin-top:10px;
  color:#667085;
  font-size:13px;
  font-weight:800;
  text-align:center;
}
.room-location-actions{
  box-sizing:border-box;
  display:block;
  flex:0 0 auto;
  margin-top:0;
  padding:12px 0 max(14px, env(safe-area-inset-bottom));
  border-top:1px solid rgba(60,60,67,0.10);
  background:#fff;
}
.room-location-subactions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-bottom:8px;
}
.room-location-subactions button{
  background:#f3f6fb !important;
  color:#007aff !important;
}
.room-home-chat-actions{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:8px;
}
.room-home-chat-actions:has(> .hide){
  grid-template-columns:minmax(0,1fr);
}
.room-location-actions button{
  width:100%;
  border:0;
  border-radius:14px;
  padding:12px 10px;
  background:#e7654b;
  color:#fff;
  font-size:14px;
  font-weight:900;
}
.room-location-actions button:disabled{
  opacity:.45;
}

.usage-guide-brand{
  min-width:0;
  display:flex;
  align-items:center;
  gap:0;
}
.usage-guide-brand div{
  min-width:0;
}
.usage-guide-brand span{
  display:block;
  margin-top:3px;
  color:#667085;
  font-size:12px;
  font-weight:800;
}

/* =============================
   POPUP / NAV STABILITY
   ============================= */




#bottomNav{
  left:50% !important;
  right:auto !important;
  bottom:8px !important;
  width:calc(100vw - 16px) !important;
  max-width:620px !important;
  min-width:0 !important;
  transform:translateX(-50%) !important;
  box-sizing:border-box !important;
  z-index:120 !important;
}
#chatImageModal{
  z-index:10020 !important;
  touch-action:pan-y pinch-zoom;
}
#chatImageModal img{
  user-select:none;
  -webkit-user-select:none;
}
.chat-image-viewer-btn,
.chat-image-viewer-close{
  touch-action:manipulation;
}

/* Bottom nav restored: one centered bar, no separated buttons. */
#bottomNav{
  left:50% !important;
  right:auto !important;
  bottom:8px !important;
  width:min(620px, calc(100vw - 16px)) !important;
  height:64px !important;
  padding:0 10px !important;
  transform:translateX(-50%) !important;
  background:rgba(255,255,255,0.72) !important;
  border:1px solid rgba(255,255,255,0.76) !important;
  border-radius:22px !important;
  box-shadow:0 16px 36px rgba(15,23,42,0.16), inset 0 1px 0 rgba(255,255,255,0.72) !important;
  backdrop-filter:blur(22px) saturate(1.55) !important;
  -webkit-backdrop-filter:blur(22px) saturate(1.55) !important;
  display:flex !important;
  justify-content:space-around !important;
  align-items:center !important;
  gap:6px !important;
  box-sizing:border-box !important;
  pointer-events:auto;
}
#bottomNav button,
#profileTab{
  flex:1 1 0 !important;
  height:48px !important;
  min-width:0 !important;
  padding:0 8px !important;
  border:0 !important;
  border-radius:16px !important;
  background:transparent !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  color:#111 !important;
  font-size:13px !important;
  font-weight:700 !important;
}

/* Map theme icon image override. */
.theme-orb{
  width:34px !important;
  height:34px !important;
  border-radius:50% !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-size:contain !important;
  box-shadow:0 0 16px rgba(255,198,78,0.42) !important;
}
.theme-sun{
  background-image:url("../assets/map_theme_sun.png") !important;
  background-color:transparent !important;
}
.theme-moon{
  background-image:url("../assets/map_theme_moon.png") !important;
  background-color:transparent !important;
}
.theme-sun::before,
.theme-sun::after,
.theme-moon::before,
.theme-moon::after{
  display:none !important;
}

/* =============================
   20260619 stable glass restore
   ============================= */
#map{
  height:calc(100% - 156px) !important;
}

#bottomNav{
  left:50% !important;
  right:auto !important;
  bottom:8px !important;
  width:min(620px, calc(100vw - 16px)) !important;
  height:64px !important;
  padding:0 10px !important;
  transform:translateX(-50%) !important;
  background:rgba(255,255,255,0.72) !important;
  border:1px solid rgba(255,255,255,0.76) !important;
  border-radius:22px !important;
  box-shadow:0 16px 36px rgba(15,23,42,0.16), inset 0 1px 0 rgba(255,255,255,0.72) !important;
  backdrop-filter:blur(22px) saturate(1.55) !important;
  -webkit-backdrop-filter:blur(22px) saturate(1.55) !important;
  display:flex !important;
  justify-content:space-around !important;
  align-items:center !important;
  gap:6px !important;
  box-sizing:border-box !important;
  z-index:120 !important;
}
#bottomNav button,
#profileTab{
  flex:1 1 0 !important;
  height:48px !important;
  min-width:0 !important;
  padding:0 8px !important;
  border:1px solid rgba(255,255,255,0.18) !important;
  border-radius:16px !important;
  background:linear-gradient(180deg, rgba(255,255,255,0.28), rgba(255,255,255,0.08)) !important;
  color:#111 !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.42), 0 2px 7px rgba(15,23,42,0.04) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  font-size:13px !important;
  font-weight:700 !important;
}
#bottomNav button.active:not(#profileTab){
  color:#007aff !important;
  background:linear-gradient(180deg, rgba(255,255,255,0.48), rgba(255,255,255,0.16)) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.68), 0 4px 10px rgba(10,132,255,0.10) !important;
}
body.filter-sheet-open #bottomNav,
body.official-channel-open #bottomNav{
  display:none !important;
}

#searchBtn,
.catWrap button,
#floatingBtns button,
.chat-filter-section button,
#chatFilterCloseBtn,
#officialChannelAutoBtn,
#officialChannelCloseBtn{
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.62), 0 5px 12px rgba(15,23,42,0.08) !important;
}

#officialChannelModal{
  z-index:260 !important;
  align-items:flex-end !important;
  justify-content:center !important;
  padding:0 !important;
  box-sizing:border-box !important;
}
#officialChannelBox{
  width:min(520px, 100%) !important;
  max-height:calc(100dvh - 18px) !important;
  border-radius:24px 24px 0 0 !important;
  padding:16px 16px calc(22px + env(safe-area-inset-bottom)) !important;
  background:rgba(250,250,252,0.86) !important;
}
#officialChannelList{
  max-height:min(48vh, 380px) !important;
}

.backdrop{
  z-index:220 !important;
}
.sheet{
  z-index:230 !important;
}
#sheetClose,
#bottomSheetClose{
  width:44px !important;
  height:44px !important;
  border-radius:16px !important;
  font-size:18px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}

#chatFilterPanel{
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  width:min(520px, 100vw) !important;
  max-height:min(70vh, 560px) !important;
  margin:0 auto !important;
  padding:12px 16px calc(18px + env(safe-area-inset-bottom)) !important;
  border-radius:24px 24px 0 0 !important;
  background:rgba(250,250,252,0.88) !important;
  border:1px solid rgba(255,255,255,0.72) !important;
  border-bottom:0 !important;
  box-shadow:0 -18px 44px rgba(15,23,42,0.18), inset 0 1px 0 rgba(255,255,255,0.68) !important;
  backdrop-filter:blur(24px) saturate(1.55) !important;
  -webkit-backdrop-filter:blur(24px) saturate(1.55) !important;
  z-index:240 !important;
  overflow:auto !important;
  box-sizing:border-box !important;
}
.chat-filter-head{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  min-height:44px !important;
  margin-bottom:8px !important;
}
#chatFilterCloseBtn{
  border:1px solid rgba(60,60,67,0.10) !important;
  border-radius:14px !important;
  padding:9px 12px !important;
  background:rgba(255,255,255,0.62) !important;
  color:#111 !important;
  font-size:13px !important;
  font-weight:900 !important;
}
body.filter-sheet-open #floatingBtns{
  opacity:0 !important;
  pointer-events:none !important;
  transform:translateY(8px) !important;
}
.chat-filter-section{
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  gap:8px !important;
}





/* =============================
   20260620 MappsTalk marker/nav polish
   ============================= */
#bottomNav{
  background:rgba(255,255,255,0.58) !important;
  border:1px solid rgba(255,255,255,0.82) !important;
  box-shadow:0 18px 42px rgba(15,23,42,0.15), inset 0 1px 0 rgba(255,255,255,0.82) !important;
  backdrop-filter:blur(26px) saturate(1.7) !important;
  -webkit-backdrop-filter:blur(26px) saturate(1.7) !important;
}
#bottomNav button,
#profileTab{
  background:linear-gradient(180deg, rgba(255,255,255,0.34), rgba(255,255,255,0.10)) !important;
  border-color:rgba(255,255,255,0.24) !important;
}
#bottomNav .bottom-tab[data-panel="hot"]{
  color:#ff2d2d !important;
  font-weight:900 !important;
}
#bottomNav .bottom-tab[data-panel="hot"].active{
  color:#e60012 !important;
  background:linear-gradient(180deg, rgba(255,80,80,0.20), rgba(255,255,255,0.12)) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.70), 0 5px 12px rgba(255,45,45,0.16) !important;
}
.contentReactionActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.contentReactionActions button{border:1px solid #dbe3ef;background:#fff;color:#334155;border-radius:10px;padding:8px 11px;font-weight:700}.contentReactionActions button.active{border-color:#ff4d6d;color:#e11d48;background:#fff1f4}.miniRoomRow{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.miniRoomRow .contentReactionActions{margin:0}.miniRoomRow .contentReactionActions [data-content-save]{display:none}
.room-home-reaction-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0;padding:10px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc}.room-home-reaction-actions .contentReactionActions{margin:0}
.room-home-reaction-actions .contentReactionActions{display:grid;width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}.room-home-reaction-actions .contentReactionActions button{width:100%;min-width:0;min-height:42px;padding:8px 5px}
.room-home-reaction-actions.channel-home-reactions .contentReactionActions{grid-template-columns:repeat(2,minmax(0,1fr))}
#roomLocationModal.channel-home .channel-feature-grid>[data-room-home-feature="channelIntro"],#roomLocationModal.channel-home .channel-pop-intro-card{min-height:136px}
.profile-user-reaction-actions{display:flex;gap:9px;margin:12px 0;flex-wrap:wrap}.profile-user-reaction-actions button{flex:1;min-width:130px;border:1px solid #dbe3ef;background:#fff;border-radius:12px;padding:11px;font-weight:800;color:#334155}.profile-user-reaction-actions button.active{border-color:#fb7185;background:#fff1f2;color:#e11d48}

.room-label{
  --room-accent:#2878d8;
  min-height:30px !important;
  max-width:176px !important;
  padding:7px 13px 8px !important;
  border-radius:10px !important;
  background:#fffefa !important;
  color:#111 !important;
  border:1.25px solid #151515 !important;
  box-shadow:1px 0 0 rgba(0,0,0,.88), -1px 1px 0 rgba(0,0,0,.58), 0 8px 16px rgba(15,23,42,0.14) !important;
  font-size:14px !important;
  font-weight:900 !important;
  line-height:1.15 !important;
}
.room-label::after{
  content:"" !important;
  position:absolute !important;
  left:17px !important;
  bottom:-10px !important;
  width:18px !important;
  height:14px !important;
  background:#fffefa !important;
  border-left:1.4px solid #151515 !important;
  border-bottom:1.4px solid #151515 !important;
  transform:skew(-22deg) !important;
  clip-path:polygon(0 0, 100% 0, 0 100%) !important;
}
.room-label::before{
  pointer-events:none !important;
}
.room-label-open,
.room-label-private,
.room-label-official{
  background:#fffefa !important;
  border-color:#151515 !important;
  color:#111 !important;
}
.room-label-open,
.room-label-private{
  --room-accent:#2878d8;
  box-shadow:0 8px 16px rgba(15,23,42,0.14), inset 0 -3px 0 rgba(40,120,216,0.46) !important;
}
.room-label-open::before,
.room-label-private::before{
  content:"\270B" !important;
  position:absolute !important;
  left:-9px !important;
  top:-17px !important;
  font-size:20px !important;
  line-height:1 !important;
  transform:rotate(-12deg) !important;
  filter:drop-shadow(0 1px 0 #151515) !important;
}
.room-label-open::after,
.room-label-private::after{
  box-shadow:23px -1px 0 -8px var(--room-accent) !important;
}
.room-label-official{
  --room-accent:#f0a400;
  box-shadow:0 8px 16px rgba(15,23,42,0.14), inset 0 -3px 0 rgba(240,164,0,0.52) !important;
}
.room-label-official::before{
  content:"" !important;
  position:absolute !important;
  left:-10px !important;
  top:-15px !important;
  width:17px !important;
  height:17px !important;
  border-radius:50% 50% 50% 0 !important;
  background:radial-gradient(circle at 50% 50%, #fff 0 3px, #151515 3.4px 4.4px, #ef3b2d 4.8px 100%) !important;
  border:2px solid #151515 !important;
  transform:rotate(-45deg) !important;
  box-shadow:0 2px 5px rgba(15,23,42,0.16) !important;
}
.room-label-official::after{
  box-shadow:23px -1px 0 -8px var(--room-accent) !important;
}


/* =============================
   20260620 centered marker tail / type help
   ============================= */
#chatFilterPanel{
  height:auto !important;
  display:flex !important;
  flex-direction:column !important;
}
#chatFilterPanel.hide{
  display:none !important;
}
.chat-filter-section.active{
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
  align-content:start !important;
  padding-right:2px !important;
}

.room-label::after,
.room-label-open::after,
.room-label-private::after,
.room-label-official::after{
  content:"" !important;
  position:absolute !important;
  left:50% !important;
  bottom:-7px !important;
  width:14px !important;
  height:14px !important;
  background:#fffefa !important;
  border:0 !important;
  border-right:1.25px solid #151515 !important;
  border-bottom:1.25px solid #151515 !important;
  border-radius:1px !important;
  transform:translateX(-50%) rotate(45deg) !important;
  clip-path:none !important;
  filter:none !important;
  box-shadow:2px 2px 0 rgba(0,0,0,.10) !important;
}
.room-label-open::before{
  content:"\1F44B" !important;
  font-size:15px !important;
  left:7px !important;
  top:7px !important;
  transform:rotate(-10deg) !important;
  filter:saturate(.62) brightness(1.08) drop-shadow(0 1px 0 #151515) !important;
  opacity:.88 !important;
  z-index:2 !important;
}
.room-label-private::before{
  content:"\1F512" !important;
  font-size:14px !important;
  left:8px !important;
  top:7px !important;
  transform:rotate(-6deg) !important;
  filter:grayscale(1) brightness(.76) contrast(1.18) drop-shadow(0 1px 0 #151515) !important;
  opacity:.94 !important;
  z-index:2 !important;
}
.room-label-open{
  --room-accent:#f0a400;
  padding-left:31px !important;
  box-shadow:1px 0 0 rgba(0,0,0,.88), -1px 1px 0 rgba(0,0,0,.58), 0 8px 16px rgba(15,23,42,0.14), inset 0 -3px 0 rgba(240,164,0,0.42) !important;
}
.room-label-private{
  --room-accent:#7b6dff;
  padding-left:31px !important;
  box-shadow:1px 0 0 rgba(0,0,0,.88), -1px 1px 0 rgba(0,0,0,.58), 0 8px 16px rgba(15,23,42,0.14), inset 0 -3px 0 rgba(123,109,255,0.28) !important;
}
.room-label-official{
  --room-accent:#ef3b2d;
  padding-left:31px !important;
  box-shadow:1px 0 0 rgba(0,0,0,.88), -1px 1px 0 rgba(0,0,0,.58), 0 8px 16px rgba(15,23,42,0.14), inset 0 -3px 0 rgba(239,59,45,0.46) !important;
}
.room-label-official::before{
  left:8px !important;
  top:7px !important;
  width:12px !important;
  height:12px !important;
  border-width:1.7px !important;
  transform:rotate(-45deg) !important;
  box-shadow:0 1px 3px rgba(15,23,42,0.18) !important;
  z-index:2 !important;
}

.room-create-type-help{
  margin-top:8px;
  display:grid;
  gap:6px;
}
.room-create-type-help div{
  padding:10px 12px;
  border-radius:13px;
  background:rgba(60,60,67,0.055);
  border:1px solid rgba(60,60,67,0.08);
}
.room-create-type-help strong{
  display:block;
  font-size:13px;
  color:#111;
}
.room-create-type-help span{
  display:block;
  margin-top:3px;
  font-size:12px;
  line-height:1.35;
  color:rgba(60,60,67,0.62);
}
.room-create-inquiry-btn{
  width:100%;
  margin-top:8px;
  padding:11px 12px;
  border:1px dashed rgba(0,122,255,0.35);
  border-radius:14px;
  background:rgba(0,122,255,0.08);
  color:#0068d9;
  font-size:13px;
  font-weight:900;
}
.room-type-btn{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  text-align:left;
  line-height:1.2;
}
.room-type-btn strong{
  font-size:16px;
}
.room-type-btn span{
  font-size:12px;
  font-weight:700;
  opacity:.68;
}
.policyOpenChatBtn{
  display:block;
  margin-top:12px;
  padding:12px 14px;
  border-radius:14px;
  background:#fee500;
  color:#111;
  font-size:14px;
  font-weight:900;
  text-align:center;
  text-decoration:none;
}
.policyOpenChatBtn.neutral{border:0;background:#eef2f7;color:#334155;}
.policyOpenChatBtn.danger{width:100%;border:0;background:#fff0f1;color:#d92d43;}
.supportCenter{display:grid;gap:14px;}
.supportCenter section{padding:14px;border:1px solid #e2e8f0;border-radius:16px;background:#f8fafc;}
.supportCenter section>strong{font-size:16px;}
.supportCenter section>p{margin:6px 0 12px;color:#64748b;font-size:12px;line-height:1.5;}
.supportQuickQuestions{display:flex;flex-wrap:wrap;gap:6px;}
.supportQuickQuestions button{border:0;border-radius:999px;padding:8px 10px;background:#e8f1ff;color:#1769e0;font-weight:850;}
#supportAiForm{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:10px;}
#supportAiForm input,.supportHuman select,.supportHuman textarea{width:100%;box-sizing:border-box;border:1px solid #d8e0ea;border-radius:11px;padding:11px;background:#fff;font:inherit;}
#supportAiForm button{border:0;border-radius:11px;padding:0 14px;background:#111;color:#fff;font-weight:900;}
.supportAiAnswer{margin-top:9px;padding:11px;border-radius:11px;background:#fff;color:#334155;font-size:13px;line-height:1.55;}
.supportHuman{display:grid;gap:8px;}
.supportHuman .policyOpenChatBtn{margin-top:2px;border:0;background:#e7654b;color:#fff;}
.aiPlanLoading,.aiPlanError{padding:18px;border-radius:14px;background:#f8fafc;color:#475569;text-align:center;font-weight:800;}
.aiPlanError{background:#fff1f2;color:#be123c;}
.aiPlanGrid .aiPlanDays{grid-column:1/-1;}
.aiPlanGrid em{color:#1769e0;font-style:normal;font-weight:800;}

/* =============================
   20260620 fixed SVG map bubbles
   ============================= */
.room-label,
.room-label-open,
.room-label-private,
.room-label-official{
  width:204px !important;
  height:68px !important;
  min-height:0 !important;
  max-width:204px !important;
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:10px 20px 18px 46px !important;
  border:0 !important;
  border-radius:0 !important;
  background-color:transparent !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 210 72'%3E%3Cpath d='M18 8H192Q202 8 202 18V44Q202 54 192 54H112L105 67L98 54H18Q8 54 8 44V18Q8 8 18 8Z' fill='%23fffefa' stroke='%23151515' stroke-width='1.7' stroke-linejoin='round'/%3E%3Cpath d='M21 9C61 6 116 10 151 8C176 7 194 10 200 17' fill='none' stroke='%23151515' stroke-width='.9' stroke-linecap='round' opacity='.55'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-size:100% 100% !important;
  color:#111 !important;
  font-size:13px !important;
  font-weight:900 !important;
  line-height:1.16 !important;
  letter-spacing:0 !important;
  text-align:center !important;
  white-space:normal !important;
  word-break:keep-all !important;
  overflow-wrap:anywhere !important;
  overflow:visible !important;
  text-shadow:none !important;
  box-shadow:none !important;
}
.room-label::before,
.room-label-open::before,
.room-label-private::before,
.room-label-official::before{
  content:"" !important;
  position:absolute !important;
  left:10px !important;
  top:5px !important;
  width:30px !important;
  height:30px !important;
  border:0 !important;
  border-radius:0 !important;
  background-color:transparent !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-size:contain !important;
  transform:none !important;
  filter:drop-shadow(0 1px 0 rgba(21,21,21,.75)) !important;
  opacity:1 !important;
  pointer-events:none !important;
  z-index:2 !important;
}
.room-label::after,
.room-label-open::after,
.room-label-private::after,
.room-label-official::after{
  content:"" !important;
  position:absolute !important;
  left:54px !important;
  right:24px !important;
  bottom:16px !important;
  width:auto !important;
  height:3px !important;
  background:var(--room-accent) !important;
  border:0 !important;
  border-radius:999px !important;
  transform:none !important;
  clip-path:polygon(0 35%, 72% 0, 100% 42%, 72% 100%, 0 70%) !important;
  filter:none !important;
  box-shadow:none !important;
  opacity:.78 !important;
  pointer-events:none !important;
}
.room-label-open{
  --room-accent:#f0a400 !important;
}
.room-label-open::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M10 25C7 23 6 20 6 16V9c0-1.3 1-2.3 2.2-2.3S10.4 7.7 10.4 9v6.1V6.4c0-1.3 1-2.3 2.2-2.3s2.2 1 2.2 2.3v8.4V7.1c0-1.3 1-2.3 2.2-2.3s2.2 1 2.2 2.3v8l1.6-2.4c.7-1 2.1-1.3 3.1-.6 1 .7 1.3 2 .7 3.1l-3 5.5C19.7 24.4 17 26 13 26h-1.2c-.7 0-1.3-.2-1.8-.6Z' fill='%23ffe47a' stroke='%23151515' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M24 7c1.6.8 2.6 2 3 3.7M25 3c2.2.9 3.7 2.4 4.5 4.5' fill='none' stroke='%23151515' stroke-width='1.4' stroke-linecap='round' opacity='.8'/%3E%3C/svg%3E") !important;
}
.room-label-private::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect x='7' y='14' width='18' height='13' rx='3.2' fill='%2394969c' stroke='%23151515' stroke-width='1.8'/%3E%3Cpath d='M11 14v-3.2C11 7.5 13.2 5 16 5s5 2.5 5 5.8V14' fill='none' stroke='%23151515' stroke-width='2' stroke-linecap='round'/%3E%3Ccircle cx='16' cy='20.5' r='1.6' fill='%23151515'/%3E%3Cpath d='M16 22v2.4' stroke='%23151515' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") !important;
}
.room-label-official{
  --room-accent:#ef3b2d !important;
}
.room-label-official::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 29C10.6 21.9 7.4 16.8 7.4 12.6 7.4 7.8 11.2 4 16 4s8.6 3.8 8.6 8.6c0 4.2-3.2 9.3-8.6 16.4Z' fill='%23ef3b2d' stroke='%23151515' stroke-width='1.8' stroke-linejoin='round'/%3E%3Ccircle cx='16' cy='12.4' r='3.6' fill='%23fffefa' stroke='%23151515' stroke-width='1.5'/%3E%3C/svg%3E") !important;
}

/* =============================
   20260620 sketch map bubbles
   ============================= */
.room-label,
.room-label-open,
.room-label-private,
.room-label-official{
  width:216px !important;
  height:82px !important;
  min-height:0 !important;
  max-width:216px !important;
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:17px 22px 24px 56px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 84'%3E%3Cpath d='M43 18H198C207 18 212 23 212 32V51C212 59 207 64 198 64H75L48 78L53 64H42C34 64 28 58 28 50V32C28 24 34 18 43 18Z' fill='%23fffefa' stroke='%23151515' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M44 17C82 15 132 20 197 18' fill='none' stroke='%23151515' stroke-width='1' stroke-linecap='round' opacity='.65'/%3E%3Cpath d='M31 31C28 39 29 50 31 56' fill='none' stroke='%23151515' stroke-width='.9' stroke-linecap='round' opacity='.6'/%3E%3Cpath d='M74 65C112 63 158 66 196 64' fill='none' stroke='%23151515' stroke-width='.85' stroke-linecap='round' opacity='.42'/%3E%3Cpath d='M49 77C53 71 56 67 61 64' fill='none' stroke='%23151515' stroke-width='.9' stroke-linecap='round' opacity='.5'/%3E%3C/svg%3E") center/100% 100% no-repeat !important;
  color:#111 !important;
  font-size:15px !important;
  font-weight:900 !important;
  line-height:1.12 !important;
  letter-spacing:0 !important;
  text-align:center !important;
  white-space:normal !important;
  word-break:keep-all !important;
  overflow-wrap:anywhere !important;
  overflow:visible !important;
  text-shadow:0 1px 0 rgba(255,255,255,.85) !important;
  box-shadow:none !important;
}
.room-label::before,
.room-label-open::before,
.room-label-private::before,
.room-label-official::before{
  content:"" !important;
  position:absolute !important;
  left:4px !important;
  top:2px !important;
  width:40px !important;
  height:40px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent none center/contain no-repeat !important;
  transform:none !important;
  clip-path:none !important;
  filter:drop-shadow(0 1px 0 rgba(21,21,21,.82)) !important;
  opacity:1 !important;
  pointer-events:none !important;
  z-index:3 !important;
}
.room-label::after,
.room-label-open::after,
.room-label-private::after,
.room-label-official::after{
  content:"" !important;
  position:absolute !important;
  left:82px !important;
  right:28px !important;
  bottom:14px !important;
  width:auto !important;
  height:5px !important;
  background:var(--room-accent) !important;
  border:0 !important;
  border-radius:999px !important;
  transform:rotate(-1deg) !important;
  clip-path:polygon(0 45%, 15% 15%, 72% 35%, 100% 0, 92% 70%, 44% 100%, 8% 80%) !important;
  filter:none !important;
  box-shadow:0 2px 0 rgba(21,21,21,.10) !important;
  opacity:.86 !important;
  pointer-events:none !important;
  z-index:1 !important;
}
.room-label-open{
  --room-accent:#2f7ec8 !important;
}
.room-label-open::before{
  left:8px !important;
  top:3px !important;
  width:39px !important;
  height:39px !important;
  background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 42'%3E%3Cpath d='M14 33C10 30 9 26 9 21V12c0-1.7 1.2-2.9 2.8-2.9s2.8 1.2 2.8 2.9v8.2V8.8c0-1.7 1.3-3 2.9-3s2.9 1.3 2.9 3v10.9V9.8c0-1.7 1.3-3 2.9-3s2.9 1.3 2.9 3v10.4l1.7-2.9c.9-1.5 2.7-2 4.1-1.2s1.9 2.7 1.1 4.1l-3.7 6.4C27.7 31 24.2 34 18.7 34H16c-.7 0-1.4-.3-2-.7Z' fill='%23ffe680' stroke='%23151515' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M33 10c1.5.8 2.7 2 3.3 3.7M34 5c2.3 1 4 2.6 5 4.9' fill='none' stroke='%23151515' stroke-width='1.7' stroke-linecap='round' opacity='.82'/%3E%3C/svg%3E") center/contain no-repeat !important;
}
.room-label-private{
  --room-accent:#7b6dff !important;
}
.room-label-private::before{
  left:8px !important;
  top:4px !important;
  width:36px !important;
  height:36px !important;
  background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Crect x='9' y='17' width='22' height='16' rx='4' fill='%2394969c' stroke='%23151515' stroke-width='2.2'/%3E%3Cpath d='M14 17v-4C14 8.8 16.5 6 20 6s6 2.8 6 7v4' fill='none' stroke='%23151515' stroke-width='2.4' stroke-linecap='round'/%3E%3Ccircle cx='20' cy='24.5' r='1.8' fill='%23151515'/%3E%3Cpath d='M20 26.4v2.9' stroke='%23151515' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat !important;
}
.room-label-official{
  --room-accent:#f0a400 !important;
}
.room-label-official::before{
  left:1px !important;
  top:0 !important;
  width:45px !important;
  height:45px !important;
  background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 46'%3E%3Cpath d='M23 41C15.5 31.5 11 24.7 11 18.7 11 12 16.4 6.8 23 6.8S35 12 35 18.7c0 6-4.5 12.8-12 22.3Z' fill='%23ef5a4d' stroke='%23151515' stroke-width='2.3' stroke-linejoin='round'/%3E%3Ccircle cx='23' cy='18.4' r='5.3' fill='%23fffefa' stroke='%23151515' stroke-width='1.9'/%3E%3Cpath d='M36 15c1.6.8 2.8 2 3.5 3.5M38 11c1.7.6 3 1.6 4 3' fill='none' stroke='%23151515' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat !important;
}

/* =============================
   20260620 sketch bubble refine
   ============================= */
.room-label,
.room-label-open,
.room-label-private,
.room-label-official{
  width:208px !important;
  height:76px !important;
  max-width:208px !important;
  padding:22px 25px 25px 45px !important;
  align-items:center !important;
  justify-content:center !important;
  background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 210 76'%3E%3Cpath d='M37 20H190C198 20 203 25 203 33V49C203 57 198 61 190 61H73L45 72L51 61H38C30 61 25 56 25 48V33C25 25 30 20 37 20Z' fill='%23fffefa' stroke='%23151515' stroke-width='1.9' stroke-linejoin='round'/%3E%3Cpath d='M38 19C72 17 122 21 190 20' fill='none' stroke='%23151515' stroke-width='1.05' stroke-linecap='round' opacity='.72'/%3E%3Cpath d='M27 31C25 38 26 48 28 55' fill='none' stroke='%23151515' stroke-width='.9' stroke-linecap='round' opacity='.58'/%3E%3Cpath d='M74 62C115 60 151 63 188 61' fill='none' stroke='%23151515' stroke-width='.82' stroke-linecap='round' opacity='.48'/%3E%3Cpath d='M45 72C49 67 53 64 59 61' fill='none' stroke='%23151515' stroke-width='.95' stroke-linecap='round' opacity='.55'/%3E%3C/svg%3E") center/100% 100% no-repeat !important;
  background-color:transparent !important;
  font-size:15px !important;
  line-height:1.1 !important;
  overflow:visible !important;
}
.room-label::before,
.room-label-open::before,
.room-label-private::before,
.room-label-official::before{
  left:20px !important;
  top:2px !important;
  width:42px !important;
  height:42px !important;
  background-color:transparent !important;
  z-index:4 !important;
}
.room-label::after,
.room-label-open::after,
.room-label-private::after,
.room-label-official::after{
  left:86px !important;
  right:36px !important;
  bottom:21px !important;
  height:5px !important;
  transform:rotate(-1deg) !important;
  clip-path:polygon(0 44%, 16% 18%, 58% 36%, 100% 12%, 88% 72%, 45% 100%, 8% 78%) !important;
  opacity:.86 !important;
  z-index:2 !important;
}
.room-label-open::before{
  left:22px !important;
  top:3px !important;
  width:39px !important;
  height:39px !important;
}
.room-label-private::before{
  left:23px !important;
  top:4px !important;
  width:36px !important;
  height:36px !important;
}
.room-label-official::before{
  left:17px !important;
  top:0 !important;
  width:46px !important;
  height:46px !important;
}
.room-label-open::before{
  background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 44'%3E%3Cpath d='M15 35C11.2 32.1 9.5 28.4 9.5 23.8v-7.1c0-1.5 1.1-2.7 2.6-2.7 1.4 0 2.6 1.2 2.6 2.7v5.1V11.7c0-1.6 1.2-2.8 2.8-2.8s2.8 1.2 2.8 2.8v9.8V10.8c0-1.6 1.2-2.8 2.8-2.8 1.5 0 2.8 1.2 2.8 2.8v10.8V13c0-1.5 1.1-2.7 2.6-2.7s2.6 1.2 2.6 2.7v10.4l1.6-2.6c.8-1.4 2.5-1.9 3.8-1.1 1.3.8 1.8 2.5 1 3.9l-3.7 6.1C31.1 34.2 27.1 37 21.4 37h-3.7c-1 0-1.9-.3-2.7-1Z' fill='%23fffefa' stroke='%23151515' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M34.5 8.2c1.7.7 2.9 1.8 3.7 3.4M36 4.5c2.1.8 3.7 2.2 4.8 4.2' fill='none' stroke='%232f7ec8' stroke-width='2.1' stroke-linecap='round'/%3E%3Cpath d='M9.8 25.8C7.8 24.7 6.5 23.2 6 21.2M10.2 30c-2.1-.5-3.8-1.5-5-3.1' fill='none' stroke='%23151515' stroke-width='1.7' stroke-linecap='round' opacity='.78'/%3E%3C/svg%3E") center/contain no-repeat !important;
}

/* =============================
   20260620 restore stable map labels
   ============================= */
.map-room-label-overlay{
  display:none !important;
}
.room-label,
.room-label-open,
.room-label-private,
.room-label-official{
  --room-accent:#2878d8;
  position:relative !important;
  width:auto !important;
  height:auto !important;
  min-height:24px !important;
  max-width:150px !important;
  box-sizing:border-box !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:5px 10px 6px 30px !important;
  border:1.1px solid #151515 !important;
  border-radius:8px !important;
  background:#fffefa !important;
  color:#111 !important;
  font-size:13px !important;
  font-weight:900 !important;
  line-height:1.05 !important;
  letter-spacing:0 !important;
  text-align:center !important;
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  text-shadow:0 1px 0 rgba(255,255,255,.75) !important;
  box-shadow:1px 0 0 rgba(0,0,0,.88), -1px 1px 0 rgba(0,0,0,.58), 0 8px 16px rgba(15,23,42,.14), inset 0 -3px 0 rgba(40,120,216,.34) !important;
}
.room-label::before,
.room-label-open::before,
.room-label-private::before,
.room-label-official::before{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  left:7px !important;
  top:50% !important;
  width:18px !important;
  height:18px !important;
  background-color:transparent !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-size:contain !important;
  transform:translateY(-50%) !important;
  pointer-events:none !important;
}
.room-label::after,
.room-label-open::after,
.room-label-private::after,
.room-label-official::after{
  content:"" !important;
  position:absolute !important;
  left:50% !important;
  bottom:-4px !important;
  width:7px !important;
  height:7px !important;
  background:#fffefa !important;
  border:0 !important;
  border-right:1px solid #151515 !important;
  border-bottom:1px solid #151515 !important;
  border-radius:1px !important;
  transform:translateX(-50%) rotate(45deg) !important;
  clip-path:none !important;
  filter:none !important;
  box-shadow:1px 1px 0 rgba(0,0,0,.06) !important;
  opacity:1 !important;
  pointer-events:none !important;
}
.room-label-open{
  --room-accent:#2878d8 !important;
  box-shadow:1px 0 0 rgba(0,0,0,.88), -1px 1px 0 rgba(0,0,0,.58), 0 8px 16px rgba(15,23,42,.14), inset 0 -3px 0 rgba(40,120,216,.34) !important;
}
.room-label-open::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M9.5 25.5c-2.2-2-3.1-4.4-3.1-7.3v-4.5c0-1.1.8-1.9 1.9-1.9s1.9.8 1.9 1.9v3.6V9.4c0-1.1.8-2 2-2s2 .9 2 2v7.4V8.8c0-1.1.8-2 2-2s2 .9 2 2v8.1V10.5c0-1.1.8-1.9 1.9-1.9s1.9.8 1.9 1.9v7.6l1-1.6c.6-1 1.8-1.3 2.8-.7.9.6 1.2 1.8.6 2.8l-2.5 4.1c-1.8 3.1-4.8 5-8.8 5h-2.7c-.8 0-1.5-.2-2.1-.7Z' fill='%23fffefa' stroke='%23151515' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M24.9 8c1.2.5 2.1 1.3 2.7 2.5M25.8 5.2c1.6.6 2.8 1.6 3.6 3.1' fill='none' stroke='%232878d8' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") !important;
}
.room-label-private{
  --room-accent:#7b6dff !important;
  box-shadow:1px 0 0 rgba(0,0,0,.88), -1px 1px 0 rgba(0,0,0,.58), 0 8px 16px rgba(15,23,42,.14), inset 0 -3px 0 rgba(123,109,255,.30) !important;
}
.room-label-private::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect x='7.5' y='14' width='17' height='12' rx='3' fill='%239b9ca3' stroke='%23151515' stroke-width='1.8'/%3E%3Cpath d='M11 14v-3c0-3.2 2-5.3 5-5.3s5 2.1 5 5.3v3' fill='none' stroke='%23151515' stroke-width='2' stroke-linecap='round'/%3E%3Ccircle cx='16' cy='20' r='1.4' fill='%23151515'/%3E%3Cpath d='M16 21.5v2.1' stroke='%23151515' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") !important;
}
.room-label-official{
  --room-accent:#ef3b2d !important;
  box-shadow:1px 0 0 rgba(0,0,0,.88), -1px 1px 0 rgba(0,0,0,.58), 0 8px 16px rgba(15,23,42,.14), inset 0 -3px 0 rgba(239,59,45,.40) !important;
}
.room-label-official::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 29C10.4 21.8 7 16.8 7 12.3 7 7.4 11 3.6 16 3.6s9 3.8 9 8.7c0 4.5-3.4 9.5-9 16.7Z' fill='%23ef3b2d' stroke='%23151515' stroke-width='1.8' stroke-linejoin='round'/%3E%3Ccircle cx='16' cy='12.2' r='3.7' fill='%23fffefa' stroke='%23151515' stroke-width='1.4'/%3E%3C/svg%3E") !important;
}

.map-night-mode .room-label,
.map-night-mode .room-label-open,
.map-night-mode .room-label-private,
.map-night-mode .room-label-official{
  background:#fffefa !important;
  color:#111 !important;
  text-shadow:0 1px 0 rgba(255,255,255,.75) !important;
}
.map-night-mode .room-label::after,
.map-night-mode .room-label-open::after,
.map-night-mode .room-label-private::after,
.map-night-mode .room-label-official::after{
  background:#fffefa !important;
}

/* =============================
   20260620 small image map labels
   ============================= */
.room-label,
.room-label-open,
.room-label-private,
.room-label-official{
  position:relative !important;
  width:178px !important;height:66px !important;min-width:178px !important;max-width:178px !important;min-height:66px !important;
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  padding:7px 10px 7px 58px !important;
  border:2px solid var(--room-bubble-color,#20b26b) !important;
  border-radius:18px !important;
  background:#fff !important;
  color:#111 !important;
  font-size:12px !important;font-weight:800 !important;line-height:15px !important;
  letter-spacing:0 !important;
  text-align:left !important;
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow:visible !important;
  text-overflow:ellipsis !important;
  text-shadow:none !important;box-shadow:0 4px 12px rgba(23,42,75,.2) !important;
}
.room-label::before,
.room-label-open::before,
.room-label-private::before,
.room-label-official::before{
  content:none !important;
  display:none !important;
}
.room-label::after,
.room-label-open::after,
.room-label-private::after,
.room-label-official::after{
  content:none !important;
  display:none !important;
}
.room-theme-travel{--room-bubble-color:#f04452}
.room-theme-meetup,.room-theme-purple{--room-bubble-color:#8b5cf6}
.room-theme-facility{--room-bubble-color:#87909e}
.room-theme-place,.room-theme-teal{--room-bubble-color:#12aeb3}
.room-theme-etc{--room-bubble-color:#e5ad00}
.room-theme-private{--room-bubble-color:#172554}
.room-theme-green{--room-bubble-color:#20a464}
.room-theme-blue{--room-bubble-color:#2176ff}
.room-theme-red{--room-bubble-color:#f04452}
.room-theme-orange{--room-bubble-color:#f28b22}
.room-theme-rainbow{border-color:transparent!important;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(90deg,#ff4d67,#ff9f1c,#f5d90a,#20b26b,#2176ff,#8b5cf6) border-box!important;--room-bubble-color:#7c3aed}
.roomBubbleAvatar{position:absolute;left:8px;top:9px;width:46px;height:46px;border:2px solid var(--room-bubble-color);border-radius:50%;box-sizing:border-box;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#eef5ff;color:var(--room-bubble-color);font-size:18px;font-weight:950}
.roomBubbleAvatar img{width:100%!important;height:100%!important;object-fit:cover!important}
.roomBubbleCopy{min-width:0;width:100%;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;text-align:left}
.roomBubbleCopy strong,.roomBubbleCopy>span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.roomBubbleCopy strong{color:var(--room-bubble-color);font-size:11px;line-height:14px}.roomBubbleCopy>span{color:#172033;font-size:12px;line-height:16px}
.roomBubbleCopy small{align-self:flex-end;color:#98a2b3;font-size:9px;line-height:11px}
.room-bubble-right{padding:7px 58px 7px 10px!important}.room-bubble-right .roomBubbleAvatar{left:auto;right:8px}
.roomBubbleAvatarLock{background:#172554;color:#fff;border-color:#172554;font-size:19px}
.map-night-mode .room-label,
.map-night-mode .room-label-open,
.map-night-mode .room-label-private,
.map-night-mode .room-label-official{
  background:#fff !important;color:#111 !important;
}
.map-night-mode .room-label.room-theme-rainbow{
  border-color:transparent!important;
  background:linear-gradient(#fff,#fff) padding-box,linear-gradient(90deg,#ff4d67,#ff9f1c,#f5d90a,#20b26b,#2176ff,#8b5cf6) border-box!important;
}



/* triptalk v7 stabilization: official popup only, map label PNGs untouched */






/* v14: keep map popup anchored so the marker position does not dip during open/close */




/* v1: chat avatars sit on the bubble tail, not beside the sender name */
.chat-message-row.mine,
.chat-message-row.theirs{
  align-items:flex-end !important;
}
.chat-message-row.theirs{
  gap:6px !important;
}
.chat-message-row.mine{
  gap:6px !important;
}
.chat-avatar-btn{
  width:32px !important;
  height:32px !important;
  align-self:flex-end !important;
  margin-bottom:0 !important;
  box-shadow:0 2px 8px rgba(15,23,42,0.12) !important;
}
.chat-sender-name{
  margin:0 0 3px 2px !important;
  line-height:1.15 !important;
}
.chat-message-row.mine .chat-sender-name{
  margin:0 2px 3px 0 !important;
}
.chat-message-row.theirs .chat-bubble:not(.image-bubble)::after{
  left:-5px !important;
  bottom:3px !important;
}
.chat-message-row.mine .chat-bubble:not(.image-bubble)::after{
  right:-5px !important;
  bottom:3px !important;
}
.chat-message-row.theirs .chat-stack{
  max-width:calc(100% - 44px) !important;
}
.chat-message-row.mine .chat-stack{
  max-width:calc(100% - 44px) !important;
}

/* v1: map popup fades in without scale/translate movement */



/* v3: large notice editor */
.room-notice-editor-sheet{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(15,23,42,0.34);
  box-sizing:border-box;
}
.room-notice-editor-sheet.hide{
  display:none;
}
.room-notice-editor-box{
  width:min(520px, 100%);
  max-height:min(78vh, 640px);
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:16px;
  border-radius:18px;
  background:#fff;
  box-shadow:0 18px 40px rgba(15,23,42,0.22);
  box-sizing:border-box;
}
.room-notice-editor-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.room-notice-editor-head strong{
  font-size:18px;
  font-weight:950;
}
.room-notice-editor-head button{
  border:0;
  border-radius:999px;
  padding:8px 11px;
  background:rgba(60,60,67,0.1);
  color:#111;
  font-weight:900;
}
.room-notice-editor-box textarea{
  width:100%;
  min-height:260px;
  max-height:48vh;
  box-sizing:border-box;
  padding:13px;
  border:1px solid rgba(60,60,67,0.16);
  border-radius:14px;
  background:#f8f9fb;
  color:#111;
  font:800 15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  resize:vertical;
}
.room-notice-editor-actions{
  display:flex;
  gap:10px;
}
.room-notice-editor-actions button{
  flex:1;
  border:0;
  border-radius:13px;
  padding:12px;
  font-weight:950;
}
.room-notice-editor-actions [data-notice-clear]{
  background:rgba(255,59,48,0.12);
  color:#b42318;
}
.room-notice-editor-actions [data-notice-save]{
  background:#e7654b;
  color:#fff;
}

/* v2.6: 내 채팅과 상대 채팅 모두 말풍선 꼬리를 사용하지 않습니다. */
.chat-message-row.mine .chat-bubble:not(.image-bubble)::after,
.chat-message-row.theirs .chat-bubble:not(.image-bubble)::after{
  content:none !important;
  display:none !important;
}
.chat-message-row.theirs .chat-avatar-btn{
  margin-right:0 !important;
  transform:none !important;
}
.chat-message-row.mine .chat-avatar-btn{
  margin-left:0 !important;
  transform:none !important;
}

/* v2.9: canonical official popup geometry */



.profileTripComposeBar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:2px 0 12px;
}
.profileTripComposeBar span{
  min-width:0;
  flex:1 1 auto;
  color:#7b8798;
  font-size:11px;
  line-height:1.4;
}
.profileTripComposeBar button{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  padding:0;
  border-radius:50%;
  font-size:23px;
  line-height:1;
}
#profilePanel.show #profileContent,
#profilePanel.show .snsProfileTabs,
#profilePanel.show .snsProfileTabs button,
#profilePanel.show .snsProfilePane,
#profilePanel.show .snsProfilePane button{
  pointer-events:auto !important;
}

/* b16 profile portfolio: identity, gallery, compact monochrome navigation */
#profilePanel{
  background:#f8f9fb!important;
  transition:top .2s ease-out,transform .22s ease-out!important;
}
#profileHeader.profileSheetHandle{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:30px!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  background:#fff!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  touch-action:none;
  cursor:grab;
}
#profileHeader.profileSheetHandle:active{cursor:grabbing}
#profileHeader.profileSheetHandle>span{
  display:block;width:52px;height:5px;border-radius:999px;background:#c6c7cb;
}
.profilePageTitleHidden{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
#profileContent{
  position:relative!important;
  padding:10px 14px calc(88px + env(safe-area-inset-bottom))!important;
  background:#f8f9fb!important;
}
.snsProfileHero{margin:0 -14px;padding:16px 18px 18px!important;background:#fff;border-bottom:1px solid #eceff3}
.profileLegacyStats{display:none!important}
#profilePageLogout.profileHelpLogout{position:static!important;width:100%!important;margin:0!important;padding:10px!important;border:1px solid #fee2e2!important;border-radius:12px!important;background:#fff7f7!important;color:#dc2626!important;font-size:13px!important}
.snsProfileTabs:not(.hide){
  position:fixed!important;
  left:50%!important;right:auto!important;bottom:max(24px,calc(16px + env(safe-area-inset-bottom)))!important;top:auto!important;
  width:min(650px,calc(100vw - 20px))!important;min-height:76px!important;box-sizing:border-box!important;transform:translateX(-50%)!important;
  z-index:5!important;display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:2px!important;
  margin:0!important;padding:7px 8px!important;border:1px solid rgba(15,23,42,.08)!important;border-radius:22px!important;
  background:rgba(250,250,251,.94)!important;box-shadow:0 8px 26px rgba(15,23,42,.14)!important;
  backdrop-filter:blur(18px)!important;-webkit-backdrop-filter:blur(18px)!important;
}
.snsProfileTabs button{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:3px!important;min-height:48px!important;padding:4px!important;border:0!important;background:transparent!important;color:#9a9da3!important}
.snsProfileTabs button svg{display:block;width:23px;height:23px;fill:currentColor}
.snsProfileTabs button span{font-size:10px;font-weight:850;line-height:1}
.snsProfileTabs button.active{color:#55585e!important;border:0!important}
.snsProfileTabs button.hide{display:none!important}
#profilePanel:not(.show) .snsProfileTabs{display:none!important}
@media(max-width:390px){.snsProfileTabs{bottom:max(22px,calc(14px + env(safe-area-inset-bottom)))!important;min-height:74px!important;padding:6px 5px!important}.snsProfileTabs button{height:62px!important;min-height:62px!important}}
.snsProfilePane{padding-top:12px}
.snsProfilePane[data-sns-pane="trips"]{margin:0 -14px;padding:12px 0 0!important;background:transparent!important}
.profileTripComposeBar{padding:0 14px 10px!important}
.profileTripComposeBar:not(.hide){display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important}
.profileTripComposeBar>span{min-width:0;flex:1 1 auto;color:#667085;font-size:10px;font-weight:750;line-height:1.4}
.profileTripIconActions{display:flex;flex:0 0 auto;align-items:center;gap:5px}
.profileTripIconActions button:not(.hide){display:grid!important;flex:0 0 38px!important;width:38px!important;min-width:38px!important;max-width:38px!important;height:38px!important;min-height:38px!important;max-height:38px!important;padding:0!important;place-items:center!important;border:1px solid #dce3ec!important;border-radius:11px!important;background:#fff!important;color:#687386!important;box-shadow:none!important;font-size:24px!important;line-height:1!important}
.profileTripIconActions button svg{display:block;width:20px;height:20px;fill:currentColor;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.profileTripIconActions button[data-profile-trip-view="feed"] svg{fill:none}
.profileTripIconActions button.active{background:#223044!important;border-color:#223044!important;color:#f3ead9!important}
.profileTripIconActions #profileTripComposeBtn{border-radius:50%!important;background:#eaf2ff!important;border-color:#d6e5f8!important;color:#087cff!important;font-weight:900!important}
.snsTripGrid{gap:3px!important;padding:0!important;background:transparent!important}
.snsTripGrid>button,.snsTripGrid>.profileCachedTripGridView>button{border-radius:0!important;background:#e9edf2!important}
.snsTripGrid .snsProfileEmpty{margin:0 14px}

/* b16 shared bottom navigation icons */
#bottomNav>button{position:relative!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:3px!important;font-size:10px!important;font-weight:850!important;color:#55585e!important}
#bottomNav>button svg{display:block;width:23px;height:23px;fill:currentColor}
#bottomNav>button>span{display:block;line-height:1}
#bottomNav>button.active{color:#1477e8!important}
#bottomNav .bottomChatAlertBadge{position:absolute!important;top:3px!important;left:calc(50% + 8px)!important;min-width:16px!important;height:16px!important;padding:0 4px!important;border-radius:999px!important;background:#ff3b30!important;color:#fff!important;font-size:9px!important;line-height:16px!important;text-align:center!important}

/* b16 v4: unified pull-down sheets and icon-only safe-area navigation */
.visuallyHidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
#bottomNav{bottom:calc(10px + env(safe-area-inset-bottom))!important;width:min(620px,calc(100vw - 24px))!important;height:64px!important;padding:7px 10px!important;border-radius:24px!important;overflow:visible!important}
#bottomNav>button,#profileTab{height:50px!important;min-height:50px!important;padding:0!important;border:0!important;border-radius:17px!important;background:transparent!important;color:#777b82!important}
#bottomNav .bottomChatAlertBadge{top:1px!important;left:calc(50% + 7px)!important}
.profilePanelBackdrop{display:none;position:fixed;inset:0;z-index:99998;background:rgba(15,23,42,.22);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
body:has(#profilePanel.show) .profilePanelBackdrop{display:block}
#profilePanel{top:auto!important;bottom:0!important;left:0!important;right:0!important;width:100%!important;height:min(70dvh,680px)!important;max-height:calc(100dvh - 86px)!important;border-radius:28px 28px 0 0!important;box-shadow:0 -18px 52px rgba(15,23,42,.22)!important;transform:translateY(105%)!important;transition:transform .24s cubic-bezier(.2,.8,.2,1)!important;overflow:hidden!important}
#profileHeader.profileSheetHandle{min-height:36px!important;border-radius:28px 28px 0 0!important}
@media(max-width:520px){#bottomNav{bottom:calc(12px + env(safe-area-inset-bottom))!important;width:calc(100vw - 22px)!important}#profilePanel{height:72dvh!important;max-height:calc(100dvh - 72px)!important}}







/* triptalk v7 viewport stabilization: Android/Galaxy Chrome browser chrome height */
html,
body{
  height:var(--app-height, 100dvh) !important;
  min-height:var(--app-height, 100dvh) !important;
  max-height:var(--app-height, 100dvh) !important;
  overflow:hidden !important;
}

#map{
  top:156px !important;
  bottom:0 !important;
  height:calc(var(--app-height, 100dvh) - 156px) !important;
  max-height:calc(var(--app-height, 100dvh) - 156px) !important;
}

#bottomNav{
  bottom:calc(8px + env(safe-area-inset-bottom)) !important;
  max-height:64px !important;
  transform:translateX(-50%) translateZ(0) !important;
}

/* triptalk v7 usage guide stabilization: Galaxy Chrome intro popup */
.usage-guide{
  align-items:center !important;
  justify-content:center !important;
  height:var(--app-height, 100dvh) !important;
  min-height:var(--app-height, 100dvh) !important;
  padding:calc(10px + env(safe-area-inset-top)) 14px calc(10px + env(safe-area-inset-bottom)) !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}

.usage-guide-box{
  width:min(420px, 100%) !important;
  max-height:calc(var(--app-height, 100dvh) - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
  min-height:0 !important;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
  padding:16px !important;
  box-sizing:border-box !important;
}

.usage-guide-head{
  flex:0 0 auto !important;
  margin-bottom:10px !important;
}

.usage-guide-head strong{
  font-size:19px !important;
  line-height:1.15 !important;
}

.usage-guide-brand span{
  font-size:12px !important;
  line-height:1.3 !important;
}

.usage-guide-list{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch !important;
  overscroll-behavior:contain !important;
  padding-right:2px !important;
  gap:8px !important;
}

.usage-guide-list div{
  padding:10px 11px !important;
}

.usage-guide-check{
  flex:0 0 auto !important;
  margin:10px 0 10px !important;
}

#usageGuideClose{
  flex:0 0 auto !important;
  min-height:48px !important;
  padding:12px 16px !important;
}
.triptalk-map-marker-hit{
  --marker-hit-padding:2px;
  appearance:none;border:0;background:transparent;margin:0;
  padding:var(--marker-hit-padding);cursor:pointer;touch-action:manipulation;
}
.triptalk-map-marker-hit:focus-visible{outline:2px solid #007aff;outline-offset:1px;border-radius:12px}
.triptalk-map-marker-visual{position:relative;display:inline-flex;align-items:center;justify-content:center;filter:drop-shadow(0 2px 3px rgba(0,0,0,.24))}
.triptalk-map-marker-visual img{display:block;object-fit:contain}
.triptalk-map-marker-dot{width:18px;height:18px;border:4px solid #fff;border-radius:50%;background:var(--marker-color,#007aff)}
.triptalk-map-marker-label:not(.room-label){position:absolute;left:50%;top:100%;min-width:max-content;transform:translate(-50%,2px);padding:2px 6px;border-radius:8px;background:#fff;color:#111;font-size:12px;font-weight:800;line-height:1.3;box-shadow:0 1px 4px rgba(0,0,0,.18)}
.triptalk-map-marker-label.room-label{flex:none;transform:none}
.triptalk-map-marker-label.room-label{
  width:178px !important;height:66px !important;min-width:178px !important;max-width:178px !important;
}
.triptalk-map-cluster{
  position:relative;display:flex;align-items:center;justify-content:center;
  min-width:46px;height:46px;padding:0 12px;box-sizing:border-box;
  border:3px solid #fff;border-radius:50%;
  background:linear-gradient(145deg,#ff684f,#ff334f);color:#fff;
  box-shadow:0 5px 14px rgba(23,42,75,.32);font-family:Arial,sans-serif;
}
.triptalk-map-cluster strong{font-size:18px;font-weight:950;line-height:1}
@media (max-width:600px){
  .triptalk-map-marker-label.room-label{
    width:178px !important;height:66px !important;min-width:178px !important;max-width:178px !important;
  }}
.myTripMapPicker{display:grid;gap:8px;padding:10px;border:1px solid rgba(60,60,67,.14);border-radius:12px;background:#f8fafc}
.myTripMapPickerHead{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}
.myTripMapPickerHead button,.myTripStopTop [data-map-target]{border:0;border-radius:8px;padding:7px 9px;background:#e7654b;color:#fff;font-size:11px;font-weight:800}
.myTripMapCanvas{width:100%;height:210px;border-radius:10px;overflow:hidden;background:#e5e7eb}
.myTripScheduleFields{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media (max-width:480px){.myTripScheduleFields{grid-template-columns:1fr}}
.tripTalkLocationOverlay{position:fixed;inset:0;z-index:120000;display:flex;align-items:flex-end;justify-content:center;padding:14px;background:rgba(0,0,0,.45);box-sizing:border-box}
.tripTalkNavigationSheet,.tripTalkLocationPicker{width:min(520px,100%);border-radius:20px;background:#fff;box-shadow:0 14px 50px rgba(0,0,0,.28)}
.tripTalkNavigationSheet{display:grid;gap:10px;padding:20px}
.tripTalkNavigationSheet strong{font-size:18px}.tripTalkNavigationSheet span{color:#667085;font-size:13px}
.tripTalkNavigationTitle{display:flex;align-items:center;gap:2px}.tripTalkNavigationTitle .featureGuideButton{margin-left:5px}.tripTalkNavigationStatus{line-height:1.55}.tripTalkNavigationFallback{grid-column:1/-1;margin-top:3px;color:#16813c;font-size:11px;font-weight:900}.internationalChoices button:disabled{opacity:.65}
.tripTalkNavigationSheet button,.tripTalkLocationPicker button{box-sizing:border-box;min-height:42px;border:1px solid #d9dee6;border-radius:11px;background:#f1f3f5;color:#3f4854;font-weight:850}
.tripTalkNavigationSheet button.secondary,.tripTalkLocationPicker button.secondary{background:#f1f3f5;color:#3f4854}
.tripTalkLocationPicker{display:grid;gap:10px;max-height:min(760px,92vh);padding:14px;overflow:auto}
.tripTalkLocationPicker header{display:flex;align-items:center;justify-content:space-between}.tripTalkLocationPicker header strong{font-size:18px}
.tripTalkLocationPicker header button{width:40px;min-height:40px;background:#f1f2f4;color:#111;font-size:22px}
.tripTalkLocationSearch{display:grid;grid-template-columns:1fr 72px;gap:8px}.tripTalkLocationSearch input{min-width:0;height:44px;border:1px solid #d0d5dd;border-radius:12px;padding:0 12px;font-size:15px}
.tripTalkCurrentLocation{justify-self:start;padding:0 14px}.tripTalkPickerMap{height:min(380px,43vh);border-radius:14px;overflow:hidden;background:#e8edf3}
.tripTalkSelectedAddress{min-height:20px;margin:0;padding:2px 4px;color:#344054;font-size:13px}.tripTalkLocationPicker footer{display:grid;grid-template-columns:1fr 2fr;gap:8px}
.tripTalkAddToCourse{width:100%;background:#111!important}.tripTalkAddToCourse:disabled{opacity:.38}
.tripTalkCourseDraft{display:grid;gap:9px;padding:12px;border:1px solid #cfe0ff;border-radius:15px;background:#f7faff}.tripTalkCourseDraftHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.tripTalkCourseDraftHead>div{display:flex;align-items:center;gap:7px}.tripTalkCourseDraftHead b{font-size:15px}.tripTalkCourseDraftHead span{padding:4px 7px;border-radius:999px;background:#087cff;color:#fff;font-size:10px;font-weight:900}.tripTalkCourseDraftHead small{color:#667085;font-size:11px}.tripTalkCourseDraftEmpty{margin:0;padding:13px;border-radius:11px;background:#fff;color:#667085;font-size:12px;line-height:1.5}.tripTalkCourseDraftList{display:grid;gap:7px;max-height:220px;overflow:auto}.tripTalkCourseDraftList article{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px;border-radius:11px;background:#fff;box-shadow:0 1px 5px rgba(15,23,42,.07)}.tripTalkCourseDraftList article>b{display:grid;width:26px;height:26px;place-items:center;border-radius:50%;background:#087cff;color:#fff;font-size:12px}.tripTalkCourseDraftList article>div:nth-child(2){display:grid;min-width:0;gap:2px}.tripTalkCourseDraftList strong,.tripTalkCourseDraftList span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tripTalkCourseDraftList strong{font-size:12px}.tripTalkCourseDraftList span{color:#667085;font-size:10px}.tripTalkCourseDraftList article>div:last-child{display:flex;gap:3px}.tripTalkCourseDraftList article button{min-height:30px;padding:0 7px;border-radius:8px;background:#eef3f8;color:#344054;font-size:10px}.tripTalkCourseDraftList article button:last-child{background:#fff0f0;color:#d92d20}.tripTalkCourseDraftList article button:disabled{opacity:.3}
.chat-location-card{display:grid;gap:6px;min-width:210px}.chat-location-card b{font-size:12px;color:#087cff}.chat-location-card strong{font-size:15px}.chat-location-card span{color:#667085;font-size:12px}.chat-location-card button{border:0;border-radius:10px;padding:9px 10px;background:#087cff;color:#fff;font-weight:800}
.chat-bubble.location-bubble{background:#fff!important;color:#172033!important;border:1px solid #d9e6e8!important;box-shadow:0 4px 14px rgba(23,32,51,.08)!important}
.chat-message-row.mine .chat-bubble.location-bubble{background:#f5fbfb!important;color:#172033!important}
.location-bubble .chat-location-card b{color:#147d85}
.location-bubble .chat-location-card strong{color:#172033}
.location-bubble .chat-location-card span{color:#667085}
.location-bubble .chat-location-card button{background:#16858d;color:#fff}

/* a10: 지도 오른쪽 빠른 실행 버튼은 흰 배경과 검은 아이콘으로 통일한다. */
#floatingBtns > button,
#floatingBtns #profileAlertQuickBtn,
#floatingBtns #chatFilterBtn,
#floatingBtns #myLoc{
  position:relative;
  display:flex!important;
  align-items:center;
  justify-content:center;
  width:52px!important;
  height:52px!important;
  padding:0!important;
  border:1px solid rgba(17,24,39,.12)!important;
  border-radius:50%!important;
  background:#fff!important;
  color:#111!important;
  box-shadow:0 5px 14px rgba(15,23,42,.16)!important;
}
#floatingBtns #profileAlertQuickBtn.has-unread{
  background:#fff!important;
  box-shadow:0 5px 14px rgba(15,23,42,.16)!important;
}
.floating-icon{
  display:block;
  width:25px;
  height:25px;
  background-position:center;
  background-repeat:no-repeat;
  background-size:contain;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.2));
}
.floating-bell{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9'/%3E%3Cpath d='M10 21h4'/%3E%3C/svg%3E");
}
.floating-filter{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke-linecap='round'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23cbd5e1'/%3E%3Cstop offset='1' stop-color='%234b5563'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M4 6h16M7 12h10M10 18h4' stroke='url(%23g)' stroke-width='2.25'/%3E%3C/svg%3E");
}
#floatingBtns #profileAlertQuickBtn.has-unread .floating-bell{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9'/%3E%3Cpath d='M10 21h4'/%3E%3C/svg%3E");
}
.floating-alert-count{
  position:absolute;
  right:-3px;
  top:-4px;
  min-width:18px;
  height:18px;
  padding:0 4px;
  box-sizing:border-box;
  border:2px solid #fff;
  border-radius:999px;
  background:#fff;
  color:#d7192d;
  font-size:10px;
  font-weight:950;
  line-height:14px;
  text-align:center;
}
#floatingBtns #myLoc .my-location-pin::after{
  background:#111!important;
}

/* a9: 가이드 검색은 국가·도시를 같은 폭으로 두고 상세 조건을 다음 줄에 둔다. */
.commerce-guide-search-form{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.commerce-guide-search-form .commerce-wide{
  grid-column:1/-1;
}
@media (max-width:600px){
  .commerce-guide-search-form{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }}
.myTripInlineLocation,.myTripInlineSchedule{display:grid;gap:7px;padding:12px;border:1px solid #cfe0ff;border-radius:14px;background:#f6f9ff}.myTripInlineLocation b,.myTripInlineSchedule b{color:#087cff}.myTripInlineLocation span{color:#667085;font-size:12px}.myTripInlineLocation textarea,.myTripInlineSchedule textarea{width:100%;box-sizing:border-box;border:1px solid #d0d5dd;border-radius:10px;padding:9px;background:#fff}.myTripInlineLocation button{justify-self:start;border:0;border-radius:9px;padding:8px 10px;background:#087cff;color:#fff;font-weight:800}
.myTripDetailRoutePoint{display:grid;width:100%;gap:3px;margin:8px 0;padding:12px;border:1px solid #cfe0ff;border-radius:14px;background:#f6f9ff;text-align:left}.myTripDetailRoutePoint b,.myTripDetailRoutePoint em{color:#087cff}.myTripDetailRoutePoint span{color:#667085;font-size:12px}.myTripDetailSchedule{display:grid;gap:5px;margin:8px 0;padding:12px;border-radius:14px;background:#f7f7f9}.myTripDetailSchedule p{margin:0;white-space:pre-wrap}

/* 발자취는 채널 글쓰기처럼 하나의 이어진 본문으로 보이게 한다. */
.myTripComposeForm .boardBlockEditor{gap:0;min-height:360px;padding:14px 12px;border:1px solid rgba(60,60,67,.13);border-radius:14px;background:#fff}
.myTripComposeForm .boardEditorBlock{margin:0;padding:0;background:transparent}
.myTripComposeForm .boardEditorBlock.text textarea{display:block;min-height:54px;height:auto;margin:0;padding:8px 4px;border:0;border-radius:0;background:transparent;line-height:1.7;resize:none;overflow:hidden}
.myTripBodyLabel{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}
.myTripBodyLabel span{color:#0877e8;font-size:10px;font-weight:850;text-align:right}
.myTripComposeForm .boardEditorBlock.text:first-child{margin:0 0 14px;padding:0}
.myTripComposeForm .boardEditorBlock.text:first-child textarea{
  min-height:156px;
  padding:14px;
  border:2px solid #cfe0ff;
  border-radius:13px;
  background:#fbfdff;
  box-shadow:inset 0 1px 3px rgba(15,23,42,.04);
  line-height:1.65;
}
.myTripComposeForm .boardEditorBlock.text:first-child textarea:focus{
  border-color:#cfe0ff;
  outline:none;
  box-shadow:inset 0 1px 3px rgba(15,23,42,.04);
}
.myTripComposeForm .boardEditorBlock.image{padding:8px 0}.myTripComposeForm .boardEditorBlock.image>img{border-radius:4px;background:transparent}
.myTripComposeForm .boardEditorBlock.image>img,.myTripDetailContent img,.myTripDetailMedia img{display:block;width:100%;max-width:100%;height:auto;max-height:520px;object-fit:contain;box-sizing:border-box}
.myTripEditorToolbar{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px!important}
.myTripEditorToolbar button{min-width:0!important;padding:0 3px!important;font-size:10px!important;white-space:nowrap}
.myTripToolbarHint{display:block;margin-top:6px;color:#667085;font-size:11px}
.snsProfilePublicActions{grid-template-columns:repeat(3,minmax(0,1fr))}
.myTripComposeForm .myTripInlineLocation{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:5px 9px;margin:6px 0;padding:10px 4px;border:0;border-top:1px solid rgba(60,60,67,.1);border-bottom:1px solid rgba(60,60,67,.1);border-radius:0;background:#fff}
.myTripComposeForm .myTripInlineLocation b{grid-row:1/3;width:48px;color:#087cff}.myTripComposeForm .myTripInlineLocation strong{min-width:0}.myTripComposeForm .myTripInlineLocation span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.myTripComposeForm .myTripInlineLocation textarea{grid-column:2/4;min-height:42px;padding:6px 0;border:0;border-radius:0;background:transparent;resize:none}.myTripComposeForm .myTripInlineLocation button{grid-column:3;grid-row:1/3;padding:6px 8px;background:transparent;color:#087cff}
.myTripComposeForm .myTripInlineSchedule{margin:6px 0;padding:10px 4px;border:0;border-top:1px solid rgba(60,60,67,.1);border-bottom:1px solid rgba(60,60,67,.1);border-radius:0;background:#fff}.myTripComposeForm .myTripInlineSchedule input,.myTripComposeForm .myTripInlineSchedule textarea{border:0!important;border-radius:0!important;background:transparent!important;padding:6px 0!important}
.myTripComposeForm .boardEditorControls{display:flex;justify-content:flex-end;gap:4px;margin:-2px 0 4px;opacity:.58}.myTripComposeForm .boardEditorControls button{min-width:28px;min-height:26px;padding:2px 7px;border:0;background:transparent;color:#667085}.myTripComposeForm .boardEditorControls button.danger{color:#d92d20}
/* triptalk.a1 course builder */
.commerce-card .commerce-card-actions{
  grid-column:1 / -1 !important;
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:7px !important;
  width:100% !important;
}
.commerce-card .commerce-card-actions>a,
.commerce-card .commerce-card-actions>button{
  box-sizing:border-box;
  min-width:0 !important;
  width:100% !important;
  padding-left:4px !important;
  padding-right:4px !important;
  white-space:nowrap;
}
.commerce-card-actions .course-save-button{
  order:99;
  border-color:#087cff !important;
  background:#087cff !important;
  color:#fff !important;
}
.commerce-card-actions .course-save-button.saved{
  border-color:#15945b !important;
  background:#15945b !important;
}
#courseRoot{padding:2px 2px 18px}
.schedule-builder{display:grid;gap:11px;margin:2px 0 12px;padding:15px;border:1px solid #c9daf0;border-radius:18px;background:#fff;box-shadow:0 7px 20px rgba(21,54,95,.07)}.schedule-builder-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.schedule-builder-title>div{display:grid;gap:3px}.schedule-builder-title b{font-size:18px}.schedule-builder-title span,.schedule-builder>small{color:#6f7c8e;font-size:12px;line-height:1.45}.schedule-builder-title em{flex:none;padding:5px 8px;border-radius:999px;background:#fff4c2;color:#785800;font-size:10px;font-style:normal;font-weight:950}.schedule-builder label{display:grid;gap:5px;color:#334155;font-size:12px;font-weight:900}.schedule-builder input{min-width:0;border:1px solid #d7e0eb;border-radius:11px;padding:10px 11px;background:#fff;color:#111;font:inherit}.schedule-builder input::placeholder{color:#98a2b3;font-size:11px}.schedule-title-tip,.schedule-place-tip{padding:8px 10px;border-radius:10px;background:#f0f6ff;color:#316ca8!important;font-size:11px!important}.schedule-time-card{display:grid;gap:8px;padding:11px;border:1px solid #dbe7f5;border-radius:14px;background:#f9fbfe}.schedule-time-card>b{color:#26364b;font-size:13px}.schedule-date-row{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:7px}.schedule-place-add{width:100%;min-height:47px;border:0;border-radius:12px;background:#111;color:#fff;font-weight:950}.schedule-complete-button{width:100%;min-height:46px;margin-top:9px;border:0;border-radius:13px;background:#19a463;color:#fff;font-weight:950}.schedule-footprint-cta{display:grid;gap:6px;margin-top:11px;padding:15px;border:1px solid #a7e3c1;border-radius:16px;background:#effcf4}.schedule-footprint-cta strong{font-size:16px;color:#126c38}.schedule-footprint-cta span{color:#567061;font-size:12px}.schedule-completed-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.58fr);gap:8px;margin-top:4px}.schedule-footprint-cta .schedule-completed-actions button{min-height:43px;margin:0;border:0;border-radius:11px;background:#19a463;color:#fff;font-weight:950}.schedule-footprint-cta .schedule-completed-actions .schedule-delete-button{border:1px solid #e4a3a8;background:#fff;color:#bd2634}.schedule-footprint-cta .schedule-completed-actions button:disabled{opacity:.55}@media(max-width:520px){.schedule-date-row{grid-template-columns:1fr 1fr}.schedule-date-row label:first-child{grid-column:1/-1}}
.course-empty{display:flex;min-height:310px;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#64748b}
.course-empty>span{font-size:46px}.course-empty strong{margin-top:14px;color:#111;font-size:19px}.course-empty p{font-size:13px;line-height:1.65}.course-empty b{color:#087cff}
.course-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 4px 16px;border-bottom:1px solid #e8ebef}
.course-head div{display:grid;gap:3px}.course-head span{color:#087cff;font-size:11px;font-weight:900}.course-head strong{font-size:20px}.course-head small{color:#748094}
.course-head button,.course-new-button,.course-navigation-button{border:0;border-radius:11px;padding:10px 12px;background:#eaf3ff;color:#0873df;font-weight:900}
.course-route{padding:12px 0}
.course-stop{position:relative;display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 4px}
.course-stop:not(:last-child):after{content:"";position:absolute;left:19px;top:42px;bottom:-8px;width:2px;background:#bed9ff}
.course-stop>b{display:flex;z-index:1;width:30px;height:30px;align-items:center;justify-content:center;border-radius:50%;background:#087cff;color:#fff}
.course-stop>div:nth-child(2){display:grid;gap:3px;min-width:0}.course-stop strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-stop span{color:#7a8493;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.course-stop-actions{display:flex;gap:4px}.course-stop-actions button{border:0;border-radius:8px;padding:7px;background:#f0f2f5;color:#4b5563;font-size:11px;font-weight:800}.course-stop-actions button:disabled{opacity:.3}
.course-navigation-button{width:100%;margin-top:6px;background:#087cff;color:#fff;padding:13px}
.course-new-button{width:100%;margin-top:8px;background:#111;color:#fff;padding:13px}
.course-saved-list{margin:10px 0 0;padding:11px;border:1px solid #cedff3;border-radius:14px;background:linear-gradient(180deg,#f8fbff,#fff);box-shadow:0 5px 16px rgba(21,54,95,.06)}
.course-saved-heading>div{display:grid;gap:3px}.course-saved-heading strong{font-size:17px}.course-saved-heading span{color:#6f7c8e;font-size:11px}.course-saved-content{display:grid;gap:6px;margin-top:10px;padding:0}
.course-save-state{display:inline-flex;margin-left:6px;padding:3px 7px;border-radius:999px;font-size:10px;font-style:normal;font-weight:950}.course-save-state.saved{background:#e8f8ee;color:#16813c}.course-save-state.changed{background:#fff4d6;color:#9a6500}
.course-added-notice{position:fixed;left:50%;bottom:calc(86px + env(safe-area-inset-bottom));z-index:100500;display:flex;align-items:center;gap:10px;max-width:calc(100vw - 28px);padding:11px 12px 11px 15px;border-radius:16px;background:#111827;color:#fff;box-shadow:0 12px 30px rgba(15,23,42,.3);transform:translateX(-50%);font-size:13px;font-weight:850}.course-added-notice span{white-space:nowrap}.course-added-notice button{flex:none;border:0;border-radius:11px;padding:8px 10px;background:#ffe100;color:#111;font-size:12px;font-weight:950}
.course-saved-list>strong{display:block;margin-bottom:9px;font-size:15px}
.course-saved-list>p{margin:0;color:#758195;font-size:13px}
.course-saved-list article{display:grid;grid-template-columns:minmax(0,1fr) 48px;align-items:stretch;gap:5px}.course-saved-list article>button:first-child{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;min-height:40px;padding:7px 9px;border:1px solid #dce8f7;border-radius:9px;background:#fff;color:#111;text-align:left}.course-saved-list article>button:first-child b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.course-saved-list article>button:first-child span{white-space:nowrap;color:#718096;font-size:9px}.course-saved-list [data-course-delete]{border:1px solid #f0d5d8;border-radius:9px;background:#fff;color:#c82932;font-size:9px;font-weight:850}.course-saved-card.just-saved>button:first-child{border-color:#19a463;background:#f2fbf5}
.course-schedule-editor{margin-top:10px}.course-date-picker.compact{min-height:42px;padding:6px 9px}.course-date-picker.compact input{height:32px}.course-primary-actions.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.course-primary-actions.two button{width:100%;min-width:0}.course-route-legend{display:flex!important;grid-template-columns:none!important;flex-wrap:wrap;gap:8px!important;margin-top:7px}.course-route-legend span{display:inline-flex;align-items:center;gap:4px;color:#53657b;font-size:9px;font-weight:800}.course-route-legend i{width:8px;height:8px;border-radius:50%}

/* b81: 기존 코스 구조를 유지하면서 날짜별 일정 편집만 통합합니다. */
.schedule-day-panel{display:grid;gap:10px;margin:12px 0;padding:12px;border:1px solid #dce5f0;border-radius:15px;background:#f8fafc}.schedule-day-head{display:flex;align-items:center;gap:7px}.schedule-day-tabs{display:flex;flex:1 1 auto;gap:6px;min-width:0;overflow-x:auto;scrollbar-width:none}.schedule-day-tabs::-webkit-scrollbar{display:none}.schedule-day-button,.schedule-day-head>[data-add-schedule-day]{flex:0 0 62px;height:32px;padding:0 7px;border:1px solid #d5deea;border-radius:9px;background:#fff;color:#344054;font-size:10px;font-weight:900}.schedule-day-button.active{border-color:#0877e8;background:#e7654b;color:#fff}.schedule-day-head>[data-add-schedule-day]{flex-basis:55px;color:#0877e8}
.schedule-day-date{display:flex;align-items:center;gap:8px;padding:0 2px;white-space:nowrap}.schedule-day-date b{font-size:12px}.schedule-day-date span{flex:none;color:#667085;font-size:10px}.schedule-day-date small{overflow:hidden;color:#718096;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.schedule-merge-guide{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid #9cc6f5;border-radius:9px;background:#edf6ff;color:#145a9f}.schedule-merge-guide b{font-size:10px;white-space:nowrap}.schedule-merge-guide span{min-width:0;flex:1;font-size:9px}.schedule-merge-guide button{flex:none;padding:6px 8px;border:1px solid #9cc6f5;border-radius:7px;background:#fff;color:#145a9f;font-size:9px;font-weight:800}.schedule-day-toolbar{display:grid;grid-template-columns:1fr auto;gap:6px}.schedule-day-toolbar>div{display:grid;gap:3px}.schedule-day-toolbar small{color:#718096;font-size:8px;text-align:center}.schedule-day-toolbar button{min-height:31px;border:1px solid #d5deea;border-radius:8px;background:#fff;color:#0877e8;font-size:10px;font-weight:900}.schedule-day-toolbar>button:last-child{align-self:start;color:#b42318}.schedule-day-list{display:grid;gap:8px}.schedule-day-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px;border:1px solid #dce5ef;border-radius:12px;background:#fff}.schedule-day-card>div:first-child{display:grid;gap:3px;min-width:0}.schedule-day-card strong,.schedule-day-card span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-day-card strong{font-size:12px}.schedule-day-card span{color:#667085;font-size:9px}.schedule-day-card.confirmed{border-color:#8ab9ff}.schedule-day-fields{display:flex;gap:5px}.schedule-day-fields input,.schedule-day-fields select{height:31px;box-sizing:border-box;border:1px solid #d5deea;border-radius:8px;background:#fff;color:#344054;font-size:9px}.schedule-day-fields input{width:76px;padding:0 5px}.schedule-day-fields select{width:62px;padding:0 4px}.schedule-card-actions{grid-column:1/-1;display:grid;grid-template-columns:38px 38px 38px minmax(58px,auto);justify-content:end;gap:5px}.schedule-card-actions button{height:29px;border:1px solid #d5deea;border-radius:8px;background:#fff;color:#344054;font-size:10px;font-weight:900}.schedule-card-actions button.active{border-color:#0877e8;background:#eaf4ff;color:#0877e8}.schedule-card-actions button:last-child{color:#b42318}.schedule-day-empty{display:grid;gap:10px;padding:14px 8px;color:#667085;font-size:11px;text-align:center}
@media(max-width:380px){.schedule-day-card{grid-template-columns:1fr}.schedule-day-fields{grid-row:auto}.schedule-card-actions{grid-column:1}}

.aiGuideEntry{width:100%;display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;margin:4px 0 16px;padding:15px;border:1px solid #b9d8ff;border-radius:20px;background:linear-gradient(135deg,#eef7ff 0%,#f0fffa 100%);text-align:left;box-shadow:0 8px 22px rgba(18,105,198,.09);color:#12304d}
.aiGuideEntryIcon{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,#087cff,#22c99c);color:#fff;font-size:15px;font-weight:900;box-shadow:0 6px 14px rgba(8,124,255,.22)}
.aiGuideEntry>span:nth-child(2){display:flex;min-width:0;flex-direction:column;gap:4px}.aiGuideEntry strong{font-size:16px}.aiGuideEntry small{font-size:12px;line-height:1.45;color:#5d7186}.aiGuideEntry>b{white-space:nowrap;color:#0874dc;font-size:12px}.aiGuideEntry.active{border-color:#1787fa;background:#f7fbff}
.aiGuidePanel{margin:-4px 0 18px;padding:14px;border:1px solid #d5e4f4;border-radius:20px;background:#f7faff}.aiGuidePanelHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.aiGuidePanelHead>div{display:flex;flex-direction:column;gap:3px}.aiGuidePanelHead strong{font-size:15px;color:#152c43}.aiGuidePanelHead span{font-size:11px;color:#6b7b8b}.aiGuidePanelHead button{border:0;border-radius:10px;background:#eaf2fb;padding:7px 10px;color:#53708d;font-weight:700}
.aiGuideSearch{display:grid;gap:5px;margin:0 0 12px}.aiGuideSearch span{color:#526579;font-size:10px;font-weight:850}.aiGuideSearch input{width:100%;height:39px;box-sizing:border-box;padding:0 12px;border:1px solid #bfd5ec;border-radius:11px;background:#fff;color:#172033;font-size:12px}
.aiGuideFeed{display:grid;gap:12px}.aiGuideCard{display:grid;grid-template-columns:112px minmax(0,1fr);overflow:hidden;width:100%;min-height:112px;padding:0;border:1px solid #d7e5f3;border-radius:17px;background:#fff;text-align:left;box-shadow:0 5px 15px rgba(22,72,121,.07)}.aiGuideCardCover{position:relative;display:block;min-height:112px;overflow:hidden;background:linear-gradient(135deg,#087cff,#22c99c)}.aiGuideCardCover img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.aiGuideCardCover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,42,88,.58))}.aiGuideCardCover em,.aiGuideCardCover b{position:absolute;z-index:1;left:10px;color:#fff}.aiGuideCardCover em{top:10px;font-size:8px;font-style:normal;font-weight:900;letter-spacing:.7px}.aiGuideCardCover b{bottom:10px;right:8px;font-size:14px;line-height:1.2}.aiGuideCardCopy{display:flex;min-width:0;flex-direction:column;justify-content:center;gap:7px;padding:13px}.aiGuideCardCopy>strong{font-size:14px;line-height:1.35;color:#142c43}.aiGuideCardCopy>small{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:#65778a;font-size:11px;line-height:1.45}.aiGuideCardCopy>span{display:flex;align-items:center;justify-content:space-between;gap:6px}.aiGuideCardCopy i{border-radius:999px;background:#e8f4ff;padding:4px 7px;color:#0874dc;font-size:9px;font-style:normal;font-weight:800}.aiGuideCardCopy>span b{font-size:10px;color:#0b78df}
.myTripAiDisclosure{display:flex;flex-direction:column;gap:4px;margin:12px 0;padding:12px 14px;border:1px solid #b9d8ff;border-radius:14px;background:linear-gradient(135deg,#eef7ff,#f0fffa)}.myTripAiDisclosure b{font-size:13px;color:#0874dc}.myTripAiDisclosure span{font-size:11px;line-height:1.5;color:#60768c}
.aiGuidePhotoLoadingNotice{margin:10px 2px 12px;color:#dc2626;font-size:13px;font-weight:900;line-height:1.45}
.aiGuideStopPhoto,.aiStopThumb{position:relative}.aiPlacePhotoBadge{position:absolute;right:6px;bottom:6px;padding:3px 6px;border-radius:999px;background:rgba(0,0,0,.68);color:#fff;font-size:7px;font-weight:800}.aiPlacePhotoDetail{position:fixed;inset:0;z-index:100140;display:flex;align-items:flex-end;justify-content:center;background:rgba(15,23,42,.58)}.aiPlacePhotoDetail>section{width:min(560px,100%);max-height:92vh;overflow:auto;box-sizing:border-box;padding:12px 16px calc(20px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;background:#fff}.aiPlacePhotoDetail header{display:flex;justify-content:flex-end}.aiPlacePhotoDetail header button{width:42px;height:42px;border:0;border-radius:50%;background:#f1f5f9;font-size:19px}.aiPlacePhotoSquare{position:relative;display:grid;width:100%;aspect-ratio:1/1;place-items:center;overflow:hidden;margin:8px 0 14px;border-radius:18px;background:#edf4fb;color:#64809d}.aiPlacePhotoSquare>img{width:100%;height:100%;object-fit:cover}.aiPlacePhotoAttribution{position:absolute;right:8px;bottom:8px;left:8px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px;padding:7px 9px;border-radius:10px;background:rgba(0,0,0,.72);color:#fff;font-size:9px}.aiPlacePhotoAttribution a{color:#fff;text-decoration:underline}.aiPlacePhotoCopy{display:grid;gap:10px}.aiPlacePhotoCopy>div{display:flex;gap:6px}.aiPlacePhotoCopy time{color:#0877e8;font-weight:900}.aiPlacePhotoCopy em{padding:4px 7px;border-radius:999px;background:#eef3f8;font-size:10px;font-style:normal}.aiPlacePhotoCopy>strong{font-size:20px}.aiPlacePhotoCopy>small{color:#68788b}.aiPlacePhotoCopy p{margin:0;line-height:1.6;white-space:pre-wrap}.aiPlacePhotoCopy dl{display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px;margin:0;padding:11px;border-radius:12px;background:#f6f8fb}.aiPlacePhotoCopy dt{color:#0877e8;font-weight:900}.aiPlacePhotoCopy dd{margin:0;line-height:1.55}.aiPlaceOwnPhotoPrompt{padding:12px;border:1px solid #b9e7d2;border-radius:12px;background:#effcf6;color:#087b51;font-weight:800}
.aiGuidePlan{display:grid;gap:16px}.aiGuidePlanHead{display:flex;align-items:center;justify-content:space-between;padding:4px 2px}.aiGuidePlanHead strong{font-size:17px}.aiGuidePlanHead span{color:#0877e8;font-size:10px;font-weight:900}.aiGuideDay{display:grid;gap:11px;padding:14px;border:1px solid #dbe7f5;border-radius:18px;background:#f8fbff}.aiGuideDay>header{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px}.aiGuideDay>header>span{display:grid;width:48px;height:30px;place-items:center;border-radius:9px;background:#e7654b;color:#fff;font-size:10px;font-weight:950}.aiGuideDay>header>div{display:grid;min-width:0;gap:4px}.aiGuideDay>header strong{font-size:15px}.aiGuideDay>header p{margin:0;color:#5f6f82;font-size:11px;line-height:1.55}.aiGuideDayRoute{display:flex;min-width:0;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aiGuideDayRoute b{flex:0 0 auto;color:#0877e8}.aiGuideDayStops{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.aiGuideStop{display:grid;min-width:0;overflow:hidden;padding:0;border:1px solid #dbe6f2;border-radius:13px;background:#fff;color:#172033;text-align:left;appearance:none}.aiGuideStopPhoto{display:grid;aspect-ratio:4/3;place-items:center;overflow:hidden;background:linear-gradient(145deg,#dcecff,#edf4fb);color:#64809d;font-size:9px;text-align:center}.aiGuideStopPhoto img{width:100%;height:100%;object-fit:cover}.aiGuideStopBody{display:grid;min-width:0;gap:5px;padding:9px}.aiGuideStopBody>div{display:flex;align-items:center;gap:4px;overflow:hidden}.aiGuideStopBody time{color:#0877e8;font-size:9px;font-weight:950}.aiGuideStopBody em{overflow:hidden;padding:3px 5px;border-radius:999px;background:#eef3f8;color:#526579;font-size:7px;font-style:normal;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.aiGuideStopBody>strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.aiGuideStopBody>small{color:#7a8797;font-size:8px}.aiGuidePractical,.aiGuideSources{display:grid;gap:7px;padding:14px;border-radius:15px;background:#f5f7fa}.aiGuidePractical>strong,.aiGuideSources>strong{font-size:14px}.aiGuidePractical p{margin:0;padding-left:12px;color:#4f5f72;font-size:10px;line-height:1.55}.aiGuidePractical p::before{content:"•";margin-left:-10px;margin-right:6px;color:#0877e8}.aiGuideSources a{overflow:hidden;color:#316ca8;font-size:9px;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:390px){.aiGuideDay{padding:11px}.aiGuideDayStops{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.aiGuideStopBody{padding:7px 6px}.aiGuideStopBody>div{align-items:flex-start;flex-direction:column;gap:3px}.aiGuideStopBody>strong{font-size:11px}.aiGuideStopBody>small{font-size:7px}}
.footprintFollowReward{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0;padding:12px 14px;border:1px solid #bfe8d2;border-radius:16px;background:linear-gradient(135deg,#effcf5,#f4f9ff)}.footprintFollowReward b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;color:#087a46}.footprintFollowReward button{flex:0 0 28px;width:28px;height:28px;padding:0;border:2px solid #168449;border-radius:50%;background:#fff;color:#168449;font-size:16px;font-weight:900;line-height:24px}
@media(max-width:420px){.aiGuideEntry{grid-template-columns:44px minmax(0,1fr);padding:13px}.aiGuideEntryIcon{width:44px;height:44px}.aiGuideEntry>b{grid-column:2;justify-self:start}.aiGuideCard{grid-template-columns:100px minmax(0,1fr)}}
.course-follow-complete,.course-follow-rate{width:100%;min-height:46px;margin-top:9px;border:0;border-radius:13px;background:#19a463;color:#fff;font-weight:900}
.course-follow-origin{display:grid;gap:4px;margin:8px 0 12px;padding:11px 12px;border-radius:13px;background:#eef7ff;color:#163a5f}.course-follow-origin b{font-size:12px}.course-follow-origin span{color:#5d7186;font-size:10px;line-height:1.45}
.footprintReviewModal{position:fixed;inset:0;z-index:100080;display:flex;align-items:flex-end;justify-content:center;background:rgba(15,23,42,.48)}
.footprintReviewBox{display:grid;gap:13px;width:min(520px,100%);max-height:92vh;overflow:auto;padding:18px 18px calc(18px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:#fff}
.footprintReviewBox header{display:flex;align-items:center;justify-content:space-between}
.footprintReviewBox header strong{font-size:18px}.footprintReviewBox header button{width:36px;height:36px;border:0;border-radius:50%;background:#f1f5f9}
.footprintReviewBox>p{margin:0;color:#64748b;font-size:13px;line-height:1.5}
.footprintReviewBox fieldset{margin:0;padding:12px;border:1px solid #e2e8f0;border-radius:14px}.footprintReviewBox legend{padding:0 5px;font-weight:900}
.footprintReviewStars{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.footprintReviewStars input{position:absolute;opacity:0}.footprintReviewStars span{display:grid;place-items:center;min-height:58px;border-radius:10px;background:#f1f5f9;color:#cbd5e1;font-weight:900}.footprintReviewStars input:checked+span{background:#ffe100;color:#111}.singleFootMark{display:inline-block;width:27px;height:42px;color:#cbd5e1;transform:rotate(-4deg);overflow:visible}.singleFootMark .footSole,.singleFootMark circle{fill:currentColor}.singleFootMark.active{color:#111}.footprintReviewCard .singleFootMark{width:13px;height:21px;margin-left:2px}
.footprintRecommend{display:flex!important;align-items:center;gap:9px!important}.footprintRecommend input{width:21px;height:21px;accent-color:#19a463}
.footprintReviewBox label{display:grid;gap:7px;font-size:13px;font-weight:900}.footprintReviewBox textarea{resize:vertical;border:1px solid #dbe3ee;border-radius:12px;padding:11px;font:inherit}
.footprintReviewPhoto input{padding:9px;border:1px solid #e2e8f0;border-radius:11px}.footprintReviewPhoto span{color:#64748b;font-size:11px;font-weight:600}
.footprintReviewPreview{width:100%;max-height:220px;object-fit:cover;border-radius:14px;background:#f1f5f9}
.footprintReviewImageRemove{width:100%;margin-top:8px;border:1px solid #d7dde5;background:#fff;color:#374151;border-radius:10px;padding:10px;font-weight:700}
.footprintReviewActions{display:flex;gap:8px}.footprintReviewActions button{flex:1;min-height:44px;border:0;border-radius:12px;background:#1677e8;color:#fff;font-weight:900}.footprintReviewActions button.danger{background:#fee2e2;color:#dc2626}
.footprintReviewList{display:grid;gap:9px;margin-top:16px;padding-top:14px;border-top:1px solid #e2e8f0}.footprintReviewCard{display:grid;gap:7px;padding:12px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.footprintReviewCard>div{display:flex;justify-content:space-between;gap:8px}.footprintReviewCard span{color:#d97706;font-size:12px}.footprintReviewCard p{margin:0!important;color:#475569!important;font-size:13px!important;line-height:1.5}.footprintReviewCard img{width:100%;max-height:220px;object-fit:cover;border-radius:11px}.footprintReviewEmpty,.footprintReviewLoading{margin:0!important;color:#64748b!important;font-size:12px!important}
.footprintCommentList{display:grid;gap:10px;margin-top:0;padding-top:12px;border-top:1px solid #e2e8f0}.footprintCommentForm{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.footprintCommentForm input{min-width:0;height:44px;border:1px solid #dbe3ee;border-radius:12px;padding:0 12px;font:inherit}.footprintCommentForm button{border:0;border-radius:12px;padding:0 16px;background:#1677e8;color:#fff;font-weight:900}.footprintCommentItems{display:grid;gap:8px}.footprintComment{display:grid;gap:6px;padding:11px;border:1px solid #e2e8f0;border-radius:13px;background:#fff}.footprintComment header{display:flex;align-items:center;justify-content:space-between;gap:8px}.footprintComment time,.footprintCommentState{color:#64748b;font-size:11px}.footprintComment p{margin:0!important;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px!important;line-height:1.5}.footprintComment>div{display:flex;justify-content:flex-end;gap:5px}.footprintComment>div button{border:0;background:transparent;color:#64748b;font-size:11px}
.tripTalkRouteGroups section{display:grid;gap:7px;padding:11px;border:1px solid #e0e6ee;border-radius:14px;background:#f8fafc}
.tripTalkRouteGroups section small{color:#667085;line-height:1.4}
.tripTalkRouteGroups section div,.tripTalkMapChoices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.tripTalkRouteGroups section div button,.tripTalkMapChoices button{width:100%;min-width:0;height:34px;min-height:34px;padding:0 10px;font-size:12px}
.tripTalkNavigationGroup{display:grid;gap:6px;padding:10px;border:1px solid #e1e6ed;border-radius:14px;background:#f8fafc}.tripTalkNavigationGroup>b{color:#243247;font-size:13px}.tripTalkNavigationGroup .tripTalkMapChoices button{height:42px;min-height:42px;font-size:13px}
.searchPlaceInfoWindow{display:grid;gap:7px;min-width:210px;padding:4px 2px}.searchPlaceInfoWindow>strong{color:#172033;font-size:16px}.searchPlaceInfoWindow>span{color:#65738a;font-size:12px;line-height:1.45}.searchPlaceInfoWindow>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.searchPlaceInfoWindow button{min-height:38px;border:1px solid #d8e0ea;border-radius:10px;background:#f3f6fa;color:#243247;font-weight:800}.search-place-marker-label{color:#d9263e!important;font-weight:800!important}
.aiPlannerStart{display:grid;gap:12px;padding:4px}.aiPlannerStart>strong{font-size:20px}.aiPlannerStart>p{margin:0 0 4px;color:#64748b}.aiPlannerStart>button{display:grid;gap:5px;text-align:left;padding:18px;border:1px solid #dbe5f2;border-radius:16px;background:#fff;color:#111827}.aiPlannerStart>button:first-of-type{border-color:#9dcbff;background:#eff7ff}.aiPlannerStart>button b{font-size:16px}.aiPlannerStart>button span{font-size:12px;color:#64748b}
.aiPlannerModeDescription{grid-column:1/-1;margin:0;padding:0 3px;color:#64748b;font-size:14px;line-height:1.55}
.aiTravelDate,.aiOriginChoice{display:grid;gap:8px;padding:12px;border:1px solid #e0e8f2;border-radius:15px;background:#fff}.aiTravelDate>b,.aiOriginChoice>b{font-size:13px;color:#172033}.aiTravelDatePicker{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.aiTravelDatePicker input{width:100%}.aiTravelDatePicker button{padding:0 11px;border:1px solid #d6e0ec;border-radius:10px;background:#fff;color:#1677e8;font-weight:850}.aiTravelDate>strong{color:#1267ba;font-size:12px;line-height:1.45}.aiTravelDate>small{color:#64748b;font-size:9px}.aiTravelDate [data-ai-duration-manual]{display:grid;gap:6px;padding:9px;border:0;border-radius:10px;background:#f5f8fc}.aiTravelDate [data-ai-duration-manual].hide{display:none}.aiTravelDate [data-ai-duration-manual] span{color:#64748b;font-size:9px}.aiOriginChoice>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.aiOriginChoice button{min-height:39px;border:1px solid #d6e0ec;border-radius:10px;background:#fff;color:#475569;font-weight:850}.aiOriginChoice button.active{border-color:#1677e8;background:#eaf3ff;color:#1267ba}
.aiTravelDateRange{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.aiTravelDateRange label{display:grid;gap:5px;min-width:0}.aiTravelDateRange label span{color:#5d6b7e;font-size:11px;font-weight:850}.aiTravelDateRange input{width:100%;min-width:0;height:42px;box-sizing:border-box;border:1px solid #cfdceb;border-radius:11px;background:#fff;padding:0 9px;color:#1f2937;font-size:13px;font-weight:800}@media(max-width:390px){.aiTravelDateRange{gap:6px}.aiTravelDateRange input{padding:0 6px;font-size:12px}}
.aiRequestBox{display:grid;gap:8px;padding:16px;border:1px solid #cfe0f5;border-radius:16px;background:linear-gradient(135deg,#f5faff,#f5fff9)}.aiRequestBox textarea{width:100%;min-height:92px;box-sizing:border-box;resize:vertical;padding:13px;border:1px solid #d5dfeb;border-radius:12px;background:#fff;font:inherit;line-height:1.5}.aiRequestBox textarea::placeholder{color:#94a3b8}.aiRequestBox small{color:#64748b}.aiPreferenceField{grid-column:1/-1;display:grid;gap:9px;padding:13px;border:1px solid #dbe5f2;border-radius:14px;background:#fff}.aiPreferencePicker{display:grid;gap:10px}.aiPreferenceCategories{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.aiPreferenceCategories button{grid-column:auto;width:auto;min-width:0;min-height:43px;padding:8px;border:1px solid #dbe5f2;border-radius:11px;background:#f8fafc;color:#334155;font-weight:850}.aiPreferenceCategories button.active{border-color:#1677e8;background:#eaf3ff;color:#1267ba}.aiPreferenceCategories small{display:block;color:#1677e8;font-size:9px}.aiPreferenceBox{display:none;padding:12px;border-radius:13px;background:#f2f7fd}.aiPreferenceBox.show{display:grid;gap:10px}.aiPreferenceBox header{display:flex;align-items:center;justify-content:space-between;gap:10px}.aiPreferenceBox header button{width:auto;padding:7px 10px;border:0;border-radius:9px;background:#172033;color:#fff;font-weight:800}.aiPreferenceBox>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.aiPreferenceBox>div button,.aiSelectedPrefs button{width:auto;padding:9px;border:1px solid #cfe0f5;border-radius:999px;background:#fff;color:#475569;font-size:12px;font-weight:800}.aiPreferenceBox>div button.active{border-color:#1677e8;background:#1677e8;color:#fff}.aiPreferenceOther{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:0!important;border:0!important;background:transparent!important}.aiPreferenceOther.hide{display:none!important}.aiPreferenceOther input{min-height:38px!important}.aiSelectedPrefs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}.aiSelectedPrefs button{flex:0 0 auto;background:#eaf3ff;color:#1267ba}.aiClarifyCard{display:grid;gap:10px;margin-top:14px;padding:16px;border:1px solid #cfe0f5;border-radius:16px;background:#f7fbff}.aiClarifyCard p{margin:0;color:#475569;line-height:1.5}.aiClarifyCard div{display:flex;flex-wrap:wrap;gap:7px}.aiClarifyCard button{width:auto;padding:9px 12px;border:1px solid #bcd5f1;border-radius:999px;background:#fff;color:#1267ba;font-weight:850}
.aiPlannerForm{display:grid;gap:14px}.aiPlannerBack{justify-self:start;border:0;background:transparent;color:#1677e8;font-weight:800}.aiPlannerIntro{display:grid;gap:7px;padding:20px;border-radius:22px;background:linear-gradient(135deg,#0b72e7,#19bca0);color:#fff}.aiPlannerIntro span{font-size:10px;font-weight:950;letter-spacing:1.2px}.aiPlannerIntro h3{margin:0;font-size:22px;line-height:1.3}.aiPlannerIntro p{margin:0;color:rgba(255,255,255,.92)!important;font-size:12px;line-height:1.5}.aiPlannerFields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.aiPlannerFields label{display:grid;gap:7px;padding:12px;border:1px solid #e0e8f2;border-radius:15px;background:#fff;font-size:12px;font-weight:800}.aiPlannerFields label>b{font-size:13px;color:#172033}.aiPlannerFields input,.aiPlannerFields select{min-width:0;min-height:46px;padding:11px;border:1px solid #d6e0ec;border-radius:11px;background:#f9fbfd;font:inherit}.aiPlannerFields small{font-size:10px;line-height:1.4;color:#64748b}.aiOriginCheck{display:flex!important;align-items:center;gap:8px;min-height:44px;padding:10px!important;border-radius:12px!important;background:#f1f5f9!important}.aiOriginCheck input{width:20px;height:20px}.aiPlannerSubmit{min-height:52px;border:0;border-radius:15px;background:#1677e8;color:#fff;font-size:15px;font-weight:900;box-shadow:0 8px 20px rgba(22,119,232,.2)}
.aiOptionList{display:grid;gap:10px;margin-top:14px}.aiOptionList h3{margin:0 0 4px}.aiOptionCard>button{display:grid;width:100%;gap:7px;text-align:left;padding:15px;border:1px solid #dbe5f2;border-radius:15px;background:#fff}.aiOptionCard span{color:#1677e8;font-size:11px;font-weight:900}.aiOptionCard strong{font-size:16px}.aiOptionCard p{margin:0;color:#475569;line-height:1.45}.aiOptionCard small{color:#64748b}.aiPlanCautions{margin-top:12px;padding:12px;border-radius:13px;background:#f8fafc;color:#64748b;font-size:12px}.aiPlanCautions summary{cursor:pointer;font-weight:900;color:#334155}
.aiOptionCard{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.aiOptionCard>button:first-child{grid-column:1/-1}.aiOptionCard>.aiOptionSave{width:auto;padding:9px 13px;border-radius:10px;background:#eaf3ff;color:#1267ba;text-align:center;font-weight:850}.aiAffiliateNotice{display:grid;gap:5px;padding:13px;border:1px solid #bcebd7;border-radius:14px;background:#f0fff8}.aiAffiliateNotice p,.aiAffiliateNotice small{margin:0;color:#3f5f52;line-height:1.45}.aiStopCard.aiFlightSegment{border-color:#bcd5f1;background:#f7fbff}.aiStopCard.aiTransferSegment{border-color:#cae9dc}.aiSavedCard{grid-template-columns:42px minmax(0,1fr) auto}.aiSavedActions{display:grid;gap:5px}.aiSavedActions button{padding:6px 7px;border:0;border-radius:8px;background:#eaf3ff;color:#1267ba;font-size:9px;font-weight:850}.aiSavedActions .reactionRemove{background:#fff0f1;color:#b42318}

.aiPlanLoading{display:flex;align-items:center;gap:14px;margin-top:14px;padding:18px;border:1px solid #cfe0f5;border-radius:16px;background:#f7fbff;color:#172033;box-shadow:0 8px 24px rgba(22,119,232,.08)}.aiPlanLoadingSpinner{flex:0 0 34px;width:34px;height:34px;border:4px solid #dbeafe;border-top-color:#1677e8;border-radius:50%;animation:aiPlanSpin .85s linear infinite}.aiPlanLoading>div{display:grid;gap:5px;min-width:0}.aiPlanLoading b{font-size:14px}.aiPlanLoading p{margin:0;color:#53647a;font-size:12px;line-height:1.5}.aiPlanLoading small{display:flex;gap:4px}.aiPlanLoading small i{width:6px;height:6px;border-radius:50%;background:#1677e8;animation:aiPlanPulse 1.2s ease-in-out infinite}.aiPlanLoading small i:nth-child(2){animation-delay:.18s}.aiPlanLoading small i:nth-child(3){animation-delay:.36s}.aiPlannerSubmit:disabled{cursor:wait;opacity:.72}@keyframes aiPlanSpin{to{transform:rotate(360deg)}}@keyframes aiPlanPulse{0%,70%,100%{opacity:.25;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}
.aiPlanDetail{display:grid;gap:12px}.aiPlanDetail>h3{margin:0}.aiPlanDetail>p{margin:0;color:#475569;line-height:1.5}.aiBudgetCards{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.aiBudgetCards span{display:flex;justify-content:space-between;padding:9px;border-radius:10px;background:#eef6ff;font-size:11px}.aiDayCard{display:grid;gap:10px}.aiDayCard>h4{margin:5px 0 0;padding:10px 12px;border-radius:11px;background:#172033;color:#fff}.aiStopCard{display:grid;grid-template-columns:112px minmax(0,1fr);gap:11px;overflow:hidden;padding:0;border:1px solid #e2e8f0;border-radius:16px;background:#fff;box-shadow:0 5px 16px rgba(15,23,42,.06)}.aiStopThumb{width:112px;height:100%;min-height:132px;object-fit:cover;background:#e9f2fb}.aiStopThumbFallback{display:grid;place-items:center;background:linear-gradient(135deg,#dcecff,#dff9ef);color:#1267ba;font-size:11px;font-weight:900}.aiStopCopy{display:grid;align-content:center;gap:6px;padding:12px 12px 10px 0}.aiStopTop{display:flex;justify-content:space-between;gap:6px}.aiStopTop em{border-radius:999px;background:#eaf3ff;padding:3px 7px;color:#1267ba;font-size:9px;font-style:normal;font-weight:900}.aiStopCard time{color:#1677e8;font-weight:900}.aiStopCard p{margin:0;color:#475569;line-height:1.45}.aiStopCard small{color:#64748b}.aiPlaceRating{color:#d97706;font-size:10px;font-weight:800}.aiStopActions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 12px}.aiStopActions button,.aiStopActions a{padding:9px 10px;border:1px solid #cfe0f5;border-radius:9px;background:#f7fbff;color:#1267ba;text-decoration:none;font-size:11px;font-weight:800}.aiDayTip{margin:0;padding:9px;border-radius:9px;background:#fff7dc;color:#8a5b00;font-size:12px}.aiPlanRealActions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.aiPlanRealActions button{min-height:46px;border:0;border-radius:12px;background:#1677e8;color:#fff;font-weight:900}.aiPlanRealActions button+button{background:#eaf3ff;color:#1267ba}
.aiGuideSection{display:grid;gap:9px;margin-top:15px}.aiGuideSection h3{margin:0}.aiGuideSection article{display:grid;gap:5px;padding:12px;border:1px solid #e2e8f0;border-radius:13px}.aiGuideSection article>b{justify-self:start;padding:3px 7px;border-radius:999px;background:#fff3cd;color:#9a6700;font-size:10px}.aiGuideSection article span,.aiGuideSection article p{color:#64748b;font-size:12px}.aiGuideSection article p{margin:0}.aiGuideSection article a{color:#1677e8;font-weight:800}.aiGuideSection article button{justify-self:start;padding:8px 11px;border:0;border-radius:9px;background:#eaf3ff;color:#1267ba;font-weight:800}.aiGuideNotice{margin:0;padding:11px;border-radius:11px;background:#fff7ed;color:#9a4b12;font-size:11px;line-height:1.5}
@media(max-width:760px){.ai-panel #sheetContent{padding-left:14px;padding-right:14px;padding-bottom:120px}.aiPlannerForm{gap:10px}.aiPlannerIntro{padding:17px}.aiPlannerIntro h3{font-size:20px}.aiPlannerModeDescription{font-size:13px;line-height:1.45}.aiPlannerFields{grid-template-columns:1fr;gap:9px}.aiPlannerFields label{gap:5px;padding:11px;font-size:13px}.aiPlannerFields input,.aiPlannerFields select{width:100%;min-height:46px;padding:10px 11px;font-size:16px;box-sizing:border-box}.aiPlannerFields small{font-size:11px}.aiOriginCheck{min-height:42px;padding:8px 10px!important;box-sizing:border-box}.aiOriginCheck input{width:18px;height:18px}.aiPlannerSubmit{position:static;min-height:48px;border-radius:13px;font-size:14px}.aiBudgetCards{grid-template-columns:1fr}.aiPlanRealActions{grid-template-columns:1fr}.aiStopCard{grid-template-columns:104px minmax(0,1fr)}.aiStopThumb{width:104px}.plannerResult{font-size:14px}}
@media(max-width:760px){.aiPreferenceCategories{grid-template-columns:repeat(3,minmax(0,1fr))}.aiPreferenceBox>div{display:flex;overflow-x:auto}.aiPreferenceBox>div button{flex:0 0 auto}.aiRequestBox textarea{font-size:16px}.aiPreferenceField{grid-column:auto}.aiOptionCard{grid-template-columns:1fr}.aiOptionCard>.aiOptionSave{width:100%}}

#bottomSheet.sheet-dragging,
#categorySheet.sheet-dragging{
  transition:none !important;
}
.catWrap button:first-child,
.catWrap button:first-child.active{
  color:#ff3b30 !important;
}

/* a27 room discovery search and filters */
.room-search-results{
  display:none;position:fixed;left:12px;right:12px;top:126px;z-index:120;
  max-height:min(62vh,560px);overflow:hidden;border:1px solid #e4e8ee;border-radius:18px;
  background:rgba(255,255,255,.98);box-shadow:0 16px 42px rgba(15,23,42,.2);
}
.room-search-results.show{display:flex;flex-direction:column}
.room-search-header{display:flex;align-items:center;justify-content:space-between;padding:13px 14px 8px}
.room-search-header>.room-search-heading{display:flex;align-items:baseline;gap:8px}.room-search-header strong{font-size:17px}.room-search-header span{color:#64748b;font-size:12px}
.room-search-header>button{width:34px;height:34px;border:0;border-radius:50%;background:#f1f5f9;font-size:21px}
.place-search-sort{display:flex;align-items:center;margin-left:auto;margin-right:8px;padding:3px;border-radius:10px;background:#f1f5f9}
.place-search-sort.hide{display:none}.place-search-sort button{min-width:52px;height:28px;padding:0 9px;border:0;border-radius:8px;background:transparent;color:#64748b;font-size:11px;font-weight:900}
.place-search-sort button.active{background:#1677e8;color:#fff;box-shadow:0 2px 7px rgba(22,119,232,.22)}
.room-search-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;padding:0 12px 10px}
.room-search-tabs button{min-height:38px;border:0;border-radius:10px;background:#f1f5f9;color:#64748b;font-weight:900}
.room-search-tabs button.active{background:#1677e8;color:#fff}
.room-search-list{display:grid;gap:7px;overflow:auto;padding:0 12px 14px}
.room-search-row{display:flex;align-items:center;gap:9px;width:100%;padding:11px;border:1px solid #e5eaf0;border-radius:13px;background:#fff;text-align:left}
.room-search-kind{flex:0 0 auto;padding:5px 7px;border-radius:999px;font-size:10px;font-weight:900}
.room-search-kind.official{background:#fff1e7;color:#d55a08}.room-search-kind.regular{background:#eaf3ff;color:#1267ba}.room-search-kind.footprint{background:#ecfdf3;color:#087a46}.room-search-kind.place{background:#f1edff;color:#6941c6}.footprint-search-row{background:linear-gradient(90deg,#fbfffd,#fff)}.place-search-row{background:linear-gradient(90deg,#fcfbff,#fff)}
.room-search-copy{display:grid;min-width:0;flex:1;gap:4px}.room-search-copy strong,.room-search-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.room-search-copy strong{font-size:14px}.room-search-copy small{color:#64748b;font-size:11px}.room-search-arrow{color:#94a3b8;font-size:24px}
.room-search-empty{padding:28px 12px;text-align:center;color:#64748b;font-size:13px}

#chatFilterPanel{width:min(390px,calc(100vw - 24px));max-height:min(78vh,620px);overflow:auto}
.chat-filter-block{display:grid;gap:7px;margin-top:12px}.chat-filter-block>strong,.chat-filter-block>label,.chat-filter-grid label{color:#334155;font-size:12px;font-weight:900}
.chat-filter-block input,.chat-filter-grid select{width:100%;min-height:42px;box-sizing:border-box;border:1px solid #dbe3ee;border-radius:11px;background:#fff;padding:9px 11px;font-size:14px}
.chat-filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.chat-filter-grid label{display:grid;gap:7px}
.chat-filter-actions{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:14px}
.chat-filter-actions button{min-height:43px;border:0;border-radius:11px;font-weight:900}
#chatFilterApplyBtn{background:#1677e8;color:#fff}#chatFilterResetBtn{padding:0 15px;background:#f1f5f9;color:#475569}

/* 시·도 이상 축소 단계에서는 개별 말풍선 글자를 감추고 클러스터를 우선한다. */
body.map-province-view .triptalk-map-marker-label.room-label,
body.map-province-view .triptalk-map-marker-label.room-label-open,
body.map-province-view .triptalk-map-marker-label.room-label-private,
body.map-province-view .triptalk-map-marker-label.room-label-official{
  width:18px!important;min-width:18px!important;max-width:18px!important;height:18px!important;min-height:18px!important;
  padding:0!important;border:3px solid #fff!important;border-radius:50%!important;background:var(--room-accent,#2878d8)!important;
  color:transparent!important;font-size:0!important;overflow:visible!important;box-shadow:0 2px 7px rgba(15,23,42,.32)!important;
}
body.map-province-view .triptalk-map-marker-label.room-label::before,
body.map-province-view .triptalk-map-marker-label.room-label::after,
body.map-province-view .triptalk-map-marker-label.room-label-open::before,
body.map-province-view .triptalk-map-marker-label.room-label-open::after,
body.map-province-view .triptalk-map-marker-label.room-label-private::before,
body.map-province-view .triptalk-map-marker-label.room-label-private::after,
body.map-province-view .triptalk-map-marker-label.room-label-official::before,
body.map-province-view .triptalk-map-marker-label.room-label-official::after{display:none!important}
body.map-regional-view .triptalk-map-marker-label.room-label{max-width:98px!important;font-size:11px!important}

@media(max-width:600px){
  .room-search-results{left:8px;right:8px;top:122px;max-height:66vh;border-radius:16px}
  .room-search-header{padding-left:12px;padding-right:10px}.room-search-header>.room-search-heading span{display:none}.place-search-sort{margin-right:6px}.place-search-sort button{min-width:48px;padding:0 7px}
  #chatFilterPanel{left:12px!important;right:12px!important;width:auto!important}}

/* a29: 줌 11까지 말풍선 원형을 유지하고, 다음 축소 단계부터 숫자로 표시합니다. */
body.map-cluster-view .triptalk-map-marker-label.room-label,
body.map-cluster-view .triptalk-map-marker-label.room-label-open,
body.map-cluster-view .triptalk-map-marker-label.room-label-private,
body.map-cluster-view .triptalk-map-marker-label.room-label-official{
  position:relative!important;
  display:grid!important;
  place-items:center!important;
  width:46px!important;
  min-width:46px!important;
  max-width:46px!important;
  height:46px!important;
  min-height:46px!important;
  padding:0!important;
  border:4px solid #fff!important;
  border-radius:50%!important;
  background:#ff5252!important;
  color:transparent!important;
  font-size:0!important;
  line-height:1!important;
  overflow:visible!important;
  box-shadow:0 4px 12px rgba(15,23,42,.28)!important;
}
body.map-cluster-view .triptalk-map-marker-label.room-label::before,
body.map-cluster-view .triptalk-map-marker-label.room-label-open::before,
body.map-cluster-view .triptalk-map-marker-label.room-label-private::before,
body.map-cluster-view .triptalk-map-marker-label.room-label-official::before{
  content:"1"!important;
  display:grid!important;
  place-items:center!important;
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#fff!important;
  font-size:18px!important;
  font-weight:900!important;
  line-height:1!important;
  text-align:center!important;
  filter:none!important;
  opacity:1!important;
  z-index:1!important;
  transform:none!important;
}
body.map-cluster-view .triptalk-map-marker-label.room-label::after,
body.map-cluster-view .triptalk-map-marker-label.room-label-open::after,
body.map-cluster-view .triptalk-map-marker-label.room-label-private::after,
body.map-cluster-view .triptalk-map-marker-label.room-label-official::after{
  display:none!important;
}

/* a29: 상세 카드는 같은 좌표의 말풍선 바로 위에 붙여 함께 이동합니다. */





/* a31: 관리자 트래픽 사용자는 읽기 쉬운 카드와 축약 UID로 표시합니다. */
#policyBody.adminTrafficList{display:grid;gap:5px}
#policyBody.adminTrafficList>p{margin:0}
.adminTrafficUser{display:grid;gap:3px;padding:6px 8px;border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc}
.adminTrafficUserHead,.adminTrafficUserMeta{display:flex;align-items:center;gap:6px;min-width:0}
.adminTrafficUserHead strong{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.adminTrafficUserHead span{flex:0 0 auto;padding:2px 5px;border-radius:999px;background:#eaf3ff;color:#1267ba;font-size:8px;font-weight:900}
.adminTrafficUserHead time{flex:0 0 auto;color:#64748b;font-size:9px}
.adminTrafficUserMeta p{min-width:0;flex:1 1 auto;margin:0!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#475569!important;font-size:10px!important}
.adminTrafficUserMeta button{flex:0 0 auto;min-height:25px;padding:3px 6px;border:1px solid #cfe0f5;border-radius:7px;background:#fff;color:#1267ba;font-size:8px;font-weight:900}

/* a31: 설정의 약관 메뉴는 각 원문으로 바로 이동합니다. */
#policyBody.legalPolicyMenu{display:grid;gap:8px}
#policyBody.legalPolicyMenu .legalPolicyNotice{margin:0 0 4px;padding:10px 11px;border-radius:11px;background:#fff8db;color:#8a6100;font-size:12px;line-height:1.4}
#policyBody.legalPolicyMenu>a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;padding:12px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;color:#172033;text-decoration:none}
#policyBody.legalPolicyMenu>a strong{font-size:14px}
#policyBody.legalPolicyMenu>a span{grid-column:1;color:#64748b;font-size:11px;line-height:1.35}
#policyBody.legalPolicyMenu>a em{grid-column:2;grid-row:1/3;align-self:center;color:#1267ba;font-size:11px;font-style:normal;font-weight:900}

/* b16: 프로필 발자취는 사진 중심의 여행 갤러리로 표시합니다. */
#profileSnsTripGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;padding:3px;background:#fff}
#profileSnsTripGrid>button,#profileSnsTripGrid>.profileCachedTripGridView>button{border-radius:4px;background:#eef2f6}

#profileSnsTripGrid .snsTripVisibility{top:6px;left:6px;right:auto;padding:3px 6px;border-radius:999px;font-size:8px;box-shadow:0 2px 8px rgba(15,23,42,.18)}
.snsFootprintTile::after{content:"";position:absolute;inset:auto 0 0;height:32%;background:linear-gradient(transparent,rgba(0,0,0,.22));pointer-events:none}
.snsFootprintTile:focus-visible{z-index:2;outline:3px solid #1682ff;outline-offset:-3px}
.snsFootprintMediaCount{position:absolute;z-index:2;top:6px;right:6px;padding:3px 6px;border-radius:999px;background:rgba(15,23,42,.68);color:#fff;font-size:8px;font-style:normal;font-weight:900;backdrop-filter:blur(5px)}
#profileSnsTripGrid .snsFootprintFallback{padding:9px;background:linear-gradient(145deg,#dff2ff,#e8fff2);color:#17476d;font-size:10px;line-height:1.35;text-align:center}
#profileSnsTripGrid.profileTripFeedMode{grid-template-columns:minmax(0,1fr)!important;gap:12px!important;padding:2px 14px 14px!important}
#profileSnsTripGrid.profileTripFeedMode .profileMyTripPost{overflow:hidden!important;border-radius:14px!important;background:#fff!important}
@media(max-width:520px){#profileSnsTripGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:2px}}

/* b16: 발자취 상세는 모바일 여행 포트폴리오 카드로 표시합니다. */
.myTripPortfolio{gap:16px;margin:-4px;padding-bottom:12px}
.myTripPortfolioAuthor{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;padding:3px 2px}
.myTripPortfolioAuthor>span{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;background:linear-gradient(145deg,#1289ff,#25c5a6);color:#fff;font-size:17px;font-weight:950;box-shadow:0 5px 15px rgba(18,137,255,.2)}
.myTripPortfolioAuthor>div{display:grid;gap:3px;min-width:0}.myTripPortfolioAuthor strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.myTripPortfolioAuthor small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7b8493;font-size:10px}
.myTripPortfolioAuthor>i{padding:5px 8px;border-radius:999px;background:#ecfdf3;color:#087a46;font-size:9px;font-style:normal;font-weight:900}
.myTripPortfolioMedia{display:flex;gap:7px;margin:0 -16px;padding:0 16px 4px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.myTripPortfolioMedia::-webkit-scrollbar{display:none}
.myTripPortfolioVisual{position:relative;flex:0 0 min(84vw,430px);min-width:0;aspect-ratio:4/5;margin:0;padding:0;overflow:hidden;border:0;border-radius:20px;background:#edf2f7;scroll-snap-align:center;box-shadow:0 9px 26px rgba(15,23,42,.12)}
.myTripPortfolioVisual img,.myTripPortfolioVisual video{display:block;width:100%;height:100%;object-fit:cover}.myTripPortfolioVisual.video>i{position:absolute;top:12px;right:12px;padding:5px 8px;border-radius:999px;background:rgba(0,0,0,.62);color:#fff;font-size:9px;font-style:normal;font-weight:900}
.myTripPortfolioVisual.cover-card{flex-basis:min(92vw,620px);aspect-ratio:16/10;background:#eef8ff;box-shadow:0 8px 22px rgba(15,23,42,.09)}
.myTripPortfolioVisual.cover-card img{object-fit:contain}
.myTripPortfolioFallback{display:grid;min-height:300px;place-items:center;align-content:center;gap:8px;border-radius:20px;background:linear-gradient(145deg,#d7efff,#def9ed);color:#17476d;text-align:center}.myTripPortfolioFallback span{font-size:38px}.myTripPortfolioFallback strong{max-width:80%;font-size:20px}.myTripPortfolioFallback small{color:#527088}
.myTripPortfolioIntro{display:grid;gap:10px}.myTripPortfolio .myTripDetailHead strong{font-size:21px;line-height:1.3}.myTripPortfolio .myTripDetailHead span{font-size:11px}.myTripPortfolio .myTripDetailSummary{border:0;border-radius:14px;background:#f4f8fc;padding:13px 14px}
.myTripPortfolioStory,.myTripPortfolioCourse{display:grid;gap:10px;padding-top:3px}.myTripPortfolioStory>b,.myTripPortfolioCourse>div:first-child>b{font-size:15px}.myTripPortfolioStory .myTripDetailContent{display:grid;gap:10px}.myTripPortfolioStory .myTripDetailReview{padding:0;background:transparent;color:#344054;line-height:1.7;font-weight:650;white-space:pre-wrap}.myTripPortfolioCourse>div:first-child span{padding:4px 8px;border-radius:999px;background:#eaf3ff;color:#1267ba;font-size:9px;font-weight:900}.myTripPortfolio .myTripDetailStop{background:#f7f9fc;border:1px solid #edf1f5}
.myTripPortfolio .myTripInteractionBlock{padding:13px;border:1px solid #e8edf3;border-radius:17px;background:#fff;box-shadow:0 7px 20px rgba(15,23,42,.06)}
@media(min-width:700px){.myTripPortfolioVisual{flex-basis:390px}.myTripPortfolioVisual.cover-card{flex-basis:min(100%,620px)}.myTripPortfolioMedia{margin-left:0;margin-right:0;padding-left:0;padding-right:0}.myTripPortfolioFallback{min-height:360px}}

body.profile-detail-open{overflow:hidden}
#profileDetailModal.footprintFullScreen{align-items:stretch;background:#fff}
#profileDetailModal.footprintFullScreen .profileDetailBox{width:100%;max-width:none;height:100dvh;max-height:none;border-radius:0;box-shadow:none}
#profileDetailModal.footprintFullScreen .profileDetailHead{position:relative;z-index:4;min-height:54px;padding:max(10px,env(safe-area-inset-top)) 16px 10px;background:rgba(255,255,255,.94);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
#profileDetailModal.footprintFullScreen .profileDetailHead strong{flex:1;text-align:center}
#profileDetailModal.footprintFullScreen #profileDetailBack,
#profileDetailModal.footprintFullScreen #profileDetailClose{position:absolute;top:50%;display:grid;width:38px;height:38px;place-items:center;margin:0;padding:0;border:0;border-radius:12px;background:#f1f3f6;color:#303640;transform:translateY(-50%);font-weight:800;line-height:1}
#profileDetailModal.footprintFullScreen #profileDetailBack{left:14px;font-size:29px}
#profileDetailModal.footprintFullScreen #profileDetailClose{right:14px;left:auto;font-size:21px}
#profileDetailModal.footprintFullScreen .profileDetailBody{width:100%;max-width:100%;overflow-x:hidden;padding:16px max(16px,calc((100% - 720px)/2)) calc(30px + env(safe-area-inset-bottom));box-sizing:border-box;background:#fff}
#profileDetailModal.footprintFullScreen .myTripPortfolioMedia{margin-left:0;margin-right:0;padding-left:0;padding-right:0}
#profileDetailModal.footprintFullScreen .myTripDetail,
#profileDetailModal.footprintFullScreen .myTripPortfolio,
#profileDetailModal.footprintFullScreen .myTripPortfolioIntro,
#profileDetailModal.footprintFullScreen .aiGuidePlan,
#profileDetailModal.footprintFullScreen .aiGuideDay,
#profileDetailModal.footprintFullScreen .aiGuidePractical,
#profileDetailModal.footprintFullScreen .aiGuideSources{min-width:0;max-width:100%;box-sizing:border-box}
#profileDetailModal.footprintFullScreen .myTripDetailSummary,
#profileDetailModal.footprintFullScreen .myTripDetailReview,
#profileDetailModal.footprintFullScreen .myTripDetailSchedule p,
#profileDetailModal.footprintFullScreen .aiGuideDay p,
#profileDetailModal.footprintFullScreen .aiGuidePractical p,
#profileDetailModal.footprintFullScreen .aiGuideSources a{max-width:100%;overflow-wrap:anywhere;word-break:break-word;white-space:normal}
#profileDetailModal.footprintFullScreen .myTripDetailHashtags span{max-width:100%;box-sizing:border-box;overflow-wrap:anywhere;word-break:break-word}
@media(max-width:520px){#profileDetailModal.footprintFullScreen .profileDetailHead{min-height:50px}#profileDetailModal.footprintFullScreen .profileDetailBody{padding-left:14px;padding-right:14px}.myTripPortfolioVisual.cover-card{flex-basis:100%;width:100%}}

/* b41: 공개 베타 진입, 발자취 상세 내비 분리, 여행 아이콘 시각 크기 보정. */
#bottomNav .navTravelIcon{transform:scale(1.16)!important;transform-origin:center!important}
/* b16: 하단 내비 글라스는 기존보다 살짝 더 투명하게 유지한다. */
#bottomNav{
  background:rgba(255,255,255,.48) !important;
  border-color:rgba(255,255,255,.74) !important;
  box-shadow:0 16px 38px rgba(15,23,42,.14),inset 0 1px 0 rgba(255,255,255,.68) !important;
  backdrop-filter:blur(28px) saturate(1.65) !important;
  -webkit-backdrop-filter:blur(28px) saturate(1.65) !important;
}
#bottomNav button,
#profileTab{
  background:linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,.07)) !important;
}
/* 여행 일정·동행방의 간단한 여행자 매칭 */
.room-home-ad-banner{display:block;width:100%;margin:10px 0;border:0;border-radius:13px;overflow:hidden;background:#eef2f6;padding:0}.room-home-ad-banner.hide{display:none}.room-home-ad-banner img{display:block;width:100%;aspect-ratio:6/1;object-fit:cover}

/* c7: 로고 원본 전체가 잘리지 않도록 표시한다. */
#topBar #topLogo{width:100%;max-width:none;height:60px;overflow:hidden;border-radius:0}
#topBar #topLogo img{width:100%;height:100%;object-fit:contain;object-position:center}
.chat-header-right{align-items:stretch;gap:6px}
#chatTranslateBtn,#travelMatchRoomBtn,#roomInfoBtn{box-sizing:border-box;display:grid;place-items:center;height:44px;border-radius:15px;padding:0}
#chatTranslateBtn{width:54px;min-width:54px;border:1px solid #cbd5e1;background:#fff;color:#45566b;font-size:12px;font-weight:900}#chatTranslateBtn.active{border-color:#69aaf6;background:#e9f4ff;color:#0877da}
#travelMatchRoomBtn{width:62px;min-width:62px;border:1px solid #d8ddea;background:#f5f6fa;color:#59647a;box-shadow:0 3px 9px rgba(35,49,70,.09)}
#roomInfoBtn{width:46px;min-width:46px}
.travelMatchHeaderIcon{display:block;width:25px;height:25px}.travelMatchHeaderIcon svg{display:block;width:100%;height:100%;fill:currentColor;stroke:none}#travelMatchRoomBtn{color:#607080}#travelMatchRoomBtn.is-matching{color:#7451d6}
.roomInfoGearIcon{display:block;width:25px;height:25px}.roomInfoGearIcon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.chatTranslationPanel{flex:0 0 auto;margin:0 10px 7px;border:1px solid #cfe1f5;border-radius:14px;padding:10px;background:#f7fbff;box-shadow:0 5px 16px rgba(15,55,90,.08)}.chatTranslationPanel.hide{display:none}.chatTranslationPanel>div{display:flex;align-items:center;gap:7px}.chatTranslationPanel strong{font-size:12px;color:#24415d}.chatTranslationPanel select{min-width:0;flex:1;border:1px solid #d6e2ef;border-radius:9px;padding:7px;background:#fff}.chatTranslationPanel [id="chatTranslationClose"]{border:0;background:transparent;color:#64748b;font-size:19px}.chatTranslationPanel p{min-height:20px;margin:8px 0;color:#173b5e;font-size:14px;font-weight:750;line-height:1.45}.chatTranslationPanel>button{width:100%;border:0;border-radius:9px;padding:8px;background:#1687f8;color:#fff;font-size:12px;font-weight:850}.chatTranslationPanel>button:disabled{background:#dbe5ef;color:#8795a6}.chatTranslationLargeOverlay{position:fixed;inset:0;z-index:1000800;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:34px;background:#fff;color:#111}.chatTranslationLargeOverlay>button{position:absolute;right:16px;top:max(16px,env(safe-area-inset-top));width:42px;height:42px;border:0;border-radius:50%;background:#edf1f5;font-size:24px}.chatTranslationLargeOverlay small{color:#0877da;font-weight:900}.chatTranslationLargeOverlay p{max-width:900px;font-size:clamp(30px,8vw,64px);font-weight:900;line-height:1.35;text-align:center;overflow-wrap:anywhere}.chat-auto-translation{margin-top:7px;padding-top:7px;border-top:1px solid rgba(255,255,255,.34)}.chat-message-row.theirs .chat-auto-translation{border-color:#dbe7f2}.chat-auto-translation>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.chat-auto-translation b{color:#1687f8;font-size:10px}.chat-auto-translation button{border:0;background:transparent;color:#748397;font-size:10px;text-decoration:underline}.chat-auto-translation p{margin:4px 0 0;font-size:13px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.chat-auto-translation.is-loading{font-size:11px;opacity:.65}
.fieldTranslationOverlay{position:fixed;z-index:1000700;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:14px;box-sizing:border-box;background:rgba(15,23,42,.52)}.fieldTranslationOverlay.hide{display:none}.fieldTranslationSheet{display:grid;width:min(520px,100%);gap:12px;padding:18px;box-sizing:border-box;border-radius:22px;background:#fff;box-shadow:0 18px 55px rgba(15,23,42,.3)}.fieldTranslationSheet header{display:flex;align-items:center;justify-content:space-between}.fieldTranslationSheet header strong{font-size:20px}.fieldTranslationSheet header button{width:40px;height:40px;border:0;border-radius:12px;background:#f1f3f5;color:#344054;font-size:25px;font-weight:700}.fieldTranslationGuide{margin:0;color:#667085;font-size:13px}.fieldTranslationSheet label{display:flex;align-items:center;gap:12px}.fieldTranslationSheet label span{font-size:13px;font-weight:850}.fieldTranslationSheet select{flex:1;min-width:0;padding:10px;border:1px solid #d6e2ef;border-radius:11px;background:#fff}.fieldTranslationSheet textarea{width:100%;resize:none;box-sizing:border-box;padding:13px;border:1px solid #cbd5e1;border-radius:13px;font:inherit;line-height:1.5}.fieldTranslationSheet>button{min-height:44px;border:0;border-radius:12px;background:#1687f8;color:#fff;font-weight:850}.fieldTranslationSheet>button:disabled{background:#dbe5ef;color:#8795a6}.fieldTranslationResult{min-height:86px;padding:14px;box-sizing:border-box;border-radius:14px;background:#f4f8fc;color:#173b5e;font-size:18px;font-weight:800;line-height:1.5;overflow-wrap:anywhere}
.translationLanguagePair{display:flex!important;align-items:center;gap:6px}.translationLanguagePair select{min-width:0;flex:1}.translationLanguagePair [id$="Swap"]{flex:0 0 34px;width:34px;height:34px;border:1px solid #d6e2ef!important;border-radius:10px!important;background:#fff!important;color:#1687f8!important;font-size:17px!important;font-weight:900!important}.fieldTranslationSheet .translationLanguagePair span{white-space:nowrap}@media(max-width:420px){.translationLanguagePair strong,.fieldTranslationSheet .translationLanguagePair span{display:none}.translationLanguagePair select{font-size:12px}}
.coreOnboarding{position:fixed;z-index:1000900;inset:0;pointer-events:none}.coreOnboarding:before{content:"";position:absolute;inset:0;background:rgba(15,23,42,.14)}.coreOnboardingPopup{position:fixed;z-index:2;left:50%;top:50%;display:grid;width:min(310px,calc(100% - 44px));gap:10px;padding:15px;box-sizing:border-box;border:1px solid rgba(255,255,255,.9);border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 14px 38px rgba(15,23,42,.28);transform:translate(-50%,-50%);pointer-events:auto}.coreOnboardingPopup header,.coreOnboardingPopup footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.coreOnboardingCount{color:#f04438;font-size:11px;font-weight:900}.coreOnboardingPopup header button{border:0;background:transparent;color:#667085;font-size:11px}.coreOnboardingTitle{font-size:17px;color:#172033}.coreOnboardingText{margin:0;color:#4a5568;font-size:13px;line-height:1.55}.coreOnboardingPopup footer button{min-width:74px;height:36px;border:0;border-radius:10px;background:#eef2f6;color:#526174;font-weight:850}.coreOnboardingPopup footer button:last-child{background:#1687f8;color:#fff}.coreOnboardingPopup footer button:disabled{visibility:hidden}.coreOnboardingArrow{--arrow-angle:0deg;position:fixed;z-index:3;width:60px;height:44px;transform:translate(-50%,-50%) rotate(var(--arrow-angle));transform-origin:center;filter:drop-shadow(0 5px 3px rgba(70,70,70,.38));pointer-events:none}.coreOnboardingArrow svg{display:block;width:100%;height:100%;overflow:visible}.coreOnboardingArrow path{fill:#fff;stroke:#f12626;stroke-width:5;stroke-linejoin:round;stroke-linecap:round}.coreOnboardingArrow.animate{animation:coreArrowBounce .62s ease-in-out 2}@keyframes coreArrowBounce{0%,100%{transform:translate(-50%,-50%) rotate(var(--arrow-angle)) translateX(0)}50%{transform:translate(-50%,-50%) rotate(var(--arrow-angle)) translateX(8px)}}
.coreOnboardingPopup.position-upper{top:27%}
.chat-plus-menu button svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.chat-plus-menu button[data-tool="video"] svg path{fill:currentColor;stroke:none}.room-create-click-cooldown #routeQuickAddBar,.room-create-click-cooldown #bottomNav{pointer-events:none}
.categoryBetaNotice{display:block;margin:0 18px 12px;padding:0 2px;color:#1677e8;font-size:12px;font-weight:900;line-height:1.55;letter-spacing:-.01em}.categoryBetaNotice span{display:block;min-width:0}
.travel-match-active{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;padding:9px 10px;border-radius:11px;background:#eef8f2;color:#19834b;font-size:12px;font-weight:800}.travel-match-active button{border:0;background:transparent;color:#687586;text-decoration:underline}
.room-create-optional{font-size:11px;color:#8a94a3;font-weight:500}.travel-match-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:14px;border:1px solid #dce7f3;border-radius:15px;background:#f7fbff}.travel-match-entry>div{display:flex;min-width:0;flex-direction:column;gap:4px}.travel-match-entry strong{font-size:14px;color:#152236}.travel-match-entry span{font-size:12px;color:#6d7a8c}.travel-match-entry button,.travel-match-card>button,.travel-match-response button{border:0;border-radius:10px;background:#1687f8;color:#fff;font-weight:700;padding:9px 12px;white-space:nowrap}.travel-match-entry.muted{opacity:.72}.travel-match-modal{position:fixed;inset:0;z-index:12050;display:flex;align-items:flex-end;justify-content:center;background:rgba(9,20,35,.42)}.travel-match-modal.hide{display:none}.travel-match-sheet{width:min(100%,520px);max-height:78vh;overflow:hidden;border-radius:22px 22px 0 0;background:#fff;box-shadow:0 -12px 40px rgba(14,35,62,.18)}.travel-match-sheet>header{display:flex;align-items:center;justify-content:space-between;padding:18px;border-bottom:1px solid #edf1f6}.travel-match-sheet>header>div{display:flex;flex-direction:column;gap:3px}.travel-match-sheet>header strong{font-size:18px}.travel-match-sheet>header span{font-size:12px;color:#788596}.travel-match-sheet>header button{width:36px;height:36px;border:0;border-radius:12px;background:#f1f4f8;font-size:22px}.travel-match-body{max-height:calc(78vh - 74px);overflow:auto;padding:12px 16px calc(22px + env(safe-area-inset-bottom))}.travel-match-card{display:flex;align-items:center;gap:11px;padding:13px 0;border-bottom:1px solid #edf1f6}.travel-match-card>div:nth-child(2){display:flex;min-width:0;flex:1;flex-direction:column;gap:4px}.travel-match-card strong{font-size:14px}.travel-match-card span{font-size:12px;color:#728095}.travel-match-avatar{display:grid;width:44px;height:44px;flex:0 0 44px;place-items:center;overflow:hidden;border-radius:50%;background:#e8f3ff;color:#1677d2;font-weight:800}.travel-match-avatar img{width:100%;height:100%;object-fit:cover}.travel-match-response{display:flex!important;flex:0 0 auto!important;flex-direction:row!important;gap:6px!important}.travel-match-response button:first-child{background:#eef2f6;color:#536173}.travel-match-empty{display:flex;flex-direction:column;gap:7px;padding:38px 12px;text-align:center}.travel-match-empty span{font-size:13px;line-height:1.5;color:#728095}.travel-match-toast{position:fixed;right:14px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:12040;border:0;border-radius:999px;background:#1687f8;color:#fff;box-shadow:0 8px 24px rgba(22,135,248,.3);padding:11px 15px;font-weight:800}#travelMatchRoomBtn{border:0;border-radius:10px;background:#e9f4ff;color:#0877da;padding:8px 10px;font-weight:800}
#travelMatchRoomBtn.is-matching{position:relative!important;background:#7451d6!important;color:#fff!important}#travelMatchRoomBtn.is-matching::after{content:attr(data-matching-text);position:absolute;inset:0;display:grid;place-items:center;border-radius:inherit;background:#7451d6;color:#fff;font-size:22px;font-weight:950}
#travelMatchRoomBtn.is-matching .travelMatchLoadingDots{position:absolute;z-index:2;inset:0;display:flex;justify-content:center;margin:0;border-radius:inherit;background:#7451d6}#travelMatchRoomBtn.is-matching .travelMatchLoadingDots b{width:5px;height:5px}
.aiPlacePhotoAttribution a{display:inline-flex;align-items:center;gap:4px}.aiPlacePhotoAttribution img{width:18px;height:18px;border-radius:50%;object-fit:cover}.aiPlacePhotoAttribution b{letter-spacing:.01em}

/* Final precedence: mobile safe-area icon bar and profile bottom sheet. */
#bottomNav{bottom:calc(12px + env(safe-area-inset-bottom))!important;width:min(620px,calc(100vw - 24px))!important;height:64px!important;padding:7px 10px!important;border-radius:24px!important;overflow:visible!important}
#bottomNav>button,#profileTab{height:50px!important;min-height:50px!important;padding:0!important;border:0!important;border-radius:17px!important;background:transparent!important;color:#777b82!important;box-shadow:none!important}
#bottomNav>button svg,#profileTab svg{display:block!important;width:27px!important;height:27px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}
#bottomNav>button.active:not(#profileTab){color:#3d424a!important;background:rgba(255,255,255,.48)!important}
#profilePanel{top:auto!important;bottom:0!important;height:min(70dvh,680px)!important;max-height:calc(100dvh - 86px)!important;border-radius:28px 28px 0 0!important;transform:translateY(105%)!important;transition:transform .24s cubic-bezier(.2,.8,.2,1)!important}
#profilePanel.show{top:auto!important;transform:translateY(0)!important}
#profilePanel.profile-dragging{transition:none!important}
@media(max-width:520px){#bottomNav{width:calc(100vw - 22px)!important}}

/* b16 v5: 기존 텍스트 내비를 복구하고 프로필만 사람 아이콘으로 유지한다. */
#bottomNav{
  bottom:calc(10px + env(safe-area-inset-bottom))!important;
  grid-template-columns:none!important;
  display:flex!important;
  padding:7px 10px!important;
}
#bottomNav>button.bottom-tab-text{
  display:flex!important;
  flex:1 1 0!important;
  height:50px!important;
  min-height:50px!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 6px!important;
  color:#31343a!important;
  font-size:13px!important;
  font-weight:850!important;
  line-height:1!important;
}
#bottomNav>button.bottom-tab-text.active{color:#0877e8!important;background:rgba(255,255,255,.52)!important}
#bottomNav>#profileTab{display:flex!important;flex:1 1 0!important;align-items:center!important;justify-content:center!important}
#bottomNav>#profileTab svg{display:block!important;width:25px!important;height:25px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}
#bottomNav .bottomChatAlertBadge{top:2px!important;left:calc(50% + 12px)!important}

/* 프로필 카드가 블러 배경보다 항상 위에 있어 내부 터치가 닫기로 전달되지 않게 한다. */
.profilePanelBackdrop{z-index:99998!important;background:rgba(15,23,42,.12)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
#profilePanel{z-index:99999!important}
#profilePanel.show{pointer-events:auto!important}
#profilePanel.show #profileContent,#profilePanel.show .snsProfileTabs{pointer-events:auto!important}

/* 대표 사진 1장과 하단 썸네일 방식의 발자취 갤러리 */
.myTripPortfolioGallery{display:grid;width:80%;gap:9px;margin-inline:auto}
.myTripPortfolioViewport{display:flex;width:100%;aspect-ratio:1/1;overflow-x:auto;overflow-y:hidden;border-radius:18px;background:#edf2f7;box-shadow:0 9px 26px rgba(15,23,42,.12);scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.myTripPortfolioViewport::-webkit-scrollbar{display:none}
.myTripPortfolioViewport>.myTripPortfolioVisual{position:relative;flex:0 0 100%;width:100%;height:100%;margin:0;overflow:hidden;scroll-snap-align:start;scroll-snap-stop:always}
.myTripPortfolioViewport>.myTripPortfolioVisual img,.myTripPortfolioViewport>.myTripPortfolioVisual video{display:block;width:100%;height:100%;object-fit:cover}
.myTripPortfolioViewport>.myTripPortfolioVisual.cover-card img{object-fit:contain}
.myTripPortfolioThumbs{display:flex;gap:7px;overflow-x:auto;padding:1px 1px 3px;scrollbar-width:none}
.myTripPortfolioThumbs::-webkit-scrollbar{display:none}
.myTripPortfolioThumbs button{flex:0 0 54px;width:54px;height:54px;overflow:hidden;padding:0;border:2px solid transparent;border-radius:10px;background:#edf2f7;color:#fff}
.myTripPortfolioThumbs button.active{border-color:#1687f8}
.myTripPortfolioThumbs img{display:block;width:100%;height:100%;object-fit:cover}
.myTripPortfolioThumbs span{display:grid;width:100%;height:100%;place-items:center;background:#1f2937;font-size:18px}

/* 중복 주소 카드 대신 한눈에 보이는 간단한 코스 지도 */
.myTripRouteMap{display:grid;gap:9px}
.myTripRouteMap svg{display:block;width:100%;height:190px;border-radius:16px;background:#edf4f8;box-shadow:inset 0 0 0 1px rgba(15,23,42,.07)}
.myTripRouteMap .road{fill:none;stroke:#fff;stroke-width:8;opacity:.92}
.myTripRouteMap .route{fill:none;stroke:#1976ef;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.myTripRouteMap circle{stroke:#fff;stroke-width:1.5;vector-effect:non-scaling-stroke}.myTripRouteMap circle.start{fill:#20a45a}.myTripRouteMap circle.via{fill:#1976ef}.myTripRouteMap circle.end{fill:#ef3340}
.myTripRouteMap text{fill:#fff;font-size:4px;font-weight:900;text-anchor:middle;pointer-events:none}
.myTripRouteSummary{display:flex;align-items:center;gap:5px;overflow-x:auto;padding:9px 10px;border-radius:13px;background:#f4f7fb;white-space:nowrap;scrollbar-width:none}
.myTripRouteSummary span{font-size:11px;font-weight:850;color:#25364a}.myTripRouteSummary i{color:#1682ff;font-size:12px;font-style:normal}
@media(max-width:520px){#bottomNav{bottom:calc(10px + env(safe-area-inset-bottom))!important}.myTripRouteMap svg{height:160px}}


/* b16 v6: 일정과 발자취 코스를 짧은 접이식 카드로 통일한다. */
.schedule-builder{padding:14px!important;gap:10px!important}
.schedule-builder-title{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important}
.schedule-builder-title>b{font-size:18px!important}
.schedule-builder-tools{display:flex;align-items:center;gap:7px}
.schedule-tip{position:relative}
.schedule-tip summary{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:7px 10px;border-radius:999px;background:#eef6ff;color:#0877e8;font-size:11px;font-weight:900;cursor:pointer;list-style:none}
.schedule-tip summary::-webkit-details-marker,.course-accordion summary::-webkit-details-marker,.myTripCourseAccordion summary::-webkit-details-marker{display:none}
.schedule-tip>div{position:absolute;z-index:30;top:calc(100% + 7px);right:0;width:min(310px,calc(100vw - 62px));padding:12px;border:1px solid #cfe2f8;border-radius:13px;background:#fff;color:#52647a;font-size:12px;line-height:1.65;box-shadow:0 12px 30px rgba(15,23,42,.16)}
.schedule-time-card{padding:11px!important}
.course-head{margin:4px 0 8px!important;padding:0!important}
.course-source-badge{display:inline-flex;width:max-content;margin:0 0 8px;padding:5px 9px;border-radius:999px;background:#eef8ff;color:#0877e8;font-size:11px;font-weight:850}
.course-source-badge.ai{background:#edfafa;color:#078b83}
.course-groups,.myTripCourseGroups{display:grid;gap:8px}
.course-accordion,.myTripCourseAccordion{overflow:hidden;border:1px solid #dce5ef;border-radius:14px;background:#fff}
.course-accordion>summary,.myTripCourseAccordion>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:12px;cursor:pointer;list-style:none}
.course-accordion>summary b,.myTripCourseAccordion>summary b{color:#0877e8;font-size:13px;white-space:nowrap}
.course-accordion>summary span,.myTripCourseAccordion>summary span{overflow:hidden;color:#46566b;font-size:12px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}
.course-accordion>summary i,.myTripCourseAccordion>summary i{padding:4px 7px;border-radius:999px;background:#f0f5fa;color:#63738a;font-size:10px;font-style:normal;font-weight:850}
.course-accordion[open]>summary,.myTripCourseAccordion[open]>summary{border-bottom:1px solid #e7edf4;background:#f8fbff}
.course-accordion-body,.myTripCourseBody{display:grid;gap:9px;padding:10px}
.course-group-actions,.myTripCourseActions{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.course-group-actions button,.myTripCourseActions button{box-sizing:border-box;width:100%;min-width:0;height:34px;padding:0 10px;border:1px solid #d9dee6;border-radius:9px;background:#f1f3f5;color:#3f4854;font-size:11px;font-weight:850}
.course-delete-current{min-width:86px!important;padding:7px 10px!important;border:1px solid #fecaca!important;border-radius:9px!important;background:#fff7f7!important;color:#b42318!important;font-size:11px!important}
.course-inline-map,.myTripCourseInlineMap{width:100%;height:220px;overflow:hidden;border-radius:12px;background:#edf3f8}
.course-inline-map[hidden],.myTripCourseInlineMap[hidden]{display:none!important}
.course-stop-list{display:grid;gap:5px}
.course-stop{min-height:42px!important;padding:7px 8px!important}
.course-primary-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.course-primary-actions button{height:43px!important;margin:0!important;border-radius:11px!important;font-size:13px!important;font-weight:900!important}
.myTripPortfolioCourse{display:grid;gap:9px}
.myTripPortfolioCourse>div:first-child{display:flex;align-items:center;justify-content:space-between}
.myTripCourseFallback{display:grid;gap:6px;padding:10px}
.myTripCourseFallback span{display:flex;align-items:center;gap:7px;color:#3c4d62;font-size:12px;font-weight:750}
.myTripCourseFallback b{display:grid;width:23px;height:23px;place-items:center;border-radius:50%;background:#1682ff;color:#fff}

#profilePanel #profileContent{height:calc(100% - 28px);overflow-y:auto;overscroll-behavior:contain;padding-bottom:calc(98px + env(safe-area-inset-bottom))!important}
@media(max-width:520px){.course-inline-map,.myTripCourseInlineMap{height:190px}.course-accordion>summary,.myTripCourseAccordion>summary{padding:11px 10px}}

/* b18: restore visible close controls and clarify primary schedule actions. */
#bottomSheetClose,
#sheetClose,
#categoryResultsClose,
#bottomSheet .bottomSheetLegacyClose,
.bottomSheetHeader button[aria-label="닫기"],
.sheetHeader button[aria-label="닫기"]{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}

.bottomSheetHeader{justify-content:space-between!important}
.sheetHeaderActions:has(#sheetClose){min-width:44px!important}

/* b19: 하단 내비의 투명 글라스 질감을 복구한다. */
#bottomNav{
  background:linear-gradient(145deg,rgba(255,255,255,.25),rgba(238,247,255,.10))!important;
  border:1px solid rgba(255,255,255,.62)!important;
  box-shadow:0 14px 36px rgba(15,23,42,.14),inset 0 1px 0 rgba(255,255,255,.68)!important;
  backdrop-filter:blur(22px) saturate(1.65)!important;
  -webkit-backdrop-filter:blur(22px) saturate(1.65)!important;
}

#profilePanel.sheet-dragging{transition:none!important}
.course-primary-actions button{
  border:0!important;
  background:#1682ff!important;
  color:#fff!important;
  box-shadow:0 5px 14px rgba(22,130,255,.2)!important;
}
.course-primary-actions button+button{background:#0f6fd8!important}
.course-primary-actions button:disabled{
  background:#b9c7d8!important;
  color:#f8fafc!important;
  box-shadow:none!important;
  opacity:1!important;
}
#profileSnsTripGrid{gap:4px!important;padding:4px!important}
#profileSnsTripGrid>button,
#profileSnsTripGrid>.profileCachedTripGridView>button{
  overflow:hidden!important;
  border-radius:7px!important;
}
#profileSnsTripGrid>button img,
#profileSnsTripGrid>.profileCachedTripGridView>button img,
#profileSnsTripGrid .snsFootprintFallback{border-radius:7px!important}

/* b29: 카테고리 결과 배경은 화면 끝까지 이어지고 내용만 하단 내비를 피한다. */
.category-results-panel{
  bottom:0!important;
  border-radius:20px 20px 0 0!important;
}
#categoryResultsContent{
  padding-bottom:calc(24px + env(safe-area-inset-bottom))!important;
}
body.filter-sheet-open #bottomNav,
body.official-channel-open #bottomNav,
body.sheet-open #bottomNav,
body.category-results-open #bottomNav,
body.chat-open #bottomNav{
  display:none!important;
}
body.filter-sheet-open #categorySheet,
body.official-channel-open #categorySheet,
body.sheet-open #categorySheet{
  padding-bottom:calc(18px + env(safe-area-inset-bottom))!important;
  background:rgba(250,250,252,.96)!important;
}
body.filter-sheet-open #sheetList,
body.official-channel-open #sheetList,
body.sheet-open #sheetList{
  padding-bottom:calc(24px + env(safe-area-inset-bottom))!important;
}

/* b29: 1:1 대화는 일반 하단 팝업보다 항상 앞에 있는 전체 화면이다. */
#directMessageModal{z-index:100100!important;isolation:isolate}
#directThreadActionMenu{z-index:100110!important}
body.direct-message-open{overflow:hidden!important;overscroll-behavior:none!important}

/* b29: 앱 내부의 모든 × 닫기 버튼을 하나의 공통 규격으로 맞춘다. */
button.mapps-close-button:not(#mapps-close-specificity){
  display:inline-grid!important;
  place-items:center!important;
  flex:0 0 36px!important;
  width:36px!important;
  min-width:36px!important;
  max-width:36px!important;
  height:36px!important;
  min-height:36px!important;
  max-height:36px!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:12px!important;
  background:#f0f2f5!important;
  color:#34383f!important;
  box-shadow:none!important;
  font-family:-apple-system,BlinkMacSystemFont,"Noto Sans KR",sans-serif!important;
  font-size:22px!important;
  font-weight:500!important;
  line-height:1!important;
  text-align:center!important;
  cursor:pointer!important;
}
button.mapps-close-button:not(#mapps-close-specificity):active{background:#e2e6eb!important;transform:scale(.96)}
button.mapps-close-button:not(#mapps-close-specificity):focus-visible{outline:3px solid rgba(8,124,255,.28)!important;outline-offset:2px!important}
#profileHeader{position:relative!important}
#profileHeader.profileSheetHandle{min-height:54px!important;background:#fff!important;border-bottom:0!important}
#profileHeader.profileSheetHandle>span{position:absolute!important;top:12px!important;left:50%!important;transform:translateX(-50%)!important}


/* b30: 알림은 지도 좌측 상단, 경로 추가는 오른쪽 지도 도구 묶음에 둔다. */
#profileAlertQuickBtn{
  position:fixed!important;
  left:12px!important;
  right:auto!important;
  top:168px!important;
  z-index:95!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:52px!important;
  min-width:52px!important;
  height:52px!important;
  min-height:52px!important;
  padding:0!important;
  border:1px solid rgba(17,24,39,.12)!important;
  border-radius:50%!important;
  background:#fff!important;
  color:#111!important;
  box-shadow:0 5px 14px rgba(15,23,42,.16)!important;
}
#profileAlertQuickBtn.has-unread{
  background:#fff5f5!important;
  border-color:#ef4444!important;
  box-shadow:0 5px 16px rgba(239,68,68,.28)!important;
}
#profileAlertQuickBtn.has-unread .floating-bell{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ef4444' stroke='%23b91c1c' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9'/%3E%3Cpath d='M10 21h4'/%3E%3C/svg%3E")!important;
}
.floating-route{
  width:40px;height:40px;border-radius:50%;
  background-image:url("../assets/route-button-icon-c90.png");
  background-size:cover;background-position:center;background-repeat:no-repeat;
}
#routeQuickAddBtn.route-saving{pointer-events:none;opacity:.62}
#routeQuickAddBtn.active{background:#e8f3ff!important;border-color:#69aaf6!important;box-shadow:0 6px 18px rgba(8,124,255,.24)!important}
body.sheet-open #profileAlertQuickBtn,
body.filter-sheet-open #profileAlertQuickBtn,
body.official-channel-open #profileAlertQuickBtn,
body.category-results-open #profileAlertQuickBtn{
  opacity:0!important;
  pointer-events:none!important;
}

.authStatusToast{position:fixed;left:50%;bottom:calc(92px + env(safe-area-inset-bottom));z-index:10050;transform:translate(-50%,14px);padding:11px 16px;border-radius:999px;background:rgba(17,24,39,.92);color:#fff;font-size:14px;font-weight:800;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;white-space:nowrap}
.authStatusToast.show{opacity:1;transform:translate(-50%,0)}
.tripTalkLocationPicker.routeQuickPicker{padding-bottom:calc(14px + env(safe-area-inset-bottom))}
.routeQuickPicker .tripTalkSelectedAddress{padding:8px 10px;border-radius:10px;background:#f4f7fb;font-weight:750}
.routeQuickPicker .tripTalkPickerMap{height:min(420px,46vh)}
.routeQuickPicker footer{grid-template-columns:1fr 1fr 1.5fr;position:sticky;bottom:0;padding-top:6px;background:#fff}
.routeQuickPicker [data-undo-route]{background:#eef1f5;color:#344054}
.routeQuickMapNumber{
  display:grid;width:30px;height:30px;place-items:center;box-sizing:border-box;
  border:3px solid #fff;border-radius:50%;background:#087cff;color:#fff;
  box-shadow:0 3px 10px rgba(8,62,125,.3);font-size:12px;font-weight:950;
}
@media(max-width:520px){#profileAlertQuickBtn{top:168px!important;left:10px!important}}
.room-search-loading{display:grid;gap:4px;padding:18px;background:#fff;color:#172033}
.room-search-loading b{font-size:14px}
.room-search-loading span{color:#667085;font-size:12px}

/* b31: 메인 지도 자체에서 경로를 만들고 하단 작업 바만 띄운다. */
.mainRouteBar{position:fixed;left:10px;right:10px;bottom:calc(82px + env(safe-area-inset-bottom));z-index:100000;display:none;overflow:hidden;border:1px solid rgba(255,255,255,.72);border-radius:18px;background:rgba(255,255,255,.9);box-shadow:0 12px 34px rgba(15,23,42,.22);backdrop-filter:blur(20px) saturate(1.45);-webkit-backdrop-filter:blur(20px) saturate(1.45)}
.mainRouteBar.show{display:block}
.mainRouteActions{display:grid;grid-template-columns:1.05fr .8fr 1.25fr .75fr;gap:6px;padding:9px}
.mainRouteActions button{min-width:0;height:42px;padding:0 8px;border:0;border-radius:11px;background:#eef2f7;color:#263244;font-size:11px;font-weight:900}
.mainRouteActions [data-route-count]{background:#e7f2ff;color:#0873df}
.mainRouteActions [data-route-save]{background:#087cff;color:#fff}
.mainRouteActions [data-route-cancel]{color:#d72f3f}
.mainRouteActions button:disabled{opacity:.42}
.mainRouteList{display:none;max-height:34dvh;overflow:auto;padding:9px 9px 0}
.mainRouteBar.expanded .mainRouteList{display:grid;gap:6px}
.mainRouteList article{display:grid;grid-template-columns:27px minmax(0,1fr) auto;align-items:center;gap:7px;padding:8px;border-radius:11px;background:#f6f8fb}
.mainRouteList article>b,.mainRouteNumber{display:grid;place-items:center;width:27px;height:27px;border:3px solid #fff;border-radius:50%;background:#087cff;color:#fff;box-shadow:0 3px 9px rgba(8,82,164,.28);font-size:11px;font-weight:950}
.mainRouteList article>div:nth-child(2){display:grid;min-width:0;gap:2px}.mainRouteList strong,.mainRouteList span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mainRouteList strong{font-size:12px}.mainRouteList span{color:#667085;font-size:10px}
.mainRouteList article>div:last-child{display:none;gap:3px}.mainRouteBar.editing .mainRouteList article>div:last-child{display:flex}.mainRouteList article>div:last-child button{height:28px;padding:0 7px;border:0;border-radius:7px;background:#e8edf4;color:#344054;font-size:9px;font-weight:850}.mainRouteList article>div:last-child button:last-child{color:#d72f3f}
.mainRouteList>p{margin:0;padding:12px;border-radius:10px;background:#f6f8fb;color:#667085;font-size:12px;text-align:center}
.mainRouteNumber{border:0;cursor:pointer}
body.main-route-mode #routeQuickAddBtn{pointer-events:none}
body.main-route-mode.category-results-open #bottomNav{display:flex!important}
body.main-route-mode .category-results-panel{top:auto!important;bottom:calc(142px + env(safe-area-inset-bottom))!important;height:min(42dvh,410px)!important;border-radius:20px!important;box-shadow:0 -10px 30px rgba(15,23,42,.18)!important}
body.main-route-mode .category-results-panel #categoryResultsContent{max-height:calc(min(42dvh,410px) - 72px)!important;overflow:auto!important}
.course-saved-empty{display:grid;width:100%;min-height:120px;place-content:center;gap:7px;border:1px dashed #bfd0e4;border-radius:15px;background:#f8fbff;text-align:center}.course-saved-empty b{font-size:14px}.course-saved-empty span{color:#718096;font-size:11px}
.course-saved-loading{display:grid;width:100%;min-height:90px;place-items:center;color:#718096;font-size:11px}
#profilePanel .profileHeroActions{top:58px!important;right:8px!important}

/* b33: 코스는 펼친 상태로 간결하게 표시하고 장소 목록 대신 날짜를 바로 선택한다. */
.course-accordion-fixed>.course-fixed-summary{display:block;padding:12px;background:#f8fbff}
.course-accordion-fixed>.course-fixed-summary span{display:flex;align-items:center;min-width:0;gap:7px;overflow:hidden;color:#46566b;font-size:12px;font-weight:750;white-space:nowrap}
.course-accordion-fixed>.course-fixed-summary b{flex:0 0 auto;color:#0877e8;font-size:13px}
.course-accordion-fixed>.course-fixed-summary small{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:inherit}
.course-date-picker{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;margin-top:10px;padding:10px 12px;border:1px solid #dce5ef;border-radius:13px;background:#f8fbff}
.course-date-picker>span{color:#344054;font-size:12px;font-weight:900}
.course-date-picker>input{min-width:0;height:39px;padding:0 10px;border:1px solid #d4deea;border-radius:10px;background:#fff;color:#172033;font:inherit;font-size:13px;font-weight:800}
.course-primary-actions:has([data-course-rate]) [data-course-rate]{background:#19a463!important;color:#fff!important}
.footprintStampRating{padding-top:3px!important}
.doubleFootStamp{display:block;width:46px;height:34px;color:#cbd1d9}.doubleFootStamp g{fill:currentColor}.doubleFootStamp.active{color:#111}
.footprintStampRating .footprintReviewStars span{min-height:58px;background:#f0f6f2}
.footprintStampRating .footprintReviewStars input:checked+span{background:#ffe100}
@media(max-width:390px){.doubleFootStamp{width:39px;height:30px}.course-date-picker{grid-template-columns:1fr}.course-date-picker>input{width:100%;box-sizing:border-box}}

/* b34: 경로 작업은 하단 내비 대신 독립된 하단 팝업으로 표시한다. */
body.main-route-mode #bottomNav{display:none!important}
.mainRouteBar{left:0!important;right:0!important;bottom:0!important;border-width:1px 0 0!important;border-radius:22px 22px 0 0!important;padding-bottom:env(safe-area-inset-bottom)!important;background:rgba(255,255,255,.97)!important}
body:has(#bottomSheet.active) .mainRouteBar{display:none!important}

/* b34: 좁은 화면에서도 1:1 상대 이름은 세로로 갈라지지 않는다. */
.directMessageBox>header #directMessageTitle{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;word-break:keep-all!important;line-height:1.2!important}
.directThreadText strong{display:block!important;min-width:0!important;white-space:nowrap!important;word-break:keep-all!important}

/* b27: 모든 하단 팝업을 상단 베타 배지보다 앞에 표시한다. */
#categorySheet,
.sheet{
  z-index:99999!important;
}
.backdrop{
  z-index:99998!important;
}
.snsProfileTabs button[data-sns-tab="trips"] svg{
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}

/* b26: 모바일 홈 인디케이터와 겹치지 않도록 하단 글라스를 충분히 띄운다. */
#bottomNav{
  bottom:max(18px,calc(10px + env(safe-area-inset-bottom)))!important;
}
@media(max-width:520px){
  #bottomNav{
    bottom:max(18px,calc(12px + env(safe-area-inset-bottom)))!important;
  }}

/* b36: 제공된 원본 하단 네비 이미지와 발도장 자산을 사용한다. */
#bottomNav .bottomNavImageIcon{
  display:block!important;
  width:32px!important;
  height:32px!important;
  background-image:none!important;
  background-size:500% auto!important;
  background-repeat:no-repeat!important;
  background-position-y:50%!important;
}
#bottomNav .navTravelIcon{background-position-x:0%!important}
#bottomNav .navCourseIcon{background-position-x:25%!important}
#bottomNav .navChatIcon{background-position-x:50%!important}
#bottomNav .navAiIcon{background-position-x:75%!important}
#profilePanel.logged-in .snsProfileTabs button[data-sns-tab="trips"] .profileInnerFilledIcon{display:block!important;fill:currentColor!important;stroke:none!important}
.footprintStampImage{display:block;width:48px;height:48px;object-fit:cover;border-radius:12px;filter:grayscale(1);opacity:.24;transition:filter .16s ease,opacity .16s ease,transform .16s ease}
.footprintStampImage.active{filter:none;opacity:1;transform:scale(1.03)}
.footprintStampRating .footprintReviewStars span{padding:4px;background:#f1f5f9!important}
.footprintStampRating .footprintReviewStars input:checked+span{background:#fff3a3!important}
@media(max-width:390px){
  #bottomNav .bottomNavImageIcon{width:29px!important;height:29px!important}
  .footprintStampImage{width:42px;height:42px;border-radius:10px}}

/* c39: c36 완성 버튼과 미드나잇 노을 하늘 */
body:not(.admin-page)::before{
  height:130px!important;
  background-color:#162345!important;
  background-image:linear-gradient(rgba(20,29,55,.06),rgba(41,25,45,.10)),url("../assets/top-soft-blue-window-clouds-c75-v2.jpg")!important;
  background-position:center 56%!important;background-size:cover!important;background-repeat:no-repeat!important;
  border-bottom:1px solid rgba(28,28,30,.28)!important;box-shadow:0 2px 8px rgba(15,23,42,.13)!important;
}
#searchInput{
  color:#111!important;background:rgba(255,255,255,.20)!important;background-image:none!important;
  border:1.5px solid rgba(0,0,0,.72)!important;box-shadow:none!important;
  backdrop-filter:blur(7px) saturate(1.08)!important;-webkit-backdrop-filter:blur(7px) saturate(1.08)!important;
}
#searchBtn{
  color:#111!important;background:rgba(255,255,255,.14)!important;border:1.5px solid #111!important;
  box-shadow:none!important;backdrop-filter:blur(7px)!important;-webkit-backdrop-filter:blur(7px)!important;
}
#categoryBar .catWrap button,#categoryBar .catWrap .catHotButton{
  width:58px!important;height:58px!important;min-height:58px!important;padding:0!important;overflow:hidden!important;
  border:0!important;border-radius:0!important;box-shadow:none!important;background-color:transparent!important;
}
#categoryBar .catWrap .catHotButton,#categoryBar .catWrap .catHotButton.active{
  color:transparent!important;font-size:0!important;background:transparent url("../assets/category-hot-icon-c38.png") center/contain no-repeat!important;
}
#categoryBar .topCategoryIcon{
  position:static!important;width:58px!important;height:58px!important;filter:none!important;
  background-size:contain!important;background-position:center!important;background-repeat:no-repeat!important;
}

/* c96: 메인 지도 도움말/번역 버튼을 한 세로축으로 정렬 */
#mainFieldTranslateBtn{
  top:187px!important;right:10px!important;width:52px!important;height:52px!important;
  border:1px solid #c7cbd1!important;background:#fff!important;color:#667085!important;
  box-shadow:0 5px 14px rgba(15,23,42,.13)!important;
}
#mainMapGuideBtn.featureGuideMapButton{
  top:249px!important;right:17px!important;bottom:auto!important;
  width:38px!important;min-width:38px!important;max-width:38px!important;
  height:38px!important;min-height:38px!important;max-height:38px!important;
}

/* c96: 1:1 목록 헤더·입력창·미디어 메뉴를 일반 채팅과 같은 밀도로 정리 */
.directMessageBox>header{grid-template-columns:40px minmax(0,1fr) 48px 40px!important;min-height:58px!important;padding:6px 10px!important}
.directMessageBox>header #directMessageTitle{display:block!important;width:100%!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;text-align:center!important;font-size:17px!important}
.directMessageBox>header #directTranslateBtn{width:48px!important;min-width:48px!important;height:38px!important}
#directMessageForm{padding:7px 10px calc(7px + env(safe-area-inset-bottom))!important}
#directMessageForm .directSendButton{width:44px!important;min-width:44px!important;height:44px!important;padding:0!important;border-radius:50%!important}
#directMessageForm .directSendButton svg{width:23px!important;height:23px!important;fill:none!important;stroke:currentColor!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.directPlusMenu{flex-wrap:wrap!important}
.directMediaRetentionNotice{flex:1 0 100%;padding:3px 6px 1px;color:#667085;font-size:10px;text-align:left}

/* c96: 프로필 하위 메뉴는 동일한 하단 시트 크기로 한 장만 표시 */
#profileDetailModal:not(.footprintFullScreen) .profileDetailBox{
  width:100%!important;max-width:560px!important;height:calc(100dvh - (130px + env(safe-area-inset-top)))!important;
  max-height:calc(100dvh - (130px + env(safe-area-inset-top)))!important;border-radius:28px 28px 0 0!important;
}

/* c96: 1:1 사진도 앱 안에서 좌우로 넘겨 본다 */
.chat-image-viewer-controls{position:absolute;inset:0;pointer-events:none}
.chat-image-viewer-controls button{pointer-events:auto;position:absolute;display:grid;place-items:center;border:0;border-radius:50%;background:rgba(18,18,20,.72);color:#fff}
.chat-image-viewer-controls .chat-image-viewer-close{top:max(16px,env(safe-area-inset-top));right:16px;width:42px;height:42px;font-size:20px}
.chat-image-viewer-controls .chat-image-viewer-prev,.chat-image-viewer-controls .chat-image-viewer-next{top:50%;width:44px;height:44px;transform:translateY(-50%);font-size:35px}
.chat-image-viewer-controls .chat-image-viewer-prev{left:12px}.chat-image-viewer-controls .chat-image-viewer-next{right:12px}
.chat-image-viewer-controls .chat-image-viewer-count{position:absolute;left:50%;bottom:max(18px,env(safe-area-inset-bottom));padding:7px 11px;border-radius:999px;background:rgba(18,18,20,.72);color:#fff;transform:translateX(-50%);font-size:12px}
.chat-image-viewer-controls.single .chat-image-viewer-prev,.chat-image-viewer-controls.single .chat-image-viewer-next,.chat-image-viewer-controls.single .chat-image-viewer-count{display:none}

@media(max-width:520px){
  #mainFieldTranslateBtn{top:187px!important;right:10px!important}
  #mainMapGuideBtn.featureGuideMapButton{top:249px!important;right:17px!important;bottom:auto!important}
}

/* c96 profile/direct/room consistency */
.snsProfilePublicActions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.blockedUserIdentity{display:flex!important;align-items:center!important;gap:10px!important}.blockedUserIdentity img{width:40px;height:40px;border-radius:50%;object-fit:cover}


body.main-route-mode #routeQuickAddBtn{pointer-events:auto!important}

/* b37: 다섯 개의 둥근 카드가 살아 있는 투명 원본으로 하단 네비를 확대한다. */
#bottomNav{
  bottom:max(24px,calc(16px + env(safe-area-inset-bottom)))!important;
  width:min(650px,calc(100vw - 20px))!important;
  height:78px!important;
  padding:7px 8px!important;
  border-radius:25px!important;
  background:rgba(255,255,255,.82)!important;
}
#bottomNav>button,
#bottomNav>#profileTab{
  height:64px!important;
  min-height:64px!important;
  border-radius:20px!important;
  overflow:visible!important;
}
#bottomNav .bottomNavImageIcon{
  width:58px!important;
  height:58px!important;
  background-image:none!important;
  background-size:500% auto!important;
  background-position-y:50%!important;
}
#bottomNav>button.active:not(#profileTab){
  background:transparent!important;
}
#bottomNav>#profileTab.active{
  background:transparent!important;
  box-shadow:none!important;
}
#bottomNav .bottomChatAlertBadge{
  top:4px!important;
  left:calc(50% + 15px)!important;
}
@media(max-width:390px){
  #bottomNav{
    bottom:max(22px,calc(14px + env(safe-area-inset-bottom)))!important;
    height:74px!important;
    padding:6px 5px!important;
  }
  #bottomNav>button,
  #bottomNav>#profileTab{
    height:62px!important;
    min-height:62px!important;
  }
  #bottomNav .bottomNavImageIcon{
    width:54px!important;
    height:54px!important;
  }}

/* b38: 제공된 이미지 비율을 유지하며 상·하단 UI와 상태 아이콘을 정렬한다. */
#categoryBar{
  overflow-x:auto!important;
  overflow-y:hidden!important;
}
#categoryBar .catWrap{
  gap:7px!important;
  padding:6px 9px 7px!important;
  align-items:center!important;
}
#categoryBar .catWrap button{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  width:66px!important;
  height:66px!important;
  padding:0!important;
  border:0!important;
  border-radius:19px!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
#categoryBar .catWrap .catHotButton{
  width:70px!important;
  border-radius:22px!important;
  background:#e7f1ff!important;
  color:#ff3b30!important;
  font-size:17px!important;
  font-weight:850!important;
}
#categoryBar .topCategoryIcon{
  display:block!important;
  width:66px!important;
  height:66px!important;
  background-image:none!important;
  background-size:800% auto!important;
  background-repeat:no-repeat!important;
  background-position-y:center!important;
}
#categoryBar .categoryFoodIcon{background-position-x:0%!important}
#categoryBar .categoryFlightIcon{background-position-x:14.2857%!important}
#categoryBar .categoryStayIcon{background-position-x:28.5714%!important}
#categoryBar .categoryTourIcon{background-position-x:42.8571%!important}
#categoryBar .categoryFestivalIcon{background-position-x:57.1428%!important}
#categoryBar .categoryMarketIcon{background-position-x:71.4285%!important}
#categoryBar .categoryExchangeIcon{background-position-x:85.7142%!important}
#categoryBar .categoryGuideIcon{background-position-x:100%!important}
#categoryBar .catWrap button.active{
  outline:2px solid #2583ef!important;
  outline-offset:-2px!important;
}
#map{top:181px!important;height:calc(100% - 246px)!important}
#profileAlertQuickBtn{top:193px!important}

#bottomNav{
  height:76px!important;
  max-height:76px!important;
  padding:6px 8px!important;
  background:rgba(255,255,255,.88)!important;
}
#bottomNav>button,
#bottomNav>#profileTab{
  height:64px!important;
  min-height:64px!important;
  background:transparent!important;
  color:#285a98!important;
}
#bottomNav .bottomNavImageIcon{
  width:52px!important;
  height:52px!important;
  background:none!important;
  background-color:currentColor!important;
  
  
  -webkit-mask-size:500% 100%!important;
  mask-size:500% 100%!important;
  -webkit-mask-repeat:no-repeat!important;
  mask-repeat:no-repeat!important;
  -webkit-mask-position-y:center!important;
  mask-position-y:center!important;
}
#bottomNav .navTravelIcon{-webkit-mask-position-x:0%!important;mask-position-x:0%!important}
#bottomNav .navCourseIcon{-webkit-mask-position-x:25%!important;mask-position-x:25%!important}
#bottomNav .navChatIcon{-webkit-mask-position-x:50%!important;mask-position-x:50%!important}
#bottomNav .navAiIcon{-webkit-mask-position-x:75%!important;mask-position-x:75%!important}
#bottomNav>button.active:not(#profileTab){color:#d66b61!important}
#bottomNav>#profileTab.active{
  background:transparent!important;
  color:#777b82!important;
  box-shadow:none!important;
}

.footprintStampImage{
  width:50px!important;
  height:50px!important;
  object-fit:contain!important;
  border-radius:13px!important;
  filter:none!important;
  opacity:1!important;
  background:#fff!important;
}
.footprintStampImage.active{
  content:url("../assets/footprint-stamp-selected-v2.png")!important;
  filter:none!important;
  opacity:1!important;
}
#routeQuickAddBtn{
  width:52px!important;
  min-width:52px!important;
  height:52px!important;
  min-height:52px!important;
  padding:0!important;
  overflow:hidden!important;
  border-radius:50%!important;
}
#routeQuickAddBtn .floating-route{
  width:52px!important;
  height:52px!important;
  background-size:108% 108%!important;
  background-position:center!important;
  filter:none!important;
}
.authStatusToast{
  bottom:calc(116px + env(safe-area-inset-bottom))!important;
  z-index:100500!important;
}
@media(max-width:390px){
  #categoryBar .catWrap button,
  #categoryBar .topCategoryIcon{width:62px!important;height:62px!important}
  #categoryBar .catWrap .catHotButton{width:66px!important}
  #map{top:183px!important;height:calc(100% - 248px)!important}
  #profileAlertQuickBtn{top:195px!important}
  #bottomNav{height:74px!important;max-height:74px!important}
  #bottomNav .bottomNavImageIcon{width:49px!important;height:49px!important}
  .footprintStampImage{width:46px!important;height:46px!important}}

/* b39: 상단 카테고리·경로 레이어·하단 내비 정렬을 모바일 기준으로 통일한다. */
#categoryBar .catWrap{gap:6px!important;padding:4px 8px!important}
#categoryBar .catWrap button,
#categoryBar .topCategoryIcon{width:56px!important;height:56px!important}
#categoryBar .catWrap .catHotButton{width:62px!important;height:56px!important;border-radius:18px!important;font-size:16px!important}
#categoryBar .catWrap button.active{outline:0!important;box-shadow:none!important}
#map{top:169px!important;height:calc(100% - 169px)!important}
#profileAlertQuickBtn{top:181px!important}


.mainRouteActions{gap:7px!important;padding:13px 10px 15px!important}
.mainRouteActions button{height:54px!important;border-radius:14px!important;font-size:12px!important}
.mainRouteBar{z-index:100000!important;min-height:82px!important}

/* 경로 작성 중에도 카테고리 결과는 큰 패널로 유지하고 경로 바 뒤에서 스크롤한다. */
body.main-route-mode .category-results-panel{top:169px!important;right:0!important;bottom:0!important;left:0!important;z-index:99990!important;height:auto!important;max-height:none!important;border-radius:20px 20px 0 0!important;box-shadow:0 12px 40px rgba(15,23,42,.2)!important}
body.main-route-mode .category-results-panel #categoryResultsContent{height:auto!important;max-height:none!important;overflow-y:auto!important;padding-bottom:calc(112px + env(safe-area-inset-bottom))!important}

@media(max-width:390px){
  #categoryBar .catWrap button,
  #categoryBar .topCategoryIcon{width:54px!important;height:54px!important}
  #categoryBar .catWrap .catHotButton{width:60px!important;height:54px!important}
  #map{top:167px!important;height:calc(100% - 167px)!important}
  #profileAlertQuickBtn{top:179px!important}
  body.main-route-mode .category-results-panel{top:167px!important}
  .mainRouteActions{padding:12px 8px 14px!important}
  .mainRouteActions button{height:52px!important;font-size:11px!important}}

/* b40: 경로 작업 바를 일반 하단 네비와 같은 5등분 구조로 단순화한다. */
.mainRouteBar{left:10px!important;right:10px!important;bottom:max(24px,calc(16px + env(safe-area-inset-bottom)))!important;min-height:76px!important;padding:0!important;border:1px solid rgba(60,60,67,.1)!important;border-radius:25px!important;background:rgba(255,255,255,.94)!important}
.mainRouteActions{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:0!important;padding:6px!important}
.mainRouteActions button{display:flex!important;min-width:0!important;height:64px!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:2px!important;padding:0 2px!important;border-radius:18px!important;background:transparent!important;color:#3a3e45!important;font-size:10px!important;line-height:1.1!important;white-space:nowrap!important}
.mainRouteActions [data-route-save]{color:#1477e8!important}
.mainRouteActions [data-route-cancel]{color:#d72f3f!important}
.mainRouteActionIcon{display:grid;width:30px;height:30px;place-items:center;line-height:1}
.mainRouteActionIcon svg{display:block;width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.mainRouteEndpointIcon{display:flex!important;width:34px!important;align-items:center;justify-content:center;gap:0}
.mainRouteEndpointPin{display:grid;width:19px;height:19px;flex:0 0 19px;place-items:center;border-radius:50% 50% 50% 0;background:#3a3e45;color:#fff;transform:rotate(-45deg)}
.mainRouteEndpointPin.destination{margin-left:-4px;transform:rotate(-45deg) translateY(2px)}
.mainRouteEndpointPin b{font-size:9px;font-weight:950;line-height:1;transform:rotate(45deg)}
.mainRouteActions button:disabled{opacity:.34!important}
.mainRouteBar.expanded .mainRouteList{max-height:34dvh;padding:9px 9px 4px}

/* 코스 목록과 내 스케줄은 각각 한 줄 전체 폭 목록으로 표시한다. */
.course-saved-content{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;overflow-x:hidden!important;scroll-snap-type:none!important}
.course-library-section+.course-library-section{margin-top:13px;padding-top:13px;border-top:1px solid #dce8f7}
.course-saved-list article{width:100%!important;min-width:0!important;max-width:100%!important;flex:none!important}
.course-saved-list article>button:first-child{box-sizing:border-box!important;min-width:0!important}
.course-saved-list article>button:first-child b{font-size:12px!important}
.course-saved-list .my-schedule-card>button:first-child{grid-template-columns:minmax(72px,.7fr) minmax(72px,.55fr) minmax(110px,1.6fr)!important}
.my-schedule-card>button:first-child b,.my-schedule-card>button:first-child time,.my-schedule-card>button:first-child span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.my-schedule-card>button:first-child time{color:#53657b;font-size:9px;font-style:normal}
.schedule-day-fields input{width:143px!important}
.schedule-day-date small{color:#16813c!important;font-size:9px!important;font-weight:800}
.schedule-day-date{display:grid!important;grid-template-columns:auto minmax(0,1fr) 28px!important;align-items:center!important}.schedule-day-date .featureGuideButton{justify-self:end}.course-fixed-summary span{display:grid!important;grid-template-columns:auto minmax(0,1fr) 28px!important}.course-fixed-summary .featureGuideButton{align-self:center;justify-self:end}.course-saved-heading .featureGuideHeadingRow{display:flex!important;align-items:center!important;justify-content:space-between!important}.course-date-picker .course-date-title{display:flex!important;align-items:center!important;gap:7px!important}
.tripTalkFlightRoute{display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:7px;padding:9px 10px;border-radius:10px;background:#eef8f1;color:#166534!important;text-align:center}.tripTalkFlightRoute b{font-size:10px}.tripTalkFlightRoute i{font-size:9px;font-style:normal;font-weight:900;white-space:nowrap}.tripTalkNavigationSheet>small{color:#8a5a00;font-size:9px;line-height:1.45}
.internationalChoices [data-nav="departure-airport"]{grid-column:1/-1}
.course-title-editor{display:grid;grid-template-columns:auto minmax(0,1fr) 68px;align-items:center;gap:7px;padding:8px;border:1px solid #dce5ef;border-radius:10px;background:#fff}
.course-title-editor label{font-size:10px;font-weight:850;white-space:nowrap}.course-title-editor input{min-width:0;height:32px;box-sizing:border-box;padding:0 9px;border:1px solid #d5deea;border-radius:8px;font-size:11px}.course-title-editor button{height:32px;border:1px solid #b8d4f5;border-radius:8px;background:#eef6ff;color:#0877e8;font-size:10px;font-weight:900}
.course-primary-actions:empty{display:none!important}

/* HOT은 선택색과 채널 의미 없이 현재 행사 정보 진입점으로 유지한다. */
#categoryBar .catWrap .catHotButton,
#categoryBar .catWrap .catHotButton.active{background:#fff!important;color:#ff3b30!important;outline:0!important;box-shadow:none!important}

/* 경로 이미지의 파란 외곽선을 크롭하고 비로그인 프로필을 시각 중앙에 맞춘다. */
#routeQuickAddBtn{border:0!important;box-shadow:0 5px 15px rgba(15,23,42,.14)!important;background:#fff!important}
#routeQuickAddBtn.active{border:0!important;background:#fff!important;box-shadow:0 5px 15px rgba(15,23,42,.14)!important}
#routeQuickAddBtn .floating-route{background-size:126% 126%!important}

@media(max-width:360px){
  .mainRouteActions button{font-size:9px!important}
  .mainRouteActionIcon{font-size:25px!important}}

/* c93: 대화·지도 도구의 모바일 가독성과 배치 안정화 */
#routeQuickAddBtn,#routeQuickAddBtn.active{background:#fff!important}

/* c94: 채팅 입력과 전송 아이콘, 1:1 묶음 사진 */
#sendBtn,.directSendButton{display:grid!important;place-items:center!important;width:46px!important;min-width:46px!important;height:46px!important;padding:0!important;border-radius:50%!important;background:#e7654b!important;color:#fff!important;border:0!important}
#sendBtn svg,.directSendButton svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
#chatInputWrap,#directMessageForm{padding-bottom:calc(14px + env(safe-area-inset-bottom))!important}
#directMessageForm{grid-template-columns:46px minmax(0,1fr) 46px!important}
#directMessageForm .directSendButton{font-size:0!important}
#chatPhotoBtn,#directPlusButton{color:#111!important}
.directMessageList .chat-image-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;overflow:hidden;border-radius:14px}
.directMessageList .chat-image-gallery.count-1{display:block}
.directMessageList .chat-image-gallery .chat-image{display:block;width:100%;height:150px;object-fit:cover;border-radius:0}
.directMessageList .chat-image-gallery.count-1 .chat-image{height:auto;aspect-ratio:4/3;max-height:360px;border-radius:14px;object-fit:contain;background:#111}
.serviceAlertDetail{display:grid;justify-items:center;gap:12px;padding:10px 2px 4px}.serviceAlertIcon{display:grid;width:54px;height:54px;place-items:center;border-radius:18px;background:#fff0f1;font-size:28px}.serviceAlertDetail strong{font-size:21px;text-align:center}.serviceAlertDetail time{color:#7a8594;font-size:12px}.serviceAlertDetail p{width:100%;margin:4px 0;padding:16px;box-sizing:border-box;border-radius:15px;background:#f7f9fc;color:#263548;line-height:1.7;white-space:pre-wrap}.serviceAlertDetail button{width:100%;min-height:44px;border:1px solid #d7dee8;border-radius:12px;background:#fff;color:#c42d3a;font-weight:850}
.alertAnnouncementIcon{float:left;margin-right:8px;font-size:20px}
.alertCardStatus{display:block;margin-top:4px;color:#c13b3b;font-size:11px;font-weight:800}
#roomInviteShareModal{position:fixed;inset:0;z-index:100300;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(15,23,42,.46)}
#roomInviteShareModal.show{display:flex}
#roomInviteShareModal>section{width:min(420px,100%);max-height:78dvh;overflow:auto;padding:18px;border-radius:22px;background:#fff;box-shadow:0 18px 50px rgba(15,23,42,.28)}
#roomInviteShareModal header{display:flex;align-items:center;justify-content:space-between;font-size:20px}
#roomInviteShareModal header button{width:38px;height:38px;border:0;border-radius:12px;background:#f0f2f5;font-size:22px}
#roomInviteShareModal>section>p{color:#667085;font-size:13px}
.roomInviteActions,.roomInviteFriends{display:grid;gap:8px}
.roomInviteActions button,.roomInviteFriends button{min-height:48px;border:0;border-radius:13px;background:#eef4ff;color:#1769e0;font-weight:900}
.roomInviteFriends{margin-top:12px;padding-top:12px;border-top:1px solid #e5e7eb}
.roomInviteFriends.hide{display:none}
.roomInviteActions.hide{display:none}.roomInviteBack.hide{visibility:hidden;pointer-events:none}#roomInviteShareModal header{display:grid!important;grid-template-columns:38px 1fr 38px!important;text-align:center}#roomInviteShareModal header strong{align-self:center}.roomInviteFriends button{text-align:left!important;padding:0 16px!important}
.myTripPortfolioVisual{position:relative}
.myTripImageLoading{display:none;position:absolute;inset:0;z-index:2;place-items:center;padding:18px;background:linear-gradient(135deg,#eaf6ff,#eafbf1);color:#526174;text-align:center;font-weight:850}
.myTripPortfolioVisual.is-loading .myTripImageLoading{display:grid}
#policyModal .policyBox{width:min(720px,100%)!important;height:min(84dvh,760px)!important;max-height:min(84dvh,760px)!important}
@media(max-width:600px){
}
.floating-filter{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke-linecap='round'%3E%3Cpath d='M4 6h16' stroke='%23d53b43' stroke-width='2.25'/%3E%3Cpath d='M7 12h10' stroke='%23e6b800' stroke-width='2.25'/%3E%3Cpath d='M10 18h4' stroke='%23667085' stroke-width='2.25'/%3E%3C/svg%3E")!important;
}
.chatPanelSwitch{position:sticky!important;top:0!important;z-index:30!important;background:rgba(238,242,244,.97)!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.miniRoomUnread{display:inline-flex;margin-left:6px;padding:2px 5px;border-radius:999px;background:#ff3b4e;color:#fff;font-size:8px;font-style:normal;font-weight:900;vertical-align:middle}
.directMessageList .chat-image{object-fit:contain!important;cursor:zoom-in!important}
@media(max-width:600px){
  .directMessageBox>header{grid-template-columns:40px minmax(0,1fr) 52px 40px!important}
  .directMessageBox>header #directMessageTitle{font-size:15px!important}}

/* b42: 내비·후기 버튼의 시각 중심을 맞춘다. */
.course-primary-actions:has(>button:only-child){grid-template-columns:1fr!important}
.course-primary-actions>button:only-child{width:100%!important;min-height:48px!important}

#bottomNav .navTravelIcon{
  width:54px!important;
  height:54px!important;
  transform:scale(1.08)!important;
  transform-origin:center!important;
}
@media(max-width:390px){
  #bottomNav .navTravelIcon{width:52px!important;height:52px!important}}

/* b43: 원본 마스크 내부 여백과 누적 보정을 제거하고 5개 아이콘의 시각 중심을 맞춘다. */
#bottomNav>button,
#bottomNav>#profileTab{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
#bottomNav .bottomNavImageIcon{
  width:52px!important;
  height:52px!important;
  margin:0!important;
}
#bottomNav .navTravelIcon{
  position:relative!important;
  top:-4px!important;
  width:58px!important;
  height:58px!important;
  transform:none!important;
}
@media(max-width:390px){
  #bottomNav .bottomNavImageIcon{width:50px!important;height:50px!important}
  #bottomNav .navTravelIcon{top:-4px!important;width:56px!important;height:56px!important}}

/* b44: 하단 네비 아이콘을 개별 동일 캔버스로 교체하고 누적 위치 보정을 최종 무효화한다. */
#bottomNav>button,
#bottomNav>#profileTab{
  position:relative!important;
  display:flex!important;
  flex:1 1 0!important;
  align-items:center!important;
  justify-content:center!important;
  height:64px!important;
  min-height:64px!important;
  padding:0!important;
}
#bottomNav .bottomNavImageIcon{
  position:static!important;
  top:auto!important;
  left:auto!important;
  display:block!important;
  width:50px!important;
  height:50px!important;
  margin:0!important;
  transform:none!important;
  background:none!important;
  background-color:currentColor!important;
  -webkit-mask-size:100% 100%!important;
  mask-size:100% 100%!important;
  -webkit-mask-position:center!important;
  mask-position:center!important;
  -webkit-mask-repeat:no-repeat!important;
  mask-repeat:no-repeat!important;
}
#bottomNav .navTravelIcon{
  position:relative!important;
  -webkit-mask-image:url("../assets/bottom-nav-travel-v3.png")!important;
  mask-image:url("../assets/bottom-nav-travel-v3.png")!important;
  background:#3f658f!important;
}
#bottomNav .navCourseIcon{-webkit-mask-image:url("../assets/bottom-nav-calendar-v3.png")!important;mask-image:url("../assets/bottom-nav-calendar-v3.png")!important}
#bottomNav .navChatIcon{-webkit-mask-image:url("../assets/bottom-nav-chat-v3.png")!important;mask-image:url("../assets/bottom-nav-chat-v3.png")!important}
#bottomNav .navAiIcon{-webkit-mask-image:url("../assets/bottom-nav-ai-v3.png")!important;mask-image:url("../assets/bottom-nav-ai-v3.png")!important}
#bottomNav .navProfileIcon{
  width:50px!important;
  height:50px!important;
  margin:0!important;
  background-color:transparent!important;
  background-image:url("../assets/bottom-nav-profile-v3.png")!important;
  background-position:center calc(50% - 11px)!important;
  background-size:130% 130%!important;
  background-repeat:no-repeat!important;
  -webkit-mask-image:none!important;
  mask-image:none!important;
  filter:none!important;
}

.chat-message-row.mine .chat-bubble:not(.image-bubble):not(.location-bubble){
  background:linear-gradient(180deg,#184fa8 0%,#103a82 100%)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.18)!important;
}
#bottomNav .navTravelIcon::before,
#bottomNav .navTravelIcon::after{content:none!important}
@media(max-width:390px){
  #bottomNav .bottomNavImageIcon{width:48px!important;height:48px!important}
  #bottomNav .navProfileIcon{width:48px!important;height:48px!important}}

/* c19: 초대 알림·게시판 링크·프로필 중복 메뉴 정리 */
#travelMatchRoomBtn{border:1px solid #d8ddea!important;background:#f5f6fa!important;color:#59647a!important;box-shadow:0 3px 9px rgba(35,49,70,.09)!important}
#chatTranslateBtn .fieldTranslateIcon,#directTranslateBtn .fieldTranslateIcon{width:27px!important;height:25px!important}
:is(#mainFieldTranslateBtn,#chatTranslateBtn,#directTranslateBtn) .fieldTranslateIcon{color:#e7654b!important}

/* c95: shared direct-media experience */
.direct-media-upload-state{position:sticky;bottom:8px;z-index:4;display:grid;grid-template-columns:1fr auto;gap:4px 12px;margin:8px auto;padding:11px 13px;width:min(88%,420px);border:1px solid #cfe1f5;border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 8px 22px rgba(25,67,110,.14);color:#24415d}
.direct-media-upload-state strong{font-size:13px}.direct-media-upload-state span{font-size:11px;color:#6c7c8f}.direct-media-upload-state i{grid-column:1/3;height:4px;border-radius:999px;background:linear-gradient(90deg,#1687f8,#74bcff,#1687f8);background-size:200% 100%;animation:directUploadFlow 1.1s linear infinite}
@keyframes directUploadFlow{to{background-position:-200% 0}}
.profileSheetHandle{position:relative}.profileSheetHandle #profileNavBack{position:absolute;left:14px;top:50%;z-index:3;transform:translateY(-50%);display:grid;width:40px;height:40px;place-items:center;border:0;border-radius:12px;background:#eef2f6;color:#263646;font-size:34px;line-height:1}.profileSheetHandle #profileNavBack.hide{display:none}
.snsProfilePublicActions{align-items:center}.snsProfilePublicActions>button{flex:1}.profilePublicMore{position:relative;flex:0 0 44px}.profilePublicMore summary{display:grid;width:44px;height:44px;place-items:center;border:1px solid #dbe3ed;border-radius:12px;background:#fff;color:#4f5d6d;font-size:22px;cursor:pointer;list-style:none}.profilePublicMore summary::-webkit-details-marker{display:none}.profilePublicMore button{position:absolute;right:0;top:48px;z-index:8;width:112px;padding:10px;border:1px solid #efd2d2;border-radius:10px;background:#fff;color:#b42318;font-weight:800;box-shadow:0 8px 24px rgba(0,0,0,.14)}
#roomInfoBtn{width:46px!important;min-width:46px!important;max-width:46px!important;border:1px solid rgba(35,55,71,.12)!important;background:rgba(255,255,255,.68)!important;color:#49657a!important;box-shadow:0 3px 9px rgba(35,49,70,.08)!important}
.travel-match-card time{font-size:11px;color:#8b96a6}
.travel-match-toast{right:16px!important;bottom:calc(102px + env(safe-area-inset-bottom))!important;max-width:calc(100vw - 32px)}
.boardTextLink{color:#0877da;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere;word-break:break-word}
button[data-profile-action="joinedRooms"],button[data-profile-action="rooms"]{display:none!important}

/* c20: 로고 제거, 상단 글라스 정리, 한 번에 닫히는 2단 슬라이드 팝업 */
#topBar{display:none!important}
#searchBar{
  top:calc(8px + env(safe-area-inset-top))!important;
  width:min(720px,calc(100% - 20px))!important;
  padding:7px!important;
  border:1px solid rgba(255,255,255,.76)!important;
  border-radius:20px!important;
  background:rgba(255,255,255,.42)!important;
  box-shadow:0 10px 28px rgba(15,23,42,.13),inset 0 1px 0 rgba(255,255,255,.78)!important;
  backdrop-filter:blur(25px) saturate(1.55)!important;
  -webkit-backdrop-filter:blur(25px) saturate(1.55)!important;
}
#categoryBar{
  top:calc(62px + env(safe-area-inset-top))!important;
  width:min(720px,calc(100% - 20px))!important;
  border:1px solid rgba(255,255,255,.76)!important;
  border-radius:20px!important;
  background:rgba(255,255,255,.40)!important;
  box-shadow:0 10px 28px rgba(15,23,42,.13),inset 0 1px 0 rgba(255,255,255,.78)!important;
  backdrop-filter:blur(25px) saturate(1.55)!important;
  -webkit-backdrop-filter:blur(25px) saturate(1.55)!important;
}
#bottomNav{
  background:rgba(255,255,255,.42)!important;
  border:1px solid rgba(255,255,255,.76)!important;
  box-shadow:0 -10px 30px rgba(15,23,42,.14),inset 0 1px 0 rgba(255,255,255,.8)!important;
  backdrop-filter:blur(26px) saturate(1.6)!important;
  -webkit-backdrop-filter:blur(26px) saturate(1.6)!important;
}
#bottomSheet,#categorySheet,.category-results-panel{
  height:calc(100dvh - (132px + env(safe-area-inset-top)))!important;
  max-height:none!important;
  border:1px solid rgba(255,255,255,.78)!important;
  border-bottom:0!important;
  border-radius:24px 24px 0 0!important;
  background:rgba(250,252,255,.78)!important;
  box-shadow:0 -16px 42px rgba(15,23,42,.18)!important;
  backdrop-filter:blur(28px) saturate(1.45)!important;
  -webkit-backdrop-filter:blur(28px) saturate(1.45)!important;
  transition:transform .24s cubic-bezier(.2,.8,.2,1)!important;
}
#bottomSheet.sheet-dragging,#categorySheet.sheet-dragging,.category-results-panel.sheet-dragging{transition:none!important}
#sheetHandle,#categorySheet>.sheetHandle,.categoryResultsHandle{
  position:relative!important;
  display:block!important;
  flex:0 0 58px!important;
  width:100%!important;
  height:58px!important;
  min-height:58px!important;
  margin:0!important;
  background:transparent!important;
  touch-action:none!important;
  cursor:grab!important;
}
#sheetHandle::before,#categorySheet>.sheetHandle::before,.categoryResultsHandle::before{
  content:"";
  position:absolute;
  top:12px;
  left:50%;
  width:58px;
  height:6px;
  border-radius:999px;
  background:rgba(72,78,89,.34);
  transform:translateX(-50%);
}
button#bottomSheetClose.mapps-close-button,button#categoryResultsClose.mapps-close-button{display:none!important}


.category-results-panel{top:auto!important;bottom:0!important}
body.main-route-mode .category-results-panel{top:auto!important;height:calc(100dvh - (132px + env(safe-area-inset-top)))!important}
#myLoc.default-location-mode .my-location-pin{
  background:#1677e8!important;
  box-shadow:0 2px 7px rgba(22,119,232,.42)!important;
}
#myLoc.default-location-mode .my-location-pin::after{background:#111!important}

/* c23: 최대 높이 단일 팝업, 한 줄 헤더, 카테고리·하단 글라스 정리 */
#categoryBar{
  left:0!important;right:0!important;width:100%!important;max-width:none!important;box-sizing:border-box!important;
  border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
}
#categoryBar .catWrap{width:max-content!important;min-width:100%!important;box-sizing:border-box!important;padding-right:max(10px,env(safe-area-inset-right))!important;padding-left:max(10px,env(safe-area-inset-left))!important;overflow:visible!important}
#bottomNav{
  background:rgba(255,255,255,.20)!important;border-color:rgba(255,255,255,.52)!important;
  box-shadow:0 -8px 24px rgba(15,23,42,.10),inset 0 1px 0 rgba(255,255,255,.58)!important;
  backdrop-filter:blur(28px) saturate(1.5)!important;-webkit-backdrop-filter:blur(28px) saturate(1.5)!important;
}
#bottomSheet,#categorySheet,.category-results-panel,#profilePanel{
  top:auto!important;bottom:0!important;height:calc(100dvh - (132px + env(safe-area-inset-top)))!important;max-height:none!important;
  box-sizing:border-box!important;transition:transform .24s cubic-bezier(.2,.8,.2,1)!important;
}
#profilePanel{left:0!important;right:0!important;width:100%!important}
#bottomSheet.sheet-dragging,#categorySheet.sheet-dragging,.category-results-panel.sheet-dragging,#profilePanel.sheet-dragging{transition:none!important}
#sheetHandle,#categorySheet>.sheetHandle,.categoryResultsHandle,#profileHeader.profileSheetHandle{
  position:relative!important;display:block!important;flex:0 0 58px!important;width:100%!important;height:58px!important;min-height:58px!important;margin:0!important;padding:0!important;background:transparent!important;touch-action:none!important;
}
#sheetHandle::before,#categorySheet>.sheetHandle::before,.categoryResultsHandle::before,#profileHeader.profileSheetHandle>span{
  content:""!important;position:absolute!important;top:9px!important;left:50%!important;width:58px!important;height:6px!important;border-radius:999px!important;background:rgba(72,78,89,.34)!important;transform:translateX(-50%)!important;
}
.bottomSheetHeader,.sheetHeader,.category-results-head{
  display:flex!important;min-height:34px!important;box-sizing:border-box!important;align-items:center!important;gap:8px!important;padding:0 16px 7px!important;white-space:nowrap!important;
}
#bottomSheetTitle,#sheetTitle,.category-results-head>div{
  display:flex!important;min-width:0!important;align-items:center!important;gap:7px!important;overflow:hidden!important;white-space:nowrap!important;
}
#bottomSheetTitle{font-size:18px!important}
#bottomSheetTitle>*{flex:0 0 auto!important}
#sheetTitle,.category-results-head strong{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.category-results-head>div{flex:1 1 auto!important}.category-results-head span{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
#sheetContent,#sheetList,#categoryResultsContent{padding-top:0!important}
#bottomSheet:has(#courseRoot) #bottomSheetTitle{padding-right:130px!important}
#bottomSheet:has(#courseRoot) .course-head{height:0!important;margin:0!important;padding:0!important;border:0!important}
#bottomSheet:has(#courseRoot) .course-delete-current{position:absolute!important;z-index:8;top:34px!important;right:16px!important;margin:0!important}
#bottomSheetTitle .course-source-badge,#bottomSheetTitle .course-save-state{width:auto!important;margin:0!important;padding:4px 8px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
@media(max-width:600px){
  #bottomSheet:has(#courseRoot) #bottomSheetTitle{padding-right:0!important}
  #bottomSheet:has(#courseRoot) .course-head{display:flex!important;height:auto!important;min-height:34px!important;margin:0 0 8px!important;padding:0 2px!important;justify-content:flex-end!important}
  #bottomSheet:has(#courseRoot) .course-delete-current{position:static!important;margin:0!important}
}
#profilePanel #profileContent{height:calc(100% - 32px)!important;overflow-y:auto!important}
body.main-route-mode .category-results-panel{height:calc(100dvh - (132px + env(safe-area-inset-top)))!important}

/* c24: 상단 여백 제거와 투명 글라스 강도 조정 */
body:not(.admin-page)::before{
  content:""!important;display:block!important;position:fixed!important;z-index:70!important;
  top:0!important;left:0!important;right:0!important;height:126px!important;
  background:#fff!important;border-bottom:1px solid rgba(75,85,99,.12)!important;
  pointer-events:none!important;
}
#searchBar{
  background:transparent!important;border-color:transparent!important;box-shadow:none!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;isolation:auto!important;
}
#searchInput{background:rgba(255,255,255,.84)!important;border-color:rgba(75,85,99,.28)!important}
#categoryBar{height:64px!important;min-height:64px!important}
#categoryBar .catWrap{gap:5px!important;min-height:64px!important;padding-top:3px!important;padding-bottom:3px!important}
#categoryBar .catWrap button{width:58px!important;height:58px!important;min-height:58px!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:hidden!important;display:flex!important;align-items:center!important;justify-content:center!important}
#categoryBar .catWrap .catHotButton{width:58px!important;height:58px!important;border:0!important;border-radius:0!important;background:transparent url("../assets/category-hot-icon-c38.png") center/contain no-repeat!important;box-shadow:none!important;color:transparent!important;font-size:0!important}
#categoryBar .topCategoryIcon{
  width:58px!important;height:58px!important;background-size:contain!important;background-position:center!important;background-repeat:no-repeat!important;
}
#categoryBar .catWrap .catHotButton,
#categoryBar .catWrap .catHotButton.active{
  background-color:transparent!important;
  background-image:url("../assets/category-hot-icon-c38.png")!important;
  background-position:center!important;
  background-size:contain!important;
  background-repeat:no-repeat!important;
  color:transparent!important;
  font-size:0!important;
}
#map{position:fixed!important;top:0!important;bottom:auto!important;height:var(--app-height,100vh)!important;max-height:none!important}
#profileAlertQuickBtn{top:calc(184px + env(safe-area-inset-top))!important}
#bottomSheet,#categorySheet,.category-results-panel,#profilePanel,body.main-route-mode .category-results-panel{height:calc(100dvh - (126px + env(safe-area-inset-top)))!important}
#bottomNav{
  background:transparent!important;border-color:rgba(255,255,255,.12)!important;box-shadow:none!important;
  backdrop-filter:blur(12px) saturate(1.18)!important;-webkit-backdrop-filter:blur(12px) saturate(1.18)!important;isolation:auto!important;
}
@media(max-width:390px){
  body:not(.admin-page)::before{height:124px!important}
  #categoryBar{height:62px!important;min-height:62px!important}
  #categoryBar .catWrap{min-height:62px!important;padding-top:2px!important;padding-bottom:2px!important}
  #categoryBar .catWrap button,#categoryBar .catWrap .catHotButton{width:58px!important;height:58px!important;min-height:58px!important}
  #map{position:fixed!important;top:0!important;bottom:auto!important;height:var(--app-height,100vh)!important;max-height:none!important}
  #profileAlertQuickBtn{top:calc(179px + env(safe-area-inset-top))!important}
  #bottomSheet,#categorySheet,.category-results-panel,#profilePanel,body.main-route-mode .category-results-panel{height:calc(100dvh - (124px + env(safe-area-inset-top)))!important}}

/* c34: 비행기 창밖 하늘을 잇는 상단 패널과 반투명 검색창 */
body:not(.admin-page)::before{
  background-color:#bfe7ff!important;
  background-image:linear-gradient(rgba(255,255,255,.10),rgba(255,255,255,.18)),url("../assets/top-soft-blue-window-clouds-c75-v2.jpg")!important;
  background-position:center 42%!important;
  background-size:cover!important;
  background-repeat:no-repeat!important;
  border-bottom:1px solid rgba(255,255,255,.45)!important;
}
#searchBar,#categoryBar{
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
}
#searchInput{
  background:rgba(255,255,255,.34)!important;
  border:1px solid rgba(255,255,255,.78)!important;
  box-shadow:0 2px 10px rgba(45,105,145,.10)!important;
  backdrop-filter:blur(8px) saturate(1.12)!important;
  -webkit-backdrop-filter:blur(8px) saturate(1.12)!important;
}
#searchInput::placeholder{color:rgba(42,62,76,.56)!important}

/* c38: c36 창문 비율을 유지한 밝은 기내 패널 */
body:not(.admin-page)::before{
  height:130px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.97),rgba(231,230,226,.98) 58%,rgba(247,246,243,.98))!important;
  border-bottom:1px solid rgba(99,105,112,.22)!important;
  box-shadow:inset 0 -1px 0 rgba(255,255,255,.9),0 2px 8px rgba(31,41,55,.10)!important;
}
#searchBar{transform:translate(-50%,3px)!important}
#searchInput{
  color:#fff!important;background-color:#122b61!important;
  background-image:linear-gradient(rgba(5,20,57,.22),rgba(5,20,57,.32)),url("../assets/top-soft-blue-window-clouds-c75-v2.jpg")!important;
  background-position:center!important;background-size:cover!important;background-repeat:no-repeat!important;
  border-color:rgba(214,224,240,.62)!important;
  box-shadow:inset 0 1px 3px rgba(0,0,0,.3),0 1px 0 rgba(255,255,255,.75)!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
}
#searchInput::placeholder{color:rgba(239,244,255,.8)!important}
#categoryBar{height:68px!important;min-height:68px!important;padding-bottom:4px!important;box-sizing:border-box!important}
#categoryBar .catWrap button,#categoryBar .catWrap .catHotButton{
  position:relative!important;width:58px!important;height:58px!important;min-height:58px!important;
  padding:0!important;overflow:visible!important;background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
}
#categoryBar .catWrap button::after{
  content:""!important;position:absolute!important;z-index:1!important;inset:0!important;
  background:url("../assets/category-window-frame-c38.png") center/contain no-repeat!important;pointer-events:none!important;
}
#categoryBar .topCategoryIcon{
  position:relative!important;z-index:2!important;width:23px!important;height:28px!important;
  background-size:contain!important;background-position:center!important;background-repeat:no-repeat!important;
  filter:brightness(0) invert(1) drop-shadow(0 1px 2px rgba(0,0,0,.72))!important;
}
#categoryBar .categoryHotIcon{filter:drop-shadow(0 1px 2px rgba(0,0,0,.68))!important}
#categoryBar .categoryHotIcon{background-image:url("../assets/category-hot-icon-c38.png")!important}
#bottomSheet,#categorySheet,.category-results-panel,#profilePanel,body.main-route-mode .category-results-panel{
  height:calc(100dvh - (130px + env(safe-area-inset-top)))!important;
}
@media(max-width:390px){
  body:not(.admin-page)::before{height:128px!important}
  #categoryBar{height:66px!important;min-height:66px!important;padding-bottom:4px!important}
  #categoryBar .catWrap{min-height:62px!important;padding-top:2px!important;padding-bottom:4px!important}
  #bottomSheet,#categorySheet,.category-results-panel,#profilePanel,body.main-route-mode .category-results-panel{
    height:calc(100dvh - (128px + env(safe-area-inset-top)))!important;
  }}

/* c136 v45: 일반방·채널방은 제목과 기능 버튼을 한 줄로만 표시한다. */
#chatHeader{position:relative!important;display:grid!important;grid-template-columns:36px minmax(0,1fr) auto!important;grid-template-rows:38px!important;align-items:center!important;gap:6px!important;min-height:calc(54px + env(safe-area-inset-top))!important;padding:max(8px,env(safe-area-inset-top)) 9px 8px!important;box-sizing:border-box!important}
#chatHeader .chat-header-left,#chatHeader .chat-header-center,#chatHeader .chat-header-right{position:static!important;inset:auto!important;transform:none!important;margin:0!important}
#chatHeader .chat-header-left{grid-column:1!important;grid-row:1!important;width:36px!important;height:36px!important}
#chatHeader .chat-header-center{grid-column:2!important;grid-row:1!important;width:100%!important;max-width:none!important;min-width:0!important;padding:0 2px!important;text-align:left!important;align-items:flex-start!important}
#chatHeader .chat-header-right{grid-column:3!important;grid-row:1!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-end!important;width:auto!important;max-width:none!important;gap:4px!important}
#chatHeader #chatRoomName{display:block!important;width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;text-align:left!important;font-size:15px!important;line-height:1.15!important}
#chatHeader #chatRoomUsers{width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;text-align:left!important;font-size:10px!important;line-height:1.15!important}
#chatHeader .chat-header-right>button{box-sizing:border-box!important;flex:0 0 32px!important;width:32px!important;min-width:32px!important;max-width:32px!important;height:32px!important;min-height:32px!important;max-height:32px!important;margin:0!important;padding:0!important;border-radius:10px!important;place-items:center!important}
#chatHeader .chat-header-right>button:not(.hide){display:grid!important}
#chatHeader :is(#chatTranslateBtn,#travelMatchRoomBtn,#roomInfoBtn){width:32px!important;min-width:32px!important;max-width:32px!important;height:32px!important;min-height:32px!important;max-height:32px!important;padding:0!important}
#chatHeader :is(.fieldTranslateIcon,.travelMatchHeaderIcon,.roomInfoGearIcon){width:21px!important;height:21px!important}
#chatHeader :is(#travelMatchRoomBtn,#roomInfoBtn) svg{width:21px!important;height:21px!important;margin:auto!important}
#chatHeader #closeChat{box-sizing:border-box!important;display:grid!important;width:36px!important;min-width:36px!important;max-width:36px!important;height:36px!important;min-height:36px!important;max-height:36px!important;margin:0!important;padding:0!important;place-items:center!important;overflow:visible!important;border-radius:11px!important;font-size:0!important;line-height:1!important}
#chatHeader #closeChat::before{content:"×";display:block;font-size:26px;font-weight:700;line-height:1}
@media(max-width:390px){#chatHeader{grid-template-columns:34px minmax(0,1fr) auto!important;gap:4px!important;padding-left:7px!important;padding-right:7px!important}#chatHeader .chat-header-right{gap:3px!important}#chatHeader .chat-header-right>button,#chatHeader :is(#chatTranslateBtn,#travelMatchRoomBtn,#roomInfoBtn){flex-basis:30px!important;width:30px!important;min-width:30px!important;max-width:30px!important;height:30px!important;min-height:30px!important;max-height:30px!important}#chatHeader #chatRoomName{font-size:13px!important}}
#chatImageModal{z-index:2147483500!important;isolation:isolate!important}
#chatImageModal .chat-image-viewer-controls,#chatImageModal button{z-index:2147483501!important}
#profileDetailModal.profileReactionSheet .profileDetailBox{width:100%!important;max-width:none!important;height:calc(100dvh - (130px + env(safe-area-inset-top)))!important;max-height:calc(100dvh - (130px + env(safe-area-inset-top)))!important;border-radius:28px 28px 0 0!important;transition:transform .18s ease!important;user-select:none}
#profileDetailModal.profileReactionSheet .profileDetailHead{position:relative!important;min-height:58px!important;padding:18px 20px 10px!important;justify-content:center!important}
#profileDetailModal.profileReactionSheet .profileDetailHead::before{content:""!important;position:absolute!important;top:9px!important;left:50%!important;width:58px!important;height:6px!important;border-radius:999px!important;background:#b8bdc4!important;transform:translateX(-50%)!important}
#profileDetailModal.profileReactionSheet #profileDetailClose,#profileDetailModal.profileReactionSheet #profileDetailBack{display:none!important}
#profileDetailModal.profileReactionSheet #profileDetailTitle{margin-top:9px!important;text-align:center!important}
#profileDetailModal.profileReactionSheet .profileDetailBody{user-select:text}
#randomTravelMissionBtn .floating-roulette{border-radius:50%!important}
#randomTravelMissionBtn .floating-roulette::before{content:none!important;display:none!important}
#directMessageModal{inset:0!important;align-items:stretch!important;justify-content:center!important;padding:0!important;background:rgba(15,23,42,.34)!important}
#directMessageModal .directMessageBox{position:relative!important;width:100%!important;max-width:none!important;border-radius:0!important;box-shadow:none!important;transition:transform .18s ease!important}
#directMessageModal .directMessageBox>header{position:relative!important;display:flex!important;justify-content:center!important;min-height:calc(72px + env(safe-area-inset-top))!important;padding:max(24px,calc(env(safe-area-inset-top) + 12px)) 14px 8px!important;cursor:grab!important}
#directMessageModal .directMessageBox>header::before{content:"";position:absolute;top:max(9px,env(safe-area-inset-top));left:50%;width:58px;height:6px;border-radius:999px;background:#b8bdc4;transform:translateX(-50%)}
#directMessageModal .directMessageBox>header [data-direct-back],#directMessageModal .directMessageBox>header [data-direct-close]{display:none!important}
#directMessageModal .directMessageBox>header [data-direct-active-menu]{position:absolute!important;left:14px!important;bottom:8px!important;display:grid!important;place-items:center!important}
#directMessageModal .directMessageBox>header [data-direct-active-menu].hide{display:none!important}
#directMessageModal .directTitleWrap{max-width:calc(100% - 74px)!important}
#directMessageModal .directMessageBox>header #directTranslateBtn{position:absolute!important;right:14px!important;bottom:8px!important}
@media(max-width:600px){#directMessageModal{inset:0!important}}

/* 일반방·채널방·1:1 대화만 키보드가 차지한 실제 화면 높이를 사용한다. 지도 높이는 분리한다. */
:root{--conversation-top:0px;--conversation-height:100dvh}
#chatRoom{top:var(--conversation-top)!important;bottom:auto!important;height:var(--conversation-height)!important;min-height:0!important;max-height:none!important}
#directMessageModal{top:var(--conversation-top)!important;bottom:auto!important;height:var(--conversation-height)!important;max-height:var(--conversation-height)!important}

/* 하단 주요 기능은 탭을 누르는 즉시 완성된 프레임으로 전환한다. */
#bottomSheet,#profilePanel{transition:none!important}

/* c99: main tool buttons, filter colors and header search readability. */
#profileAlertQuickBtn,
#randomTravelMissionBtn,
#mainFieldTranslateBtn,
#routeQuickAddBtn,
#chatFilterBtn,
#myLoc{
  box-sizing:border-box!important;
  border:1.5px solid #c7cbd1!important;
}
#routeQuickAddBtn,
#routeQuickAddBtn.active,
#routeQuickAddBtn .floating-route{
  background-color:#fff!important;
  filter:brightness(1.09) contrast(1.04)!important;
}
.floating-filter{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke-linecap='round'%3E%3Cpath d='M4 6h16' stroke='%231b2b52' stroke-width='2.5'/%3E%3Cpath d='M7 12h10' stroke='%231677e8' stroke-width='2.5'/%3E%3Cpath d='M10 18h4' stroke='%23111827' stroke-width='2.5'/%3E%3C/svg%3E")!important;
}
#searchInput{color:#fff!important}

/* c40: transparent category windows and compact AI guide gallery */
#categoryBar .catWrap button,
#categoryBar .catWrap .catHotButton{
  position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important;
  width:58px!important;height:58px!important;min-height:58px!important;padding:0!important;overflow:visible!important;
  border:0!important;border-radius:0!important;box-shadow:none!important;
  background:transparent url("../assets/category-window-frame-c38.png") center/contain no-repeat!important;
  color:transparent!important;font-size:0!important;
}
#categoryBar .topCategoryIcon{
  position:relative!important;z-index:1!important;width:23px!important;height:28px!important;
  background-position:center!important;background-size:contain!important;background-repeat:no-repeat!important;
  filter:brightness(0) invert(1) drop-shadow(0 1px 2px rgba(2,8,23,.82))!important;
}
#categoryBar .categoryHotIcon{background-image:url("../assets/category-hot-icon-c38.png")!important;filter:drop-shadow(0 1px 2px rgba(2,8,23,.75))!important}
#categoryBar .categoryFoodIcon{background-image:url("../assets/category-food-icon-c38.png")!important}
#categoryBar .categoryCafeIcon{background-image:url("../assets/category-cafe-icon-r8.png")!important}
#categoryBar .categoryFlightIcon{background-image:url("../assets/category-flight-icon-c38.png")!important}
#categoryBar .categoryStayIcon{background-image:url("../assets/category-stay-icon-c38.png")!important}
#categoryBar .categoryTourIcon{background-image:url("../assets/category-tour-icon-c38.png")!important}
#categoryBar .categoryFestivalIcon{background-image:url("../assets/category-festival-icon-c38.png")!important}
#categoryBar .categoryMarketIcon{background-image:url("../assets/category-market-icon-c38.png")!important}
#categoryBar .categoryExchangeIcon{background-image:url("../assets/category-exchange-icon-c38.png")!important}
#categoryBar .categoryGuideIcon{background-image:url("../assets/category-guide-icon-c38.png")!important}

.aiGuideFeed{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
.aiGuideCard{display:flex!important;flex-direction:column!important;min-width:0!important;min-height:0!important;overflow:hidden!important;border-radius:13px!important;text-align:left!important}
.aiGuideCardCover{width:100%!important;min-height:0!important;aspect-ratio:1/1!important}
.aiGuideCardCover em{top:7px!important;left:7px!important;font-size:6px!important;letter-spacing:.35px!important}
.aiGuideCardCover b{right:6px!important;bottom:7px!important;left:7px!important;font-size:11px!important}
.aiGuideCardCopy{display:flex!important;justify-content:flex-start!important;gap:4px!important;padding:7px!important}
.aiGuideCardCopy>strong{display:-webkit-box!important;overflow:hidden!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;font-size:11px!important;line-height:1.3!important}
.aiGuideCardCopy>small,.aiGuideCardCopy>span{display:none!important}
.aiGuideDuration{align-self:flex-start!important;font-size:8px!important;line-height:1.2!important}

/* c41: 밝은 기내 패널, 창문 안쪽에만 보이는 하늘, 선택 시 닫히는 덮개 */
body:not(.admin-page)::before{background:#e8e7e3!important;background-image:linear-gradient(180deg,#f5f4f1 0%,#deddd8 58%,#efeeea 100%)!important;border-bottom:1px solid rgba(92,96,102,.28)!important;box-shadow:inset 0 -1px 0 rgba(255,255,255,.88),0 2px 8px rgba(31,41,55,.12)!important}
#searchBar{background:transparent!important}
#searchInput{color:#f8fbff!important;background-color:#162345!important;background-image:linear-gradient(rgba(18,29,60,.12),rgba(52,29,50,.12)),url("../assets/top-soft-blue-window-clouds-c75-v2.jpg")!important;background-position:center 48%!important;background-size:cover!important;background-repeat:no-repeat!important;border-color:rgba(38,44,55,.72)!important;box-shadow:inset 0 1px 3px rgba(0,0,0,.22),0 1px 0 rgba(255,255,255,.72)!important}
#searchInput::placeholder{color:rgba(245,248,255,.82)!important}
#categoryBar{border:0!important;box-shadow:none!important}
#categoryBar .topCategoryIcon{z-index:1!important;transition:opacity .16s ease!important}

/* c42: c40 정면 창문 + 상단 연속 노을 + 클릭 덮개 */
body:not(.admin-page)::before{
  background-color:#162345!important;
  background-image:linear-gradient(rgba(20,29,55,.06),rgba(41,25,45,.10)),url("../assets/top-soft-blue-window-clouds-c75-v2.jpg")!important;
  background-position:center 56%!important;background-size:cover!important;background-repeat:no-repeat!important;
  border-bottom:1px solid rgba(28,28,30,.28)!important;box-shadow:0 2px 8px rgba(15,23,42,.13)!important;
}
#searchBar{background:transparent!important;border:0!important;box-shadow:none!important}
#searchInput{color:#111!important;background:rgba(255,255,255,.18)!important;background-image:none!important;border:1.5px solid rgba(0,0,0,.72)!important;box-shadow:none!important;backdrop-filter:blur(5px) saturate(1.06)!important;-webkit-backdrop-filter:blur(5px) saturate(1.06)!important}
#searchInput::placeholder{color:rgba(0,0,0,.62)!important}
#searchBtn{color:#111!important;background:rgba(255,255,255,.16)!important;border:1.5px solid #111!important;box-shadow:none!important;backdrop-filter:blur(5px)!important;-webkit-backdrop-filter:blur(5px)!important}
#categoryBar{border:0!important;box-shadow:none!important}
#categoryBar .catWrap button,
#categoryBar .catWrap .catHotButton{background:transparent url("../assets/category-window-frame-c38.png") center/contain no-repeat!important}
#categoryBar .catWrap button.active .topCategoryIcon{opacity:0!important}

/* c44: c36 원본 프레임 복원, 넓은 창, AI 8칸 갤러리, 손잡이 잘림 보정 */
#categoryBar .catWrap{
  gap:8px!important;
  padding-top:4px!important;
  padding-bottom:4px!important;
}
#categoryBar .catWrap button,
#categoryBar .catWrap .catHotButton{
  position:relative!important;
  width:70px!important;
  height:72px!important;
  min-width:70px!important;
  min-height:72px!important;
  flex:0 0 70px!important;
  overflow:visible!important;
  background:transparent url("../assets/category-food-icon-c38.png") center/64px 64px no-repeat!important;
}
#categoryBar .catWrap button::after{content:none!important;display:none!important}
#categoryBar .topCategoryIcon{
  z-index:2!important;
  width:28px!important;
  height:35px!important;
  opacity:1!important;
  transition:opacity .16s ease!important;
}
#categoryBar .catWrap button.active .topCategoryIcon{opacity:.38!important}

.aiGuideFeed{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:6px!important;
}
.aiGuideCard{border-radius:10px!important}
.aiGuideCardCover em{top:5px!important;left:5px!important;font-size:5px!important}
.aiGuideCardCover b{right:5px!important;bottom:5px!important;left:5px!important;font-size:9px!important}
.aiGuideCardCopy{gap:3px!important;padding:5px!important}
.aiGuideCardCopy>strong{font-size:9px!important;line-height:1.25!important}
.aiGuideDuration{font-size:7px!important}
@media (max-width:360px){
  .aiGuideFeed{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:4px!important}
  .aiGuideCardCopy{padding:4px!important}
  .aiGuideCardCopy>strong{font-size:8px!important}}

#bottomSheet,#categorySheet,.category-results-panel,#profilePanel{overflow:visible!important}
#profilePanel #profileContent{height:calc(100% - 38px)!important;overflow-y:auto!important}

/* c45: 한 장의 창밖 풍경을 공유하고 버튼 상하 여백을 균등화 */
body:not(.admin-page)::before{height:140px!important}
#categoryBar{
  height:78px!important;
  min-height:78px!important;
  padding:0!important;
}
#categoryBar .catWrap{
  height:78px!important;
  min-height:78px!important;
  padding-top:3px!important;
  padding-bottom:3px!important;
  box-sizing:border-box!important;
  align-items:center!important;
}
#categoryBar .catWrap button.active .topCategoryIcon{opacity:.58!important}
#categoryBar .topCategoryIcon{
  filter:brightness(0) invert(1) drop-shadow(0 1px 2px rgba(1,8,24,.92))!important;
}
#categoryBar .categoryHotIcon{
  filter:drop-shadow(0 1px 2px rgba(255,255,255,.60)) drop-shadow(0 1px 2px rgba(1,8,24,.86))!important;
}
#bottomSheet,#categorySheet,.category-results-panel,#profilePanel,
body.main-route-mode .category-results-panel{
  height:calc(100dvh - (140px + env(safe-area-inset-top)))!important;
}
@media(max-width:390px){
  body:not(.admin-page)::before{height:140px!important}
  #categoryBar{height:78px!important;min-height:78px!important}
  #categoryBar .catWrap{height:78px!important;min-height:78px!important;padding-top:3px!important;padding-bottom:3px!important;box-sizing:border-box!important}}

/* c46: 브랜드명과 넓은 노을 헤더, 알림종 위 5mm 간격 */
body:not(.admin-page){--mapps-header-height:165px;--mapps-category-height:78px}
body:not(.admin-page)::before{height:var(--mapps-header-height)!important}
#mappsWordmark{
  position:fixed;
  z-index:96;
  top:7px;
  left:max(16px,env(safe-area-inset-left));
  color:#fff;
  font-family:Arial,"Helvetica Neue",sans-serif;
  font-size:22px;
  font-weight:900;
  line-height:1;
  letter-spacing:-.7px;
  text-shadow:0 1px 3px rgba(15,23,42,.62);
  pointer-events:auto;
  cursor:default;
}
#mappsWordmark small{
  margin-left:5px;
  color:#fff;
  font-size:9px;
  font-weight:800;
  letter-spacing:.7px;
  vertical-align:middle;
  opacity:.96;
}
#searchBar{
  top:34px!important;
  transform:translateX(-50%)!important;
}
#categoryBar{
  top:87px!important;
  height:var(--mapps-category-height)!important;
  min-height:var(--mapps-category-height)!important;
}
#categoryBar .catWrap button,
#categoryBar .catWrap .catHotButton{
  background-position:center calc(50% - 1px)!important;
}
#bottomSheet,#categorySheet,.category-results-panel,#profilePanel,
body.main-route-mode .category-results-panel{
  height:calc(100dvh - (var(--mapps-header-height) + env(safe-area-inset-top)))!important;
}
@media(max-width:390px){
  body:not(.admin-page)::before{height:var(--mapps-header-height)!important}
  #mappsWordmark{top:7px;font-size:21px}
  #searchBar{top:34px!important}
  #categoryBar{top:87px!important;height:var(--mapps-category-height)!important;min-height:var(--mapps-category-height)!important}}

/* c47: c44 프레임 복구, 촘촘한 간격, 교체 가능한 공통 창밖 배경 */
body:not(.admin-page){
  --mapps-header-scene:url("../assets/top-soft-blue-window-clouds-c75-v2.jpg");
  --mapps-header-scene-color:#9fc9e6;
}
body:not(.admin-page)::before{
  background-color:var(--mapps-header-scene-color)!important;
  background-image:linear-gradient(rgba(20,29,55,.06),rgba(41,25,45,.10)),var(--mapps-header-scene)!important;
  border-bottom:1px solid rgba(70,76,84,.14)!important;
  box-shadow:none!important;
}
#categoryBar{
  border-bottom:1px solid rgba(70,76,84,.16)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.76)!important;
}
#categoryBar .catWrap{gap:4px!important}
#categoryBar .catWrap button,
#categoryBar .catWrap .catHotButton{
  background-position:center!important;
  background-size:64px 64px!important;
}
/* c50: 프레임만 고정하고 창문 내부는 항상 투명하게 유지한다. */
#categoryBar .catWrap button,
#categoryBar .catWrap .catHotButton,
#categoryBar .catWrap .catHotButton.active{
  background:none!important;
}
#categoryBar .catWrap button::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:1!important;
  top:1px!important;
  left:0!important;
  width:70px!important;
  height:70px!important;
  pointer-events:none!important;
  background:transparent url("../assets/category-window-frame-a4-light.png") center/70px 70px no-repeat!important;
}

/* c51: c50 CI 창문 프레임은 고정하고 창밖 풍경과 간격만 조정한다. */
#categoryBar .catWrap{
  gap:0!important;
}

/* c52: 창문 뒤 카테고리 패널을 CI 프레임과 같은 웜 실버 메탈로 맞춘다. */
#categoryBar{
  background:linear-gradient(180deg,#efeee9 0%,#e4e3de 48%,#d6d5d0 100%)!important;
  border-bottom-color:rgba(104,104,100,.28)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.92),inset 0 -1px 0 rgba(116,116,112,.13)!important;
}

/* c53: 상단/하단 글라스 경계 정돈, AI 추천 4 x 2 갤러리 */
#categoryBar{
  background:linear-gradient(180deg,
    rgba(255,255,255,0) 0%,
    rgba(240,244,249,.10) 28%,
    rgba(226,232,240,.30) 70%,
    rgba(207,216,227,.48) 100%)!important;
  border-top:1px solid rgba(255,255,255,.34)!important;
  border-bottom:1px solid rgba(72,86,105,.30)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.32),inset 0 -1px 0 rgba(255,255,255,.38),0 7px 18px rgba(15,23,42,.10)!important;
  backdrop-filter:blur(18px) saturate(1.38)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.38)!important;
}

#bottomNav{
  background:linear-gradient(180deg,rgba(248,250,252,.34),rgba(214,222,232,.22))!important;
  border:1px solid rgba(255,255,255,.78)!important;
  outline:1px solid rgba(55,65,81,.16)!important;
  outline-offset:-1px!important;
  box-shadow:0 12px 30px rgba(15,23,42,.16),inset 0 1px 0 rgba(255,255,255,.86),inset 0 -1px 0 rgba(85,96,112,.14)!important;
  backdrop-filter:blur(28px) saturate(1.55)!important;
  -webkit-backdrop-filter:blur(28px) saturate(1.55)!important;
}

.aiGuideFeed{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:7px!important;
}
.aiGuideCard{
  min-width:0!important;
  overflow:hidden!important;
  border:1px solid rgba(148,163,184,.24)!important;
  border-radius:11px!important;
  background:#fff!important;
}
.aiGuideCardCover{aspect-ratio:1/1!important}
.aiGuideCardCover img{width:100%!important;height:100%!important;object-fit:cover!important}
.aiGuideMoreButton{
  grid-column:1/-1!important;
  min-height:42px!important;
  margin-top:3px!important;
  border:1px solid rgba(20,119,232,.24)!important;
  border-radius:12px!important;
  background:rgba(232,243,255,.82)!important;
  color:#126bd1!important;
  font-weight:800!important;
}
.aiGuideMoreButton span{font-size:11px!important;font-weight:650!important;color:#64748b!important}

@media (max-width:360px){
  .aiGuideFeed{gap:5px!important}}

/* 상단 패널은 유지한다. 기본 창문은 닫히고 선택한 창문만 뒤의 실제 헤더 풍경으로 열린다. */
#categoryBar{
  --category-panel-top:#fffefb;
  --category-panel-bottom:#fbf9f3;
  --category-panel-edge:rgba(120,105,82,.16);
  background:transparent!important;
  border-top:1px solid #fff!important;
  border-bottom:1px solid var(--category-panel-edge)!important;
  box-shadow:inset 0 1px 0 #fff,0 5px 14px rgba(44,38,30,.07)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
#categoryBar .catWrap{
  position:relative!important;
  isolation:isolate;
}
#categoryBar .catWrap::before{
  content:"";
  position:absolute;
  z-index:0;
  top:0;
  left:calc(-1 * var(--category-panel-overdraw,0px));
  width:var(--category-panel-mask-width,100%);
  height:100%;
  pointer-events:none;
  background:linear-gradient(180deg,var(--category-panel-top) 0%,var(--category-panel-bottom) 100%);
  -webkit-mask-image:var(--category-panel-mask-image,none);
  mask-image:var(--category-panel-mask-image,none);
  -webkit-mask-position:0 0;
  mask-position:0 0;
  -webkit-mask-size:100% 100%;
  mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
}
#categoryBar .catWrap button{z-index:1!important}
#categoryBar .catWrap button::before{
  content:""!important;display:block!important;position:absolute!important;z-index:0!important;
  left:12px!important;top:7px!important;width:46px!important;height:54px!important;border-radius:15px!important;
  background-color:#fbf9f3!important;
  background-image:linear-gradient(180deg,#fffefb 0%,#f5efe4 100%)!important;
  background-size:100% 100%!important;background-position:center!important;
  background-repeat:no-repeat!important;box-shadow:inset 0 0 4px rgba(3,9,24,.22)!important;
  pointer-events:none!important;
}
#categoryBar .catWrap button.active::before{
  background-color:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
  filter:none!important;
}

/* 상단 카테고리는 패널 하나만 사용한다. 하단 크림색 띠와 중앙 돌출 손잡이는 펼침·접힘 모두 유지한다. */
#categoryBar{overflow:visible!important;transition:top .18s ease,height .18s ease,min-height .18s ease!important}
#categoryBar .catWrap{
  width:100%!important;max-width:100%!important;min-width:0!important;
  overflow-x:auto!important;overflow-y:hidden!important;overscroll-behavior-x:none!important;
  -webkit-overflow-scrolling:touch;touch-action:pan-x!important;scrollbar-width:none;
  transition:transform .18s ease,opacity .14s ease!important;
}
#categoryBar .catWrap::-webkit-scrollbar{display:none!important}
#categoryBar .catWrap button{touch-action:pan-x!important;cursor:pointer!important}
#categoryBarHandle{
  position:absolute!important;z-index:8;left:50%!important;top:calc(100% + 3px)!important;bottom:auto!important;display:block!important;
  width:84px!important;height:18px!important;min-height:18px!important;margin:0!important;padding:0!important;
  transform:translateX(-50%)!important;border:2px solid #d2cfc6!important;box-sizing:border-box!important;
  border-radius:9px!important;outline:0!important;
  background:transparent!important;box-shadow:none!important;
  touch-action:none!important;cursor:ns-resize!important;-webkit-tap-highlight-color:transparent!important;
}
#categoryBarHandle:focus,#categoryBarHandle:focus-visible{outline:0!important;box-shadow:none!important}
#categoryBarHandle::before{content:"";position:absolute;left:50%;top:5px;width:58px;height:6px;border-radius:999px;background:#566579;transform:translateX(-50%)}
body.category-bar-collapsed:not(.admin-page){--mapps-header-height:107px;--mapps-category-height:6px}
body.category-bar-collapsed #categoryBar{
  top:107px!important;
  border-top:0!important;
  border-bottom:1px solid var(--category-panel-edge)!important;
  background:var(--category-panel-bottom)!important;
  box-shadow:0 2px 5px rgba(44,38,30,.05)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  pointer-events:none!important;
}
body.category-bar-collapsed #categoryBarHandle{pointer-events:auto!important}
body.category-bar-collapsed #categoryBar .catWrap{transform:translateY(-82px)!important;opacity:0!important;pointer-events:none!important}
body.category-bar-collapsed #profileAlertQuickBtn{top:calc(126px + env(safe-area-inset-top))!important}
body.category-bar-collapsed #mainFieldTranslateBtn{top:129px!important}
body.category-bar-collapsed #mainMapGuideBtn.featureGuideMapButton{top:191px!important;bottom:auto!important}
/* 펼침/접힘 모두 알림종 아래 8px 간격을 유지한다 (52px 버튼 + 8px). */
body.category-bar-collapsed #randomTravelMissionBtn{top:calc(186px + env(safe-area-inset-top))!important}

#roomActionNotice{
  position:fixed;z-index:2147483400;left:50%;bottom:calc(92px + env(safe-area-inset-bottom));
  max-width:calc(100vw - 32px);padding:11px 15px;border-radius:13px;background:#17202d;color:#fff;
  box-shadow:0 10px 28px rgba(15,23,42,.25);font-size:13px;font-weight:800;line-height:1.4;
  opacity:0;pointer-events:none;transform:translate(-50%,10px);transition:opacity .15s ease,transform .15s ease;
}
#roomActionNotice.show{opacity:1;transform:translate(-50%,0)}
#roomActionNotice.error{background:#9f2525}

.aiGuideFeed{
  position:relative!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  align-items:stretch!important;
  touch-action:pan-y!important;
}
.aiGuidePlaceholder{
  display:block!important;
  min-height:150px!important;
  padding:8px!important;
  pointer-events:none!important;
  background:linear-gradient(110deg,#f3f5f8 20%,#fff 42%,#f3f5f8 64%)!important;
  background-size:220% 100%!important;
  animation:aiGuideShimmer 1.7s linear infinite!important;
}
.aiGuidePlaceholder span,.aiGuidePlaceholder i{
  display:block!important;
  border-radius:7px!important;
  background:rgba(148,163,184,.20)!important;
}
.aiGuidePlaceholder span{height:76px!important;margin-bottom:9px!important}
.aiGuidePlaceholder i{height:9px!important;margin:7px 2px!important}
.aiGuidePlaceholder i:last-child{width:62%!important}
.aiGuideEmptyOverlay{
  position:absolute!important;
  inset:0 0 38px!important;
  z-index:2!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  grid-column:auto!important;
  background:rgba(255,255,255,.78)!important;
  backdrop-filter:blur(5px)!important;
  -webkit-backdrop-filter:blur(5px)!important;
}
.aiGuidePager{
  grid-column:1/-1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:12px!important;
  min-height:34px!important;
  margin-top:2px!important;
}
.aiGuidePager button{
  width:32px!important;
  height:30px!important;
  border:1px solid rgba(100,116,139,.22)!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#334155!important;
  font-size:22px!important;
  line-height:1!important;
}
.aiGuidePager span{min-width:42px!important;text-align:center!important;color:#64748b!important;font-size:12px!important;font-weight:800!important}
@keyframes aiGuideShimmer{to{background-position:-220% 0}}

@media (max-width:360px){
  .aiGuidePlaceholder{min-height:136px!important;padding:6px!important}
  .aiGuidePlaceholder span{height:66px!important}}

/* 하단 네비를 상단 카테고리와 같은 밝은 화이트 크림색으로 통일 */
#bottomNav{
  background:linear-gradient(180deg,#fffefb 0%,#fbf9f3 100%)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

/* c57: 밝은 바닐라 스카이와 랜덤 여행 미션 */
#searchInput{
  color:#172033!important;
  background:rgba(255,255,255,.11)!important;
  border-color:rgba(17,24,39,.74)!important;
  backdrop-filter:blur(5px) saturate(1.06)!important;
  -webkit-backdrop-filter:blur(5px) saturate(1.06)!important;
}
#searchInput::placeholder{color:rgba(23,32,51,.62)!important}
#searchBtn{
  color:#111!important;
  background:rgba(255,255,255,.08)!important;
  border-color:#111!important;
  backdrop-filter:blur(5px)!important;
  -webkit-backdrop-filter:blur(5px)!important;
}

#randomTravelMissionBtn{
  position:fixed!important;
  top:calc(244px + env(safe-area-inset-top))!important;
  left:12px!important;
  z-index:95!important;
  display:grid!important;
  place-items:center!important;
  width:52px!important;
  min-width:52px!important;
  height:52px!important;
  min-height:52px!important;
  padding:0!important;
  border:1px solid rgba(17,24,39,.12)!important;
  border-radius:50%!important;
  background:#fff!important;
  color:#172033!important;
  box-shadow:0 5px 14px rgba(15,23,42,.16)!important;
}
#randomTravelMissionBtn:active{transform:scale(.96)!important;background:#f3f7fb!important}
body.sheet-open #randomTravelMissionBtn,
body.filter-sheet-open #randomTravelMissionBtn,
body.official-channel-open #randomTravelMissionBtn,
body.category-results-open #randomTravelMissionBtn{opacity:0!important;pointer-events:none!important}
@media(max-width:520px){#randomTravelMissionBtn{top:calc(239px + env(safe-area-inset-top))!important;left:10px!important}}

.randomMissionOverlay{box-sizing:border-box;position:fixed;inset:0;z-index:100080;display:grid;place-items:center;padding:18px;background:rgba(15,23,42,.48);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.randomMissionOverlay *{box-sizing:border-box}
.randomMissionCard{display:flex;flex-direction:column;width:min(410px,calc(100vw - 36px));height:min(460px,calc(100dvh - 36px));overflow:hidden;border:1px solid rgba(255,255,255,.78);border-radius:24px;background:#fff;box-shadow:0 24px 70px rgba(15,23,42,.32)}
.randomMissionCard.is-compass{height:min(650px,calc(100dvh - 36px))}
.randomMissionVisual{position:relative;aspect-ratio:16/9;overflow:hidden;background:linear-gradient(135deg,#dceeff,#fff2d8)}
.randomMissionVisual img{width:100%;height:100%;display:block;object-fit:cover}
.randomMissionVisual img.randomMissionPlaceFallback{box-sizing:border-box;padding:34px;object-fit:contain;background:linear-gradient(135deg,#eef3f8,#e8e1d3)}
.randomMissionClose{position:absolute;top:10px;right:10px;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:#172033;font-size:23px;font-weight:800}
.randomMissionShare{position:absolute;z-index:4;top:10px;left:10px;display:grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:#4c311a;box-shadow:0 3px 10px rgba(58,34,13,.14)}.randomMissionShare svg{width:21px;height:21px;overflow:visible;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.randomMissionShare:active{transform:scale(.95);background:#fff4d7}
.randomMissionTitle{position:absolute;z-index:3;top:18px;left:58px;right:58px;color:#4c311a;font-size:18px;font-weight:950;line-height:1.2;text-align:center;pointer-events:none}
.randomMissionBody{flex:1;padding:18px;overflow:auto}
.randomMissionBadge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#edf4ff;color:#1268c4;font-size:12px;font-weight:900}
.randomMissionBody h2{margin:11px 0 7px;color:#111827;font-size:22px;line-height:1.25}
.randomMissionBody p{margin:0;color:#5b6574;font-size:14px;line-height:1.55}
.randomMissionPolicyNotice{margin:0 18px 12px;padding:9px 11px;border-radius:11px;background:#fff5eb;color:#8a4a1f;font-size:11px;font-weight:800;line-height:1.45;text-align:left}
.randomMissionActions{display:grid;grid-template-columns:.9fr 1.35fr;gap:8px;padding:0 18px 18px}
.randomMissionActions button{height:48px;border:0;border-radius:14px;font-size:14px;font-weight:900}
.randomMissionReroll{background:#eef2f7;color:#344054}
.randomMissionOpen{background:#087cff;color:#fff}
.randomMissionActions{grid-template-columns:repeat(3,minmax(0,1fr))}.randomMissionActions:has(.randomMissionOpen:last-child){grid-template-columns:1fr 1.25fr}.randomMissionSave{background:#e7654b;color:#fff}.randomMissionSave.is-saved{background:#74815d;color:#fff}.randomMissionOpen{background:#63758a;color:#fff}
.mappsLoadingDots{display:inline-flex;align-items:center;gap:3px;margin-left:6px;vertical-align:middle}.mappsLoadingDots b{width:4px;height:4px;border-radius:50%;background:currentColor;animation:mappsLoadingDot 1s infinite ease-in-out}.mappsLoadingDots b:nth-child(2){animation-delay:.14s}.mappsLoadingDots b:nth-child(3){animation-delay:.28s}@keyframes mappsLoadingDot{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.myTripFollowAction button{border-color:#d35f49!important;background:#e7654b!important;color:#fff!important}.myTripFollowAction button.is-saved{border-color:#687552!important;background:#74815d!important;color:#fff!important}.myTripFollowAction button.is-loading,.randomMissionSave.is-loading{opacity:.84}
.randomMissionCompassStage{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto auto auto;place-items:center;width:100%;height:100%;gap:8px;padding:54px 18px 14px;background:radial-gradient(circle at 50% 34%,#fff7dc 0,#e4c48b 48%,#88643a 100%);overflow:hidden}
.randomMissionCompassStage::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(112deg,transparent 0 23px,rgba(75,48,21,.045) 24px 25px);pointer-events:none}
.randomMissionCompassTrigger{position:relative;z-index:2;display:grid;width:min(210px,58vw);max-height:100%;aspect-ratio:1;place-items:center;margin:0;padding:0;border:0;background:transparent;cursor:pointer}.randomMissionCompassTrigger:disabled{cursor:default;opacity:1}.randomMissionCompassTrigger:not(:disabled):active{transform:scale(.98)}
.brokenCompass{position:relative;width:min(286px,76vw);aspect-ratio:1;background:url("../assets/random-travel/vintage-broken-compass-c66.webp") center/contain no-repeat;filter:drop-shadow(0 15px 14px rgba(43,27,14,.36));transform:rotate(-2deg)}
.randomMissionCompassTrigger .brokenCompass{display:block;width:100%}
.brokenCompass::after{content:"";position:absolute;inset:13%;border-radius:50%;box-shadow:inset 10px -8px 22px rgba(111,75,31,.12);pointer-events:none}
.brokenCompassMark{display:none}
.brokenCompassQuestion{position:absolute;z-index:3;inset:37%;display:grid;place-items:center;border:2px solid rgba(84,51,21,.48);border-radius:50%;background:rgba(255,244,204,.9);box-shadow:0 2px 7px rgba(58,34,13,.28);color:#4c311a;font:950 42px/1 Georgia,serif;transition:opacity .2s}
.brokenCompassNeedle{position:absolute;z-index:4;left:50%;top:50%;width:16px;height:53%;transform:translate(-50%,-50%) rotate(0deg);transform-origin:50% 50%;opacity:0;filter:drop-shadow(1px 3px 2px rgba(39,22,8,.35))}
.brokenCompassNeedle::before{content:"";position:absolute;inset:0;clip-path:polygon(50% 0,100% 47%,61% 50%,100% 53%,50% 100%,0 53%,39% 50%,0 47%);background:linear-gradient(to bottom,#b23e34 0 49.5%,#222831 50.5% 100%)}
.brokenCompassNeedle::after{content:"";position:absolute;left:50%;top:50%;width:13px;height:13px;transform:translate(-50%,-50%);border:2px ridge #7b572f;border-radius:50%;background:#e4c17c}
.randomMissionCompassStage.spinning .brokenCompassQuestion{opacity:0}.randomMissionCompassStage.spinning .brokenCompassNeedle{opacity:1;animation:brokenNeedleSpin 5s cubic-bezier(.16,.76,.2,1) forwards}
@keyframes brokenNeedleSpin{0%{transform:translate(-50%,-50%) rotate(-18deg)}18%{transform:translate(-50%,-50%) rotate(430deg)}42%{transform:translate(-50%,-50%) rotate(925deg)}68%{transform:translate(-50%,-50%) rotate(1210deg)}80%{transform:translate(-50%,-50%) rotate(1160deg)}91%{transform:translate(-50%,-50%) rotate(calc(1080deg + var(--compass-end) + 13deg))}100%{transform:translate(-50%,-50%) rotate(calc(1080deg + var(--compass-end)))}}
.randomMissionCompassCopy{position:relative;z-index:2;margin-top:18px;color:#3f2b18;text-align:center}.randomMissionCompassCopy strong{display:block;font-size:17px}.randomMissionCompassCopy span{display:block;margin-top:5px;font-size:12px;font-weight:800;opacity:.76}
.randomMissionCompassStage .randomMissionCompassCopy{margin-top:0}
.randomMissionModePicker{position:relative;z-index:2;display:grid;width:100%;gap:6px}.randomMissionChoiceRow{display:grid;align-items:center;gap:6px}.randomMissionChoiceRow.two{grid-template-columns:repeat(2,minmax(0,1fr))}.randomMissionChoiceRow.four{grid-template-columns:repeat(4,minmax(0,1fr))}.randomMissionModePicker button{min-height:36px;border:1px solid rgba(84,51,21,.26);border-radius:11px;background:rgba(255,250,232,.78);color:#5f4426;font-weight:900}.randomMissionModePicker button.active{border-color:#1677e8;background:#1677e8;color:#fff;box-shadow:0 5px 14px rgba(22,119,232,.24)}.randomMissionModePicker button:disabled{opacity:.64}.randomMissionCompassStage.preparing .randomMissionModePicker{pointer-events:none}.randomMissionDistance{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:5px 8px!important;align-items:center}.randomMissionDistance label{display:flex;justify-content:space-between;color:#5f4426;font-size:12px;font-weight:900}.randomMissionDistance input{grid-column:1;width:100%;accent-color:#1677e8}.randomMissionDistance button{grid-column:2;grid-row:1/3;min-height:42px;padding:0 10px;font-size:11px}.randomMissionDistance input:disabled{opacity:.45}
.randomMissionResultDirection{margin-top:8px;color:#8a5b22!important;font-weight:900}.randomMissionCard.is-compass .randomMissionBody,.randomMissionCard.is-compass .randomMissionActions{display:none}
@media(max-height:650px){.randomMissionCard.is-compass{height:calc(100dvh - 24px)}.randomMissionCompassStage{gap:5px;padding:50px 16px 10px}.randomMissionCompassTrigger{width:min(160px,45vw)}.randomMissionCompassCopy strong{font-size:15px}.randomMissionCompassCopy span{font-size:11px}.randomMissionPolicyNotice{margin-bottom:6px;padding:6px 9px}.randomMissionModePicker button{min-height:32px}}
@media(prefers-reduced-motion:reduce){.randomMissionCompassStage.spinning .brokenCompassNeedle{animation-duration:.15s}}

/* c58: AI 상세 공개/즉시 표시 보정. 배경과 미션 버튼은 c59에서 관리한다. */

/* c59: 단일 배경 선언 + 고정 나침반 아이콘 */
#randomTravelMissionBtn .floating-roulette{position:relative;display:grid;place-items:center;width:35px;height:35px;border:2px solid #233747;border-radius:50%;background:repeating-conic-gradient(from -2deg,#769bb4 0 1.5deg,transparent 1.5deg 44deg),#fff;box-shadow:inset 0 0 0 2px #9ab6c9,0 1px 2px rgba(18,36,51,.16);transform:none}
#randomTravelMissionBtn .floating-roulette::before{content:none;display:none}
#randomTravelMissionBtn .floating-roulette::after{content:"";position:absolute;left:50%;top:50%;width:7px;height:25px;transform:translate(-50%,-50%) rotate(38deg);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);background:linear-gradient(to bottom,#ef5a50 0 49%,#63ad65 51% 100%);filter:drop-shadow(0 0 .5px #233747)}
.featureGuideRoulette{position:relative;display:block;width:30px;height:30px;border:2px solid #233747;border-radius:50%;background:repeating-conic-gradient(from -2deg,#769bb4 0 1.5deg,transparent 1.5deg 44deg),#fff;box-shadow:inset 0 0 0 2px #9ab6c9}
.featureGuideRoulette::before{content:"";position:absolute;left:50%;top:-6px;width:8px;height:5px;transform:translateX(-50%);border:2px solid #233747;border-bottom:0;border-radius:6px 6px 0 0;background:#9ab6c9}
.featureGuideRoulette::after{content:"";position:absolute;left:50%;top:50%;width:6px;height:21px;transform:translate(-50%,-50%) rotate(38deg);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);background:linear-gradient(to bottom,#ef5a50 0 49%,#63ad65 51% 100%);filter:drop-shadow(0 0 .5px #233747)}
#randomTravelMissionBtn.is-rolling{pointer-events:none!important}

/* 카테고리 아이콘은 업로드된 원본 색상을 그대로 유지한다. */
#categoryBar .topCategoryIcon{
  filter:none!important;
}
#searchInput{border-color:#fff!important;color:#fff!important}
#searchInput::placeholder{color:rgba(255,255,255,.82)!important;opacity:1!important}
#searchBtn{border-color:#fff!important;background:rgba(255,255,255,.94)!important;color:#111!important}

/* c102: 좋아요/저장 콘텐츠 시트는 실제 상단 카테고리 바로 아래부터 표시 */
#profileDetailModal.profileReactionSheet{
  inset:var(--profile-reaction-top,0px) 0 0!important;
  align-items:flex-end!important;
  padding:0!important;
}
#profileDetailModal.profileReactionSheet .profileDetailBox{
  width:100%!important;
  max-width:none!important;
  height:100%!important;
  max-height:100%!important;
}
#profileDetailModal.profileReactionSheet .profileDetailHead,
#profileDetailModal.profileReactionSheet .profileDetailBody{touch-action:pan-y!important}

/* c102: 채팅·채널 계열 시트는 앱 상단까지 올려 전체 화면처럼 통일 */
#roomLocationModal,
#roomHomeDetailSheet{
  inset:0!important;
}
#channelBoardSheet{
  inset:var(--channel-board-offset-top,0px) 0 auto!important;
  z-index:100200!important;
  height:var(--channel-board-height,var(--app-height,100dvh))!important;
  isolation:isolate;
}
#roomHomeDetailSheet .room-home-detail-box{
  width:100%!important;
  max-width:none!important;
  height:100dvh!important;
  max-height:100dvh!important;
  border-radius:22px 22px 0 0!important;
}
#channelBoardSheet .channel-board-box{
  width:100%!important;
  max-width:none!important;
  height:100%!important;
  max-height:100%!important;
  border-radius:22px 22px 0 0!important;
  padding-top:calc(8px + env(safe-area-inset-top, 0px))!important;
  padding-left:max(14px,env(safe-area-inset-left, 0px))!important;
  padding-right:max(14px,env(safe-area-inset-right, 0px))!important;
}
body.channel-board-open{overflow:hidden!important;overscroll-behavior:none!important}
#roomLocationModal.channel-home .room-location-box{
  width:100%!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;
  border-radius:22px 22px 0 0!important;
}
#roomLocationModal.channel-home #roomLocationClose{display:none!important}
#roomLocationModal.channel-home .room-location-head{justify-content:center!important}
.room-home-detail-head{justify-content:center!important;padding-top:8px!important}
.room-location-box,.room-home-detail-box,.channel-board-box,.profileDetailBox{touch-action:pan-y}
.sheet-dragging{will-change:transform;overflow:hidden!important}

/* 하단 여행 아이콘의 빨간 도착 핀을 원형 지점 안쪽으로 이동 */
#bottomNav .navTravelIcon{background-position-x:1.8%!important}

/* c136 theme 2 (dark). Theme 1 remains the untouched white baseline. */
:root{
  --mapps-dark-panel:#182433;
  --mapps-dark-surface:#223044;
  --mapps-dark-surface-soft:#2c3d52;
  --mapps-dark-input:#1d2a3b;
  --mapps-dark-border:#465a72;
  --mapps-dark-text:#f3ead9;
  --mapps-dark-muted:#bdc9d6;
  --mapps-action:#e7654b;
}

html[data-app-theme="dark"] #searchBtn{
  background:var(--mapps-dark-input)!important;
  border:1.5px solid var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

/* Footprint detail is a full-screen profile view and must not keep its white-only surfaces. */
html[data-app-theme="dark"] #profileDetailModal.footprintFullScreen,
html[data-app-theme="dark"] #profileDetailModal.footprintFullScreen .profileDetailBox,
html[data-app-theme="dark"] #profileDetailModal.footprintFullScreen .profileDetailBody{
  background:var(--mapps-dark-panel)!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] #profileDetailModal.footprintFullScreen .profileDetailHead{
  background:rgba(24,36,51,.96)!important;
  border-bottom:1px solid var(--mapps-dark-border)!important;
}
html[data-app-theme="dark"] #profileDetailModal.footprintFullScreen :is(
  .myTripDetailSummary,.myTripDetailSchedule,.myTripDetailStop,.myTripInteractionBlock,.footprintComment
){
  background:var(--mapps-dark-surface)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
  box-shadow:none!important;
}
html[data-app-theme="dark"] #profileDetailModal.footprintFullScreen :is(
  .myTripDetailHead strong,.myTripPortfolioStory>b,.myTripPortfolioCourse b,
  .footprintReviewList>strong,.footprintCommentList>strong,.footprintComment strong,.myTripDetailStop strong,.myTripDetailSchedule b
){color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] #profileDetailModal.footprintFullScreen :is(
  .myTripDetailHead span,.myTripDetailReview,.myTripDetailStop span,.myTripDetailStop p,
  .myTripDetailSchedule p,.footprintReviewList p,.footprintComment p,.footprintComment time,.footprintCommentState
){color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] #profileDetailModal.footprintFullScreen :is(.myTripDetailCounts button,.myTripDetailCounts span,.myTripPublicActions button,.myTripFollowAction button,.footprintCommentForm input){
  background:var(--mapps-dark-surface-soft)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
}
/* Direct conversation has white-only header/form rules outside the shared sheet surface. */
html[data-app-theme="dark"] #directMessageModal .directMessageBox>header,
html[data-app-theme="dark"] #directMessageForm,
html[data-app-theme="dark"] .directTranslationPanel,
html[data-app-theme="dark"] .directPlusMenu{
  background:var(--mapps-dark-surface)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] #directMessageModal #directMessageTitle{
  background:transparent!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] #directMessageModal .directPresenceLabel{color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] #directMessageForm #directMessageInput,
html[data-app-theme="dark"] .directTranslationPanel select{
  background:var(--mapps-dark-input)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] #directMessageForm #directMessageInput::placeholder{color:#aeb4bd!important}
html[data-app-theme="dark"] #directMessageForm #directPlusButton,
html[data-app-theme="dark"] .directPlusMenu button{
  background:var(--mapps-dark-surface-soft)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] #directMessageModal #directTranslateBtn{
  background:var(--mapps-dark-surface-soft)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-action)!important;
}

/* Room creation uses the same dark surfaces as the rest of the map UI. */
html[data-app-theme="dark"] #roomCreateModal .room-create-box{
  background:var(--mapps-dark-panel)!important;
  border:1px solid var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] #roomCreateModal :is(.room-create-title,.room-create-type-help strong){color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] #roomCreateModal :is(.room-create-label,.room-create-type-help span){color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] #roomCreateModal .room-create-type-help div{
  background:var(--mapps-dark-surface)!important;
  border-color:var(--mapps-dark-border)!important;
}
html[data-app-theme="dark"] #roomCreateModal :is(.official-create-fields,.official-create-locked){
  background:var(--mapps-dark-surface)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] #roomCreateModal :is(.official-create-note,.official-create-locked strong,.official-create-locked span,.official-create-locked small){color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] #roomCreateModal :is(.room-create-btn-cancel,.room-create-mini-btn){
  background:var(--mapps-dark-surface-soft)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
}

html[data-app-theme="dark"] body{
  --mapps-sheet:var(--mapps-dark-panel);
  --mapps-panel:var(--mapps-dark-panel);
  --mapps-card:var(--mapps-dark-surface);
  --mapps-text:var(--mapps-dark-text);
  --mapps-muted:var(--mapps-dark-muted);
}

html[data-app-theme="dark"] body:not(.admin-page){
  --mapps-header-scene:url("../assets/top-night-milkyway-c136-v2.webp");
  --mapps-header-scene-color:#101a35;
}

/* 다크 테마도 패널은 유지하고 카테고리 창문 내부만 투명하다. */
html[data-app-theme="dark"] #categoryBar{
  background:transparent!important;
  border-top:1px solid var(--mapps-dark-border)!important;
  border-bottom:1px solid #0f1925!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
html[data-app-theme="dark"] body.category-bar-collapsed #categoryBar{
  background:var(--mapps-dark-panel)!important;
  border-bottom-color:var(--mapps-dark-border)!important;
}
html[data-app-theme="dark"] #categoryBar .catWrap::before{
  background:linear-gradient(180deg,var(--mapps-dark-surface) 0%,var(--mapps-dark-panel) 100%)!important;
}
html[data-app-theme="dark"] #categoryBarHandle{
  background:transparent!important;
  border-color:var(--mapps-dark-border)!important;
}
html[data-app-theme="dark"] #categoryBar .catWrap{background:transparent!important}
html[data-app-theme="dark"] #categoryBar .catWrap button::before{
  background-color:var(--mapps-dark-panel)!important;
  background-image:linear-gradient(180deg,var(--mapps-dark-surface) 0%,var(--mapps-dark-panel) 100%)!important;
  background-size:100% 100%!important;background-position:center!important;
}
html[data-app-theme="dark"] #categoryBar .catWrap button.active::before{
  background-color:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
}
html[data-app-theme="dark"] #categoryBar .catWrap button::after{
  background-image:url("../assets/category-window-frame-a4-dark.png")!important;
}
html[data-app-theme="dark"] #categoryBar .topCategoryIcon{
  filter:brightness(0) saturate(100%) invert(94%) sepia(13%) saturate(482%) hue-rotate(326deg) brightness(107%) contrast(96%)!important;
}
html[data-app-theme="dark"] .categoryBetaNotice{color:#7db8ff!important}
html[data-app-theme="dark"] :is(#bottomSheet,#categorySheet,.category-results-panel,#profilePanel,#policyModal .policyBox,.directMessageBox,.room-location-box,.channel-board-box,.room-home-detail-box){
  background:var(--mapps-dark-panel)!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] :is(#bottomSheet,#categorySheet,.category-results-panel,#profilePanel,.directMessageBox,.channel-board-box,.room-location-box) :is(h1,h2,h3,h4,.sheetTitle,.panelTitle){color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] :is(#sheetHandle,#categorySheet>.sheetHandle,.categoryResultsHandle,#profileHeader.profileSheetHandle)>span,
html[data-app-theme="dark"] :is(#sheetHandle,#categorySheet>.sheetHandle,.categoryResultsHandle)::before,
html[data-app-theme="dark"] :is(.room-home-handle,.room-home-detail-handle)::before{background:#f5f5f5!important}

/* Bottom navigation: never leave an old blue selected tile behind. */
html[data-app-theme="dark"] #bottomNav{
  background:rgba(24,36,51,.96)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] #bottomNav>button,
html[data-app-theme="dark"] #bottomNav>#profileTab{background:transparent!important;color:#cfd3d9!important;box-shadow:none!important}
html[data-app-theme="dark"] #bottomNav>button.active:not(#profileTab){
  background:var(--mapps-dark-surface-soft)!important;
  color:var(--mapps-action)!important;
  box-shadow:none!important;
}
html[data-app-theme="dark"] #bottomNav>#profileTab.active{
  background:transparent!important;
  color:#cfd3d9!important;
  box-shadow:none!important;
}
html[data-app-theme="dark"] #bottomNav .bottomNavImageIcon:not(.navProfileIcon){background-color:currentColor!important}
html[data-app-theme="dark"] #bottomNav .bottomNavImageIcon{color:#f3ead9!important}
html[data-app-theme="dark"] #bottomNav .navProfileIcon{
  filter:brightness(0) saturate(100%) invert(94%) sepia(13%) saturate(482%) hue-rotate(326deg) brightness(107%) contrast(96%)!important;
}
html[data-app-theme="dark"] #bottomNav>button.active .bottomNavImageIcon:not(.navProfileIcon){color:var(--mapps-action)!important}

/* Shared surfaces. Exact generated component classes are used so text and cards switch together. */
html[data-app-theme="dark"] :is(
  .travelHero,.travelCourseList button,.travelFeedEmpty,.travelFeedStatus,
  .course-library-section,.course-saved-card>button:first-child,.course-accordion,.course-fixed-summary,.course-accordion-body,.course-title-editor,.course-date-picker,.schedule-builder,.schedule-day-panel,.schedule-day-card,.schedule-time-card,.schedule-day-empty,.schedule-merge-guide,.schedule-footprint-cta,
  .chatPanelSwitch,.miniRoom,.miniEmpty,
  .directThreadRow,.directEmpty,
  .boardIntro,.boardPostItem,.boardEmpty,.boardDetail,.boardComment,.boardCompose,.boardCommentCompose,
  .snsProfileHero,.snsProfileEmpty,.snsMenuGrid button,.snsProfilePane .profileTrafficGroup,.profileFriendSearchForm,.friendListItem,.profileDemoGrid div,.profileDemoGrid button,.reactionCard,.profileDetailBox,
  .accountSettings section,.alertCard,
  .room-home-summary,.room-home-notice,.room-home-host-card,.room-home-feature-card,.room-home-course-card,.room-home-detail-line,.room-home-calendar-card,.room-home-calendar-event,.room-home-info-row
){
  background:var(--mapps-dark-surface)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] :is(
  .travelHero,.travelCourseList button,.course-library-section,.course-saved-card>button:first-child,.course-accordion,.course-fixed-summary,.course-accordion-body,.schedule-builder,.schedule-day-panel,.schedule-day-card,.schedule-time-card,
  .directThreadRow,.boardPostItem,.boardDetail,.boardComment,.snsProfileHero,.snsProfilePane,.friendListItem,.accountSettings section,.alertCard,
  .room-home-summary,.room-home-notice,.room-home-host-card,.room-home-feature-card,.room-home-course-card,.room-home-detail-line,.room-home-calendar-card,.room-home-calendar-event,.room-home-info-row
) :is(h1,h2,h3,h4,strong,b,label){color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] :is(
  .travelHero,.travelCourseList button,.course-library-section,.course-saved-card>button:first-child,.course-accordion,.course-fixed-summary,.course-accordion-body,.schedule-builder,.schedule-day-panel,.schedule-day-card,.schedule-time-card,
  .directThreadRow,.boardPostItem,.boardDetail,.boardComment,.snsProfileHero,.snsProfilePane,.friendListItem,.accountSettings section,.alertCard,
  .room-home-summary,.room-home-notice,.room-home-host-card,.room-home-feature-card,.room-home-course-card,.room-home-detail-line,.room-home-calendar-card,.room-home-calendar-event,.room-home-info-row
) :is(p,small,em,span,time){color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] :is(.boardBlockEditor,.boardEditorBlock,.boardEditorBlock textarea){background:var(--mapps-dark-surface)!important;color:var(--mapps-dark-text)!important;border-color:var(--mapps-dark-border)!important}
html[data-app-theme="dark"] .myTripComposeForm :is(.myTripInlineLocation,.myTripInlineSchedule){
  background:var(--mapps-dark-surface)!important;
  border-top-color:var(--mapps-dark-border)!important;
  border-bottom-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] .myTripComposeForm :is(.myTripInlineLocation,.myTripInlineSchedule) strong{
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] .myTripComposeForm :is(.myTripInlineLocation,.myTripInlineSchedule) span{
  color:var(--mapps-dark-muted)!important;
}
html[data-app-theme="dark"] .myTripComposeForm :is(.myTripInlineLocation,.myTripInlineSchedule) :is(textarea,input){
  background:var(--mapps-dark-input)!important;
  color:var(--mapps-dark-text)!important;
  border-color:var(--mapps-dark-border)!important;
}
html[data-app-theme="dark"] .myTripComposeForm :is(.myTripInlineLocation,.myTripInlineSchedule) :is(textarea,input)::placeholder{
  color:var(--mapps-dark-muted)!important;
  opacity:1!important;
}
html[data-app-theme="dark"] :is(.boardCompose input:not([type="file"]),.boardCompose select,.boardCompose textarea,.boardCommentCompose textarea){background:var(--mapps-dark-input)!important;color:var(--mapps-dark-text)!important;border-color:var(--mapps-dark-border)!important}
html[data-app-theme="dark"] :is(.boardCompose>label,.boardEditorLabel){color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] :is(.boardCompose input,.boardCompose textarea,.boardCommentCompose textarea)::placeholder{color:var(--mapps-dark-muted)!important;opacity:1!important}
html[data-app-theme="dark"] .profileTripComposeBar>span{color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] .profileTripIconActions button{background:var(--mapps-dark-input)!important;border-color:var(--mapps-dark-border)!important;color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] .profileTripIconActions button.active{background:var(--mapps-dark-surface-soft)!important;color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .profileTripIconActions #profileTripComposeBtn{background:#eaf2ff!important;border-color:#d6e5f8!important;color:#087cff!important}
/* Travel rankings. */
html[data-app-theme="dark"] :is(.travelRankTitle,.travelFeedTextRow,.travelRankCopy b){color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] :is(.travelRankCopy span,.travelRankCopy em){color:var(--mapps-dark-muted)!important}

/* Profile and friends. */
html[data-app-theme="dark"] #profileHeader.profileSheetHandle,
html[data-app-theme="dark"] #profileContent{background:var(--mapps-dark-panel)!important;color:var(--mapps-dark-text)!important;border-color:var(--mapps-dark-border)!important}
html[data-app-theme="dark"] .snsProfileTabs{background:var(--mapps-dark-surface)!important;border-color:var(--mapps-dark-border)!important}
html[data-app-theme="dark"] .snsProfileTabs>button{background:transparent!important;color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] .snsProfileTabs>button.active{background:transparent!important;color:var(--mapps-action)!important}
html[data-app-theme="dark"] .snsFriendList{background:transparent!important;border-color:var(--mapps-dark-border)!important}
html[data-app-theme="dark"] .snsFriendRow{background:var(--mapps-dark-surface)!important;border-color:var(--mapps-dark-border)!important;color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .snsFriendRow :is(strong,b){color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .snsFriendRow :is(span,small){color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] .profileFriendSearchRow{background:var(--mapps-dark-surface)!important;border-color:var(--mapps-dark-border)!important;color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .profileFriendSearchRow strong{color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .profileFriendSearchRow small{color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] .profileFriendSearchRow>button:first-child>span{background-color:var(--mapps-dark-input)!important}
html[data-app-theme="dark"] .friendListActions{background:transparent!important}

/* Chat discovery, direct messages and board. */
html[data-app-theme="dark"] .chatPanelSwitch button{color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] .chatPanelSwitch button.active{background:var(--mapps-dark-surface-soft)!important;color:var(--mapps-action)!important;box-shadow:none!important}
html[data-app-theme="dark"] :is(.chatExploreLabel,.chatSectionTitle){color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .miniRoom span{color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .miniRoom em{color:#f2a091!important}
html[data-app-theme="dark"] .miniRoomRow :is(button:not(.miniRoom),.contentActionButton),
html[data-app-theme="dark"] .directThreadMore{background:var(--mapps-dark-surface-soft)!important;border-color:var(--mapps-dark-border)!important;color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .directThreadList{background:transparent!important}
html[data-app-theme="dark"] .directThreadText strong{color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .directThreadText small,
html[data-app-theme="dark"] .directThreadMeta time{color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] .channel-board-root .boardFrameHead{background:var(--mapps-dark-panel)!important}
html[data-app-theme="dark"] .boardFrameHead strong{color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .boardFrameHead button:not([data-board-write]){background:var(--mapps-dark-surface-soft)!important;color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .boardCategoryTabs button{background:var(--mapps-dark-surface-soft)!important;border-color:var(--mapps-dark-border)!important;color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] .boardCategoryTabs button.active{background:var(--mapps-action)!important;color:#fff!important}
html[data-app-theme="dark"] .boardPostOpen strong{color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .boardPostOpen :is(span,em){color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] :is(.representativeReportGuide,.representativeRightsCheck,.representativeReportStatus){
  background:var(--mapps-dark-surface-soft)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] :is(.representativeReportGuide,.representativeRightsCheck,.representativeReportStatus) :is(strong,b){color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] :is(.representativeReportGuide,.representativeRightsCheck,.representativeReportStatus) :is(span,p){color:var(--mapps-dark-muted)!important}

/* Schedule and course controls. */
html[data-app-theme="dark"] .schedule-day-button{background:var(--mapps-dark-surface-soft)!important;border-color:var(--mapps-dark-border)!important;color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .schedule-day-button.active{background:var(--mapps-action)!important;border-color:var(--mapps-action)!important;color:#fff!important}
html[data-app-theme="dark"] :is(.course-saved-card [data-course-delete],.schedule-day-card button,.schedule-card-actions button){border-color:var(--mapps-dark-border)!important}

/* Channel-home structure follows the theme; banner, map, uploaded images and chat bubbles do not. */
html[data-app-theme="dark"] :is(.room-home-quick-actions button,.room-home-course-actions button,.room-home-detail-actions button){background:var(--mapps-dark-surface-soft)!important;border-color:var(--mapps-dark-border)!important;color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] :is(.room-home-host-copy,.room-home-course-body,.room-home-detail-line,.room-home-calendar-card,.room-home-calendar-event,.room-home-info-row) :is(b,strong){color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] :is(.room-home-host-copy,.room-home-course-body,.room-home-detail-line,.room-home-calendar-card,.room-home-calendar-event,.room-home-info-row) :is(span,p,em){color:var(--mapps-dark-muted)!important}

/* Form focus remains calm in both themes; dark inputs stay in the same charcoal family. */
html[data-app-theme="dark"] :is(input,textarea,select){background:var(--mapps-dark-input)!important;border-color:var(--mapps-dark-border)!important;color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] :is(input,textarea)::placeholder{color:#aeb4bd!important}
html[data-app-theme="dark"] :is(input,textarea,select):focus{outline:none!important;box-shadow:none!important;border-color:var(--mapps-dark-border)!important}
html[data-app-theme="dark"] .accountSettings label{border-color:var(--mapps-dark-border)!important}
html[data-app-theme="dark"] .accountSettings .pushPermissionRow{background:var(--mapps-dark-surface-soft)!important}
html[data-app-theme="dark"] .accountSettings .accountDanger{background:#412f31!important;border-color:#72484b!important}

/* c136 dark completion: generated inner surfaces must follow the selected theme. */
html[data-app-theme="dark"] :is(
  .aiGuideEntry,.aiGuidePanel,.aiGuideCard,.aiGuideDay,.aiGuideStop,.aiGuidePractical,.aiGuideSources,
  .aiPlannerForm,.aiPlannerFields>label,
  .aiPlannerStart>button,.aiTravelDate,.aiOriginChoice,.aiRequestBox,.aiPreferenceField,
  .aiPreferenceBox,.aiClarifyCard,.aiBudgetCard,.aiPlanCard,.aiStopCard,
  .commerce-search-form,.commerce-trip-type,.commerce-card,.commerce-card-body,.commerce-empty,
  .commerce-error,.commerce-result-summary,.commerce-card-actions,
  .course-saved-content,.course-saved-empty,.my-schedule-content
){
  background:var(--mapps-dark-surface)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] :is(
  .aiGuideEntry,.aiGuidePanel,.aiGuideCard,.aiGuideDay,.aiGuideStop,.aiGuidePractical,.aiGuideSources,
  .aiPlannerForm,.aiPlannerFields,.aiPlannerStart,.aiTravelDate,.aiOriginChoice,
  .aiRequestBox,.aiPreferenceField,.aiPreferenceBox,.aiClarifyCard,.aiBudgetCard,.aiPlanCard,.aiStopCard,
  .commerce-search-form,.commerce-card,.commerce-card-body,.commerce-empty,.commerce-error,
  .commerce-result-summary,.course-library-section,.course-saved-content,.course-saved-empty
) :is(h1,h2,h3,h4,strong,b,label){color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] :is(
  .aiGuideEntry,.aiGuidePanel,.aiGuideCard,.aiGuideDay,.aiGuideStop,.aiGuidePractical,.aiGuideSources,
  .aiPlannerForm,.aiPlannerFields,.aiPlannerStart,.aiTravelDate,.aiOriginChoice,
  .aiRequestBox,.aiPreferenceField,.aiPreferenceBox,.aiClarifyCard,.aiBudgetCard,.aiPlanCard,.aiStopCard,
  .commerce-search-form,.commerce-card,.commerce-card-body,.commerce-empty,.commerce-error,
  .commerce-result-summary,.course-library-section,.course-saved-content,.course-saved-empty
) :is(p,span,small,em){color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] :is(.aiPreferenceCategories button,.aiPreferenceBox button,.commerce-trip-type button,.commerce-card-actions button){
  background:var(--mapps-dark-surface-soft)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] :is(.aiPreferenceCategories button.active,.aiPreferenceBox button.active,.commerce-trip-type button.active,.commerce-search-submit){
  background:var(--mapps-action)!important;
  border-color:var(--mapps-action)!important;
  color:#fff!important;
}

/* Schedule library: remove the white islands left by generated empty/content blocks. */
html[data-app-theme="dark"] .course-library-section{
  background:var(--mapps-dark-surface)!important;
  border-color:var(--mapps-dark-border)!important;
}
html[data-app-theme="dark"] :is(.course-saved-content,.my-schedule-content){background:transparent!important}
html[data-app-theme="dark"] .course-saved-empty{
  background:var(--mapps-dark-surface-soft)!important;
  border-color:var(--mapps-dark-border)!important;
}
html[data-app-theme="dark"] .course-library-section+.course-library-section{border-top-color:var(--mapps-dark-border)!important}
html[data-app-theme="dark"] :is(.schedule-day-toolbar button,.schedule-card-actions button,.schedule-day-fields input,.schedule-day-fields select){
  background:var(--mapps-dark-input)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] :is(.schedule-day-toolbar button.active,.schedule-card-actions button.active){
  background:var(--mapps-action)!important;
  border-color:var(--mapps-action)!important;
  color:#fff!important;
}

/* Chat room frame and utility sheets. Uploaded media and outgoing brand bubbles stay intact. */
html[data-app-theme="dark"] :is(#chatRoom,#chatMessages){background:var(--mapps-dark-panel)!important;color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] :is(#chatHeader,#chatBannerWrap,#chatInputWrap,.chat-plus-menu,.chatTranslationPanel,.chat-message-action-sheet){
  background:var(--mapps-dark-surface)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] #chatHeader :is(#chatRoomName,strong,b){color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] #chatHeader :is(#chatRoomUsers,small,span){color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] .chat-message-row.theirs .chat-bubble:not(.image-bubble){
  background:var(--mapps-dark-surface-soft)!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] :is(.chat-plus-menu,.chat-message-action-sheet) button{
  background:var(--mapps-dark-surface-soft)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
}

/* One visual language for headings inside every dark sheet. */
html[data-app-theme="dark"] :is(#bottomSheet,#categorySheet,.category-results-panel,#profilePanel) :is(h1,h2,h3,h4,strong,label){color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] :is(#bottomSheet,#categorySheet,.category-results-panel,#profilePanel) :is(.muted,small){color:var(--mapps-dark-muted)!important}

/* Dark-compatible ranking badges. */
html[data-app-theme="dark"] .travelRankBadge.rank-1{background:var(--mapps-action)!important;color:#fff!important}
html[data-app-theme="dark"] .travelRankBadge.rank-2{background:#69717c!important;color:#fff!important}
html[data-app-theme="dark"] .travelRankBadge.rank-3{background:#b57969!important;color:#fff!important}

/* Schedule, channel-home and AI surfaces use the same charcoal system. */
html[data-app-theme="dark"] .course-saved-list,
html[data-app-theme="dark"] .course-saved-list article>button:first-child{
  background:var(--mapps-dark-surface)!important;
  color:var(--mapps-dark-text)!important;
  border-color:var(--mapps-dark-border)!important;
}
html[data-app-theme="dark"] #roomLocationModal.channel-home :is(.room-location-box,.room-location-head,.room-home-scroll,.room-location-actions,.room-location-room,.room-home-reaction-actions,.room-home-quick-actions,.room-home-summary,.room-home-host-card,.room-home-feature-card,.room-home-info-row),
html[data-app-theme="dark"] #roomLocationModal.channel-home .room-home-banner-controls .room-home-banner-empty{
  background:var(--mapps-dark-surface)!important;
  color:var(--mapps-dark-text)!important;
  border-color:var(--mapps-dark-border)!important;
}
html[data-app-theme="dark"] #roomLocationModal.channel-home :is(h1,h2,h3,strong,b){color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] :is(.aiPlannerStart>button,.aiPlannerFields label){
  background:var(--mapps-dark-surface)!important;
  color:var(--mapps-dark-text)!important;
  border-color:var(--mapps-dark-border)!important;
}
html[data-app-theme="dark"] .aiPlannerFields label :is(input,select,textarea){
  background:var(--mapps-dark-input)!important;
  color:var(--mapps-dark-text)!important;
  border-color:var(--mapps-dark-border)!important;
}

/* c136 requested dark UI completion: chat actions, profile/policy titles, support cards and close controls. */
html[data-app-theme="dark"] #chatHeader :is(#chatTranslateBtn,#travelMatchRoomBtn,#roomInfoBtn){
  box-sizing:border-box!important;
  padding:0!important;
  background:var(--mapps-dark-surface-soft)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
  box-shadow:0 3px 9px rgba(6,12,20,.28)!important;
}
html[data-app-theme="dark"] #chatHeader #chatTranslateBtn .fieldTranslateIcon{color:var(--mapps-action)!important}
html[data-app-theme="dark"] #chatHeader #travelMatchRoomBtn{color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] #chatHeader #travelMatchRoomBtn svg{fill:currentColor!important;stroke:none!important}
html[data-app-theme="dark"] #chatHeader #roomInfoBtn{color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] #chatHeader #roomInfoBtn svg{
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.7!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
html[data-app-theme="dark"] #chatHeader #roomInfoBtn svg :is(path,circle){fill:none!important;stroke:currentColor!important}
html[data-app-theme="dark"] #chatHeader #closeChat{
  background:var(--mapps-dark-surface-soft)!important;
  border:1px solid var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
  box-shadow:0 3px 9px rgba(6,12,20,.28)!important;
}
html[data-app-theme="dark"] :is(#policyTitle,.profileDetailHead strong,.profileDemoGroupTitle strong,.snsProfilePane h1,.snsProfilePane h2,.snsProfilePane h3,.snsProfilePane h4){color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .supportCenter section,
html[data-app-theme="dark"] .supportAiAnswer{
  background:var(--mapps-dark-surface-soft)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
  box-shadow:none!important;
}
html[data-app-theme="dark"] .supportCenter section>p{color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] .supportQuickQuestions button{background:var(--mapps-dark-input)!important;color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] :is(
  #policyClose,#profileDetailClose,.profileQuickHead [data-profile-editor-close],
  [data-share-card-close],[data-gallery-close],[data-ai-stop-close],
  #closeProfile,#closeChat,#roomInfoClose,#officialChannelCloseBtn,
  .room-create-close,.chat-image-viewer-close
){
  background:var(--mapps-dark-surface-soft)!important;
  border-color:var(--mapps-dark-border)!important;
  color:#d6d9de!important;
  box-shadow:none!important;
}
html[data-app-theme="dark"] .boardDetailActions button{
  background:var(--mapps-dark-surface-soft)!important;
  border:1px solid var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] .boardDetailActions button:last-child{background:#51363a!important;border-color:#765057!important;color:#ffb4ad!important}
html[data-app-theme="dark"] .serviceAlertDetail p{
  background:var(--mapps-dark-input)!important;
  color:var(--mapps-dark-text)!important;
  border:1px solid var(--mapps-dark-border)!important;
}
html[data-app-theme="dark"] .serviceAlertDetail button{
  background:var(--mapps-dark-surface-soft)!important;
  color:#ffb4ad!important;
  border-color:var(--mapps-dark-border)!important;
}

/* All swipe handles use the same measured pill. */
html[data-app-theme="dark"] :is(#sheetHandle,#categorySheet>.sheetHandle,.categoryResultsHandle,#profileHeader.profileSheetHandle,.room-home-handle,.room-home-detail-handle){background:transparent!important}
html[data-app-theme="dark"] :is(#sheetHandle,#categorySheet>.sheetHandle,.categoryResultsHandle)::before,
html[data-app-theme="dark"] #profileHeader.profileSheetHandle>span,
html[data-app-theme="dark"] :is(.room-home-handle,.room-home-detail-handle)::before{
  width:58px!important;
  height:6px!important;
  border-radius:999px!important;
  background:var(--mapps-dark-muted)!important;
}
/* a5: 메인 버튼은 원래 테마색으로 복구하고 손잡이 안쪽만 브랜드 코랄로 강조한다. */
html[data-app-theme="white"] #categoryBarHandle::before,
html[data-app-theme="dark"] #categoryBarHandle::before{background:#ed654b!important}

html[data-app-theme="dark"] :is(
  #profileAlertQuickBtn,#randomTravelMissionBtn,#mainFieldTranslateBtn,
  #routeQuickAddBtn,#routeQuickAddBtn.active,#chatFilterBtn,#myLoc
){
  background:var(--mapps-dark-surface)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
  box-shadow:0 5px 16px rgba(5,12,22,.32)!important;
}
html[data-app-theme="dark"] #profileAlertQuickBtn.has-unread{
  background:#3d2c38!important;
  border-color:#9a5260!important;
}
html[data-app-theme="dark"] body #floatingBtns > :is(#routeQuickAddBtn,#chatFilterBtn,#myLoc),
html[data-app-theme="dark"] body #floatingBtns > #routeQuickAddBtn.active{
  background:var(--mapps-dark-surface)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
  box-shadow:0 5px 16px rgba(5,12,22,.32)!important;
}

/* 나침반은 바깥 버튼만 테마를 따르고 내부 계기판은 원래 색을 유지한다. */
html[data-app-theme="white"] #randomTravelMissionBtn .floating-roulette,
html[data-app-theme="dark"] #randomTravelMissionBtn .floating-roulette{
  border-color:#233747!important;
  background:repeating-conic-gradient(from -2deg,#769bb4 0 1.5deg,transparent 1.5deg 44deg),#fff!important;
  box-shadow:inset 0 0 0 2px #9ab6c9,0 1px 2px rgba(18,36,51,.16)!important;
}

/* 경로는 대각선으로 분리한 A·B 위치핀과 점선만 사용한다. */
html[data-app-theme="white"] body #floatingBtns > #routeQuickAddBtn .floating-route,
html[data-app-theme="dark"] body #floatingBtns > #routeQuickAddBtn .floating-route{
  background-color:transparent!important;
  background-size:88% 88%!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
  background-blend-mode:normal!important;
  filter:none!important;
}
html[data-app-theme="white"] body #floatingBtns > #routeQuickAddBtn .floating-route{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 52 52'%3E%3Cpath d='M23 24C27 24.2 28.5 28.2 31 29' fill='none' stroke='%23ed654b' stroke-width='2.8' stroke-linecap='round' stroke-dasharray='1.5 4'/%3E%3Cpath d='M17 7C11.5 7 7 11.2 7 16.4C7 23.5 17 31 17 31s10-7.5 10-14.6C27 11.2 22.5 7 17 7Z' fill='%23ffffff' stroke='%2324364d' stroke-width='2.4'/%3E%3Ctext x='17' y='19.9' fill='%2324364d' font-family='Arial,sans-serif' font-size='10' font-weight='900' text-anchor='middle'%3EA%3C/text%3E%3Cpath d='M35 21C29.5 21 25 25.2 25 30.4C25 37.5 35 45 35 45s10-7.5 10-14.6C45 25.2 40.5 21 35 21Z' fill='%23ffffff' stroke='%2324364d' stroke-width='2.4'/%3E%3Ctext x='35' y='33.9' fill='%2324364d' font-family='Arial,sans-serif' font-size='10' font-weight='900' text-anchor='middle'%3EB%3C/text%3E%3C/svg%3E")!important;
}
html[data-app-theme="dark"] body #floatingBtns > #routeQuickAddBtn .floating-route{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 52 52'%3E%3Cpath d='M23 24C27 24.2 28.5 28.2 31 29' fill='none' stroke='%23ed654b' stroke-width='2.8' stroke-linecap='round' stroke-dasharray='1.5 4'/%3E%3Cpath d='M17 7C11.5 7 7 11.2 7 16.4C7 23.5 17 31 17 31s10-7.5 10-14.6C27 11.2 22.5 7 17 7Z' fill='%23223044' stroke='%23f3ead9' stroke-width='2.4'/%3E%3Ctext x='17' y='19.9' fill='%23f3ead9' font-family='Arial,sans-serif' font-size='10' font-weight='900' text-anchor='middle'%3EA%3C/text%3E%3Cpath d='M35 21C29.5 21 25 25.2 25 30.4C25 37.5 35 45 35 45s10-7.5 10-14.6C45 25.2 40.5 21 35 21Z' fill='%23223044' stroke='%23f3ead9' stroke-width='2.4'/%3E%3Ctext x='35' y='33.9' fill='%23f3ead9' font-family='Arial,sans-serif' font-size='10' font-weight='900' text-anchor='middle'%3EB%3C/text%3E%3C/svg%3E")!important;
}

html[data-app-theme="dark"] #mainFieldTranslateBtn .fieldTranslateIcon{color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] #mainFieldTranslateBtn .fieldTranslateIcon i,
html[data-app-theme="dark"] #mainFieldTranslateBtn .fieldTranslateIcon i::after{
  background:var(--mapps-dark-surface)!important;
}
html[data-app-theme="dark"] #profileAlertQuickBtn:not(.has-unread) .floating-bell{
  filter:brightness(0) saturate(100%) invert(94%) sepia(13%) saturate(482%) hue-rotate(326deg) brightness(107%) contrast(96%)!important;
}

/* 도움말은 원래 녹색, 필터는 분홍·주황·보라의 밝은 강조색을 유지한다. */
html[data-app-theme="white"] body #mainMapGuideBtn.featureGuideMapButton,
html[data-app-theme="dark"] body #mainMapGuideBtn.featureGuideMapButton{
  background:#fff!important;
  border-color:#16813c!important;
  color:#16813c!important;
  box-shadow:0 5px 14px rgba(15,23,42,.16)!important;
}
html[data-app-theme="white"] body #floatingBtns > #chatFilterBtn .floating-filter,
html[data-app-theme="dark"] body #floatingBtns > #chatFilterBtn .floating-filter{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke-linecap='round'%3E%3Cpath d='M4 6h16' stroke='%23f04491' stroke-width='2.8'/%3E%3Cpath d='M7 12h10' stroke='%23ff8a2a' stroke-width='2.8'/%3E%3Cpath d='M10 18h4' stroke='%238d5cf6' stroke-width='2.8'/%3E%3C/svg%3E")!important;
  filter:none!important;
}

/* a5: 랜덤 나침반 팝업은 다크 테마의 딥블루그레이 계열을 사용한다. */
html[data-app-theme="dark"] .randomMissionCard{
  background:var(--mapps-dark-panel)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] .randomMissionCompassStage{
  background:radial-gradient(circle at 50% 34%,#344a62 0,var(--mapps-dark-surface) 46%,#101b2b 100%)!important;
}
html[data-app-theme="dark"] .randomMissionCompassStage::before{
  background:repeating-linear-gradient(112deg,transparent 0 23px,rgba(224,233,244,.035) 24px 25px)!important;
}
html[data-app-theme="dark"] .randomMissionCompassCopy{color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .randomMissionModePicker button{
  background:var(--mapps-dark-surface-soft)!important;
  border-color:var(--mapps-dark-border)!important;
  color:var(--mapps-dark-text)!important;
}
html[data-app-theme="dark"] .randomMissionModePicker button.active{
  background:#276fac!important;
  border-color:#77b5ec!important;
  color:#fff!important;
}
html[data-app-theme="dark"] .randomMissionDistance label{color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .randomMissionBody h2{color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .randomMissionBody p{color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] .randomMissionPolicyNotice{background:#29394d;color:#ffe6d1}
html[data-app-theme="dark"] .randomMissionReroll{background:var(--mapps-dark-surface-soft)!important;color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .randomMissionVisual img.randomMissionPlaceFallback{background:linear-gradient(135deg,var(--mapps-dark-surface-soft),var(--mapps-dark-input))!important}

/* m23: reported utility sheets only; leave maps, media and light mode intact. */
html[data-app-theme="dark"] .randomMissionTitle{color:var(--mapps-dark-text)!important;text-shadow:none}
html[data-app-theme="dark"] #chatFilterPanel .chat-filter-note{color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] :is(.fieldTranslationSheet,#chatFilterPanel,.mainRouteBar,.tripTalkNavigationSheet){background:var(--mapps-dark-panel)!important;border-color:var(--mapps-dark-border)!important;color:var(--mapps-dark-text)!important;box-shadow:0 12px 34px rgba(0,0,0,.3)!important}
html[data-app-theme="dark"] :is(.fieldTranslationSheet,#chatFilterPanel,.tripTalkNavigationSheet) :is(h2,strong,b,label){color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] :is(.fieldTranslationGuide,.chat-filter-help,.tripTalkNavigationSheet>span,.tripTalkRouteGroups section small){color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] :is(.fieldTranslationResult,.mainRouteList article,.mainRouteList>p,.tripTalkRouteGroups section,.tripTalkNavigationGroup,#policyBody.legalPolicyMenu>a){background:var(--mapps-dark-surface)!important;border-color:var(--mapps-dark-border)!important;color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] :is(#fieldTranslationClose,#fieldTranslationSwap,#fieldTranslationLarge:disabled,#fieldTranslationSubmit:disabled,#chatFilterCloseBtn,#chatFilterResetBtn,.chat-filter-options button,.tripTalkNavigationSheet button,.course-group-actions button,.mainRouteList article>div:last-child button){background:var(--mapps-dark-surface-soft)!important;border-color:var(--mapps-dark-border)!important;color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] #chatFilterPanel .chat-filter-section button{background:var(--mapps-dark-surface-soft)!important;border-color:var(--mapps-dark-border)!important;color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] #chatFilterPanel .chat-filter-section button.active{background:var(--mapps-action)!important;border-color:var(--mapps-action)!important;color:#fff!important}
html[data-app-theme="dark"] #chatFilterPanel :is(.chat-filter-title,.chat-filter-head){color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .mainRouteActions button{color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] .mainRouteActions [data-route-save]{color:#82baff!important}
html[data-app-theme="dark"] :is(.mainRouteActions [data-route-cancel],.mainRouteList article>div:last-child button:last-child){color:#ff8e99!important}
html[data-app-theme="dark"] .mainRouteEndpointPin{background:var(--mapps-dark-text);color:var(--mapps-dark-panel)}
html[data-app-theme="dark"] :is(.mainRouteList span,#policyBody.legalPolicyMenu>a span){color:var(--mapps-dark-muted)!important}
html[data-app-theme="dark"] #policyBody.legalPolicyMenu>a strong{color:var(--mapps-dark-text)!important}
html[data-app-theme="dark"] #policyBody.legalPolicyMenu>a em{color:#82baff!important}
html[data-app-theme="dark"] #policyBody.legalPolicyMenu .legalPolicyNotice{background:#3b3524;color:#f4d886}
/* m27: authored palettes, including mask-based nav icons, stay paired. */
html[data-app-theme="white"]{color-scheme:only light}
html[data-app-theme="dark"]{color-scheme:only dark}
/* m28: map bubbles intentionally remain a light card on both map themes.
   `only light` protects this local palette from browser auto-darkening. */
html[data-app-theme] :is(.room-label,.room-label-open,.room-label-private,.room-label-official){background:#fff!important;color:#172033!important;color-scheme:only light}
html[data-app-theme] .room-theme-rainbow{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(90deg,#ff4d67,#ff9f1c,#f5d90a,#20b26b,#2176ff,#8b5cf6) border-box!important}
html[data-app-theme] .roomBubbleCopy>span{color:#172033!important;text-shadow:none!important}
html[data-app-theme] .roomBubbleCopy strong{color:var(--room-bubble-color)!important;text-shadow:none!important}
html[data-app-theme="white"] #bottomNav{background:#fffdfa!important;color-scheme:only light}
html[data-app-theme="white"] #bottomNav .bottomNavImageIcon:not(.navProfileIcon){color:#3f658f!important;background-color:currentColor!important}
html[data-app-theme="dark"] #bottomNav{background:#223044!important;color-scheme:only dark}
html[data-app-theme="dark"] #bottomNav .bottomNavImageIcon:not(.navProfileIcon){color:#f3ead9!important;background-color:currentColor!important}
html[data-app-theme] #bottomNav>button.active .bottomNavImageIcon:not(.navProfileIcon){color:#e8796d!important}
.reactionCard button.reactionIcon{flex-shrink:0;width:44px;min-width:44px;height:44px;min-height:44px;border:1px solid #dce3ed;cursor:pointer;font:inherit;font-size:22px;color:#ee4965;background:#fff}
.reactionCard button.reactionIcon:focus-visible{outline:3px solid #1689ff;outline-offset:3px}
.reactionCard button.reactionIcon:disabled{opacity:.5;cursor:wait}
html[data-app-theme="dark"] .reactionCard button.reactionIcon{background:var(--mapps-dark-surface-soft);border-color:var(--mapps-dark-border);color:#ff8e99}
html[data-app-theme="dark"] .reactionMain>span{color:var(--mapps-dark-muted)!important}
.alertCard:not(.is-unread){opacity:.85}
.alertCardStatus{display:block;margin-top:8px;color:#bc4a38}

/* m31 native iOS: keep the fixed map chrome below the Dynamic Island/status bar.
   Browser/PWA layouts remain unchanged because Capacitor adds this class only in-app. */
html.mapps-native-ios body:not(.admin-page)::before{
  height:calc(var(--mapps-header-height) + env(safe-area-inset-top))!important;
}
/* Full-height channel sheets must keep their drag handles below the status bar. */
html.mapps-native-ios #roomLocationModal .room-location-box,
html.mapps-native-ios #roomHomeDetailSheet .room-home-detail-box{
  padding-top:calc(8px + env(safe-area-inset-top, 0px))!important;
  box-sizing:border-box;
}
html.mapps-native-ios #mappsWordmark{
  top:calc(7px + env(safe-area-inset-top))!important;
}
html.mapps-native-ios #searchBar{
  top:calc(34px + env(safe-area-inset-top))!important;
}
html.mapps-native-ios #categoryBar{
  top:calc(87px + env(safe-area-inset-top))!important;
}
html.mapps-native-ios #mainFieldTranslateBtn{
  top:calc(187px + env(safe-area-inset-top))!important;
}
html.mapps-native-ios #mainMapGuideBtn.featureGuideMapButton{
  top:calc(249px + env(safe-area-inset-top))!important;
}
html.mapps-native-ios body.category-bar-collapsed #categoryBar{
  top:calc(107px + env(safe-area-inset-top))!important;
}
html.mapps-native-ios body.category-bar-collapsed #mainFieldTranslateBtn{
  top:calc(129px + env(safe-area-inset-top))!important;
}
html.mapps-native-ios body.category-bar-collapsed #mainMapGuideBtn.featureGuideMapButton{
  top:calc(191px + env(safe-area-inset-top))!important;
}

/* m31: one top edge just above the wordmark, below each device's safe area.
   The viewport variables still account for keyboard resizing/panning. Subtract
   only the space above the sheet, so its bottom remains above the keyboard. */
:root{--mapps-sheet-top:calc(env(safe-area-inset-top, 0px) + 2px)}
#chatRoom,#directMessageModal{
  --conversation-sheet-top:max(var(--mapps-sheet-top),var(--conversation-top));
  box-sizing:border-box;
  top:var(--conversation-sheet-top)!important;
  height:max(0px,calc(var(--conversation-height) + var(--conversation-top) - var(--conversation-sheet-top)))!important;
  max-height:max(0px,calc(var(--conversation-height) + var(--conversation-top) - var(--conversation-sheet-top)))!important;
  border-radius:22px 22px 0 0!important;
  overflow:hidden;
}
#chatHeader{
  min-height:54px!important;
  padding:8px max(9px,env(safe-area-inset-right,0px)) 8px max(9px,env(safe-area-inset-left,0px))!important;
}
#directMessageModal .directMessageBox{height:100%!important;max-height:100%!important;border-radius:22px 22px 0 0!important}
#directMessageModal .directMessageBox>header{min-height:72px!important;padding:24px 14px 8px!important}
#directMessageModal .directMessageBox>header::before{top:9px!important}
#roomLocationModal.channel-home,#roomHomeDetailSheet{
  inset:var(--mapps-sheet-top) 0 auto!important;
  height:max(0px,calc(var(--app-height,100dvh) - var(--mapps-sheet-top)))!important;
  max-height:max(0px,calc(var(--app-height,100dvh) - var(--mapps-sheet-top)))!important;
}
#channelBoardSheet{
  --board-sheet-top:max(var(--mapps-sheet-top),var(--channel-board-offset-top,0px));
  top:var(--board-sheet-top)!important;
  height:max(0px,calc(var(--channel-board-height,var(--app-height,100dvh)) + var(--channel-board-offset-top,0px) - var(--board-sheet-top)))!important;
}
#roomLocationModal.channel-home .room-location-box,
#roomHomeDetailSheet .room-home-detail-box,
#channelBoardSheet .channel-board-box{
  height:100%!important;
  max-height:100%!important;
  padding-top:8px!important;
  box-sizing:border-box;
}
/* Override the earlier native full-screen padding: the frame now supplies it. */
html.mapps-native-ios #roomLocationModal.channel-home .room-location-box,
html.mapps-native-ios #roomHomeDetailSheet .room-home-detail-box{padding-top:8px!important}
